From 9aa0a4251530ef9dc0d70d59a1bde7cb524f12ac Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Thu, 26 Dec 2024 20:27:50 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E9=94=80=E5=94=AE=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=87=87=E8=B4=AD=E5=85=A5=E5=BA=93=E7=9A=84?= =?UTF-8?q?=E6=9D=A5=E6=BA=90=E4=B8=BA=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E4=B8=94=E8=AF=A5=E9=87=87=E8=B4=AD=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=85=B3=E8=81=94=E5=A4=9A=E4=B8=AA=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E7=9A=84=E6=83=85=E5=86=B5=E5=87=BA=E8=A1=8C?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=B8=BA=E7=A9=BA=E6=8C=87=E9=92=88=E7=9A=84?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WarehouseStorageOrderServiceImpl.java | 197 ++++++++++-------- 1 file changed, 105 insertions(+), 92 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java index 2ac28d4e..a719ad53 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java @@ -1,6 +1,8 @@ package com.ruoyi.warehouse.service.impl; import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -1829,109 +1831,120 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS // 新增采购入库库存历史记录 String purchasePlanCode = purchaseOrderMapper.selectPurchasePlanCodeByCode(correlationCode); - PurchasePlan purchasePlan = purchasePlanMapper.selectPurchasePlanByPlanCode(purchasePlanCode); - if ("2".equals(purchasePlan.getPurchasePlanType())){ //来源为请购单 - List purchaseOrderChildList = purchaseOrderChildMapper.selectPurchaseOrderChildByOrderCode(correlationCode); - for (PurchaseOrderChild purchaseOrderChild : purchaseOrderChildList) { - if(purchaseOrderChild.getMaterialNo().equals(materialNo)){ - - WarehouseInventoryInquiry oldWarehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); - Integer historicalTotal = oldWarehouseInventoryInquiry.getHistoricalTotal(); - historicalTotal += storageNum; - oldWarehouseInventoryInquiry.setHistoricalTotal(historicalTotal); - - Integer availableStockNum = oldWarehouseInventoryInquiry.getAvailableStockNum(); - if (availableStockNum == null || availableStockNum == 0){ - availableStockNum = storageNum; - }else { - availableStockNum += storageNum; - } + List purchasePlanCodes = new ArrayList<>(); + if (StringUtils.isEmpty(purchasePlanCode)){ + throw new BusinessException("找不到与采购单号关联的采购计划号"); + } - oldWarehouseInventoryInquiry.setAvailableStockNum(availableStockNum); + if (StringUtils.isNotEmpty(purchasePlanCode)){ + String[] splitPurchasePlanCode = purchasePlanCode.split(","); + purchasePlanCodes = Arrays.asList(splitPurchasePlanCode); + } + + List purchasePlans = purchasePlanMapper.selectPurchaseOrderByPlanCodeList(purchasePlanCodes); + for (PurchasePlan purchasePlan : purchasePlans) { + if ("2".equals(purchasePlan.getPurchasePlanType())){ //来源为请购单 + List purchaseOrderChildList = purchaseOrderChildMapper.selectPurchaseOrderChildByOrderCode(correlationCode); + for (PurchaseOrderChild purchaseOrderChild : purchaseOrderChildList) { + if(purchaseOrderChild.getMaterialNo().equals(materialNo)){ + + WarehouseInventoryInquiry oldWarehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); + Integer historicalTotal = oldWarehouseInventoryInquiry.getHistoricalTotal(); + historicalTotal += storageNum; + oldWarehouseInventoryInquiry.setHistoricalTotal(historicalTotal); + + Integer availableStockNum = oldWarehouseInventoryInquiry.getAvailableStockNum(); + if (availableStockNum == null || availableStockNum == 0){ + availableStockNum = storageNum; + }else { + availableStockNum += storageNum; + } + + oldWarehouseInventoryInquiry.setAvailableStockNum(availableStockNum); // Integer oldAvailableStockNum = warehouseInventoryInquiryService.calculateAvailableStockNum(materialNo); // oldWarehouseInventoryInquiry.setAvailableStockNum(oldAvailableStockNum + storageNum); //加上本次入库的数量 - Integer sharedAvailableStockNum = oldWarehouseInventoryInquiry.getSharedAvailableStockNum();//共享可用库存 - if (sharedAvailableStockNum == null || sharedAvailableStockNum == 0){ - sharedAvailableStockNum = storageNum; - }else { - sharedAvailableStockNum += storageNum; - } - oldWarehouseInventoryInquiry.setSharedAvailableStockNum(sharedAvailableStockNum); - - int updateResult = warehouseInventoryInquiryService.updateWarehouseInventoryInquiry(oldWarehouseInventoryInquiry); - if (updateResult <= 0){ - throw new BusinessException("更新库存查询记录失败!"); - } - - remindService.warehouseSafetyStockRemind(oldWarehouseInventoryInquiry); - - WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); - inquiryDetail.setMaterialNo(materialNo); - inquiryDetail.setInquiryWarehouseType("0");//采购入库 - inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate()); - inquiryDetail.setInquiryOrderType("0"); - inquiryDetail.setInquiryBusinessType("0"); - inquiryDetail.setCorrelationCode(storageCode); - inquiryDetail.setIncreaseDecreaseNum(warehouseStorageOrderDetail.getStorageNum()); - inquiryDetail.setInventoryIncreaseDecrease("1"); - int insertDetailResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); - if (insertDetailResult <= 0){ - throw new BusinessException("新增库存履历失败!"); + Integer sharedAvailableStockNum = oldWarehouseInventoryInquiry.getSharedAvailableStockNum();//共享可用库存 + if (sharedAvailableStockNum == null || sharedAvailableStockNum == 0){ + sharedAvailableStockNum = storageNum; + }else { + sharedAvailableStockNum += storageNum; + } + oldWarehouseInventoryInquiry.setSharedAvailableStockNum(sharedAvailableStockNum); + + int updateResult = warehouseInventoryInquiryService.updateWarehouseInventoryInquiry(oldWarehouseInventoryInquiry); + if (updateResult <= 0){ + throw new BusinessException("更新库存查询记录失败!"); + } + + remindService.warehouseSafetyStockRemind(oldWarehouseInventoryInquiry); + + WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); + inquiryDetail.setMaterialNo(materialNo); + inquiryDetail.setInquiryWarehouseType("0");//采购入库 + inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate()); + inquiryDetail.setInquiryOrderType("0"); + inquiryDetail.setInquiryBusinessType("0"); + inquiryDetail.setCorrelationCode(storageCode); + inquiryDetail.setIncreaseDecreaseNum(warehouseStorageOrderDetail.getStorageNum()); + inquiryDetail.setInventoryIncreaseDecrease("1"); + int insertDetailResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); + if (insertDetailResult <= 0){ + throw new BusinessException("新增库存履历失败!"); + } } } - } - }else if ("1".equals(purchasePlan.getPurchasePlanType())){ //生产订单 - List purchaseOrderChildList = purchaseOrderChildMapper.selectPurchaseOrderChildByOrderCode(correlationCode); - for (PurchaseOrderChild purchaseOrderChild : purchaseOrderChildList) { - if (purchaseOrderChild.getMaterialNo().equals(materialNo)) { - - WarehouseInventoryInquiry oldWarehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); - Integer historicalTotal = oldWarehouseInventoryInquiry.getHistoricalTotal(); - historicalTotal += storageNum; - oldWarehouseInventoryInquiry.setHistoricalTotal(historicalTotal); - Integer availableStockNum = oldWarehouseInventoryInquiry.getAvailableStockNum(); - if (availableStockNum == null || availableStockNum == 0){ - availableStockNum = storageNum; - }else { - availableStockNum += storageNum; - } - - oldWarehouseInventoryInquiry.setAvailableStockNum(availableStockNum); + }else if ("1".equals(purchasePlan.getPurchasePlanType())){ //生产订单 + List purchaseOrderChildList = purchaseOrderChildMapper.selectPurchaseOrderChildByOrderCode(correlationCode); + for (PurchaseOrderChild purchaseOrderChild : purchaseOrderChildList) { + if (purchaseOrderChild.getMaterialNo().equals(materialNo)) { + + WarehouseInventoryInquiry oldWarehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); + Integer historicalTotal = oldWarehouseInventoryInquiry.getHistoricalTotal(); + historicalTotal += storageNum; + oldWarehouseInventoryInquiry.setHistoricalTotal(historicalTotal); + Integer availableStockNum = oldWarehouseInventoryInquiry.getAvailableStockNum(); + if (availableStockNum == null || availableStockNum == 0){ + availableStockNum = storageNum; + }else { + availableStockNum += storageNum; + } + + oldWarehouseInventoryInquiry.setAvailableStockNum(availableStockNum); // Integer oldAvailableStockNum = warehouseInventoryInquiryService.calculateAvailableStockNum(materialNo); - Integer fixedAvailableStockNum = oldWarehouseInventoryInquiry.getFixedAvailableStockNum();//固定可用库存 - if (fixedAvailableStockNum == null || fixedAvailableStockNum == 0){ - fixedAvailableStockNum = storageNum; - }else { - fixedAvailableStockNum += storageNum; - } - oldWarehouseInventoryInquiry.setFixedAvailableStockNum(fixedAvailableStockNum); - - - int updateResult = warehouseInventoryInquiryService.updateWarehouseInventoryInquiry(oldWarehouseInventoryInquiry); - if (updateResult <= 0) { - throw new BusinessException("更新库存查询记录失败!"); - } - - remindService.warehouseSafetyStockRemind(oldWarehouseInventoryInquiry); - - WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); - inquiryDetail.setMaterialNo(materialNo); - inquiryDetail.setInquiryWarehouseType("0");//采购入库 - inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate()); - inquiryDetail.setInquiryOrderType("0"); - inquiryDetail.setInquiryBusinessType("0"); - inquiryDetail.setCorrelationCode(storageCode); - inquiryDetail.setIncreaseDecreaseNum(warehouseStorageOrderDetail.getStorageNum()); - inquiryDetail.setInventoryIncreaseDecrease("1"); - int insertDetailResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); - if (insertDetailResult <= 0) { - throw new BusinessException("新增库存履历失败!"); + Integer fixedAvailableStockNum = oldWarehouseInventoryInquiry.getFixedAvailableStockNum();//固定可用库存 + if (fixedAvailableStockNum == null || fixedAvailableStockNum == 0){ + fixedAvailableStockNum = storageNum; + }else { + fixedAvailableStockNum += storageNum; + } + oldWarehouseInventoryInquiry.setFixedAvailableStockNum(fixedAvailableStockNum); + + + int updateResult = warehouseInventoryInquiryService.updateWarehouseInventoryInquiry(oldWarehouseInventoryInquiry); + if (updateResult <= 0) { + throw new BusinessException("更新库存查询记录失败!"); + } + + remindService.warehouseSafetyStockRemind(oldWarehouseInventoryInquiry); + + WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); + inquiryDetail.setMaterialNo(materialNo); + inquiryDetail.setInquiryWarehouseType("0");//采购入库 + inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate()); + inquiryDetail.setInquiryOrderType("0"); + inquiryDetail.setInquiryBusinessType("0"); + inquiryDetail.setCorrelationCode(storageCode); + inquiryDetail.setIncreaseDecreaseNum(warehouseStorageOrderDetail.getStorageNum()); + inquiryDetail.setInventoryIncreaseDecrease("1"); + int insertDetailResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); + if (insertDetailResult <= 0) { + throw new BusinessException("新增库存履历失败!"); + } } } } } - }else if(warehouseStorageType.equals("5")){//新增生产入库库存历史记录 WarehouseInventoryInquiry oldWarehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo);