diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index e0dea3a4..25e2f9a9 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -1153,21 +1153,22 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { public int insertWorkOrderBatch(ProOrderWorkorderBatch proOrderWorkorderBatch) { String workOrderCode = proOrderWorkorderBatch.getWorkorderCode(); String username = SecurityUtils.getUsername(); - Long newBatchQuantity = proOrderWorkorderBatch.getNewBatchQuantity(); - if (newBatchQuantity == null) { - return 0; - } List workOrders = proOrderWorkorderMapper.selectWorkOrderIdByBatch(workOrderCode); - // 获取子母工单数量 - Optional pQuantity = workOrders.stream().filter(item -> "0".equals(item.getParentOrder())) - .findFirst().map(ProOrderWorkorder::getQuantitySplit); - Optional cQuantity = workOrders.stream().filter(item -> !"0".equals(item.getParentOrder())) - .findFirst().map(ProOrderWorkorder::getQuantitySplit); // 系数 - Long coefficient = 0L; - if (pQuantity.isPresent() && cQuantity.isPresent()) { - coefficient = cQuantity.get() / pQuantity.get(); + Long coefficient = 1L; + if(workOrders.size()==2){ + // 获取子母工单数量 + Optional pQuantity = workOrders.stream().filter(item -> "0".equals(item.getParentOrder())) + .findFirst().map(ProOrderWorkorder::getQuantitySplit); + Optional cQuantity = workOrders.stream().filter(item -> !"0".equals(item.getParentOrder())) + .findFirst().map(ProOrderWorkorder::getQuantitySplit); + + if (pQuantity.isPresent() && cQuantity.isPresent()) { + coefficient = cQuantity.get() / pQuantity.get(); + } + }else if(workOrders.size()==3){ + //TODO; } int count = 0; @@ -1184,12 +1185,15 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { batch.setUpdateBy(username); batch.setUpdateTime(nowDate); - if ("0".equals(workOrder.getParentOrder())) { - // 设置父工单数量 - batch.setBatchQuantity(newBatchQuantity); - }else { - // 设置子工单数量 - batch.setBatchQuantity(newBatchQuantity * coefficient); + if(proOrderWorkorderBatch.getNewBatchQuantity() != null){ + Long newBatchQuantity = proOrderWorkorderBatch.getNewBatchQuantity(); + if ("0".equals(workOrder.getParentOrder())) { + // 设置父工单数量 + batch.setBatchQuantity(newBatchQuantity); + }else { + // 设置子工单数量 + batch.setBatchQuantity(newBatchQuantity * coefficient); + } } count += proOrderWorkorderBatchMapper.insertProOrderWorkorderBatch(batch); @@ -1205,21 +1209,22 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { String username = SecurityUtils.getUsername(); String batchCode = proOrderWorkorderBatch.getBatchCode(); String newBatchCode = proOrderWorkorderBatch.getNewBatchCode(); - Long newBatchQuantity = proOrderWorkorderBatch.getNewBatchQuantity(); - if (newBatchQuantity == null) { - return 0; - } List workOrders = proOrderWorkorderMapper.selectWorkOrderIdByBatch(workOrderCode); - // 获取子母工单数量 - Optional pQuantity = workOrders.stream().filter(item -> "0".equals(item.getParentOrder())) - .findFirst().map(ProOrderWorkorder::getQuantitySplit); - Optional cQuantity = workOrders.stream().filter(item -> !"0".equals(item.getParentOrder())) - .findFirst().map(ProOrderWorkorder::getQuantitySplit); // 系数 - Long coefficient = 0L; - if (pQuantity.isPresent() && cQuantity.isPresent()) { - coefficient = cQuantity.get() / pQuantity.get(); + Long coefficient = 1L; + if(workOrders.size()==2){ + // 获取子母工单数量 + Optional pQuantity = workOrders.stream().filter(item -> "0".equals(item.getParentOrder())) + .findFirst().map(ProOrderWorkorder::getQuantitySplit); + Optional cQuantity = workOrders.stream().filter(item -> !"0".equals(item.getParentOrder())) + .findFirst().map(ProOrderWorkorder::getQuantitySplit); + + if (pQuantity.isPresent() && cQuantity.isPresent()) { + coefficient = cQuantity.get() / pQuantity.get(); + } + }else if(workOrders.size()==3){ + //TODO; } int count = 0; @@ -1236,12 +1241,18 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { batch.setUpdateBy(username); batch.setUpdateTime(DateUtils.getNowDate()); - if ("0".equals(workOrder.getParentOrder())) { - // 设置父工单数量 - batch.setNewBatchQuantity(newBatchQuantity); - }else { - // 设置子工单数量 - batch.setNewBatchQuantity(newBatchQuantity * coefficient); + if(proOrderWorkorderBatch.getNewBatchQuantity() != null){ + Long newBatchQuantity = proOrderWorkorderBatch.getNewBatchQuantity(); + if (newBatchQuantity == null) { + return 0; + } + if ("0".equals(workOrder.getParentOrder())) { + // 设置父工单数量 + batch.setNewBatchQuantity(newBatchQuantity); + }else { + // 设置子工单数量 + batch.setNewBatchQuantity(newBatchQuantity * coefficient); + } } count += proOrderWorkorderBatchMapper.updateWorkorderBatch(batch);