From 5ed62f0699550a5e2ae98af0dea834f26200fa48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=99=93=E8=BF=AA?= <2596750866@qq.com> Date: Wed, 27 Nov 2024 11:06:40 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E4=BB=93=E5=BA=93=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8D=95=20=E4=BF=AE=E6=94=B9=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E5=85=A5=E5=BA=93=E5=8D=95=E5=85=A5=E5=BA=93=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=EF=BC=8C=E4=BF=AE=E6=94=B9=E8=A1=A8=E6=A0=BC=E7=BB=93?= =?UTF-8?q?=E6=9E=84=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=85=A5=E5=BA=93=E6=95=B0?= =?UTF-8?q?=E3=80=81=E4=BB=93=E5=BA=93=E4=BF=A1=E6=81=AF=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=EF=BC=9B=20=E4=BF=AE=E6=94=B9=E7=94=9F=E4=BA=A7=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=85=A5=E5=BA=93service=E6=96=B9=E6=B3=95=EF=BC=8C?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=9B=B8=E5=85=B3=E8=AE=A2=E5=8D=95=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E5=8F=8A=E7=8A=B6=E6=80=81=EF=BC=8C=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2=EF=BC=9B?= =?UTF-8?q?=20=E4=BF=AE=E6=94=B9=E6=9B=B4=E6=96=B0=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2service=E6=96=B9=E6=B3=95=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=A7=94=E5=86=85=E5=85=A5=E5=BA=93=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E4=B8=BA=E7=94=9F=E4=BA=A7=E5=85=A5=E5=BA=93?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WarehouseStorageOrderServiceImpl.java | 101 ++++++------ .../warehouse/storageOrder/storageMake.html | 147 +++++++++++++----- 2 files changed, 158 insertions(+), 90 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 510ef76f..cfb0f59e 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 @@ -3,6 +3,7 @@ package com.ruoyi.warehouse.service.impl; import java.math.BigDecimal; import java.util.Date; import java.util.List; +import java.util.Optional; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.exception.BusinessException; @@ -720,7 +721,7 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); } } - }else if(warehouseStorageType.equals("2")){//新增委内入库库存历史记录 + }else if(warehouseStorageType.equals("5")){//新增生产入库库存历史记录 WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); inquiryDetail = createMakeInOrderInquiryDetail(warehouseStorageOrderDetail); inquiryDetail.setInventoryHistoricalType("1"); @@ -824,7 +825,7 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS return inquiryDetail; } - //生成委内(委外)入库库存历史记录 + //生成生产(委外)入库库存历史记录 public WarehouseInventoryInquiryDetail createMakeInOrderInquiryDetail(WarehouseStorageOrderDetail warehouseStorageOrderDetail){ WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); inquiryDetail.setMaterialNo(warehouseStorageOrderDetail.getMaterialNo()); @@ -1351,20 +1352,18 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS @Override public int updateStorageMake(WarehouseStorageOrder warehouseStorageOrder) { String loginName = ShiroUtils.getLoginName(); + String storageCode = warehouseStorageOrder.getWarehouseStorageCode(); + WarehouseStorageOrder oldStorageOrder = warehouseStorageOrderMapper.selectStorageOrderByCode(storageCode); - //假设全部入库 - warehouseStorageOrder.setWarehouseStorageStatus("4"); - warehouseStorageOrder.setUpdateBy(loginName); - warehouseStorageOrder.setUpdateTime(DateUtils.getNowDate()); //记录一下入库时间 - warehouseStorageOrder.setStorageTime(DateUtils.getNowDate()); + oldStorageOrder.setStorageTime(DateUtils.getNowDate()); String warehouseCode = warehouseStorageOrder.getWarehouseCode(); String warehouseName = warehouseStorageOrder.getWarehouseName(); if (StringUtils.isNotEmpty(warehouseCode)){ - warehouseStorageOrder.setWarehouseCode(warehouseCode); + oldStorageOrder.setWarehouseCode(warehouseCode); } if (StringUtils.isNotEmpty(warehouseName)){ - warehouseStorageOrder.setWarehouseName(warehouseName); + oldStorageOrder.setWarehouseName(warehouseName); } List warehouseStorageOrderDetailList = warehouseStorageOrder.getWarehouseStorageOrderDetailList(); @@ -1373,53 +1372,66 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS throw new BusinessException("入库单详情数据为空"); } - //入库数 - Integer storageNum = 0; - - // 检查storageNum是否含有null值 - boolean hasThisStorageNumNull = warehouseStorageOrderDetailList.stream() - .anyMatch(item -> item.getStorageNum() == null); - - if (hasThisStorageNumNull) { - throw new BusinessException("存在入库数为空,请检查!"); - } - // 计算各个字段的总和 - storageNum = warehouseStorageOrderDetailList.stream() + //插入主表入库数量 + int orderStorageNum = Optional.ofNullable(oldStorageOrder.getStorageNum()) + .orElse(0); + int storageSum = warehouseStorageOrderDetailList.stream() .mapToInt(WarehouseStorageOrderDetail::getStorageNum) .sum(); - - //插入主表入库数量 - warehouseStorageOrder.setStorageNum(storageNum); - + storageSum = storageSum + orderStorageNum; + warehouseStorageOrder.setStorageNum(storageSum); + warehouseStorageOrder.setWarehouseStorageStatus("3");//部分入库 + //品质合格数和总入库数相等,全部入库 + int qualifiedNum = oldStorageOrder.getQualityQualifiedNum(); + if(storageSum == qualifiedNum){ + warehouseStorageOrder.setWarehouseStorageStatus("4");//全部入库 + } //更新生产订单的数据 SysMakeOrder tempSysMakeOrder = sysMakeOrderMapper.selectMakeOrderByMakeNo(warehouseStorageOrder.getRelatedOrderCode()); - tempSysMakeOrder.setEceiptNum(storageNum); + tempSysMakeOrder.setEceiptNum(storageSum); //设置生产状态为全部完成 - tempSysMakeOrder.setMakeStatus("6"); int updateMakeOrderResult = sysMakeOrderService.updateByMakeNo(tempSysMakeOrder); if (updateMakeOrderResult <= 0){ throw new BusinessException("更新生产订单数据失败"); } - //更新销售订单数据 SysSalesOrder sysSalesOrder = salesOrderMapper.selectSysSalesOrderBySalesOrderCode(tempSysMakeOrder.getSaleNo()); - //设置为全部完成 - sysSalesOrder.setMakeStatus("6"); - //设置为待出货 - sysSalesOrder.setDeliveryStatus("2"); + //设置为生产订单的完成状态 + sysSalesOrder.setMakeStatus(tempSysMakeOrder.getMakeStatus()); int updateSalesOrderResult = salesOrderService.updateSysSalesOrderBySalesOrderCode(sysSalesOrder); if (updateSalesOrderResult <= 0){ throw new BusinessException("更新销售订单数据失败"); } + for (WarehouseStorageOrderDetail storageOrderDetail : warehouseStorageOrderDetailList) { + //更新入库单详情的数据 + storageOrderDetail.setUpdateBy(loginName); + storageOrderDetail.setUpdateTime(DateUtils.getNowDate()); + //更新已入库数 + int hasStorageNum = Optional.ofNullable(storageOrderDetail.getHasStorageNum()) + .orElse(0); + hasStorageNum = hasStorageNum + storageOrderDetail.getStorageNum(); + storageOrderDetail.setHasStorageNum(hasStorageNum); + int updateWarehouseStorageOrderDetailResult = storageOrderDetailMapper.updateWarehouseStorageOrderDetail(storageOrderDetail); + if (updateWarehouseStorageOrderDetailResult <= 0){ + throw new BusinessException("更新仓库入库单详情失败,未影响任何行"); + } + //更新库存查询 + WarehouseStorageOrderDetail storageOrderInquiryDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(storageOrderDetail.getWarehouseStorageDetailId()); + int inquiryResult = createWarehouseInventoryInquiry(storageOrderInquiryDetail); + if (inquiryResult <= 0){ + throw new BusinessException("更新仓库库存查询失败,未影响任何行"); + } + } + //更新销售订单子表的数据 for (WarehouseStorageOrderDetail warehouseStorageOrderDetail : warehouseStorageOrderDetailList) { SysSalesOrderChild sysSalesOrderChild = new SysSalesOrderChild(); sysSalesOrderChild.setQuoteId(tempSysMakeOrder.getSaleNo()); sysSalesOrderChild.setMaterialCode(warehouseStorageOrderDetail.getMaterialNo()); - sysSalesOrderChild.setFinishNum(warehouseStorageOrderDetail.getStorageNum()); + sysSalesOrderChild.setFinishNum(warehouseStorageOrderDetail.getHasStorageNum()); sysSalesOrderChild.setUpdateBy(loginName); sysSalesOrderChild.setUpdateTime(DateUtils.getNowDate()); int updateSalesOrderChildResult = salesOrderChildMapper.updateSysSalesOrderChildByCodeAndQuoteId(sysSalesOrderChild); @@ -1427,33 +1439,12 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS throw new BusinessException("更新销售订单子表数据失败"); } } - - -// //更新生产单数据 -// int updateMakeOrderResult = sysMakeOrderService.updateSysMakeOrderByWarehouseStorageOrder(warehouseStorageOrder, warehouseStorageOrderDetailList); -// if (updateMakeOrderResult <= 0){ -// throw new BusinessException("更新生产订单失败,未影响任何行"); -// } - - for (WarehouseStorageOrderDetail warehouseStorageOrderDetail : warehouseStorageOrderDetailList) { - //更新入库单详情的数据 - warehouseStorageOrderDetail.setUpdateBy(loginName); - warehouseStorageOrderDetail.setUpdateTime(DateUtils.getNowDate()); - //更新已入库数 - warehouseStorageOrderDetail.setHasStorageNum(warehouseStorageOrderDetail.getStorageNum()); - int updateWarehouseStorageOrderDetailResult = storageOrderDetailMapper.updateWarehouseStorageOrderDetail(warehouseStorageOrderDetail); - if (updateWarehouseStorageOrderDetailResult <= 0){ - throw new BusinessException("更新仓库入库单详情失败,未影响任何行"); - } - } //更新入库单的数据 int updateResult = warehouseStorageOrderMapper.updateWarehouseStorageOrder(warehouseStorageOrder); - if (updateResult <= 0){ - log.warn("更新入库单失败,未影响任何行"); + throw new BusinessException("更新入库单数据失败,未影响任何行"); } return updateResult; - } /* diff --git a/ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storageMake.html b/ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storageMake.html index b2d5e618..451a9e09 100644 --- a/ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storageMake.html +++ b/ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storageMake.html @@ -3,12 +3,11 @@ + @@ -39,7 +38,7 @@
- +
@@ -48,7 +47,7 @@
- +
@@ -62,9 +61,9 @@
- +
- +
@@ -89,8 +88,10 @@