From ff24cc446cc9fe43aac388912074ed98e73a8ff5 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期五, 20 九月 2024 15:20:43 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 UI-Project/src/views/StockBasicData/stockBasicData.vue                                                                                       |    2 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java                                               |   43 +++
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java                                      |   10 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java                  |   42 +++
 UI-Project/src/views/ReportWork/reportWork.vue                                                                                               |   32 +-
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java |    2 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml                                                  |    6 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java                                                 |    6 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java                                                    |    6 
 hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml                                                            |   79 ++++--
 UI-Project/src/views/UnLoadGlass/loadmachinerack.vue                                                                                         |   62 +++--
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java                                        |  151 ++++++++++++-
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWork.java                                                      |    3 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java     |    6 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java       |    8 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java             |  172 +++++++++------
 UI-Project/src/views/UnLoadGlass/PrintFlow.vue                                                                                               |   19 +
 17 files changed, 469 insertions(+), 180 deletions(-)

diff --git a/UI-Project/src/views/ReportWork/reportWork.vue b/UI-Project/src/views/ReportWork/reportWork.vue
index 7b6a6e9..c50a0cb 100644
--- a/UI-Project/src/views/ReportWork/reportWork.vue
+++ b/UI-Project/src/views/ReportWork/reportWork.vue
@@ -178,13 +178,13 @@
     ElMessage.error(response.message);
   }
 
-  const responses = await request.post("/cacheVerticalGlass/damage/insertDamage", {
-    glassId:"P24060403|3|6",
-    line:"2001",
-    workingProcedure:"鍐峰姞宸�",
-    remark:"",
-    status:"2"
-  })
+  // const responses = await request.post("/cacheVerticalGlass/damage/insertDamage", {
+  //   glassId:"P24081502|1|1",
+  //   line:"1001",
+  //   workingProcedure:"鍒囧壊",
+  //   remark:"",
+  //   status:"0"
+  // })
 };
 // 鎶ュ伐
 const handleConfirm = async () => {
@@ -225,23 +225,23 @@
 };
 fetchTableData();  
 let socket = null;
-const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/screen`;
-const handleMessage = (data) => {
+// const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/screen`;
+// const handleMessage = (data) => {
   // adjustedRects.value = data.device[0].map(rect => ({  
   //       ...rect, 
   //       completed: rect.completedQuantity,
   //       breakage: rect.breakageQuantity,
   //       thisProcess: rect.thisProcess,
   //     })); 
-};
+// };
 // let socket;
 onMounted(() => {
-  socket = new WebSocket(socketUrl);
-  socket.onmessage = (event) => {
-    const data = JSON.parse(event.data);
+  // socket = new WebSocket(socketUrl);
+  // socket.onmessage = (event) => {
+  //   const data = JSON.parse(event.data);
 
-    // updateCharts();
-  };
+  //   // updateCharts();
+  // };
   // };  
 });
 onUnmounted(() => {
@@ -249,7 +249,7 @@
 });
 onMounted(() => {
   fetchTableData();
-  socket = initializeWebSocket(socketUrl, handleMessage);
+  // socket = initializeWebSocket(socketUrl, handleMessage);
 });
   onUnmounted(() => {
     if (socket) {
diff --git a/UI-Project/src/views/StockBasicData/stockBasicData.vue b/UI-Project/src/views/StockBasicData/stockBasicData.vue
index 2e08076..3c0ee64 100644
--- a/UI-Project/src/views/StockBasicData/stockBasicData.vue
+++ b/UI-Project/src/views/StockBasicData/stockBasicData.vue
@@ -133,7 +133,7 @@
   }  
 };   
 let socket = null;
-const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlass`;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/edgTasks`;
 // 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
 const handleMessage = (data) => {
   // 鏇存柊 tableData 鐨勬暟鎹�
diff --git a/UI-Project/src/views/UnLoadGlass/PrintFlow.vue b/UI-Project/src/views/UnLoadGlass/PrintFlow.vue
index fa5a0e8..ff1c579 100644
--- a/UI-Project/src/views/UnLoadGlass/PrintFlow.vue
+++ b/UI-Project/src/views/UnLoadGlass/PrintFlow.vue
@@ -51,8 +51,12 @@
     let totalQuantity1 = 0;
     //闈㈢Н
     let totalArea = 0;
+    //钀芥灦闈㈢Н
+    let totalArea1 = 0;
     //閲嶉噺
     let totalWeight = 0;
+    //钀芥灦閲嶉噺
+    let totalWeight1 = 0;
     // 瀵规瘡涓泦鍚堜腑鐨� detailList 杩涜璁$畻
     produceList.value[i].detailList.forEach(collection => {
       totalQuantity += collection.quantity * 1;
@@ -60,15 +64,22 @@
       //姣忎釜搴忓彿闈㈢Н
       collection.total_area = parseFloat((collection.width * collection.height * collection.quantity / 1000000).toFixed(2))
       totalArea += collection.total_area * 1;
+
+      collection.total_area1 = parseFloat((collection.width * collection.height * collection.quantity1 / 1000000).toFixed(2))
+      totalArea1 += collection.total_area1 * 1;
+
       totalWeight += collection.width * collection.height * collection.quantity / 1000000 * collection.separation * 2.5 * 1;
+      totalWeight1 += collection.width * collection.height * collection.quantity1 / 1000000 * collection.separation * 2.5 * 1;
       //姣忎釜搴忓彿鍛ㄩ暱
       collection.perimeter = parseFloat(((collection.width * 2 + collection.height * 2) * collection.quantity / 1000).toFixed(3))
     });
     // 杈撳嚭姣忎釜闆嗗悎涓殑鎬绘暟閲�
     produceList.value[i].detail[0].quantity = totalQuantity
-    produceList.value[i].detail[0].quantity1 = totalQuantity
+    produceList.value[i].detail[0].quantity1 = totalQuantity1
     produceList.value[i].detail[0].gross_area = totalArea
+    produceList.value[i].detail[0].gross_area1 = totalArea1
     produceList.value[i].detail[0].weight = totalWeight
+    produceList.value[i].detail[0].weight1 = totalWeight1
   }
 }
 
@@ -242,12 +253,16 @@
         <td v-for="(itemsum,index) in item.detail" :key="index" colspan="29">
           鏁伴噺锛�
           <label>{{ itemsum.quantity }}</label>
