|
|
@ -820,11 +820,23 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService |
|
|
|
if(StringUtils.isEmpty(planDetails)){ |
|
|
|
throw new BusinessException("委外计划物料集合为空!添加失败"); |
|
|
|
} |
|
|
|
// 合并相同料号的数据,计划数相加
|
|
|
|
Map<String, OutsourcePlanDetail> aggregated = new HashMap<>(); |
|
|
|
for (OutsourcePlanDetail detail : planDetails) { |
|
|
|
aggregated.merge(detail.getMaterialNo(), |
|
|
|
new OutsourcePlanDetail(), |
|
|
|
(existing, replacement) -> { |
|
|
|
existing.setPlannedOutsourceAmount(existing.getPlannedOutsourceAmount() + replacement.getPlannedOutsourceAmount()); |
|
|
|
return existing; |
|
|
|
}); |
|
|
|
} |
|
|
|
// 将Map转回List
|
|
|
|
List<OutsourcePlanDetail> mergedPlanDetails = new ArrayList<>(aggregated.values()); |
|
|
|
int materialAmount = 0; |
|
|
|
int processAmount = 0; |
|
|
|
int materialSum = 0; |
|
|
|
Set<String> uniqueProcessNos = new HashSet<>(); // 用于存储唯一的 processNo
|
|
|
|
for (OutsourcePlanDetail detail:planDetails) { |
|
|
|
for (OutsourcePlanDetail detail:mergedPlanDetails) { |
|
|
|
detail.setOutsourcePlanCode(outsourcePlanCode); |
|
|
|
detail.setCreateBy(ShiroUtils.getLoginName()); |
|
|
|
detail.setCreateTime(DateUtils.getNowDate()); |
|
|
@ -885,7 +897,7 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService |
|
|
|
tempBom.setId(detail.getMakeBomId()); |
|
|
|
SysMakeorderBom makeorderBom = makeorderBomMapper.selectSysMakeorderBomByNo(tempBom); |
|
|
|
int hasOutSum = Optional.ofNullable(makeorderBom.getHasOutNum()).orElse(0); |
|
|
|
hasOutSum = hasOutSum + makeorderBom.getHasOutNum(); |
|
|
|
hasOutSum = hasOutSum + detail.getPlannedOutsourceAmount(); |
|
|
|
makeorderBom.setHasOutNum(hasOutSum); |
|
|
|
updateResult += makeorderBomMapper.updateSysMakeorderBom(makeorderBom); |
|
|
|
} |
|
|
|