diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java index b4ceca597..6ffb4525c 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java @@ -1479,43 +1479,6 @@ public class PlanServiceImpl implements PlanService { computeOrderInfo(orderIds); } - public static Map> groupByMaterialAndThickness(List items) { - Map> groupedItems = new HashMap<>(); - - for (SavePlanPlateList.GoodsItemList item : items) { - // 将 material 和 thickness 组合成键 - String key = item.getMaterial() + "|" + item.getThickness(); - - // 如果键不存在,初始化一个新的列表 - groupedItems.putIfAbsent(key, new ArrayList<>()); - - // 添加当前项的 id 到对应的分组 - groupedItems.get(key).add(item.getId()); - } - - return groupedItems; - } - - public static Map> groupByThickness(List items) { - Map> groupedItems = new HashMap<>(); - - for (SavePlanPlateList.GoodsItemList item : items) { - // 将 material 和 thickness 组合成键 - String key = item.getThickness().toString(); - - // 如果键不存在,初始化一个新的列表 - groupedItems.putIfAbsent(key, new ArrayList<>()); - - // 添加当前项的 id 到对应的分组 - groupedItems.get(key).add(item.getId()); - } - - - return groupedItems; - } - - - public static Map> groupByMaterialAndThicknessFilterLessThanOne(List items) { Map> groupedItems = new HashMap<>(); @@ -1559,35 +1522,18 @@ public class PlanServiceImpl implements PlanService { } - public static Map> groupByMaterialAndThicknessEqualToOne(List items) { + /** + * 混单情况下不用混单的材质按goodsCode商品编码分组 + * + * @param items + * @return + */ + public static Map> groupByGoodsCodeEqualToOne(List items) { Map> groupedItems = new HashMap<>(); for (SavePlanPlateList.GoodsItemList item : items) { // 将 material 和 thickness 组合成键 -// String key = item.getMaterial() + "|" + item.getThickness(); - - // 如果键不存在,初始化一个新的列表 - groupedItems.putIfAbsent(item.getId().toString(), new ArrayList<>() {{ - add(item.getId()); - }}); - - // 添加当前项的 id 到对应的分组 -// groupedItems.get(key).add(item.getId()); - } - - // 只留混单的材质 -// groupedItems.entrySet().removeIf(entry -> entry.getValue().size() > 1); - - return groupedItems; - } - - - public static Map> groupByThicknessEqualToOne(List items) { - Map> groupedItems = new HashMap<>(); - - for (SavePlanPlateList.GoodsItemList item : items) { - // 将 material 和 thickness 组合成键 - String key = item.getThickness().toString(); + String key = item.getGoodsId(); // 如果键不存在,初始化一个新的列表 groupedItems.putIfAbsent(key, new ArrayList<>()); @@ -1596,15 +1542,9 @@ public class PlanServiceImpl implements PlanService { groupedItems.get(key).add(item.getId()); } - // 只留混单的材质 - groupedItems.entrySet().removeIf(entry -> entry.getValue().size() > 1); - return groupedItems; } - - - public static Map> groupByMaterialAndThicknessAndColorAndBrand(List items) { Map> groupedItems = new HashMap<>(); @@ -1643,37 +1583,23 @@ public class PlanServiceImpl implements PlanService { // 有选实际大板的小板加大板创建排单 getCreatePlanMultipleGoodsList(planActualGoodsLists, plateItemList, planDOS, processId, processName, loginUser); - // 没有选择实际大板的创建排单 - if(MixConfigTypeEnum.SAMEMATERIALANDTHICKNESS.equals(mixedType)){ - // 筛选出材质和厚度相同的大板 - grouped = groupByMaterialAndThicknessEqualToOne(goodsItemList); - }else { + // 不用混单的材质按goodsCode商品编码分组 + grouped = groupByGoodsCodeEqualToOne(goodsItemList); - grouped = groupByThicknessEqualToOne(goodsItemList); - } - - if(CollUtil.isNotEmpty(grouped)) { + if (CollUtil.isNotEmpty(grouped)) { createPlanAndPlateDataList(grouped, plateItemList, planDOS, processId, processName, loginUser, PlanTypeEnum.ORDERPLAN.getType()); } - }else { - - if(MixConfigTypeEnum.SAMEMATERIALANDTHICKNESS.equals(mixedType)){ - // 筛选出材质和厚度相同的大板 - grouped = groupByMaterialAndThickness(goodsItemList); - - }else { - // 筛选出厚度相同的大板 - grouped = groupByThickness(goodsItemList); + } else { + // 不用混单的材质按goodsCode商品编码分组 + grouped = groupByGoodsCodeEqualToOne(goodsItemList); + if (CollUtil.isNotEmpty(grouped)) { + createPlanAndPlateDataList(grouped, plateItemList, planDOS, processId, processName, loginUser, PlanTypeEnum.ORDERPLAN.getType()); } - - createPlanAndPlateDataList(grouped, plateItemList, planDOS, processId, processName, loginUser, PlanTypeEnum.ORDERPLAN.getType()); - } - planDOS.forEach(f->f.setFilter(f.getType().equals(PlanTypeEnum.MIXEDORDERPLAN.getType()) ? mixedType : 0));