From 03baf3dc978f9e71d9e96a45978a42b932fbd505 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期五, 27 九月 2024 09:53:56 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 UI-Project/src/views/GlassStorage/rawfilmstorage.vue                                                                                         |  262 ++++++++++------
 UI-Project/src/views/Identify/identify.vue                                                                                                   |    4 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/entity/RawGlassStorageStation.java                  |   11 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java |   47 +-
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/RawGlassStorageStationService.java          |   11 
 hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java                                  |   52 +-
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java                                            |   46 +-
 UI-Project/src/views/Caching/cachingun.vue                                                                                                   |    2 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/request/RawGlassRequest.java                 |    5 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java     |    1 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java    |   49 +-
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/impl/RawGlassStorageStationServiceImpl.java |   15 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/controller/RawGlassStorageStationController.java    |   30 +
 UI-Project/src/views/StockBasicData/stockBasicData.vue                                                                                       |    4 
 UI-Project/src/lang/zh.js                                                                                                                    |    1 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java |    6 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/mapper/RawGlassStorageStationMapper.java            |    4 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/RawGlassStorageStationMapper.xml                                |    4 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java                                                 |    4 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java                                           |    3 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassPushMessage.java                                        |   54 +++
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java          |   21 
 UI-Project/src/views/Slicecage/slicecage.vue                                                                                                 |    4 
 /dev/null                                                                                                                                    |   56 ---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java                                        |   20 +
 UI-Project/src/views/PurchaseReturn/purchaseReturn.vue                                                                                       |  128 +++++++-
 26 files changed, 522 insertions(+), 322 deletions(-)

diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
index 0aec075..4f2483f 100644
--- a/UI-Project/src/lang/zh.js
+++ b/UI-Project/src/lang/zh.js
@@ -525,6 +525,7 @@
         startslot:'寮�濮嬪伐浣�',
         endslot:'鐩爣宸ヤ綅',
         slotid:'鏍煎瓙ID',
+        slot:'鏍煎瓙鍙�',
         width:'鍘熺墖瀹�',
         widtha:'鍘熺墖瀹斤細',
         inwidth:'璇疯緭鍏ュ師鐗囧',
diff --git a/UI-Project/src/views/Caching/cachingun.vue b/UI-Project/src/views/Caching/cachingun.vue
index 8e0a488..6926803 100644
--- a/UI-Project/src/views/Caching/cachingun.vue
+++ b/UI-Project/src/views/Caching/cachingun.vue
@@ -102,7 +102,7 @@
         glassId: row.glass_id,
         state: 9,
         line: 1001,
-        workingProcedure: '纾ㄨ竟鍓嶇悊鐗囩',
+        workingProcedure: '纾ㄨ竟',
     })
     if (response.code === 200) {
       ElMessage.success(response.message);
diff --git a/UI-Project/src/views/GlassStorage/rawfilmstorage.vue b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
index f78f2ff..aa09737 100644
--- a/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
+++ b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
@@ -17,46 +17,81 @@
 const dialogFormVisiblea = ref(false)
 const dialogFormVisibleb = ref(false)
 const dialogFormVisiblec = ref(false)
-const timeRange = ref(["2022-01-01", "2025-01-01"])
+const timeRange = ref(["2022-01-01 00:00:00", "2025-01-01 00:00:00"])
 const selectValuesa = reactive([]);
-let webSocket: WebSocket | null = null;  
+  const patternWidth = ref('');
+  const patternHeight = ref('');
+  const patternThickness = ref('');
+  const filmsId = ref('');
+  const remainQuantity = ref('');
+  const slot = ref('');
+  let webSocket: WebSocket | null = null;  
 const value = ref('')
 const options = [
   {
-    value: t('film.warehousing1'),
+    value: 1,
     label: t('film.warehousing1'),
   },
   {
-    value: t('film.warehousing2'),
+    value: 2,
     label: t('film.warehousing2'),
   }
 ]
 const report = ref({
-  enableType: '',
-  enableState: '',
+  taskType: '',
+  taskState: '',
 });
+request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest",{
+      beginDate: "2022-01-01 00:00:00",
+      endDate: "2025-01-01 00:00:00",
+}).then((response) => {
+          if (response.code == 200) {
+            tableDataa.value = response.data
+            console.log(tableDataa.value);
+          } else {
+          ElMessage.warning(response.msg)
+        
+          }
+          });
 onMounted(() => {
+  // closeWebSocket();
+  debugger
+  // console.log("--------------webSocket")
     socket = initializeWebSocket(socketUrl, handleMessage);
 });
