From 581587240ad7d202dcaee170a6bdeaba7fd0c486 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期四, 07 八月 2025 13:55:33 +0800
Subject: [PATCH] mes下发任务接口提交

---
 north-glass-erp/src/main/resources/mapper/sd/DeliveryMapper.xml                          |    3 
 north-glass-erp/src/main/java/com/example/erp/controller/sd/DeliveryController.java      |    4 
 north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml                           |  111 +++++++++++++++++++++++++++
 north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java |    6 +
 north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryMapper.java              |    1 
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java         |    8 ++
 north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java            |   14 +++
 north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml                       |    1 
 north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java       |   56 ++++++++++++++
 9 files changed, 198 insertions(+), 6 deletions(-)

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 e6fc86a..9b0054b 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
@@ -375,7 +375,11 @@
         return Result.seccess(glassOptimizeService.getProcessCardMpThirdParty(projectNo));
     }
 
-
+    @ApiOperation("mes宸ョ▼浠诲姟涓嬪彂鎺ュ彛")
+    @PostMapping("/getIssuingProjects")
+    public Result issuingProjects(@RequestBody String projectNo) throws JsonProcessingException {
+        return Result.seccess(glassOptimizeService.issuingProjects(projectNo));
+    }
 
 
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/sd/DeliveryController.java b/north-glass-erp/src/main/java/com/example/erp/controller/sd/DeliveryController.java
index b37f462..cf906a8 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/sd/DeliveryController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/sd/DeliveryController.java
@@ -15,6 +15,7 @@
 import com.example.erp.exception.ServiceException;
 import com.example.erp.service.sd.DeliveryService;
 import com.example.erp.tools.DownExcel;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -38,7 +39,7 @@
     @ApiOperation("鍙戣揣璁㈠崟鏌ヨ鎺ュ彛")
     @SaCheckPermission("selectDelivery.search")
     @PostMapping("/getSelectShippingOrder/{pageNum}/{pageSize}/{selectDate}")
-    public Result getSelectShippingOrder(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List<String> selectDate, @RequestBody Delivery delivery){
+    public Result getSelectShippingOrder(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List<String> selectDate, @RequestBody Delivery delivery) throws JsonProcessingException {
         return Result.seccess(deliveryService.getSelectShippingOrder(pageNum,pageSize,selectDate,delivery));
     }
 
@@ -135,7 +136,6 @@
 
         return  Result.seccess(deliveryService.updateDeliveryPrintNumber(deliveryId));
     }
-
 
 
 
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 a11c982..32daa6d 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
@@ -186,4 +186,12 @@
     List<Map<String, Object>> getProjectByProjectNoSv(String projectNo);
 
     void updateFlowCardRack(String processId, String technologyNumber, int rackValue);
+
+    Map<String,Object> selectOptimizeProject(String projectNo);
+
+    List<Map<String,Object>> selectOptimizeLayout(String projectNo);
+
+    List<Map<String,Object>> selectOptimizeDetail(String projectNo);
+
+    List<Map<String,Object>> selectFlowCardInfoList(String projectNo);
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryMapper.java
index 7decd16..5e42465 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryMapper.java
@@ -64,5 +64,4 @@
 
 
 
-
 }
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 f6e1d5e..9535a46 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
@@ -14,7 +14,9 @@
 import com.example.erp.entity.userInfo.SysError;
 import com.example.erp.mapper.pp.GlassOptimizeMapper;
 import com.example.erp.service.userInfo.SysErrorService;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -892,4 +894,58 @@
         return map;
     }
 
