From 29f942cefe9d9f4272332eec0276f2c5a60d9d9e Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期三, 08 一月 2025 09:13:42 +0800
Subject: [PATCH] 添加自动下片机打印标签功能

---
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassTaskController.java                  |   24 +
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java                          |    2 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/FlowCardService.java                                                     |    2 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java                                                 |    6 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java  |   22 
 UI-Project/src/lang/en.js                                                                                                                      |    2 
 UI-Project/src/lang/zh.js                                                                                                                      |    2 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java   |   10 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/FlowCardMapper.java                                                       |    8 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java                                                      |   12 
 hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml                                                              |   64 ++-
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWorkDetail.java                                                  |    2 
 UI-Project/src/views/UnLoadGlass/loadmachinerack.vue                                                                                           |   45 ++
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml                                            |   17 
 UI-Project/src/views/Slicecage/slicecage.vue                                                                                                   |   49 ++
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java                                          |    6 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java |   28 +
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java                                     |    8 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/FlowCardServiceImpl.java                                            |    3 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java               |  186 ++++++----
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/CacheGlassModuleApplication.java                                        |    2 
 UI-Project/src/views/UnLoadGlass/PrintFlow.vue                                                                                                 |  432 +++++++++++---------------
 22 files changed, 508 insertions(+), 424 deletions(-)

diff --git a/UI-Project/src/lang/en.js b/UI-Project/src/lang/en.js
index 60ad416..d0b19fe 100644
--- a/UI-Project/src/lang/en.js
+++ b/UI-Project/src/lang/en.js
@@ -34,6 +34,7 @@
           quit:"Exit",
       },
       basicData:{
+          Automaticprintingswitch:'Automatic printing switch',
           laserprinting:'Laser printing machine ready status锛�',
           cuttingmachine:'Cutting machine ready status锛�',
           machine:'Online status of the loading table锛�',
@@ -321,6 +322,7 @@
           cardnumbera:'Process card number锛�',
           incardnumber:'Please select the process card number',
           clearglass:'Clear the glass on the shelf',
+          confirmclear:'Please confirm that the process card and label have been printed before clearing them',
           sure:'Operate',
           cancel:'Cancel',
           glassinformation:'Glass information',
diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
index e155fb5..e1bae66 100644
--- a/UI-Project/src/lang/zh.js
+++ b/UI-Project/src/lang/zh.js
@@ -34,6 +34,7 @@
           quit:"閫�鍑�",
       },
       basicData:{
+          Automaticprintingswitch:'鑷姩鎵撳嵃寮�鍏�',
           laserprinting:'鎵撴爣鏈哄氨缁姸鎬侊細',
           cuttingmachine:'鍒囧壊鏈哄氨缁姸鎬侊細',
           machine:'涓婄墖鏈鸿仈鏈虹姸鎬侊細',
@@ -326,6 +327,7 @@
           cardnumbera:'娴佺▼鍗″彿锛�',
           incardnumber:'璇烽�夋嫨娴佺▼鍗″彿',
           clearglass:'娓呴櫎鏋跺瓙鐜荤拑',
+          confirmclear:'璇风‘璁ゅ凡鎵撳嵃娴佺▼鍗″拰鏍囩鍐嶆竻闄�',
           sure:'纭',
           cancel:'鍙栨秷',
           glassinformation:'鐜荤拑淇℃伅',
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index f5539ff..a04268d 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -602,8 +602,8 @@
     console.error('鍙戠敓閿欒:', error);
   }
 };