-  onUnmounted(() => {
-    if (socket) {
-    closeWebSocket(socket);
-    }
-    });
+ 
 let socket = null;
 const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`;
 const handleMessage = (data) => {
   if(data.tasks !=null){
   tableDataa.value = data.tasks[0]
-  console.log(data.tasks[0]);
-  
   }
-  if(data.rack !=null){
-  tableDatab.value = data.rack[0]
+  if(data.rawStationDetailsList !=null){
+  tableDatab.value = data.rawStationDetailsList[0]
+  }
+};
+// 淇敼鏁伴噺
+const handleConfirmb = async () => {
+  let slotId = window.localStorage.getItem('slotId')
+  try {
+    const response = await request.post('/glassStorage/rawGlassStorageDetails/updateQuantity', {
+      slotId: slotId,
+      remainQuantity: remainQuantity.value,
+  }
+  ); 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      dialogFormVisiblec.value = false;
+      tableDatab.value = response.data;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
   }
 };
   // 鍒犻櫎 
- const opena = async(row) => {  
+ const deleteWarehousing = async(row) => {  
   try {
     const confirmResult = await ElMessageBox.confirm(  
       t('film.dedelete'), 
@@ -68,7 +103,10 @@
       } 
     );
     if (confirmResult === 'confirm') {
-      const response = await request.post("/loadGlass/sys/user/deleteUser",  [row.id])
+      
+    var url="/glassStorage/rawGlassStorageDetails/deleteWarehousing?slotId="+row.slotId;
+    const response = await request.post(url)
+      // const response = await request.post("/glassStorage/rawGlassStorageDetails/deleteWarehousing",[row.slotId])
     if (response.code === 200) {
       ElMessage.success(response.message);
       } else {
@@ -79,30 +117,7 @@
     console.error('鍙戠敓閿欒:', error);  
   }  
 };  
-  // 绂佺敤 
-  const openb = async(row) => {  
-  try {
-    const confirmResult = await ElMessageBox.confirm(  
-      t('film.dedisable'), 
-      t('productStock.prompt'),  
-      {  
-        confirmButtonText: t('productStock.yes'), 
-        cancelButtonText: t('productStock.cancel'),
-        type: 'warning',  
-      } 
-    );
-    if (confirmResult === 'confirm') {
-      const response = await request.post("/loadGlass/sys/user/deleteUser",  [row.id])
-    if (response.code === 200) {
-      ElMessage.success(response.message);
-      } else {
-      ElMessage.error(response.msg);
-      }  
-    }  
-  } catch (error) {
-    console.error('鍙戠敓閿欒:', error);  
-  }  
-}; 
+
   // 鍑哄簱 
   const openc = async(row) => {  
   try {
@@ -116,12 +131,14 @@
       } 
     );
     if (confirmResult === 'confirm') {
-      const response = await request.post("/loadGlass/sys/user/deleteUser",  [row.id])
+      var url="/glassStorage/rawGlassStorageDetails/outWarehousing?slotId="+row.slotId;
+      const response = await request.post(url)
+      // const response = await request.post("/glassStorage/rawGlassStorageDetails/outWarehousing",[row.slotId])
     if (response.code === 200) {
       ElMessage.success(response.message);
       } else {
       ElMessage.error(response.msg);
-      }  
+      }   
     }  
   } catch (error) {
     console.error('鍙戠敓閿欒:', error);  
@@ -141,45 +158,74 @@
       stateList=[selectValuesa[1]];
     }
   }
-  const response = await request.post("/glassStorage/raw_glass_storage_task/selectRawglasstask", {
-    createTime: timeRange.value[0],
-    patternQuantity: timeRange.value[1],
-    enableType: stateList,
-    enableState: celllist
+  const response = await request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest", {
+    beginDate: timeRange.value[0],
+    endDate: timeRange.value[1],
+    taskState: stateList,
+    taskType: celllist
   })
   if (response.code === 200) {
-    tableDataa.value = response.data;
+    // tableDataa.value = response.data;
     ElMessage.success(response.message);
   } 
   else {
     ElMessage.error(response.message);
   }
 };
+// 鍏ュ簱 
+const handleConfirma = async () => {
+  try {
+    const response = await request.post('/glassStorage/rawGlassStorageDetails/patternWarehousing', {
+      patternWidth: patternWidth.value,
+      patternHeight: patternHeight.value,
+      patternThickness: patternThickness.value,
+      filmsId: filmsId.value,
+      remainQuantity: remainQuantity.value,
+      slotId: slot.value,
+    }); 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      dialogFormVisibleb.value = false;
+      patternWidth.value = '';
+      patternHeight.value = '';
+      patternThickness.value = '';
+      filmsId.value = '';
+      remainQuantity.value = '';
+      slot.value = '';
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+};
 // 鏄惁绂佺敤
-const toggleEnableState = async (row: any) => {  
+const toggleEnableState = async (row: any) => {
   if (!row.deviceId) {  
     ElMessage.error(t('basicData.updatanull'));  
     return;
   }  
-  const newState = row.enableState === 1 ? 0 : 1;  
-  try {  
-    // 鍙戦�佽姹傚埌鍚庣鏇存柊鐘舵��  
-    const response = await request.post('/glassStorage/rawGlassStorageDetails/updateEnableState', { deviceId: row.deviceId, enableState: newState });  
+  const newState = row.state === 1 ? 0 : 1;
+  try {
+    var url="/glassStorage/rawGlassStorageStation/updateSlotState?slot="+row.deviceId + "&state=" + newState;
+    const response = await request.post(url)
     if (response.code === 200) {  
       ElMessage.success(response.message);  
-      row.enableState = newState;  
+      row.state = newState;  
     } else {  
       ElMessage.error(response.message);  
     }  
-  } catch (error) {
+  row.state = newState;   
+} catch (error) {
     ElMessage.error(t('basicData.glassnull'));   
   }  
 }; 
 const handleEdit = (row) => {
+  window.localStorage.setItem('slotId', row.slotId)
   dialogFormVisiblec.value = true;
 };
-function getStatusType1(enableType) {  
-switch (enableType) {  
+function getStatusType1(taskType) {  
+switch (taskType) {  
   case 1:  
     return 'info';  
   case 2:  
@@ -188,8 +234,8 @@
     return 'success';  
 }  
 }
-function getStatusText1(enableType) {  
-switch (enableType) {
+function getStatusText1(taskType) {  
+switch (taskType) {
   case 1:  
     return t('film.stocke');//鍏ュ簱
   case 2:  
@@ -198,8 +244,8 @@
   return t('film.dispatch');//璋冨害
 }  
 }
-function getStatusType2(enableState) {  
-switch (enableState) {  
+function getStatusType2(taskState) {  
+switch (taskState) {  
   case 1:  
     return 'info';  
   case 2:  
@@ -208,8 +254,8 @@
     return 'success';  
 }  
 }
-function getStatusText2(enableState) {  
-switch (enableState) {
+function getStatusText2(taskState) {  
+switch (taskState) {
   case 1:  
     return t('film.built');//鏂板缓
   case 2:  
@@ -218,6 +264,11 @@
   return t('film.finish');//瀹屾垚
 }  
 }
+// onUnmounted(() => {
+//     if (socket) {
+//     closeWebSocket(socket);
+//     }
+//     });
 onBeforeUnmount(() => {
   closeWebSocket();
 }); 
@@ -227,8 +278,12 @@
   <div style="display: flex; flex-direction: row; align-items: center; margin-top: 20px;">  
     <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="dialogFormVisiblea = true">{{ $t('film.mes') }}</el-button>
   <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="dialogFormVisibleb = true">{{ $t('film.warehousing') }}</el-button>
-    <el-date-picker style="margin-left: 10px;"  v-model="timeRange" type="daterange" format="YYYY/MM/DD" value-format="YYYY-MM-DD"
-      :start-placeholder="$t('film.starttime')" :end-placeholder="$t('film.endtime')" :default-time="defaultTime" />
+    <el-date-picker style="margin-left: 10px;"  v-model="timeRange" type="datetimerange"
+        format="YYYY/MM/DD HH:mm:ss"  
+        value-format="YYYY-MM-DD HH:mm:ss"
+        :start-placeholder="$t('film.starttime')" 
+        :end-placeholder="$t('film.endtime')" 
+        :default-time="defaultTime" />
     <el-select v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')" style="margin-left: 10px;" >
       <el-option :label="$t('film.built')" value="1"></el-option>
       <el-option :label="$t('film.execution')" value="2"></el-option>
@@ -245,29 +300,29 @@
       <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
         <el-table height="300" ref="table"
         :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="enableId" align="center" :label="$t('film.enableid')"/>
+          <el-table-column prop="id" align="center" :label="$t('film.enableid')"/>
           <el-table-column prop="originateSlot" align="center" :label="$t('film.originateslot')"/>
           <el-table-column prop="endSlot" align="center" :label="$t('film.endslot')"/>
           <el-table-column prop="patternQuantity" align="center" :label="$t('film.patternquantity')"/>
           <el-table-column
           align="center"
           :label="$t('film.enabletype')"
-          prop="enableType"
+          prop="taskType"
         >
         <template #default="scope">  
-      <el-tag :type="getStatusType1(scope.row.enableType)">  
-        {{ getStatusText1(scope.row.enableType) }}
+      <el-tag :type="getStatusType1(scope.row.taskType)">  
+        {{ getStatusText1(scope.row.taskType) }}
       </el-tag>  
     </template> 
         </el-table-column>
         <el-table-column
           align="center"
-          :label="$t('film.enablestate')"
-          prop="enableState"
+          :label="$t('film.taskstatus')"
+          prop="taskState"
         >
         <template #default="scope">  
-      <el-tag :type="getStatusType2(scope.row.enableState)">  
-        {{ getStatusText2(scope.row.enableState) }}
+      <el-tag :type="getStatusType2(scope.row.taskState)">  
+        {{ getStatusText2(scope.row.taskState) }}
       </el-tag>  
     </template> 
         </el-table-column>
@@ -284,6 +339,7 @@
     <el-table  ref="table" style="margin-top: 20px;height: 700px;"
         :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="deviceId" fixed align="center" :label="$t('film.station')" min-width="80"/>
+          <el-table-column prop="slotId" fixed align="center" :label="$t('film.slot')" min-width="80"/>
           <el-table-column prop="patternWidth" align="center" :label="$t('film.width')"  min-width="80" />
           <el-table-column prop="patternHeight" align="center" :label="$t('film.height')" min-width="80" />
           <el-table-column prop="patternThickness" align="center" :label="$t('film.thickness')" min-width="80" />
@@ -293,36 +349,36 @@
           align="center"
             :label="$t('film.enablestate')"
             min-width="80"
-            prop="enablestate"
+            prop="state"
           >
           <template #default="scope">  
           <el-tag  
-            :type="scope.row.enableState == 1 ? 'success' : 'danger'"  
+            :type="scope.row.state == 1 ? 'success' : 'danger'"  
             @click="toggleEnableState(scope.row)"  
             >  
-            {{ scope.row.enableState == 1 ? $t('film.start') : $t('film.disable')}}  
+            {{ scope.row.state == 1 ? $t('film.start') : $t('film.disable')}}  
           </el-tag>  
         </template> 
           </el-table-column>
           <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="270">
             <template #default="scope">
               <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('film.exit') }}</el-button>
-              <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('film.delete') }}</el-button>
+              <el-button size="mini" type="text" plain @click="deleteWarehousing(scope.row)">{{ $t('film.delete') }}</el-button>
               <el-button size="mini" type="text" plain @click="openc(scope.row)">{{ $t('film.outbound') }}</el-button>
             </template>
         </el-table-column>
         </el-table>
 </el-dialog>
-<el-dialog v-model="dialogFormVisibleb" top="15vh" width="60%">
-  <div style="margin-top: 10px;margin-bottom: 10px;">
-      <el-form size="mini" label-width="150px">
-      <el-form label-width="70vm" label-position="right">
-        <el-row >
+<el-dialog v-model="dialogFormVisibleb" top="23vh" width="55%" :title="$t('basicData.addglass')" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form label-width="100px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
           <el-col :span="6">
               <div id="dt" style="font-size: 15px;">
         <div>
           <el-form-item :label="$t('film.widtha')" :required="true" style="width: 17vw;">
-                <el-input :placeholder="$t('film.inwidth')" v-model="number" autocomplete="off" />
+                <el-input :placeholder="$t('film.inwidth')" v-model="patternWidth" autocomplete="off" />
               </el-form-item>
               </div></div>
           </el-col>
@@ -330,7 +386,7 @@
             <div id="dta" style="font-size: 15px;">
         <div>
           <el-form-item :label="$t('film.heighta')" :required="true" style="width: 17vw;">
-                <el-input :placeholder="$t('film.inheight')" v-model="number" autocomplete="off" />
+                <el-input :placeholder="$t('film.inheight')" v-model="patternHeight" autocomplete="off" />
               </el-form-item></div>
               </div>
           </el-col>
@@ -340,14 +396,14 @@
               <div id="dt" style="font-size: 15px;">
         <div>
           <el-form-item :label="$t('film.thicknessa')" :required="true" style="width: 17vw;">
-                <el-input :placeholder="$t('film.inthickness')" v-model="number" autocomplete="off" />
+                <el-input :placeholder="$t('film.inthickness')" v-model="patternThickness" autocomplete="off" />
               </el-form-item></div></div>
           </el-col>
           <el-col :span="9">
             <div id="dta" style="font-size: 15px;">
         <div>
           <el-form-item :label="$t('film.filmsa')" :required="true" style="width: 17vw;">
-                <el-input :placeholder="$t('film.infilms')" v-model="number" autocomplete="off" />
+                <el-input :placeholder="$t('film.infilms')" v-model="filmsId" autocomplete="off" />
               </el-form-item></div></div>
           </el-col>
         </el-row>
@@ -355,24 +411,26 @@
           <el-col :span="6">
               <div id="dt" style="font-size: 15px;">
         <div>
-              <el-form-item :label="$t('film.quantitya')" :required="true" style="width: 17vw;">
-                <el-input :placeholder="$t('film.inquantity')" v-model="number" autocomplete="off" />
+          <el-form-item :label="$t('film.quantitya')" :required="true" style="width: 17vw;">
+                <el-input :placeholder="$t('film.inquantity')" v-model="remainQuantity" autocomplete="off" />
               </el-form-item></div></div>
           </el-col>
           <el-col :span="9">
             <div id="dta" style="font-size: 15px;">
         <div>
           <el-form-item :label="$t('film.inwarehousing')" :required="true" style="width: 17vw">
-            <el-select :placeholder="$t('film.selectwarehousing')">
-      <el-option
-        v-for="item in options"
-        :key="item.value"
-        :label="item.label"
-        :value="item.value"
-      />
+            <el-select 
+            :placeholder="$t('film.selectwarehousing')"
+             style="width: 270px"  
+             v-model="slot">
+               <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
           </el-select>
-              </el-form-item></div>
-              </div>
+              </el-form-item></div></div>
           </el-col>
         </el-row>
         </el-form>
@@ -380,26 +438,26 @@
           </div>
     <template #footer>
       <div id="dialog-footer">
-        <el-button type="primary" @click="handleConfirm">
+        <el-button type="primary" @click="handleConfirma">
           {{ $t('basicData.confirm') }}
         </el-button>
         <el-button @click="dialogFormVisibleb = false">{{ $t('basicData.cancel') }}</el-button>
       </div>
     </template>
-</el-dialog>
+  </el-dialog>
 <el-dialog v-model="dialogFormVisiblec" top="21vh" width="40%">
     <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
       <el-form size="mini" label-width="100px">
         <el-form label-width="210px" label-position="right">
           <el-form-item :label="$t('film.thickremainquantity')" :required="true" style="width: 25vw">
-            <el-input v-model="workstationId" autocomplete="off" />
+            <el-input v-model="remainQuantity" autocomplete="off" />
           </el-form-item>
         </el-form>
       </el-form>
     </div>
     <template #footer>
       <div id="dialog-footer">
-        <el-button type="primary" @click="handleConfirm">
+        <el-button type="primary" @click="handleConfirmb">
           {{ $t('reportWork.sure') }}
         </el-button>
         <el-button @click="dialogFormVisiblec = false">{{ $t('reportWork.cancel') }}</el-button>
diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue
index 68220a4..e785987 100644
--- a/UI-Project/src/views/Identify/identify.vue
+++ b/UI-Project/src/views/Identify/identify.vue
@@ -97,7 +97,7 @@
     glassId: currentGlassId.value,
     state: 8,
     line: 1001,
-    workingProcedure: '璇嗗埆',
+    workingProcedure: '鍒囧壊',
     })
     if (response.code == 200) {
       ElMessage.success(response.message);
@@ -125,7 +125,7 @@
     glassId: currentGlassId.value,
     state: 9,
     line: 1001,
-    workingProcedure: '璇嗗埆',
+    workingProcedure: '鍒囧壊',
     })
     if (response.code == 200) {
       // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index 3ed3f1f..705f206 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -152,13 +152,15 @@
     adjustedRects2.value = []
   }
   // 杩涚倝涓乏
-  if (data.intoGlass && data.intoGlass.length > 0) {  
-    const newGlassIds = new Set(data.intoGlass[0].map(rect => rect.glassId));  
-    const existingRects = adjustedRects1.value.filter(rect => newGlassIds.has(rect.glassId));  
-    const newRects = data.intoGlass[0].map(rect => {  
-      const scaleFactor =  810.89/5087; 
-      const scaleFactorY =  430/2800; 
-      let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
+  if (data.intoGlass && data.intoGlass.length > 0) {
+    console.log(data.intoGlass);
+    
+    const newGlassIds = new Set(data.intoGlass[0].map(rect => rect.glassId));
+    const existingRects = adjustedRects1.value.filter(rect => newGlassIds.has(rect.glassId));
+    const newRects = data.intoGlass[0].map(rect => {
+      const scaleFactor =  810.89/5087;
+      const scaleFactorY =  430/2800;
+      let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;
       let newX = rect.yCoordinate; 
       if (rect.width < rect.height) {
         widtha = rect.height;
@@ -199,7 +201,7 @@
       return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍�  
     }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId)));  
   }  
-  else if (data.overGlass == null) {
+  else {
     adjustedRects1.value = []
   }
   if (data.waitingGlass && data.waitingGlass.length > 0) {  
@@ -325,7 +327,21 @@
       rect.state = 9;
     }
   });  
-}  
+} 
+function updateoutColorsc() {
+  adjustedRects1.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = 9;
+    }
+  });  
+}
+function updateoutColorsd() {
+  adjustedRects2.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = 9;
+    }
+  });  
+} 
 function updateonColorsa() {
   adjustedRectsa.value.forEach(rect => {  
     if (rect.glassId === glassId) {  
@@ -367,8 +383,28 @@
       rect.state = 8;
     }
   });  
-}  
-function getRectColora(state) {  
+}
+function getRectColor1(state) {
+  switch (state) {  
+    case 2:  
+      return 'lightblue';
+    case 8:
+      return '#911005';
+    case 9:
+      return '#4682B4';
+  }
+} 
+function getRectColor2(state) {
+  switch (state) {  
+    case 2:  
+      return 'lightblue';
+    case 8:
+      return '#911005';
+    case 9:
+      return '#4682B4';
+  }
+}
+function getRectColora(state) {
   switch (state) {  
     case 0:  
       return '#7AC5CD';
@@ -408,6 +444,11 @@
   } else if (currentRect.value.state !== 8) {
     canSelectProject1.value = true;
   }
+  if (currentRect.value.state == 9) {
+    cantakea.value = false;
+  } else if (currentRect.value.state !== 9) {
+    cantakea.value = true;
+  } 
 } 
 function showDialog2(rect) {
   const index = adjustedRects2.value.findIndex(r => r.glassId === rect.glassId);  
@@ -422,6 +463,11 @@
     canSelectProject2.value = false;
   } else if (currentRect.value.state !== 8) {
     canSelectProject2.value = true;
+  }
+  if (currentRect.value.state == 9) {
+    cantakea.value = false;
+  } else if (currentRect.value.state !== 9) {
+    cantakea.value = true;
   }
 } 
 function showDialoga(rect) {
@@ -613,6 +659,52 @@
     console.error(error);
   }
 }
+// 杩涚倝涓汉宸ユ嬁璧�
+const takeoutc = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    line: 4001,
+    status: 9,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success('鎴愬姛锛�');
+      blind1.value = false;
+      updateoutColorsc();
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+}
+// 杩涚倝zhong浜哄伐鎷胯蛋
+const takeoutd = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    line: 4001,
+    status: 9,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success('鎴愬姛锛�');
+      blind2.value = false;
+      updateoutColorsd();
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+}
 // 宸插嚭鐐夌牬鎹�
 const handleDamageb = async () => {
   try  {
@@ -711,8 +803,7 @@
        left: `${rect.xcoordinate}px`,
         width: `${rect.width}px`, 
         height: `${rect.height}px`,
-        backgroundColor: rect.isActive ? '#ADFF2F' : rect.state === 8 ? '#911005' : 'lightblue' }"
-    >
+        backgroundColor: rect.isActive ? '#ADFF2F' : getRectColor1(rect.state) }">
      <div  class="centered-text">
     <div style="font-size: 15px;font-weight: bold;">{{ rect.glassId }}</div>  
     <div style="font-size: 15px;font-weight: bold;">{{ rect.flowCardId }}</div>  
@@ -739,8 +830,7 @@
        left: `${rect.xcoordinate}px`, 
        width: `${rect.width}px`, 
        height: `${rect.height}px`,
-       backgroundColor: rect.isActive ? '#ADFF2F' : rect.state === 8 ? '#911005' : 'lightblue' }"
-       >
+        backgroundColor: rect.isActive ? '#ADFF2F' : getRectColor2(rect.state) }">
      <div  class="centered-text">
     <div style="font-size: 15px;font-weight: bold;">{{ rect.glassId }}</div>  
     <div style="font-size: 15px;font-weight: bold;">{{ rect.flowCardId }}</div>  
@@ -842,11 +932,19 @@
         <el-button :disabled="!canSelectProject1" type="warning" plain :icon="Delete" @click="handleDamage1"  style="width: 150px;margin-left: 10px;">
           {{ $t('order.dilapidation') }}
         </el-button>
+        <el-button :disabled="!cantakea" type="danger" plain @click="takeoutc"  style="width: 150px;margin-left: 10px;margin-top: 10px;">
+          <el-icon class="el-icon--right"><Upload /></el-icon>
+          {{ $t('order.takeaway') }}
+        </el-button>
   </el-dialog>  
 <el-dialog v-model="blind2" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose2">
         <el-button :disabled="!canSelectProject2" type="warning" plain :icon="Delete" @click="handleDamage2"  style="width: 150px;margin-left: 10px;">
           {{ $t('order.dilapidation') }}
         </el-button>
+        <el-button :disabled="!cantakea" type="danger" plain @click="takeoutd"  style="width: 150px;margin-left: 10px;margin-top: 10px;">
+          <el-icon class="el-icon--right"><Upload /></el-icon>
+          {{ $t('order.takeaway') }}
+        </el-button>
   </el-dialog>  
   <!-- 杩涚倝鍓� -->
 <el-dialog v-model="blinda" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClosea">
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index c741d63..6e802dc 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -642,8 +642,8 @@
 const fetchFlowCardId = async () => {
   try  {
     const response = await request.post('/cacheVerticalGlass/work_assignment/selectWorkAssignment',{
-      line: 2001,
-      workingProcedure : '鍐峰姞宸�'
+      line: 4001,
+      workingProcedure : '閽㈠寲'
     })
     if (response.code == 200) {
       ElMessage.success(response.message);
diff --git a/UI-Project/src/views/StockBasicData/stockBasicData.vue b/UI-Project/src/views/StockBasicData/stockBasicData.vue
index 3c0ee64..a0d3c9e 100644
--- a/UI-Project/src/views/StockBasicData/stockBasicData.vue
+++ b/UI-Project/src/views/StockBasicData/stockBasicData.vue
@@ -84,7 +84,7 @@
         glassId: row.glassId,
         state: 8,
         line: row.line,
-        workingProcedure: '鍐峰姞宸�',
+        workingProcedure: '纾ㄨ竟',
     })
     if (response.code === 200) {
       ElMessage.success(response.message);
@@ -117,7 +117,7 @@
         glassId: row.glassId,
         state: 9,
         line: row.line,
-        workingProcedure: '鍐峰姞宸�',
+        workingProcedure: '纾ㄨ竟',
     })
     if (response.code === 200) {
       ElMessage.success(response.message);
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
index f61349b..0bd7fff 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
@@ -27,7 +27,7 @@
 @ResponseBody
 public class DamageController {
 
-    @Autowired
+    @Autowired(required=true)
     private DamageService damageService;
     @ApiOperation("鎶ュ伐鏁版嵁鏌ヨ")
     @PostMapping("/selectDamage")
@@ -44,6 +44,7 @@
     @PostMapping("/submitDamage")
     public Result submitDamage(@RequestBody List<Damage> damageList) {
         damageService.submitDamage(damageList);
+        damageList.forEach(damage -> damage.setStatus(2));
         damageService.updateBatchById(damageList);
         return Result.build(200,"鎶ュ伐鎴愬姛",1);
     }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
index d8ddacb..0113b67 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
@@ -18,8 +18,12 @@
  */
 public interface DamageService extends MPJBaseService<Damage> {
 
+    List<Damage> selectDamage(String startTime, String endTime, int type, String workingProcedure);
+
     List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure);
 
+//    List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure);
+
     void submitDamage(List<Damage> damageList);
 
     Boolean submitReport(Damage damage);
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
index 29124e4..82f96cd 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -18,6 +18,7 @@
 import com.mes.pp.entity.ReportingWorkDetail;
 import com.mes.work_assignment.entity.WorkAssignment;
 import com.mes.work_assignment.mapper.WorkAssignmentMapper;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
@@ -43,6 +44,7 @@
  * @author wu
  * @since 2024-06-13
  */
+@Slf4j
 @Service
 public class DamageServiceImpl extends MPJBaseServiceImpl<DamageMapper, Damage> implements DamageService {
 
@@ -50,6 +52,11 @@
     GlassInfoMapper glassInfoMapper;
     @Resource
     WorkAssignmentMapper workAssignmentMapper;
+
+    @Override
+    public List<Damage> selectDamage(String startTime, String endTime, int type, String workingProcedure) {
+        return null;
+    }
 
     /**
      * 鏌ヨ鎶ュ伐淇℃伅
@@ -81,7 +88,7 @@
     @Override
     public void submitDamage(List<Damage> damageList) {
         Map<String, List<Damage>> firstMap = damageList.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":"
-                + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName()));
+                + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName() + ":" + e.getOrderNumber() + ":" + e.getTechnologyNumber()));
         for (Map.Entry<String, List<Damage>> entry : firstMap.entrySet()) {
             ReportingWork reportingWork = new ReportingWork();
             List<ReportingWorkDetail> reportingWorkDetails = new ArrayList<>();
@@ -104,7 +111,7 @@
             reportingWorkDetail.setOrderNumber(damages.get(0).getOrderNumber());
             reportingWorkDetail.setCompletedQuantity(0);
             reportingWorkDetail.setBreakageQuantity(0);
-            reportingWorkDetails.add(reportingWorkDetail);
+
 
             Map<String, List<Damage>> secondMap = damages.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":"
                     + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName()));
@@ -118,6 +125,7 @@
                     reportingWork.setThisCompletedQuantity(damagesdetails.size() + reportingWork.getThisCompletedQuantity());
                 } else {
                     reportingWork.setThisWornQuantity(damagesdetails.size() + reportingWork.getThisWornQuantity());
+                    reportingWorkDetail.setBreakageQuantity(damagesdetails.size());
                     DamageDetails damageDetails = new DamageDetails();
                     damageDetails.setBreakageQuantity(damagesdetails.size());
                     damageDetails.setBreakageType(damagesdetails.get(0).getBreakageType());
@@ -129,6 +137,7 @@
                     damageDetailses.add(damageDetails);
                 }
             }
+            reportingWorkDetails.add(reportingWorkDetail);
             reportingWorkDetail.setDamageDetailsList(damageDetailses);
             sendToERP(reportingWork, reportingWorkDetails);
         }
@@ -171,6 +180,7 @@
                         .ne(Damage::getType, Const.GLASS_STATE_TAKE)
                         .eq(Damage::getLine, damage.getLine())
                         .eq(Damage::getWorkingProcedure, damage.getWorkingProcedure())
+                        .eq(Damage::getGlassId, damage.getGlassId())
         );
         if (damage1 == null || damage1.size() == 0) {
             LambdaQueryWrapper<GlassInfo> glassInfoSelectWrapper = new LambdaQueryWrapper<>();
@@ -197,6 +207,8 @@
             if (damage.getType() == 1) {
                 if (submitReport(damage)) {
                     damage.setStatus(2);
+                } else {
+                    damage.setStatus(1);
                 }
             }
             baseMapper.insert(damage);
@@ -273,6 +285,7 @@
 
     @Override
     public Boolean sendToERP(ReportingWork reportingWork, List<ReportingWorkDetail> reportingWorkDetails) {
+        log.info("鎶ュ伐鏁版嵁reportingWork锛歿}锛宺eportingWorkDetails锛歿}", reportingWork, reportingWorkDetails);
         try {
             // 鐩爣绯荤粺鐨凙PI URL
             String url = "http://192.168.1.199:8086/reportingWork/mesSaveReportingWorkWorn";
@@ -330,11 +343,10 @@
                 // 鎻愬彇 code 鍜� message
                 int code = jsonResponse.getInt("code");
                 String message = jsonResponse.getStr("data");
-
+                log.info("鎶ュ伐澶辫触锛歿},{}", code, message);
                 if (code == 200 && message.equals("true")) {
                     return true;
                 } else {
-
                     return false;
                 }
             }
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 976125e..67232f0 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
@@ -237,7 +237,6 @@
         List<Engineering> engineering=engineeringMapper.selectJoinList(Engineering.class, new MPJLambdaWrapper<Engineering>()
                 .selectAll(Engineering.class)
                 .eq(Engineering::getEngineerId,current)
-                .gt(Engineering::getState,0)
         );
         if(engineering.size()==0){
             log.info("褰撳墠宸ョ▼鍙锋湭棰嗗彇杩�:{}",current);
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
index 47b23c2..8a73f9e 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -211,9 +211,9 @@
         bigStorageCageService.updateRemainWidth(bigStorageCageDetails.getSlot());
         damage.setGlassId(bigStorageCageDetails.getGlassId());
         damage.setWorkingProcedure("閽㈠寲");
-        damage.setLine(3001);
-        damage.setRemark("澶х悊鐗囩鐮存崯");
-        damage.setStatus(2);
+        damage.setLine(4001);
+        damage.setRemark("澶х悊鐗囩");
+        damage.setStatus(1);
         damageService.insertDamage(damage);
     }
 
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassPushMessage.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassPushMessage.java
new file mode 100644
index 0000000..6e7d874
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassPushMessage.java
@@ -0,0 +1,54 @@
+package com.mes.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.json.JSONObject;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglassstation.service.RawGlassStorageStationService;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import com.mes.rawglasstask.service.RawGlassStorageTaskService;
+import com.mes.tools.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author wangfei
+ */
+@Slf4j
+@Component
+public class RawGlassPushMessage {
+
+  @Resource private RawGlassStorageStationService rawGlassStorageStationService;
+
+  @Resource private RawGlassStorageTaskService rawGlassStorageTaskService;
+
+  @Scheduled(fixedDelay = 2000)
+  public void sendRawGlassMessage() {
+    log.info("鍙戦�佷换鍔′俊鎭拰鏋跺瓙淇℃伅");
+    JSONObject jsonObject = new JSONObject();
+    List<RawGlassStorageDetails> rawStationDetailsList =
+        rawGlassStorageStationService.listRawGlassDetails();
+    List<RawGlassStorageTask> tasks = rawGlassStorageTaskService.listRawGlassTask();
+    jsonObject.append("rawStationDetailsList", rawStationDetailsList);
+    jsonObject.append("tasks", tasks);
+//    log.info("鑾峰彇鍒扮殑宸ヤ綅璇︽儏鍙婁换鍔′俊鎭负锛歿}", jsonObject);
+
+    List<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("rawGlass");
+    if (CollectionUtil.isNotEmpty(sendwServer)) {
+      sendwServer.stream().forEach(e->{
+        e.sendMessage(String.valueOf(jsonObject));
+      });
+    }
+
+
+  }
+
+  /** todo:鍏ュ簱浠诲姟锛氬悐瑁呬綅鏈夌幓鐠冿紝鍏堝幓宸ヤ綅琛ㄦ煡璇㈢┖鏍煎瓙锛岀敓鎴愬叆搴撲换鍔′粠鍚婅浣嶅埌鐩爣鏍煎瓙 */
+
+  /** todo:鍑哄簱浠诲姟锛�1銆佺偣鍑哄簱锛岀珛椹敓鎴愬嚭鐗囦换鍔� 2銆佺偣鍑哄簱淇敼宸ヤ綅璇︽儏鍐呯殑鐘舵�佷负寰呭嚭搴擄紝瀹氭椂浠诲姟鎵弿鐢熸垚鍑哄簱浠诲姟 */
+
+  /** todo:鍘熺墖璋冨害锛�1銆佹煡璇㈠伐绋嬪師鐗囪〃锛屾寜鐓ч『搴忓皢鍘熺墖鏀惧叆涓婄墖1鍙蜂綅锛屽悗缁師鐗囨斁涓婄墖2鍙蜂綅锛屽嚭鐜板昂瀵告浛鎹紝鍒ゆ柇鍘熶笂鐗囦綅鏄惁鏈夌幓鐠冿紝鏈� 鍏堝嚭鍚庤繘锛屾棤 鐩存帴杩涚墖 */
+}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java
deleted file mode 100644
index d3970d5..0000000
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.mes.job;
-
-import cn.hutool.json.JSONObject;
-import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
-import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
-import com.mes.rawglassstation.entity.RawGlassStorageStation;
-import com.mes.rawglassstation.service.RawGlassStorageStationService;
-import com.mes.rawglasstask.entity.RawGlassStorageTask;
-import com.mes.rawglasstask.service.RawGlassStorageTaskService;
-import com.mes.tools.WebSocketServer;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@Slf4j
-@Component
-public class push {
-
-    @Autowired
-    private RawGlassStorageDetailsService rawGlassStorageDetailsService;
-    @Autowired
-    private RawGlassStorageStationService rawGlassStorageStationService;
-
-    @Autowired
-    private RawGlassStorageTaskService rawGlassStorageTaskService;
-
-
-    @Scheduled(fixedDelay = 2000)
-    public void sendDownWorkstations() {
-        log.info("鍙戦�佷换鍔′俊鎭拰鏋跺瓙淇℃伅");
-        JSONObject jsonObject = new JSONObject();
-        List<RawGlassStorageDetails> rack =  rawGlassStorageDetailsService.list();
-        List<RawGlassStorageStation> state =  rawGlassStorageStationService.list();
-        //List<RawGlassStorageTask> tasks =  rawGlassStorageTaskService.list();
-        List<RawGlassStorageTask> tasks =  rawGlassStorageTaskService.findAll();
-        jsonObject.append("rack",rack);
-        jsonObject.append("state",state);
-        jsonObject.append("tasks",tasks);
-        log.info(jsonObject.toString());
-        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("rawGlass");
-        if (sendwServer != null) {
-            for (WebSocketServer webserver : sendwServer) {
-                if (webserver != null&&webserver.session.isOpen()) {
-                    log.info("宸插彂閫�");
-                    webserver.sendMessage(String.valueOf(jsonObject));
-                }
-            }
-        }
-    }
-
-
-}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java
index 7eb1bdc..aa0665f 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java
@@ -1,18 +1,19 @@
 package com.mes.rawglassdetails.controller;
 
-
+import com.mes.entity.request.GeneralRequest;
 import com.mes.rawglassdetails.entity.request.RawGlassRequest;
 import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
+import com.mes.userinfo.entity.vo.SysUserVO;
 import com.mes.utils.Result;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
- * <p>
  * 鍓嶇鎺у埗鍣�
- * </p>
  *
  * @author wf
  * @since 2024-09-10
@@ -21,27 +22,29 @@
 @RequestMapping("/rawGlassStorageDetails")
 public class RawGlassStorageDetailsController {
 
-    @Autowired
-    private RawGlassStorageDetailsService rawGlassStorageDetailsService;
-    @ApiOperation("宸ヤ綅鐘舵��")
-    @PostMapping("/updateEnableState")
-    @ResponseBody
-    public Result<Boolean> updateStatus(@RequestBody Integer enableState) {
-        boolean result = rawGlassStorageDetailsService.updateRawGlassStorageDetails(String.valueOf(enableState));
-        if (enableState == 1) {
-            return Result.build(1, "鍚敤", result);
-        } else {
-            return Result.build(0, "绂佺敤", result);
-        }
-    }
+  @Autowired private RawGlassStorageDetailsService rawGlassStorageDetailsService;
 
-    @ApiOperation("鍘熺墖鍏ュ簱")
-    @PostMapping("/patternWarehousing")
-    public Result<String> patternWarehousing(@Validated @RequestBody RawGlassRequest request) {
+  @ApiOperation("鍘熺墖鍏ュ簱")
+  @PostMapping("/patternWarehousing")
+  public Result<String> patternWarehousing(@Validated @RequestBody RawGlassRequest request) {
 
-        return Result.build(200, "鍏ュ簱宸插畬鎴愶紝绛夊緟浠诲姟鎵ц", rawGlassStorageDetailsService.patternWarehousing(request));
+    return Result.build(
+        200, "鍏ュ簱宸插畬鎴愶紝绛夊緟浠诲姟鎵ц", rawGlassStorageDetailsService.patternWarehousing(request));
+  }
+  @ApiOperation("鏇存柊鍓╀綑鏁伴噺")
+  @PostMapping("/updateQuantity")
+  public Result<Object> updateQuantity(@Validated @RequestBody RawGlassRequest request) {
+    return Result.success(rawGlassStorageDetailsService.UpdateQuantity(request));
+  }
+  @ApiOperation("鍒犻櫎鍘熺墖")
+  @PostMapping("/deleteWarehousing")
+  public Result<Object> deleteWarehousing(@RequestBody Long slotId) {
+    return Result.success(rawGlassStorageDetailsService.deleteWarehousing(slotId));
+  }
 
-    }
-
+  @ApiOperation("鍘熺墖鍑哄簱")
+  @PostMapping("/outWarehousing")
+  public Result<Object> outWarehousing(@RequestBody Long slotId) {
+    return Result.success(rawGlassStorageDetailsService.outWarehousing(slotId));
+  }
 }
-
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/request/RawGlassRequest.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/request/RawGlassRequest.java
index 8b60c17..36204b8 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/request/RawGlassRequest.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/request/RawGlassRequest.java
@@ -1,5 +1,6 @@
 package com.mes.rawglassdetails.entity.request;
 
+import com.mes.userinfo.entity.vo.SysUserVO;
 import lombok.Data;
 
 /**
@@ -8,7 +9,7 @@
  * @Description:
  */
 @Data
-public class RawGlassRequest {
+public class RawGlassRequest extends SysUserVO {
 
     /**
      * 鍘熺墖瀹�
@@ -38,5 +39,5 @@
     /**
      * 鏍呮牸鍙�
      */
-    private Integer slot;
+    private String slotId;
 }
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java
index 57237c0..e05c291 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java
@@ -1,8 +1,10 @@
 package com.mes.rawglassdetails.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.entity.request.GeneralRequest;
 import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
 import com.mes.rawglassdetails.entity.request.RawGlassRequest;
+import com.mes.userinfo.entity.vo.SysUserVO;
 
 import java.util.List;
 
@@ -14,13 +16,6 @@
 
     List<RawGlassStorageDetails> selectDetails();
 
-    /**
-     * 瑕佸ぇ鍐欒繖涓�
-     *
-     * @param films_id
-     * @return
-     */
-    boolean updateRawGlassStorageDetails(String films_id);
 
     /**
      * 鍒犻櫎琛�  鍏堝湪杩欓噷鍒�  鐒跺悗鐐归偅涓浉鍏抽棶棰�
@@ -29,12 +24,6 @@
      */
     boolean deleteRawGlassStorageDetails(String device_id);
 
-    /**
-     * 鏂板琛�
-     *
-     * @return boolean
-     */
-    boolean insertRawGlassStorageDetails(RawGlassStorageDetails rw);
 
 
     /**
@@ -44,4 +33,10 @@
      * @return
      */
     String patternWarehousing(RawGlassRequest request);
+
+    String UpdateQuantity(RawGlassRequest request);
+
+    String deleteWarehousing(Long slotId);
+
+    String outWarehousing(Long slotId);
 }
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
index a71cc7f..8be12b1 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
@@ -1,17 +1,20 @@
 package com.mes.rawglassdetails.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.common.config.Const;
 import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
 import com.mes.rawglassdetails.entity.request.RawGlassRequest;
 import com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper;
 import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
+import com.mes.rawglassstation.entity.RawGlassStorageStation;
+import com.mes.userinfo.entity.vo.SysUserVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -21,18 +24,8 @@
 @Service
 @Slf4j
 public class RawGlassStorageDetailsServiceImpl extends ServiceImpl<RawGlassStorageDetailsMapper, RawGlassStorageDetails> implements RawGlassStorageDetailsService {
-
-    @Override
-    public boolean updateRawGlassStorageDetails(String films_id) {
-        UpdateWrapper<RawGlassStorageDetails> wrapper = new UpdateWrapper<>();  //杩欎釜绫诲瀷瀹氫箟閿欎簡锛屼笉搴旇鏄痶asking
-        wrapper.set("films_id", "1005")
-                .eq("films_id", films_id);
-
-        return update(wrapper);//杩欎釜鏂规硶榛樿杩斿洖鐨勫氨鏄痓ool绫诲瀷 鎵�鏈夊彲浠ョ洿鎺eturn杩欎釜鏂规硶锛宱k浜嗭紝浣犳甯稿垱寤烘柟娉曞幓涓婁竴灞傚垱
-    }
-
-    @Override
-    public boolean deleteRawGlassStorageDetails(String device_id) {
+  @Override
+  public boolean deleteRawGlassStorageDetails(String device_id) {
         QueryWrapper<RawGlassStorageDetails> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("device_id", device_id);
         return remove(queryWrapper);//remove鎵嶆槸鍒犻櫎锛宒elete寰楃敤鍙﹀鐨勪緷璧栵紝榛樿鏂规硶鏄痳emove杩斿洖bool
@@ -47,10 +40,6 @@
         return list();
     }
 
-    @Override
-    public boolean insertRawGlassStorageDetails(RawGlassStorageDetails rw) {
-        return this.save(rw);
-    }
 
     @Override
     public String patternWarehousing(RawGlassRequest request) {
@@ -58,8 +47,30 @@
         RawGlassStorageDetails details = new RawGlassStorageDetails();
         BeanUtils.copyProperties(request, details);
         details.setState(Const.GLASS_STATE_IN);
+        details.setCreateTime(new Date());
         save(details);
-        return null;
+        return "success";
+    }
+
+    @Override
+    public String UpdateQuantity(RawGlassRequest request) {
+        update(
+                new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                        .set(RawGlassStorageDetails::getRemainQuantity, request.getRemainQuantity())
+                        .eq(RawGlassStorageDetails::getSlotId, request.getSlotId()));
+        return "success";
+    }
+    @Override
+    public String deleteWarehousing(Long slotId) {
+        update(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getSlotId, slotId)
+                .set(RawGlassStorageDetails::getState,Const.GLASS_STATE_OUT));
+        return "success";
+    }
+    @Override
+    public String outWarehousing(Long slotId) {
+        update(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getSlotId, slotId)
+                .set(RawGlassStorageDetails::getState,Const.GLASS_STATE_OUT_ING));
+        return "success";
     }
 
 }
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/controller/RawGlassStorageStationController.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/controller/RawGlassStorageStationController.java
index 1b6dc42..e721e70 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/controller/RawGlassStorageStationController.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/controller/RawGlassStorageStationController.java
@@ -1,21 +1,37 @@
 package com.mes.rawglassstation.controller;
 
+import com.mes.rawglassstation.service.RawGlassStorageStationService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
 
 /**
- * <p>
- *  鍓嶇鎺у埗鍣�
- * </p>
+ * 鍓嶇鎺у埗鍣�
  *
  * @author wf
  * @since 2024-09-10
  */
 @RestController
-@RequestMapping("/raw-glass-storage-station")
+@RequestMapping("/rawGlassStorageStation")
 public class RawGlassStorageStationController {
 
+  @Resource RawGlassStorageStationService rawGlassStorageStationService;
+
+  @ApiOperation("宸ヤ綅鐘舵��")
+  @PostMapping("/updateSlotState")
+  @ResponseBody
+  public Result<Boolean> updateSlotState(@RequestParam(value = "state")int enableState, @RequestParam(value = "slot")int slot) {
+    boolean result = rawGlassStorageStationService.updateSlotState(slot, enableState);
+    if (enableState == 1) {
+      return Result.build(200, "鍚敤", result);
+    } else {
+      return Result.build(200, "绂佺敤", result);
+    }
+
+
+
+  }
 }
 
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/entity/RawGlassStorageStation.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/entity/RawGlassStorageStation.java
index ba221fc..8f1db02 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/entity/RawGlassStorageStation.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/entity/RawGlassStorageStation.java
@@ -2,15 +2,12 @@
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.io.Serializable;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.io.Serializable;
+
 /**
- * <p>
- * 
- * </p>
- *
  * @author wf
  * @since 2024-09-10
  */
@@ -20,8 +17,8 @@
 
     private static final long serialVersionUID = 1L;
 
-      @TableId(value = "id", type = IdType.AUTO)
-    private Long id;
+  @TableId(value = "id", type = IdType.AUTO)
+  private Long id;
 
     /**
      * 璁惧id
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/mapper/RawGlassStorageStationMapper.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/mapper/RawGlassStorageStationMapper.java
index 86c0b45..7195a73 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/mapper/RawGlassStorageStationMapper.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/mapper/RawGlassStorageStationMapper.java
@@ -1,8 +1,8 @@
 package com.mes.rawglassstation.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
 import com.mes.rawglassstation.entity.RawGlassStorageStation;
-import com.mes.rawglasstask.entity.RawGlassStorageTask;
 
 import java.util.List;
 
@@ -16,5 +16,5 @@
  */
 public interface RawGlassStorageStationMapper extends BaseMapper<RawGlassStorageStation> {
 
-    List<RawGlassStorageTask> listRawGlassDetails();
+  List<RawGlassStorageDetails> listRawGlassDetails();
 }
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/RawGlassStorageStationService.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/RawGlassStorageStationService.java
index ed790f1..91c2bf7 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/RawGlassStorageStationService.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/RawGlassStorageStationService.java
@@ -1,8 +1,8 @@
 package com.mes.rawglassstation.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
 import com.mes.rawglassstation.entity.RawGlassStorageStation;
-import com.mes.rawglasstask.entity.RawGlassStorageTask;
 
 import java.util.List;
 
@@ -19,5 +19,12 @@
 
     boolean insertRawGlassStorageStation(RawGlassStorageStation rw);
 
-    List<RawGlassStorageTask> listRawGlassDetails();
+  /**
+   * 鑾峰彇宸ヤ綅鍙婂搴旂殑鍘熺墖淇℃伅
+   *
+   * @return
+   */
+  List<RawGlassStorageDetails> listRawGlassDetails();
+
+  boolean updateSlotState(Integer slot, Integer enableState);
 }
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/impl/RawGlassStorageStationServiceImpl.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/impl/RawGlassStorageStationServiceImpl.java
index b976035..9d2b255 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/impl/RawGlassStorageStationServiceImpl.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/impl/RawGlassStorageStationServiceImpl.java
@@ -1,12 +1,13 @@
 package com.mes.rawglassstation.service.impl;
 
 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
 import com.mes.rawglassstation.entity.RawGlassStorageStation;
 import com.mes.rawglassstation.mapper.RawGlassStorageStationMapper;
 import com.mes.rawglassstation.service.RawGlassStorageStationService;
-import com.mes.rawglasstask.entity.RawGlassStorageTask;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -43,10 +44,16 @@
         return this.save(rw);
     }
 
-    @Override
-    public List<RawGlassStorageTask> listRawGlassDetails() {
+  @Override
+  public List<RawGlassStorageDetails> listRawGlassDetails() {
         return baseMapper.listRawGlassDetails();
     }
 
-
+  @Override
+  public boolean updateSlotState(Integer slot, Integer enableState) {
+    return update(
+        new LambdaUpdateWrapper<RawGlassStorageStation>()
+            .set(RawGlassStorageStation::getEnableState, enableState)
+            .eq(RawGlassStorageStation::getSlot, slot));
+  }
 }
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/RawGlassStorageStationMapper.xml b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/RawGlassStorageStationMapper.xml
index d1a6d99..1b7b53f 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/RawGlassStorageStationMapper.xml
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/RawGlassStorageStationMapper.xml
@@ -11,6 +11,7 @@
         <result column="films_id" property="filmsId"/>
         <result column="create_time" property="createTime"/>
         <result column="remain_quantity" property="remainQuantity"/>
+        <result column="enable_state" property="state"/>
     </resultMap>
 
 
@@ -22,7 +23,8 @@
                T1.PATTERN_THICKNESS,
                T1.FILMS_ID,
                T1.CREATE_TIME,
-               T1.REMAIN_QUANTITY
+               T1.REMAIN_QUANTITY,
+               T.ENABLE_STATE
         FROM RAW_GLASS_STORAGE_STATION T
                  LEFT JOIN RAW_GLASS_STORAGE_DETAILS T1 ON T.DEVICE_ID = T1.DEVICE_ID
             AND T.SLOT = T1.SLOT_ID
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java
index dd22447..5905cdc 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java
@@ -75,36 +75,36 @@
     /**
      * 娴嬭瘯
      */
-    @Test
-    public void testWebSocket() {
-        List<RawGlassStorageTask> list=rawGlassStorageTaskService.findAll();
-        log.info("杩斿洖鍐呭锛歿}",list);
-    }
+//    @Test
+//    public void testWebSocket() {
+//        List<RawGlassStorageTask> list=rawGlassStorageTaskService.findAll();
+//        log.info("杩斿洖鍐呭锛歿}",list);
+//    }
 
     /**
      * 娴嬭瘯淇敼WebSocket  鍙傛暟
      */
-    @Test
-    public void testWebSocketArgument() {
-        RawGlassTaskRequest request=new RawGlassTaskRequest();
-        //璁剧疆鍙傛暟锛�
-        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
-        Date startDate=null;
-        Date endDate=null;
-        try {
-            startDate= df.parse("2022-01-01");
-            endDate= df.parse("2025-01-01");
-        }catch (ParseException e){
-            e.printStackTrace();
-
-        request.setCreateTime(startDate);//
-        request.setPatternQuantity(endDate);
-        request.setEnableState(new ArrayList<Integer>());
-        request.setEnableType(new ArrayList<Integer>());
-        String list=rawGlassStorageTaskService.setRawGlassTaskRequest(request);
-        log.info("杩斿洖鍐呭锛歿}",list);
-    }
-    }
+//    @Test
+//    public void testWebSocketArgument() {
+//        RawGlassTaskRequest request=new RawGlassTaskRequest();
+//        //璁剧疆鍙傛暟锛�
+//        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+//        Date startDate=null;
+//        Date endDate=null;
+//        try {
+//            startDate= df.parse("2022-01-01");
+//            endDate= df.parse("2025-01-01");
+//        }catch (ParseException e){
+//            e.printStackTrace();
+//
+//        request.setCreateTime(startDate);//
+//        request.setPatternQuantity(endDate);
+//        request.setEnableState(new ArrayList<Integer>());
+//        request.setEnableType(new ArrayList<Integer>());
+//        String list=rawGlassStorageTaskService.setRawGlassTaskRequest(request);
+//        log.info("杩斿洖鍐呭锛歿}",list);
+//    }
+//    }
 
 
 
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java
index 86343e1..089ecd4 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java
@@ -70,39 +70,29 @@
         //灏嗙‘璁ゅ瓧缃负0
         plcControl.writeWord(plcParameterObject.getPlcParameter("confirmationWord").getAddress(), 0);
         //鍙兘鏈夊嚑鐐夌幓鐠冨悓鏃跺湪閽紝闇�瑕佽幏鍙栭挗鍖栧皬鐗囪〃涓殑鏁版嵁淇℃伅鐘舵�佷负2锛堟棆杞彴鐜荤拑宸查�佸嚭鏈挗鍖栵紝姝e湪閽㈠寲锛�
-        List<TemperingGlassInfo> temperingGlassInfoList = temporaryGlassInfoService.list(new LambdaQueryWrapper<TemperingGlassInfo>()
-                .eq(TemperingGlassInfo::getState, Const.TEMPERING_START));
+        List<TemperingGlassInfo> temperingGlassInfoList = temporaryGlassInfoService.list(
+                new LambdaQueryWrapper<TemperingGlassInfo>()
+                        .inSql(TemperingGlassInfo::getTemperingLayoutId, "select distinct tempering_layout_id from tempering_glass_info where state=1")
+                        .lt(TemperingGlassInfo::getState, Const.TEMPERING_START)
+        );
         if (CollectionUtils.isEmpty(temperingGlassInfoList)) {
             log.info("褰撳墠绯荤粺娌℃湁闇�瑕侀挗鍖栫殑鐜荤拑淇℃伅");
             return;
         }
-        TemperingGlassInfo maxGlassInfo = temperingGlassInfoList.stream().max(Comparator.comparingLong(TemperingGlassInfo::getId)).get();
+        TemperingGlassInfo minGlassInfo = temperingGlassInfoList.stream().min(Comparator.comparingLong(TemperingGlassInfo::getState)).get();
+        if (minGlassInfo.getState() < Const.TEMPERING_DROP) {
+            log.info("褰撳墠鐐夌幓鐠冩湭鍒伴綈锛岀◢鍚庡湪鎵ц");
+            return;
+        }
         //鎷垮埌宸ョ▼id鍙婄倝鍙�
-//        List<EngineerTemperingDTO> engineerTemperingList = temperingGlassInfoList.stream().map(e -> {
-//            EngineerTemperingDTO engineerTemperingDTO = new EngineerTemperingDTO();
-//            BeanUtils.copyProperties(e, engineerTemperingDTO);
-//            return engineerTemperingDTO;
-//        }).distinct().collect(Collectors.toList());
-        //灏嗘鍦ㄩ挗鍖栫殑鐐夊彿杩囨护鎺夛紝浠呰幏鍙栧緟閽㈠寲鐨勭幓鐠�
-//        List<TemperingRecord> temperingRecords = temperingRecordService.list(new LambdaQueryWrapper<TemperingRecord>().and(i -> i.isNull(TemperingRecord::getCoolEnergy).or().eq(TemperingRecord::getCoolEnergy, "")));
-//        List<EngineerTemperingDTO> temperingList = new ArrayList<>();
-//        if (CollectionUtils.isNotEmpty(temperingRecords)) {
-//            temperingList = temperingRecords.stream().map(e -> {
-//                EngineerTemperingDTO engineerTemperingDTO = new EngineerTemperingDTO();
-//                BeanUtils.copyProperties(e, engineerTemperingDTO);
-//                return engineerTemperingDTO;
-//            }).collect(Collectors.toList());
-//        }
-//        engineerTemperingList.removeAll(temperingList);
-//        if (CollectionUtils.isEmpty(engineerTemperingList)) {
-//            log.info("娌℃湁寰呴挗鍖栫殑浠诲姟锛岀粨鏉�");
-//            return;
-//        }
-//        if (engineerTemperingList.size() > 1) {
-//            log.info("瀛樺湪澶氱倝寰呴挗鍖栫殑浠诲姟锛岃妫�鏌ョ幇鍦烘槸鍚︽湁寮傚父鏁版嵁鏈鐞�");
-//            return;
-//        }
-//        EngineerTemperingDTO temperingDTO = engineerTemperingList.get(0);
+        TemperingGlassInfo maxGlassInfo = temperingGlassInfoList.stream().max(Comparator.comparingLong(TemperingGlassInfo::getId)).get();
+        //灏嗘鍦ㄩ挗鍖栫殑鐐夊彿杩囨护鎺夛紝浠呰幏鍙栧緟閽㈠寲鐨勭幓鐠�:鍒ゆ柇寰呴挗鐨勭幓鐠冩槸鍚﹀凡鍙戦�佸鎺ユ暟鎹�
+        List<TemperingRecord> temperingRecordList = temperingRecordService.list(new LambdaQueryWrapper<TemperingRecord>().eq(TemperingRecord::getEngineerId, maxGlassInfo.getEngineerId())
+                .eq(TemperingRecord::getTemperingLayoutId, maxGlassInfo.getTemperingLayoutId()));
+        if (CollectionUtils.isNotEmpty(temperingRecordList)) {
+            log.info("娌℃湁寰呴挗鍖栫殑浠诲姟锛岀粨鏉�");
+            return;
+        }
         //鑾峰彇寰呴挗鍖栫殑鎵�鏈夌幓鐠冧俊鎭�
         List<TemperingGlassInfo> temperingGlassList = temperingGlassInfoList.stream()
                 .filter(e -> e.getEngineerId().equals(maxGlassInfo.getEngineerId())

--
Gitblit v1.8.0