wangzhuo 3 years ago
parent
commit
47e78d8695

+ 62 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/office/excel/StockExcel.java

@@ -0,0 +1,62 @@
+package com.trade.purchase.office.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class StockExcel implements Serializable {
+
+	private static final Long serialVersionUID = 1L;
+
+	/**
+	 * 入库日期
+	 */
+	@ExcelProperty(value = "入库日期")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(pattern = "yyyy-MM")
+	private Date inDate;
+
+	/**
+	 * 物料名称
+	 */
+	@ExcelProperty(value = "物料名称")
+	private String cname;
+
+	/**
+	 * 物料编号
+	 */
+	@ExcelProperty(value = "物料编号")
+	private String code;
+
+	/**
+	 * 期初
+	 */
+	@ExcelProperty(value = "期初")
+	private BigDecimal opening;
+
+	/**
+	 * 入库
+	 */
+	@ExcelProperty(value = "入库")
+	private BigDecimal inQuantity;
+
+	/**
+	 * 出库
+	 */
+	@ExcelProperty(value = "出库")
+	private BigDecimal outQuantity;
+
+
+}

+ 42 - 20
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -182,7 +182,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 				}
 			}
 		} else {
-			if (delivery.getLogisticsConfirm() == 0 || delivery.getAssistantConfirm() == 0) {
+			if (0 == delivery.getLogisticsConfirm() || 0 == delivery.getAssistantConfirm()) {
 				Delivery temp = baseMapper.selectById(delivery.getId());
 				if (temp.getLogisticsConfirm() != 0) {
 					baseMapper.update(null, new LambdaUpdateWrapper<Delivery>()
@@ -585,6 +585,25 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		if (select == null) {
 			throw new SecurityException("未查到相关数据,操作失败");
 		}
+		if (ObjectUtil.isEmpty(select.getCorpId())){
+			throw new SecurityException("供应商必填");
+		}
+		if (ObjectUtil.isEmpty(select.getPurchaseMode())){
+			throw new SecurityException("采购方式必填");
+		}
+
+		if (ObjectUtil.isEmpty(select.getSalesCompany())){
+			throw new SecurityException("所属公司必填");
+		}
+		if (ObjectUtil.isEmpty(select.getWarehouseType())){
+			throw new SecurityException("仓库类型必填");
+		}
+		if (ObjectUtil.isEmpty(select.getStorageId())){
+			throw new SecurityException("仓库名称必填");
+		}
+		if (ObjectUtil.isEmpty(select.getCreateTime())){
+			throw new SecurityException("入库时间必填");
+		}
 
 		Long corpId = select.getCorpId();
 
@@ -594,10 +613,13 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			.eq(DeliveryItems::getPid, deliveryId)
 			.eq(DeliveryItems::getIsDeleted, 0);
 		List<DeliveryItems> deliveryItems = deliveryItemsMapper.selectList(deliveryItemsLambdaQueryWrapper);
+
 		BigDecimal pricetotal = deliveryItems.stream().map(DeliveryItems::getDeliveryAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 		//明细总采购价
 		String acoount = CollectionUtils.isEmpty(deliveryItems) ? "0" : pricetotal.toString();
 
+		select.setDeliveryItemsList(deliveryItems);
+
 		String corpName = null;
 		String corpNumber = null;
 		String orderNo = select.getOrderNo();
@@ -649,9 +671,9 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 
 
 		//保存收货单主表 和 收货单明细
-		this.submitDelivery(delivery);
+		this.submitDelivery(select);
 		//验证收货单库存与传入库存是否一致,如果一直则修改库存
-		List<DeliveryItems> deliveryItemsList = delivery.getDeliveryItemsList();
+		List<DeliveryItems> deliveryItemsList = select.getDeliveryItemsList();
 		if (CollectionUtils.isNotEmpty(deliveryItemsList)) {
 			List<BusinessOverpaymentItem> list = new ArrayList<>();
 			deliveryItemsList.forEach(e -> {
@@ -682,20 +704,20 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 				StockGoods model = new StockGoods();
 				model.setGoodsId(e.getItemId());
 				//不同的出口对应不同的查询条件
-				if ("JK".equals(delivery.getTradeType())) {
+				if ("JK".equals(select.getTradeType())) {
 					model.setCntrNo(e.getCntrNo());//箱号
 					model.setBillNo(e.getBillNo());//提单号
 					/*	model.setCorpId(delivery.getCorpId());*/
-					model.setStorageId(delivery.getStorageId());//仓库
+					model.setStorageId(select.getStorageId());//仓库
 					model.setContractNumber(e.getContractNumber());//采购订单号
 					model.setTradeType("JK");
-				} else if ("CK".equals(delivery.getTradeType())) {
+				} else if ("CK".equals(select.getTradeType())) {
 					model.setTradeType("CK");
 					model.setItemType(e.getSpecificationAndModel());
-				} else if ("GN".equals(delivery.getTradeType())) {
+				} else if ("GN".equals(select.getTradeType())) {
 					model.setTradeType("GN");
-					model.setCorpId(delivery.getCorpId());
-					model.setStorageId(delivery.getStorageId());//仓库
+					model.setCorpId(select.getCorpId());
+					model.setStorageId(select.getStorageId());//仓库
 					model.setItemType(e.getSpecificationAndModel());
 				} else {
 					throw new SecurityException("贸易类型未指定");
@@ -706,17 +728,17 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 				//BigDecimal surplusRouteQuantity = stockGoodsVOR.getData().getSurplusRouteQuantity();
 
 				//达沃特新需求-禅道860中体现-国内-采购确认-不增加库存
-				if (!"GN".equals(delivery.getTradeType())) {
+				if (!"GN".equals(select.getTradeType())) {
 					//新增库存单
 					if (stock == null) {
-						StockGoods stockGoods = iDeliveryItemsService.saveStock(delivery.getTradeType(), delivery.getCorpId(), delivery.getStorageId(), e);
+						StockGoods stockGoods = iDeliveryItemsService.saveStock(select.getTradeType(), select.getCorpId(), select.getStorageId(), e);
 						//更新收货单明细库存
 						e.setInventoryNumber(stockGoods.getSurplusRouteQuantity());
 						e.setInWeight(stockGoods.getInWeight());
 					}
 					//修改库存单
 					else {
-						StockGoods receiving = iDeliveryItemsService.receiving(delivery.getTradeType(), stock.getId(), e);
+						StockGoods receiving = iDeliveryItemsService.receiving(select.getTradeType(), stock.getId(), e);
 						//更新收货单明细库存
 						e.setInventoryNumber(receiving.getSurplusRouteQuantity());
 						e.setInWeight(receiving.getInWeight());
@@ -725,7 +747,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 					if (stock == null) {
 						throw new SecurityException("更新库存失败,未找到库存");
 					} else {
-						iDeliveryItemsService.receiving(delivery.getTradeType(), stock.getId(), e);
+						iDeliveryItemsService.receiving(select.getTradeType(), stock.getId(), e);
 					}
 				}
 
@@ -734,7 +756,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 				if (!r.isSuccess()) {
 					throw new SecurityException("操作已发数量失败:" + r.getMsg());
 				}
-				if ("JK".equals(delivery.getTradeType())) {
+				if ("JK".equals(select.getTradeType())) {
 					//更新item已收发票重量
 					R weightR = iOrderItemsClient.updateActualWeight(e.getSrcId(), invoiceWeight, 1);
 					if (!weightR.isSuccess()) {
@@ -770,41 +792,41 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 
 		if("681169".equals(AuthUtil.getTenantId())){
 			delivery.setDeliveryStatus("已发货");
-			delivery.setFreightQuantity(delivery.getTotalQuantity());
+			delivery.setFreightQuantity(select.getTotalQuantity());
 			delivery.setFreightTime(date);
 			delivery.setFreightUser(AuthUtil.getUserName());
 
 			Order temp = new Order();
 			temp.setId(select.getOrgId());
 			temp.setOrderStatus("待收货");
-			temp.setDeliverQuantity(delivery.getTotalQuantity());
+			temp.setDeliverQuantity(select.getTotalQuantity());
 			temp.setDeliverTime(date);
 			orderDescClient.updateOrder(temp);
 
 			Order orderTemp = new Order();
 			orderTemp.setId(select.getSrcId());
 			orderTemp.setOrderStatus("待收货");
-			orderTemp.setDeliverQuantity(delivery.getTotalQuantity());
+			orderTemp.setDeliverQuantity(select.getTotalQuantity());
 			orderTemp.setDeliverTime(date);
 			orderDescClient.updateOrder(orderTemp);
 			baseMapper.updateById(delivery);
 		}else{
 			delivery.setDeliveryStatus("已收货");
-			delivery.setFreightQuantity(delivery.getTotalQuantity());
+			delivery.setFreightQuantity(select.getTotalQuantity());
 			delivery.setFreightTime(date);
 			delivery.setFreightUser(AuthUtil.getUserName());
 
 			Order temp = new Order();
 			temp.setId(select.getOrgId());
 			temp.setOrderStatus("待发货");
-			temp.setDeliverQuantity(delivery.getTotalQuantity());
+			temp.setDeliverQuantity(select.getTotalQuantity());
 			temp.setDeliverTime(date);
 			orderDescClient.updateOrder(temp);
 
 			Order orderTemp = new Order();
 			orderTemp.setId(select.getSrcId());
 			orderTemp.setOrderStatus("已发货");
-			orderTemp.setDeliverQuantity(delivery.getTotalQuantity());
+			orderTemp.setDeliverQuantity(select.getTotalQuantity());
 			orderTemp.setDeliverTime(date);
 			orderDescClient.updateOrder(orderTemp);
 			baseMapper.updateById(delivery);

+ 1 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml

@@ -1416,7 +1416,7 @@ ORDER BY
                 AND tenant_id = #{tenantId}
             </if>
             <if test="userId != null and userId != ''">
-                AND audit_user_id = #{userId}
+                AND audit_user_id like CONCAT(CONCAT('%', #{userId}), '%')
             </if>
         </where>
     </select>

+ 3 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/extra/service/impl/ClaimServiceImpl.java

@@ -235,6 +235,8 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 			lambdaQueryWrapper.eq(ClaimItem::getIsDeleted, 0);
 			lambdaQueryWrapper.eq(ClaimItem::getPid, claim.getId());
 			List<ClaimItem> list = claimItemMapper.selectList(lambdaQueryWrapper);
+			Claim claim1 = baseMapper.selectById(claim.getId());
+
 			if (CollectionUtil.isEmpty(list)){
 				throw new SecurityException("开启审批失败:单据明细不能为空");
 			}
@@ -261,6 +263,7 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 			auditProecessDTO.setSendTime(new Date());
 			auditProecessDTO.setOrderQuantity(quantity);//数量
 			auditProecessDTO.setAmount(amount);//金额
+			auditProecessDTO.setOrderRemark(claim1.getRemarks());//备注
 			R financeProcess = checkClient.createFinanceProcess(auditProecessDTO);
 			if (!financeProcess.isSuccess()) {
 				throw new SecurityException("操作失败,请联系管理员");

+ 18 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/office/controller/StockController.java

@@ -19,6 +19,7 @@ package com.trade.purchase.office.controller;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.trade.purchase.office.entity.Stock;
+import com.trade.purchase.office.excel.StockExcel;
 import com.trade.purchase.office.service.IStockService;
 import com.trade.purchase.office.vo.StockVO;
 import io.swagger.annotations.Api;
@@ -26,13 +27,18 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 办公用品库存账 控制器
@@ -70,6 +76,18 @@ public class StockController extends BladeController {
 	}
 
 	/**
+	 * 办公用品库存账导出
+	 */
+	@GetMapping("/ListExport")
+	public void listExport(StockVO stockVO, HttpServletResponse response){
+		IPage<StockVO> iPage= stockService.getList(null, stockVO);
+		List<StockExcel> list = new ArrayList<>();
+		list = BeanUtil.copy(iPage.getRecords(), StockExcel.class);
+		ExcelUtil.export(response, "库存帐", "库存帐", list, StockExcel.class);
+	}
+
+
+	/**
 	 * 自定义分页 办公用品库存账
 	 */
 	@GetMapping("/page")