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);