-          钀藉姞鏁伴噺锛�
+          钀芥灦鏁伴噺锛�
           <label>{{ itemsum.quantity1 }}</label>
           闈㈢Н锛�
           <label>{{ parseFloat(itemsum.gross_area.toFixed(2)) }}</label>
+          钀芥灦闈㈢Н锛�
+          <label>{{ parseFloat(itemsum.gross_area1.toFixed(2)) }}</label>
           閲嶉噺锛�
           <label>{{ parseFloat(itemsum.weight.toFixed(2)) }}</label>
+          钀芥灦閲嶉噺锛�
+          <label>{{ parseFloat(itemsum.weight1.toFixed(2)) }}</label>
         </td>
       </tr>
       <tr v-for="(itemtextarea,index) in item.detail" :key="index">
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index e469c90..5a918af 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -214,10 +214,26 @@
     autoPrint.value = data.autoPrint[0];
   }
   if (data.takeGlass != null) {
+      
     takeGlass.value = data.takeGlass[0];
+      // takeGlass.value 鏄竴涓┖瀵硅薄
+      let width = takeGlass.value.width;
+      let height = takeGlass.value.height;
+      if (width < height) {
+        takeGlass.value.width = height;
+        takeGlass.value.height = width;
+      }
+
+
   }
   if (data.scanGlass != null) {
     scanGlass.value = data.scanGlass[0];
+    let width = scanGlass.value.width;
+    let height = scanGlass.value.height;
+    if (width < height) {
+      scanGlass.value.width = height;
+      scanGlass.value.height = width;
+    }
   }
 
   //鑷姩鎵撳嵃
@@ -493,8 +509,8 @@
           </el-date-picker>
 
           <el-button type="primary" style="margin-left: 10px;" @click="selectDownGlassData()">{{
-        $t('reportmanage.inquire')
-      }}
+            $t('reportmanage.inquire')
+          }}
           </el-button>
           <el-table height="200px" ref="table" @selection-change="handleSelectionChange" :data="downGlass"
             :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
@@ -512,34 +528,36 @@
         </el-dialog>
         <el-dialog v-model="dialogFormVisibleaDownGlasss" top="2vh" width="97%" :title="$t('浜哄伐涓嬬墖淇℃伅')">
           <div style="display:flex;justify-content: space-around;">
-            <el-card style="display: flex; justify-content: center; align-items: center; width:800px; height: 800px;position: relative;">
+            <el-card
+              style="display: flex; justify-content: center; align-items: center; width:800px; height: 800px;position: relative;">
               <div
-                :style="{  width: takeGlass.width + 'px', height: takeGlass.height + 'px', backgroundColor: '#e1f3d8', transform: 'scale(' + 800 / (takeGlass.width > takeGlass.height ? takeGlass.width : takeGlass.height) + ')' }">
-                
+                :style="{ width: takeGlass.width + 'px', height: takeGlass.height + 'px', backgroundColor: '#e1f3d8', transform: 'scale(' + 800 / (takeGlass.width > takeGlass.height ? takeGlass.width : takeGlass.height) + ')' }">
+
               </div>
-              <div style="font-size: 50px; text-align: center;position: absolute;top:0px;left:200px;">
-                  <div>浜哄伐涓嬬墖褰撳墠鐜荤拑淇℃伅</div>
-                  <div>{{ takeGlass.flowCardId }}</div>
-                  <div>{{ takeGlass.layer }}</div>
-                  <div>{{ takeGlass.glassId }}</div>
-                  <div>{{ takeGlass.width }}</div>
-                  <div>{{ takeGlass.height }}</div>
-                </div>
+              <div style="font-size: 50px; text-align: center;position: absolute;top:0px;left:170px;">
+                <div>浜哄伐涓嬬墖褰撳墠鐜荤拑淇℃伅</div>
+                <div>{{ takeGlass.flowCardId }}</div>
+                <div>{{ takeGlass.layer }}</div>
+                <div>{{ takeGlass.glassId }}</div>
+                <div>{{ takeGlass.width }}</div>
+                <div>{{ takeGlass.height }}</div>
+              </div>
             </el-card>
-            <el-card style="display: flex; justify-content: center; align-items: center; width: 800px; height: 800px;position: relative;">
+            <el-card
+              style="display: flex; justify-content: center; align-items: center; width: 800px; height: 800px;position: relative;">
               <div
                 :style="{ width: scanGlass.width + 'px', height: scanGlass.height + 'px', backgroundColor: '#e1f3d8', transform: 'scale(' + 800 / (scanGlass.width > scanGlass.height ? scanGlass.width : scanGlass.height) + ')' }">
-                
+
               </div>
               <div style="font-size: 50px; text-align: center;position: absolute;top:0px;left:200px;">
-                  <div>鎵爜鏋綋鍓嶇幓鐠冧俊鎭�</div>
-                  <div>{{ scanGlass.flowCardId }}</div>
-                  <div>{{ scanGlass.layer }}</div>
-                  <div>{{ scanGlass.glassId }}</div>
-                  <div>{{ scanGlass.width }}</div>
-                  <div>{{ scanGlass.height }}</div>
+                <div>鎵爜鏋綋鍓嶇幓鐠冧俊鎭�</div>
+                <div>{{ scanGlass.flowCardId }}</div>
+                <div>{{ scanGlass.layer }}</div>
+                <div>{{ scanGlass.glassId }}</div>
+                <div>{{ scanGlass.width }}</div>
+                <div>{{ scanGlass.height }}</div>
 
-                </div>
+              </div>
             </el-card>
           </div>
         </el-dialog>
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
index 3175d16..cfa07e3 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
@@ -3,6 +3,8 @@
 import com.github.yulichang.base.MPJBaseService;
 import com.mes.damage.entity.Damage;
 import com.mes.damage.entity.DamagePrint;
+import com.mes.pp.entity.ReportingWork;
+import com.mes.pp.entity.ReportingWorkDetail;
 
 import java.util.List;
 
@@ -19,6 +21,8 @@
     List<Damage> selectDamage(String startTime, String endTime, int type, String workingProcedure);
 
     void submitDamage(List<Damage> damageList);
