From 81cad8df0f1b33700e7fc80f271eda7f1180efb0 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期二, 14 十月 2025 14:51:17 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java |   45 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 44 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 3d029b8..deb63ae 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
@@ -1245,10 +1245,53 @@
 
     public Map<String, Object> getMaterialInfoSv(String processId) {
         Map<String, Object> map = new HashMap<>();
-        map.put("materialList", glassOptimizeMapper.getMaterialInfoSv(processId));
+        List<Map<String, Object>> materialList = glassOptimizeMapper.getMaterialInfoSv(processId);
+        List<Map<String, Object>> layoutSet = glassOptimizeMapper.getLayoutSetSv(processId);
+
+        // 鍒涘缓涓�涓狹ap鏉ュ瓨鍌ㄦ瘡涓猻tock_code鐨勬�婚潰绉�
+        Map<String, Double> stockCodeAreaMap = new HashMap<>();
+
+        // 閬嶅巻layoutSet璁$畻姣忎釜stock_code鐨勬�婚潰绉�(闈㈢Н*浣跨敤鐜�)
+        for (Map<String, Object> layout : layoutSet) {
+            Object stockCodeObj = layout.get("stock_code");
+            Object widthObj = layout.get("width");
+            Object heightObj = layout.get("height");
+            Object usageRateObj = layout.get("usage_rate");
+
+            if (stockCodeObj != null && widthObj != null && heightObj != null && usageRateObj != null) {
+                try {
+                    String stockCode = stockCodeObj.toString();
+                    double width = Double.parseDouble(widthObj.toString());
+                    double height = Double.parseDouble(heightObj.toString());
+                    double usageRate = Double.parseDouble(usageRateObj.toString());
+
+                    // 璁$畻鍗曟潯鏁版嵁鐨勯潰绉�(骞虫柟绫�)
+                    double area = (width * height * usageRate) / 1000000.0;
+
+                    // 绱姞鍒板搴攕tock_code鐨勬�婚潰绉�
+                    stockCodeAreaMap.put(stockCode, stockCodeAreaMap.getOrDefault(stockCode, 0.0) + area);
+                } catch (NumberFormatException e) {
+                    System.err.println("鏁版嵁杞崲閿欒: " + e.getMessage());
+                }
+            }
+        }
+
+        // 灏嗚绠楀嚭鐨勬�婚潰绉坊鍔犲埌materialList涓搴旂殑鐗╂枡鏁版嵁
+        for (Map<String, Object> material : materialList) {
+            Object stockCodeObj = material.get("code");
+            if (stockCodeObj != null) {
+                String stockCode = stockCodeObj.toString();
+                if (stockCodeAreaMap.containsKey(stockCode)) {
+                    material.put("totalArea", stockCodeAreaMap.get(stockCode));
+                }
+            }
+        }
+
+        map.put("materialList", materialList);
         return map;
     }
 
+
     public Map<String, Object> getProductListSv(String processId) {
         Map<String, Object> productMap = new HashMap<>();
         List<Map<String, Object>> productInfo = glassOptimizeMapper.selectProjectList(processId);

--
Gitblit v1.8.0