From 2abec00842a87162186406af7c2014aae948af49 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期五, 07 十一月 2025 08:09:07 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override

---
 north-glass-erp/northglass-erp/src/views/sd/order/CADDraw.vue                            |   11 +++
 north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java |   13 ++-
 north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java   |   26 ++++----
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java              |   16 ++---
 north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml                       |    1 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue               |    9 ++
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue         |   55 ++++++++++++------
 north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java       |   17 +++--
 north-glass-erp/src/main/resources/application-prod.yml                                  |    2 
 north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java               |    1 
 10 files changed, 96 insertions(+), 55 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 0325de6..5981635 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
@@ -571,7 +571,7 @@
   }
 }
 
-function updateProjectStateAndHandleResponse(row, projectNumber, targetState,targetStates,code, successMsg) {
+function updateProjectStateAndHandleResponse(row, projectNumber, targetState, targetStates, code, successMsg) {
   const updateParams = {
     projectNumber: projectNumber,
     stateToUpdate: targetState,
@@ -582,6 +582,11 @@
       'Content-Type': 'application/json'
     }
   }).then((res) => {
+    // 妫�鏌ヤ笟鍔$姸鎬佺爜锛屽鏋滄槸201鍒欐姏鍑洪敊璇互鍦╟atch涓鐞�
+    if (Number(res.code) === 201) {
+      // 鎶涘嚭鑷畾涔夐敊璇璞★紝鍖呭惈鍚庣杩斿洖鐨刴sg淇℃伅
+      throw new Error(res.msg || '鎿嶄綔澶辫触');
+    }
     if (Number(res.code) === 200 && (res.msg === "" || res.msg === null)) {
       ElMessage.success(successMsg);
     } else {
@@ -594,7 +599,7 @@
   }).catch((error) => {
     console.error('璇锋眰鍑洪敊锛屾搷浣滄湭瀹屾垚锛岃缁嗛敊璇俊鎭�:', error);
     //const errorMsg = (res.data && res.data.errorMessage) ? res.data.errorMessage : '鎿嶄綔澶辫触锛屾湭鑾峰彇鍒板叿浣撳師鍥狅紝璇疯仈绯荤鐞嗗憳';
-    ElMessage.error(`璇锋眰鍑洪敊锛屾搷浣滄湭瀹屾垚`);
+    ElMessage.error(`璇锋眰鍑洪敊锛屾搷浣滄湭瀹屾垚  `+error);
     rollbackStateAndReloadGrid(row, targetState); // 璋冪敤鍥炴粴鍑芥暟
   });
 }
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue
index 274dab1..8ef03eb 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue
@@ -683,28 +683,45 @@
   localStorage.setItem('projectNo', projectNo.value);
 });
 