+
+    void submitReport(Damage damage);
 
     /**
      * 鍗曚釜鐮存崯
@@ -39,4 +43,6 @@
     List<DamagePrint> selectDamagePrintDetails(Damage damage);
 
     void deleteByGlassId(String glassId);
+
+    void sendToERP(ReportingWork reportingWork, List<ReportingWorkDetail> reportingWorkDetails);
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
index 8f6a1a6..22b38e1 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -1,6 +1,9 @@
 package com.mes.damage.service.impl;
 
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.query.MPJQueryWrapper;
 import com.mes.common.config.Const;
@@ -10,15 +13,23 @@
 import com.mes.damage.service.DamageService;
 import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.glassinfo.mapper.GlassInfoMapper;
+import com.mes.pp.entity.ReportingWork;
+import com.mes.pp.entity.ReportingWorkDetail;
 import com.mes.work_assignment.entity.WorkAssignment;
 import com.mes.work_assignment.mapper.WorkAssignmentMapper;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
 import java.sql.Timestamp;
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -38,22 +49,20 @@
     GlassInfoMapper glassInfoMapper;
     @Resource
     WorkAssignmentMapper workAssignmentMapper;
-    @Autowired
-    private DamageMapper damageMapper;
 
     /**
      * 鏌ヨ鎶ュ伐淇℃伅
      */
     @Override
-    public List<Damage> selectDamage(String startTime, String endTime, int type, String workingProcedure) {
+    public List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure) {
         LambdaQueryWrapper<Damage> damageSelectWrapper = new LambdaQueryWrapper<>();
         damageSelectWrapper.between(Damage::getDamageTime, startTime, endTime);
         if (type != 0) {
             damageSelectWrapper.eq(Damage::getType, type);
         }
-//        if (status != 0) {
-//            damageSelectWrapper.eq(Damage::getStatus, status);
-//        }
+        if (status != 0) {
+            damageSelectWrapper.eq(Damage::getStatus, status);
+        }
         if (!"0".equals(workingProcedure)) {
             damageSelectWrapper.eq(Damage::getWorkingProcedure, workingProcedure);
         }
@@ -72,22 +81,74 @@
     public void submitDamage(List<Damage> damageList) {
         Map<String, List<Damage>> firstMap = damageList.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":"
                 + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName()));
-
         for (Map.Entry<String, List<Damage>> entry : firstMap.entrySet()) {
+            ReportingWork reportingWork = new ReportingWork();
+            List<ReportingWorkDetail> reportingWorkDetails = new ArrayList<>();
             String key = entry.getKey();
             List<Damage> damages = entry.getValue();
+            for (Damage damage:damages
+                 ) {
+                reportingWork.setOrderId(damage.getProcessId().substring(0, 10));
+                reportingWork.setProductionId(damage.getProcessId().substring(0,11));
+                reportingWork.setProcessId(damage.getProcessId()+"/"+damage.getTechnologyNumber());
+                reportingWork.setDeviceName(damage.getDeviceName());
+                reportingWork.setThisProcess(damage.getWorkingProcedure());
+                reportingWork.setThisCompletedQuantity(1);
+                reportingWork.setThisWornQuantity(0);
+                reportingWork.setClasses("鏃╃彮");
+                reportingWork.setReportingWorkTime(LocalDateTime.now());
+                reportingWork.setTeamsGroupsName(damage.getTeamsGroupsName());
+                reportingWork.setCreator("auto");
+                System.out.println("Key: " + key);
+            }
 
-            System.out.println("Key: " + key);
 
             Map<String, List<Damage>> secondMap = damageList.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":"
                     + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName()));
 
             for (Map.Entry<String, List<Damage>> entrys : secondMap.entrySet()) {
+                List<Damage> damagesdetail = entrys.getValue();
 
+
+                for (Damage damage:damagesdetail
+                     ) {
+                    ReportingWorkDetail reportingWorkDetail = new ReportingWorkDetail();
+                    reportingWorkDetail.setTechnologyNumber(damage.getTechnologyNumber());
+                    reportingWorkDetail.setOrderNumber(damage.getOrderNumber());
+                    reportingWorkDetail.setCompletedQuantity(1);
+                    reportingWorkDetail.setBreakageQuantity(0);
+                    reportingWorkDetails.add(reportingWorkDetail);
+
+                }
             }
+            sendToERP(reportingWork,reportingWorkDetails);
         }
+    }
 
