From 5f0eb647af64ca3edca8327bcc00bb64f290327c Mon Sep 17 00:00:00 2001 From: "logic.fang" Date: Tue, 11 Mar 2025 16:07:37 +0800 Subject: [PATCH] =?UTF-8?q?45527=20=E7=A4=BC=E5=98=89=E7=A6=8F=E7=89=B9?= =?UTF-8?q?=E5=8F=91=E8=BF=90=E5=8D=95=E6=89=93=E5=8D=B0-assyCode=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesPartShippingGroupService.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPartShippingGroupService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPartShippingGroupService.java index 09b9b3b..e2ee583 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPartShippingGroupService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPartShippingGroupService.java @@ -187,11 +187,24 @@ public class MesPartShippingGroupService implements IMesPartShippingGroupService //assyCode 的个数 / 2 代表会生成实体发运单的份数(一个 assyCode 就是一个表格,一份实体表单上可以放两个表格) Map> detailByAssyCodeMap = details.stream().collect(Collectors.groupingBy(MesShippingOrderManagementDetail::getAssyCode)); + //将assyCode按照logic_Seq进行排序(选取每个assyCode对应的那组数据中的logic_seq最小值,根据该值对assyCode进行排序) List assyCodeList = new ArrayList<>(detailByAssyCodeMap.keySet()); + Map logicSeqAndAssyCodeMap = new HashMap<>(); + for (String assyCode : assyCodeList) { + List detailList = detailByAssyCodeMap.get(assyCode); + Optional min = + detailList.stream().min(Comparator.comparing(MesShippingOrderManagementDetail::getLogicSeq)); + min.ifPresent(mesShippingOrderManagementDetail -> logicSeqAndAssyCodeMap.put(mesShippingOrderManagementDetail.getLogicSeq(), assyCode)); + } + List collect = logicSeqAndAssyCodeMap.keySet().stream().sorted().collect(Collectors.toList()); + List newAssyCodeList = new ArrayList<>(); + for (Long logicSeq : collect) { + newAssyCodeList.add(logicSeqAndAssyCodeMap.get(logicSeq)); + } //将 assyCode 两两分组 - List> physicalOrderList = IntStream.range(0, assyCodeList.size()) + List> physicalOrderList = IntStream.range(0, newAssyCodeList.size()) .filter(i -> i % 2 == 0) - .mapToObj(i -> assyCodeList.subList(i, Math.min(i + 2, assyCodeList.size()))) + .mapToObj(i -> newAssyCodeList.subList(i, Math.min(i + 2, newAssyCodeList.size()))) .collect(Collectors.toList()); for (List list : physicalOrderList) { //生成一张实体发运单