-const saveOptimizeData = () => {
-  if(orderInfo.optimizeData!==null){
-    if(quantitys.value===orderInfo.optimizeData.optimalResults.glassTotalQuantity){
-      console.log("淇濆瓨鏁版嵁1",orderInfo.optimizeData)
-      request.post(`/glassOptimize/saveOptimizeData/${projectNo.value}`,orderInfo.optimizeData).then((res) => {
-        if ((Number(res.code) === 200)) {
-          ElMessage.success("淇濆瓨鎴愬姛");
-        } else {
-          ElMessage.warning(res.msg);
-        }
+const saveOptimizeData = async () => {
+  try {
+    // 鍏堜粠鍚庣鏌ヨ宸ョ▼鐘舵��
+    const stateRes = await request.post(`/glassOptimize/getProjectState/${projectNo.value}`);
+    if (Number(stateRes.code) === 200) {
+      const projectData = stateRes.data.data;
 
-      }).catch((error) => {
-        console.error("鑾峰彇鏁版嵁鍑洪敊:", error);
-      });
-    }else{
-      ElMessage.warning("鍘熺墖涓嶈冻锛屽皬鐗囨湭鍏ㄩ儴浼樺寲");
+      // 妫�鏌� optimize_state 鐘舵��
+      if (projectData.optimize_state === 1) {
+        // 濡傛灉宸插畬鎴愪紭鍖栵紝鎻愮ず鐢ㄦ埛骞堕樆姝㈢户缁墽琛�
+        ElMessage.warning('宸插畬鎴愪紭鍖栦繚瀛橈紝涓嶅厑璁搁噸澶嶆彁浜�');
+        return;
+      }
+    } else {
+      ElMessage.warning(stateRes.msg);
+      return;
     }
-
-  }else {
-    ElMessage.warning("鏁版嵁鏈紭鍖�");
+    if(orderInfo.optimizeData!==null){
+      if(quantitys.value===orderInfo.optimizeData.optimalResults.glassTotalQuantity){
+        console.log("淇濆瓨鏁版嵁1",orderInfo.optimizeData)
+        request.post(`/glassOptimize/saveOptimizeData/${projectNo.value}`,orderInfo.optimizeData).then((res) => {
+          if ((Number(res.code) === 200)) {
+            ElMessage.success("淇濆瓨鎴愬姛");
+          } else {
+            ElMessage.warning(res.msg);
+          }
+        }).catch((error) => {
+          console.error("鑾峰彇鏁版嵁鍑洪敊:", error);
+        });
+      }else{
+        ElMessage.warning("鍘熺墖涓嶈冻锛屽皬鐗囨湭鍏ㄩ儴浼樺寲");
+      }
+    }else {
+      ElMessage.warning("鏁版嵁鏈紭鍖�");
+    }
+  } catch (error) {
+    ElMessage.error('妫�鏌ュ伐绋嬬姸鎬佸け璐ワ紝璇风◢鍚庨噸璇�');
+    console.error('妫�鏌ュ伐绋嬬姸鎬佸け璐�:', error);
   }
-
 }
 
 const fetchData = () => {
diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/CADDraw.vue b/north-glass-erp/northglass-erp/src/views/sd/order/CADDraw.vue
new file mode 100644
index 0000000..222532e
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/CADDraw.vue
@@ -0,0 +1,11 @@
+<script setup lang="ts">
+import { MlCadViewer } from '@mlightcad/cad-viewer'
+</script>
+
+<template>
+  <MlCadViewer locale="zh" url="Drawing1.dwg" />
+</template>
+
+<style scoped>
+
+</style>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
index a37de06..8d68b74 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
@@ -130,11 +130,14 @@
             @PathVariable Integer states,
             @PathVariable Integer code
     ) throws JsonProcessingException {
-        if (glassOptimizeService.updateProjectState(projectNumber, state,states,code)) {
-            return Result.success();
-        } else {
-            throw new ServiceException(Constants.Code_500, "淇敼澶辫触");
-
+        try {
+            if (glassOptimizeService.updateProjectState(projectNumber, state, states, code)) {
+                return Result.success();
+            } else {
+                throw new ServiceException(Constants.Code_500, "淇敼澶辫触");
+            }
+        } catch (Exception e) {
+            return Result.error("201", e.getMessage());
         }
     }
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
index e266082..8e410c2 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
@@ -1,23 +1,14 @@
 package com.example.erp.service.mm;
 
 import cn.hutool.core.util.StrUtil;
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.example.erp.common.Constants;
-import com.example.erp.dto.mm.FinishedOperateLogDTO;
 import com.example.erp.dto.mm.MaterialLogDTO;
 import com.example.erp.entity.mm.*;
 import com.example.erp.entity.pp.*;
-import com.example.erp.entity.sd.Delivery;
-import com.example.erp.entity.sd.DeliveryDetail;
-import com.example.erp.entity.sd.OrderDetail;
-import com.example.erp.entity.sd.OrderProcessDetail;
 import com.example.erp.entity.userInfo.Log;
 import com.example.erp.entity.userInfo.SysError;
-import com.example.erp.exception.ServiceException;
 import com.example.erp.mapper.mm.BasicWarehouseTypeMapper;
 import com.example.erp.mapper.mm.MaterialInventoryMapper;
 import com.example.erp.mapper.mm.MaterialLogMapper;
@@ -29,8 +20,6 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
 import java.util.List;
 import java.util.ArrayList;
 
@@ -38,6 +27,9 @@
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.util.*;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
 @Service
@@ -1317,12 +1309,20 @@
     }
 
     public Object appGetStockList() {
-        List<MaterialInventory> materialInventoryList = materialInventoryMapper.selectGetStockList();
+        ExecutorService executor = Executors.newFixedThreadPool(2);
+        AtomicReference<List<MaterialInventory>> materialInventoryList = new AtomicReference<>(new ArrayList<MaterialInventory>());
+        executor.execute(() -> {
+            materialInventoryList.set(materialInventoryMapper.selectGetStockList());
+        });
+        List<Object> list = new ArrayList<>();
+        executor.shutdown();
+
         Map<String, Object> totalSum  = new HashMap<>();
+
         Integer inventoryQuantity = 0;
         Integer availableQuantity = 0;
         Double totalArea = 0.00;
-        for (MaterialInventory materialInventory : materialInventoryList) {
+        for (MaterialInventory materialInventory : materialInventoryList.get()) {
             inventoryQuantity += materialInventory.getInventoryQuantity();
             availableQuantity += materialInventory.getAvailableQuantity();
             totalArea += materialInventory.getTotalArea();
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 f25f35d..540e002 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
@@ -18,6 +18,7 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -45,6 +46,9 @@
     GlassOptimizeMapper glassOptimizeMapper;
     @Autowired
     SysErrorService sysErrorService;
+
+    @Value("${mesIp:localhost}")  // 娉ㄥ叆mesIp閰嶇疆锛岄粯璁ゅ�间负10.153.19.31
+    private String mesIp;
 
     RabbitMQUtil rabbitMQUtil;
     //妯℃嫙璁$畻
@@ -772,13 +776,15 @@
                 Map<String, Object> cancelResult = issuingCancelProject(projectNumber);
                 // 鑾峰彇杩斿洖缁撴灉涓殑data瀛楁
                 Map<String, Object> responseData = (Map<String, Object>) cancelResult.get("data");
-
                 // 妫�鏌ュ搷搴斾腑鐨刢ode瀛楁锛屽彧鏈夊綋code涓�200鎴�202鏃舵墠鍏佽鏇存柊鐘舵��
                 if (responseData != null && responseData.containsKey("code")) {
                     Object responseCode = responseData.get("code");
                     if (responseCode.equals(200) || responseCode.equals(202)) {
                         glassOptimizeMapper.updateProjectStateMp(projectNumber, state);
-                    }else {
+                    } else if (responseCode.equals(201)) {
+                        // 褰撹繑鍥�201鏃讹紝鎶涘嚭鑷畾涔夊紓甯告垨杩斿洖閿欒淇℃伅
+                        throw new RuntimeException(responseData.get("message").toString());
+                    } else {
                         return false;
                     }
                 } else {
@@ -1241,8 +1247,7 @@
         boolean  saveState=false;
         try {
             // 1. 鍒涘缓URL瀵硅薄
-//            URL url = new URL("http://10.153.19.31:88/api/loadGlass/engineering/importEngineer");
-            URL url = new URL("http://localhost:88/api/loadGlass/engineering/importEngineer");
+            URL url = new URL("http://" + mesIp + ":88/api/loadGlass/engineering/importEngineer");
 
             // 2. 鎵撳紑杩炴帴
             HttpURLConnection conn = (HttpURLConnection) url.openConnection();
@@ -1480,8 +1485,8 @@
 
         try {
             // 1. 鍒涘缓URL瀵硅薄
-//            URL url = new URL("http://10.153.19.31:88/api/loadGlass/engineering/optimizeCancelTask");
-            URL url = new URL("http://localhost:88/api/loadGlass/engineering/optimizeCancelTask");
+            URL url = new URL("http://" + mesIp + ":88/api/loadGlass/engineering/optimizeCancelTask");
+//            URL url = new URL("http://localhost:88/api/loadGlass/engineering/optimizeCancelTask");
 
 
             // 2. 鎵撳紑杩炴帴
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
index a2580ed..9049abc 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
@@ -5,6 +5,7 @@
 import com.alibaba.fastjson.TypeReference;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.example.erp.common.AsyncQueryExecutor;
+import com.example.erp.entity.sd.*;
 import com.example.erp.tools.AreaComputed.*;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -12,10 +13,6 @@
 import com.example.erp.dto.pp.*;
 import com.example.erp.entity.pp.DamageDetails;
 import com.example.erp.entity.pp.Report;
-import com.example.erp.entity.sd.BasicData;
-import com.example.erp.entity.sd.OrderDetail;
-import com.example.erp.entity.sd.OrderGlassDetail;
-import com.example.erp.entity.sd.ProductDetail;
 import com.example.erp.mapper.pp.*;
 import com.example.erp.mapper.sd.*;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,6 +50,7 @@
 
     FlowCardMapper flowCardMapper;
     private ReportingWorkMapper reportingWorkMapper;
+    private final OrderMapper orderMapper;
 
     @Resource
     private AsyncQueryExecutor asyncExecutor;
@@ -136,7 +134,7 @@
                          ProductionSchedulingMapper productionSchedulingMapper, FlowCardMapper flowCardMapper,
                          OrderGlassDetailMapper orderGlassDetailMapper, BasicDataMapper basicDataMapper,
                          ProductDetailMapper productDetailMapper, OrderDetailMapper orderDetailMapper,
-                         ReportingWorkMapper reportingWorkMapper, DamageDetailsMapper damageDetailsMapper) {
+                         ReportingWorkMapper reportingWorkMapper, DamageDetailsMapper damageDetailsMapper, OrderMapper orderMapper) {
         this.reportMapper = reportMapper;
         this.orderProcessDetailMapper = orderProcessDetailMapper;
         this.productionSchedulingMapper = productionSchedulingMapper;
@@ -147,6 +145,7 @@
         this.orderDetailMapper = orderDetailMapper;
         this.reportingWorkMapper = reportingWorkMapper;
         this.damageDetailsMapper = damageDetailsMapper;
+        this.orderMapper = orderMapper;
     }
 
     //娴佺▼鍗¤繘搴︽柟娉�
@@ -303,8 +302,6 @@
             dataList.get(i).put("reportWorkQuantityShow",JSON.toJSONString(dataShow));
 
         }
-
-
 
 
         map.put("data",dataList );
@@ -1445,11 +1442,10 @@
             dataList.get(i).put("reportWorkQuantityShow",JSON.toJSONString(dataShow));
 
         }
-
+        Order order = orderMapper.selectOrderId(orderId);
         map.put("mergeCells", rowCount);
-
         map.put("data",dataList);
-
+        map.put("order",order);
 
         return  map;
     }
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
index 08fb026..8b49f36 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -1061,6 +1061,7 @@
         totalSum.put("perimeter", df.format(perimeter));
         totalSum.put("count", list.size());
 
+
         Map<String,Object> map = new HashMap<>();
         map.put("data",list);
         map.put("date",date);
diff --git a/north-glass-erp/src/main/resources/application-prod.yml b/north-glass-erp/src/main/resources/application-prod.yml
index 16ed97d..0476c77 100644
--- a/north-glass-erp/src/main/resources/application-prod.yml
+++ b/north-glass-erp/src/main/resources/application-prod.yml
@@ -7,6 +7,8 @@
 ip: localhost
 port: 3309
 
+#mesIp: 10.153.19.31
+mesIp: localhost
 #sa-token:
 #  timeout: 86400
 
diff --git a/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml b/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
index 8fff2e2..cd92fd7 100644
--- a/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
+++ b/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
@@ -1393,6 +1393,7 @@
         left join mm.material_store ms
             on mi.material_code=ms.id
         where inventory_quantity>0
+        and mi.inventory_organization = '鍘熺墖搴�'
         order by mi.id desc
     </select>
 

--
Gitblit v1.8.0