From 34a5775085f5db40dfc80250e5185f5485eecfc2 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期五, 20 九月 2024 13:01:18 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/HangZhouMes

---
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/controller/RawUsageController.java                                      |  119 ++
 UI-Project/src/views/GlassStorage/rawfilmstorage.vue                                                                                           |  425 ++++++++
 hangzhoumesParent/moduleService/yiwumes/src/main/resources/mapper/ShelfRackMapper.xml                                                          |   25 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml                                                        |    2 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java   |   25 
 hangzhoumesParent/moduleService/yiwumes/pom.xml                                                                                                |   34 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/GlassStorageApplication.java                                                     |   28 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/service/impl/RawUsageServiceImpl.java                                   |  138 ++
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/controller/ShelfRackController.java                                    |  113 ++
 hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java                                    |   47 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java                                           |    4 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java                          |   26 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.java                                              |   15 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/job/push.java                                                                    |   54 +
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml                                                   |   12 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/request/RawGlassTaskRequest.java                  |   39 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/ShelfRack.java                                                  |   68 +
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelogBase.xml                                            |   12 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java                                                   |    4 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java                                                                  |   10 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.xml                                       |    5 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.xml                                               |    5 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java                                             |    4 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java            |   14 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java                                        |   25 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java                             |  167 +++
 hangzhoumesParent/moduleService/yiwumes/src/main/resources/application.yml                                                                     |   18 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/impl/ShelfRackServiceImpl.java                                 |   61 +
 UI-Project/src/router/index.js                                                                                                                 |   13 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/request/RawUsageAndShelfRack.java                               |   76 +
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelog.sql                                                |   92 +
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/entity/request/StorageTaskRequest.java                               |   77 +
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/controller/LoadPositionController.java                              |   99 +
 hangzhoumesParent/moduleService/yiwumes/src/main/resources/application-dev.yml                                                                 |   25 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/entity/StorageTask.java                                              |   82 +
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/RawGlassStorageStationService.java            |   14 
 UI-Project/src/views/GlassStorage/GlassStorage.vue                                                                                             |   49 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/RawGlassStorageTaskService.java                  |   22 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/controller/StorageTaskController.java                                |  129 ++
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/service/LoadPositionService.java                                    |   19 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/service/RawUsageService.java                                            |   36 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/ShelfRackService.java                                          |   20 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java       |    6 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java      |   28 
 hangzhoumesParent/moduleService/yiwumes/src/main/resources/mapper/StorageTaskMapper.xml                                                        |   35 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java                                            |   23 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/impl/RawGlassStorageStationServiceImpl.java   |   24 
 hangzhoumesParent/common/servicebase/pom.xml                                                                                                   |   10 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.java                                      |   16 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java                    |    4 
 UI-Project/config.js                                                                                                                           |    8 
 hangzhoumesParent/common/pom.xml                                                                                                               |    6 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java                                                         |   12 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/StorageTaskService.java                                      |   24 
 UI-Project/src/lang/zh.js                                                                                                                      |   62 +
 UI-Project/src/utils/constants.js                                                                                                              |    4 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml                                                    |    6 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/service/impl/LoadPositionServiceImpl.java                           |   32 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/entity/RawUsage.java                                                    |  110 ++
 hangzhoumesParent/moduleService/yiwumes/src/test/java/mes/GlassStorageModuleApplicationTest.java                                               |   79 +
 /dev/null                                                                                                                                      |   47 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-prod.yml                                                     |    2 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java |  122 ++
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/controller/RawGlassStorageTaskController.java            |   19 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/entity/LoadPosition.java                                            |   79 +
 hangzhoumesParent/moduleService/yiwumes/src/main/resources/application-prod.yml                                                                |   30 
 66 files changed, 2,859 insertions(+), 181 deletions(-)

diff --git a/UI-Project/config.js b/UI-Project/config.js
index 8801d0c..9a4f798 100644
--- a/UI-Project/config.js
+++ b/UI-Project/config.js
@@ -1,10 +1,10 @@
 export default {
-//  serverUrl: "10.153.19.150:88/api",
+ serverUrl: "10.153.19.150:88/api",
 //  serverUrl: "192.168.1.199:88/api",
- serverUrl: "127.0.0.1:88/api",
-  // serverUrl2: "10.153.19.150:88"
+//  serverUrl: "127.0.0.1:88/api",
+  serverUrl2: "10.153.19.150:88"
   // serverUrl2: "192.168.1.199:88"
-    serverUrl2: "127.0.0.1:88"
+    // serverUrl2: "127.0.0.1:88"
 
   //serverUrl:"res.abeim.cn"
 }
\ No newline at end of file
diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
index 8b3595d..0aec075 100644
--- a/UI-Project/src/lang/zh.js
+++ b/UI-Project/src/lang/zh.js
@@ -509,5 +509,65 @@
         presponsibleequipment :'璇烽�夋嫨璐d换璁惧',
         remark :'澶囨敞',
         premark :'璇疯緭鍏ュ娉�',
-    }
+    },
+    film:{
+        mes:'鍘熺墖浠撳偍璇︽儏',
+        warehousing:'鍏ュ簱',
+        operate: '鎿嶄綔',
+        exit:'缂栬緫',
+        delete:'鍒犻櫎',
+        outbound:'鍑哄簱',
+        deviceid:'璁惧ID',
+        slot:'鏍呮牸鍙�',
+        enablestatea:'鍚敤鏍囪',
+        disable:'绂佺敤',
+        start:'鍚敤',
+        startslot:'寮�濮嬪伐浣�',
+        endslot:'鐩爣宸ヤ綅',
+        slotid:'鏍煎瓙ID',
+        width:'鍘熺墖瀹�',
+        widtha:'鍘熺墖瀹斤細',
+        inwidth:'璇疯緭鍏ュ師鐗囧',
+        height:'鍘熺墖楂�',
+        inheight:'璇疯緭鍏ュ師鐗囬珮',
+        heighta:'鍘熺墖楂橈細',
+        thickness:'鍘熺墖鍘氬害',
+        inthickness:'璇疯緭鍏ュ師鐗囧帤搴�',
+        thicknessa:'鍘熺墖鍘氬害锛�',
+        films:'鑶滅郴',
+        infilms:'璇疯緭鍏ヨ啘绯�',
+        filmsa:'鑶滅郴锛�',
+        createtime:'鍒涘缓鏃堕棿',
+        remainquantity:'鍓╀綑鏁伴噺',
+        thickremainquantity:'鍘熺墖鍓╀綑鏁伴噺锛堝紶锛夛細',
+        inquantity:'璇疯緭鍏ユ暟閲�',
+        quantitya:'鏁伴噺锛�',
+        enableid:'浠诲姟ID',
+        originateslot:'璧峰鏍煎瓙',
+        endslot:'鐩爣鏍煎瓙',
+        patternquantity:'鍘熺墖鏁伴噺',
+        enabletype:'浠诲姟绫诲瀷',
+        enablestate:'宸ヤ綅鐘舵��',
+        finish:'宸插畬鎴�',
+        unfinish:'鏈畬鎴�',
+        dedelete:'鏄惁鍒犻櫎璇ユ潯鍐呭锛�',
+        dedisable:'鏄惁绂佺敤璇ユ潯鍐呭锛�',
+        deoutbound:'鏄惁鍑哄簱璇ユ潯鍐呭锛�',
+        selectwarehousing:'璇烽�夋嫨鍚婅浣�',
+        inwarehousing:'鍚婅浣嶏細',
+        warehousing1:'鍚婅浣�1',
+        warehousing2:'鍚婅浣�2',
+        starttime :'寮�濮嬫椂闂�',
+        endtime :'缁撴潫鏃堕棿',
+        taskstatus :'浠诲姟鐘舵��',
+        built :'鏂板缓',
+        execution :'鎵ц涓�',
+        finish :'瀹屾垚',
+        tasktype :'浠诲姟绫诲瀷',
+        stocke :'鍏ュ簱',
+        outbound :'鍑哄簱',
+        dispatch :'璋冨害',
+        inquire :'鏌ヨ',
+        station :'宸ヤ綅',
+    },
 }
\ No newline at end of file
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
index d790e4b..f492054 100644
--- a/UI-Project/src/router/index.js
+++ b/UI-Project/src/router/index.js
@@ -186,19 +186,24 @@
             }
           ]
         },
