From a158ed9136af588b82d365f98074b29c70cdb601 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期五, 08 八月 2025 15:58:35 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml                     |   38 +++++++++++++++++-
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java   |    5 ++
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue         |    1 
 north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java |   51 ++++++++++++++++++++++++-
 4 files changed, 89 insertions(+), 6 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue
index 78839c0..d324de7 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue
@@ -686,6 +686,7 @@
     produceList.value = produceList.value.concat(deepClone(res.data.data))
     xGrid.value.reloadData(produceList.value);
     gridOptions.loading = false;
+    console.log('宸ョ▼绠$悊琛ㄦ牸鏁版嵁',produceList.value);
   } else {
     ElMessage.warning(res.msg);
   }
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java
index 32daa6d..0c92e42 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java
@@ -194,4 +194,9 @@
     List<Map<String,Object>> selectOptimizeDetail(String projectNo);
 
     List<Map<String,Object>> selectFlowCardInfoList(String projectNo);
+
+
+    Map<String, Object> getGlassInfo(String projectId);
+
+    void addOptimizeOffcut(Map<String, Object> map, String projectId, String glassType, String glassThickness);
 }
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 9535a46..b6adbf0 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
@@ -262,6 +262,8 @@
             List<Map<String, Object>> originalFilm = (List<Map<String, Object>>) object.get("originalFilm");
             glassOptimizeMapper.addOptimizeUse(originalFilm,projectId,"admin");
 
+            Map<String, Object> glassInfo = glassOptimizeMapper.getGlassInfo(projectId);
+
             ObjectMapper mapper = new ObjectMapper();
             String json = mapper.writeValueAsString(optimalResults);
             glassOptimizeMapper.addOptimizeProjectFile(json,projectId,"admin");
@@ -270,12 +272,55 @@
             glassOptimizeMapper.addOptimizeLayout(objectMapList,projectId);
             for(Map<String, Object> objectMap:objectMapList){
                 List<Map<String, Object>> objectMap2 = (List<Map<String, Object>>) objectMap.get("glassDetails");
-                //杩唬鐜荤拑鏄庣粏闆嗗悎鍒犻櫎浣欐枡
+                //杩唬鐜荤拑鏄庣粏闆嗗悎澶勭悊浣欐枡鍜屽叾浠�
                 Iterator<Map<String, Object>> iterator = objectMap2.iterator();
                 while (iterator.hasNext()) {
                     Map<String, Object> map = iterator.next();
-                    if (map.get("isRemain").toString()=="true") {
-                        iterator.remove();
+                    // 淇敼isRemain鍒ゆ柇閫昏緫锛屾敮鎸佹暟瀛�0/1鍜屽瓧绗︿覆"0"/"1"
+                    boolean isRemain = false;
+                    if (map.containsKey("isRemain")) {
+                        Object isRemainObj = map.get("isRemain");
+                        if (isRemainObj != null) {
+                            if (isRemainObj instanceof Number) {
+                                // 鏁板瓧绫诲瀷: 1琛ㄧずtrue锛�0琛ㄧずfalse
+                                isRemain = ((Number) isRemainObj).intValue() == 1;
+                            } else {
+                                // 瀛楃涓茬被鍨�: "1"琛ㄧずtrue锛�"0"琛ㄧずfalse
+                                isRemain = "1".equals(isRemainObj.toString());
+                            }
+                        }
+                    }
+
+                    if (isRemain) {
+                        System.out.println( map);
+                        if (glassInfo != null) {
+                            String glassType = (String) glassInfo.get("glass_type");
+                            String glassThickness = (String) glassInfo.get("glass_thickness");
+                            // 浣欐枡瀛樺叆optimizeoffcut
+                            glassOptimizeMapper.addOptimizeOffcut(map, projectId, glassType, glassThickness);
+                        }
+                        iterator.remove(); // 浠庡師鍒楄〃涓Щ闄�
+                    }else {
+                        // 澶勭悊isRotate瀛楁杞崲 (鐜板湪鏄�0/1)
+                        if (map.containsKey("isRotate")) {
+                            Object isRotateObj = map.get("isRotate");
+                            if (isRotateObj != null) {
+                                if (isRotateObj instanceof Number) {
+                                    // 鐩存帴浣跨敤鏁板瓧鍊�
+                                    map.put("isRotate", ((Number) isRotateObj).intValue());
+                                } else {
+                                    // 瀛楃涓插舰寮忕殑"0"/"1"
+                                    String isRotateStr = isRotateObj.toString();
+                                    if ("1".equals(isRotateStr)) {
+                                        map.put("isRotate", 1);
+                                    } else {
+                                        map.put("isRotate", 0);
+                                    }
+                                }
+                            } else {
+                                map.put("isRotate", 0); // 榛樿鍊�
+                            }
+                        }
                     }
                 }
 
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 b8e3b09..44f15fe 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -746,7 +746,7 @@
         from pp.optimize_project as p
                  left join pp.optimize_admin as a on p.creater = a.Id
         where (`p`.`state` > 0)
-            and (tempering_state>0 or optimize_state>0)
+#             and (tempering_state>0 or optimize_state>0)
             and DATE (`p`.`create_time`) BETWEEN #{startSelectTime} AND #{endSelectTime}
         <if test="optimizeProjectMange.projectNumber != null and optimizeProjectMange.projectNumber != ''">
             and p.project_no regexp #{optimizeProjectMange.projectNumber}
@@ -1232,6 +1232,7 @@
             y_axis,
             patch_state,
             mark_icon,
+            isRotate,
             rack_no
             ) VALUES (
             #{projectId},
@@ -1249,6 +1250,7 @@
             #{glass.y},
             #{glass.patchState},
             #{glass.markIcon},
+            #{glass.isRotate},
             #{glass.rackNo}
             );
         </foreach>
@@ -1341,6 +1343,28 @@
             now()
             );
         </foreach>
+    </insert>
+    <insert id="addOptimizeOffcut">
+        INSERT INTO pp.optimize_offcut (
+        project_no,
+        stock_id,
+        width,
+        height,
+        x_axis,
+        y_axis,
+        model,
+        thickness
+        ) VALUES (
+        #{projectId},
+        #{map.stockSort},
+        #{map.width},
+        #{map.height},
+        #{map.x},
+        #{map.y},
+        #{glassType},
+        #{glassThickness}
+
+        )
     </insert>
 
 
@@ -1749,8 +1773,16 @@
         where
             project_no =#{projectNo}
     </select>
-
-
+    <select id="getGlassInfo" resultType="java.util.Map">
+        select
+            project_no,
+            glass_type,
+            glass_thickness
+        from
+            pp.optimize_project
+        where
+            project_no = #{projectId}
+    </select>
 
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0