From 450aaf2a2fe71441484fa31dbe22ef33864c193e Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期三, 14 八月 2024 16:38:06 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java           |    5 
 UI-Project/src/views/Returns/returns.vue                                                                                                 |    2 
 UI-Project/src/views/Identify/identify.vue                                                                                               |   12 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java                                  |   46 +
 UI-Project/src/views/Caching/cachingbefore.vue                                                                                           |    2 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java            |    6 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java                  |    3 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java          |   25 
 UI-Project/src/views/UnLoadGlass/loadmachinerack.vue                                                                                     |  371 ++++++++------
 hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java                              |    2 
 UI-Project/src/views/Caching/cachingun.vue                                                                                               |  270 +++++-----
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java     |   14 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java                 |    6 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java                               |    6 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java |  161 ++---
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java         |    5 
 UI-Project/src/views/UnLoadGlass/PrintFlow.vue                                                                                           |   76 +-
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java              |    2 
 UI-Project/src/views/StockBasicData/stockBasicData.vue                                                                                   |    8 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java                                           |   19 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java        |   15 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml                                              |   12 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java                                                |   10 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java         |   27 +
 UI-Project/src/views/Slicecage/slicecage.vue                                                                                             |   12 
 /dev/null                                                                                                                                |  144 ------
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java                  |   18 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java                         |    4 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java                           |    7 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java        |   16 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java     |    6 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java                     |   32 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java           |   41 -
 33 files changed, 675 insertions(+), 710 deletions(-)

diff --git a/UI-Project/src/views/Caching/cachingbefore.vue b/UI-Project/src/views/Caching/cachingbefore.vue
index e4c67f3..36a24cc 100644
--- a/UI-Project/src/views/Caching/cachingbefore.vue
+++ b/UI-Project/src/views/Caching/cachingbefore.vue
@@ -110,7 +110,7 @@
   <div style="height: 500px;">
     <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
       <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
-        <el-table height="240" ref="table" 
+        <el-table height="340" ref="table" 
         @selection-change="handleSelectionChange"
         :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="slot" align="center" :label="$t('sorter.gridnumber')" min-width="80" />
diff --git a/UI-Project/src/views/Caching/cachingun.vue b/UI-Project/src/views/Caching/cachingun.vue
index d7676bf..8e0a488 100644
--- a/UI-Project/src/views/Caching/cachingun.vue
+++ b/UI-Project/src/views/Caching/cachingun.vue
@@ -2,159 +2,152 @@
   <div style="height: 500px;">
     <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
       <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
-        <el-table height="240" ref="table" 
-        @selection-change="handleSelectionChange"
-        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        <el-table height="340" ref="table" @selection-change="handleSelectionChange" :data="tableData"
+          :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
           <el-table-column prop="slot" align="center" :label="$t('sorter.gridnumber')" min-width="80" />
           <el-table-column prop="glass_id" align="center" :label="$t('sorter.glassnumber')" min-width="80" />
           <el-table-column prop="width" align="center" :label="$t('sorter.width')" min-width="120" />
           <el-table-column prop="height" align="center" :label="$t('sorter.height')" min-width="120" />
-          <el-table-column
-            align="center"
-            :label="$t('sorter.startstatus')"
-            min-width="80"
-            prop="enable_state"
-          >
-          <template #default="scope">  
-          <el-tag  
-            :type="scope.row.enable_state === 1 ? 'success' : 'danger'"  
-            @click="toggleEnableState(scope.row)"  
-          >  
-            {{ scope.row.enable_state === 1 ?  $t('sorter.start') : $t('sorter.disable') }}
-          </el-tag>  
-        </template> 
-          <!-- <template #default="scope">
+          <el-table-column align="center" :label="$t('sorter.startstatus')" min-width="80" prop="enable_state">
+            <template #default="scope">
+              <el-tag :type="scope.row.enable_state === 1 ? 'success' : 'danger'" @click="toggleEnableState(scope.row)">
+                {{ scope.row.enable_state === 1 ? $t('sorter.start') : $t('sorter.disable') }}
+              </el-tag>
+            </template>
+            <!-- <template #default="scope">
             <el-tag type="success" >{{ scope.row.enable_state==1?"鍚敤":"鏈惎鐢�"  }}</el-tag>
           </template> -->
           </el-table-column>
           <el-table-column fixed="right" :label="$t('sorter.operate')" align="center" width="200">
             <template #default="scope">
-              <el-button size="mini" type="text" plain  @click="open(scope.row)">{{ $t('sorter.deficiencieste') }}</el-button>
-              <el-button size="mini" type="text" plain  @click="opena(scope.row)">{{ $t('sorter.updown') }}</el-button>
+              <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('sorter.deficiencieste')
+                }}</el-button>
+              <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('sorter.updown') }}</el-button>
             </template>
-        </el-table-column>
+          </el-table-column>
         </el-table>
       </div>
     </el-card>
-  <div class="awatch">
-    <img src="../../assets/woshihuancun.png" alt="" style="width: 70%;height: 90%;margin-left: 200px;margin-top: 20px;position: relative;"> 
-    <div style="position: relative; width: 500px;height: 95px;margin-top: -165px;margin-left: 450px;">
-    <div  
-      v-for="(rect, index) in adjustedRects"  
-      :key="rect"  
-      :style="{ position: 'absolute', 
-       top: `${rect.id}px`, left: `10px`, width: `${rect.width}px`, height: `5px`,
+    <div class="awatch">
+      <img src="../../assets/woshihuancun.png" alt=""
+        style="width: 70%;height: 90%;margin-left: 200px;margin-top: 20px;position: relative;">
+      <div style="position: relative; width: 500px;height: 95px;margin-top: -165px;margin-left: 450px;">
+        <div v-for="(rect, index) in adjustedRects" :key="rect" :style="{
+      position: 'absolute',
+      top: `${rect.id}px`, left: `10px`, width: `${rect.width}px`, height: `5px`,
       backgroundColor: '#409EFF'
-       }"  
-    >
+    }">
+        </div>
+      </div>
     </div>
   </div>
-</div>
-</div>
 </template>
 <script setup>
-import {Search,Lock,Avatar} from "@element-plus/icons-vue";
-import {reactive} from "vue";
-import {useRouter} from "vue-router"
+import { Search, Lock, Avatar } from "@element-plus/icons-vue";
+import { reactive } from "vue";
+import { useRouter } from "vue-router"
 const router = useRouter()
 const adda = ref(false)
-import { WebSocketHost ,host} from '@/utils/constants'
+import { WebSocketHost, host } from '@/utils/constants'
 import request from "@/utils/request"
-import { ref, onMounted , onBeforeUnmount,onUnmounted} from "vue";
+import { ref, onMounted, onBeforeUnmount, onUnmounted } from "vue";
 import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
 // import { ref } from 'vue'
 import { ElMessage, ElMessageBox } from 'element-plus'
 //  import LanguageMixin from './lang/LanguageMixin'
- 
+
 import { useI18n } from 'vue-i18n'
-  const { t } = useI18n()
+const { t } = useI18n()
 // import i18n from '@/i18n';
 const tableData = reactive([]);
 const slot = ref('')
 const adjustedRects = ref([]);
-  
-onMounted(async () => {  
-  try {  
-    const response = await request.get('/unLoadGlass/downStorage/selectStorageCage'); // 鏇挎崲涓轰綘鐨凙PI绔偣  
-    if (response.code === 200) {  
-      const rawRects = response.data; // 璁剧疆鐭╁舰鏁版嵁  
-          tableData.value = response.data
-          console.log(response.data);
-          adjustedRects.value = rawRects.map(rect => ({  
-            ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
-            width: rect.width * 0.5 ,
-            id: rect.id * 10,
-          })); 
-          console.log(adjustedRects.value);
-    } else {  
-      ElMessage.warning(res.msg)
-    }  
-  } catch (error) {  
-    // console.error('Error fetching rects :', error);  
-  }  
-}); 
-const open = async(row) => {
+
+onMounted(async () => {
   try {
-    const confirmResult = await ElMessageBox.confirm(  
-      t('sorter.information'), 
-      t('sorter.prompt'),  
-      {  
-        confirmButtonText: t('sorter.yes'), 
+    const response = await request.get('/unLoadGlass/downStorage/selectStorageCage'); // 鏇挎崲涓轰綘鐨凙PI绔偣  
+    if (response.code === 200) {
+      const rawRects = response.data; // 璁剧疆鐭╁舰鏁版嵁  
+      tableData.value = response.data
+      console.log(response.data);
+      adjustedRects.value = rawRects.map(rect => ({
+        ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
+        width: rect.width * 0.5,
+        id: rect.id * 10,
+      }));
+      console.log(adjustedRects.value);
+    } else {
+      ElMessage.warning(res.msg)
+    }
+  } catch (error) {
+    // console.error('Error fetching rects :', error);  
+  }
+});
+const open = async (row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('sorter.information'),
+      t('sorter.prompt'),
+      {
+        confirmButtonText: t('sorter.yes'),
         cancelButtonText: t('sorter.cancel'),
-        type: 'warning',  
-      } 
-    );  
-    if (confirmResult === 'confirm') {  
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
       // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛  
-      var url="/unLoadGlass/downStorage/deleteDownStorageCage?downStorageCageId="+row.id;
+      var url = "/unLoadGlass/downStorage/deleteDownStorageCage";
       console.log(url);
       const response = await request.post(url, {
-        esdId: row.esdId
+        glassId: row.glass_id,
+        state: 9,
+        line: 1001,
+        workingProcedure: '纾ㄨ竟鍓嶇悊鐗囩',
     })
     if (response.code === 200) {
       ElMessage.success(response.message);
-      } else {  
-        // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛  
+    } else {
+      // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛  
       ElMessage.error(response.message);
-        // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message); 
-      }  
-    }  
-  } 
-  catch (error) {  
-    // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑  
-    console.error('鍙戠敓閿欒:', error);  
+      // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message); 
+    }
   }  
-};  
+  } 
+  catch (error) {
+  // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑  
+  console.error('鍙戠敓閿欒:', error);
+}  
+};
 // 浜哄伐涓嬬墖
-const opena = async(row) => {
+const opena = async (row) => {
   try {
-    const confirmResult = await ElMessageBox.confirm(  
-      t('sorter.infor'), 
-      t('sorter.prompt'),  
-      {  
-        confirmButtonText: t('sorter.yes'), 
+    const confirmResult = await ElMessageBox.confirm(
+      t('sorter.infor'),
+      t('sorter.prompt'),
+      {
+        confirmButtonText: t('sorter.yes'),
         cancelButtonText: t('sorter.cancel'),
-        type: 'warning',  
-      } 
-    );  
+        type: 'warning',
+      }
+    );
     if (confirmResult === 'confirm') {
       const response = await request.post("/unLoadGlass/downGlassTask/generateOutGlassTask", {
         glassId: row.glass_id
       })
-    if (response.code === 200) {
-      ElMessage.success(response.message);
-      } else {  
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+      } else {
         // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛  
-      ElMessage.error(response.message);
+        ElMessage.error(response.message);
         // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message); 
-      }  
-    }  
-  } 
-  catch (error) {  
+      }
+    }
+  }
+  catch (error) {
     // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑  
-    console.error('鍙戠敓閿欒:', error);  
-  }  
-};  
+    console.error('鍙戠敓閿欒:', error);
+  }
+};
 // const open = async(row) => {
 // const { t } = useI18n();
 //   try {
@@ -184,23 +177,23 @@
 //       }  
 //     }  
 //   } 
-  
-  
+
+
 //   catch (error) {  
 //     // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑  
 //     console.error('鍙戠敓閿欒:', error);  
 //   }  
 // };   
-const toggleEnableState = async (row) => {  
-  const newState = row.enable_state === 1 ? 0 : 1;  
+const toggleEnableState = async (row) => {
+  const newState = row.enable_state === 1 ? 0 : 1;
   // 鍙戦�佽姹傚埌鍚庣鏇存柊鐘舵�侊紙杩欓噷鐪佺暐浜嗗疄闄呯殑璇锋眰閫昏緫锛�  
-  const response = await request.post('/unLoadGlass/downStorage/updateDownStorageCage', { id: row.id, enableState: newState });  
+  const response = await request.post('/unLoadGlass/downStorage/updateDownStorageCage', { id: row.id, enableState: newState });
   if (response.code === 200) {
-      ElMessage.success(response.message);
-      } else {  
-      ElMessage.error(response.message);
-      }  
-  row.enable_state = newState;  
+    ElMessage.success(response.message);
+  } else {
+    ElMessage.error(response.message);
+  }
+  row.enable_state = newState;
 };
 
 
@@ -213,44 +206,57 @@
   tableData.splice(0, tableData.length, ...data.params2[0]);
   // tableData.value = data.params[0]
   // adjustedRects.value = data.EdgStorageCageinfos[0]
-  adjustedRects.value = data.params2[0].map(rect => ({  
-            ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
-            width: rect.width * 0.5 ,
-            id: rect.id * 10,
-          })); 
+  adjustedRects.value = data.params2[0].map(rect => ({
+    ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
+    width: rect.width * 0.5,
+    id: rect.id * 10,
+  }));
 
 };
 onMounted(() => {
   socket = initializeWebSocket(socketUrl, handleMessage);
 });
