From acf0a5bdba8ef7aae790be871eb2b39a12f9f199 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=99=93=E8=BF=AA?= <2596750866@qq.com> Date: Fri, 6 Dec 2024 13:45:25 +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=E9=87=87?= =?UTF-8?q?=E8=B4=AD=E8=AE=A2=E5=8D=95=E4=BB=93=E5=BA=93=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E5=92=8C=E9=87=87=E8=B4=AD=E5=85=A5=E5=BA=93service=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=93=81=E8=B4=A8=E5=90=88?= =?UTF-8?q?=E6=A0=BC=E6=95=B0=E9=9D=9E=E7=A9=BA=E5=88=A4=E6=96=AD=EF=BC=8C?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E5=85=A5=E5=BA=93=E6=95=B0=E4=B8=8D=E4=B8=BA?= =?UTF-8?q?0=E7=9A=84=E5=85=A5=E5=BA=93=E5=8D=95=E8=AF=A6=E6=83=85?= =?UTF-8?q?=EF=BC=9B=20=E4=BF=AE=E6=94=B9=E4=BB=93=E5=BA=93=E9=87=87?= =?UTF-8?q?=E8=B4=AD=E8=BF=9B=E8=A1=8C=E5=85=A5=E5=BA=93=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E5=80=99=E6=9B=B4=E6=96=B0=E8=AE=A2=E5=8D=95service=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E9=81=8D=E5=8E=86=E5=85=B3=E8=81=94=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=8F=B7=EF=BC=8C=E6=A0=B9=E6=8D=AE=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E4=B8=B2=E5=BC=80=E5=A4=B4=E6=9F=A5=E6=89=BE=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95=E5=92=8C=E8=AF=B7=E8=B4=AD?= =?UTF-8?q?=E5=8D=95=E4=BB=93=E5=BA=93=E7=8A=B6=E6=80=81=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysMakeOrderServiceImpl.java | 46 ++++++++++++------- .../WarehouseStorageOrderServiceImpl.java | 44 +++++++++++------- 2 files changed, 57 insertions(+), 33 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeOrderServiceImpl.java index e3858c66..b573ab9f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeOrderServiceImpl.java @@ -27,6 +27,7 @@ import com.ruoyi.quality.mapper.QualityOrderMapper; import com.ruoyi.quality.mapper.QualityOrderReportMapper; import com.ruoyi.quality.mapper.QualityShippingDeviceMapper; import com.ruoyi.system.domain.*; +import com.ruoyi.system.domain.Vo.BaseRequisitioningOrderVo; import com.ruoyi.system.dto.SysEquipDetailDto; import com.ruoyi.system.dto.SysEquipMaterialDto; import com.ruoyi.system.dto.SysMakeorderMaterialDto; @@ -122,6 +123,9 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService @Autowired private PurchaseOrderMapper purchaseOrderMapper; + @Autowired + private BaseRequisitioningOrderMapper requisitioningOrderMapper; + /** * 查询生产订单 * @@ -524,24 +528,34 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService } List purchasePlans = purchasePlanService.selectPurchaseOrderByPlanCodeList(purchasePlanCodes); - List makeNos = purchasePlans.stream().map(PurchasePlan::getCorrelationCode).collect(Collectors.toList()); - List sysMakeOrders = sysMakeOrderMapper.selectMakeOrderByMakeNoList(makeNos); + List relatedCodes = purchasePlans.stream().map(PurchasePlan::getCorrelationCode).collect(Collectors.toList()); + for (String relatedCode: relatedCodes) { + if(relatedCode.startsWith("PO")){ + SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderByMakeNo(relatedCode); + sysMakeOrder.setUpdateBy(loginName); + sysMakeOrder.setUpdateTime(new Date()); - for (SysMakeOrder sysMakeOrder : sysMakeOrders) { - sysMakeOrder.setUpdateBy(loginName); - sysMakeOrder.setUpdateTime(new Date()); - - if (warehouseStorageOrder.getStorageNum().equals(oldWarehouseStorageOrder.getTemporaryQualifiedNum())){ - sysMakeOrder.setEceiptStatus("8");//全部入库 - }else { sysMakeOrder.setEceiptStatus("7");//部分入库 - } - - //更新生产订单的数据 - updateResult += sysMakeOrderMapper.updateByMakeNo(sysMakeOrder); - if (updateResult <= 0){ - log.warn("更新生产单失败,未影响任何行"); - throw new BusinessException("更新生产单失败,未影响任何行"); + //更新生产订单的数据 + updateResult += sysMakeOrderMapper.updateByMakeNo(sysMakeOrder); + if (updateResult <= 0){ + log.warn("更新生产单失败,未影响任何行"); + throw new BusinessException("更新生产单失败,未影响任何行"); + } + }else if(relatedCode.startsWith("QG")){ + BaseRequisitioningOrderVo temp = new BaseRequisitioningOrderVo(); + temp.setRequisitioningCode(relatedCode); + BaseRequisitioningOrder requisitioningOrder = requisitioningOrderMapper.selectBaseRequisitioningOrderList(temp).get(0); + requisitioningOrder.setUpdateBy(loginName); + requisitioningOrder.setUpdateTime(new Date()); + + requisitioningOrder.setRequisitioningStatus("2");//部分入库 + //更新生产订单的数据 + updateResult += requisitioningOrderMapper.updateBaseRequisitioningOrder(requisitioningOrder); + if (updateResult <= 0){ + log.warn("更新请购单失败,未影响任何行"); + throw new BusinessException("更新请购单失败,未影响任何行"); + } } } return updateResult; 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 1df0d43b..8445f849 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 @@ -4,6 +4,7 @@ import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; import com.ruoyi.aftersales.mapper.AfterSalesShippingDeviceMapper; import com.ruoyi.common.core.redis.RedisCache; @@ -593,22 +594,26 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS String purchaseOrderCode = warehouseStorageOrder.getRelatedOrderCode(); PurchaseOrder purchaseOrder = purchaseOrderMapper.selectPurchaseOrderByOrderCode(purchaseOrderCode); - List warehouseStorageOrderDetailList = warehouseStorageOrder.getWarehouseStorageOrderDetailList(); - if (StringUtils.isEmpty(warehouseStorageOrderDetailList)){ - log.warn("入库单详情数据为空:{}",warehouseStorageOrderDetailList); + List orderDetailList = warehouseStorageOrder.getWarehouseStorageOrderDetailList(); + if (StringUtils.isEmpty(orderDetailList)){ + log.warn("入库单详情数据为空:{}",orderDetailList); throw new BusinessException("入库单详情数据为空"); } - - //入库数 - Integer storageNum = 0; - // 检查storageNum是否含有null值 - boolean hasThisStorageNumNull = warehouseStorageOrderDetailList.stream() + boolean hasThisStorageNumNull = orderDetailList.stream() .anyMatch(item -> item.getStorageNum() == null); if (hasThisStorageNumNull) { throw new BusinessException("存在入库数为空,请检查!"); } + + List warehouseStorageOrderDetailList = orderDetailList.stream() + .filter(item ->item.getStorageNum() != 0).collect(Collectors.toList()); + + + //入库数 + Integer storageNum = 0; + // 计算各个字段的总和 storageNum = warehouseStorageOrderDetailList.stream() .mapToInt(WarehouseStorageOrderDetail::getStorageNum) @@ -979,22 +984,26 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS String purchaseOrderCode = warehouseStorageOrder.getRelatedOrderCode(); PurchaseOrder purchaseOrder = purchaseOrderMapper.selectPurchaseOrderByOrderCode(purchaseOrderCode); - List warehouseStorageOrderDetailList = warehouseStorageOrder.getWarehouseStorageOrderDetailList(); - if (StringUtils.isEmpty(warehouseStorageOrderDetailList)){ - log.warn("入库单详情数据为空:{}",warehouseStorageOrderDetailList); + List orderDetailList = warehouseStorageOrder.getWarehouseStorageOrderDetailList(); + if (StringUtils.isEmpty(orderDetailList)){ + log.warn("入库单详情数据为空:{}",orderDetailList); throw new BusinessException("入库单详情数据为空"); } - //入库数 - Integer storageNum = 0; - // 检查storageNum是否含有null值 - boolean hasThisStorageNumNull = warehouseStorageOrderDetailList.stream() + boolean hasThisStorageNumNull = orderDetailList.stream() .anyMatch(item -> item.getStorageNum() == null); if (hasThisStorageNumNull) { throw new BusinessException("存在入库数为空,请检查!"); } + + List warehouseStorageOrderDetailList = orderDetailList.stream() + .filter(item ->item.getStorageNum() != null && item.getStorageNum() != 0).collect(Collectors.toList()); + + //入库数 + Integer storageNum = 0; + // 计算各个字段的总和 storageNum = warehouseStorageOrderDetailList.stream() .mapToInt(WarehouseStorageOrderDetail::getStorageNum) @@ -1026,7 +1035,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS oldPurchaseOrderChild.setUpdateTime(DateUtils.getNowDate()); Integer storageNumDetail = warehouseStorageOrderDetail.getStorageNum(); - Integer qualityHasQualifiedNum = warehouseStorageOrderDetail.getQualityHasQualifiedNum(); + Integer qualityHasQualifiedNum = Optional.ofNullable(warehouseStorageOrderDetail.getQualityHasQualifiedNum()) + .orElse(0); if (qualityHasQualifiedNum < storageNumDetail){ throw new BusinessException("入库数量不能大于品质合格数"); } @@ -1044,7 +1054,7 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS } if (qualityHasQualifiedNum < hasStorageNum){ - throw new BusinessException("已入库数量不能大于品质合格数"); + throw new BusinessException("总入库数量不能大于品质合格数"); } int updatePurchaseOrderChildResult = purchaseOrderChildMapper.updatePurchaseOrderChild(oldPurchaseOrderChild);