diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java index f3927f4d..be8c7f34 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java @@ -357,6 +357,11 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService List purchasePlanSelectSupplierVoList = addPurchaseOrder.getPurchasePlanSelectSupplierVoList(); List purchasePlanSelectMaterialVoList = addPurchaseOrder.getPurchasePlanSelectMaterialVoList(); + String warehouseCode = purchasePlanTwo.getWarehouseCode(); + if (StringUtils.isEmpty(warehouseCode)){ + throw new BusinessException("请选择仓库ID"); + } + //先不判断处理本次占用库存数 //判断本次采购数 boolean anyNullThisPurchaseNum = purchasePlanSelectMaterialVoList.stream().anyMatch(item -> item.getThisPurchaseNum() == null); @@ -460,6 +465,28 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService Integer thisPurchaseNum = purchasePlanSelectMaterialVo.getThisPurchaseNum(); Integer sharedInventoryOccupancyNum = purchasePlanSelectMaterialVo.getSharedInventoryOccupancyNum(); + + //库存查询 + WarehouseInventoryInquiry warehouseInventoryInquiry = inventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); + if ( sharedInventoryOccupancyNum != null && sharedInventoryOccupancyNum > 0){ + Integer sharedAvailableStockNum = Optional.ofNullable(warehouseInventoryInquiry.getSharedAvailableStockNum()).orElse(0); + + Integer availableStockNum = Optional.ofNullable(warehouseInventoryInquiry.getAvailableStockNum()).orElse(0); + Integer lockStockNum = Optional.ofNullable(warehouseInventoryInquiry.getLockStockNum()).orElse(0); + warehouseInventoryInquiry.setAvailableStockNum(availableStockNum - sharedInventoryOccupancyNum); + warehouseInventoryInquiry.setSharedAvailableStockNum(sharedAvailableStockNum - sharedInventoryOccupancyNum); + warehouseInventoryInquiry.setLockStockNum(lockStockNum + sharedInventoryOccupancyNum); + warehouseInventoryInquiry.setNoOccupancyNum(sharedAvailableStockNum - sharedInventoryOccupancyNum); + warehouseInventoryInquiry.setUpdateTime(new Date()); + warehouseInventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); + int updateInventoryInquiry = inventoryInquiryMapper.updateWarehouseInventoryInquiry(warehouseInventoryInquiry); + if (updateInventoryInquiry <= 0){ + throw new BusinessException("更新库存查询记录失败"); + } + + } + + // 检查是否有共享库存占用数,没有的话直接使用thisPurchaseNum Integer remainingSharedInventoryOccupancyNum = 0; if (sharedInventoryOccupancyNum == null || sharedInventoryOccupancyNum <= 0) { @@ -714,11 +741,59 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService if (purchaseOrder.getAuditStatus().equals("2")){ purchaseOrderAuditRefuse(purchaseOrder); } + //处理审核通过的情况 + if (purchaseOrder.getAuditStatus().equals("1")){ + purchaseOrderAuditApprove(purchaseOrder); + } return purchaseOrderMapper.updatePurchaseOrder(purchaseOrder); } + /** + * 采购订单审核通过,需要更新库存查询数据 + * */ + + private void purchaseOrderAuditApprove(PurchaseOrder purchaseOrder) { + + Long purchaseOrderId = purchaseOrder.getPurchaseOrderId(); + PurchaseOrderVo purchaseOrderVo = purchaseOrderMapper.selectPurchaseOrderById(purchaseOrderId); + + String purchaseOrderCode = purchaseOrderVo.getPurchaseOrderCode(); + + + //得到采购订单子表的数据 + List purchaseOrderChildList = purchaseOrderChildMapper.selectPurchaseOrderChildByOrderCode(purchaseOrderCode); + + String purchasePlanCode = purchaseOrderVo.getPurchasePlanCode(); + + //得到采购计划单号的集合 + List purchasePlanCodeList = new ArrayList<>(); + + if (StringUtils.isNotEmpty(purchasePlanCode)){ + String[] splitSalesOrderCode = purchasePlanCode.split(","); + purchasePlanCodeList = Arrays.asList(splitSalesOrderCode); + } + + + // 得到采购计划主表数据 + List purchasePlanList = purchasePlanMapper.selectPurchaseOrderByPlanCodeList(purchasePlanCodeList); + // 得到采购计划子表数据 + List purchasePlanChildList = purchasePlanChildMapper.selectPurchasePlanChildPlanCodeList(purchasePlanCodeList); + + + // 创建一个 map 用于快速查找采购计划子表数据 + Map> purchasePlanChildMap = purchasePlanChildList.stream() + .collect(Collectors.groupingBy(PurchasePlanChild::getPurchasePlanCode)); + +// +// for (PurchasePlanChild purchasePlanChild : purchasePlanChildList) { +// +// } + + } + + /** * 采购订单审核拒绝,需要更新采购计划数据,采购计划子表数据 * */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/stock/service/impl/StockInfoServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/stock/service/impl/StockInfoServiceImpl.java index b31c5a40..847e1402 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/stock/service/impl/StockInfoServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/stock/service/impl/StockInfoServiceImpl.java @@ -76,6 +76,8 @@ public class StockInfoServiceImpl implements IStockInfoService SysDiffLog sysDiffLog = new SysDiffLog(); stockInfo.setFirstAddTime(DateUtils.getNowDate()); + String stockNO = redisCache.generateNo("CK"); + stockInfo.setStockNO(stockNO); int insertStockInfo = stockInfoMapper.insertStockInfo(stockInfo); Long stockId = stockInfo.getStockId(); sysDiffLog.setBusinessId(stockId); diff --git a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteChildMapper.xml b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteChildMapper.xml index 9297bcc3..d0d84d89 100644 --- a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteChildMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteChildMapper.xml @@ -77,14 +77,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - - + + + + + +
@@ -67,21 +67,21 @@ $("#form-stockInfo-add").validate({ focusCleanup: true }); - $(function (){ - $.ajax({ - url: prefix + "/getId", - type: "post", - dataType: "json", - success: function (result) { - console.log(result); - if (result.code == 0) { - $("input[name='StockNO']").val(result.msg); - } else { - $.modal.msgError(result.msg); - } - } - }); - }) + // $(function (){ + // $.ajax({ + // url: prefix + "/getId", + // type: "post", + // dataType: "json", + // success: function (result) { + // console.log(result); + // if (result.code == 0) { + // $("input[name='StockNO']").val(result.msg); + // } else { + // $.modal.msgError(result.msg); + // } + // } + // }); + // }) function submitHandler() { if ($.validate.form()) { $.operate.save(prefix + "/add", $('#form-stockInfo-add').serialize()); diff --git a/ruoyi-admin/src/main/resources/templates/stock/stockInfo/edit.html b/ruoyi-admin/src/main/resources/templates/stock/stockInfo/edit.html index 263ca316..c9880a54 100644 --- a/ruoyi-admin/src/main/resources/templates/stock/stockInfo/edit.html +++ b/ruoyi-admin/src/main/resources/templates/stock/stockInfo/edit.html @@ -10,7 +10,7 @@
- +