-// 瀹屾垚浠诲姟
-const finish = async (row) => {
+// 淇敼浠诲姟
+const finish = async (type,row,state) => {
   try {
     const confirmResult = await ElMessageBox.confirm(
       t('searchOrder.fin'),
@@ -614,13 +614,24 @@
         type: 'warning',
       }
     );
+    row.taskState=state;
     if (confirmResult === 'confirm') {
-      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/finishBigStorageCageDetails", row)
-      if (response.code === 200) {
-        ElMessage.success(response.message);
-      } else {
-        ElMessage.error(response.message);
+      if(type==1){
+          const response = await request.post("/cacheVerticalGlass/bigStorageCageFeedTask/updateBigStorageCageFeedTask", row)
+        if (response.code === 200) {
+          ElMessage.success(response.message);
+        } else {
+          ElMessage.error(response.message);
+        }
+      }else{
+        const response = await request.post("/cacheVerticalGlass/bigStorageCageOutTask/updatebigStorageCageOutTask", row)
+        if (response.code === 200) {
+          ElMessage.success(response.message);
+        } else {
+          ElMessage.error(response.message);
+        }
       }
+      
     }
   } catch (error) {
     console.error('鍙戠敓閿欒:', error);
@@ -1013,6 +1024,14 @@
         <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 240px;">
           <el-table height="240px" ref="table" :data="tableDatac"
             :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+            <el-table-column prop="bigStorageCageFeedTask.glassId" align="center" :label="$t('searchOrder.operate')"
+              min-width="200" >
+              <template #default="scope">
+                <el-button size="mini" type="text" plain @click="finish(0,scope.row.bigStorageCageOutTask,3)">{{ $t('searchOrder.completetask') }}</el-button>
+                <el-button size="mini" type="text" plain @click="finish(0,scope.row.bigStorageCageOutTask,8)">{{ $t('searchOrder.breakage') }}</el-button>
+                <el-button size="mini" type="text" plain @click="finish(0,scope.row.bigStorageCageOutTask,9)">{{ $t('searchOrder.takeout') }}</el-button>
+              </template>
+            </el-table-column>
             <el-table-column prop="bigStorageCageOutTask.glassId" align="center"
               :label="$t('searchOrder.outputglassID')" min-width="140" />
             <el-table-column prop="bigStorageCageOutTask.startSlot" align="center"
@@ -1052,6 +1071,14 @@
         <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 240px;">
           <el-table height="240px" ref="table" @selection-change="handleSelectionChange" :data="tableDatad"
             :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+            <el-table-column prop="bigStorageCageFeedTask.glassId" align="center" :label="$t('searchOrder.operate')"
+              min-width="200" >
+              <template #default="scope">
+                <el-button size="mini" type="text" plain @click="finish(1,scope.row.bigStorageCageFeedTask,4)">{{ $t('searchOrder.completetask') }}</el-button>
+                <el-button size="mini" type="text" plain @click="finish(1,scope.row.bigStorageCageFeedTask,8)">{{ $t('searchOrder.breakage') }}</el-button>
+                <el-button size="mini" type="text" plain @click="finish(1,scope.row.bigStorageCageFeedTask,9)">{{ $t('searchOrder.takeout') }}</el-button>
+              </template>
+            </el-table-column>
             <el-table-column prop="bigStorageCageFeedTask.glassId" align="center" :label="$t('searchOrder.intoglassid')"
               min-width="140" />
             <el-table-column prop="bigStorageCageFeedTask.targetSlot" align="center"
@@ -1427,11 +1454,11 @@
               <el-table-column prop="gap" align="center" :label="$t('searchOrder.glassgaps')" min-width="80" />
               <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" min-width="220">
                 <template #default="scope">
-                  <el-button size="mini" type="text" plain @click="broke(scope.row)">{{ $t('searchOrder.breakage')
+                  <el-button size="mini" type="text" plain :disabled="(scope.row.state != 100 )?true:false" @click="broke(scope.row)">{{ $t('searchOrder.breakage')
                     }}</el-button>
-                  <el-button size="mini" type="text" plain @click="brokec(scope.row)">{{ $t('searchOrder.takeout')
+                  <el-button size="mini" type="text" plain :disabled="(scope.row.state != 100 )?true:false" @click="brokec(scope.row)">{{ $t('searchOrder.takeout')
                     }}</el-button>
-                  <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('searchOrder.delete')
+                  <el-button size="mini" type="text" plain :disabled="(scope.row.state != 100 )?true:false" @click="opena(scope.row)">{{ $t('searchOrder.delete')
                     }}</el-button>
                   <el-button size="mini" type="text"
                     :disabled="!((props.row.bigStorageCageDetails[0].state !== 102 && scope.$index == 0) || (props.row.bigStorageCageDetails[(scope.$index - 1) < 0 ? 0 : scope.$index - 1].state == 102) && (scope.row.state != 102))"
@@ -1645,7 +1672,7 @@
       </el-table-column>
     </el-table>
   </el-dialog>
-  <el-dialog v-model="dialogFormVisibleaDownGlasss" top="2vh" width="97%" :title="$t('浜哄伐涓嬬墖淇℃伅')">
+  <el-dialog v-model="dialogFormVisibleaDownGlasss" top="2vh" width="97%" title="浜哄伐涓嬬墖淇℃伅">
     <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;">
diff --git a/UI-Project/src/views/UnLoadGlass/PrintFlow.vue b/UI-Project/src/views/UnLoadGlass/PrintFlow.vue
index ff1c579..1391726 100644
--- a/UI-Project/src/views/UnLoadGlass/PrintFlow.vue
+++ b/UI-Project/src/views/UnLoadGlass/PrintFlow.vue
@@ -1,13 +1,13 @@
 <script setup>
 import { useI18n } from 'vue-i18n'
-  const { t } = useI18n()
-  let language = ref(localStorage.getItem('lang') || 'zh')
-import {Search} from "@element-plus/icons-vue";
-import {useRouter} from "vue-router"
+const { t } = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+import { Search } from "@element-plus/icons-vue";
+import { useRouter } from "vue-router"
 const router = useRouter()
 import request from "@/utils/request"
-import { WebSocketHost ,host} from '@/utils/constants'
-import { ref, onMounted , onBeforeUnmount, reactive, computed,onUnmounted } from "vue";
+import { WebSocketHost, host } from '@/utils/constants'
+import { ref, onMounted, onBeforeUnmount, reactive, computed, onUnmounted } from "vue";
 import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
 import { ElMessage, ElMessageBox } from 'element-plus'
 import companyInfo from "@/lang/companyInfo";
@@ -86,43 +86,43 @@
 
 
 onMounted(async () => {
-  console.log(props.printFlowCardId,props.printLayer)
+  console.log(props.printFlowCardId, props.printLayer)
   try {
-    
-    const response = await request.post('/unLoadGlass/downGlassInfo/downGlassPrint',{
-        flowCardId:props.printFlowCardId,
-        layer:props.printLayer
+
+    const response = await request.post('/unLoadGlass/downGlassInfo/downGlassPrint', {
+      flowCardId: props.printFlowCardId,
+      layer: props.printLayer
     });
     if (response.code == 200) {
-      
+
       // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       produceList.value = response.data;
       ElMessage.success(response.message);
       for (let j = 0; j < produceList.value.length; j++) {
-            let sumWeight = 0
-            produceList.value[j].detailList.forEach((item, index) => {
-              // 瑙f瀽 separation 瀛楁鐨� JSON 瀛楃涓�
-              let separationObj = JSON.parse(item.separation);
+        let sumWeight = 0
+        produceList.value[j].detailList.forEach((item, index) => {
+          // 瑙f瀽 separation 瀛楁鐨� JSON 瀛楃涓�
+          let separationObj = JSON.parse(item.separation);
 
-              // 鑾峰彇 thickness 鐨勫師濮嬪��
-              let thicknessValue = separationObj.thickness;
+          // 鑾峰彇 thickness 鐨勫師濮嬪��
+          let thicknessValue = separationObj.thickness;
 
-              // 鍘婚櫎 'mm' 鍗曚綅
-              let thicknessWithoutUnit = thicknessValue.replace('mm', '');
+          // 鍘婚櫎 'mm' 鍗曚綅
+          let thicknessWithoutUnit = thicknessValue.replace('mm', '');
 
-              item.separation = thicknessWithoutUnit
+          item.separation = thicknessWithoutUnit
 
-              sumWeight += item.width * item.height * item.quantity / 1000000 * item.separation * 2.5 * 1;
+          sumWeight += item.width * item.height * item.quantity / 1000000 * item.separation * 2.5 * 1;
 
-            });
-            produceList.value[j].detail[0].weight = sumWeight
-          }
-          handleGetQRCode()
-          handleSummary()
-          // printFlowCard();
+        });
+        produceList.value[j].detail[0].weight = sumWeight
+      }
+      handleGetQRCode()
+      handleSummary()
+      // printFlowCard();
 
-          
-      
+
+
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
       ElMessage.error(response.message);
@@ -134,215 +134,155 @@
 }); 
 </script>
 <template>
-    <div id="printFlowCard">
-    <table v-for="(item,id) in produceList" id="contentTable" :key="id">
+  <div id="printFlowCard">
+    <table v-for="(item, id) in produceList" id="contentTable" :key="id">
       <thead>
-      <tr v-for="(itemFlow,index) in item.detail" :key="index">
-        <td  colspan="29">
-          <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px;margin: 5px  "/></div>
-          <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div>
-          <div>{{ company.companyName }}</div>
-          <div>鐢熶骇娴佺▼鍗�</div>
-          <div v-if="itemFlow.technologyNumberMerge!=''" style="text-align: right;font-weight: bolder">
-            {{itemFlow.otherRemarks}}&nbsp;&nbsp;
-            娴佺▼鍗″彿锛� {{
-              itemFlow.process_id
-            }}/{{ itemFlow.technologyNumberMerge }} 鍏� {{ flowCardCount }} 鏋�
-          </div>
-          <div v-else style="text-align: right;font-weight: bolder">
-            {{itemFlow.otherRemarks}}&nbsp;&nbsp;
-            娴佺▼鍗″彿锛� {{
-              itemFlow.process_id
-            }}/{{ itemFlow.technologyNumber }} 鍏� {{ flowCardCount }} 鏋�
-          </div>
-        </td>
-      </tr>
-      <tr v-for="(items,index) in item.detail" :key="index">
-        <td class="tdNowrap">瀹㈡埛鍚嶇О锛�</td>
-        <td colspan="2">{{ items.customer_name }}</td>
-        <td class="tdNowrap">椤圭洰鍚嶇О锛�</td>
-        <td colspan="2">{{ items.project }}</td>
-        <td class="tdNowrap">宸ヨ壓娴佺▼锛�</td>
-        <td colspan="22"  style="width: 500px">{{ items.process }}</td>
-      </tr>
-      <tr v-for="(itemTr,index) in item.detail" :key="index">
-        <td class="tdNowrap">纾ㄨ竟绫诲瀷锛�</td>
-        <td colspan="2">{{ itemTr.edging_type }}</td>
-        <td class="tdNowrap">鍗曠墖鍚嶇О锛�</td>
-        <td colspan="2">{{ itemTr.glass_child }}</td>
-        <td class="tdNowrap">浜у搧鍚嶇О锛�</td>
-        <td colspan="22">{{ itemTr.product_name }}</td>
-      </tr>
-      <tr>
-        <td rowspan='2'>搴忓彿</td>
-        <!-- <td rowspan='2'>缂栧彿</td> -->
-        <td rowspan="2">灏忕墖椤哄簭</td>
-        <td rowspan='2' style="width: 90px">瀹�*楂�</td>
-        <td rowspan='2'>鏁伴噺</td>
-        <td rowspan='2'>钀芥灦</td>
-        <td rowspan='2'>闈㈢Н</td>
-        <td rowspan='2'>鍛ㄩ暱</td>
-        <td rowspan='2'>鍗婂緞</td>
-        <td rowspan='2'>澶囨敞</td>
-        <td v-for="(itemPr,index) in item.processList" :key="index" colspan="2">{{ itemPr.process }}</td>
-      </tr>
-      <tr>
-
-        <td>{{ company.printLabel.printFlowCard.patch }}</td>
-        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
-        <td>{{ company.printLabel.printFlowCard.patch }}</td>
-        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
-        <td>{{ company.printLabel.printFlowCard.patch }}</td>
-        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
-        <td>{{ company.printLabel.printFlowCard.patch }}</td>
-        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
-        <td>{{ company.printLabel.printFlowCard.patch }}</td>
-        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
-        <td>{{ company.printLabel.printFlowCard.patch }}</td>
-        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
-        <td>{{ company.printLabel.printFlowCard.patch }}</td>
-        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
-        <td>{{ company.printLabel.printFlowCard.patch }}</td>
-        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
-        <td>{{ company.printLabel.printFlowCard.patch }}</td>
-        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
-        <td>{{ company.printLabel.printFlowCard.patch }}</td>
-        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
-      </tr>
+        <tr v-for="(itemFlow, index) in item.detail" :key="index">
+          <td colspan="29">
+            <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px;margin: 5px  " /></div>
+            <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div>
+            <div>{{ company.companyName }}</div>
+            <div>鐢熶骇娴佺▼鍗�</div>
+            <div v-if="itemFlow.technologyNumberMerge != ''" style="text-align: right;font-weight: bolder">
+              {{ itemFlow.otherRemarks }}&nbsp;&nbsp;
+              娴佺▼鍗″彿锛� {{
+                itemFlow.process_id
+              }}/{{ itemFlow.technologyNumberMerge }} 鍏� {{ flowCardCount }} 鏋�
+            </div>
+            <div v-else style="text-align: right;font-weight: bolder">
+              {{ itemFlow.otherRemarks }}&nbsp;&nbsp;
+              娴佺▼鍗″彿锛� {{
+                itemFlow.process_id
+              }}/{{ itemFlow.technologyNumber }} 鍏� {{ flowCardCount }} 鏋�
+            </div>
+          </td>
+        </tr>
+        <tr v-for="(items, index) in item.detail" :key="index">
+          <td class="tdNowrap">瀹㈡埛鍚嶇О锛�</td>
+          <td colspan="2">{{ items.customer_name }}</td>
+          <td class="tdNowrap">椤圭洰鍚嶇О锛�</td>
+          <td colspan="2">{{ items.project }}</td>
+          <td class="tdNowrap">宸ヨ壓娴佺▼锛�</td>
+          <td colspan="22" style="width: 500px">{{ items.process }}</td>
+        </tr>
+        <tr v-for="(itemTr, index) in item.detail" :key="index">
+          <td class="tdNowrap">纾ㄨ竟绫诲瀷锛�</td>
+          <td colspan="2">{{ itemTr.edging_type }}</td>
+          <td class="tdNowrap">鍗曠墖鍚嶇О锛�</td>
+          <td colspan="2">{{ itemTr.glass_child }}</td>
+          <td class="tdNowrap">浜у搧鍚嶇О锛�</td>
+          <td colspan="22">{{ itemTr.product_name }}</td>
+        </tr>
+        <tr>
+          <td rowspan='2'>搴忓彿</td>
+          <!-- <td rowspan='2'>缂栧彿</td> -->
+          <td rowspan="2">灏忕墖椤哄簭</td>
+          <td rowspan='2' style="width: 90px">瀹�*楂�</td>
+          <td rowspan='2'>鏁伴噺</td>
+          <td rowspan='2'>钀芥灦</td>
+          <td rowspan='2'>闈㈢Н</td>
+          <td rowspan='2'>鍛ㄩ暱</td>
+          <td rowspan='2'>鍗婂緞</td>
+          <td rowspan='2'>澶囨敞</td>
+          <td v-for="(itemPr, index) in item.processList" :key="index" colspan="2">{{ itemPr.process }}</td>
+        </tr>
+        <tr>
+          <template v-for=" n in item.processList.length">
+            <td>姝e搧</td>
+            <td>娆″搧</td>
+          </template>
+        </tr>
       </thead>
       <tbody>
 
-      <tr v-for="(itemDatile,index) in item.detailList" :key="index">
-        <td>{{ itemDatile.order_number }}</td>
-        <!-- <td>{{ itemDatile.s01Value }}</td> -->
-        <td>{{ itemDatile.technology_number }}</td>
-        <td>{{ itemDatile.child_width }}</td>
-        <td class="item" style="width: 5%;height: 100%;">
-          {{ itemDatile.quantity }}
-          <!-- <input v-model="itemDatile.quantity" style="width: 100%;height: 100%"  @keyup="handleSummary()"/> -->
-        </td>
-        <td>{{ itemDatile.quantity1 }}</td>
-        <td>{{ itemDatile.total_area }}</td>
-        <td>{{ itemDatile.perimeter }}</td>
-        <td>{{ itemDatile.bend_radius }}</td>
-        <td>{{ itemDatile.remarks }}</td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-      </tr>
+        <tr v-for="(itemDatile, index) in item.detailList" :key="index">
+          <td>{{ itemDatile.order_number }}</td>
+          <!-- <td>{{ itemDatile.s01Value }}</td> -->
+          <td>{{ itemDatile.technology_number }}</td>
+          <td>{{ itemDatile.child_width }}</td>
+          <td class="item" style="width: 5%;height: 100%;">
+            {{ itemDatile.quantity }}
+            <!-- <input v-model="itemDatile.quantity" style="width: 100%;height: 100%"  @keyup="handleSummary()"/> -->
+          </td>
+          <td>{{ itemDatile.quantity1 }}</td>
+          <td>{{ itemDatile.total_area }}</td>
+          <td>{{ itemDatile.perimeter }}</td>
+          <td>{{ itemDatile.bend_radius }}</td>
+          <td>{{ itemDatile.remarks }}</td>
+          <template v-for=" n in item.processList.length">
+            <td></td>
+            <td></td>
+          </template>
+        </tr>
+
+
+        <tr style="height: 14px">
+          <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>
+          <td>瀹屽伐绛惧悕</td>
+          <td colspan="2"></td>
+          <td colspan="2"></td>
+          <td colspan="2"></td>
+          <td colspan="2"></td>
+          <template v-for=" n in item.processList.length">
+            <td colspan="2"></td>
+          </template>
+        </tr>
+        <tr>
+          <td>璐ㄦ绛惧悕</td>
+          <td colspan="2"></td>
+          <td colspan="2">鐢熶骇绛惧悕</td>
+          <td colspan="2"></td>
+          <template v-for=" n in item.processList.length">
+            <td colspan="2"></td>
+          </template>
+        </tr>
+        <tr>
+          <td>鍘熺墖绠卞彿</td>
+          <td colspan="28"></td>
+        </tr>
+
+        <tr v-for="(qrCodeItem, index) in item.detail" :key="index">
+          <td colspan="29">
+            <span style="display: flex;">
+              <span v-for="(qrCodeItems, index) in qrCodeItem.qrcodeList" :key="index" style="display: flex;width: 35%">
+                <div class='qrCode' style="width: 80px;height: 80px;">
+                  <img :src=qrCodeItems.qrcode>
+                </div>
+                <span style="float: left;font-weight: bolder">{{
+                  qrCodeItem.process_id + "/" + qrCodeItems.technologyNumber
+                }}</span>
+              </span>
+            </span>
+          </td>
+
+        </tr>
+
+        <!-- <tfoot> -->
+        <tr v-for="(itemtextareas, index) in item.detail" :key="index">
+          <td colspan="29" rowspan="6" style="width: 480px;height: 150px ">
+            <div style="width: 100%;height: 100%;"><textarea
+                style="height: 99%;width: 99%;border: none;;font-size: 12px;overflow: hidden;">{{
+                  itemtextareas.processing_note }}</textarea>
+            </div>
+          </td>
+        </tr>
       </tbody>
-      <tfoot>
-      <tr style="height: 14px">
-        <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">
-
-        <td>瀹屽伐绛惧悕</td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-      </tr>
-      <tr>
-        <td>鐢熶骇鏃ユ湡</td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-      </tr>
-      <tr>
-        <td>璐ㄦ绛惧悕</td>
-        <td colspan="2"></td>
-        <td colspan="2">鐢熶骇绛惧悕</td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-      </tr>
-      <tr>
-        <td>鍘熺墖绠卞彿</td>
-        <td colspan="28"></td>
-      </tr>
-      <tr v-for="(qrCodeItem,index) in item.detail" :key="index">
-        <td colspan="29">
-          <span style="display: flex;">
-            <span v-for="(qrCodeItems,index) in qrCodeItem.qrcodeList" :key="index" style="display: flex;width: 35%">
-            <div class='qrCode' style="width: 80px;height: 80px;">
-            <img :src=qrCodeItems.qrcode>
-          </div>
-          <span style="float: left;font-weight: bolder">{{
-              qrCodeItem.process_id + "/" + qrCodeItems.technologyNumber
-            }}</span>
-          </span>
-          </span>
-        </td>
-
-      </tr>
-      <tr v-for="(itemtextareas,index) in item.detail" :key="index">
-        <td  colspan="29" rowspan="6" style="width: 480px;height: 150px ">
-          <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px;overflow: hidden;">{{itemtextareas.processing_note}}</textarea>
-          </div>
-        </td>
-      </tr>
-      </tfoot>
+      <!-- </tfoot> -->
     </table>
   </div>
 </template>
@@ -356,7 +296,7 @@
 
 #printFlowCard {
   text-align: center;
-//font-weight: bolder; height: 600px;
+  //font-weight: bolder; height: 600px;
 }
 
 #contentTable {
@@ -381,20 +321,16 @@
   font-weight: bolder;
 }
 
-#contentTable tbody {
+#contentTable tbody {}
 
-}
-
-.tdNowrap {
-
-}
+.tdNowrap {}
 
 #contentTable tfoot {
   font-size: 12px;
   font-weight: bolder;
 }
 
-input{
+input {
   border: none;
   background: none;
 }
@@ -404,9 +340,8 @@
 
 @media print {
   @page {
-    size: auto;  
-    margin: 4mm 5mm 5mm 5mm  
-
+    size: auto;
+    margin: 4mm 5mm 5mm 5mm
   }
 
   table {
@@ -414,8 +349,8 @@
     page-break-inside: auto;
   }
 
- #contentTable thead {
-   display: table-header-group;
+  #contentTable thead {
+    display: table-header-group;
   }
 
   tfoot {
@@ -428,7 +363,4 @@
   width: 100%;
   height: 100%;
 }
-
-
-
 </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index 55cc28b..f53e112 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -23,6 +23,7 @@
  
 const dialogFormVisiblea = ref(false)
 const dialogFormVisiblea2 = ref(false)
+const dialogFormVisiblea3 = ref(false)
 const dialogFormVisibleaDownGlass = ref(false)
 const dialogFormVisibleaDownGlasss = ref(false)
 // 鏁版嵁
@@ -95,6 +96,21 @@
   fetchFlowCardId();
   dialogFormVisiblea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
 };
+
+const clearGlass = async () => {
+  try {
+      const response = await request.post("/unLoadGlass/downGlassTask/updateOutGlassTask")
+      if (response.code === 200) {
+        tableData.value = response.data;
+        ElMessage.success(response.message);
+      } else {
+        ElMessage.error(response.message);
+      }
+      dialogFormVisiblea3.value = false; 
+  } catch (error) {
+    console.error('鍙戠敓閿欒:', error);
+  }
+}
 //鑾峰彇娴佺▼鍗″彿
 const fetchFlowCardId = async () => {
   try {
@@ -149,6 +165,9 @@
   workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
   dialogFormVisiblea2.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
   workFlowCard.value = row.flowCardId;
+};
+const handleBindRack3 = (row) => {
+  dialogFormVisiblea3.value = true; // 鎵撳紑娓呯┖鐜荤拑瀵硅瘽妗�
 };
 //娓呴櫎鍐呭
 const handleclear = async () => {
@@ -455,7 +474,7 @@
       <el-card style="flex: 1;" v-loading="loading">
         <el-card style="flex: 1;margin-left: 4px;margin-top: 1px;" v-loading="loading">
         <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
-          <el-table height="350px" ref="table" @selection-change="handleSelectionChange" :data="tableData"
+          <el-table height="400px" ref="table" @selection-change="handleSelectionChange" :data="tableData"
             :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
             <el-table-column prop="workstationId" align="center" :label="$t('reportWork.lowerbit')" min-width="80" />
             <el-table-column prop="workstationId" align="center" :label="$t('reportWork.shelfnumber')"
@@ -475,15 +494,17 @@
                 </el-tag>
               </template>
             </el-table-column>
-            <el-table-column fixed="right" :label="$t('reportWork.operate')" align="center" width="400">
+            <el-table-column fixed="right" :label="$t('reportWork.operate')" align="center" width="500">
               <template #default="scope">
-                <el-button size="mini" type="text" plain v-show="scope.row.enableState !== '宸插惎鐢�'"
+                <el-button size="mini" type="text" v-if="scope.row.workstationId!=7" plain v-show="scope.row.enableState !== '宸插惎鐢�'"
                   @click="handleBindRack(scope.row)">{{ $t('reportWork.bindingshelves') }}
                 </el-button>
-                <el-button size="mini" type="text" plain @click="handleBindRack2(scope.row)">{{ $t('reportWork.clear')
+                <el-button size="mini" type="text" v-if="scope.row.workstationId!=7" plain @click="handleBindRack2(scope.row)">{{ $t('reportWork.clear')
                   }}</el-button>
-                <el-button @click="open(scope.row)" :disabled="scope.row.flowCardId == null">{{ $t('reportWork.processcard') }}</el-button>
-                <el-button @click="open1(scope.row)" :disabled="scope.row.flowCardId == null">{{ $t('reportWork.printlabels') }}</el-button>
+                <el-button @click="open(scope.row)" v-if="scope.row.workstationId!=7" :disabled="scope.row.flowCardId == null">{{ $t('reportWork.processcard') }}</el-button>
+                <el-button @click="open1(scope.row)" v-if="scope.row.workstationId!=7" :disabled="(scope.row.flowCardId == null&&scope.row.workstationId!=7)">{{ $t('reportWork.printlabels') }}</el-button>
+                <el-button @click="handleBindRack3()" :disabled="(scope.row.totalQuantity ==0)" v-if="scope.row.workstationId==7">{{ $t('reportWork.clear') }}</el-button>
+                <el-button @click="open1(scope.row)"  :disabled="(scope.row.totalQuantity ==0)">{{ $t('reportWork.printlabels') }}</el-button>
               </template>
  
             </el-table-column>
@@ -621,7 +642,17 @@
       </div>
     </template>
   </el-dialog>
-    <el-dialog id="sizePrintCalrd" v-model="dialogTableVisible" destroy-on-close>
+  <el-dialog v-model="dialogFormVisiblea3" top="21vh" width="30%" :title="$t('reportWork.confirmclear')">
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="clearGlass()">
+          {{ $t('reportWork.sure') }}
+        </el-button>
+        <el-button @click="dialogFormVisiblea3 = false">{{ $t('reportWork.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+    <el-dialog style="width: 75%;height: 75%;" id="sizePrintCalrd" v-model="dialogTableVisible" destroy-on-close>
       <print-flow id="child" :printFlowCardId="printFlowCardId" :printLayer="printLayer"
                   style="width: 100%;height: 100%"/>
     </el-dialog>
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 a4659c7..b42a3c0 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
@@ -61,6 +61,7 @@
     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);
+        damageSelectWrapper.ne(Damage::getStatus, 7);
         if (type != 0) {
             damageSelectWrapper.eq(Damage::getType, type);
         }
@@ -71,9 +72,8 @@
             damageSelectWrapper.eq(Damage::getWorkingProcedure, workingProcedure);
         }
         List<Damage> damageList = baseMapper.selectList(damageSelectWrapper);
-
         for (Damage damage : damageList) {
-            damage.setStatus(2);
+            damage.setStatus(3);
         }
         return baseMapper.selectList(damageSelectWrapper);
     }
@@ -134,7 +134,7 @@
                 }
             }
             reportingWorkDetails.add(reportingWorkDetail);
-            reportingWorkDetail.setDamageDetailsList(damageDetailses);
+            reportingWorkDetail.setDamageDetails(damageDetailses);
             sendToERP(reportingWork, reportingWorkDetails);
         }
     }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWorkDetail.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWorkDetail.java
index f2402c2..cb27704 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWorkDetail.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWorkDetail.java
@@ -149,6 +149,6 @@
      */
     private LocalDateTime reworkUpdateTime;
 
-    private List<DamageDetails> damageDetailsList;
+    private List<DamageDetails> damageDetails;
 
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/FlowCardMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/FlowCardMapper.java
index 865ca5c..3d93313 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/FlowCardMapper.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/FlowCardMapper.java
@@ -10,7 +10,7 @@
 
 /**
  * <p>
- *  Mapper 鎺ュ彛
+ * Mapper 鎺ュ彛
  * </p>
  *
  * @author wu
@@ -19,9 +19,9 @@
 @DS("pp")
 public interface FlowCardMapper extends BaseMapper<FlowCard> {
 
-    List<Map<String, Object>> selectProject(@Param("processId") String processId,@Param("technologyNumber") Integer technologyNumber);
+    List<Map<String, Object>> selectProject(@Param("processId") String processId, @Param("technologyNumber") Integer technologyNumber);
 
-    List<Map<String, Object>> selectFlowCard(@Param("processId") String processId,@Param("technologyNumber") Integer technologyNumber);
+    List<Map<String, Object>> selectFlowCard(@Param("processId") String processId, @Param("technologyNumber") Integer technologyNumber);
 
-    List<Map<String, Object>> selectLabel(@Param("processId") String processId,@Param("technologyNumber") Integer technologyNumber);
+    List<Map<String, Object>> selectLabel(@Param(value = "list") List<String> processId, @Param("technologyNumber") Integer technologyNumber);
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/FlowCardService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/FlowCardService.java
index 7120afb..c9c091b 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/FlowCardService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/FlowCardService.java
@@ -20,5 +20,5 @@
 
     List<Map<String, Object>> selectFlowCard(String processId, Integer technologyNumber);
 
-    List<Map<String, Object>> selectLabel(String processId, Integer technologyNumber);
+    List<Map<String, Object>> selectLabel(List<String> processId, Integer technologyNumber);
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/FlowCardServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/FlowCardServiceImpl.java
index 3fed7cc..918f832 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/FlowCardServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/FlowCardServiceImpl.java
@@ -4,6 +4,7 @@
 import com.mes.pp.mapper.FlowCardMapper;
 import com.mes.pp.service.FlowCardService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import liquibase.pro.packaged.S;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -31,7 +32,7 @@
     }
 
     @Override
-    public List<Map<String, Object>> selectLabel(String processId, Integer technologyNumber){
+    public List<Map<String, Object>> selectLabel(List<String> processId, Integer technologyNumber){
         return baseMapper.selectLabel(processId, technologyNumber);
     }
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml
index 40292ce..fc511ff 100644
--- a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml
@@ -26,9 +26,7 @@
         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>
@@ -80,7 +78,7 @@
                             from sd.order_glass_detail as ogd
                             where ogd.order_id = left (#{processId}
                                 , 10)
-                              and position(ogd.technology_number in #{technologyNumber})
+                              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
                               ogdc.technology_number = ogd.technology_number
@@ -91,34 +89,38 @@
 
     <select id="selectLabel" resultType="java.util.Map">
         select fc.process_id,
-               o.order_id,
-               o.project,
-               o.customer_id,
-               ogd.child_width                as width,
-               ogd.child_height               as height,
-               od.quantity,
-               od.order_number                as orderNumber,
-               fc.technology_number           as technologyNumber,
-               ogd.glass_child,
-               ogd.process,
-               c.customer_abbreviation        as customer_name,
-               ifnull(od.processing_note, '') as processing_note,
-               bgt.type_name,
-               od.other_columns,
-               od.building_number,
-               od.bend_radius
+        od.remarks as order_id,
+        o.project,
+        o.customer_id,
+        ogd.child_width as width,
+        ogd.child_height as height,
+        od.quantity,
+        od.order_number as orderNumber,
+        fc.technology_number as technologyNumber,
+        ogd.glass_child,
+        ogd.process,
+        c.customer_abbreviation as customer_name,
+        ifnull(od.processing_note, '') as processing_note,
+        bgt.type_name,
+        od.other_columns,
+        od.building_number,
+        od.bend_radius
         from sd.order as o
-                 left join sd.order_detail as od on o.order_id = od.order_id
-                 left join sd.order_glass_detail as ogd
-                           on ogd.order_id = od.order_id and ogd.order_number = od.order_number
-                 left join pp.flow_card as fc on o.order_id = fc.order_id and
-                                                 od.order_number = fc.order_number and
-                                                 fc.technology_number = ogd.technology_number
-                 left join sd.product pt on pt.id = od.product_id
-                 left join sd.customer c on c.id = o.customer_id
-                 left join sd.basic_glass_type bgt on bgt.type_id = pt.type_id
-        where fc.process_id = #{processId}
-          and fc.technology_number = #{technologyNumber}
+        left join sd.order_detail as od on o.order_id = od.order_id
+        left join sd.order_glass_detail as ogd
+        on ogd.order_id = od.order_id and ogd.order_number = od.order_number
+        left join pp.flow_card as fc on o.order_id = fc.order_id and
+        od.order_number = fc.order_number and
+        fc.technology_number = ogd.technology_number
+        left join sd.product pt on pt.id = od.product_id
+        left join sd.customer c on c.id = o.customer_id
+        left join sd.basic_glass_type bgt on bgt.type_id = pt.type_id
+        where fc.process_id in (
+        <foreach collection="processId" item="item" separator=",">
+            #{item}
+        </foreach>
+        )
+        and fc.technology_number = #{technologyNumber}
         group by od.order_number, od.width, od.height
     </select>
 
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/CacheGlassModuleApplication.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/CacheGlassModuleApplication.java
index 51df09b..b3de82f 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/CacheGlassModuleApplication.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/CacheGlassModuleApplication.java
@@ -18,7 +18,7 @@
 @MapperScan("com.mes.*.mapper")
 @EnableDiscoveryClient
 @EnableSwagger2WebMvc
-//@EnableScheduling
+@EnableScheduling
 public class CacheGlassModuleApplication {
 
     public static void main(String[] args) {
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 ab9669a..a2f9d00 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
@@ -125,7 +125,7 @@
 //        out10Glassstate = "1";
 //        currentSlot = "1";
 //        confirmationWrodValue = "0";
-//        glassIdeValue = "P24110201|17|1";
+//        glassIdeValue = "P25010108|44|1";
 
         log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{}锛岃幏鍙栧埌鐨勭‘璁ゅ瓧涓猴細{}锛岃幏鍙栧埌鐨勫嚭鐗囩姸鎬佸垎鍒负锛欰09:{}銆丄10:{},褰撳墠鏍煎瓙鍙蜂负锛歿}",
                 taskRequestTypeValue, glassIdeValue, confirmationWrodValue, out08Glassstate, out10Glassstate, currentSlot);
@@ -144,6 +144,10 @@
             return;
         }
         boolean result = edgStorageCageDetailsService.inToVerify(glassIdeValue);
+        if (!result) {
+            log.info("姝ょ幓鐠僫d宸茬粡杩涜繃");
+            return;
+        }
         if ("1".equals(taskRequestTypeValue) && result) {
             log.info("2銆佽繘鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�,鎵爜閲嶅ID楠岃瘉銆愭湁閲嶅=false,鏃犻噸澶�=true銆戯細{}", result);
             inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
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 cfc0df5..c4bd971 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
@@ -141,6 +141,10 @@
             BigStorageCageOutTask bigStorageCageOutTask = listMap.get(bigStorageCageDetails.getGlassId());
             bigStorageCageDetails.setBigStorageCageOutTask(bigStorageCageOutTask);
         }
+        bigStorageCageDetailsList.sort(Comparator
+                .comparing((BigStorageCageDetails detail) -> detail.getBigStorageCageOutTask().getTrainNumber())
+                .thenComparingInt((BigStorageCageDetails detail) -> detail.getBigStorageCageOutTask().getSerialNumber()));
+
         return bigStorageCageDetailsList;
     }
 
@@ -200,15 +204,15 @@
         BigStorageCageDetails bigStorageCageDetails = baseMapper.selectOne(bigStorageCageDetailsWrapper);
 
         if (temperingGlassInfo != null) {
-            if (status == 0) {
+            if (status == 8) {
                 temperingGlassInfo.setState(Const.GLASS_STATE_DAMAGE);
             } else {
                 temperingGlassInfo.setState(Const.GLASS_STATE_TAKE);
             }
-            temperingGlassInfoMapper.updateById(temperingGlassInfo);
+            temperingGlassInfoMapper.deleteById(temperingGlassInfo);
         }
         Damage damage = new Damage();
-        if (status == 0) {
+        if (status == 8) {
             bigStorageCageDetails.setState(Const.GLASS_STATE_DAMAGE);
             damage.setType(Const.GLASS_STATE_DAMAGE);
         } else {
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java
index dab2e01..3870d11 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java
@@ -1,20 +1,21 @@
-package com.mes.userinfo.controller;
+package com.mes.bigstoragetask.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
 import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
 import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService;
+import com.mes.utils.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
 /**
  * <p>
- *  鍓嶇鎺у埗鍣�
+ * 鍓嶇鎺у埗鍣�
  * </p>
  *
  * @author zhoush
@@ -22,15 +23,20 @@
  */
 @Api(description = "杩涚墖浠诲姟淇℃伅")
 @RestController
-@RequestMapping("/big-storage-cage-feed-task")
+@RequestMapping("/bigStorageCageFeedTask")
 public class BigStorageCageFeedTaskController {
 
     @Autowired
     private BigStorageCageFeedTaskService bigStorageCageFeedTaskService;
-//    @ApiOperation("杩涚墖浠诲姟淇℃伅")
-//    @GetMapping("/querybigStorageCageFeedTask")
-//    public List<BigStorageCageFeedTask> querybigStorageCageFeedTask(int taskState) {
-//        return bigStorageCageFeedTaskService.querybigStorageCageFeedTask(taskState);
-//    }
+
+    @ApiOperation("鐞嗙墖绗艰鎯呭垹闄�")
+    @PostMapping("/updateBigStorageCageFeedTask")
+    public Result deleteBigStorageCageDetails(@RequestBody BigStorageCageFeedTask bigStorageCageFeedTask) {
+        bigStorageCageFeedTaskService.updateById(bigStorageCageFeedTask);
+        return Result.build(200, "淇敼鎴愬姛", 1);
+    }
+
+
+
 }
 
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java
index cd4e8db..2c76b1f 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java
@@ -1,14 +1,14 @@
-package com.mes.userinfo.controller;
+package com.mes.bigstoragetask.controller;
 
 
+import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
 import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
 import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
+import com.mes.utils.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -22,16 +22,18 @@
  */
 @Api(description = "鍑虹墖浠诲姟淇℃伅")
 @RestController
-@RequestMapping("/big-storage-cage-out-task")
+@RequestMapping("/bigStorageCageOutTask")
 public class BigStorageCageOutTaskController {
 
     @Autowired
     private BigStorageCageOutTaskService bigStorageCageOutTaskService;
-//    @ApiOperation("鍑虹墖浠诲姟淇℃伅")
-//    @GetMapping("/querybigStorageCageOutTask")
-//    public List<BigStorageCageOutTask> querybigStorageCageOutTask(int taskState) {
-//        return bigStorageCageOutTaskService.querybigStorageCageOutTask(taskState);
-//    }
+
+    @ApiOperation("鍑虹墖浠诲姟淇敼")
+    @PostMapping("/updatebigStorageCageOutTask")
+    public Result deleteBigStorageCageDetails(@RequestBody BigStorageCageOutTask bigStorageCageOutTask) {
+        bigStorageCageOutTaskService.updateById(bigStorageCageOutTask);
+        return Result.build(200, "淇敼鎴愬姛", 1);
+    }
 
 }
 
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
index ebc1e53..ab99e02 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -121,7 +121,7 @@
         String d04ToMES = plcParameterObject.getPlcParameter("D04ToMES").getValue();
 
 
-//        d01Id="P24111102|1|13";
+//        d01Id="P25010108|37|8";
 //        d04ToMES="1";
 //        d01ToMES="1";
 
@@ -1311,11 +1311,7 @@
         }
         Assert.isFalse(CollectionUtils.isEmpty(bigStorageCageOutTaskList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
         log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", bigStorageCageOutTaskList.size());
-        for (BigStorageCageOutTask bigStorageCageOutTask : bigStorageCageOutTaskList
-        ) {
-            bigStorageCageOutTaskService.save(bigStorageCageOutTask);
-        }
-//        bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList);
+        bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList);
         List<String> glassIds = bigStorageCageOutTaskList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
         log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄凡鍑虹墖", glassIds);
         bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassTaskController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassTaskController.java
index cf952c6..d257af6 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassTaskController.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassTaskController.java
@@ -1,7 +1,11 @@
 package com.mes.downglassinfo.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.mes.downglassinfo.entity.DownGlassTask;
 import com.mes.downglassinfo.service.DownGlassInfoService;
+import com.mes.downglassinfo.service.DownGlassTaskService;
 import com.mes.downstorage.entity.DownStorageCageDetails;
 import com.mes.utils.Result;
 import io.swagger.annotations.ApiOperation;
@@ -10,6 +14,9 @@
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * <p>
@@ -24,8 +31,11 @@
 @RequestMapping("/downGlassTask")
 public class DownGlassTaskController {
 
-    @Autowired
+    @Resource
     DownGlassInfoService downGlassInfoService;
+
+    @Resource
+    DownGlassTaskService downGlassTaskService;
 
     @PostMapping("/generateOutGlassTask")
     @ApiOperation(value = "鐢熸垚鍑虹墖浠诲姟", notes = "鐢熸垚鍑虹墖浠诲姟")
@@ -33,5 +43,17 @@
         return Result.success(downGlassInfoService.generateOutGlassTask(downStorageCageDetails.getGlassId()));
     }
 
+    @PostMapping("/updateOutGlassTask")
+    @ApiOperation(value = "娓呯┖鐜荤拑", notes = "娓呯┖鐜荤拑")
+    public Result<Boolean> updateOutGlassTask() {
+        downGlassTaskService.update(
+                new LambdaUpdateWrapper<DownGlassTask>()
+                        .set(DownGlassTask::getTaskStatus, 3)
+                        .eq(DownGlassTask::getEndCell, 7)
+                        .eq(DownGlassTask::getTaskType, 3)
+                        .lt(DownGlassTask::getTaskStatus, 3)
+        );
+        return Result.build(200, "娓呯┖鎴愬姛", true);
+    }
 }
 
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java
index c0cacb7..d143b3b 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java
@@ -50,6 +50,6 @@
      * @param processId,technologyNumber
      * @return
      */
-    List<Map<String, Object>> downGlassLabelPrint(@Param("processId") String processId, @Param("technologyNumber") Integer technologyNumber);
+    List<Map<String, Object>> downGlassLabelPrint(@Param("processId") String processId, @Param("technologyNumber") Integer technologyNumber, @Param(value = "glassIds") List<String> glassIds);
 
 }
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 f60ea51..bacf1e0 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
@@ -4,13 +4,16 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.common.config.Const;
 import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.entity.DownGlassTask;
 import com.mes.downglassinfo.entity.request.DownGlassInfoRequest;
 import com.mes.downglassinfo.mapper.DownGlassInfoMapper;
 import com.mes.downglassinfo.service.DownGlassInfoService;
+import com.mes.downglassinfo.service.DownGlassTaskService;
 import com.mes.downstorage.entity.DownStorageCageDetails;
 import com.mes.downstorage.service.DownStorageCageDetailsService;
 import com.mes.downworkstation.entity.DownWorkstation;
@@ -25,11 +28,13 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Service
@@ -50,6 +55,9 @@
 
     @Autowired
     FlowCardService flowCardService;
+
+    @Resource
+    DownGlassTaskService downGlassTaskService;
 
     /**
      * 鏍规嵁娴佺▼鍗″彿鏌ヨ鏈�澶у簭鍙�
@@ -222,90 +230,110 @@
 
     @Override
     public List<Map<String, Object>> downGlassLabelPrint(DownGlassInfo downGlassInfo) {
-
-        List<Map<String, Object>> resultList = baseMapper.downGlassLabelPrint(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer());
-        log.info("MES钀芥灦鏁版嵁:{}", resultList);
-        //鑾峰彇ERP鏍囩鎵�闇�鐨勪俊鎭�
-        List<Map<String, Object>> labelInfo;
-        if (downGlassInfo.getLayer() != 0) {
-            labelInfo = flowCardService.selectLabel(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer());
+        List<Map<String, Object>> resultList = new ArrayList<>();
+        if (downGlassInfo.getFlowCardId() == null) {
+            List<DownGlassTask> downGlassTasks = downGlassTaskService.list(
+                    new LambdaQueryWrapper<DownGlassTask>()
+                            .eq(DownGlassTask::getEndCell, 7)
+                            .eq(DownGlassTask::getTaskType, 3)
+                            .lt(DownGlassTask::getTaskStatus, 3)
+            );
+            List<String> glassIds = downGlassTasks.stream().map(DownGlassTask::getGlassId).collect(Collectors.toList());
+            resultList = baseMapper.downGlassLabelPrint(null, null, glassIds);
         } else {
-            labelInfo = flowCardService.selectLabel(downGlassInfo.getFlowCardId(), 1);
+            resultList = baseMapper.downGlassLabelPrint(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer(), null);
         }
-        log.info("鏍囩鏁版嵁:{}", labelInfo);
+        if (CollectionUtils.isNotEmpty(resultList)) {
+            List<String> flowCardIds = resultList.stream()
+                    .map(map -> (String) map.get("flow_card_id"))
+                    .distinct()
+                    .collect(Collectors.toList());
+            log.info("MES钀芥灦鏁版嵁:{}", resultList);
+            //鑾峰彇ERP鏍囩鎵�闇�鐨勪俊鎭�
+            List<Map<String, Object>> labelInfo;
+            if (downGlassInfo.getFlowCardId() != null) {
+                flowCardIds.add(downGlassInfo.getFlowCardId());
+                labelInfo = flowCardService.selectLabel(flowCardIds, 1);
+            } else {
+                labelInfo = flowCardService.selectLabel(flowCardIds, 1);
+            }
+            log.info("鏍囩鏁版嵁:{}", labelInfo);
 
-        for (Map<String, Object> row : resultList) {
-            int glass_type = (int) row.get("glass_type");
-            int layer = (int) row.get("layer");
-            for (Map<String, Object> row1 : labelInfo) {
-                int orderNumber = (int) row1.get("orderNumber");
-                int technologyNumber = (int) row1.get("technologyNumber");
-                if (downGlassInfo.getLayer() != 0) {
-                    if (orderNumber == glass_type && technologyNumber == layer) {
+            for (Map<String, Object> row : resultList) {
+                int glass_type = (int) row.get("glass_type");
+                int layer = (int) row.get("layer");
+                String flowCardId = (String) row.get("flow_card_id");
+                for (Map<String, Object> row1 : labelInfo) {
+                    int orderNumber = (int) row1.get("orderNumber");
+                    int technologyNumber = (int) row1.get("technologyNumber");
+                    String processId = (String) row1.get("process_id");
+//                    if (downGlassInfo.getLayer() != 0) {
+                        if (orderNumber == glass_type  && processId.equals(flowCardId)) {
 
-                        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);
-                    }
-                } 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);
-                    }
+                            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/Downpush.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
index 6871663..efd6f94 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
@@ -63,6 +63,18 @@
         JSONObject jsonObject = new JSONObject();
 
         List<DownWorkstation> data = downWorkstationService.list();
+        List<DownGlassTask> downGlassTasks = downGlassTaskService.list(
+                new LambdaQueryWrapper<DownGlassTask>()
+                        .eq(DownGlassTask::getEndCell, 7)
+                        .eq(DownGlassTask::getTaskType, 3)
+                        .lt(DownGlassTask::getTaskStatus, 3)
+        );
+        DownWorkstation downWorkstation = new DownWorkstation();
+        downWorkstation.setWorkstationId(7);
+        downWorkstation.setEnableState(1);
+        downWorkstation.setRacksNumber(downGlassTasks.size());
+        downWorkstation.setTotalQuantity(downGlassTasks.size());
+        data.add(downWorkstation);
         jsonObject.append("params", data);
         log.info(jsonObject.toString());
         ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("unloadglass");
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
index 41072b0..7f054a8 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
@@ -178,8 +178,21 @@
                b.tempering_feed_sequence
         from down_glass_info a
                  inner join glass_info b on a.glass_id = b.glass_id
-        where a.flow_card_id = #{processId}
-          and a.layer = #{technologyNumber}
+        where
+            1=1
+        <if test="processId != null">
+            and a.flow_card_id = #{processId}
+        </if>
+        <if test="technologyNumber != null">
+            and a.layer = #{technologyNumber}
+        </if>
+        <if test="glassIds != null and !glassIds.isEmpty()">
+            and a.glass_id in
+            <foreach collection="glassIds" item="item" open="(" close=")" separator=",">
+                #{item}  <!-- 杩欓噷 MyBatis 浼氳嚜鍔ㄥ鐞嗗瓧绗︿覆 -->
+            </foreach>
+
+        </if>
         group by a.flow_card_id, a.layer, a.width, a.height, a.filmsid, a.thickness, a.glass_type, a.id
         order by a.id
     </select>

--
Gitblit v1.8.0