diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index bb5b3bf..501fd57 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -991,7 +991,7 @@ public class MesWorkOrderService extends BaseMesService implements private void insertPullOrderInfo(MesWorkOrder mesWorkOrder,List bomPullList,MesPartPull mesPartPull,List mesPartPullDetailList,String organizeCode,int i, int roundPackQty){ // 计算所有拉动单的数量,生成拉动单 - Map pullDetailMap = mesPartPullDetailList.stream().collect(Collectors.toMap(MesPartPullDetail::getPullPartNo, Function.identity())); + Map> pullDetailMap = mesPartPullDetailList.stream().filter(item->!StringUtils.isEmpty(item.getPullPartNo())).collect(Collectors.groupingBy(MesPartPullDetail::getPullPartNo)); List pullDetailPartList = mesPartPullDetailList.stream().map(MesPartPullDetail::getPullPartNo).collect(Collectors.toList()); String kittingOrderNoRuleCode = mesConfigService.getCfgValue(organizeCode, "KITTING_ORDER_NO_RULE_CODE"); GenSerialNoModel genSerialNoModel = new GenSerialNoModel(kittingOrderNoRuleCode); @@ -1020,30 +1020,32 @@ public class MesWorkOrderService extends BaseMesService implements List filterBomList = bomPullList.stream().filter(item -> pullDetailPartList.contains(item.getItemPartNo())).collect(Collectors.toList()); for (MesBom mesBom : filterBomList) { MesPullingOrderPartInfo detail = new MesPullingOrderPartInfo(); - MesPartPullDetail mesPartPullDetail = pullDetailMap.get(mesBom.getItemPartNo()); - detail.setOrganizeCode(organizeCode); - detail.setPullCode(pullingOrder.getPullCode()); - detail.setPullingOrderNo(pullingOrder.getPullingOrderNo()); - detail.setWorkOrderNo(pullingOrder.getWorkOrderNo()); - detail.setWorkOrderSeq(pullingOrder.getWorkOrderSeq()); - detail.setCustOrderNo(pullingOrder.getCustOrderNo()); - detail.setPartNo(mesBom.getItemPartNo()); - detail.setPartName(mesBom.getItemPartName()); - double remainingQty = mesBom.getItemQty() - i * roundPackQty; - if (remainingQty < -roundPackQty){ - continue; - } - detail.setPullQty(remainingQty > 0 ? roundPackQty : (mesBom.getItemQty() - (i-1) * roundPackQty)); - detail.setCustOrderNo(pullingOrder.getCustOrderNo()); - detail.setWorkOrderSeq(pullingOrder.getWorkOrderSeq()); - detail.setWaterSeq(pullingOrder.getProductSeq()); - detail.setWorkCellCode(mesPartPullDetail.getWorkCellCode()); + List mesPartPullDetailList1 = pullDetailMap.get(mesBom.getItemPartNo()); + for (MesPartPullDetail mesPartPullDetail : mesPartPullDetailList1) { + detail.setOrganizeCode(organizeCode); + detail.setPullCode(pullingOrder.getPullCode()); + detail.setPullingOrderNo(pullingOrder.getPullingOrderNo()); + detail.setWorkOrderNo(pullingOrder.getWorkOrderNo()); + detail.setWorkOrderSeq(pullingOrder.getWorkOrderSeq()); + detail.setCustOrderNo(pullingOrder.getCustOrderNo()); + detail.setPartNo(mesBom.getItemPartNo()); + detail.setPartName(mesBom.getItemPartName()); + double remainingQty = mesBom.getItemQty() - i * roundPackQty; + if (remainingQty < -roundPackQty){ + continue; + } + detail.setPullQty(remainingQty > 0 ? roundPackQty : (mesBom.getItemQty() - (i-1) * roundPackQty)); + detail.setCustOrderNo(pullingOrder.getCustOrderNo()); + detail.setWorkOrderSeq(pullingOrder.getWorkOrderSeq()); + detail.setWaterSeq(pullingOrder.getProductSeq()); + detail.setWorkCellCode(mesPartPullDetail.getWorkCellCode()); // detail.setStatus(MesExtEnumUtil.PULL_ORDER_PART_STATUS.UN_SENTED.getValue());///明细已送料为1,未送料为0 - detail.setCustPartNo(pullingOrder.getCustPartNo()); - detail.setCarSeries(pullDetailMap.get(mesBom.getItemPartNo()) == null ? "" : pullDetailMap.get(mesBom.getItemPartNo()).getCarSeries()); - detail.setOrderFlag(pullingOrder.getOrderFlag()); - ConvertBean.serviceModelInitialize(detail, AuthUtil.getSessionUser().getUserName()); - pullingOrderPartInfoRao.insert(detail); + detail.setCustPartNo(pullingOrder.getCustPartNo()); + detail.setCarSeries(mesPartPullDetail.getCarSeries() == null ? "" : mesPartPullDetail.getCarSeries()); + detail.setOrderFlag(pullingOrder.getOrderFlag()); + ConvertBean.serviceModelInitialize(detail, AuthUtil.getSessionUser().getUserName()); + pullingOrderPartInfoRao.insert(detail); + } } } @@ -1075,7 +1077,7 @@ public class MesWorkOrderService extends BaseMesService implements for (MesBom bom : bomList) { if (bom.getPartType() != null && bom.getPartType().equalsIgnoreCase("X")) { - getPlatBom(null,bom.getItemPartNo(), effectiveTime, organizeCode); + bomResultList.addAll(getPlatBom(null,bom.getItemPartNo(), effectiveTime, organizeCode)); } else { bom.setBomCode(bom.getBomCode().toLowerCase()); bomResultList.add(bom);