+
+    public Boolean issuingProjects(String projectNo) throws JsonProcessingException {
+        boolean  saveState=false;
+        try {
+            // 1. 鍒涘缓URL瀵硅薄
+            URL url = new URL("http://localhost:88/api/loadGlass/engineering/importEngineer");
+
+            // 2. 鎵撳紑杩炴帴
+            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+            conn.setRequestMethod("POST");
+            conn.setRequestProperty("Content-Type", "application/json");
+            conn.setRequestProperty("Accept", "application/json");
+            conn.setDoOutput(true);
+
+            // 3. 鍑嗗璇锋眰浣�
+            Map<String, Object> optimizeProject=glassOptimizeMapper.selectOptimizeProject(projectNo);
+            optimizeProject.put("engineeringRawQueueList", glassOptimizeMapper.selectOptimizeLayout(projectNo));
+            optimizeProject.put("glassInfolList", glassOptimizeMapper.selectOptimizeDetail(projectNo));
+            optimizeProject.put("flowCardInfoList", glassOptimizeMapper.selectFlowCardInfoList(projectNo));
+            ObjectMapper mapper = new ObjectMapper();
+            mapper.registerModule(new JavaTimeModule());
+            String jsonInputString = mapper.writeValueAsString(optimizeProject);
+
+            //鍙戦�佽姹�
+            try(OutputStream os = conn.getOutputStream()) {
+                byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
+                os.write(input, 0, input.length);
+            }
+
+            // 鑾峰彇鍝嶅簲
+            try(BufferedReader br = new BufferedReader(
+                    new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8))) {
+                StringBuilder response = new StringBuilder();
+                String responseLine;
+                while ((responseLine = br.readLine()) != null) {
+                    response.append(responseLine.trim());
+                }
+                System.out.println("Response: " + response.toString());
+                JSONObject obj = JSONObject.parseObject(response.toString());
+                if(obj.get("code").equals(200)&&obj.get("data").equals(true)){
+                    saveState=true;
+                }
+
+            }
+
+            //鍏抽棴杩炴帴
+            conn.disconnect();
+        } catch (Exception e) {
+            e.printStackTrace();
+            saveState= false;
+        }
+        return saveState;
+    }
+
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
index e87d781..70f76b1 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
@@ -10,6 +10,7 @@
 import com.example.erp.dto.sd.DeliveryDetailDTO;
 import com.example.erp.dto.sd.DeliveryDetailProductDTO;
 import com.example.erp.entity.mm.FinishedOperateLog;
+import com.example.erp.entity.pp.BasicDataProduce;
 import com.example.erp.entity.sd.*;
 import com.example.erp.entity.userInfo.Log;
 import com.example.erp.entity.userInfo.SysError;
@@ -19,14 +20,23 @@
 import com.example.erp.service.mm.FinishedGoodsInventoryService;
 import com.example.erp.service.userInfo.LogService;
 import com.example.erp.service.userInfo.SysErrorService;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
 import java.lang.reflect.Field;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.util.*;
@@ -58,7 +68,7 @@
     FinishedGoodsInventoryService finishedGoodsInventoryService;
 
 
-    public Map<String, Object> getSelectShippingOrder(Integer pageNum, Integer pageSize,List<String> selectDate, Delivery delivery) {
+    public Map<String, Object> getSelectShippingOrder(Integer pageNum, Integer pageSize,List<String> selectDate, Delivery delivery) throws JsonProcessingException {
         Integer offset = (pageNum - 1) * pageSize;
         String endDate = LocalDate.now().toString();
         String startDate = LocalDate.now().minusDays(15).toString();
@@ -953,4 +963,6 @@
 
         return oddNumbers;
     }
+
+
 }
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 b46655a..4f4bfc5 100644
--- a/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
+++ b/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
@@ -1297,7 +1297,6 @@
     <select id="getSelectMaterialInventoryMes">
         select
             mi.material_code AS materialCode,
-            mi.producer,
             sum(mi.available_quantity) AS quantity,
             JSON_UNQUOTE(JSON_EXTRACT(ms.json, '$.width')) AS width,
             JSON_UNQUOTE(JSON_EXTRACT(ms.json, '$.height')) AS height,
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 81be6d1..b8e3b09 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -1637,7 +1637,118 @@
     </delete>
 
 
+    <select id="selectOptimizeProject">
+        select
+            project_no as engineerId,
+            project_name as engineerName,
+            avg_cut_pct as avgAvailability,
+            valid_cut_pct as validAvailability,
+            last_cut_pct as lastAvailability,
+            glass_total as glassTotal,
+            glass_total_area as glassTotalArea,
+            raw_stock_qty as planPatternTotal,
+            raw_stock_area as planPatternTotalArea,
+            glass_thickness as thickness,
+            glass_type as filmsId
+        from
+            pp.optimize_project
+        where
+            project_no = #{projectNo}
+    </select>
 