+    @Override
+    public void submitReport(Damage damage) {
+        ReportingWork reportingWork = new ReportingWork();
+        reportingWork.setOrderId(damage.getProcessId().substring(0, 10));
+        reportingWork.setProductionId(damage.getProcessId().substring(0,11));
+        reportingWork.setProcessId(damage.getProcessId()+"/"+damage.getTechnologyNumber());
+        reportingWork.setDeviceName(damage.getDeviceName());
+        reportingWork.setThisProcess(damage.getWorkingProcedure());
+//        reportingWork.setNextProcess("纾ㄨ竟");
+        reportingWork.setThisCompletedQuantity(1);
+        reportingWork.setThisWornQuantity(0);
+        reportingWork.setClasses("鏃╃彮");
+        reportingWork.setReportingWorkTime(LocalDateTime.now());
+        reportingWork.setTeamsGroupsName(damage.getTeamsGroupsName());
+        reportingWork.setCreator("auto");
 
+        List<ReportingWorkDetail> reportingWorkDetails = new ArrayList<>();
+        ReportingWorkDetail reportingWorkDetail = new ReportingWorkDetail();
+        reportingWorkDetail.setTechnologyNumber(damage.getTechnologyNumber());
+        reportingWorkDetail.setOrderNumber(damage.getOrderNumber());
+        reportingWorkDetail.setCompletedQuantity(1);
+        reportingWorkDetail.setBreakageQuantity(0);
+        reportingWorkDetails.add(reportingWorkDetail);
+        sendToERP(reportingWork,reportingWorkDetails);
     }
 
     /**
@@ -113,6 +174,13 @@
         damage.setOrderNumber(glassInfo.getGlassType());
         damage.setTechnologyNumber(glassInfo.getLayer());
         damage.setDamageTime(Timestamp.valueOf(LocalDateTime.now()));
+        if (damage.getType() == null) {
+            damage.setType(1);
+        }
+        if (damage.getType() == 1) {
+            damage.setStatus(2);
+            submitReport(damage);
+        }
         baseMapper.insert(damage);
     }
 
@@ -157,7 +225,7 @@
         if (damage.getEngineerId() != null) {
             listDamage.eq("t.engineer_id", damage.getEngineerId());
         }
-        return damageMapper.selectJoinList(DamagePrint.class, listDamage);
+        return baseMapper.selectJoinList(DamagePrint.class, listDamage);
     }
 
     /**
@@ -165,7 +233,7 @@
      */
     @Override
     public List<DamagePrint> selectDamagePrintDetails(Damage damage) {
-        List<DamagePrint> listDamage = damageMapper.selectJoinList(DamagePrint.class, new MPJQueryWrapper<Damage>()
+        List<DamagePrint> listDamage = baseMapper.selectJoinList(DamagePrint.class, new MPJQueryWrapper<Damage>()
                 .select("b.flow_card_id,b.layer,t.engineer_id,b.tempering_layout_id,b.tempering_feed_sequence,t.glass_id,b.width,b.height,b.thickness")
                 .leftJoin("glass_info as b  on t.glass_id=b.glass_id")
                 .eq("t.working_procedure", damage.getWorkingProcedure())
@@ -183,4 +251,65 @@
                         .in(Damage::getType, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
         );
     }
+
+    @Override
+    public void sendToERP(ReportingWork reportingWork, List<ReportingWorkDetail> reportingWorkDetails){
+        try {
+            // 鐩爣绯荤粺鐨凙PI URL
+            String url = "http://192.168.3.119:8086/reportingWork/mesSaveReportingWorkWorn";
+            URL obj = new URL(url);
+            HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+
+            // 璁剧疆璇锋眰鏂规硶鍜岃姹傚ご
+            con.setRequestMethod("POST");
+            con.setRequestProperty("Content-Type", "application/json; utf-8");
+            con.setRequestProperty("Accept", "application/json");
+            con.setDoOutput(true);
+
+            // 鍒涘缓 JSON 瀵硅薄
+            JSONObject result = new JSONObject();
+
+            ObjectMapper objectMapper = new ObjectMapper();
+
+            // 灏� ReportingWork 杞崲涓� JSONObject
+            JSONObject reportingWorkJson = new JSONObject(objectMapper.writeValueAsString(reportingWork));
+            reportingWorkJson.put("reportingWorkTime", reportingWork.getReportingWorkTime().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
+            // 灏� ReportingWorkDetail 鍒楄〃杞崲涓� JSONArray
+            JSONArray detailsJsonArray = new JSONArray(objectMapper.writeValueAsString(reportingWorkDetails));
+
+            // 灏� JSON 瀵硅薄鍜屾暟缁勬坊鍔犲埌缁撴灉瀵硅薄涓�
+            result.put("title", reportingWorkJson);
+            result.put("detail", detailsJsonArray);
+            result.put("type", 0);
+            result.put("userId", "admin");
+            result.put("userName", "admin");
+            result.put("qualityInsStatus", 0);
+
+            // 灏� result 瀵硅薄杞崲涓哄瓧绗︿覆
+            String jsonInputString = result.toString();
+            System.out.println("jsonInputString : " + result);
+            // 鍙戦�佽姹�
+            try (OutputStream os = con.getOutputStream()) {
+                byte[] input = jsonInputString.getBytes("utf-8");
+                os.write(input, 0, input.length);
+            }
+
+            // 鑾峰彇鍝嶅簲鐮�
+            int responseCode = con.getResponseCode();
+            System.out.println("Response Code : " + responseCode);
+
+            // 鑾峰彇鍝嶅簲鍐呭
+            try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"))) {
+                StringBuilder response = new StringBuilder();
+                String inputLine;
+                while ((inputLine = in.readLine()) != null) {
+                    response.append(inputLine);
+                }
+                System.out.println("Response Body: " + response.toString());
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWork.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWork.java
index d0f7876..561b27a 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWork.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWork.java
@@ -4,6 +4,8 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -165,6 +167,7 @@
     /**
      * 寤虹珛鏃堕棿
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime createTime;
 
     /**
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml
index 1af4682..40292ce 100644
--- a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml
@@ -5,27 +5,39 @@
 
     <select id="selectFlowCard" resultType="java.util.Map">
         select fc.order_number,
-               concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
-               od.quantity,
-               round(ogd.total_area, 2)                                     as total_area,
-               od.perimeter,
-               od.bend_radius,
-               concat(IFNULL(od.processing_note,''), IFNULL(od.remarks,''))                       as remarks,
-               od.other_columns,
-               round(ogd.child_width)                                       as width,
-               round(ogd.child_height)                                      as height,
-               pd.separation,
-               fc.technology_number
+        concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+        od.quantity,
+        round(ogd.total_area, 2) as total_area,
+        od.perimeter,
+        od.bend_radius,
+        concat(IFNULL(od.processing_note,''), IFNULL(od.remarks,'')) as remarks,
+        od.other_columns,
+        round(ogd.child_width) as width,
+        round(ogd.child_height) as height,
+        pd.separation
+        <if test="technologyNumber != 0">
+            ,fc.technology_number
+        </if>
         from pp.flow_card as fc
-                 left join sd.order_glass_detail as ogd
-                           on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
-                              fc.technology_number = ogd.technology_number
-                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
-                 left join sd.product_detail as pd
-                           on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
-        where fc.process_id =  #{processId}
-          and position(fc.technology_number in #{technologyNumber})
-        group by fc.process_id, fc.order_number, fc.technology_number
+        left join sd.order_glass_detail as ogd
+        on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+        fc.technology_number = ogd.technology_number
+        left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+        left join sd.product_detail as pd
+        on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+        where fc.process_id = #{processId}
+        <if test="technologyNumber != 0">
+            and a.layer = #{technologyNumber}
+        </if>
+        <if test="technologyNumber != 0">
+            and position(fc.technology_number in #{technologyNumber})
+        </if>
+        <if test="technologyNumber != 0">
+            group by fc.process_id, fc.order_number, fc.technology_number
+        </if>
+        <if test="technologyNumber == 0">
+            group by fc.process_id, fc.order_number
+        </if>
         order by IF(sort != NULL || sort != '', sort, fc.order_number)
 
     </select>
@@ -33,18 +45,26 @@
     <select id="selectProject" resultType="java.util.Map">
         select o.customer_name,
                o.project,
-               (select process from sd.order_glass_detail where order_id=fc.order_id and order_number=fc.order_number and technology_number=fc.technology_number) as process ,
+               (select process
+                from sd.order_glass_detail
+                where order_id = fc.order_id
+                  and order_number = fc.order_number
+                  and technology_number = fc.technology_number) as process,
                od.edging_type,
-               (select glass_child from sd.order_glass_detail where order_id=fc.order_id and order_number=fc.order_number and technology_number=fc.technology_number) as glass_child ,
+               (select glass_child
+                from sd.order_glass_detail
+                where order_id = fc.order_id
+                  and order_number = fc.order_number
+                  and technology_number = fc.technology_number) as glass_child,
                od.product_name,
                o.processing_note,
                fc.process_id,
-               SUM(od.quantity)                                as quantity,
-               round(SUM(ogd.total_area), 2)                   as gross_area,
-               sum(od.weight)                                  as weight,
-               1                            as technologyNumber,
-               concat(fc.process_id, '/', 1) as processIdNumber,
-               concat('瀵瑰簲鎴戝徃鍗曞彿',o.batch)                                         AS otherRemarks
+               SUM(od.quantity)                                 as quantity,
+               round(SUM(ogd.total_area), 2)                    as gross_area,
+               sum(od.weight)                                   as weight,
+               1                                                as technologyNumber,
+               concat(fc.process_id, '/', 1)                    as processIdNumber,
+               concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch)                        AS otherRemarks
         from pp.flow_card as fc
                  left join sd.order_glass_detail as ogd
                            on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
@@ -58,7 +78,8 @@
                                    ogd.glass_child,
                                    GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
                             from sd.order_glass_detail as ogd
-                            where ogd.order_id = left(#{processId}, 10)
+                            where ogd.order_id = left (#{processId}
+                                , 10)
                               and position(ogd.technology_number in #{technologyNumber})
                             GROUP BY order_id, order_number) as ogdc
                            on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
index 818be6b..976125e 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
@@ -199,6 +199,9 @@
             Map<String, Damage> damageMaps=damageMapper.selectList(new MPJLambdaQueryWrapper<Damage>()
                     .selectAll(Damage.class)
                     .eq(Damage::getEngineerId,upPattenUsage1.getEngineeringId())
+                    .and(wrapper->wrapper.eq(Damage::getType,8)
+                            .or()
+                            .eq(Damage::getType,9))
             ).stream().collect(Collectors.toMap(Damage::getGlassId,Damage->Damage,(V1,V2)->V2));
 
             List<Map<String, Object>> resultCutTerritory=new ArrayList<>();
@@ -261,6 +264,9 @@
         Map<String, Damage> damageMaps=damageMapper.selectList(new MPJLambdaQueryWrapper<Damage>()
                 .selectAll(Damage.class)
                 .eq(Damage::getEngineerId,current)
+                .and(wrapper->wrapper.eq(Damage::getType,8)
+                        .or()
+                        .eq(Damage::getType,9))
         ).stream().collect(Collectors.toMap(Damage::getGlassId,Damage->Damage,(V1,V2)->V2));
 
         for (Map<String, Object> item : cutTerritory) {
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
index 946882a..353453e 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -210,7 +210,13 @@
 
         S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 1);
         log.info("7銆佸彂閫佺‘璁ゅ瓧瀹屾垚");
-
+        Damage damage=new Damage();
+        damage.setGlassId(glassInfo.getGlassId());
+        damage.setWorkingProcedure("鍒囧壊");
+        damage.setLine(1001);
+        damage.setType(1);
+        damage.setRemark("杩涘崸寮忕悊鐗�");
+        damageService.insertDamage(damage);
 
     }
 
@@ -654,6 +660,13 @@
             log.info("7銆佹坊鍔犲嚭鐗囩幓鐠冨昂瀵镐俊鎭埌纾ㄨ竟鍓嶇幓鐠冭〃鏄惁瀹屾垚锛歿}", glassSizeStatus);
             S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 1);
             log.info("8銆佸彂閫佺‘璁ゅ瓧宸插畬鎴�");
+            Damage damage=new Damage();
+            damage.setGlassId(glassInfo.getGlassId());
+            damage.setWorkingProcedure("鍒囧壊");
+            damage.setLine(1001);
+            damage.setType(1);
+            damage.setRemark("杩涘崸寮忕悊鐗�");
+            damageService.insertDamage(damage);
             return Boolean.TRUE;
         }
         return Boolean.FALSE;
@@ -728,10 +741,6 @@
         List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory();
         jsonObject.append("currentCutTerritory", currentCutTerritorys);
         //log.info("鏈璇嗗埆鐗堝浘{},++++{}",engineerId,currentCutTerritorys);
-        //纾ㄨ竟淇℃伅
-        List<EdgGlassTaskInfo> edgTasks = edgGlassTaskInfoService.selectEdgInfo();
-        jsonObject.append("edgTasks", edgTasks);
-
         //鍗у缂撳瓨绗煎唴淇℃伅
         List<Map<String, Object>> EdgStorageCageinfos = edgStorageCageService.selectEdgStorageCages();
         jsonObject.append("EdgStorageCageinfos", EdgStorageCageinfos);
@@ -771,4 +780,28 @@
         }
     }
 
+    @Scheduled(fixedDelay = 1000)
+    public void CacheGlassTaskss() {
+        JSONObject jsonObject = new JSONObject();
+        //log.info("鏈璇嗗埆鐗堝浘{},++++{}",engineerId,currentCutTerritorys);
+        //纾ㄨ竟淇℃伅
+        List<EdgGlassTaskInfo> edgTasks = edgGlassTaskInfoService.selectEdgInfo();
+        jsonObject.append("edgTasks", edgTasks);
+
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("edgTasks");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("edgTasks is closed");
+                }
+            }
+        }
+    }
 }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
index bdcf76a..47b23c2 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -210,7 +210,7 @@
         baseMapper.updateById(bigStorageCageDetails);
         bigStorageCageService.updateRemainWidth(bigStorageCageDetails.getSlot());
         damage.setGlassId(bigStorageCageDetails.getGlassId());
-        damage.setWorkingProcedure("鍐峰姞宸�");
+        damage.setWorkingProcedure("閽㈠寲");
         damage.setLine(3001);
         damage.setRemark("澶х悊鐗囩鐮存崯");
         damage.setStatus(2);
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
index 948d159..8449550 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -3,15 +3,15 @@
 
 spring:
   profiles:
-    active: cz
+    active: dev
   application:
     name: cacheVerticalGlass
   liquibase:
     enabled: false
 mybatis-plus:
   mapper-locations: classpath*:mapper/*.xml
-  configuration:
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+#  configuration:
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
 mes:
   sequence:
     order: false
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
index fe4b12c..dd93257 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
@@ -1,7 +1,10 @@
 package com.mes;
 
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.mes.bigstorage.entity.BigStorageCage;
 import com.mes.bigstorage.service.BigStorageCageDetailsService;
 import com.mes.bigstorage.service.BigStorageCageService;
@@ -28,9 +31,8 @@
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
 
 /**
  * @Author : zhoush
@@ -195,7 +197,7 @@
     public void ca(){
         try {
             // 鐩爣绯荤粺鐨凙PI URL
-            String url = "http://192.168.3.119:8086/reportingWork/mesSave";
+            String url = "http://192.168.3.119:8086/reportingWork/mesSaveReportingWorkWorn";
             URL obj = new URL(url);
             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
 
@@ -205,9 +207,10 @@
             con.setRequestProperty("Accept", "application/json");
             con.setDoOutput(true);
 
-            // 鍒涘缓娑堟伅浣�
-            String jsonInputString = "灏忓粬";
-            ReportingWork reportingWork=new ReportingWork();
+            // 鍒涘缓 JSON 瀵硅薄
+            JSONObject result = new JSONObject();
+
+            ReportingWork reportingWork = new ReportingWork();
             reportingWork.setOrderId("NG24042301");
             reportingWork.setProductionId("NG24042301A");
             reportingWork.setProcessId("NG24042301A001");
@@ -221,11 +224,33 @@
             reportingWork.setTeamsGroupsName("灏忓粬涓�鍙�");
             reportingWork.setCreator("灏忓粬");
 
-            ReportingWorkDetail reportingWorkDetail=new ReportingWorkDetail();
+            List<ReportingWorkDetail> reportingWorkDetails = new ArrayList<>();
+            ReportingWorkDetail reportingWorkDetail = new ReportingWorkDetail();
             reportingWorkDetail.setTechnologyNumber(1);
             reportingWorkDetail.setOrderNumber(1);
             reportingWorkDetail.setCompletedQuantity(1);
             reportingWorkDetail.setBreakageQuantity(0);
+            reportingWorkDetails.add(reportingWorkDetail);
+
+            ObjectMapper objectMapper = new ObjectMapper();
+
+            // 灏� ReportingWork 杞崲涓� JSONObject
+            JSONObject reportingWorkJson = new JSONObject(objectMapper.writeValueAsString(reportingWork));
+            reportingWorkJson.put("reportingWorkTime", reportingWork.getReportingWorkTime().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
+            // 灏� ReportingWorkDetail 鍒楄〃杞崲涓� JSONArray
+            JSONArray detailsJsonArray = new JSONArray(objectMapper.writeValueAsString(reportingWorkDetails));
+
+            // 灏� JSON 瀵硅薄鍜屾暟缁勬坊鍔犲埌缁撴灉瀵硅薄涓�
+            result.put("title", reportingWorkJson);
+            result.put("detail", detailsJsonArray);
+            result.put("type", 0);
+            result.put("userId", "admin");
+            result.put("userName", "admin");
+            result.put("qualityInsStatus", 0);
+
+            // 灏� result 瀵硅薄杞崲涓哄瓧绗︿覆
+            String jsonInputString = result.toString();
+            System.out.println("jsonInputString : " + result);
             // 鍙戦�佽姹�
             try (OutputStream os = con.getOutputStream()) {
                 byte[] input = jsonInputString.getBytes("utf-8");
@@ -235,6 +260,7 @@
             // 鑾峰彇鍝嶅簲鐮�
             int responseCode = con.getResponseCode();
             System.out.println("Response Code : " + responseCode);
+
             // 鑾峰彇鍝嶅簲鍐呭
             try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"))) {
                 StringBuilder response = new StringBuilder();
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
index 0efdd00..5796939 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
@@ -45,15 +45,15 @@
     @ApiOperation("//閽㈠寲鐮存崯鎷胯蛋鏀惧洖")
     @PostMapping("/updateTemperingState") //閽㈠寲鍚庢樉绀哄嚭鐐夌殑鐗堝浘淇℃伅
     public Result <Integer> updateTemperingState(@RequestBody  Damage damage) {
+        TemperingGlassInfo temperingGlassInfo=new TemperingGlassInfo();
+        temperingGlassInfo.setState(damage.getStatus());
+        temperingGlassInfo.setGlassId(damage.getGlassId());
+        int result=temperingGlassInfoService.updateTemperingState(temperingGlassInfo);
         if(damage.getStatus()>5) {
             damage.setType(damage.getStatus());
             damage.setStatus(1);
             damageService.insertDamage(damage);
         }
-        TemperingGlassInfo temperingGlassInfo=new TemperingGlassInfo();
-        temperingGlassInfo.setState(damage.getType());
-        temperingGlassInfo.setGlassId(damage.getGlassId());
-        int result=temperingGlassInfoService.updateTemperingState(temperingGlassInfo);
         return Result.build(200, "鐮存崯鎴愬姛", result);
     }
 
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
index 3ebd084..cca0371 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
@@ -128,6 +128,7 @@
 
     @Override
     public List<DownWorkstation> queryWorkStationIsFull() {
+
         //鏌ヨ鍙互钀芥灦鐨勭幓鐠冧俊鎭笖宸茬粦瀹氭祦绋嬪崱鐨勫伐浣嶄俊鎭�
         List<DownWorkstation> list = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getEnableState, Const.SLOT_ON)
                 .isNotNull(DownWorkstation::getFlowCardId).ne(DownWorkstation::getFlowCardId, ""));
@@ -142,11 +143,11 @@
             //鍙互钀芥灦鐨勭幓鐠冧俊鎭笖宸茬粦瀹氭祦绋嬪崱鐨勬墍鏈夌殑宸ヤ綅 - 鐜荤拑鏈弧娴佺▼鍗″強灞傛暟鐨勫伐浣�  =  宸叉弧宸ヤ綅
             workstationFull = list.stream().filter(item -> !flowCardIdList.contains(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList());
             //鏄惁闇�瑕佸皢宸叉弧鐨勫伐浣嶇疆涓轰笉鍙惤鏋�
-            if (CollectionUtils.isNotEmpty(workstationFull)) {
-                List<Integer> workstationIds = workstationFull.stream().map(DownWorkstation::getWorkstationId).collect(Collectors.toList());
-                downWorkstationService.update(new LambdaUpdateWrapper<DownWorkstation>().set(DownWorkstation::getEnableState, Const.SLOT_OFF)
-                        .in(DownWorkstation::getWorkstationId, workstationIds));
-            }
+//            if (CollectionUtils.isNotEmpty(workstationFull)) {
+//                List<Integer> workstationIds = workstationFull.stream().map(DownWorkstation::getWorkstationId).collect(Collectors.toList());
+//                downWorkstationService.update(new LambdaUpdateWrapper<DownWorkstation>().set(DownWorkstation::getEnableState, Const.SLOT_OFF)
+//                        .in(DownWorkstation::getWorkstationId, workstationIds));
+//            }
         }
         return workstationFull;
     }
@@ -156,47 +157,40 @@
         log.info("鎵撳嵃鍙傛暟:{}", downGlassInfo);
         QueryWrapper<DownGlassInfo> queryWrapper = Wrappers.query();
         queryWrapper.eq("flow_card_id", downGlassInfo.getFlowCardId())
-                .eq("layer", downGlassInfo.getLayer())
-                .select("flow_card_id", "layer", "width", "height", "filmsid", "thickness", "glass_type", "COUNT(*) AS quantity")
-                .groupBy("flow_card_id", "layer", "width", "height", "filmsid", "thickness", "glass_type", "id")
                 .orderByAsc("id");
+        int printLayer = 1;
+        if (downGlassInfo.getLayer() != 0) {
+            queryWrapper.select("flow_card_id", "layer", "width", "height", "filmsid", "thickness", "glass_type", "COUNT(*) AS quantity");
+            queryWrapper.groupBy("flow_card_id", "layer", "width", "height", "filmsid", "thickness", "glass_type", "id");
+            queryWrapper.eq("layer", downGlassInfo.getLayer());
+            printLayer = downGlassInfo.getLayer();
+        } else {
+            queryWrapper.select("flow_card_id", "width", "height", "filmsid", "thickness", "glass_type", "COUNT(*) AS quantity");
+            queryWrapper.groupBy("flow_card_id", "width", "height", "filmsid", "thickness", "glass_type", "id");
+        }
         List<Map<String, Object>> resultList = baseMapper.selectMaps(queryWrapper);
 
         log.info("MES钀芥灦鏁版嵁:{}", resultList);
-
-        List<Map<String, Object>> projectInfo = flowCardService.selectProject(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer());
+        List<Map<String, Object>> projectInfo = flowCardService.selectProject(downGlassInfo.getFlowCardId(), printLayer);
         log.info("娴佺▼鍗″ご閮ㄦ暟鎹�:{}", projectInfo);
         List<Map<String, Object>> flowCardInfo = flowCardService.selectFlowCard(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer());
         log.info("娴佺▼鍗$幓鐠冩暟鎹�:{}", flowCardInfo);
         for (Map<String, Object> row : flowCardInfo) {
             int order_number = (int) row.get("order_number");
-            int technology_number = (int) row.get("technology_number");
+
             int quantity1 = 0;
             for (Map<String, Object> row1 : resultList) {
                 int glass_type = (int) row1.get("glass_type");
-                int layer = (int) row1.get("layer");
-//                String child_width = (String) row1.get("child_width");
-//                Long quantity = (Long) row1.get("quantity");
-//                BigDecimal total_area = (BigDecimal) row1.get("total_area");
-//                String separation = (String) row1.get("separation");
-//                String perimeter = (String) row1.get("perimeter");
-//                BigDecimal width = (BigDecimal) row1.get("width");
-//                String other_columns = (String) row1.get("other_columns");
-//                String remarks = (String) row1.get("remarks");
-//                BigDecimal height = (BigDecimal) row1.get("height");
-                if (order_number == glass_type && technology_number == layer) {
-                    quantity1 += 1;
-//                    row.put("quantity", quantity);
-//                    row.put("order_number", order_number);
-//                    row.put("technology_number", technology_number);
-//                    row.put("child_width", child_width);
-//                    row.put("total_area", total_area);
-//                    row.put("separation", separation);
-//                    row.put("perimeter", perimeter);
-//                    row.put("width", width);
-//                    row.put("other_columns", other_columns);
-//                    row.put("remarks", remarks);
-//                    row.put("height", height);
+                if (downGlassInfo.getLayer() != 0) {
+                    int layer = (int) row1.get("layer");
+                    int technology_number = (int) row.get("technology_number");
+                    if (order_number == glass_type && technology_number == layer) {
+                        quantity1 += 1;
+                    }
+                } else {
+                    if (order_number == glass_type) {
+                        quantity1 += 1;
+                    }
                 }
             }
             row.put("quantity1", quantity1);
@@ -225,19 +219,16 @@
 
     @Override
     public List<Map<String, Object>> downGlassLabelPrint(DownGlassInfo downGlassInfo) {
-        //鑾峰彇涓嬬墖鐜荤拑鐨勯『搴�
-//        QueryWrapper<DownGlassInfo> queryWrapper = Wrappers.query();
-//        queryWrapper
-//                .eq("flow_card_id", downGlassInfo.getFlowCardId())
-//                .eq("layer", downGlassInfo.getLayer())
-//                .select("flow_card_id", "layer", "width", "height", "filmsid", "thickness", "glass_type", "COUNT(*) AS quantity")
-//                .groupBy("flow_card_id", "layer", "width", "height", "filmsid", "thickness", "glass_type", "id")
-//                .orderByAsc("id");
-//        List<Map<String, Object>> resultList = baseMapper.selectMaps(queryWrapper);
+
         List<Map<String, Object>> resultList = baseMapper.downGlassLabelPrint(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer());
         log.info("MES钀芥灦鏁版嵁:{}", resultList);
         //鑾峰彇ERP鏍囩鎵�闇�鐨勪俊鎭�
-        List<Map<String, Object>> labelInfo = flowCardService.selectLabel(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer());
+        List<Map<String, Object>> labelInfo;
+        if (downGlassInfo.getLayer() != 0) {
+            labelInfo = flowCardService.selectLabel(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer());
+        } else {
+            labelInfo = flowCardService.selectLabel(downGlassInfo.getFlowCardId(), 1);
+        }
         log.info("鏍囩鏁版嵁:{}", labelInfo);
 
         for (Map<String, Object> row : resultList) {
@@ -246,37 +237,72 @@
             for (Map<String, Object> row1 : labelInfo) {
                 int orderNumber = (int) row1.get("orderNumber");
                 int technologyNumber = (int) row1.get("technologyNumber");
-                if (orderNumber == glass_type && technologyNumber == layer) {
+                if (downGlassInfo.getLayer() != 0) {
+                    if (orderNumber == glass_type && technologyNumber == layer) {
 
-                    String order_id = (String) row1.get("order_id");
-                    String project = (String) row1.get("project");
-                    Long customer_id = (Long) row1.get("customer_id");
-                    BigDecimal width = (BigDecimal) row1.get("width");
-                    BigDecimal height = (BigDecimal) row1.get("height");
-                    Long quantity = (Long) row1.get("quantity");
-                    String glass_child = (String) row1.get("glass_child");
-                    String process = (String) row1.get("process");
-                    String customer_name = (String) row1.get("customer_name");
-                    String processing_note = (String) row1.get("processing_note");
-                    String other_colunmns = (String) row1.get("other_colunmns");
-                    String building_number = (String) row1.get("building_number");
-                    String bend_radius = (String) row1.get("bend_radius");
+                        String order_id = (String) row1.get("order_id");
+                        String project = (String) row1.get("project");
+                        Long customer_id = (Long) row1.get("customer_id");
+                        BigDecimal width = (BigDecimal) row1.get("width");
+                        BigDecimal height = (BigDecimal) row1.get("height");
+                        Long quantity = (Long) row1.get("quantity");
+                        String glass_child = (String) row1.get("glass_child");
+                        String process = (String) row1.get("process");
+                        String customer_name = (String) row1.get("customer_name");
+                        String processing_note = (String) row1.get("processing_note");
+                        String other_colunmns = (String) row1.get("other_colunmns");
+                        String building_number = (String) row1.get("building_number");
+                        String bend_radius = (String) row1.get("bend_radius");
 
-                    row.put("orderNumber", orderNumber);
-                    row.put("technology_number", technologyNumber);
-                    row.put("order_id", order_id);
-                    row.put("project", project);
-                    row.put("customer_id", customer_id);
-                    row.put("width", width);
-                    row.put("height", height);
-                    row.put("quantity", quantity);
-                    row.put("glass_child", glass_child);
-                    row.put("process", process);
-                    row.put("customer_name", customer_name);
-                    row.put("processing_note", processing_note);
-                    row.put("other_colunmns", other_colunmns);
-                    row.put("building_number", building_number);
-                    row.put("bend_radius", bend_radius);
+                        row.put("orderNumber", orderNumber);
+                        row.put("technology_number", technologyNumber);
+                        row.put("order_id", order_id);
+                        row.put("project", project);
+                        row.put("customer_id", customer_id);
+                        row.put("width", width);
+                        row.put("height", height);
+                        row.put("quantity", quantity);
+                        row.put("glass_child", glass_child);
+                        row.put("process", process);
+                        row.put("customer_name", customer_name);
+                        row.put("processing_note", processing_note);
+                        row.put("other_colunmns", other_colunmns);
+                        row.put("building_number", building_number);
+                        row.put("bend_radius", bend_radius);
+                    }
+                } else {
+                    if (orderNumber == glass_type) {
+
+                        String order_id = (String) row1.get("order_id");
+                        String project = (String) row1.get("project");
+                        Long customer_id = (Long) row1.get("customer_id");
+                        BigDecimal width = (BigDecimal) row1.get("width");
+                        BigDecimal height = (BigDecimal) row1.get("height");
+                        Long quantity = (Long) row1.get("quantity");
+                        String glass_child = (String) row1.get("glass_child");
+                        String process = (String) row1.get("process");
+                        String customer_name = (String) row1.get("customer_name");
+                        String processing_note = (String) row1.get("processing_note");
+                        String other_colunmns = (String) row1.get("other_colunmns");
+                        String building_number = (String) row1.get("building_number");
+                        String bend_radius = (String) row1.get("bend_radius");
+
+                        row.put("orderNumber", orderNumber);
+                        row.put("technology_number", technologyNumber);
+                        row.put("order_id", order_id);
+                        row.put("project", project);
+                        row.put("customer_id", customer_id);
+                        row.put("width", width);
+                        row.put("height", height);
+                        row.put("quantity", quantity);
+                        row.put("glass_child", glass_child);
+                        row.put("process", process);
+                        row.put("customer_name", customer_name);
+                        row.put("processing_note", processing_note);
+                        row.put("other_colunmns", other_colunmns);
+                        row.put("building_number", building_number);
+                        row.put("bend_radius", bend_radius);
+                    }
                 }
             }
         }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
index 27d3131..54db40d 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
@@ -131,10 +131,12 @@
     @Scheduled(fixedDelay = 300)
     public void plcShelfFull() {
         List<DownWorkstation> list = downGlassInfoService.queryWorkStationIsFull();
+        S7control s7control = S7object.getinstance().plccontrol;
+        PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject;
         if (CollectionUtils.isNotEmpty(list)) {
-            S7control s7control = S7object.getinstance().plccontrol;
-            PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject;
             s7control.writeWord(plcMesObject.getPlcParameter("alarm_signal").getAddress(), 1);
+        }else{
+            s7control.writeWord(plcMesObject.getPlcParameter("alarm_signal").getAddress(), 0);
         }
     }
 
@@ -639,7 +641,9 @@
                 return Boolean.FALSE;
             }
         } else {
-            if (downStorageCageDetails.getWidth() > maxWidth || downStorageCageDetails.getHeight() > maxHeight) {
+            double firstLength = Math.max(downStorageCageDetails.getWidth(), downStorageCageDetails.getHeight());
+            double secondLength = Math.min(downStorageCageDetails.getWidth(), downStorageCageDetails.getHeight());
+            if (firstLength > maxWidth || secondLength > maxHeight) {
                 endCell = Const.G13_WORK_STATION;
             } else {
                 DownWorkstation workstation;
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
index b2693bb..6baf01e 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
@@ -172,9 +172,11 @@
                         .select("Top 1 *")
                         .eq("end_cell", Const.G13_WORK_STATION)
                         .lt("task_status", Const.UNLOAD_GLASS_DOWN)
-                        .orderByDesc("id")
+                        .orderByAsc("id")
         );
-        jsonObject4.append("takeGlass", takeGlass);
+        if(takeGlass!=null){
+            jsonObject4.append("takeGlass", takeGlass);
+        }
 
         ArrayList<WebSocketServer> sendwServer4 = WebSocketServer.sessionMap.get("unloadglass");
         if (sendwServer4 != null) {

--
Gitblit v1.8.0