From 2e5fe8dc8e213e4928013684d930f68fbd86b157 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期一, 17 二月 2025 13:55:30 +0800
Subject: [PATCH] 流程卡合并标记打印

---
 north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java |   52 ++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 44 insertions(+), 8 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
index 69cac4a..60c56dc 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -270,17 +270,21 @@
             return null;
         }
     }
-    public Map<String, Object> getSelectPrintingSv(Map<String, Object> object, String printMerge, String printLike) {
+    public Map<String, Object> getSelectPrintingSv(Map<String, Object> object, String printMerge, String printLike, String merge) {
         if (printMerge == null){
             printMerge= "";
         }
         if (printLike == null){
             printLike= "";
         }
+        if (merge == null){
+            merge= "";
+        }
         Map<String, Object> map = new HashMap<>();
         List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//鏈�缁堢粨鏋�
         List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
         if (!flowCardList.isEmpty()) {
+            Set<String> processedProcessIds = new HashSet<>();  // 鐢ㄦ潵瀛樻斁宸插鐞嗚繃鐨� processId
             for (FlowCard flowCard : flowCardList) {
                 Map<String, Object> itemmap = new HashMap<>();
                 //娴佺▼鍗¤〃澶磋〃灏炬暟鎹�
@@ -296,10 +300,24 @@
                         itemmap.put("detailList", detailList);
                     }
                     else {
-                        itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId()));
+                        if(merge.equals("1")&& flowCard.getMerge().equals(1)){
+                            // 妫�鏌ユ槸鍚﹀凡缁忓鐞嗚繃璇� processId锛屽鏋滃鐞嗚繃鍒欒烦杩�
+                            if (processedProcessIds.contains(flowCard.getProcessId())) {
+                                continue;
+                            }
+                            // 灏嗚 processId 鍔犲叆宸插鐞嗛泦鍚�
+                            processedProcessIds.add(flowCard.getProcessId());
+                            itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId()));
 
-                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess());
-                        itemmap.put("detailList", detailList);
+                            List<Map<String, Object>> detailList = flowCardMapper.getDetailListMerge(flowCard.getProcessId(),flowCard.getProcess());
+                            itemmap.put("detailList", detailList);
+                        }else{
+                            itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId()));
+
+                            List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess());
+                            itemmap.put("detailList", detailList);
+                        }
+
                     }
 
                 }
@@ -354,12 +372,16 @@
         return map;
     }
 
-    public Map<String, Object> getSelectPrintProject(String printProject) {
+    public Map<String, Object> getSelectPrintProject(String printProject,String merge) {
 
         Map<String, Object> map = new HashMap<>();
         List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//鏈�缁堢粨鏋�
+        if (merge == null){
+            merge= "";
+        }
         List<FlowCard> flowCardList = flowCardMapper.getFlowCardListPrintProject(printProject);
         if (!flowCardList.isEmpty()) {
+            Set<String> processedProcessIds = new HashSet<>();  // 鐢ㄦ潵瀛樻斁宸插鐞嗚繃鐨� processId
             for (FlowCard flowCard : flowCardList) {
                 Map<String, Object> itemmap = new HashMap<>();
 
@@ -381,9 +403,23 @@
                     else {
 
                         if(flowCard.getPatchState().equals(0)){
-                            itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId()));
-                            List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikes(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess(),printProject,flowCard.getQuantity());
-                            itemmap.put("detailList", detailList);
+                            if(merge.equals("1")&& flowCard.getMerge().equals(1)){
+                                // 妫�鏌ユ槸鍚﹀凡缁忓鐞嗚繃璇� processId锛屽鏋滃鐞嗚繃鍒欒烦杩�
+                                if (processedProcessIds.contains(flowCard.getProcessId())) {
+                                    continue;
+                                }
+                                // 灏嗚 processId 鍔犲叆宸插鐞嗛泦鍚�
+                                processedProcessIds.add(flowCard.getProcessId());
+                                itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId()));
+
+                                List<Map<String, Object>> detailList = flowCardMapper.getDetailListMerge(flowCard.getProcessId(),flowCard.getProcess());
+                                itemmap.put("detailList", detailList);
+                            }else{
+                                itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId()));
+                                List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess());
+                                itemmap.put("detailList", detailList);
+                            }
+
                         }else{
                             itemmap.put("detail", flowCardMapper.getPrimaryLists(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId(),flowCard.getQuantity()));
                             List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikes(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess(),printProject,flowCard.getQuantity());

--
Gitblit v1.8.0