+    <select id="selectOptimizeLayout">
+        select
+            ol.project_no as engineeringId,
+            op.glass_type as filmsId,
+            ol.realwidth as rawGlassWidth,
+            ol.realheight as rawGlassHeight,
+            op.glass_thickness as rawGlassThickness,
+            ol.stock_id rawSequence
+        from
+            pp.optimize_layout ol
+                left join pp.optimize_project op on ol.project_no = op.project_no
+        where
+            ol.project_no = #{projectNo}
+        order by
+            ol.stock_id
+    </select>
+
+
+    <select id="selectOptimizeDetail">
+        select
+            opd.glass_id as glassId,
+            opd.project_no as engineerId,
+            opd.process_id as flowCardId,
+            opd.order_sort as orderNumber,
+            opd.o_width as width,
+            opd.o_height as height,
+            op.glass_thickness as thickness,
+            op.glass_type as filmsId,
+            opd.total_layer as totalLayer,
+            opd.layer,
+            opd.stock_id as rawSequence,
+            opd.p_width as edgWidth,
+            opd.p_height as edgHeight,
+            opd.x_axis as xAxis,
+            opd.y_axis as yAxis,
+            if(opd.o_width!=opd.width,1,0) as rawAngle,
+            opd.heat_layout_id as temperingLayoutId,
+            opd.heat_layout_sort as temperingFeedSequence,
+            ohd.x_axis as xCoordinate,
+            ohd.y_axis as yCoordinate,
+            ohd.rotate_angle as angle,
+            IF(LOCATE('涓┖', ogd.process ) > 0 or LOCATE('澶瑰眰', ogd.process ) > 0, 1, 0) as isMultiple,
+            od.width as maxWidth,
+            od.height as maxHeight,
+            opd.mark_icon as markIcon,
+            fc.`merge` as combine,
+            concat( opd.process_id, '/', opd.layer ) as flowCardSequence,
+            ogd.process
+        from
+            pp.optimize_detail opd
+                left join pp.optimize_project op on op.project_no = opd.project_no
+                left join pp.flow_card fc on opd.process_id = fc.process_id
+                and opd.layer = fc.technology_number
+                and opd.order_sort = order_number
+                left join sd.`order` o on fc.order_id = o.order_id
+                left join sd.order_detail od on fc.order_id = od.order_id
+                and fc.order_number = od.order_number
+                left join sd.order_glass_detail ogd on fc.order_id = ogd.order_id
+                and fc.order_number = ogd.order_number
+                and ogd.technology_number = fc.technology_number
+                left join pp.optimize_heat_detail ohd on ohd.layout_id = opd.heat_layout_id
+                and ohd.sort = opd.heat_layout_sort and ohd.project_no=opd.project_no
+        where
+            opd.project_no = #{projectNo}
+    </select>
+
+    <select id="selectFlowCardInfoList">
+        select
+            fc.process_id as flowCardId,
+            ogd.child_width as width,
+            ogd.child_height as height,
+            REPLACE (JSON_UNQUOTE( JSON_EXTRACT( pd.separation, '$.thickness' )), 'mm', '' ) as thickness,
+            JSON_UNQUOTE(JSON_EXTRACT( pd.separation, '$.color' )) as filmsId,
+            fc.layers_number as totalLayer,
+            fc.technology_number as layer,
+            fc.quantity as glassTotal,
+            od.order_number as orderNumber,
+            od.product_name as productName,
+            o.customer_name as customerName
+        from
+            pp.flow_card fc
+                left join sd.`order` o on fc.order_id = o.order_id
+                left join sd.order_detail od on fc.order_id = od.order_id
+                and fc.order_number = od.order_number
+                left join sd.order_glass_detail ogd on fc.order_id = ogd.order_id
+                and fc.order_number = ogd.order_number
+                and ogd.technology_number = fc.technology_number
+                left join sd.product p on od.product_id = p.id
+                left join sd.product_detail pd on od.product_id = pd.prod_id
+                and fc.technology_number = pd.glass_sort
+        where
+            project_no =#{projectNo}
+    </select>
 
 
 
diff --git a/north-glass-erp/src/main/resources/mapper/sd/DeliveryMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/DeliveryMapper.xml
index d173157..953bc40 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/DeliveryMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/DeliveryMapper.xml
@@ -372,4 +372,7 @@
         where delivery_id = #{deliveryId}
 
     </update>
+
+
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0