-
-        {
+         /*----------- 浠撳偍涓績 ----------------*/
+         {
           path: 'GlassStorage',
           name: 'GlassStorage',
-          component: () => import('../views/GlassStorage/MaterialRackManagement.vue'),
+          component: () => import('../views/GlassStorage/GlassStorage.vue'),
           children:[
             {
               path: '/GlassStorage/MaterialRackManagement',
               name: 'MaterialRackManagement',
               component: () => import('../views/GlassStorage/MaterialRackManagement.vue')
+            },
+            {
+              path: '/GlassStorage/rawfilmstorage',
+              name: 'rawfilmstorage',
+              component: () => import('../views/GlassStorage/rawfilmstorage.vue')
             }
           ]
-         },
+        },
 
          /*----------- 鍙鍖栫郴缁� ----------------*/
          {
diff --git a/UI-Project/src/utils/constants.js b/UI-Project/src/utils/constants.js
index 69000bc..b551cfb 100644
--- a/UI-Project/src/utils/constants.js
+++ b/UI-Project/src/utils/constants.js
@@ -1,4 +1,4 @@
 //  export const WebSocketHost = "192.168.1.199";
-// export const WebSocketHost = "10.153.19.150";
-export const WebSocketHost = "127.0.0.1";
+export const WebSocketHost = "10.153.19.150";
+// export const WebSocketHost = "127.0.0.1";
 export const host = "88";
\ No newline at end of file
diff --git a/UI-Project/src/views/GlassStorage/GlassStorage.vue b/UI-Project/src/views/GlassStorage/GlassStorage.vue
new file mode 100644
index 0000000..d0567d3
--- /dev/null
+++ b/UI-Project/src/views/GlassStorage/GlassStorage.vue
@@ -0,0 +1,49 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter} from "vue-router";
+let indexFlag=$ref(1)
+function changeRouter(index){
+  indexFlag=index
+}
+
+</script>
+
+<template>
+  <!-- <div id="main-div"> -->
+   
+
+    <div id="main-body">
+      <router-view  />
+    </div>
+  <!-- </div> -->
+</template>
+
+<style scoped>
+#main-div{
+  width: 100%;
+  height: 100%;
+}
+#div-title{
+  height: 2%;
+  width: 100%;
+}
+#searchButton{
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+/* #searchButton1{
+//margin-left: 10rem;
+} */
+/*main-body鏍峰紡*/
+#main-body{
+  width: 100%;
+  height: 95%;
+  /* margin-top: 1%; */
+}
+#select{
+  margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
+  color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/GlassStorage/rawfilmstorage.vue b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
new file mode 100644
index 0000000..f78f2ff
--- /dev/null
+++ b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
@@ -0,0 +1,425 @@
+<script lang="ts" setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+import type { TableColumnCtx } from 'element-plus'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { useI18n } from 'vue-i18n'
+import { WebSocketHost ,host} from '@/utils/constants'
+import request from "@/utils/request"
+import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
+import { ref, onMounted, onUnmounted, onBeforeUnmount } from "vue";
+const tableDataa = ref([])
+const tableDatab = ref([])
+const { t } = useI18n()
+const add = ref(false)
+const dialogFormVisiblea = ref(false)
+const dialogFormVisibleb = ref(false)
+const dialogFormVisiblec = ref(false)
+const timeRange = ref(["2022-01-01", "2025-01-01"])
+const selectValuesa = reactive([]);
+let webSocket: WebSocket | null = null;  
+const value = ref('')
+const options = [
+  {
+    value: t('film.warehousing1'),
+    label: t('film.warehousing1'),
+  },
+  {
+    value: t('film.warehousing2'),
+    label: t('film.warehousing2'),
+  }
+]
+const report = ref({
+  enableType: '',
+  enableState: '',
+});
+onMounted(() => {
+    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]
+  }
+};
+  // 鍒犻櫎 
+ const opena = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('film.dedelete'), 
+      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 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 {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('film.deoutbound'), 
+      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 selectReportData = async () => {
+  let celllist=[]
+  let stateList=[]
+  if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+    if(selectValuesa[0]!=""){
+      celllist=[selectValuesa[0]];
+    }
+  }
+  if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+    if(selectValuesa[1]!=""){
+      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
+  })
+  if (response.code === 200) {
+    tableDataa.value = response.data;
+    ElMessage.success(response.message);
+  } 
+  else {
+    ElMessage.error(response.message);
+  }
+};
+// 鏄惁绂佺敤
+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 });  
+    if (response.code === 200) {  
+      ElMessage.success(response.message);  
+      row.enableState = newState;  
+    } else {  
+      ElMessage.error(response.message);  
+    }  
+  } catch (error) {
+    ElMessage.error(t('basicData.glassnull'));   
+  }  
+}; 
+const handleEdit = (row) => {
+  dialogFormVisiblec.value = true;
+};
+function getStatusType1(enableType) {  
+switch (enableType) {  
+  case 1:  
+    return 'info';  
+  case 2:  
+    return 'warning';  
+  case 3:  
+    return 'success';  
+}  
+}
+function getStatusText1(enableType) {  
+switch (enableType) {
+  case 1:  
+    return t('film.stocke');//鍏ュ簱
+  case 2:  
+    return t('film.outbound');//鍑哄簱
+  case 3:  
+  return t('film.dispatch');//璋冨害
+}  
+}
+function getStatusType2(enableState) {  
+switch (enableState) {  
+  case 1:  
+    return 'info';  
+  case 2:  
+    return 'warning';  
+  case 3:  
+    return 'success';  
+}  
+}
+function getStatusText2(enableState) {  
+switch (enableState) {
+  case 1:  
+    return t('film.built');//鏂板缓
+  case 2:  
+    return t('film.execution');//鎵ц涓�
+  case 3:  
+  return t('film.finish');//瀹屾垚
+}  
+}
+onBeforeUnmount(() => {
+  closeWebSocket();
+}); 
+</script>
+<template>
+  <div>
+  <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-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>
+      <el-option :label="$t('film.finish')" value="3"></el-option>
+    </el-select>
+    <el-select v-model="selectValuesa[1]" clearable :placeholder="$t('film.tasktype')" style="margin-left: 10px;" >
+      <el-option :label="$t('film.stocke')" value="1"></el-option>
+      <el-option :label="$t('film.outbound')" value="2"></el-option>
+      <el-option :label="$t('film.dispatch')" value="3"></el-option>
+    </el-select>
+    <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('film.inquire') }}</el-button>
+  </div>
+  <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="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="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"
+        >
+        <template #default="scope">  
+      <el-tag :type="getStatusType1(scope.row.enableType)">  
+        {{ getStatusText1(scope.row.enableType) }}
+      </el-tag>  
+    </template> 
+        </el-table-column>
+        <el-table-column
+          align="center"
+          :label="$t('film.enablestate')"
+          prop="enableState"
+        >
+        <template #default="scope">  
+      <el-tag :type="getStatusType2(scope.row.enableState)">  
+        {{ getStatusText2(scope.row.enableState) }}
+      </el-tag>  
+    </template> 
+        </el-table-column>
+          <el-table-column prop="createTime" align="center" :label="$t('film.createtime')" />
+          
+        </el-table>
+      </div>
+    </el-card>
+    <div class="awatch">
+    <img src="../../assets/ypcc.png" alt="" style="width: 100%;height: 120%;margin-left: 10px;position: relative;margin-top: -20px;"> 
+    
+</div>
+    <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%" >
+    <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="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" />
+          <el-table-column prop="filmsId" align="center" :label="$t('film.films')" min-width="80" />
+          <el-table-column prop="remainQuantity" align="center" :label="$t('film.remainquantity')" min-width="120" />
+          <el-table-column
+          align="center"
+            :label="$t('film.enablestate')"
+            min-width="80"
+            prop="enablestate"
+          >
+          <template #default="scope">  
+          <el-tag  
+            :type="scope.row.enableState == 1 ? 'success' : 'danger'"  
+            @click="toggleEnableState(scope.row)"  
+            >  
+            {{ scope.row.enableState == 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="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-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-form-item>
+              </div></div>
+          </el-col>
+          <el-col :span="9">
+            <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-form-item></div>
+              </div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <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-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-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <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></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>
+              </el-form-item></div>
+              </div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleConfirm">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="dialogFormVisibleb = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+</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-form-item>
+        </el-form>
+      </el-form>
+    </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleConfirm">
+          {{ $t('reportWork.sure') }}
+        </el-button>
+        <el-button @click="dialogFormVisiblec = false">{{ $t('reportWork.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+        </div>
+</template>
+ 
+<style scoped>
+ 
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+.awatch{
+  height: 400px;
+  width: 1500px;
+  max-width: 100%;
+}
+#dialog-footer {
+  text-align: center;
+  margin-top: -15px;
+}
+</style>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/pom.xml b/hangzhoumesParent/common/pom.xml
index 49ca831..c8bb428 100644
--- a/hangzhoumesParent/common/pom.xml
+++ b/hangzhoumesParent/common/pom.xml
@@ -189,12 +189,6 @@
             <artifactId>fastjson</artifactId>
             <version>1.2.33</version>
         </dependency>
-
-        <!--        <dependency>-->
-        <!--            <groupId>com.github.yulichang</groupId>-->
-        <!--            <artifactId>mybatis-plus-join</artifactId>-->
-        <!--            <version>1.2.4</version>-->
-        <!--        </dependency>-->
         <dependency>
             <groupId>com.github.yulichang</groupId>
             <artifactId>mybatis-plus-join-boot-starter</artifactId>
diff --git a/hangzhoumesParent/common/servicebase/pom.xml b/hangzhoumesParent/common/servicebase/pom.xml
index ba1f75e..0605bf7 100644
--- a/hangzhoumesParent/common/servicebase/pom.xml
+++ b/hangzhoumesParent/common/servicebase/pom.xml
@@ -28,6 +28,16 @@
             <artifactId>liquibase-core</artifactId>
             <version>3.8.1</version>
         </dependency>
+        <dependency>
+            <groupId>org.eclipse.milo</groupId>
+            <artifactId>sdk-client</artifactId>
+            <version>0.6.8</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.milo</groupId>
+            <artifactId>sdk-server</artifactId>
+            <version>0.6.8</version>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
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 295e4fd..5b5dcb7 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
@@ -1,7 +1,6 @@
 package com.mes.damage.controller;
 
 
-import cn.hutool.core.date.DateTime;
 import com.mes.damage.entity.Damage;
 import com.mes.damage.entity.DamagePrint;
 import com.mes.damage.service.DamageService;
@@ -11,7 +10,6 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -39,7 +37,7 @@
         int type =Integer.parseInt(map.get("type").toString());
         int status =Integer.parseInt(map.get("status").toString());
         String workingProcedure =map.get("workingProcedure").toString();
-        return Result.build(200,"鏌ヨ鎴愬姛",damageService.selectDamage(startTime,endTime,type,status,workingProcedure));
+        return Result.build(200,"鏌ヨ鎴愬姛",damageService.selectDamage(startTime,endTime,type, workingProcedure));
     }
 
     @ApiOperation("鎶ュ伐")
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 3d63695..cfa07e3 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
@@ -1,6 +1,5 @@
 package com.mes.damage.service;
 
-import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.yulichang.base.MPJBaseService;
 import com.mes.damage.entity.Damage;
 import com.mes.damage.entity.DamagePrint;
@@ -8,7 +7,6 @@
 import com.mes.pp.entity.ReportingWorkDetail;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * <p>
@@ -20,7 +18,7 @@
  */
 public interface DamageService extends MPJBaseService<Damage> {
 
-    List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure);
+    List<Damage> selectDamage(String startTime, String endTime, int type, String workingProcedure);
 
     void submitDamage(List<Damage> damageList);
 
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
index a323a39..ff76c67 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
@@ -25,13 +25,13 @@
         gc.setOutputDir("D:\\Documents\\hangzhoumesParent5\\");
 
         gc.setServiceName("%sService");	//鍘绘帀Service鎺ュ彛鐨勯瀛楁瘝I
-        gc.setAuthor("wu");
+        gc.setAuthor("wf");
         gc.setOpen(false);
         mpg.setGlobalConfig(gc);
 
         // 3銆佹暟鎹簮閰嶇疆
         DataSourceConfig dsc = new DataSourceConfig();
-        dsc.setUrl("jdbc:mysql://localhost:3306/pp?serverTimezone=GMT%2b8");
+        dsc.setUrl("jdbc:mysql://10.153.19.150:3306/yiwumes?serverTimezone=GMT%2b8");
         dsc.setDriverName("com.mysql.cj.jdbc.Driver");
         dsc.setUsername("root");
         dsc.setPassword("beibo.123/");
@@ -41,7 +41,7 @@
         // 4銆佸寘閰嶇疆
         PackageConfig pc = new PackageConfig();
         pc.setParent("com.mes");
-        pc.setModuleName("flow_card"); //妯″潡鍚�
+        pc.setModuleName("raw_glass_storage_station"); //妯″潡鍚�
         pc.setController("controller");
         pc.setService("service");
         pc.setMapper("mapper");
@@ -50,7 +50,9 @@
         // 5銆佺瓥鐣ラ厤缃�
         StrategyConfig strategy = new StrategyConfig();
 
-        strategy.setInclude("flow_card");
+//        strategy.setInclude("raw_glass_storage_details");
+//        strategy.setInclude("raw_glass_storage_station");
+        strategy.setInclude("raw_glass_storage_station");
 
         strategy.setNaming(NamingStrategy.underline_to_camel);//鏁版嵁搴撹〃鏄犲皠鍒板疄浣撶殑鍛藉悕绛栫暐
 
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
index 818be6b..976125e 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
@@ -199,6 +199,9 @@
             Map<String, Damage> damageMaps=damageMapper.selectList(new MPJLambdaQueryWrapper<Damage>()
                     .selectAll(Damage.class)
                     .eq(Damage::getEngineerId,upPattenUsage1.getEngineeringId())
+                    .and(wrapper->wrapper.eq(Damage::getType,8)
+                            .or()
+                            .eq(Damage::getType,9))
             ).stream().collect(Collectors.toMap(Damage::getGlassId,Damage->Damage,(V1,V2)->V2));
 
             List<Map<String, Object>> resultCutTerritory=new ArrayList<>();
@@ -261,6 +264,9 @@
         Map<String, Damage> damageMaps=damageMapper.selectList(new MPJLambdaQueryWrapper<Damage>()
                 .selectAll(Damage.class)
                 .eq(Damage::getEngineerId,current)
+                .and(wrapper->wrapper.eq(Damage::getType,8)
+                        .or()
+                        .eq(Damage::getType,9))
         ).stream().collect(Collectors.toMap(Damage::getGlassId,Damage->Damage,(V1,V2)->V2));
 
         for (Map<String, Object> item : cutTerritory) {
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
index eea2804..7dea372 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
@@ -2,14 +2,10 @@
 
 import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.mes.bigstorage.entity.BigStorageCageDetails;
 import com.mes.bigstorage.service.BigStorageCageDetailsService;
 import com.mes.bigstorage.service.BigStorageCageService;
-import com.mes.common.S7object;
-import com.mes.common.config.Const;
 import com.mes.common.utils.RedisUtil;
-import com.mes.device.PlcParameterObject;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.temperingglass.service.TemperingGlassInfoService;
 import com.mes.tools.WebSocketServer;
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
index 948d159..8449550 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -3,15 +3,15 @@
 
 spring:
   profiles:
-    active: cz
+    active: dev
   application:
     name: cacheVerticalGlass
   liquibase:
     enabled: false
 mybatis-plus:
   mapper-locations: classpath*:mapper/*.xml
-  configuration:
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+#  configuration:
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
 mes:
   sequence:
     order: false
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java
index 0096d59..df39184 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java
@@ -1,28 +1,22 @@
 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.shelfrack.entity.request.RawUsageAndShelfRack;
 import com.mes.shelfrack.service.ShelfRackService;
-import com.mes.storagetask.entity.request.StorageTaskRequest;
 import com.mes.storagetask.service.StorageTaskService;
 import com.mes.tools.WebSocketServer;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
-import java.util.Map;
 
 @Slf4j
 @Component
@@ -46,8 +40,8 @@
         JSONObject jsonObject = new JSONObject();
         List<RawGlassStorageDetails> rack =  rawGlassStorageDetailsService.list();
         List<RawGlassStorageStation> state =  rawGlassStorageStationService.list();
-        List<RawGlassStorageTask> tasks =  rawGlassStorageTaskService.selectTasks();
-
+        //List<RawGlassStorageTask> tasks =  rawGlassStorageTaskService.list();
+        List<RawGlassStorageTask> tasks =  rawGlassStorageTaskService.findAll();
         jsonObject.append("rack",rack);
         jsonObject.append("state",state);
         jsonObject.append("tasks",tasks);
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 2904608..a8f2f38 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,21 +1,39 @@
 package com.mes.rawglassdetails.controller;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
+import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * <p>
- *  鍓嶇鎺у埗鍣�
+ * 鍓嶇鎺у埗鍣�
  * </p>
  *
  * @author wf
  * @since 2024-09-10
  */
 @RestController
-@RequestMapping("/raw_glass_storage_details/raw-glass-storage-details")
+@RequestMapping("/rawGlassStorageDetails")
 public class RawGlassStorageDetailsController {
 
+    @Autowired
+//    RawGlassStorageDetailsService rawGlassStorageDetailsService;
+    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);
+        }
+    }
+
+
 }
 
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java
index 888b6bb..cff3d2e 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java
@@ -4,6 +4,8 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -57,7 +59,7 @@
     /**
      * 鍒涘缓鏃堕棿
      */
-    private LocalDateTime createTime;
+    private Date createTime;
 
     /**
      * 鍓╀綑鏁伴噺
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 4e50b54..5c8cd03 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,21 +1,17 @@
 package com.mes.rawglassdetails.service;
 
-import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
 
 import java.util.List;
 
 /**
- * <p>
- *  鏈嶅姟绫�
- * </p>
- *
- * @author wf
- * @since 2024-09-10
+ * @author system
+ * @since 2024-07-09 14:51:27
  */
 public interface RawGlassStorageDetailsService extends IService<RawGlassStorageDetails> {
     List<RawGlassStorageDetails> selectDetails();
-
     boolean updateRawGlassStorageDetails(String films_id);//瑕佸ぇ鍐欒繖涓�
     /**
      *鍒犻櫎琛�
@@ -27,4 +23,4 @@
      * @return boolean
      */
     boolean insertRawGlassStorageDetails(RawGlassStorageDetails rw);
-}
+}
\ 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 031e115..771ad09 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
@@ -2,30 +2,32 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.rawglassdetails.mapper.RawGlassStorageDetailsMapper;
 import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper;
