From 02e5ff4df4ef5467644ca63db18630a2f6583934 Mon Sep 17 00:00:00 2001
From: 于杰 <1210123631@qq.com>
Date: 星期一, 11 八月 2025 16:31:05 +0800
Subject: [PATCH] 解决glassPoint数据缺失问题

---
 north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml                     |    3 +++
 north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java |   50 +++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 52 insertions(+), 1 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
index 16ef67e..1ed6e64 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
@@ -323,7 +323,29 @@
                         }
                     }
                 }
-
+                // 鍦ㄤ繚瀛樹箣鍓嶅鐞� glassPoint 鏁版嵁
+                for (Map<String, Object> detail : objectMap2) {
+                    if (detail.containsKey("glassPoint")) {
+                        Object glassPointObj = detail.get("glassPoint");
+                        if (glassPointObj != null) {
+                            try {
+                                // 濡傛灉 glassPointObj 宸茬粡鏄瓧绗︿覆锛屽垯涓嶉渶瑕佽浆鎹�
+                                if (!(glassPointObj instanceof String)) {
+                                    // 灏嗗璞¤浆鎹负 JSON 瀛楃涓�
+                                    String glassPointStr = mapper.writeValueAsString(glassPointObj);
+                                    detail.put("glassPoint", glassPointStr);
+                                }
+                            } catch (Exception e) {
+                                // 濡傛灉杞崲澶辫触锛岃褰曢敊璇苟绉婚櫎璇ュ瓧娈�
+                                System.err.println("杞崲 glassPoint 澶辫触: " + e.getMessage());
+                                detail.remove("glassPoint");
+                            }
+                        } else {
+                            // 濡傛灉 glassPointObj 涓� null锛岀Щ闄よ瀛楁
+                            detail.remove("glassPoint");
+                        }
+                    }
+                }
                 glassOptimizeMapper.addOptimizeDetail(objectMap2,projectId);
             }
             glassOptimizeMapper.updateProjectOptimizeStateMp(projectId,1);
@@ -372,6 +394,32 @@
         if (offsets != null) {
             allDetails.addAll(offsets);
         }
+
+        // 瑙f瀽 glassPoint 瀛楃涓�
+        ObjectMapper mapper = new ObjectMapper();
+        for (Map<String, Object> detail : allDetails) {
+            if (detail.containsKey("glassPoint")) {
+                Object glassPointObj = detail.get("glassPoint");
+                if (glassPointObj instanceof String) {
+                    String glassPointStr = (String) glassPointObj;
+                    if (glassPointStr != null && !glassPointStr.isEmpty() && !glassPointStr.equals("null")) {
+                        try {
+                            // 瑙f瀽 JSON 瀛楃涓蹭负瀵硅薄
+                            Object parsedGlassPoint = mapper.readValue(glassPointStr, Object.class);
+                            detail.put("glassPoint", parsedGlassPoint);
+                        } catch (Exception e) {
+                            System.err.println("瑙f瀽 glassPoint 澶辫触: " + e.getMessage());
+                            // 瑙f瀽澶辫触鏃朵繚鐣欏師瀛楃涓叉垨璁剧疆榛樿鍊�
+                            detail.put("glassPoint", new ArrayList<>());
+                        }
+                    } else {
+                        // 绌哄瓧绗︿覆鎴� null 鏃惰缃粯璁ゅ��
+                        detail.put("glassPoint", new ArrayList<>());
+                    }
+                }
+            }
+        }
+
         // 鎸夌収stockId灏嗘槑缁嗗垎缁勫苟娣诲姞鍒板搴旂殑甯冨眬涓�
         if (layouts != null && !layouts.isEmpty()) {
             for (Map<String, Object> layout : layouts) {
diff --git a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
index fe665f2..81b7d6e 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -1233,6 +1233,7 @@
             patch_state,
             mark_icon,
             isRotate,
+            glass_point,
             rack_no
             ) VALUES (
             #{projectId},
@@ -1251,6 +1252,7 @@
             #{glass.patchState},
             #{glass.markIcon},
             #{glass.isRotate},
+            #{glass.glassPoint},
             #{glass.rackNo}
             );
         </foreach>
@@ -1827,6 +1829,7 @@
             y_axis AS y,
             mark_icon AS markIcon,
             isRotate,
+            glass_point AS glassPoint,
             rack_no As rackNo
         FROM
             pp.optimize_detail

--
Gitblit v1.8.0