From c5849c3d5317cf087f4690c0a0a199ec0a4aacd9 Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Tue, 10 Dec 2024 17:31:54 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E4=BF=AE=E6=94=B9=E4=BB=93=E5=BA=93?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=B7=BB=E5=8A=A0=E5=92=8C=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=EF=BC=8C=E4=BB=93=E5=BA=93=E5=8D=95=E5=8F=B7?= =?UTF-8?q?=E4=BB=8E=E5=90=8E=E7=AB=AF=E4=BB=A3=E7=A0=81=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=EF=BC=8C=E5=89=8D=E7=AB=AF=E6=B7=BB=E5=8A=A0=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E4=B8=8D=E5=B1=95=E7=A4=BA=EF=BC=8C=E4=BF=AE=E6=94=B9=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E4=B8=8D=E5=8F=AF=E4=BF=AE=E6=94=B9=E5=8D=95=E5=8F=B7?= =?UTF-8?q?=EF=BC=8C=E8=AE=BE=E7=BD=AE=E4=B8=BA=E5=8F=AA=E8=AF=BB=EF=BC=9B?= =?UTF-8?q?=20=E4=BF=AE=E6=94=B9=20=E9=80=9A=E8=BF=87=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E6=8A=A5=E4=BB=B7=E5=8D=95=E5=8F=B7=E6=9F=A5=E6=89=BE=E6=89=80?= =?UTF-8?q?=E6=9C=89=E9=87=87=E8=B4=AD=E6=8A=A5=E4=BB=B7=E5=AD=90=E8=A1=A8?= =?UTF-8?q?=E9=9B=86=E5=90=88=E6=96=B9=E6=B3=95=EF=BC=9A=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=8A=A8=E6=80=81SQL=EF=BC=8Clist=E9=9B=86=E5=90=88=E5=8A=A0?= =?UTF-8?q?=E4=B8=8A=E2=80=9Clist=20!=3D=20null=20and=20list.size=20>=200?= =?UTF-8?q?=E2=80=9D=E6=9D=A1=E4=BB=B6=EF=BC=8C=E9=98=B2=E6=AD=A2=E5=87=BA?= =?UTF-8?q?=E7=8E=B0=E7=A9=BA=E6=8C=87=E9=92=88=E9=97=AE=E9=A2=98=EF=BC=9B?= =?UTF-8?q?=20=E9=87=87=E8=B4=AD=E8=AE=A1=E5=88=92=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E6=96=B9=E6=B3=95=EF=BC=9A?= =?UTF-8?q?=E5=8A=A0=E4=B8=8A=E5=AF=B9=E4=BB=93=E5=BA=93ID=E7=9A=84?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=EF=BC=8C=E4=B8=8D=E6=B7=BB=E5=8A=A0=E4=BB=93?= =?UTF-8?q?=E5=BA=93ID=E4=B8=8D=E5=8F=AF=E4=BB=A5=E5=8F=91=E8=B5=B7?= =?UTF-8?q?=E9=87=87=E8=B4=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PurchaseOrderServiceImpl.java | 75 +++++++++++++++++++ .../service/impl/StockInfoServiceImpl.java | 2 + .../purchase/PurchaseQuoteChildMapper.xml | 7 +- .../templates/stock/stockInfo/add.html | 42 +++++------ .../templates/stock/stockInfo/edit.html | 2 +- 5 files changed, 104 insertions(+), 24 deletions(-) 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 @@
- +