+import com.mes.rawglasstask.service.RawGlassStorageTaskService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
- * <p>
- *  鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author wf
- * @since 2024-09-10
+ * @author system
+ * @since 2024-07-09 14:51:27
  */
 @Service
-public abstract class RawGlassStorageDetailsServiceImpl extends ServiceImpl<RawGlassStorageDetailsMapper, RawGlassStorageDetails> implements RawGlassStorageDetailsService {
+@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);
+                .eq( "films_id",films_id);
 
         return update(wrapper);//杩欎釜鏂规硶榛樿杩斿洖鐨勫氨鏄痓ool绫诲瀷 鎵�鏈夊彲浠ョ洿鎺eturn杩欎釜鏂规硶锛宱k浜嗭紝浣犳甯稿垱寤烘柟娉曞幓涓婁竴灞傚垱
     }
@@ -35,11 +37,10 @@
         QueryWrapper<RawGlassStorageDetails> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("device_id", device_id);
         return  remove(queryWrapper);//remove鎵嶆槸鍒犻櫎锛宒elete寰楃敤鍙﹀鐨勪緷璧栵紝榛樿鏂规硶鏄痳emove杩斿洖bool
-
     }
 
     @Override
-               //杩斿洖绫诲瀷                    鏂规硶鍚�              浼犺緭鍊�
+    //杩斿洖绫诲瀷                    鏂规硶鍚�              浼犺緭鍊�
     public List<RawGlassStorageDetails> selectDetails() {
 //        QueryWrapper<RawGlassStorageDetails>queryWrapper=new QueryWrapper<>();
 //         queryWrapper.eq("id",rs.getId());
@@ -51,4 +52,4 @@
         return this.save(rw);
     }
 
-}
+}
\ No newline at end of file
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 5d16c85..30dcd2a 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,22 +1,18 @@
 package com.mes.rawglassstation.service;
 
-import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
-import com.mes.rawglassstation.entity.RawGlassStorageStation;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.rawglassstation.entity.RawGlassStorageStation;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
 
 import java.util.List;
 
 /**
- * <p>
- *  鏈嶅姟绫�
- * </p>
- *
- * @author wf
- * @since 2024-09-10
+ * @author system
+ * @since 2024-07-09 14:51:27
  */
 public interface RawGlassStorageStationService extends IService<RawGlassStorageStation> {
     List<RawGlassStorageStation> selectStations();
     boolean updateRawGlassStorageStation(String slot);
     boolean deleteRawGlassStorageStation(String device_id);
     boolean insertRawGlassStorageStation(RawGlassStorageStation rw);
-}
+}
\ 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 457ef85..353f1b8 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
@@ -2,26 +2,25 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.rawglassstation.entity.RawGlassStorageStation;
 import com.mes.rawglassstation.mapper.RawGlassStorageStationMapper;
 import com.mes.rawglassstation.service.RawGlassStorageStationService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
- * <p>
- *  鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author wf
- * @since 2024-09-10
+ * @author system
+ * @since 2024-07-09 14:51:27
  */
 @Service