-  onUnmounted(() => {
-    if (socket) {
+onUnmounted(() => {
+  if (socket) {
     closeWebSocket(socket);
-    }
-    });
+  }
+});
 onBeforeUnmount(() => {
   console.log("鍏抽棴浜�")
   closeWebSocket();
 });
 </script>
 <style scoped>
- 
-#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
-#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
-#dialog-footer{
+#dt {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 100px;
+}
+
+#dta {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 80%;
+}
+
+#dialog-footer {
   text-align: center;
   margin-top: -15px;
 }
-#message{
+
+#message {
   text-align: center;
   align-items: center;
   color: black;
-   width: 200px;
-   height: 100px;
-   background-color: #337ecc;
-   margin-left: 28%;
+  width: 200px;
+  height: 100px;
+  background-color: #337ecc;
+  margin-left: 28%;
 }
-.awatch{
+
+.awatch {
   height: 460px;
   width: 1500px;
   max-width: 100%;
diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue
index 58b7421..83eae3b 100644
--- a/UI-Project/src/views/Identify/identify.vue
+++ b/UI-Project/src/views/Identify/identify.vue
@@ -84,10 +84,10 @@
     //   console.log(url);
     //   const response = await request.post(url)
   const response = await request.post('/cacheGlass/taskCache/identControls', {
-    identId: currentGlassId.value,
-    controlsId: 8,
+    glassId: currentGlassId.value,
+    state: 8,
     line: 1001,
-    machine: '璇嗗埆',
+    workingProcedure: '璇嗗埆',
     })
     if (response.code == 200) {
       ElMessage.success(response.message);
@@ -111,10 +111,10 @@
     //   console.log(url);
     //   const response = await request.post(url)
   const response = await request.post('/cacheGlass/taskCache/identControls', {
-    identId: currentGlassId.value,
-    controlsId: 9,
+    glassId: currentGlassId.value,
+    state: 9,
     line: 1001,
-    machine: '璇嗗埆',
+    workingProcedure: '璇嗗埆',
     })
     if (response.code == 200) {
       // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index bcbbd2e..76b56c6 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -718,7 +718,7 @@
     <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading">
       <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
     <el-table
-    height="150"
+    height="350"
      ref="table" 
      :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
       :data="tableData"
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 9378fbf..ee4b3d7 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -600,8 +600,9 @@
   // 鏇存柊 tableData 鐨勬暟鎹�
   if(data.bigStorageCageDetailsOutTask!=null){
     tableDatac.value = data.bigStorageCageDetailsOutTask[0]
+    console.log(data.bigStorageCageDetailsOutTask[0])
     adjusta.value = data.bigStorageCageDetailsOutTask[0].filter(rect => rect.slot !== null && rect.slot !== undefined);
-    console.log(data.bigStorageCageDetailsOutTask[0]);
+    // console.log(data.bigStorageCageDetailsOutTask[0]);
     
   } else {
     tableDatac.value = '',
@@ -628,6 +629,7 @@
    }
 if(data.temperingGlassInfoList!=null){
   tableDatab.value = data.temperingGlassInfoList[0]
+  console.log(tableDatab.value)
 }else{
     tableDatab.value = ''
       }
@@ -1352,8 +1354,8 @@
     <el-table  ref="table" style="margin-top: 20px;height: 500px;"
         :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="id" fixed align="center" :label="$t('searchOrder.sheetID')" min-width="150"/>
-          <el-table-column prop="flowcardId" fixed align="center" :label="$t('searchOrder.processcards')" min-width="120" />
-          <el-table-column prop="glassType" align="center" :label="$t('searchOrder.processcardtype')" min-width="150" />
+          <el-table-column prop="flowCardId" fixed align="center" :label="$t('searchOrder.processcards')" min-width="120" />
+          <!-- <el-table-column prop="glassType" align="center" :label="$t('searchOrder.processcardtype')" min-width="150" /> -->
           <el-table-column prop="width" align="center" :label="$t('searchOrder.width')"  min-width="80" />
           <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="80" />
           <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="80" />
@@ -1387,13 +1389,13 @@
         </el-tag>  
       </template> 
           </el-table-column>
-          <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" width="150">
+          <!-- <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" width="150">
             <template #default="scope">
               <el-button size="mini" type="text" plain @click="brokea(scope.row)">{{ $t('searchOrder.breakage') }}</el-button>
               <el-button size="mini" type="text" plain @click="brokeb(scope.row)">{{ $t('searchOrder.takeout') }}</el-button>
               <el-button size="mini" type="text" plain @click="deletea(scope.row)">{{ $t('searchOrder.delete') }}</el-button>
             </template>
-        </el-table-column>
+        </el-table-column> -->
         </el-table>
 </el-dialog>
 <el-dialog v-model="dialogFormVisiblec" top="5vh" width="85%" :title="$t('searchOrder.temperingqueries')">
diff --git a/UI-Project/src/views/StockBasicData/stockBasicData.vue b/UI-Project/src/views/StockBasicData/stockBasicData.vue
index 70a5bcc..2ba2936 100644
--- a/UI-Project/src/views/StockBasicData/stockBasicData.vue
+++ b/UI-Project/src/views/StockBasicData/stockBasicData.vue
@@ -157,18 +157,18 @@
 <template>
   <div>
     <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
-      <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('璇烽�夋嫨绾胯矾')" clearable>
+      <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('璇烽�夋嫨绾胯矾')" clearable style="margin-left: 20px;">
             <el-option label="纾ㄨ竟涓�绾�" value="2001"></el-option>
             <el-option label="纾ㄨ竟浜岀嚎" value="2002"></el-option>
           </el-select>
 
-          <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('璇烽�夋嫨鐘舵��')" clearable >
+          <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('璇烽�夋嫨鐘舵��')" clearable style="margin-left: 20px;" >
             <el-option label="鏈(杈�" value="0"></el-option>
             <el-option label="纾ㄨ竟涓�" value="1"></el-option>
             <el-option label="宸茬(杈�" value="2"></el-option>
           </el-select>
-          <span class="demonstration">鏃堕棿娈�</span>
-            <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"
+          <span class="demonstration" style="margin-left: 20px;">鏃堕棿娈�</span>
+            <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"  style="margin-left: 20px;"
               end-placeholder="缁撴潫鏃ユ湡">
             </el-date-picker>
           <el-button type="primary" style="margin-left: 10px;" @click="setEdgGlassInfoRequest()">{{
diff --git a/UI-Project/src/views/UnLoadGlass/PrintFlow.vue b/UI-Project/src/views/UnLoadGlass/PrintFlow.vue
index 26a1a9f..19a600a 100644
--- a/UI-Project/src/views/UnLoadGlass/PrintFlow.vue
+++ b/UI-Project/src/views/UnLoadGlass/PrintFlow.vue
@@ -69,54 +69,56 @@
 }
 
 
-const printFlowCard = () => {
-  // 闇�瑕佹墦鍗扮殑灞�閮ㄥ尯鍩熻祴浜�"print-wrap"鐨刬d
-  let el = document.getElementById("printFlowCard");
-  let doc = document;
-  let body = doc.body || doc.getElementsByTagName("body")[0];
-  let printId = "print-" + Date.now();
+// const printFlowCard = () => {
+//   // 闇�瑕佹墦鍗扮殑灞�閮ㄥ尯鍩熻祴浜�"print-wrap"鐨刬d
+//   let el = document.getElementById("printFlowCard");
+//   let doc = document;
+//   let body = doc.body || doc.getElementsByTagName("body")[0];
+//   let printId = "print-" + Date.now();
 
-  // 鍒涘缓鏃犲壇浣滅敤鐨勬墦鍗板鍣�(鍥犱笉纭畾椤甸潰鐨勬墦鍗板厓绱犳湁鏃犲叾瀹冩牱寮�)
-  let content = doc.createElement("div");
-  content.id = printId;
+//   // 鍒涘缓鏃犲壇浣滅敤鐨勬墦鍗板鍣�(鍥犱笉纭畾椤甸潰鐨勬墦鍗板厓绱犳湁鏃犲叾瀹冩牱寮�)
+//   let content = doc.createElement("div");
+//   content.id = printId;
 
-  // 鏍峰紡鎺у埗涓庢墦鍗版棤鍏崇殑鍏冪礌闅愯棌
-  let style = doc.createElement("style");
-  style.innerHTML =
-      "body>#" +
-      printId +
-      "{display:none}@media print{" +
-      "@page {" +
-      "    size: auto; " +
-      "    margin: 5mm 5mm 5mm 5mm; " +
-      "  }body>:not(#" +
-      printId +
-      "){display:none !important}body>#" +
-      printId +
-      "{display:block;padding-top:1px}}";
-  //
-  content.innerHTML = el.outerHTML;
-  // // console.log("el.outerHTML", el.outerHTML);
-  body.appendChild(style);
+//   // 鏍峰紡鎺у埗涓庢墦鍗版棤鍏崇殑鍏冪礌闅愯棌
+//   let style = doc.createElement("style");
+//   style.innerHTML =
+//       "body>#" +
+//       printId +
+//       "{display:none}@media print{" +
+//       "@page {" +
+//       "    size: auto; " +
+//       "    margin: 5mm 5mm 5mm 5mm; " +
+//       "  }body>:not(#" +
+//       printId +
+//       "){display:none !important}body>#" +
+//       printId +
+//       "{display:block;padding-top:1px}}";
+//   //
+//   content.innerHTML = el.outerHTML;
+//   // // console.log("el.outerHTML", el.outerHTML);
+//   body.appendChild(style);
 
-  // 涓巗tyle鍏冪礌璁剧疆鐨勬牱寮忕浉閰嶅悎
-  // 鎶婃墦鍗板唴瀹圭殑鍏冪礌娣诲姞鍒癰ody(浣滀负body鐨勫瓙鍏冪礌锛屽彲鐢╞ody鐨勫瓙閫夋嫨鍣� '>' 鎺у埗鎵撳嵃鏍峰紡)
-  body.appendChild(content);
-  setTimeout(() => {
-    window.print();
-    body.removeChild(content);
-    body.removeChild(style);
-  }, 20);
-}
+//   // 涓巗tyle鍏冪礌璁剧疆鐨勬牱寮忕浉閰嶅悎
+//   // 鎶婃墦鍗板唴瀹圭殑鍏冪礌娣诲姞鍒癰ody(浣滀负body鐨勫瓙鍏冪礌锛屽彲鐢╞ody鐨勫瓙閫夋嫨鍣� '>' 鎺у埗鎵撳嵃鏍峰紡)
+//   body.appendChild(content);
+//   setTimeout(() => {
+//     window.print();
+//     body.removeChild(content);
+//     body.removeChild(style);
+//   }, 20);
+// }
 
 onMounted(async () => {
-  
+  console.log(props.printFlowCardId,props.printLayer)
   try {
+    
     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);
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index c73c875..d3e6467 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -1,19 +1,20 @@
 <script setup>
-import { Search } from "@element-plus/icons-vue";
-import { reactive, onMounted, onBeforeUnmount, onUnmounted } from "vue";
-import { useRouter } from "vue-router"
-const router = useRouter()
-import { useI18n } from 'vue-i18n'
-const { t } = useI18n()
-let language = ref(localStorage.getItem('lang') || 'zh')
-import { ref } from 'vue'
-import { ElMessage, ElMessageBox } from 'element-plus'
-import Landingindication from "./Landingindication.vue";
-import Landingindicationtwo from "./Landingindicationtwo.vue";
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {useRouter} from "vue-router"
+import {useI18n} from 'vue-i18n'
+import {ElMessage} from 'element-plus'
 import request from "@/utils/request";
-import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
-import { WebSocketHost, host } from '@/utils/constants'
-// import PrintFlow from './PrintFlow.vue'
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {host, WebSocketHost} from '@/utils/constants'
+import PrintFlow from "@/views/UnLoadGlass/PrintFlow.vue";
+
+const router = useRouter()
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const printLoading = ref(true)
+const fullFlowCard = ref('')
+const autoPrint = ref(false)
+
 const dialogFormVisiblea = ref(false)
 const dialogFormVisiblea2 = ref(false)
 const dialogFormVisibleaDownGlass = ref(false)
@@ -23,20 +24,46 @@
 const dialogFormVisible = ref(false);
 // 琛ㄥ崟鏁版嵁
 const workstationId = ref('');
-const selectedProjectNoa = ref(null); // 褰撳墠閫変腑鐨勮鑹� 
+const workFlowCard = ref('');
+const selectedProjectNoa = ref(null); // 褰撳墠閫変腑鐨勮鑹�
 const flowCardId = ref('');
 const flowCardOptions = ref('[]');
 const tableData = reactive([]);
 const downGlass = ref([]);
-const timeRange = ref(["2022-01-01", "2025-01-01"])
+
 const selectValuesa = reactive({});
 const selectOptionsa = ref([]);
 const dialogTableVisible = ref(false)
-// const printFlowCardId = ref('')
-// const printLayer=ref('')
- 
+const printFlowCardId = ref('')
+const printLayer = ref('')
+const now = new Date();
+const timeRange = ref([new Date(now.setHours(0, 0, 0, 0)), new Date(now.setHours(23, 59, 59, 999))])
+
+const handleChange = async () => {
+  console.log("瑙﹀彂寮�鍏�")
+  try {
+    const body = {
+      flag: autoPrint.value, // 浣跨敤 ganghua.value 鑾峰彇褰撳墠寮�鍏崇殑鐘舵��
+    };
+
+    var url = "/unLoadGlass/downWorkStation/autoPrint?flag=" + autoPrint.value;
+    const response = await request.post(url)
+    if (response.code == 200) {
+      // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+      ElMessage.success(response.message);
+      autoPrint.value = response.data
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+}
+
+
 const handleInputChangea = (value, rowId) => {
-  // 鏇存柊瀵瑰簲琛岀殑 select 鍊�  
+  // 鏇存柊瀵瑰簲琛岀殑 select 鍊�
   selectValuesa[rowId] = value;
 };
 // 鏂规硶
@@ -56,9 +83,9 @@
     const response = await request.get('unLoadGlass/downWorkStation/getflowCardId');
     console.log(response)
     if (response.code === 200) {
- 
+
       flowCardOptions.value = response.data.filter(item => item !== null)
-        .map(item => ({ flowcard_id: item.flow_card_id }));
+          .map(item => ({flowcard_id: item.flow_card_id}));
       console.log(flowCardOptions.value);
     }
     else {
@@ -71,8 +98,8 @@
 //纭
 const handleConfirm = async () => {
   try {
-    const firstPart = flowCardId.value.split('|')[0].trim(); // 
-    const twoPart = flowCardId.value.split('|')[1].trim(); // 
+    const firstPart = flowCardId.value.split('|')[0].trim(); //
+    const twoPart = flowCardId.value.split('|')[1].trim(); //
     const response = await request.post('unLoadGlass/downWorkStation/updateFlowCardId', {
       workstationId: workstationId.value,
       flowCardId: firstPart,
@@ -82,7 +109,7 @@
     if (response.code == 200) {
       // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       console.log('缁戝畾鎴愬姛');
- 
+
       ElMessage.success(response.message);
       updatePageData();
       dialogFormVisiblea.value = false;
@@ -104,6 +131,7 @@
 const handleBindRack2 = (row) => {
   workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
   dialogFormVisiblea2.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+  workFlowCard.value=row.flowCardId;
 };
 //娓呴櫎鍐呭
 const handleclear = async () => {
@@ -111,13 +139,16 @@
     const response = await request.post('unLoadGlass/downWorkStation/clear', {
       workstationId: workstationId.value,
     });
- 
- 
+
+
     if (response.code === 200) {
       // 娓呴櫎鎴愬姛鐨勯�昏緫
       console.log('娓呴櫎鎴愬姛');
       ElMessage.success(response.message);
       dialogFormVisiblea2.value = false;
+      if(fullFlowCard.value==workFlowCard.value){
+        fullFlowCard.value="";
+      }
     } else if (response.code === 500) {
       // 娓呴櫎澶辫触鐨勯�昏緫
       console.log('娓呴櫎澶辫触');
@@ -136,7 +167,7 @@
   try {
     // 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰锛屽苟绛夊緟鍝嶅簲
     const response = await request.get('unLoadGlass/downWorkStation/getone');
- 
+
     // 妫�鏌ュ搷搴旂姸鎬�
     if (response.code === 200) {
       // 鏇存柊琛ㄦ牸鏁版嵁
@@ -155,6 +186,7 @@
 const socketUrl = `ws://${WebSocketHost}:${host}/api/unLoadGlass/api/talk/unloadglass`;
 // 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
 const handleMessage = (data) => {
+
   // 鏇存柊 tableData 鐨勬暟鎹�
   if (data.downGlassInfos != null) {
     downGlass.value = data.downGlassInfos[0][1];
@@ -162,9 +194,29 @@
   if (data.engineerIdList != null) {
     selectOptionsa.value = data.engineerIdList[0]
   }
- 
-  // tableData.splice(0, tableData.length, ...data.params[0]);
- 
+  if (data.autoPrint != null) {
+    autoPrint.value = data.autoPrint[0];
+  }
+
+  
+  if (fullFlowCard.value == ""&&autoPrint.value==true) {
+    for (let i = 0; i < tableData.length; i++) {
+      if (tableData[i].totalQuantity != 0) {
+        if (tableData[i].totalQuantity == tableData[i].racksNumber + tableData[i].otherNumber && fullFlowCard.value != tableData[i].flowCardId) {
+          // printFlowCardId.value = tableData[i].flowCardId;
+          fullFlowCard.value = tableData[i].flowCardId;
+          open(tableData[i]);
+          break;
+        }
+      } else {
+        console.log("娌℃湁flowCardId")
+      }
+    }
+  }
+  if(data.params!=null){
+    tableData.splice(0, tableData.length, ...data.params[0]);
+  }
+
   //  console.log("鏇存柊鍚庢暟鎹�", data.params[0]);
 };
 // 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
@@ -182,30 +234,30 @@
   console.log("鍏抽棴浜�")
   closeWebSocket();
 });
- 
- 
+
+
 const getTagType = (status) => {
   return status === 1 ? 'success' : 'danger';
   // 鏍规嵁鐘舵�佸�煎喅瀹氭爣绛剧被鍨嬶紝杩欓噷鍋囪鐘舵�佷负1鏃朵负鎴愬姛锛堢豢鑹诧級锛屽惁鍒欎负澶辫触锛堢孩鑹诧級
 }
- 
+
 const toggleStatus = (row) => {
   // 鍒囨崲鏂欐灦鐘舵�佺殑閫昏緫
   row.enableState = 1 - row.enableState; // Toggle between 0 and 1
   // 姝ゅ鍙互娣诲姞淇濆瓨鐘舵�佺殑閫昏緫锛屾瘮濡傝皟鐢� API 鏇存柊鏁版嵁
   updateRowStatus(row);
 };
- 
+
 const updateRowStatus = async (row) => {
   try {
     // 鍋囪浣犵殑鍚庣 API 鎺ユ敹 PUT 璇锋眰锛屽苟涓旈渶瑕佷紶閫� row.id 鍜� row.enableState 鍙傛暟
- 
- 
+
+
     const response = await request.post('unLoadGlass/downWorkStation/updateDownWorkstation', {
       enableState: row.enableState,
       id: row.id
- 
- 
+
+
     });
     console.log('Updated row status:', response.data);
     // 鍙互鏍规嵁鍚庣杩斿洖鐨勬暟鎹繘琛岃繘涓�姝ュ鐞嗭紝姣斿鏇存柊鏈湴鐘舵�佺瓑
@@ -214,78 +266,79 @@
     // 澶勭悊閿欒鎯呭喌锛屾瘮濡傛彁绀虹敤鎴锋洿鏂板け璐�
   }
 };
- 
+
 // 鏌ヨ鏁版嵁
 const selectDownGlassData = async () => {
-  
-  const response = await request.post("/unLoadGlass/downGlassInfo/selectDownGlassInfo", {
+
+  const response = await request.post("/unLoadGlass/downGlassInfo/setDownGlassInfoRequest", {
     workStationId: selectValuesa[0],
     engineerId: selectValuesa[1],
     beginDate: timeRange.value[0],
     endDate: timeRange.value[1],
   })
   if (response.code === 200) {
-    sendDownGlass.value = response.data;
     ElMessage.success(response.message);
   } else {
     ElMessage.error(response.message);
   }
- 
+
 }
- 
- 
-// const open=async(row)=>{
- 
-//   printFlowCardId.value=row.flowCardId;
-//   printLayer.value=row.layer
-//   dialogTableVisible.value = true;
-//   setTimeout(() => {
-//     printFlowCard(); // 鏇挎崲鎴愪綘瑕佹墽琛岀殑鍑芥暟鍚�
-//     }, 1000);
-//   ;
-// }
- 
-// const printFlowCard = () => {
-//   // 闇�瑕佹墦鍗扮殑灞�閮ㄥ尯鍩熻祴浜�"print-wrap"鐨刬d
-//   let el = document.getElementById("child");
-//   let doc = document;
-//   let body = doc.body || doc.getElementsByTagName("body")[0];
-//   let printId = "print-" + Date.now();
- 
-//   // 鍒涘缓鏃犲壇浣滅敤鐨勬墦鍗板鍣�(鍥犱笉纭畾椤甸潰鐨勬墦鍗板厓绱犳湁鏃犲叾瀹冩牱寮�)
-//   let content = doc.createElement("div");
-//   content.id = printId;
- 
-//   // 鏍峰紡鎺у埗涓庢墦鍗版棤鍏崇殑鍏冪礌闅愯棌
-//   let style = doc.createElement("style");
-//   style.innerHTML =
-//       "body>#" +
-//       printId +
-//       "{display:none}@media print{" +
-//       "@page {" +
-//       "    size: auto; " +
-//       "    margin: 2mm 2mm 0mm 1mm; " +
-//       "  }body>:not(#" +
-//       printId +
-//       "){display:none !important}body>#" +
-//       printId +
-//       "{display:block;padding-top:1px}}";
-//   //
-//   content.innerHTML = el.outerHTML;
-//   // // console.log("el.outerHTML", el.outerHTML);
-//   body.appendChild(style);
- 
-//   // 涓巗tyle鍏冪礌璁剧疆鐨勬牱寮忕浉閰嶅悎
-//   // 鎶婃墦鍗板唴瀹圭殑鍏冪礌娣诲姞鍒癰ody(浣滀负body鐨勫瓙鍏冪礌锛屽彲鐢╞ody鐨勫瓙閫夋嫨鍣� '>' 鎺у埗鎵撳嵃鏍峰紡)
-//   body.appendChild(content);
-//   setTimeout(() => {
-//     window.print();
-//     body.removeChild(content);
-//     body.removeChild(style);
-//   }, 20);
-// }
- 
- 
+
+
+const open = async (row) => {
+
+  printFlowCardId.value = row.flowCardId;
+  printLayer.value = row.layer
+  dialogTableVisible.value = true;
+  setTimeout(() => {
+    printFlowCard(); // 鏇挎崲鎴愪綘瑕佹墽琛岀殑鍑芥暟鍚�
+    dialogTableVisible.value = false;
+  }, 1000);
+  ;
+
+}
+
+const printFlowCard = () => {
+  // 闇�瑕佹墦鍗扮殑灞�閮ㄥ尯鍩熻祴浜�"print-wrap"鐨刬d
+  let el = document.getElementById("child");
+  let doc = document;
+  let body = doc.body || doc.getElementsByTagName("body")[0];
+  let printId = "print-" + Date.now();
+
+  // 鍒涘缓鏃犲壇浣滅敤鐨勬墦鍗板鍣�(鍥犱笉纭畾椤甸潰鐨勬墦鍗板厓绱犳湁鏃犲叾瀹冩牱寮�)
+  let content = doc.createElement("div");
+  content.id = printId;
+
+  // 鏍峰紡鎺у埗涓庢墦鍗版棤鍏崇殑鍏冪礌闅愯棌
+  let style = doc.createElement("style");
+  style.innerHTML =
+      "body>#" +
+      printId +
+      "{display:none}@media print{" +
+      "@page {" +
+      "    size: auto; " +
+      "    margin: 2mm 2mm 0mm 1mm; " +
+      "  }body>:not(#" +
+      printId +
+      "){display:none !important}body>#" +
+      printId +
+      "{display:block;padding-top:1px}}";
+  //
+  content.innerHTML = el.outerHTML;
+  // // console.log("el.outerHTML", el.outerHTML);
+  body.appendChild(style);
+
+  // 涓巗tyle鍏冪礌璁剧疆鐨勬牱寮忕浉閰嶅悎
+  // 鎶婃墦鍗板唴瀹圭殑鍏冪礌娣诲姞鍒癰ody(浣滀负body鐨勫瓙鍏冪礌锛屽彲鐢╞ody鐨勫瓙閫夋嫨鍣� '>' 鎺у埗鎵撳嵃鏍峰紡)
+  body.appendChild(content);
+  setTimeout(() => {
+    window.print();
+    body.removeChild(content);
+    body.removeChild(style);
+  }, 20);
+}
+
+
 // beforeUnmount(() => {
 //   closeWebSocket();
 // });
@@ -294,21 +347,24 @@
 <template>
   <div>
     <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary"
-      @click="dialogFormVisibleaDownGlass = true">钀芥灦璇︽儏</el-button>
+               @click="dialogFormVisibleaDownGlass = true">钀芥灦璇︽儏
+    </el-button>
+    <el-switch style="margin-top: 5px;margin-left: 10px;" v-model="autoPrint" class="mb-2" :inactive-text="$t('鑷姩鎵撳嵃')"
+               @change="handleChange"/>
     <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="200px" 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" />
+                    :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')"
-              min-width="120" />
-            <el-table-column prop="flowCardId" align="center" :label="$t('reportWork.cardnumber')" min-width="150" />
+                             min-width="120"/>
+            <el-table-column prop="flowCardId" align="center" :label="$t('reportWork.cardnumber')" min-width="150"/>
             <el-table-column prop="totalQuantity" align="center" :label="$t('reportWork.totalquantity')"
-              min-width="120" />
-            <el-table-column prop="racksNumber" align="center" :label="$t('reportWork.beendropped')" min-width="120" />
-            <el-table-column prop="layer" align="center" label="灞傛暟" min-width="120" />
-            <el-table-column prop="otherNumber" align="center" label="浜哄伐涓嬬墖鏁�" min-width="120" />
+                             min-width="120"/>
+            <el-table-column prop="racksNumber" align="center" :label="$t('reportWork.beendropped')" min-width="120"/>
+            <el-table-column prop="layer" align="center" label="灞傛暟" min-width="120"/>
+            <el-table-column prop="otherNumber" align="center" label="浜哄伐涓嬬墖鏁�" min-width="120"/>
             <!-- <el-table-column prop="work_state" align="center" :label="$t('reportWork.state')" min-width="120" /> -->
             <el-table-column prop="deviceId" align="center" :label="$t('reportWork.devicenumber')" min-width="120" />
             <el-table-column align="center" :label="$t('reportWork.startstatus')" min-width="80" prop="enableState">
@@ -321,18 +377,19 @@
             <el-table-column fixed="right" :label="$t('reportWork.operate')" align="center" width="200">
               <template #default="scope">
                 <el-button size="mini" type="text" plain v-show="scope.row.enableState !== '宸插惎鐢�'"
-                  @click="handleBindRack(scope.row)">{{ $t('reportWork.bindingshelves') }}</el-button>
+                           @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>
-                  <el-button @click="open(scope.row)" :disabled="scope.row.flowCardId==null">鎵撳嵃</el-button>
+                <el-button @click="open(scope.row)" :disabled="scope.row.flowCardId == null">鎵撳嵃</el-button>
               </template>
- 
+
             </el-table-column>
           </el-table>
- 
+
         </div>
         <el-dialog v-model="dialogFormVisibleaDownGlass" top="2vh" width="97%"
-          :title="$t('searchOrder.cageinformation')">
+                   :title="$t('searchOrder.cageinformation')">
           <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('璇烽�夋嫨宸ヤ綅')" clearable>
             <el-option label="鍏ㄩ儴" value="0"></el-option>
             <el-option label="1" value="1"></el-option>
@@ -346,33 +403,37 @@
             <el-option label="9" value="9"></el-option>
             <el-option label="10" value="10"></el-option>
           </el-select>
- 
+
           <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('basicData.plselectproject')" clearable
-            @input="handleInputChangea($event, row.id)">
-            <el-option v-for="item in selectOptionsa" :key="item" :label="item" :value="item" />
+                     @input="handleInputChangea($event, row.id)">
+            <el-option v-for="item in selectOptionsa" :key="item" :label="item" :value="item"/>
           </el-select>
-          <el-date-picker style="margin-left: 10px;" v-model="timeRange" type="daterange" format="YYYY/MM/DD"
-            value-format="YYYY-MM-DD" :start-placeholder="$t('reportmanage.starttime')"
-            :end-placeholder="$t('reportmanage.endtime')" :default-time="defaultTime" />
+
+          <span class="demonstration">鏃堕棿娈�</span>
+          <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"
+                          end-placeholder="缁撴潫鏃ユ湡">
+          </el-date-picker>
+
           <el-button type="primary" style="margin-left: 10px;" @click="selectDownGlassData()">{{
-        $t('reportmanage.inquire')
-      }}</el-button>
+              $t('reportmanage.inquire')
+            }}
+          </el-button>
           <el-table height="200px" ref="table" @selection-change="handleSelectionChange" :data="downGlass"
-            :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
-            <el-table-column prop="workStationId" align="center" :label="$t('宸ヤ綅鍙�')" min-width="80" />
-            <el-table-column prop="engineerId" align="center" :label="$t('宸ョ▼鍙�')" min-width="80" />
-            <el-table-column prop="flowCardId" align="center" :label="$t('娴佺▼鍗″彿')" min-width="80" />
-            <el-table-column prop="layer" align="center" :label="$t('灞�')" min-width="120" />
-            <el-table-column prop="sequence" align="center" :label="$t('椤哄簭')" min-width="150" />
-            <el-table-column prop="width" align="center" :label="$t('瀹�')" min-width="120" />
-            <el-table-column prop="height" align="center" :label="$t('楂�')" min-width="120" />
-            <el-table-column prop="Filmsid" align="center" :label="$t('鑶滅郴')" min-width="120" />
-            <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="120" />
-            <el-table-column prop="glassId" align="center" :label="$t('鐜荤拑id')" min-width="120" />
- 
+                    :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+            <el-table-column prop="workStationId" align="center" :label="$t('宸ヤ綅鍙�')" min-width="80"/>
+            <el-table-column prop="engineerId" align="center" :label="$t('宸ョ▼鍙�')" min-width="80"/>
+            <el-table-column prop="flowCardId" align="center" :label="$t('娴佺▼鍗″彿')" min-width="80"/>
+            <el-table-column prop="layer" align="center" :label="$t('灞�')" min-width="120"/>
+            <el-table-column prop="sequence" align="center" :label="$t('椤哄簭')" min-width="150"/>
+            <el-table-column prop="width" align="center" :label="$t('瀹�')" min-width="120"/>
+            <el-table-column prop="height" align="center" :label="$t('楂�')" min-width="120"/>
+            <el-table-column prop="Filmsid" align="center" :label="$t('鑶滅郴')" min-width="120"/>
+            <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="120"/>
+            <el-table-column prop="glassId" align="center" :label="$t('鐜荤拑id')" min-width="120"/>
+
           </el-table>
         </el-dialog>
- 
+
       </el-card>
       <!-- workstationId: '1',
     workstationId: '1005',
@@ -389,9 +450,9 @@
         </div>
       </div>
     </el-card>
- 
+
   </div>
- 
+
   <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" :title="$t('reportWork.bindingshelves')">
     <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
       <el-form size="mini" label-width="100px">
@@ -402,7 +463,7 @@
           <el-form-item :label="$t('reportWork.cardnumbera')" :required="true" style="width: 25vw;">
             <el-select v-model="flowCardId" :placeholder="$t('reportWork.incardnumber')">
               <el-option v-for="item in flowCardOptions" :key="item.flowcard_id" :label="item.flowcard_id"
-                :value="item.flowcard_id" />
+                         :value="item.flowcard_id"/>
             </el-select>
           </el-form-item>
         </el-form>
@@ -410,7 +471,7 @@
     </div>
     <template #footer>
       <div id="dialog-footer">
- 
+
         <el-button type="primary" @click="handleConfirm">
           {{ $t('reportWork.sure') }}
         </el-button>
@@ -428,19 +489,15 @@
       </div>
     </template>
   </el-dialog>
- 
-  <!-- <el-dialog
-        id="sizePrintCalrd"
-        v-model="dialogTableVisible"
-        destroy-on-close
-        style="width: 75%;height:75% ">
-      <print-flow
-          id="child"
-          :printFlowCardId="printFlowCardId"
-          :printLayer="printLayer"
-          style="width: 100%;height: 100%"/>
-    </el-dialog> -->
- 
+
+  <el-dialog id="sizePrintCalrd" v-model="dialogTableVisible" destroy-on-close style="width: 75%;height:75% ">
+    <!-- <template #header="{ close, titleId, titleClass }">
+        <el-button  @click="printFlowCard" >鎵撳嵃</el-button>
+      </template> -->
+    <print-flow id="child" :printFlowCardId="printFlowCardId" :printLayer="printLayer"
+                style="width: 100%;height: 100%"/>
+  </el-dialog>
+
 </template>
 <style scoped>
 #dt {
@@ -449,19 +506,19 @@
   line-height: 20px;
   margin-left: 100px;
 }
- 
+
 #dta {
   display: block;
   float: left;
   line-height: 20px;
   margin-left: 80%;
 }
- 
+
 #dialog-footer {
   text-align: center;
   margin-top: -15px;
 }
- 
+
 #message {
   text-align: center;
   align-items: center;
@@ -471,21 +528,21 @@
   background-color: #337ecc;
   margin-left: 28%;
 }
- 
+
 .awatch {
   max-width: 100%;
 }
- 
+
 #main-body {
   margin-top: -40px;
   margin-left: 150px;
 }
- 
+
 #main-bodya {
   margin-top: -40px;
   margin-left: 100px;
 }
- 
+
 :deep(#sizePrintCalrd .el-dialog__body) {
   height: 85%;
   width: 100%;
diff --git a/hangzhoumesParent/JsonFile/PlcdownGlass.json b/hangzhoumesParent/JsonFile/PlcdownGlass.json
deleted file mode 100644
index 979dc66..0000000
--- a/hangzhoumesParent/JsonFile/PlcdownGlass.json
+++ /dev/null
@@ -1,144 +0,0 @@
-{
-	"plcAddressBegin": "DB11.0",
-	"plcAddressLenght": "100",
-	"dataType": "word",
-	"parameteInfor": [
-
-		{
-			"codeId": "requestWord",
-			"addressIndex": "0",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "requestID",
-			"addressIndex": "2",
-			"addressLenght": "30"
-		},
-		{
-			"codeId": "currentCell",
-			"addressIndex": "32",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "glassStatus08",
-			"addressIndex": "36",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G06_glass_status",
-			"addressIndex": "40",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G11_glass_status",
-			"addressIndex": "42",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G13_glass_status",
-			"addressIndex": "44",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G04_error_status",
-			"addressIndex": "48",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G05_error_status",
-			"addressIndex": "50",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G06_error_status",
-			"addressIndex": "52",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "robot_error_status",
-			"addressIndex": "54",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G08_error_status",
-			"addressIndex": "56",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G09_error_status",
-			"addressIndex": "58",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G10_error_status",
-			"addressIndex": "60",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G11_error_status",
-			"addressIndex": "62",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "robot_error_status",
-			"addressIndex": "64",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G13_error_status",
-			"addressIndex": "66",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "confirmationWord",
-			"addressIndex": "72",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G06_prohibit_film_production",
-			"addressIndex": "74",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G11_prohibit_film_production",
-			"addressIndex": "76",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G13_prohibit_film_production",
-			"addressIndex": "78",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "Glass_width",
-			"addressIndex": "82",
-			"addressLenght": "4"
-		},
-		{
-			"codeId": "Glass_height",
-			"addressIndex": "86",
-			"addressLenght": "4"
-		},
-		{
-			"codeId": "Glass_thickness",
-			"addressIndex": "90",
-			"addressLenght": "4"
-		},
-		{
-			"codeId": "Start_cell",
-			"addressIndex": "94",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "End_cell",
-			"addressIndex": "96",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "task_type",
-			"addressIndex": "98",
-			"addressLenght": "2"
-		}
-
-	]
-}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
index 1d660e3..387c397 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
@@ -1,5 +1,6 @@
 package com.mes.edgglasstask.entity;
 
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -36,4 +37,7 @@
 
     private Date time;
 
+    @TableLogic
+    private int deleted;
+
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
index be6dc1c..45651a3 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
@@ -19,4 +19,10 @@
     List<EdgGlassTaskInfo> selectEdgInfo();
 
     String setEdgGlassInfoRequest(EdgGlassInfoRequest request);
+    /**
+     * 鏌ヨ鍒ゆ柇纾ㄨ竟绾挎槸鍚︽湁鐜荤拑杩愯
+     * @param
+     * @return
+     */
+    List<EdgGlassTaskInfo> selectTaskCacheIsRun();
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
index 2d5cd87..a5ca99a 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
@@ -2,6 +2,7 @@
 
 import cn.smallbun.screw.core.util.CollectionUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.common.utils.RedisUtil;
 import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
@@ -50,4 +51,18 @@
         }
         return "success";
     }
+    /**
+     * 鏌ヨ鍒ゆ柇纾ㄨ竟绾挎槸鍚︽湁鐜荤拑杩愯
+     * @param
+     * @return
+     */
+    @Override
+    public List<EdgGlassTaskInfo> selectTaskCacheIsRun() {
+        QueryWrapper<EdgGlassTaskInfo> wrapper = new QueryWrapper<EdgGlassTaskInfo>()
+                .select("line")
+                .eq("status", 1)
+                .groupBy("line");
+
+        return this.list(wrapper);
+    }
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
index f6ed2a9..e007e31 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
@@ -1,26 +1,22 @@
 package com.mes.edgstoragecage.controller;
 
+import com.mes.edgglasstask.entity.request.IdentWornRequest;
 import com.mes.edgstoragecage.entity.EdgStorageCage;
 import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
 import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
 import com.mes.edgstoragecage.service.EdgStorageCageService;
-import com.mes.edgstoragecage.service.impl.EdgStorageCageServiceImpl;
-import com.mes.taskcache.entity.TaskCache;
-import com.mes.taskcache.service.impl.TaskCacheServiceImpl;
 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.*;
 
-import java.awt.image.ImageProducer;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 /**
  * <p>
- *  鍓嶇鎺у埗鍣�
+ * 鍓嶇鎺у埗鍣�
  * </p>
  *
  * @author zhoush
@@ -40,44 +36,33 @@
     @ApiOperation("鏌ヨ纾ㄨ竟缂撳瓨鐞嗙墖绗煎唴璇︽儏 鍙傛暟()")
     @PostMapping("/selectEdgStorageCage")
     @ResponseBody
-    public Result selectEdgStorageCage () {
-        List<Map<String, Object>> list=edgStorageCageService.selectEdgStorageCages();
-        return Result.build(200,"鎴愬姛",list);
+    public Result selectEdgStorageCage() {
+        List<Map<String, Object>> list = edgStorageCageService.selectEdgStorageCages();
+        return Result.build(200, "鎴愬姛", list);
     }
-//    @ApiOperation("娣诲姞纾ㄨ竟缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氱鍐呯粦瀹氱幓鐠�  鍙傛暟(EdgStorageCage edgStorageCage)")
-//    @PostMapping("/insertEdgStorageCage")
-//    @ResponseBody
-//    public Result insertEdgStorageCage(@RequestBody EdgStorageCage edgStorageCage) {
-//        boolean isSucess=edgStorageCageService.updateEdgStorageCage(edgStorageCage);
-//        return Result.build(200,"娣诲姞鎴愬姛",1);
-//    }
+
     @ApiOperation("淇敼纾ㄨ竟缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氬绗煎唴鏍呮牸杩涜銆愬惎鐢�/绂佺敤銆�")
     @PostMapping("/updateEdgStorageCage")
     @ResponseBody
     public Result updateEdgStorageCage(@RequestBody EdgStorageCage edgStorageCage) {
-        String isSucess=edgStorageCageService.updateEdgStorageCage(edgStorageCage)?"鎴愬姛":"澶辫触";
-        return Result.build(200,"銆愬惎鐢�/绂佺敤銆�"+isSucess,1);
+        String isSucess = edgStorageCageService.updateEdgStorageCage(edgStorageCage) ? "鎴愬姛" : "澶辫触";
+        return Result.build(200, "銆愬惎鐢�/绂佺敤銆�" + isSucess, 1);
     }
 
     @ApiOperation("纾ㄨ竟缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愭竻闄�/鏇存崲/缁戝畾銆� EdgStorageCage鏍煎瓙淇℃伅,EdgStorageCageDetails 鐜荤拑淇℃伅 ")
     @PostMapping("/edgStorageCageGlass")
     @ResponseBody
-    public Result edgStorageCageGlass(@RequestBody EdgStorageCageDetails edgStorageCageDetails,int edgStorageCageId) {
+    public Result edgStorageCageGlass(@RequestBody EdgStorageCageDetails edgStorageCageDetails, int edgStorageCageId) {
 
-        String isSucess=edgStorageCageService.updateEdgStorageCageDetails(edgStorageCageId,edgStorageCageDetails)?"鎴愬姛":"澶辫触";
-        return Result.build(200,"銆愭竻闄�/鏇存崲/缁戝畾銆�"+isSucess,1);
+        String isSucess = edgStorageCageService.updateEdgStorageCageDetails(edgStorageCageId, edgStorageCageDetails) ? "鎴愬姛" : "澶辫触";
+        return Result.build(200, "銆愭竻闄�/鏇存崲/缁戝畾銆�" + isSucess, 1);
     }
-
-
 
     @ApiOperation("纾ㄨ竟妯″潡姹囨姤鐜荤拑鐘舵��   鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愮牬鎹�/鎷胯蛋銆�  ")
     @PostMapping("/edgReportStatus")
     @ResponseBody
-    public Result edgReportStatus(@RequestBody Map<String, String> arguments) {
-        /*arguments.put("line","1002");
-        arguments.put("machine","鍗у紡鐞嗙墖");*/
-        String isSucess=edgStorageCageDetailsService.identWorn(arguments)?"鎴愬姛":"澶辫触";
-        return Result.build(200,"銆愮牬鎹�/鎷胯蛋銆�"+isSucess,1);
+    public Result edgReportStatus(@RequestBody IdentWornRequest request) {
+        return Result.build(200, "銆愮牬鎹�/鎷胯蛋銆�" + edgStorageCageDetailsService.edgReportStatus(request), 1);
     }
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
index 1edada5..4e7ef5c 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
@@ -1,6 +1,7 @@
 package com.mes.edgstoragecage.service;
 
 import com.github.yulichang.base.MPJBaseService;
+import com.mes.edgglasstask.entity.request.IdentWornRequest;
 import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
 
 import java.util.List;
@@ -15,13 +16,6 @@
  * @since 2024-04-07
  */
 public interface EdgStorageCageDetailsService extends MPJBaseService<EdgStorageCageDetails> {
-
-    /**
-     * 璇嗗埆 鐮存崯/鎷胯蛋
-     * @param arguments
-     * @return
-     */
-    boolean identWorn(Map<String, String> arguments);
 
     /**
      * 鑾峰彇 鍒囧壊褰撳墠鐗堝浘
@@ -46,9 +40,26 @@
 
     /**
      * 鑾峰彇鍑虹墖淇℃伅鏁版嵁
+     *
      * @param glassId
      * @param threshold
      * @return
      */
     EdgStorageCageDetails selectOutGlass(String glassId, int threshold);
+
+    /**
+     * 璇嗗埆   鎷胯蛋:9/鐮存崯:8
+     *
+     * @param request
+     * @return
+     */
+    String identControls(IdentWornRequest request);
+
+    /**
+     * 纾ㄨ竟妯″潡姹囨姤鐜荤拑鐘舵��   鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愮牬鎹�/鎷胯蛋銆�
+     *
+     * @param request
+     * @return
+     */
+    String edgReportStatus(IdentWornRequest request);
 }
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 acf0dff..e214749 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
@@ -2,6 +2,7 @@
 
 import cn.hutool.core.lang.Assert;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.query.MPJLambdaQueryWrapper;
@@ -10,12 +11,14 @@
 import com.mes.common.config.Const;
 import com.mes.damage.entity.Damage;
 import com.mes.damage.service.DamageService;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgglasstask.entity.request.IdentWornRequest;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
 import com.mes.edgstoragecage.entity.EdgStorageCage;
 import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
 import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
 import com.mes.edgstoragecage.mapper.EdgStorageCageMapper;
 import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
-import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.glassinfo.mapper.GlassInfoMapper;
 import com.mes.pp.entity.OptimizeDetail;
 import com.mes.pp.entity.OptimizeLayout;
@@ -26,12 +29,11 @@
 import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import javax.print.attribute.standard.MediaSize;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -65,66 +67,8 @@
     @Autowired
     DamageService damageService;
 
-
-    /**
-     * 璇嗗埆   鎷胯蛋:200/鐮存崯:201
-     *
-     * @param arguments
-     * @return
-     */
-    @Override
-    public boolean identWorn(Map<String, String> arguments) {
-        String glassId=arguments.get("glassId");
-        int controlsId=arguments.get("controlsId").isEmpty()?0:Integer.parseInt(arguments.get("controlsId"));
-        int line=arguments.get("line").isEmpty()?0:Integer.parseInt(arguments.get("line"));
-        String machine=arguments.get("machine");
-        if(controlsId==0||line==0||machine==null||glassId==null||glassId.isEmpty()){
-            log.info("鍓嶇浼犻�掓暟鎹笉鍏�:{}",arguments);
-            return false;
-        }
-        int state;
-        if(controlsId==200||controlsId==201){
-            state=controlsId==200?3:2;
-        }else if (controlsId==300||controlsId==301){
-            state=controlsId==300?3:2;
-        }else{
-            log.info("鍓嶇浼犻�掔姸鎬佷笉鍚堟硶:{}",arguments);
-            return false;
-        }
-
-        List<GlassInfo> GlassInfos = glassInfoMapper.selectList(new MPJLambdaQueryWrapper<GlassInfo>()
-                .selectAll(GlassInfo.class)
-                .eq(GlassInfo::getGlassId, glassId));
-        if (GlassInfos.size() == 1) {
-            Damage damage =new Damage();
-            damage.setGlassId(glassId);
-            damage.setLine(line);
-            damage.setWorkingProcedure(machine);
-            damage.setRemark("");
-            damage.setStatus(state);//201鐮存崯锛�200鎷胯蛋   =銆嬬牬鎹熻〃 2鐮存崯  3 鎷胯蛋
-            damageService.insertDamage(damage);
-        }else{
-            return false;
-        }
-        List<EdgStorageCageDetails> edgStorageCageDetails = baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
-                .selectAll(EdgStorageCageDetails.class)
-                .eq(EdgStorageCageDetails::getGlassId, glassId));
-        if (edgStorageCageDetails.size() == 1) {
-            EdgStorageCageDetails item = edgStorageCageDetails.get(0);
-            item.setState(controlsId);
-            baseMapper.update(item, new MPJLambdaWrapper<EdgStorageCageDetails>().selectAll(EdgStorageCageDetails.class).eq(EdgStorageCageDetails::getGlassId, glassId));
-        }
-
-//            Sql鐗堟湰
-//        List<EdgStorageCageDetails> edgStorageCageDetails = baseMapper.selectList(new QueryWrapper<EdgStorageCageDetails>().eq("glass_id", glassId));
-//        if (edgStorageCageDetails.size() == 1) {
-//            EdgStorageCageDetails item=edgStorageCageDetails.get(0);
-//            item.setState(ControlsId);
-//            baseMapper.update(edgStorageCageDetails.get(0), new QueryWrapper<EdgStorageCageDetails>().eq("glass_id", glassId));
-//            return true;
-//        }
-        return true;
-    }
+    @Autowired
+    EdgGlassTaskInfoService edgGlassTaskInfoService;
 
     /**
      * 鑾峰彇 鍒囧壊褰撳墠鐗堝浘
@@ -139,7 +83,7 @@
                 .orderByDesc(UpPattenUsage::getId));
         if (!upPattenUsage.isEmpty()) {
             UpPattenUsage upPattenUsage1 = upPattenUsage.get(0);
-            List<Map<String, Object>> cutTerritorys=optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
+            List<Map<String, Object>> cutTerritorys = optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
                     .selectAll(OptimizeDetail.class)
                     .selectAs(OptimizeLayout::getWidth, "olWidth")
                     .selectAs(OptimizeLayout::getHeight, "olHeight")
@@ -149,17 +93,17 @@
                     .eq(OptimizeDetail::getProjectNo, upPattenUsage1.getEngineeringId())
                     .eq(OptimizeDetail::getStockId, upPattenUsage1.getLayoutSequence())
             );
-            List<Map<String, Object>> ResultcutTerritorys=new ArrayList<>();
+            List<Map<String, Object>> ResultcutTerritorys = new ArrayList<>();
             for (Map<String, Object> cutTerritory : cutTerritorys) {
-                EdgStorageCageDetails edgStorageCageDetails=baseMapper.selectOne(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
+                EdgStorageCageDetails edgStorageCageDetails = baseMapper.selectOne(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
                         .selectAll(EdgStorageCageDetails.class)
                         .eq(EdgStorageCageDetails::getGlassId, cutTerritory.get("glass_id"))
                         .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
 //                log.info("鍐呭锛歿}-------{}",cutTerritory,edgStorageCageDetails);
-                if(edgStorageCageDetails!=null){
-                    cutTerritory.put("glass_state",edgStorageCageDetails.getState());
-                }else{
-                    cutTerritory.put("glass_state",0);
+                if (edgStorageCageDetails != null) {
+                    cutTerritory.put("glass_state", edgStorageCageDetails.getState());
+                } else {
+                    cutTerritory.put("glass_state", 0);
                 }
                 ResultcutTerritorys.add(cutTerritory);
             }
@@ -185,9 +129,9 @@
     @Override
     public List<List<Map<String, Object>>> selectCurrentCutTerritory(String current) {
         //缁撴灉
-        List<Map<String, Object>> ResultcutTerritorys=new ArrayList<>();
+        List<Map<String, Object>> ResultcutTerritorys = new ArrayList<>();
         //姝ゅ伐绋嬬殑鎵�鏈変紭鍖栨暟鎹�
-        List<Map<String, Object>> cutTerritorys=optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
+        List<Map<String, Object>> cutTerritorys = optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
                 .selectAll(OptimizeDetail.class)
                 .selectAs(OptimizeLayout::getWidth, "olWidth")
                 .selectAs(OptimizeLayout::getHeight, "olHeight")
@@ -197,24 +141,24 @@
                 .eq(OptimizeDetail::getProjectNo, current)
         );
 
-        Map<String, EdgStorageCageDetails> edgMaps=baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
+        Map<String, EdgStorageCageDetails> edgMaps = baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
                 .selectAll(EdgStorageCageDetails.class)
-                .eq(EdgStorageCageDetails::getEngineerId,current)
+                .eq(EdgStorageCageDetails::getEngineerId, current)
                 .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
-        ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId,EdgStorageCageDetails->EdgStorageCageDetails));
+        ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId, EdgStorageCageDetails -> EdgStorageCageDetails));
         for (Map<String, Object> cutTerritory : cutTerritorys) {
 //                log.info("鍐呭锛歿}-------{}",cutTerritory,edgStorageCageDetails);
-            if(cutTerritory.get("glass_id")==null||"".equals(cutTerritory.get("glass_id"))){
-                log.info("浼樺寲鏁版嵁涓璯lassId瀛樺湪绌哄��-----鍐呭锛歿}",cutTerritorys);
+            if (cutTerritory.get("glass_id") == null || "".equals(cutTerritory.get("glass_id"))) {
+                log.info("浼樺寲鏁版嵁涓璯lassId瀛樺湪绌哄��-----鍐呭锛歿}", cutTerritorys);
                 return new ArrayList<>();
-            }else if(edgMaps.get(cutTerritory.get("glass_id"))!=null){
-                cutTerritory.put("glass_state",edgMaps.get(cutTerritory.get("glass_id")).getState());
-            }else{
-                cutTerritory.put("glass_state",0);
+            } else if (edgMaps.get(cutTerritory.get("glass_id")) != null) {
+                cutTerritory.put("glass_state", edgMaps.get(cutTerritory.get("glass_id")).getState());
+            } else {
+                cutTerritory.put("glass_state", 0);
             }
             ResultcutTerritorys.add(cutTerritory);
         }
-        Map<String, List<Map<String, Object>>> groupBy=ResultcutTerritorys.stream().collect(Collectors.groupingBy(item->item.get("stock_id").toString()));
+        Map<String, List<Map<String, Object>>> groupBy = ResultcutTerritorys.stream().collect(Collectors.groupingBy(item -> item.get("stock_id").toString()));
 //        List<List<Map<String, Object>>> Result=groupBy.values().stream().collect(Collectors.toList());
         return new ArrayList<>(groupBy.values());
 //Sql鐗堟湰
@@ -313,22 +257,49 @@
         EdgStorageCageDetails outEdgStorageCageDetails = null;
 
 //        if (queryMaxMinDiff(threshold))
-            //todo:閫昏緫1锛氳幏鍙栦袱鏉$嚎宸插嚭鏈�鍚庝竴鍧楃幓鐠冨湪绗煎唴鐩稿悓灏哄鎵�鍓╂暟閲忥紝浼樺厛璧版暟閲忓皯鐨勭嚎
-            //todo:闇�瑕佸湪鍗у紡鐞嗙墖绗艰鎯呰〃涓柊澧炵姸鎬侊紝鐢ㄦ潵琛ㄧず鐜荤拑杩涘嚭鐞嗙墖绗兼儏鍐�
-            if (oldEdgStorageCageDetails != null && minTemperingLayoutId != null) {
-                log.info("鎸夌収涓婁竴鐗囧凡鍑虹幓鐠冨搴}锛岄珮搴}锛屽強鐗堝浘id鍖洪棿{}鍒皗}鑾峰彇鍑虹墖浠诲姟鐜荤拑淇℃伅", oldEdgStorageCageDetails.getWidth()
-                        , oldEdgStorageCageDetails.getHeight(), minTemperingLayoutId.getTemperingLayoutId(), minTemperingLayoutId.getTemperingLayoutId() + threshold);
-                outEdgStorageCageDetails = this.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
-                        .notIn(CollectionUtils.isNotEmpty(glassIds), EdgStorageCageDetails::getGlassId, glassIds)
-                        .eq(EdgStorageCageDetails::getWidth, oldEdgStorageCageDetails.getWidth())
-                        .eq(EdgStorageCageDetails::getHeight, oldEdgStorageCageDetails.getHeight())
-                        .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence)
-                        .last("limit 1"));
-                log.info("鍑虹墖浠诲姟鐨勭幓鐠冧俊鎭細{}", outEdgStorageCageDetails);
-            }
+        //todo:閫昏緫1锛氳幏鍙栦袱鏉$嚎宸插嚭鏈�鍚庝竴鍧楃幓鐠冨湪绗煎唴鐩稿悓灏哄鎵�鍓╂暟閲忥紝浼樺厛璧版暟閲忓皯鐨勭嚎
+        //todo:闇�瑕佸湪鍗у紡鐞嗙墖绗艰鎯呰〃涓柊澧炵姸鎬侊紝鐢ㄦ潵琛ㄧず鐜荤拑杩涘嚭鐞嗙墖绗兼儏鍐�
+        if (oldEdgStorageCageDetails != null && minTemperingLayoutId != null) {
+            log.info("鎸夌収涓婁竴鐗囧凡鍑虹幓鐠冨搴}锛岄珮搴}锛屽強鐗堝浘id鍖洪棿{}鍒皗}鑾峰彇鍑虹墖浠诲姟鐜荤拑淇℃伅", oldEdgStorageCageDetails.getWidth()
+                    , oldEdgStorageCageDetails.getHeight(), minTemperingLayoutId.getTemperingLayoutId(), minTemperingLayoutId.getTemperingLayoutId() + threshold);
+            outEdgStorageCageDetails = this.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                    .notIn(CollectionUtils.isNotEmpty(glassIds), EdgStorageCageDetails::getGlassId, glassIds)
+                    .eq(EdgStorageCageDetails::getWidth, oldEdgStorageCageDetails.getWidth())
+                    .eq(EdgStorageCageDetails::getHeight, oldEdgStorageCageDetails.getHeight())
+                    .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence)
+                    .last("limit 1"));
+            log.info("鍑虹墖浠诲姟鐨勭幓鐠冧俊鎭細{}", outEdgStorageCageDetails);
+        }
         if (outEdgStorageCageDetails == null) {
             outEdgStorageCageDetails = minTemperingLayoutId;
         }
         return outEdgStorageCageDetails;
     }
+
+    @Override
+    public String identControls(IdentWornRequest request) {
+        //灏嗚瘑鍒牬鎹熺殑鐜荤拑鐩存帴鍔犲叆鐮存崯琛�
+        Damage damage = new Damage();
+        BeanUtils.copyProperties(request, damage);
+        damage.setType(request.getState());
+        damage.setRemark("");
+        damage.setStatus(0);
+        damageService.insertDamage(damage);
+        return "success";
+    }
+
+    @Override
+    public String edgReportStatus(IdentWornRequest request) {
+        //灏嗙(杈归槦鍒楃牬鎹熺殑鐜荤拑鐩存帴鍔犲叆鐮存崯琛�
+        Damage damage = new Damage();
+        BeanUtils.copyProperties(request, damage);
+        damage.setType(request.getState());
+        damage.setRemark("");
+        damage.setStatus(0);
+        damageService.insertDamage(damage);
+        //淇敼纾ㄨ竟闃熷垪鏁版嵁鐘舵��
+        edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>()
+                .set(EdgGlassTaskInfo::getStatus, request.getState()).eq(EdgGlassTaskInfo::getGlassId, request.getGlassId()));
+        return "success";
+    }
 }
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 b42a294..d234fd9 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
@@ -146,23 +146,6 @@
         log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
     }
 
-    @Scheduled(fixedDelay = 1000)
-    public void temperingIsRun() {
-        JSONObject jsonObject = new JSONObject();
-        //姝e湪杩涜鐨勪换鍔�
-        List<TaskCache> taskCaches = taskCacheService.selectTaskCacheIsRun();
-        jsonObject.append("taskCaches", taskCaches);
-        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("isRun");
-        if (sendwServer != null) {
-            for (WebSocketServer webserver : sendwServer) {
-                if (webserver != null) {
-                    webserver.sendMessage(jsonObject.toString());
-                } else {
-                    log.info("Home is closed");
-                }
-            }
-        }
-    }
 
     @Scheduled(fixedDelay = 1000)
     public void dealDamageTask() {
@@ -782,7 +765,7 @@
     public void cacheGlassIsRun() {
         JSONObject jsonObject = new JSONObject();
         //姝e湪杩涜鐨勪换鍔�
-        List<TaskCache> taskCaches = taskCacheService.selectTaskCacheIsRun();
+        List<EdgGlassTaskInfo> taskCaches = edgGlassTaskInfoService.selectTaskCacheIsRun();
         jsonObject.append("taskCaches", taskCaches);
         ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cacheGlassIsRun");
         if (sendwServer != null) {
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
index 99a18f1..e48a6db 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
@@ -1,8 +1,7 @@
 package com.mes.taskcache.controller;
 
+import com.mes.edgglasstask.entity.request.IdentWornRequest;
 import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
-import com.mes.edgstoragecage.service.EdgStorageCageService;
-import com.mes.taskcache.entity.TaskCache;
 import com.mes.taskcache.service.TaskCacheService;
 import com.mes.utils.Result;
 import io.swagger.annotations.Api;
@@ -13,11 +12,9 @@
 import java.util.List;
 import java.util.Map;
 
-import static com.mes.job.CacheGlassTask.engineerId;
-
 /**
  * <p>
- *  鍓嶇鎺у埗鍣�
+ * 鍓嶇鎺у埗鍣�
  * </p>
  *
  * @author zhoush
@@ -32,8 +29,6 @@
     private EdgStorageCageDetailsService edgStorageCageDetailsService;
 
     @Autowired
-    private EdgStorageCageService edgStorageCageService;
-    @Autowired
     private TaskCacheService taskCacheService;
 
     @ApiOperation("鏌ヨ鍒囧壊鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙�   鍙傛暟(宸ョ▼鍙�)")
@@ -42,34 +37,31 @@
     public Result cutTerritory(String current) {
         //engineerId=current;
         List<List<Map<String, Object>>> h = edgStorageCageDetailsService.selectCurrentCutTerritory(current);
-        return Result.build(200,"鎴愬姛",h);
+        return Result.build(200, "鎴愬姛", h);
     }
+
     @ApiOperation("璇嗗埆鏄剧ず  褰撳墠鐗堝浘   鍙傛暟()")
     @PostMapping("/currentCutTerritory")
     @ResponseBody
     public Result currentCutTerritory() {
         List<Map<String, Object>> h = edgStorageCageDetailsService.selectCutTerritory();
-        return Result.build(200,"鎴愬姛",h);
+        return Result.build(200, "鎴愬姛", h);
     }
-    @ApiOperation("璇嗗埆鎿嶄綔锛�   鐮存崯/鎷胯蛋     鍙傛暟锛圛D,鍔熻兘[200锛氭嬁璧帮紝201:鐮存崯]锛�")
+
+    @ApiOperation("璇嗗埆鎿嶄綔锛�   鐮存崯/鎷胯蛋     鍙傛暟锛圛D,鍔熻兘[9锛氭嬁璧帮紝8:鐮存崯]锛�")
     @PostMapping("/identControls")
     @ResponseBody
-    public Result identControls(@RequestBody Map<String, String> arguments) {
-       /* arguments.put("glassId","鐜荤拑ID");
-        arguments.put("controlsId","鍔熻兘鍙穂200鎷胯蛋/201鐮存崯]");*/
-        /*arguments.put("line","1001");
-        arguments.put("machine","璇嗗埆");*/
-        boolean issucess = edgStorageCageDetailsService.identWorn(arguments);
-        return Result.build(200,"鎴愬姛",issucess);
+    public Result<String> identControls(@RequestBody IdentWornRequest request) {
+        return Result.build(200, "鎴愬姛", edgStorageCageDetailsService.identControls(request));
     }
 
     @ApiOperation("纾ㄨ竟浠诲姟 鍙傛暟()")
     @PostMapping("/selectEdgTask")
     @ResponseBody
     public Result selectEdgTask(@RequestBody Map<String, String> arguments) {
-        String line=arguments.get("line");
-        List<Map<String,Object>> EdgTasks = taskCacheService.selectEdgInfo(line);
-        return Result.build(200,"鎴愬姛",EdgTasks);
+        String line = arguments.get("line");
+        List<Map<String, Object>> EdgTasks = taskCacheService.selectEdgInfo(line);
+        return Result.build(200, "鎴愬姛", EdgTasks);
     }
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java
index daaf6e3..07275d1 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java
@@ -73,11 +73,6 @@
      * @return
      */
     TaskCache selectLastOutCacheInfo(int line);
-    /**
-     * 鏌ヨ鍒ゆ柇纾ㄨ竟绾挎槸鍚︽湁鐜荤拑杩愯
-     * @param
-     * @return
-     */
-    List<TaskCache> selectTaskCacheIsRun();
+
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java
index cf78834..df949ef 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java
@@ -180,23 +180,7 @@
         return baseMapper.selectOne(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell, line).eq(TaskCache::getTaskStatus, 1).orderByDesc(TaskCache::getCreateTime));
     }
 
-    /**
-     * 鏌ヨ鍒ゆ柇纾ㄨ竟绾挎槸鍚︽湁鐜荤拑杩愯
-     *
-     * @param
-     * @return
-     */
-    @Override
-    public List<TaskCache> selectTaskCacheIsRun() {
-        List<TaskCache> taskCaches = null;
-        taskCaches = taskCacheMapper.selectJoinList(TaskCache.class, new MPJLambdaWrapper<TaskCache>()
-                .select("top 4   t.end_cell,ISNULL(b.glass_id, 0)as glass_id")
-                .leftJoin("big_storage_cage_feed_task as b on t.glass_id=b.glass_id ")
-                .groupBy("t.end_cell,b.glass_id,t.create_time")
-                .orderByDesc("t.create_time")
-        );
-        return taskCaches;
-    }
+
 
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
index 9e6a161..8907e28 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
@@ -149,7 +149,7 @@
         arguments.put("controlsId","300");        //鎷胯蛋锛�200/鐮存崯锛�201
         arguments.put("line","2001");             //绾胯矾锛�
         arguments.put("machine","鍐峰姞宸�");           //璁惧鍚嶇О锛�
-        edgStorageCageDetailsService.identWorn(arguments);
+//        edgStorageCageDetailsService.identWorn(arguments);
         log.info("璇嗗埆鍙般�愮牬鎹�/鎷胯蛋銆戯細{}", 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 4aed0d2..2cc98f6 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
@@ -506,10 +506,10 @@
         }
         //鑾峰彇鍑虹墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
         List<BigStorageCageOutTask> outDamageTaskInfoList = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
-                .eq(BigStorageCageOutTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
+                .in(BigStorageCageOutTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
         if (CollectionUtils.isNotEmpty(outDamageTaskInfoList)) {
             log.info("鑾峰彇鍑虹墖浠诲姟琛ㄤ腑鐮存崯鐨勭幓鐠冧俊鎭瘂}", outDamageTaskInfoList);
-            bigStorageCageOutTaskService.remove(new LambdaQueryWrapper<BigStorageCageOutTask>().eq(BigStorageCageOutTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
+            bigStorageCageOutTaskService.remove(new LambdaQueryWrapper<BigStorageCageOutTask>().in(BigStorageCageOutTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
             List<String> glassIdList = outDamageTaskInfoList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
             //绉婚櫎閽㈠寲涓嬬墖琛ㄦ暟鎹�
             temperingGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().in(TemperingGlassInfo::getGlassId, glassIdList));
@@ -713,7 +713,7 @@
         while (returnData == 0) {
             s7control.writeWord(outLine, 2);
             returnData = s7control.readWord(outLine, 1).get(0);
-            log.info("宸插悜plc绗瑊}娆″彂閫侀�佺墖浠诲姟纭锛屽湴鍧�涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, outLine, returnData);
+            log.info("宸插悜plc绗瑊}娆″彂閫佽繘鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, outLine, returnData);
         }
     }
 
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
index d902299..7d8c5da 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -3,20 +3,20 @@
 
 spring:
   profiles:
-    active: prod
+    active: cz
   application:
     name: cacheVerticalGlass
 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
-  minCount: 5
+  minCount: 20
   carWidth: 5000   #澶ц溅瀹藉害
   slotWidth: 5000   #澶ц溅瀹藉害
-  inCarMaxSize: 2     #杩涚墖澶ц溅鏈�澶у瓨鏀剧幓鐠冩暟閲�
+  inCarMaxSize: 3     #杩涚墖澶ц溅鏈�澶у瓨鏀剧幓鐠冩暟閲�
   outCarMaxSize: 3     #鍑虹墖澶ц溅鏈�澶у瓨鏀剧幓鐠冩暟閲�
-  glassGap: 1000      #鐜荤拑闂磋窛
+  glassGap: 350  #鐜荤拑闂磋窛
   xMaxSize: 2850
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
index 23aea71..d3a8e05 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
@@ -1,5 +1,6 @@
 package com.mes.downglassinfo.controller;
 
+import com.mes.downglassinfo.entity.DownGlassInfo;
 import com.mes.downglassinfo.entity.request.DownGlassInfoRequest;
 import com.mes.downglassinfo.service.DownGlassInfoService;
 import com.mes.utils.Result;
@@ -31,4 +32,9 @@
 
     }
 
+    @PostMapping("/downGlassPrint")
+    public Result downGlassPrint(@RequestBody DownGlassInfo downGlassInfo) {
+        return Result.build(200, "鏌ヨ鎴愬姛", downGlassInfoService.downGlassPrint(downGlassInfo));
+    }
+
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java
index e0cc79a..9f342f0 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java
@@ -6,7 +6,6 @@
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
-import java.sql.Timestamp;
 import java.util.Date;
 
 /**
@@ -34,14 +33,14 @@
     /**
      * 寮�濮嬫椂闂�
      */
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date beginDate;
 
     /**
      * 缁撴潫鏃堕棿
      */
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date endDate;
 
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 6ec9b41..022cb19 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
@@ -1,7 +1,6 @@
 package com.mes.downglassinfo.service.impl;
 
 import cn.smallbun.screw.core.util.CollectionUtils;
-import cn.smallbun.screw.core.util.CollectionUtils;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -27,8 +26,9 @@
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
-import java.util.HashMap;import java.util.Map;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 @Service
@@ -105,6 +105,7 @@
         BeanUtils.copyProperties(details, downGlassInfo);
         //鑾峰彇褰撳墠娴佺▼鍗℃渶澶х墖搴�
         downGlassInfo.setSequence(this.getMaxSequenceByFlowCardId(details.getFlowCardId(), details.getLayer()) + 1);
+        downGlassInfo.setWorkStationId(Const.G13_WORK_STATION);
         this.save(downGlassInfo);
         //鐢熸垚浠诲姟淇℃伅 骞跺悜plc鍙戦�佸嚭鐗囦换鍔�
         GlassInfo glassInfo = new GlassInfo();
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java
index e7feaef..3a9e7f3 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java
@@ -2,6 +2,7 @@
 
 import com.mes.downstorage.entity.DownStorageCage;
 import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.entity.request.CacheWornRequest;
 import com.mes.downstorage.service.DownStorageCageDetailsService;
 import com.mes.downstorage.service.DownStorageCageService;
 import com.mes.utils.Result;
@@ -61,8 +62,9 @@
     @ApiOperation("鍒犻櫎缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愭竻闄ゃ��")
     @PostMapping("/deleteDownStorageCage")
     @ResponseBody
-    public Result deleteDownStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails,int downStorageCageId) {
-        boolean isSucess=downStorageCageService.updateDownStorageCageDetails(downStorageCageId,downStorageCageDetails);
+    public Result deleteDownStorageCage(@RequestBody CacheWornRequest cacheWornRequest) {
+        downStorageCageService.deleteDownStorageCage(cacheWornRequest);
+//        boolean isSucess=downStorageCageService.updateDownStorageCageDetails(downStorageCageId,downStorageCageDetails);
         return Result.build(200,"鍒犻櫎鎴愬姛",1);
     }
 
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
index 5281217..09ff9fc 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
@@ -4,6 +4,7 @@
 import com.mes.downglassinfo.entity.DownGlassTask;
 import com.mes.downstorage.entity.DownStorageCage;
 import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.entity.request.CacheWornRequest;
 import com.mes.glassinfo.entity.GlassInfo;
 
 import java.util.List;
@@ -53,6 +54,8 @@
     List<Map<String, Object>> selectDownStorageCages();
 
     List<DownStorageCageDetails> selectCacheMax();
+
+    void deleteDownStorageCage(CacheWornRequest cacheWornRequest);
 }
 
 
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
index 18e1259..b204f0c 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
@@ -1,14 +1,18 @@
 package com.mes.downstorage.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.toolkit.JoinWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
 import com.mes.downglassinfo.entity.DownGlassTask;
 import com.mes.downglassinfo.service.DownGlassTaskService;
 import com.mes.downstorage.entity.DownStorageCage;
 import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.entity.request.CacheWornRequest;
 import com.mes.downstorage.mapper.DownStorageCageDetailsMapper;
 import com.mes.downstorage.mapper.DownStorageCageMapper;
 import com.mes.downstorage.service.DownStorageCageDetailsService;
@@ -46,6 +50,8 @@
     private DownStorageCageDetailsService downStorageCageDetailsService;
     @Autowired
     private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
+    @Autowired
+    DamageService damageService;
 
     @Override
     public DownGlassTask createDownGlassTask(GlassInfo glassInfo, Integer startCell, Integer endCell, Integer taskType) {
@@ -128,7 +134,6 @@
     }
 
 
-
     @Override
     public List<Map<String, Object>> selectDownStorageCages() {
         return baseMapper.selectJoinMaps(JoinWrappers.lambda(DownStorageCage.class)
@@ -190,7 +195,10 @@
 
         if (downItem != null) {
             //绉婚櫎
-            DownStorageCageDetails result = downStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<DownStorageCageDetails>().eq(DownStorageCageDetails::getSlot, downStorageCageId));
+            DownStorageCageDetails result = downStorageCageDetailsMapper
+                    .selectOne(new MPJLambdaWrapper<DownStorageCageDetails>()
+                            .eq(DownStorageCageDetails::getSlot, downStorageCageId)
+                    );
             if (result != null) {
                 result.setSlot(0);
                 downStorageCageDetailsMapper.updateById(result);
@@ -200,4 +208,19 @@
         return true;
     }
 
+    @Override
+    public void deleteDownStorageCage(CacheWornRequest cacheWornRequest) {
+        Damage damage = new Damage();
+        BeanUtils.copyProperties(cacheWornRequest, damage);
+        damage.setType(cacheWornRequest.getState());
+        damage.setRemark("");
+        damage.setStatus(0);
+        damageService.insertDamage(damage);
+        downStorageCageDetailsService.update(new LambdaUpdateWrapper<DownStorageCageDetails>()
+                .set(DownStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                .eq(DownStorageCageDetails::getGlassId, cacheWornRequest.getGlassId())
+                .eq(DownStorageCageDetails::getState,Const.GLASS_STATE_IN));
+
+    }
+
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
index 2f2a7aa..3c547af 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
@@ -1,6 +1,7 @@
 package com.mes.downworkstation.controller;
 
 
+import com.mes.common.utils.RedisUtil;
 import com.mes.downworkstation.entity.DownWorkstation;
 import com.mes.downworkstation.entity.request.DownWorkRequest;
 import com.mes.downworkstation.service.DownWorkstationService;
@@ -11,6 +12,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.util.List;
 import java.util.Map;
 
@@ -32,6 +34,8 @@
     private DownWorkstationService downWorkstationService;
     @Autowired
     private GlassInfoService glassInfoService;
+    @Resource
+    private RedisUtil redisUtil;
 
     @ApiOperation("鑾峰彇宸ヤ綅淇℃伅")
     @GetMapping("/getone")
@@ -77,9 +81,8 @@
         // 璋冪敤 DownWorkstationService 涓殑鏂规硶娓呴櫎鎸囧畾宸ヤ綅ID鐨勪俊鎭�
         int workstationId = (int) requestData.get("workstationId");
 
-            downWorkstationService.clearFlowCardId(workstationId);
-            return Result.build(200, "娓呴櫎宸ヤ綅淇℃伅鎴愬姛", 1);
-
+        downWorkstationService.clearFlowCardId(workstationId);
+        return Result.build(200, "娓呴櫎宸ヤ綅淇℃伅鎴愬姛", 1);
 
 
         // 鏋勫缓鍝嶅簲鏁版嵁
@@ -127,6 +130,13 @@
         return Result.build(200, "鏇存崲鎴愬姛", downWorkstationService.closeAlarmSignal());
     }
 
+    @ApiOperation("鏄惁鑷姩鎵撳嵃")
+    @PostMapping("/autoPrint")
+    public Result autoPrint(Boolean flag) {
+        downWorkstationService.autoPrint(flag);
+        return Result.build(200, "淇敼鎴愬姛", redisUtil.getCacheObject("autoPrint"));
+    }
+
 
 }
 
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
index 51c1f71..461935d 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
@@ -79,4 +79,6 @@
     boolean updateDownWorkstationstate(DownWorkstation downWorkstation);
 
     String closeAlarmSignal();
+
+    void autoPrint(Boolean flag);
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
index 2307334..0e6b23d 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
@@ -5,13 +5,12 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.query.MPJQueryWrapper;
 import com.mes.common.S7object;
+import com.mes.common.utils.RedisUtil;
 import com.mes.damage.entity.Damage;
 import com.mes.damage.service.DamageService;
 import com.mes.device.PlcParameterObject;
 import com.mes.downglassinfo.entity.DownGlassInfo;
 import com.mes.downglassinfo.mapper.DownGlassInfoMapper;
-import com.mes.downglassinfo.service.DownGlassInfoService;
-import com.mes.downglassinfo.service.DownGlassTaskService;
 import com.mes.downworkstation.entity.DownWorkstation;
 import com.mes.downworkstation.entity.DownWorkstationTask;
 import com.mes.downworkstation.entity.DownWorkstionAndDownGlassinfo;
@@ -25,6 +24,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -39,11 +39,7 @@
     @Autowired(required = false)
     private DownWorkstationTaskMapper downWorkstationTaskMapper;
     @Autowired
-    private DownGlassInfoService downGlassInfoService;
-    @Autowired
     private DownGlassInfoMapper downGlassInfoMapper;
-    @Autowired
-    private DownGlassTaskService downGlassTaskService;
     @Autowired
     private GlassInfoService glassInfoService;
     @Autowired
@@ -51,6 +47,8 @@
 
     @Autowired
     private DownWorkstationTaskService downWorkstationTaskService;
+    @Resource
+    private RedisUtil redisUtil;
 
     //    @Override
 //    public List<DownWorkstation> gettwoDownWorkstations() {
@@ -223,5 +221,9 @@
         return "success";
     }
 
+    @Override
+    public void autoPrint(Boolean flag) {
+        redisUtil.setCacheObject("autoPrint", flag);
+    }
 
 }
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 6ff5565..c324ce2 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
@@ -3,6 +3,7 @@
 import cn.hutool.core.lang.Assert;
 import cn.smallbun.screw.core.util.CollectionUtils;
 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.conditions.update.UpdateWrapper;
 import com.mes.common.S7object;
@@ -164,6 +165,31 @@
         log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
     }
 
+    /**
+     * 鏇存柊宸茬粦瀹氬伐浣嶆祦绋嬪崱鐨勭牬鎹�/鎷胯蛋鐨勬暟閲忎俊鎭�
+     */
+    @Scheduled(fixedDelay = 1000)
+    public void updateWorkStationOtherCount() {
+        Date startDate = new Date();
+        log.info("涓嬬墖鐮存洿鏂版崯鐜荤拑鏁伴噺浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+        //鑾峰彇宸茬粦瀹氭祦绋嬪崱鐨勫伐浣嶄俊鎭�
+        List<DownWorkstation> downWorkstationList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
+                .isNotNull(DownWorkstation::getFlowCardId)
+                .ne(DownWorkstation::getFlowCardId, "")
+                .orderByDesc(DownWorkstation::getWorkstationId));
+        for (DownWorkstation downWorkstation : downWorkstationList) {
+            //鏇存柊宸ヤ綅鍏朵粬鐜荤拑淇℃伅鐨勬暟閲�
+            QueryWrapper<Damage> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("process_id", downWorkstation.getFlowCardId());
+            queryWrapper.eq("technology_number", downWorkstation.getLayer());
+            int otherNumber = damageService.count(queryWrapper);
+            downWorkstationService.update(new LambdaUpdateWrapper<DownWorkstation>().set(DownWorkstation::getOtherNumber, otherNumber)
+                    .eq(DownWorkstation::getWorkstationId, downWorkstation.getWorkstationId()));
+        }
+        Date endDate = new Date();
+        log.info("涓嬬墖鐮存洿鏂版崯鐜荤拑鏁伴噺浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
+    }
+
     public void inTo(String glassId, String requestWord, String currentSlot) {
         log.info("1銆佹寜鐓х幓鐠僫d:{}鑾峰彇鐜荤拑灏忕墖淇℃伅,褰撳墠鏍煎瓙涓�:{}", glassId, currentSlot);
         //娣诲姞杩涚墖浠诲姟  鏌ユ壘绌烘牸
@@ -253,6 +279,7 @@
         BeanUtils.copyProperties(glassInfo, downStorageCageDetails);
         downStorageCageDetails.setState(Const.GLASS_STATE_IN);
         downStorageCageDetails.setSlot(nearestEmpty.getSlot());
+        downStorageCageDetails.setDeviceId(nearestEmpty.getDeviceId());
         downStorageCageDetailsService.save(downStorageCageDetails);
         //        鐢熸垚杩涚墖浠诲姟
         initDownGlassTask(glassInfo, 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN);
@@ -275,6 +302,7 @@
             //鑾峰彇褰撳墠绗煎瓙绌烘牸淇℃伅
             DownStorageCage empty = downStorageCageService.selectCacheEmpty(Integer.parseInt(currentSlot), Boolean.TRUE);
             cageDetails.setSlot(empty.getSlot());
+            cageDetails.setDeviceId(empty.getDeviceId());
             tempList.add(cageDetails);
         }
         log.info("鍑虹墖2锛氱鍐呯幓鐠冪殑鏁版嵁(鍖呮嫭寰呰繘鐗�)鏈夛細{}", tempList);
@@ -378,8 +406,15 @@
                             .filter(item -> StringUtils.isNotBlank(item.getFlowCardId())).collect(Collectors.groupingBy(item -> item.getFlowCardId() + ":" + item.getLayer()));
                     //杩囨护绛涢�夎幏鍙栨灦瀛愪笂瀵瑰簲娴佺▼鍗�+灞傛暟鐨勭瀛愬唴鐨勭幓鐠冧俊鎭�
                     list = tempList.stream().filter(item -> listMap.containsKey(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList());
+                    if (CollectionUtils.isEmpty(list) && flag08 && !"2".equals(glassStatus13)) {
+                        list = tempList.stream().filter(item -> {
+                            double firstLength = Math.max(item.getWidth(), item.getHeight());
+                            double secondLength = Math.min(item.getWidth(), item.getHeight());
+                            return firstLength > maxWidth || secondLength > maxHeight;
+                        }).collect(Collectors.toList());
+                    }
                 } else {
-                    log.info("瀛樺湪鏈粦瀹氭祦绋嬪崱鏋跺瓙锛岀洿鎺ヨ幏鍙栫鍐呮墍鏈夌幓鐠�,涓旀湭缁戝畾鏋跺瓙鐨勭幓鐠冧俊鎭�");
+                    log.info("瀛樺湪鏈粦瀹氭祦绋嬪崱鏋跺瓙锛岀洿鎺ヨ幏鍙栫鍐呮墍鏈夌幓鐠�,涓旀湭缁戝畾鏋跺瓙鐨勭幓鐠冧俊鎭紙閮藉彲浠ュ嚭鐨勭幓鐠冿級");
                     //鑾峰彇绂佺敤鍙婇潪鏈満姊拌噦鐨勬灦瀛愮殑娴佺▼鍙峰強灞傛暟瀵瑰簲鐨勭幓鐠冧俊鎭�
                     List<DownWorkstation> downWorkstationOffList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
                             .and(i -> i.in(DownWorkstation::getWorkstationId, offWorkStationList).or().eq(DownWorkstation::getEnableState, Const.SLOT_OFF)));
@@ -409,6 +444,8 @@
             log.info("绗煎唴鐜荤拑鏃犳硶鎵ц鍑虹墖");
             return Boolean.FALSE;
         }
+        //鑾峰彇鍏蜂綋鍑洪偅涓�鐗囩幓鐠�
+        //tao:浜哄伐--> 鎵�鏈夋灦瀛愰兘鏈粦瀹氭椂杩涜缁戝畾 --->鏈夋湭缁戝畾鏋跺瓙鏃惰繘琛岀粦瀹� --->缁戝畾杩囨祦绋嬪崱鐨勭幓鐠�-->鐜荤拑娴佺▼鍗″灞�--->鐜荤拑娴佺▼鍗″崟灞�
         String tempGlassId = null;
         Boolean isNeedBind = Boolean.FALSE;
 
@@ -426,7 +463,7 @@
         loop:
         if (StringUtils.isBlank(tempGlassId)) {
             //鑾峰彇姝e湪钀芥灦鐨勭粦瀹氭祦绋嬪崱鐨勪俊鎭�(娴佺▼鍗°�佸眰鏁般�佽惤鏋舵暟閲�)
-            //todo:钀芥灦鐜荤拑鏁颁负0锛屽嵆浣跨粦瀹氫簡娴佺▼鍗★紝涔熸棤娉曟壘鍒板搴旂殑鏋跺瓙淇℃伅锛屽彧鑳介噸鏂扮粦瀹�
+            //钀芥灦鐜荤拑鏁颁负0锛屽嵆浣跨粦瀹氫簡娴佺▼鍗★紝涔熸棤娉曟壘鍒板搴旂殑鏋跺瓙淇℃伅锛屽彧鑳介噸鏂扮粦瀹�
             List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationFlowCard(workList);
             List<String> downGlassFlowList = downGlassInfoDTOList.stream().map(item -> item.getFlowCardId() + ":" + item.getLayer()).collect(Collectors.toList());
             if (CollectionUtils.isEmpty(downGlassFlowList)) {
@@ -436,6 +473,7 @@
                 break loop;
             }
             //灏嗙瀛愬唴鐨勭幓鐠冭繘琛岃繃婊わ紝浠呰幏鍙栨棤娉曡惤鏋剁殑娴佺▼鍗$幓鐠�
+            //tao:褰撴湁绌烘灦鏃朵紭鍏堝绗煎唴鍙嚭鐗囦笖鏈粦鏋跺瓙鐨勭幓鐠冭繘鍑虹粦鏋跺苟鍑虹墖
             List<DownStorageCageDetails> noDownLoadList = list.stream().filter(item -> !downGlassFlowList.contains(item.getFlowCardId() + ":" + item.getLayer()))
                     .collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(noDownLoadList)) {
@@ -456,7 +494,7 @@
                 return Boolean.FALSE;
             }
             //灏嗙鍐呯幓鐠冪殑娴佺▼鍗�+灞傚彿 鍜岃惤鏋剁殑娴佺▼鍗� 鍘婚噸锛屽緱鍑哄睍绀烘棤娉曡惤鏋剁殑鐜荤拑锛屽垽鏂幓鐠冩暟鏄惁瓒呰繃闃堝��
-            //绗煎唴鐜荤拑鏄惁鍙惤鏋�:绗煎唴鏄惁鏈夐渶瑕佷腑绌虹殑
+            //绗煎唴鐜荤拑鏄惁鍙惤鏋�:绗煎唴鏄惁鏈夐渶瑕佷腑绌�
             List<DownStorageCageDetails> multiLayerList = list.stream().filter(item -> item.getTotalLayer() >= 2).collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(multiLayerList)) {
                 for (DownStorageCageDetails item : multiLayerList) {
@@ -473,7 +511,7 @@
                         break loop;
                     }
                     Integer sequence = downGlassInfoService.queryMaxSequence(item.getFlowCardId(), item.getLayer());
-                    log.info("鑾峰彇褰撳墠鐜荤拑闇�瑕佹斁鐨勬搴忥細绗煎唴鍚屾祦绋� 鍚屽眰鏁扮殑閫氳揪娆″簭+1:{}", sequence);
+                    log.info("鑾峰彇褰撳墠鐜荤拑闇�瑕佹斁鐨勬搴忥細绗煎唴鍚屾祦绋� 鍚屽眰鏁扮殑钀芥灦娆″簭+1:{}", sequence);
                     DownGlassInfo downGlassInfo = downGlassInfoService.getOne(new LambdaQueryWrapper<DownGlassInfo>()
                             .eq(DownGlassInfo::getFlowCardId, downGlassInfoDTO.getFlowCardId())
                             .eq(DownGlassInfo::getLayer, downGlassInfoDTO.getLayer()).eq(DownGlassInfo::getSequence, sequence));
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 eeecbbd..38bf52e 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
@@ -129,6 +129,16 @@
         JSONObject jsonObject4 = new JSONObject();
         jsonObject4.append("downGlassInfos", listMap);
         jsonObject4.append("engineerIdList", engineerIdList);
+
+        //閽㈠寲寮�鍏�
+        boolean autoPrint = false;
+        if (redisUtil.getCacheObject("autoPrint") == null) {
+            redisUtil.setCacheObject("autoPrint", false);
+        } else {
+            autoPrint = redisUtil.getCacheObject("autoPrint");
+        }
+        jsonObject4.append("autoPrint", autoPrint);
+
         ArrayList<WebSocketServer> sendwServer4 = WebSocketServer.sessionMap.get("unloadglass");
         if (sendwServer4 != null) {
             for (WebSocketServer webserver : sendwServer4) {
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.json
deleted file mode 100644
index de826b1..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.json
+++ /dev/null
@@ -1,144 +0,0 @@
-{
-	"plcAddressBegin": "DB11.0",
-	"plcAddressLenght": "100",
-	"dataType": "word",
-	"parameteInfor": [
-
-		{
-			"codeId": "requestWord",
-			"addressIndex": "0",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "requestID",
-			"addressIndex": "2",
-			"addressLenght": "20"
-		},
-		{
-			"codeId": "currentCell",
-			"addressIndex": "32",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "glassStatus08",
-			"addressIndex": "36",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G06_glass_status",
-			"addressIndex": "40",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G11_glass_status",
-			"addressIndex": "42",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G13_glass_status",
-			"addressIndex": "44",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G04_error_status",
-			"addressIndex": "48",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G05_error_status",
-			"addressIndex": "50",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G06_error_status",
-			"addressIndex": "52",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "robot_error_status",
-			"addressIndex": "54",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G08_error_status",
-			"addressIndex": "56",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G09_error_status",
-			"addressIndex": "58",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G10_error_status",
-			"addressIndex": "60",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G11_error_status",
-			"addressIndex": "62",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "robot_error_status",
-			"addressIndex": "64",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G13_error_status",
-			"addressIndex": "66",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "confirmationWord",
-			"addressIndex": "72",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G06_prohibit_film_production",
-			"addressIndex": "74",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G11_prohibit_film_production",
-			"addressIndex": "76",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "G13_prohibit_film_production",
-			"addressIndex": "78",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "Glass_width",
-			"addressIndex": "82",
-			"addressLenght": "4"
-		},
-		{
-			"codeId": "Glass_height",
-			"addressIndex": "86",
-			"addressLenght": "4"
-		},
-		{
-			"codeId": "Glass_thickness",
-			"addressIndex": "90",
-			"addressLenght": "4"
-		},
-		{
-			"codeId": "Start_cell",
-			"addressIndex": "94",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "End_cell",
-			"addressIndex": "96",
-			"addressLenght": "2"
-		},
-		{
-			"codeId": "task_type",
-			"addressIndex": "98",
-			"addressLenght": "2"
-		}
-
-	]
-}
\ No newline at end of file

--
Gitblit v1.8.0