-public abstract class RawGlassStorageStationServiceImpl extends ServiceImpl<RawGlassStorageStationMapper, RawGlassStorageStation> implements RawGlassStorageStationService {
-    public List<RawGlassStorageStation> selectDetails() {
+@Slf4j
+public class RawGlassStorageStationServiceImpl extends ServiceImpl<RawGlassStorageStationMapper, RawGlassStorageStation> implements RawGlassStorageStationService {
+    @Override
+    public List<RawGlassStorageStation> selectStations() {
         return list();
     }
     @Override
@@ -43,4 +42,7 @@
     public boolean insertRawGlassStorageStation(RawGlassStorageStation rw) {
         return this.save(rw);
     }
-}
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/controller/RawGlassStorageTaskController.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/controller/RawGlassStorageTaskController.java
index 0866915..979e67f 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/controller/RawGlassStorageTaskController.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/controller/RawGlassStorageTaskController.java
@@ -1,8 +1,15 @@
 package com.mes.rawglasstask.controller;
 
 
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import com.mes.rawglasstask.entity.request.RawGlassTaskRequest;
+import com.mes.rawglasstask.service.RawGlassStorageTaskService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-
 import org.springframework.web.bind.annotation.RestController;
 
 /**
@@ -14,8 +21,14 @@
  * @since 2024-09-10
  */
 @RestController
-@RequestMapping("/raw_glass_storage_task/raw-glass-storage-task")
+@RequestMapping("/raw_glass_storage_task")
 public class RawGlassStorageTaskController {
-
+    @Autowired
+    private RawGlassStorageTaskService rwService; //杩欓噷鏄綘瀹氫箟璋冪敤鐨剆ervice锛岃繖涓槸鎶ュ伐鐨�
+    @ApiOperation("鍘熺墖浠撳偍鏁版嵁鏌ヨ")
+    @PostMapping("/selectRawglasstask")
+    public Result selectDamage(@RequestBody RawGlassTaskRequest rw) {
+        return Result.build(200,"鏌ヨ鎴愬姛", rwService.setRawGlassTaskRequest(rw));
+    }
 }
 
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java
index 0249fa8..8026eab 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java
@@ -20,14 +20,35 @@
 public class RawGlassStorageTask implements Serializable {
 
     private static final long serialVersionUID = 1L;
+//    public Object getEndTime;
 
-      @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
+
+    /**
+     * 浠诲姟ID
+     */
+    private Integer enableId;
 
     /**
      * 璧峰鏍煎瓙
      */
     private Integer originateSlot;
+
+    /**
+     * 鐩爣鏍煎瓙
+     */
+    private Integer endSlot;
+
+    /**
+     * 鍘熺墖鏁伴噺
+     */
+    private String patternQuantity;
+
+    /**
+     * 浠诲姟绫诲瀷
+     */
+    private Integer enableType;
 
     /**
      * 浠诲姟鐘舵��
@@ -37,7 +58,8 @@
     /**
      * 鍒涘缓鏃堕棿
      */
-    private LocalDateTime createTime;
+    private String createTime;
+
 
 
 }
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/request/RawGlassTaskRequest.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/request/RawGlassTaskRequest.java
new file mode 100644
index 0000000..91489d1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/request/RawGlassTaskRequest.java
@@ -0,0 +1,39 @@
+package com.mes.rawglasstask.entity.request;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class RawGlassTaskRequest  {
+
+    /**
+     * 浠诲姟绫诲瀷   1 鍏ュ簱    2 鍑哄簱    3 璋冨害
+     */
+    private List<Integer> enableState;
+    /**
+     * 浠诲姟鐘舵��   1 鏂板缓  2 鎵ц涓�   3 瀹屾垚
+     */
+    private List<Integer> enableType;
+
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createTime;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date patternQuantity;
+
+}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/RawGlassStorageTaskService.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/RawGlassStorageTaskService.java
index 58c1fbd..6353bcb 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/RawGlassStorageTaskService.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/RawGlassStorageTaskService.java
@@ -1,22 +1,24 @@
 package com.mes.rawglasstask.service;
 
-import com.mes.rawglassstation.entity.RawGlassStorageStation;
-import com.mes.rawglasstask.entity.RawGlassStorageTask;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import com.mes.rawglasstask.entity.request.RawGlassTaskRequest;
 
 import java.util.List;
+import java.util.Map;
 
 /**
- * <p>
- *  鏈嶅姟绫�
- * </p>
- *
- * @author wf
- * @since 2024-09-10
+ * @author system
+ * @since 2024-07-09 14:51:27
  */
 public interface RawGlassStorageTaskService extends IService<RawGlassStorageTask> {
-    List<RawGlassStorageTask> selectTasks();
+
+    List<RawGlassStorageTask> findAll();
+    String setRawGlassTaskRequest(RawGlassTaskRequest request);
+
+    List<RawGlassStorageTask> selectTask();
+    List<RawGlassStorageTask> selectTasking(RawGlassStorageTask rawGlassStorageTask);
     boolean updateRawGlassStorageTask(String originate_slot);
     boolean deleteRawGlassStorageTask(String id);
     boolean insertRawGlassStorageTask(RawGlassStorageTask rw);
-}
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
new file mode 100644
index 0000000..ff99076
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
@@ -0,0 +1,122 @@
+package com.mes.rawglasstask.service.impl;
+
+import com.baomidou.mybatisplus.core.assist.ISqlRunner;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.common.utils.RedisUtil;
+import com.mes.pp.entity.request.Reportingdamage;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import com.mes.rawglasstask.entity.request.RawGlassTaskRequest;
+import com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper;
+import com.mes.rawglasstask.service.RawGlassStorageTaskService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Service
+@Slf4j
+public class RawGlassRawGlassStorageTaskServiceImpl extends ServiceImpl<RawGlassStorageTaskMapper, RawGlassStorageTask> implements RawGlassStorageTaskService {
+
+
+    @Autowired
+    RedisUtil redisUtil;
+
+    @Override
+    public List<RawGlassStorageTask> findAll() {
+        RawGlassTaskRequest request = redisUtil.getCacheObject("rawGlassTaskRequest");
+        if (null == request) {
+            request = new RawGlassTaskRequest();
+            //璁剧疆榛樿鏃堕棿    startDate锛氬紑濮嬫椂闂�   endDate锛氱粨鏉熸椂闂�
+            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);
+            //return null;
+        }
+
+        QueryWrapper<RawGlassStorageTask> queryWrapper = new QueryWrapper<>();
+        //涓嬮潰杩欎釜鍒楁槸鏌ヨ瀛楁锛屼笉瑕佸彲浠ュ垹鎺夐粯璁ゆ煡璇㈠叏閮�
+        queryWrapper.ge("create_time", request.getCreateTime())//澶т簬鏃堕棿
+                .le("create_time",request.getPatternQuantity());//灏忎簬鏃堕棿
+//                .orderByDesc("enable_id");//鎺掑簭瀛楁
+        if(!request.getEnableType().isEmpty()&&request.getEnableType().size()>0){
+            queryWrapper.eq("enable_type", request.getEnableType().get(0));
+        }if(!request.getEnableState().isEmpty()&&request.getEnableState().size()>0){
+            queryWrapper.eq("enable_state", request.getEnableState().get(0));
+        }
+
+        return baseMapper.selectList(queryWrapper);
+    }
+
+    @Override
+    public String setRawGlassTaskRequest(RawGlassTaskRequest request) {
+        if (request == null) {
+            redisUtil.deleteObject("rawGlassTaskRequest");
+        } else {
+            redisUtil.setCacheObject("rawGlassTaskRequest", request);
+        }
+        log.info("鍓嶇浼犲叆鍙傛暟锛歿}",request);
+        return "success";
+    }
+
+    @Override
+    public List<RawGlassStorageTask> selectTask() {
+        return list();
+    }
+
+    @Override
+    public List<RawGlassStorageTask> selectTasking(RawGlassStorageTask rw) {
+        QueryWrapper<RawGlassStorageTask> queryWrapper = new QueryWrapper<>();
+        //涓嬮潰杩欎釜鍒楁槸鏌ヨ瀛楁锛屼笉瑕佸彲浠ュ垹鎺夐粯璁ゆ煡璇㈠叏閮�
+        queryWrapper.ge("create_time", rw.getCreateTime())//澶т簬鏃堕棿
+                .le("create_time",rw.getPatternQuantity())//灏忎簬鏃堕棿
+                .groupBy("enable_id");//鎺掑簭瀛楁
+        if(rw.getEnableType()!=null){
+            queryWrapper.eq("enable_type", rw.getEnableType());
+        }if(rw.getEnableState()!=null){
+            queryWrapper.eq("enable_state", rw.getEnableState());
+        }
+        return baseMapper.selectList(queryWrapper);
+//        return  list(queryWrapper);
+    }
+    @Override
+    public boolean insertRawGlassStorageTask(RawGlassStorageTask rw) {
+        return this.save(rw);
+    }
+    @Override
+    public boolean updateRawGlassStorageTask(String originate_slot) {
+        UpdateWrapper<RawGlassStorageTask> wrapper = new UpdateWrapper<>();
+        wrapper.set("originate_slot","1005")
+                .eq( "originate_slot",originate_slot);
+        return update(wrapper);
+    }
+
+    @Override
+    public boolean deleteRawGlassStorageTask(String id) {
+        QueryWrapper<RawGlassStorageTask> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("id", id);
+        return  remove(queryWrapper);
+    }
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/impl/RawGlassStorageTaskServiceImpl.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/impl/RawGlassStorageTaskServiceImpl.java
deleted file mode 100644
index ec055f0..0000000
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/impl/RawGlassStorageTaskServiceImpl.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.mes.rawglasstask.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
-import com.mes.rawglassstation.entity.RawGlassStorageStation;
-import com.mes.rawglasstask.entity.RawGlassStorageTask;
-import com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper;
-import com.mes.rawglasstask.service.RawGlassStorageTaskService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * <p>
- *  鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author wf
- * @since 2024-09-10
- */
-@Service
-public abstract class RawGlassStorageTaskServiceImpl extends ServiceImpl<RawGlassStorageTaskMapper, RawGlassStorageTask> implements RawGlassStorageTaskService {
-
-    public List<RawGlassStorageTask> selectDetails() {
-        return list();
-    }
-    @Override
-    public boolean insertRawGlassStorageTask(RawGlassStorageTask rw) {
-        return this.save(rw);
-    }
-    @Override
-    public boolean updateRawGlassStorageTask(String originate_slot) {
-        UpdateWrapper<RawGlassStorageTask> wrapper = new UpdateWrapper<>();
-        wrapper.set("originate_slot","1005")
-                .eq( "originate_slot",originate_slot);
-        return update(wrapper);
-    }
-
-    @Override
-    public boolean deleteRawGlassStorageTask(String id) {
-        QueryWrapper<RawGlassStorageTask> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("id", id);
-        return  remove(queryWrapper);
-    }
-}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-prod.yml
index 782f39a..ed9d83e 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-prod.yml
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-prod.yml
@@ -5,7 +5,7 @@
       strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
       datasource:
         hangzhoumes:
-          url: jdbc:mysql://127.0.0.1:3306/yiwumes?serverTimezone=GMT%2b8
+          url: jdbc:mysql://10.153.19.150:3306/yiwumes?serverTimezone=GMT%2b8
           username: root
           password: beibo.123/
           driver-class-name: com.mysql.cj.jdbc.Driver
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java
index 8d43e9b..dd22447 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java
@@ -3,6 +3,9 @@
 import com.mes.GlassStorageApplication;
 import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
 import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import com.mes.rawglasstask.entity.request.RawGlassTaskRequest;
+import com.mes.rawglasstask.service.RawGlassStorageTaskService;
 import com.mes.rawusage.entity.RawUsage;
 import com.mes.rawusage.service.RawUsageService;
 import com.mes.shelfrack.service.ShelfRackService;
@@ -14,7 +17,12 @@
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -37,8 +45,9 @@
     @Autowired
     private RawUsageService rawUsageService;
     @Autowired
-    private RawGlassStorageDetailsService  rawGlassStorageDetailsService;
-
+    private RawGlassStorageDetailsService rawGlassStorageDetailsService;
+    @Autowired
+    private RawGlassStorageTaskService rawGlassStorageTaskService;
 
     @Test
     public void testFindPath() {
@@ -63,6 +72,40 @@
         shelfRackService.selectshelf_rack();
     }
 
+    /**
+     * 娴嬭瘯
+     */
+    @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
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml
index 697a608..71101bf 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml
@@ -1,7 +1,7 @@
 spring:
   datasource:
     dynamic:
-      primary: salve_hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
       strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
       datasource:
         hangzhoumes:
@@ -10,10 +10,10 @@
           password: beibo.123/
           driver-class-name: com.mysql.cj.jdbc.Driver
         salve_hangzhoumes:
-            url: jdbc:sqlserver://10.153.19.150:1433;databasename=hangzhoumes
-            username: sa
-            password: beibo.123/
-            driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+          url: jdbc:sqlserver://10.153.19.150:1433;databasename=hangzhoumes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
         pp:
           url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
           username: root
@@ -29,7 +29,7 @@
       discovery:
         server-addr: 10.153.19.150:8848
   application:
-        name: temperingGlass
+    name: temperingGlass
   redis:
     database: 0
     host: 10.153.19.150
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
index 471cdae..4eb19cc 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
@@ -2,7 +2,7 @@
   port: 8084
 spring:
   profiles:
-    active: dev
+    active: prod
   application:
     name: temperingGlass
   liquibase:
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelog.sql b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelog.sql
index 68e1a70..64764d3 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelog.sql
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelog.sql
@@ -1,11 +1,11 @@
---liquibase formatted sql
+-- liquibase formatted sql
 
---changeset zsh:20240904001
---preconditions onFail:CONTINUE onError:CONTINUE
---precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sys_dict_type';
+-- changeset zsh:20240904001
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sys_dict_type';
 CREATE TABLE sys_dict_type
 (
-    dict_id     BIGINT AUTO_INCREMENT PRIMARY KEY,
+    dict_id     INT AUTO_INCREMENT PRIMARY KEY,
     dict_name   VARCHAR(32) NOT NULL,
     dict_type   VARCHAR(32) NOT NULL,
     state       CHAR(1)     NOT NULL DEFAULT TRUE,
@@ -13,14 +13,14 @@
     create_time TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP,
     deleted     char(1)              DEFAULT 0
 );
---rollback DROP TABLE sys_dict_type;
+-- rollback DROP TABLE sys_dict_type;
 
---changeset zsh:20240904002
---preconditions onFail:CONTINUE onError:CONTINUE
---precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sys_dict_data';
+-- changeset zsh:20240904002
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sys_dict_data';
 CREATE TABLE sys_dict_data
 (
-    dict_id         BIGINT AUTO_INCREMENT PRIMARY KEY,
+    dict_id         INT AUTO_INCREMENT PRIMARY KEY,
     dict_sort       INT         NOT NULL,
     dict_label      VARCHAR(32) NOT NULL,
     dict_value      VARCHAR(32) NOT NULL,
@@ -31,12 +31,12 @@
     create_time     TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP,
     deleted         char(1)              DEFAULT 0
 );
---rollback DROP TABLE sys_dict_data;
+-- rollback DROP TABLE sys_dict_data;
 
 
---changeset zsh:20240904003
---preconditions onFail:CONTINUE onError:CONTINUE
---precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM sys_dict_type WHERE dict_type in ('clearGlass', 'silver', 'doubleSilver', 'thirdSilver', 'ultraClear', 'heatReflect');
+-- changeset zsh:20240904003
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM sys_dict_type WHERE dict_type in ('clearGlass', 'silver', 'doubleSilver', 'thirdSilver', 'ultraClear', 'heatReflect');
 INSERT INTO sys_dict_type (dict_name, dict_type, state, description, deleted)
 VALUES ('鐧界幓', 'clearGlass', '1', '0', '0');
 INSERT INTO sys_dict_type (dict_name, dict_type, state, description, deleted)
@@ -49,11 +49,11 @@
 VALUES ('瓒呯櫧', 'ultraClear', '1', '4', '0');
 INSERT INTO sys_dict_type (dict_name, dict_type, state, description, deleted)
 VALUES ('鐑弽灏�', 'heatReflect', '1', '5', '0');
---rollback DELETE FROM sys_dict_type WHERE dict_type in ('clearGlass', 'silver', 'doubleSilver', 'thirdSilver', 'ultraClear', 'heatReflect');
+-- rollback DELETE FROM sys_dict_type WHERE dict_type in ('clearGlass', 'silver', 'doubleSilver', 'thirdSilver', 'ultraClear', 'heatReflect');
 
---changeset zsh:20240904004
---preconditions onFail:CONTINUE onError:CONTINUE
---precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM sys_dict_data WHERE dict_type in ('clearGlass', 'silver', 'doubleSilver', 'thirdSilver', 'ultraClear', 'heatReflect');
+-- changeset zsh:20240904004
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM sys_dict_data WHERE dict_type in ('鐧界幓', '鍗曢摱', '鍙岄摱');
 INSERT INTO sys_dict_data(dict_sort, dict_label, dict_value, dict_type, dict_type_value, state, description, deleted)
 VALUES (1, '鐧界幓', 'clearGlass', '鐧界幓', '0', '1', '1', '0');
 INSERT INTO sys_dict_data(dict_sort, dict_label, dict_value, dict_type, dict_type_value, state, description, deleted)
@@ -150,7 +150,61 @@
 VALUES (1, '鍙岄摱lowe', 'doubleSilverLowe', '鍙岄摱', '2', '1', '1', '0');
 INSERT INTO sys_dict_data(dict_sort, dict_label, dict_value, dict_type, dict_type_value, state, description, deleted)
 VALUES (2, '瓒呯櫧鍙岄摱Lowe', 'ultraDoubleSilverLowe', '鍙岄摱', '2', '1', '1', '0');
---rollback DELETE FROM sys_dict_data WHERE dict_type in ('clearGlass', 'silver', 'doubleSilver', 'thirdSilver', 'ultraClear', 'heatReflect');
+-- rollback DELETE FROM sys_dict_data WHERE dict_type in ('鐧界幓', '鍗曢摱', '鍙岄摱');
+
+
+-- changeset wangfei:20240918001
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'raw_glass_storage_details';
+CREATE TABLE raw_glass_storage_details
+(
+    id            bigint NOT NULL AUTO_INCREMENT,
+    device_id     int NULL DEFAULT NULL COMMENT '璁惧id',
+    slot_id       varchar(255) NULL DEFAULT NULL COMMENT '鏍煎瓙id',
+    pattern_width double(8, 2
+) NULL DEFAULT NULL COMMENT '鍘熺墖瀹�',
+    pattern_height double(8, 2) NULL DEFAULT NULL COMMENT '鍘熺墖楂�',
+    pattern_thickness double(8, 2) NULL DEFAULT NULL COMMENT '鍘熺墖鍘氬害',
+    films_id varchar(255)  NULL DEFAULT NULL COMMENT '鑶滅郴',
+    create_time datetime NOT NULL COMMENT '鍒涘缓鏃堕棿',
+    remain_quantity varchar(255)  NULL DEFAULT NULL COMMENT '鍓╀綑鏁伴噺',
+    PRIMARY KEY (id) USING BTREE
+);
+-- rollback DROP TABLE raw_glass_storage_details;
+
+
+-- changeset wangfei:20240918002
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'raw_glass_storage_station';
+CREATE TABLE raw_glass_storage_station
+(
+    id           bigint NOT NULL AUTO_INCREMENT,
+    device_id    int NULL DEFAULT NULL COMMENT '璁惧id',
+    slot         int NULL DEFAULT NULL COMMENT '鏍呮牸鍙�',
+    enable_state varchar(255) NULL DEFAULT NULL COMMENT '鍚敤鏍囪',
+    start_slot   int NULL DEFAULT NULL COMMENT '寮�濮嬪伐浣�',
+    end_slot     int NULL DEFAULT NULL COMMENT '鐩爣宸ヤ綅',
+    PRIMARY KEY (id) USING BTREE
+);
+-- rollback DROP TABLE raw_glass_storage_station;
+
+
+-- changeset wangfei:20240918003
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'raw_glass_storage_task';
+CREATE TABLE raw_glass_storage_task
+(
+    id               bigint NOT NULL AUTO_INCREMENT,
+    enable_id        int NULL DEFAULT NULL COMMENT '浠诲姟ID',
+    originate_slot   int NULL DEFAULT NULL COMMENT '璧峰鏍煎瓙',
+    end_slot         int NULL DEFAULT NULL COMMENT '鐩爣鏍煎瓙',
+    pattern_quantity varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '鍘熺墖鏁伴噺',
+    enable_type      int NULL DEFAULT NULL COMMENT '浠诲姟绫诲瀷',
+    enable_state     int NULL DEFAULT NULL COMMENT '浠诲姟鐘舵��',
+    create_time      datetime NULL DEFAULT NULL COMMENT '鍒涘缓鏃堕棿',
+    PRIMARY KEY (id) USING BTREE
+);
+-- rollback DROP TABLE raw_glass_storage_task;
 
 
 
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelogBase.xml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelogBase.xml
new file mode 100644
index 0000000..a98a47b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelogBase.xml
@@ -0,0 +1,12 @@
+<databaseChangeLog
+        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
+                      http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
+
+    <!-- 寮曞叆绗竴涓猄QL閰嶇疆鏂囦欢 -->
+    <include file="./changelog/changelog.sql" relativeToChangelogFile="false"/>
+
+    <!-- 鏇村鐨刬nclude鏍囩... -->
+
+</databaseChangeLog>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/pom.xml b/hangzhoumesParent/moduleService/yiwumes/pom.xml
new file mode 100644
index 0000000..3b4c457
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/pom.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>moduleService</artifactId>
+        <groupId>com.mes</groupId>
+        <version>1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>glassStorage</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+            <version>5.2.4</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.8.9</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/GlassStorageApplication.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/GlassStorageApplication.java
new file mode 100644
index 0000000..1d461dc
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/GlassStorageApplication.java
@@ -0,0 +1,28 @@
+package com.mes;
+
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/7 14:36RRRR
+ * @Description:
+ */
+@Slf4j
+@SpringBootApplication
+@EnableSwagger2WebMvc
+@EnableDiscoveryClient
+@MapperScan(basePackages = "com.mes.*.mapper")
+@EnableScheduling
+public class GlassStorageApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(GlassStorageApplication.class, args);
+    }
+
+}
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/job/push.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/job/push.java
new file mode 100644
index 0000000..263f5f7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/job/push.java
@@ -0,0 +1,54 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
+import com.mes.shelfrack.service.ShelfRackService;
+import com.mes.storagetask.entity.request.StorageTaskRequest;
+import com.mes.storagetask.service.StorageTaskService;
+import com.mes.tools.WebSocketServer;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Component
+public class push {
+
+    @Autowired
+    private StorageTaskService storageTaskService;
+    @Autowired
+    private ShelfRackService shelfRackService;
+
+
+    @Scheduled(fixedDelay = 2000)
+    public void sendDownWorkstations() {
+        log.info("鍙戦�佷换鍔′俊鎭拰鏋跺瓙淇℃伅");
+        JSONObject jsonObject = new JSONObject();
+
+        List<RawUsageAndShelfRack> rack =  shelfRackService.selectshelf_rack();
+        List<StorageTaskRequest>  tasks =  storageTaskService.Tasks();
+
+        jsonObject.append("rack",rack);
+        jsonObject.append("tasks",tasks);
+        log.info(jsonObject.toString());
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("storageTask");
+        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/yiwumes/src/main/java/com/mes/loadposition/controller/LoadPositionController.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/controller/LoadPositionController.java
new file mode 100644
index 0000000..1824915
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/controller/LoadPositionController.java
@@ -0,0 +1,99 @@
+package com.mes.loadposition.controller;
+
+import com.mes.loadposition.entity.LoadPosition;
+import com.mes.loadposition.service.LoadPositionService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ *  
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@RestController
+@RequestMapping("/api/loadPosition")
+@Api(tags = " 鎺у埗鍣�")
+public class LoadPositionController {
+
+    @Autowired
+    private LoadPositionService loadPositionService;
+
+    /**
+     * 鍒楄〃鏌ヨ
+     *
+     * @param params
+     * @return
+     */
+    @ApiOperation(value = "鍒楄〃鏌ヨ",notes = "鍒楄〃鏌ヨ",produces = "application/json")
+    @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+    @PostMapping("/findList")
+    public Result findList(@RequestBody LoadPosition params) {
+        List<LoadPosition> result = loadPositionService.findList(params);
+        return Result.success(result);
+    }
+
+    /**
+     * 鏌ヨ
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "鏌ヨ", notes = "鏌ヨ璇︽儏")
+    @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+    @GetMapping("/{id}")
+    public Result findById(@PathVariable("id") Long id) {
+        LoadPosition loadPosition = loadPositionService.getBaseMapper().selectById(id);
+        return Result.success(loadPosition);
+    }
+
+    /**
+     * 鏂板
+     *
+     * @param loadPosition
+     * @return
+     */
+    @ApiOperation(value = "鏂板", notes = "鏂板鏁版嵁")
+    @ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
+    @PostMapping
+    public Result insert( @RequestBody LoadPosition loadPosition) {
+        boolean result = loadPositionService.save(loadPosition);
+        return Result.success(result);
+    }
+
+    /**
+     * 淇敼
+     *
+     * @param loadPosition
+     * @return
+     */
+    @ApiOperation(value = "淇敼", notes = "淇敼鏁版嵁")
+    @ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
+    @PutMapping
+    public Result update( @RequestBody LoadPosition loadPosition) {
+        boolean result = loadPositionService.updateById(loadPosition);
+        return Result.success(result);
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "鍒犻櫎", notes = "鍒犻櫎鏁版嵁")
+    @DeleteMapping("/{id}")
+    public Result delete(@PathVariable("id") Long id) {
+        int result = loadPositionService.getBaseMapper().deleteById(id);
+        return Result.success(result);
+    }
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/entity/LoadPosition.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/entity/LoadPosition.java
new file mode 100644
index 0000000..a5ec526
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/entity/LoadPosition.java
@@ -0,0 +1,79 @@
+package com.mes.loadposition.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.stereotype.Component;
+
+import java.io.Serializable;
+
+/**
+ *  
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Data
+@Component
+@EqualsAndHashCode(callSuper = false)
+@TableName("load_position")
+@ApiModel(value = "LoadPosition", description = " ")
+public class LoadPosition implements Serializable{
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     *   
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     *  鏋跺瓙缂栧彿
+     */
+    @ApiModelProperty("鏋跺瓙缂栧彿")
+    private String number;
+
+    /**
+     *  鏈哄櫒缂栧彿
+     */
+    @ApiModelProperty("鏈哄櫒缂栧彿")
+    private Long machineId;
+
+    /**
+     *  鍚敤鏍囪
+     */
+    @ApiModelProperty("鍚敤鏍囪")
+    private String flag;
+
+    /**
+     *  宸ヤ綔鐘舵��
+     */
+    @ApiModelProperty("宸ヤ綔鐘舵��")
+    private String state;
+
+    /**
+     *  浠撳偍浠诲姟缂栧彿
+     */
+    @ApiModelProperty("浠撳偍浠诲姟缂栧彿")
+    private Integer storageTaskId;
+
+    /**
+     *  涓婄墖浣嶇被鍨�
+     */
+    @ApiModelProperty("涓婄墖浣嶇被鍨�")
+    private Integer typeFlag;
+
+    /**
+     *  绾胯矾
+     */
+    @ApiModelProperty("绾胯矾")
+    private Integer routeGroup;
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.java
new file mode 100644
index 0000000..8ab100f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.java
@@ -0,0 +1,16 @@
+package com.mes.loadposition.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.loadposition.entity.LoadPosition;
+
+/**
+ *  
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ *
+ */
+
+public interface LoadPositionMapper extends BaseMapper<LoadPosition> {
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.xml b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.xml
new file mode 100644
index 0000000..7311228
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.mapper.LoadPositionMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/service/LoadPositionService.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/service/LoadPositionService.java
new file mode 100644
index 0000000..42d41c0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/service/LoadPositionService.java
@@ -0,0 +1,19 @@
+package com.mes.loadposition.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.loadposition.entity.LoadPosition;
+
+
+import java.util.List;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+public interface LoadPositionService extends IService<LoadPosition> {
+
+    List<LoadPosition> findList(LoadPosition params);
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/service/impl/LoadPositionServiceImpl.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/service/impl/LoadPositionServiceImpl.java
new file mode 100644
index 0000000..5e9c990
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/service/impl/LoadPositionServiceImpl.java
@@ -0,0 +1,32 @@
+package com.mes.loadposition.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.loadposition.entity.LoadPosition;
+
+import com.mes.loadposition.service.LoadPositionService;
+import com.mes.loadposition.mapper.LoadPositionMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Service
+public class LoadPositionServiceImpl extends ServiceImpl<LoadPositionMapper, LoadPosition> implements LoadPositionService {
+
+    @Autowired
+    private LoadPositionMapper loadPositionMapper;
+
+    @Override
+    public List<LoadPosition> findList(LoadPosition params){
+        LambdaQueryWrapper<LoadPosition> query = Wrappers.lambdaQuery(LoadPosition.class);
+        return loadPositionMapper.selectList(query);
+    }
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/controller/RawUsageController.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/controller/RawUsageController.java
new file mode 100644
index 0000000..edd0b4d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/controller/RawUsageController.java
@@ -0,0 +1,119 @@
+package com.mes.rawusage.controller;
+
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
+import com.mes.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.web.bind.annotation.*;
+import com.mes.rawusage.entity.RawUsage;
+import com.mes.rawusage.service.RawUsageService;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import java.util.List;
+
+/**
+ *  
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@RestController
+@RequestMapping("/api/rawUsage")
+@Api(tags = " 鎺у埗鍣�")
+public class RawUsageController {
+
+    @Autowired
+    private RawUsageService rawUsageService;
+
+    /**
+     * 鍒楄〃鏌ヨ
+     *
+     * @param params
+     * @return
+     */
+    @ApiOperation(value = "鍒楄〃鏌ヨ",notes = "鍒楄〃鏌ヨ",produces = "application/json")
+    @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+    @PostMapping("/findList")
+    public Result findList(@RequestBody RawUsage params) {
+        List<RawUsage> result = rawUsageService.findList(params);
+        return Result.success(result);
+    }
+
+    /**
+     * 鏌ヨ
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "鏌ヨ", notes = "鏌ヨ璇︽儏")
+    @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+    @GetMapping("/{id}")
+    public Result findById(@PathVariable("id") Long id) {
+        RawUsage rawUsage = rawUsageService.getById(id);
+        return Result.success(rawUsage);
+    }
+
+    /**
+     * 鏂板
+     *
+     * @param rawUsage
+     * @return
+     */
+    @ApiOperation(value = "鏂板", notes = "鏂板鏁版嵁")
+    @ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
+    @PostMapping
+    public Result insert( @RequestBody RawUsage rawUsage) {
+        boolean result = rawUsageService.save(rawUsage);
+        return Result.success(result);
+    }
+
+    /**
+     * 淇敼
+     *
+     * @param rawUsage
+     * @return
+     */
+    @ApiOperation(value = "淇敼", notes = "淇敼鏁版嵁")
+    @ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
+    @PostMapping("/updaterawUsage")
+    public Result updaterawUsage(@RequestBody RawUsage rawUsage) {
+        boolean result = rawUsageService.updateById(rawUsage);
+        return Result.success(result);
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "鍒犻櫎", notes = "鍒犻櫎鏁版嵁")
+    @PostMapping("/id")
+    public Result delete(@RequestBody RawUsage rawUsage) {
+         rawUsageService.updateRawPackageAndStorageRack(rawUsage);
+        return Result.success();
+    }
+
+    @ApiOperation(value = "鍏ュ簱", notes = "鍏ュ簱")
+    @PostMapping("/inStorage")
+    public Result inStorage(@RequestBody RawUsageAndShelfRack rawUsage) {
+        rawUsageService.inStorage(rawUsage);
+        return Result.success();
+    }
+
+    @ApiOperation(value = "鍑哄簱", notes = "鍑哄簱")
+    @PostMapping("/outStorage")
+    public Result outStorage(@RequestBody RawUsageAndShelfRack rawUsage) {
+        rawUsageService.outStorage(rawUsage);
+        return Result.success();
+    }
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/entity/RawUsage.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/entity/RawUsage.java
new file mode 100644
index 0000000..a67e11f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/entity/RawUsage.java
@@ -0,0 +1,110 @@
+package com.mes.rawusage.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.stereotype.Component;
+
+/**
+ *  
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Data
+@Component
+@EqualsAndHashCode(callSuper = false)
+@TableName("raw_usage")
+@ApiModel(value = "RawUsage", description = " ")
+public class RawUsage implements Serializable{
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     *   
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     *  鐜荤拑绫诲瀷
+     */
+    @ApiModelProperty("鐜荤拑绫诲瀷")
+    private String rawType;
+
+    /**
+     *  瀹藉害
+     */
+    @ApiModelProperty("瀹藉害")
+    private Float rawWidth;
+
+    /**
+     *  楂樺害
+     */
+    @ApiModelProperty("楂樺害")
+    private Float rawHeight;
+
+    /**
+     *  鍘氬害
+     */
+    @ApiModelProperty("鍘氬害")
+    private Float rawThickness;
+
+    /**
+     *  鐘舵��
+     */
+    @ApiModelProperty("鐘舵��")
+    private String state;
+
+    /**
+     *  棰滆壊
+     */
+    @ApiModelProperty("棰滆壊")
+    private String color;
+
+    /**
+     *  鎬绘暟閲�
+     */
+    @ApiModelProperty("鎬绘暟閲�")
+    private Integer pieces;
+
+    /**
+     *  鍓╀綑鏁伴噺
+     */
+    @ApiModelProperty("鍓╀綑鏁伴噺")
+    private Integer leftPieces;
+
+    /**
+     *  鐗╂枡缂栫爜
+     */
+    @ApiModelProperty("鐗╂枡缂栫爜")
+    private String qrcode;
+
+    /**
+     *  鍒涘缓鏃堕棿
+     */
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    private Date createTime;
+
+    /**
+     *  鐢熶骇鏃ユ湡
+     */
+    @ApiModelProperty("鐢熶骇鏃ユ湡")
+    private Date productionTime;
+
+    /**
+     *  鎵规鍙�
+     */
+    @ApiModelProperty("鎵规鍙�")
+    private String batchId;
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.java
new file mode 100644
index 0000000..a136af1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.java
@@ -0,0 +1,15 @@
+package com.mes.rawusage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.rawusage.entity.RawUsage;
+/**
+ *  
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ *
+ */
+
+public interface RawUsageMapper extends BaseMapper<RawUsage> {
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.xml b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.xml
new file mode 100644
index 0000000..228c012
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.rawusage.mapper.RawUsageMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/service/RawUsageService.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/service/RawUsageService.java
new file mode 100644
index 0000000..225c764
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/service/RawUsageService.java
@@ -0,0 +1,36 @@
+package com.mes.rawusage.service;
+
+import com.mes.rawusage.entity.RawUsage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.shelfrack.entity.ShelfRack;
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
+
+import java.util.List;
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+public interface RawUsageService extends IService<RawUsage> {
+
+    List<RawUsage> findList(RawUsage params);
+
+    /**
+     * @param raw
+     * 淇敼
+     */
+    void updateRawPackageAndStorageRack(RawUsage raw);
+
+    /**
+     * @param raw
+     * 鍏ュ簱
+     */
+    void inStorage(RawUsageAndShelfRack raw);
+
+
+    /**
+     * @param raw
+     * 鍑哄簱
+     */
+    void outStorage(RawUsageAndShelfRack raw);
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/service/impl/RawUsageServiceImpl.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/service/impl/RawUsageServiceImpl.java
new file mode 100644
index 0000000..13d2e22
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/service/impl/RawUsageServiceImpl.java
@@ -0,0 +1,138 @@
+package com.mes.rawusage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.rawusage.mapper.RawUsageMapper;
+import com.mes.rawusage.entity.RawUsage;
+import com.mes.rawusage.service.RawUsageService;
+import com.mes.shelfrack.entity.ShelfRack;
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
+import com.mes.shelfrack.mapper.ShelfRackMapper;
+import com.mes.storagetask.entity.StorageTask;
+import com.mes.storagetask.mapper.StorageTaskMapper;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.lang.reflect.InvocationTargetException;
+import java.time.LocalDateTime;
+import java.util.List;
+
+import static cn.hutool.core.date.DateTime.now;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Service
+public class RawUsageServiceImpl extends ServiceImpl<RawUsageMapper, RawUsage> implements RawUsageService {
+
+    @Autowired
+    private RawUsageMapper rawUsageMapper;
+    @Autowired
+    private ShelfRackMapper shelfRackMapper;
+    @Autowired
+    private StorageTaskMapper storageTaskMapper;
+
+    @Override
+    public List<RawUsage> findList(RawUsage params){
+        LambdaQueryWrapper<RawUsage> query = Wrappers.lambdaQuery(RawUsage.class);
+        return rawUsageMapper.selectList(query);
+    }
+
+    @Override
+    public void updateRawPackageAndStorageRack(RawUsage raw) {
+        // Step 1: 鏌ヨraw_package_id
+        LambdaQueryWrapper<ShelfRack> queryWrapper = Wrappers.lambdaQuery(ShelfRack.class)
+                .eq(ShelfRack::getNumber, raw.getId());
+        ShelfRack shelfRack = shelfRackMapper.selectOne(queryWrapper);
+        if (shelfRack == null) {
+            throw new RuntimeException("鏈壘鍒颁笌鎸囧畾璐ф灦ID鍏宠仈鐨勫師鏂欏寘淇℃伅");
+        }
+
+
+        // Step 2: 鏇存柊raw_package琛�
+        RawUsage rawUsage=new RawUsage();
+
+        rawUsage.setState("绌洪棽");
+        rawUsage.setId(shelfRack.getRawPackageId());
+        rawUsageMapper.updateById(rawUsage);
+
+        // Step 3: 鏇存柊storage_rack琛�
+
+        ShelfRack rack = new ShelfRack();
+        rack.setState("绌洪棽");
+        rack.setRawPackageId(null);  // 璁剧疆RawPackageId涓虹壒瀹氱殑绌哄�硷紝渚嬪0
+        LambdaQueryWrapper<ShelfRack> queryWrapper2 = Wrappers.lambdaQuery(ShelfRack.class)
+                .eq(ShelfRack::getNumber, raw.getId());
+        shelfRackMapper.update(rack, queryWrapper2);
+
+
+    }
+
+
+
+
+
+    @Override
+    public void inStorage(RawUsageAndShelfRack raw) {
+        RawUsage rawPackage = new RawUsage();
+        BeanUtils.copyProperties(raw,rawPackage);
+        rawPackage.setRawType(raw.getRawThickness() + raw.getColor());
+        rawPackage.setState("浣跨敤涓�");
+        rawPackage.setLeftPieces(rawPackage.getPieces());
+        rawUsageMapper.insert(rawPackage);
+
+        // 鏇存柊鏋惰〃
+        ShelfRack rack = new ShelfRack();
+        rack.setState("浣跨敤涓�");
+        rack.setRawPackageId(rawPackage.getId());  // 璁剧疆RawPackageId涓虹壒瀹氱殑绌哄�硷紝渚嬪0
+        LambdaQueryWrapper<ShelfRack> queryWrapper = Wrappers.lambdaQuery(ShelfRack.class)
+                .eq(ShelfRack::getNumber, raw.getNumber());
+        shelfRackMapper.update(rack, queryWrapper);
+        StorageTask storageTask=new StorageTask();
+        storageTask.setTaskState("绛夊緟涓�");
+        storageTask.setTaskType("浠庝粨浣嶅埌鍚婅浣�");
+        storageTask.setLoadRack(raw.getLoadRack());
+        storageTask.setShelfRack(raw.getNumber());
+        storageTask.setRouteGroup(1);
+        storageTask.setStartTime(now());
+        storageTask.setFinishTime(now());
+        insertTask(storageTask);
+
+
+    }
+
+
+    @Override
+    public void outStorage(RawUsageAndShelfRack raw) {
+        ShelfRack rack = new ShelfRack();
+        rack.setState("绛夊緟鍑哄簱");
+        rack.setRawPackageId(null);  // 璁剧疆RawPackageId涓虹壒瀹氱殑绌哄�硷紝渚嬪0
+        LambdaQueryWrapper<ShelfRack> queryWrapper = Wrappers.lambdaQuery(ShelfRack.class)
+                .eq(ShelfRack::getNumber, raw.getNumber());
+        shelfRackMapper.update(rack, queryWrapper);
+
+
+        StorageTask storageTask=new StorageTask();
+        storageTask.setTaskState("绛夊緟涓�");
+        storageTask.setTaskType("浠庝粨浣嶅埌鍚婅浣�");
+        storageTask.setLoadRack(raw.getLoadRack());
+        storageTask.setShelfRack(raw.getNumber());
+        storageTask.setRouteGroup(1);
+        storageTask.setStartTime(now());
+        storageTask.setFinishTime(now());
+        insertTask(storageTask);
+    }
+
+
+    public void insertTask(StorageTask storageTask) {
+        storageTaskMapper.insert(storageTask);
+
+    }
+
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/controller/ShelfRackController.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/controller/ShelfRackController.java
new file mode 100644
index 0000000..a6396a0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/controller/ShelfRackController.java
@@ -0,0 +1,113 @@
+package com.mes.shelfrack.controller;
+
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
+import com.mes.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.web.bind.annotation.*;
+import com.mes.shelfrack.entity.ShelfRack;
+import com.mes.shelfrack.service.ShelfRackService;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import java.util.List;
+import java.util.Map;
+
+/**
+ *  
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@RestController
+@RequestMapping("/api/shelfRack")
+@Api(tags = " 鎺у埗鍣�")
+public class ShelfRackController {
+
+    @Autowired
+    private ShelfRackService shelfRackService;
+
+    /**
+     * 鍒楄〃鏌ヨ
+     *
+     * @param params
+     * @return
+     */
+    @ApiOperation(value = "鍒楄〃鏌ヨ",notes = "鍒楄〃鏌ヨ",produces = "application/json")
+    @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+    @PostMapping("/findList")
+    public Result findList(@RequestBody ShelfRack params) {
+        List<ShelfRack> result = shelfRackService.findList(params);
+        return Result.success(result);
+    }
+
+    /**
+     * 鏌ヨ
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "鏌ヨ", notes = "鏌ヨ璇︽儏")
+    @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+    @GetMapping("/{id}")
+    public Result findById(@PathVariable("id") Long id) {
+        ShelfRack shelfRack = shelfRackService.getBaseMapper().selectById(id);
+        return Result.success(shelfRack);
+    }
+
+    /**
+     * 鏂板
+     *
+     * @param shelfRack
+     * @return
+     */
+    @ApiOperation(value = "鏂板", notes = "鏂板鏁版嵁")
+    @ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
+    @PostMapping
+    public Result insert( @RequestBody ShelfRack shelfRack) {
+        boolean result = shelfRackService.save(shelfRack);
+        return Result.success(result);
+    }
+
+    /**
+     * 淇敼
+     *
+     * @param shelfRack
+     * @return
+     */
+    @ApiOperation(value = "淇敼", notes = "淇敼鏁版嵁")
+    @ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
+    @PutMapping
+    public Result update( @RequestBody ShelfRack shelfRack) {
+        boolean result = shelfRackService.updateById(shelfRack);
+        return Result.success(result);
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "鍒犻櫎", notes = "鍒犻櫎鏁版嵁")
+    @DeleteMapping("/{id}")
+    public Result delete(@PathVariable("id") Long id) {
+        int result = shelfRackService.getBaseMapper().deleteById(id);
+        return Result.success(result);
+    }
+
+
+    @ApiOperation(value = "鏋跺瓙琛ㄦ牸鏌ヨ",notes = "鏋跺瓙琛ㄦ牸鏌ヨ",produces = "application/json")
+    @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+    @GetMapping("/findshelfrack")
+    public Result findshelfrack() {
+        List<RawUsageAndShelfRack> result = shelfRackService.selectshelf_rack();
+        return Result.success(result);
+    }
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/ShelfRack.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/ShelfRack.java
new file mode 100644
index 0000000..0984808
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/ShelfRack.java
@@ -0,0 +1,68 @@
+package com.mes.shelfrack.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.stereotype.Component;
+
+/**
+ *  
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Data
+@Component
+@EqualsAndHashCode(callSuper = false)
+@TableName("shelf_rack")
+@ApiModel(value = "ShelfRack", description = " ")
+public class ShelfRack implements Serializable{
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     *   
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     *  鏋跺瓙缂栧彿
+     */
+    @ApiModelProperty("鏋跺瓙缂栧彿")
+    private String number;
+
+    /**
+     *  宸ヤ綔鐘舵��
+     */
+    @ApiModelProperty("宸ヤ綔鐘舵��")
+    private String state;
+
+    /**
+     *  鍖呭彿缂栧彿
+     */
+    @ApiModelProperty("鍖呭彿缂栧彿")
+    private Integer rawPackageId;
+
+    /**
+     *  淇敼鏃堕棿
+     */
+    @ApiModelProperty("淇敼鏃堕棿")
+    private Date modTime;
+
+    /**
+     *  鍚敤鐘舵��
+     */
+    @ApiModelProperty("鍚敤鐘舵��")
+    private String enableState;
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/request/RawUsageAndShelfRack.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/request/RawUsageAndShelfRack.java
new file mode 100644
index 0000000..8ac00d6
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/request/RawUsageAndShelfRack.java
@@ -0,0 +1,76 @@
+package com.mes.shelfrack.entity.request;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+
+@EqualsAndHashCode(callSuper = false)
+public class RawUsageAndShelfRack {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("ID")
+    private Integer id;
+
+    @ApiModelProperty("鐜荤拑绫诲瀷")
+    private String rawType;
+
+    @ApiModelProperty("瀹藉害")
+    private Float rawWidth;
+
+    @ApiModelProperty("楂樺害")
+    private Float rawHeight;
+
+    @ApiModelProperty("鍘氬害")
+    private Float rawThickness;
+
+    @ApiModelProperty("棰滆壊")
+    private String color;
+
+    @ApiModelProperty("鎬绘暟閲�")
+    private Integer pieces;
+
+    @ApiModelProperty("鍓╀綑鏁伴噺")
+    private Integer leftPieces;
+
+    @ApiModelProperty("鐗╂枡缂栫爜")
+    private String qrcode;
+
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+
+    private Date createTime;
+
+
+
+    private Date productionTime;
+
+    @ApiModelProperty("鎵规鍙�")
+    private String batchId;
+
+    @ApiModelProperty("鏋跺瓙缂栧彿")
+    private String number;
+
+    @ApiModelProperty("宸ヤ綔鐘舵��")
+    private String state;
+
+    @ApiModelProperty("鍖呭彿缂栧彿")
+    private Integer rawPackageId;
+
+
+    private Date modTime;
+
+    @ApiModelProperty("鍚敤鐘舵��")
+    private String enableState;
+
+    @ApiModelProperty("涓婄墖浣嶇紪鍙�")
+    private String loadRack;
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java
new file mode 100644
index 0000000..cb1fcc7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java
@@ -0,0 +1,23 @@
+package com.mes.shelfrack.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.shelfrack.entity.ShelfRack;
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ *  
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ *
+ */
+
+public interface ShelfRackMapper extends MPJBaseMapper<ShelfRack> {
+
+
+    List<RawUsageAndShelfRack> selectshelf_rack();
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/ShelfRackService.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/ShelfRackService.java
new file mode 100644
index 0000000..5afff60
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/ShelfRackService.java
@@ -0,0 +1,20 @@
+package com.mes.shelfrack.service;
+
+import com.mes.shelfrack.entity.ShelfRack;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+public interface ShelfRackService extends IService<ShelfRack> {
+
+    List<ShelfRack> findList(ShelfRack params);
+
+    List<RawUsageAndShelfRack> selectshelf_rack();
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/impl/ShelfRackServiceImpl.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/impl/ShelfRackServiceImpl.java
new file mode 100644
index 0000000..df21e90
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/impl/ShelfRackServiceImpl.java
@@ -0,0 +1,61 @@
+package com.mes.shelfrack.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.toolkit.JoinWrappers;
+import com.mes.common.config.Const;
+import com.mes.rawusage.entity.RawUsage;
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
+import com.mes.shelfrack.mapper.ShelfRackMapper;
+import com.mes.shelfrack.entity.ShelfRack;
+import com.mes.shelfrack.service.ShelfRackService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Service
+public class ShelfRackServiceImpl extends ServiceImpl<ShelfRackMapper, ShelfRack> implements ShelfRackService {
+
+    @Autowired
+    private ShelfRackMapper shelfRackMapper;
+
+    @Override
+    public List<ShelfRack> findList(ShelfRack params){
+        LambdaQueryWrapper<ShelfRack> query = Wrappers.lambdaQuery(ShelfRack.class);
+        return shelfRackMapper.selectList(query);
+    }
+
+//
+//    public void yourMethodName() {
+//        List<Map<String, Object>> resultList = shelfRackMapper.selectMaps(
+//                new LambdaQueryWrapper<ShelfRack>()
+//                        .select(ShelfRack::getNumber, RawUsage::getRawType, RawUsage::getRawWidth,
+//                                RawUsage::getRawHeight, RawUsage::getRawThickness, ShelfRack::getModTime,
+//                                ShelfRack::getEnableState, RawUsage::getPieces, RawUsage::getLeftPieces,
+//                                "(datediff(now(), raw_usage.create_time)) as rukuTime",
+//                                "(concat(if(ROUND(raw_usage.left_pieces / #{param1} * 100, 0) < 20, 20, ROUND(raw_usage.left_pieces / #{param1} * 100, 0)), '%')) as bfb")
+//                        .leftJoin(RawUsage.class, RawUsage::getId, ShelfRack::getRawPackageId)
+//                        .orderByAsc(ShelfRack::getNumber)
+//        );
+//
+//        // Process resultList as needed
+//    }
+
+
+
+    @Override
+    public  List<RawUsageAndShelfRack> selectshelf_rack() {
+        return baseMapper.selectshelf_rack();
+    }
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/controller/StorageTaskController.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/controller/StorageTaskController.java
new file mode 100644
index 0000000..bfafd14
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/controller/StorageTaskController.java
@@ -0,0 +1,129 @@
+package com.mes.storagetask.controller;
+
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
+import com.mes.storagetask.entity.request.StorageTaskRequest;
+import com.mes.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.web.bind.annotation.*;
+import com.mes.storagetask.entity.StorageTask;
+import com.mes.storagetask.service.StorageTaskService;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+/**
+ *  
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@RestController
+@RequestMapping("/api/storageTask")
+@Api(tags = " 鎺у埗鍣�")
+public class StorageTaskController {
+
+    @Autowired
+    private StorageTaskService storageTaskService;
+
+    /**
+     * 鍒楄〃鏌ヨ
+     *
+     * @param params
+     * @return
+     */
+    @ApiOperation(value = "鍒楄〃鏌ヨ",notes = "鍒楄〃鏌ヨ",produces = "application/json")
+    @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+    @PostMapping("/findList")
+    public Result findList(@RequestBody StorageTask params) {
+        List<StorageTask> result = storageTaskService.findList(params);
+        return Result.success(result);
+    }
+
+    /**
+     * 鏌ヨ
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "鏌ヨ", notes = "鏌ヨ璇︽儏")
+    @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+    @GetMapping("/{id}")
+    public Result findById(@PathVariable("id") Long id) {
+        StorageTask storageTask = storageTaskService.getBaseMapper().selectById(id);
+        return Result.success(storageTask);
+    }
+
+    /**
+     * 鏂板
+     *
+     * @param storageTask
+     * @return
+     */
+    @ApiOperation(value = "鏂板", notes = "鏂板鏁版嵁")
+    @ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
+    @PostMapping
+    public Result insert( @RequestBody StorageTask storageTask) {
+        boolean result = storageTaskService.save(storageTask);
+        return Result.success(result);
+    }
+
+    /**
+     * 淇敼
+     *
+     * @param storageTask
+     * @return
+     */
+    @ApiOperation(value = "淇敼", notes = "淇敼鏁版嵁")
+    @ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
+    @PutMapping
+    public Result update( @RequestBody StorageTask storageTask) {
+        boolean result = storageTaskService.updateById(storageTask);
+        return Result.success(result);
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "鍒犻櫎", notes = "鍒犻櫎鏁版嵁")
+    @DeleteMapping("/{id}")
+    public Result delete(@PathVariable("id") Long id) {
+        int result = storageTaskService.getBaseMapper().deleteById(id);
+        return Result.success(result);
+    }
+
+
+    @ApiOperation(value = "浠诲姟鏌ヨ",notes = "浠诲姟鏌ヨ",produces = "application/json")
+    @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+    @GetMapping("/findTasks")
+    public Result findLatestTasks() {
+        List<StorageTaskRequest> result = storageTaskService.Tasks();
+        return Result.success(result);
+    }
+
+
+
+    @ApiOperation(value = "浠诲姟鎿嶄綔", notes = "浠诲姟鎿嶄綔")
+    @PostMapping("/taskUpdate")
+    public Result taskUpdate(@RequestBody Map<String, Object> storageTaskMap) {
+
+        StorageTask task = new StorageTask();
+        task.setType((String) storageTaskMap.get("Type")); // 鍋囪Type鏄瓨鍌ㄥ湪Map涓殑涓�涓敭
+        task.setId((int) storageTaskMap.get("id"));
+        storageTaskService.taskUpdate(task);
+        return Result.success();
+    }
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/entity/StorageTask.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/entity/StorageTask.java
new file mode 100644
index 0000000..0b23459
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/entity/StorageTask.java
@@ -0,0 +1,82 @@
+package com.mes.storagetask.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.apache.xmlbeans.impl.xb.xsdschema.Public;
+import org.springframework.stereotype.Component;
+
+/**
+ *  
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Data
+@Component
+@EqualsAndHashCode(callSuper = false)
+@TableName("storage_task")
+@ApiModel(value = "StorageTask", description = " ")
+public class StorageTask implements Serializable{
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     *   
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     *  浠诲姟绫诲瀷
+     */
+    @ApiModelProperty("浠诲姟绫诲瀷")
+    private String taskType;
+
+    /**
+     *  宸ヤ綔鐘舵��
+     */
+    @ApiModelProperty("宸ヤ綔鐘舵��")
+    private String taskState;
+
+    /**
+     *  浠撳偍鏋跺彿
+     */
+    @ApiModelProperty("浠撳偍鏋跺彿")
+    private String shelfRack;
+
+    /**
+     *  涓婄墖浣嶇紪鍙�
+     */
+    @ApiModelProperty("涓婄墖浣嶇紪鍙�")
+    private String loadRack;
+
+    /**
+     *  绾胯矾
+     */
+    @ApiModelProperty("绾胯矾")
+    private Integer routeGroup;
+
+    /**
+     *  鍒涘缓鏃堕棿
+     */
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    private Date startTime;
+
+    /**
+     *  瀹屾垚鏃堕棿
+     */
+    @ApiModelProperty("瀹屾垚鏃堕棿")
+    private Date finishTime;
+
+    @ApiModelProperty("鍓嶇浠诲姟绫诲瀷")
+    private String Type;
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/entity/request/StorageTaskRequest.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/entity/request/StorageTaskRequest.java
new file mode 100644
index 0000000..cda3ebf
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/entity/request/StorageTaskRequest.java
@@ -0,0 +1,77 @@
+package com.mes.storagetask.entity.request;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class StorageTaskRequest {
+
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     *
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 浠诲姟绫诲瀷
+     */
+    @ApiModelProperty("浠诲姟绫诲瀷")
+    private String taskType;
+
+
+
+    @ApiModelProperty("鍓嶇浠诲姟绫诲瀷")
+    private String Type;
+
+    /**
+     * 宸ヤ綔鐘舵��
+     */
+    @ApiModelProperty("宸ヤ綔鐘舵��")
+    private String taskState;
+
+    /**
+     * 浠撳偍鏋跺彿
+     */
+    @ApiModelProperty("浠撳偍鏋跺彿")
+    private String shelfRack;
+
+    /**
+     * 涓婄墖浣嶇紪鍙�
+     */
+    @ApiModelProperty("涓婄墖浣嶇紪鍙�")
+    private String loadRack;
+
+    /**
+     * 绾胯矾
+     */
+    @ApiModelProperty("绾胯矾")
+    private Integer routeGroup;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    private Date startTime;
+
+    /**
+     * 瀹屾垚鏃堕棿
+     */
+    @ApiModelProperty("瀹屾垚鏃堕棿")
+    private Date finishTime;
+
+    @ApiModelProperty("棰滆壊")
+    private String color;
+
+    @ApiModelProperty("鍘氬害")
+    private Float rawThickness;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java
new file mode 100644
index 0000000..4978419
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java
@@ -0,0 +1,25 @@
+package com.mes.storagetask.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.storagetask.entity.StorageTask;
+import com.mes.storagetask.entity.request.StorageTaskRequest;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ *  
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ *
+ */
+@Repository
+public interface StorageTaskMapper extends BaseMapper<StorageTask> {
+
+
+    List<StorageTaskRequest>  selectTasks();
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/StorageTaskService.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/StorageTaskService.java
new file mode 100644
index 0000000..b890452
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/StorageTaskService.java
@@ -0,0 +1,24 @@
+package com.mes.storagetask.service;
+
+import com.mes.storagetask.entity.StorageTask;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.storagetask.entity.request.StorageTaskRequest;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+public interface StorageTaskService extends IService<StorageTask> {
+
+    List<StorageTask> findList(StorageTask params);
+
+    Map<String, Optional<StorageTask>> findLatestTasks();
+
+    List<StorageTaskRequest>  Tasks();
+
+    void taskUpdate(StorageTask storageTask);
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java
new file mode 100644
index 0000000..b7f9110
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java
@@ -0,0 +1,167 @@
+package com.mes.storagetask.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.loadposition.entity.LoadPosition;
+import com.mes.loadposition.mapper.LoadPositionMapper;
+import com.mes.rawusage.entity.RawUsage;
+import com.mes.rawusage.mapper.RawUsageMapper;
+import com.mes.shelfrack.entity.ShelfRack;
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
+import com.mes.shelfrack.mapper.ShelfRackMapper;
+import com.mes.storagetask.entity.request.StorageTaskRequest;
+import com.mes.storagetask.mapper.StorageTaskMapper;
+import com.mes.storagetask.entity.StorageTask;
+import com.mes.storagetask.service.StorageTaskService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Service
+@Slf4j
+public class StorageTaskServiceImpl extends ServiceImpl<StorageTaskMapper, StorageTask> implements StorageTaskService {
+
+    @Autowired
+    private StorageTaskMapper storageTaskMapper;
+    @Autowired
+    private LoadPositionMapper loadPositionMapper;
+    @Autowired
+    private ShelfRackMapper shelfRackMapper;
+    @Autowired
+    private RawUsageMapper rawUsageMapper;
+
+
+    @Override
+    public List<StorageTask> findList(StorageTask params){
+        LambdaQueryWrapper<StorageTask> query = Wrappers.lambdaQuery(StorageTask.class);
+        return storageTaskMapper.selectList(query);
+    }
+
+
+    public Map<String, Optional<StorageTask>> findLatestTasks() {
+        Map<String, Optional<StorageTask>> latestTasks = new HashMap<>();
+
+        // 鏌ヨ鏈�鏂扮殑宸插畬鎴愪换鍔�
+        LambdaQueryWrapper<StorageTask> completedWrapper = new LambdaQueryWrapper<>();
+        completedWrapper.eq(StorageTask::getTaskType, "宸插畬鎴�")
+                .orderByDesc(StorageTask::getId)
+                .last("LIMIT 1");
+        Optional<StorageTask> latestCompletedTask = Optional.ofNullable(storageTaskMapper.selectOne(completedWrapper));
+        latestTasks.put("宸插畬鎴�", latestCompletedTask);
+
+        // 鏌ヨ鏈�鏂扮殑绛夊緟涓换鍔�
+        LambdaQueryWrapper<StorageTask> pendingWrapper = new LambdaQueryWrapper<>();
+        pendingWrapper.eq(StorageTask::getTaskType, "绛夊緟涓�")
+                .orderByDesc(StorageTask::getId);
+        Optional<StorageTask> latestPendingTask = Optional.ofNullable(storageTaskMapper.selectOne(pendingWrapper));
+        latestTasks.put("绛夊緟涓�", latestPendingTask);
+        log.info(latestTasks+"");
+        return latestTasks;
+    }
+
+
+    @Override
+    public   List<StorageTaskRequest>  Tasks() {
+        return baseMapper.selectTasks();
+    }
+
+
+
+    @Override
+    public void taskUpdate(StorageTask request) {
+        Integer taskId = request.getId();
+        String taskType = request.getTaskType();
+        String Type = request.getType();
+        String taskState = request.getTaskState();
+        String shelfRack = request.getShelfRack();
+        String loadRack = request.getLoadRack();
+
+        if ("閲嶆柊寮�濮�".equals(Type)) {
+            StorageTask storageTask = new StorageTask();
+            storageTask.setTaskState("绛夊緟涓�");
+            LambdaQueryWrapper<StorageTask> queryWrapper = Wrappers.lambdaQuery(StorageTask.class)
+                    .eq(StorageTask::getId, request.getId());
+            storageTaskMapper.update(request,queryWrapper);
+        } else if ("瀹屾垚".equals(Type)) {
+            StorageTask existingTask = storageTaskMapper.selectById(taskId);
+            if (existingTask != null && "姝e湪宸ヤ綔".equals(existingTask.getTaskState())) {
+                if ("浠庝粨浣嶅埌涓婄墖浣�".equals(taskType) || "浠庝粨浣嶅埌鍚婅浣�".equals(taskType)) {
+                    LoadPosition loadPosition = new LoadPosition();
+                    loadPosition.setState("姝e湪浣跨敤");
+                    loadPosition.setStorageTaskId(request.getId());
+                    LambdaQueryWrapper<LoadPosition> queryWrapper = Wrappers.lambdaQuery(LoadPosition.class)
+                            .eq(LoadPosition::getNumber, request.getLoadRack());
+                    loadPositionMapper.update(loadPosition, queryWrapper);
+                    StorageTask storageTask = new StorageTask();
+                    storageTask.setTaskState("姝e湪浣跨敤");
+                    LambdaQueryWrapper<StorageTask> StorageTaskqueryWrapper = Wrappers.lambdaQuery(StorageTask.class)
+                            .eq(StorageTask::getId, request.getId());
+                    storageTaskMapper.update(request,StorageTaskqueryWrapper);
+                } else if ("浠庝笂鐗囦綅鍒颁粨浣�".equals(taskType)) {
+                    LoadPosition loadPosition = new LoadPosition();
+                    loadPosition.setState("浣跨敤涓�");
+                    loadPosition.setStorageTaskId(null);
+                    LambdaQueryWrapper<LoadPosition> queryWrapper = Wrappers.lambdaQuery(LoadPosition.class)
+                            .eq(LoadPosition::getNumber, request.getLoadRack());
+                    loadPositionMapper.update(loadPosition, queryWrapper);
+                    ShelfRack loshelfRack = new ShelfRack();
+                    LambdaQueryWrapper<RawUsage> RawUsagequeryWrapper = Wrappers.lambdaQuery(RawUsage.class)
+                            .eq(RawUsage::getId,loshelfRack.getRawPackageId());
+                    RawUsage RawUsage = rawUsageMapper.selectOne(RawUsagequeryWrapper);
+                    if(RawUsage.getLeftPieces()==0){
+                        loshelfRack.setState("绌洪棽");
+                    }else {
+                        loshelfRack.setState("浣跨敤涓�");
+                    }
+                    LambdaQueryWrapper<ShelfRack> loshelfRackqueryWrapper = Wrappers.lambdaQuery(ShelfRack.class)
+                            .eq(ShelfRack::getNumber, request.getLoadRack());
+                    shelfRackMapper.update(loshelfRack, loshelfRackqueryWrapper);
+                } else if ("浠庡悐瑁呬綅鍒颁粨浣�".equals(taskType)) {
+                    LoadPosition loadPosition = new LoadPosition();
+                    loadPosition.setState("绌洪棽");
+                    loadPosition.setStorageTaskId(null);
+                    LambdaQueryWrapper<LoadPosition> queryWrapper = Wrappers.lambdaQuery(LoadPosition.class)
+                            .eq(LoadPosition::getNumber, request.getLoadRack());
+                    loadPositionMapper.update(loadPosition, queryWrapper);
+                    ShelfRack loshelfRack = new ShelfRack();
+                    LambdaQueryWrapper<RawUsage> RawUsagequeryWrapper = Wrappers.lambdaQuery(RawUsage.class)
+                            .eq(RawUsage::getId,loshelfRack.getRawPackageId());
+                    RawUsage RawUsage = rawUsageMapper.selectOne(RawUsagequeryWrapper);
+                    if(RawUsage.getLeftPieces()==1){
+                        loshelfRack.setEnableState("鍚敤");
+                    }else {
+                        loshelfRack.setEnableState(loshelfRack.getEnableState());
+                    }
+                    loadPosition.setState("浣跨敤涓�");
+                    LambdaQueryWrapper<ShelfRack> loshelfRackqueryWrapper = Wrappers.lambdaQuery(ShelfRack.class)
+                            .eq(ShelfRack::getNumber, request.getLoadRack());
+                    shelfRackMapper.update(loshelfRack, loshelfRackqueryWrapper);
+                }
+                StorageTask storageTask = new StorageTask();
+                storageTask.setTaskState("宸插畬鎴�");
+                LambdaQueryWrapper<StorageTask> StorageTaskqueryWrapper = Wrappers.lambdaQuery(StorageTask.class)
+                        .eq(StorageTask::getId, request.getId());
+                storageTaskMapper.update(storageTask, StorageTaskqueryWrapper);
+            }
+        } else if ("鍒犻櫎".equals(Type)) {
+
+            LambdaQueryWrapper<StorageTask> StorageTaskqueryWrapper = Wrappers.lambdaQuery(StorageTask.class)
+                    .eq(StorageTask::getId, request.getId());
+            storageTaskMapper.delete(StorageTaskqueryWrapper);
+        }
+    }
+
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..53a3a66
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application-dev.yml
@@ -0,0 +1,25 @@
+spring:
+  datasource:
+    dynamic:
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        hangzhoumes:
+          url: jdbc:mysql://127.0.0.1:3306/yiwumes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_hangzhoumes:
+          url: jdbc:sqlserver://127.0.0.1:1433;databasename=hangzhoumes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..782f39a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application-prod.yml
@@ -0,0 +1,30 @@
+spring:
+  datasource:
+    dynamic:
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        hangzhoumes:
+          url: jdbc:mysql://127.0.0.1:3306/yiwumes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_hangzhoumes:
+          url: jdbc:sqlserver://10.153.19.150:1433;databasename=hangzhoumes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+        pp:
+          url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8848
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application.yml b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application.yml
new file mode 100644
index 0000000..3b841eb
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application.yml
@@ -0,0 +1,18 @@
+server:
+  port: 8086
+
+spring:
+  profiles:
+    active: dev
+  application:
+    name: glassStorage
+  liquibase:
+    enabled: false
+
+
+mybatis-plus:
+  mapper-locations: classpath*:mapper/*.xml
+  configuration:
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
+
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/resources/mapper/ShelfRackMapper.xml b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/mapper/ShelfRackMapper.xml
new file mode 100644
index 0000000..827ebac
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/mapper/ShelfRackMapper.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.shelfrack.mapper.ShelfRackMapper">
+
+    <resultMap id="ShelfRackResultMap" type="com.mes.shelfrack.entity.request.RawUsageAndShelfRack">
+        <result property="number" column="number"/>
+        <result property="rawType" column="raw_type"/>
+        <result property="rawWidth" column="raw_width"/>
+        <result property="rawHeight" column="raw_height"/>
+        <result property="rawThickness" column="raw_thickness"/>
+        <result property="enableState" column="enable_state"/>
+        <result property="pieces" column="pieces"/>
+        <result property="createTime" column="createTime"  />
+        <result property="batchId" column="batch_id"/>
+    </resultMap>
+    <select id="selectshelf_rack" resultMap="ShelfRackResultMap">
+    <![CDATA[
+        SELECT a.number, b.raw_type, b.raw_width, b.raw_height, b.raw_thickness, a.enable_state, b.pieces,
+               b.batch_id,DATE_FORMAT(b.create_time, '%Y-%m-%d %H:%i:%s') as createTime
+        FROM shelf_rack AS a
+                 LEFT JOIN raw_usage AS b ON a.raw_package_id = b.id
+        ]]>
+</select>
+
+</mapper>
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/resources/mapper/StorageTaskMapper.xml b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/mapper/StorageTaskMapper.xml
new file mode 100644
index 0000000..c5cf51b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/mapper/StorageTaskMapper.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.storagetask.mapper.StorageTaskMapper">
+
+
+    <resultMap id="StorageTaskRequest" type="com.mes.storagetask.entity.request.StorageTaskRequest">
+        <result property="loadRack" column="load_rack"/>
+        <result property="color" column="color"/>
+        <result property="taskState" column="task_state"/>
+        <result property="shelfRack" column="shelf_rack"/>
+        <result property="startTime" column="start_time"/>
+        <result property="rawThickness" column="raw_thickness"/>
+        <result property="routeGroup" column="route_group"/>
+        <result property="id" column="id"  />
+        <result property="taskType" column="task_type"/>
+    </resultMap>
+
+
+
+    <select id="selectTasks" resultMap="StorageTaskRequest">
+        <![CDATA[
+        SELECT d.*, g.raw_thickness, g.color
+        FROM (
+                 (SELECT * FROM storage_task AS a WHERE a.task_state = '宸插畬鎴�' ORDER BY a.id DESC LIMIT 1)
+                 UNION ALL
+                 (SELECT * FROM storage_task AS c WHERE c.task_state = '姝e湪宸ヤ綔')
+                 UNION ALL
+                 (SELECT * FROM storage_task AS b WHERE b.task_state = '绛夊緟涓�')
+             ) AS d
+                 LEFT JOIN shelf_rack AS f ON f.id = d.shelf_rack
+                 LEFT JOIN raw_usage AS g ON g.id = f.raw_package_id
+        ]]>
+    </select>
+
+</mapper>
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/test/java/mes/GlassStorageModuleApplicationTest.java b/hangzhoumesParent/moduleService/yiwumes/src/test/java/mes/GlassStorageModuleApplicationTest.java
new file mode 100644
index 0000000..022d334
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/test/java/mes/GlassStorageModuleApplicationTest.java
@@ -0,0 +1,79 @@
+package mes;
+
+import com.mes.GlassStorageApplication;
+import com.mes.rawusage.entity.RawUsage;
+import com.mes.rawusage.service.RawUsageService;
+import com.mes.shelfrack.entity.ShelfRack;
+import com.mes.shelfrack.service.ShelfRackService;
+import com.mes.storagetask.entity.StorageTask;
+import com.mes.storagetask.service.StorageTaskService;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.Arrays;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/27 16:37
+ * @Description:
+ */
+@Slf4j
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = GlassStorageApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+
+public class GlassStorageModuleApplicationTest {
+
+
+
+    @Autowired
+    private StorageTaskService storageTaskService;
+    @Autowired
+    private ShelfRackService shelfRackService;
+    @Autowired
+    private RawUsageService rawUsageService;
+
+
+    @Test
+    public void testFindPath() {
+        log.info("瀹屾暣璺緞锛歿}", Arrays.asList("123"));
+    }
+
+    @Test
+    public void testCacheGlass() {
+     // storageTaskService.getBaseMapper().selectById(1);
+        //StorageTask storageTask=new StorageTask();
+//        storageTask.setId(Long.valueOf("1"));
+//        storageTask.setTaskState("1");
+//      storageTaskService.updateById(storageTask);
+//        storageTaskService.getBaseMapper().deleteById(1);
+       // storageTaskService.findList(storageTask);
+        ///storageTaskService.findLatestTasks();
+        storageTaskService.Tasks();
+    }
+    @Test
+    public void selectshelf_rack() {
+
+        shelfRackService.selectshelf_rack();
+    }
+
+
+
+    @Test
+    public void updateRawPackageAndStorageRack() {
+        RawUsage raw=new RawUsage();
+
+        raw.setId(null);
+        rawUsageService.updateRawPackageAndStorageRack(raw);
+    }
+
+
+
+
+
+
+
+}
\ No newline at end of file

--
Gitblit v1.8.0