From eba785e5620416d47f72982b97fdefae98a4d875 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期三, 18 九月 2024 16:15:47 +0800
Subject: [PATCH] 1.后端:原片仓储新增是否禁用接口,页面查询接口 2:前端原片仓储界面完善功能,调用部分接口

---
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/controller/LoadPositionController.java                              |   99 ++
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/controller/RawUsageController.java                                      |  119 ++
 UI-Project/src/views/GlassStorage/rawfilmstorage.vue                                                                                           |  454 ++++++++++
 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/yiwumes/src/main/resources/mapper/ShelfRackMapper.xml                                                          |   25 
 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/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/entity/RawGlassStorageTask.java                          |   26 
 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/rawusage/mapper/RawUsageMapper.java                                              |   15 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/ShelfRackService.java                                          |   20 
 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/job/push.java                                                                    |   54 +
 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/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 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java                                                         |   10 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/StorageTaskService.java                                      |   24 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/ShelfRack.java                                                  |   68 +
 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/main/java/com/mes/loadposition/mapper/LoadPositionMapper.xml                                       |    5 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.xml                                               |    5 
 hangzhoumesParent/moduleService/yiwumes/src/test/java/mes/GlassStorageModuleApplicationTest.java                                               |   79 +
 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 +
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-prod.yml                                                     |    2 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java |   65 +
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/request/RawUsageAndShelfRack.java                               |   76 +
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/controller/RawGlassStorageTaskController.java            |   18 
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/entity/LoadPosition.java                                            |   79 +
 hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/entity/request/StorageTaskRequest.java                               |   77 +
 hangzhoumesParent/moduleService/yiwumes/src/main/resources/application-prod.yml                                                                |   30 
 46 files changed, 2,538 insertions(+), 61 deletions(-)

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..bfdf487
--- /dev/null
+++ b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
@@ -0,0 +1,454 @@
+<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"])
+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(() => {
+    connectWebSocket();  
+    // socket = initializeWebSocket(socketUrl, handleMessage);
+});
+onUnmounted(() => {  
+  if (webSocket) {  
+    webSocket.close();  
+  }  
+});
+  // onUnmounted(() => {
+  //   if (socket) {
+  //   closeWebSocket(socket);
+  //   }
+  //   });
+let socket = null;
+const connectWebSocket = () => {  
+  if (!webSocket) {  
+    const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`;
+    webSocket = new WebSocket(socketUrl);  
+    webSocket.onmessage = (event) => {  
+      const data = JSON.parse(event.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 data = JSON.parse(event.data);  
+    //   const scaleFactor =  1621.78/6000; 
+    //   const scaleFactory =  750/3300; 
+    //   if (data.currentCutTerritory && data.currentCutTerritory.length > 0) {
+    //   const newRects = data.currentCutTerritory[0].map(rect => {  
+    //     const existingRect = adjustedRects.value.find(r => r.glass_id === rect.glass_id);  
+        
+    
+    //   });
+    //   adjustedRects.value = newRects;  
+    //  } 
+    };  
+  }
+};  
+// const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`;
+// const handleMessage = (data) => {
+//   // if(data.tasks!=null){
+//   // tableData.splice(0, tableData.length, ...data.prioritylist[0]);
+//   // }
+//   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 () => {
+  const response = await request.post("/glassStorage/raw_glass_storage_task/selectRawglasstask", {
+    createTime: timeRange.value[0],
+    patternQuantity: timeRange.value[1],
+    enableType: report.value.enableType,
+    enableState: report.value.enableState
+  })
+  if (response.code === 200) {
+    tableDataa.value = response.data;
+    ElMessage.success(response.message);
+    if (webSocket) {  
+        webSocket.close();  
+        webSocket = null;
+      }  
+  } else {
+    connectWebSocket();
+    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="report.enableType" 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="report.enableState" 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/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java
index 0096d59..9135a79 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,7 +40,7 @@
         JSONObject jsonObject = new JSONObject();
         List<RawGlassStorageDetails> rack =  rawGlassStorageDetailsService.list();
         List<RawGlassStorageStation> state =  rawGlassStorageStationService.list();
-        List<RawGlassStorageTask> tasks =  rawGlassStorageTaskService.selectTasks();
+        List<RawGlassStorageTask> tasks =  rawGlassStorageTaskService.list();
 
         jsonObject.append("rack",rack);
         jsonObject.append("state",state);
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..97de824 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,14 @@
 package com.mes.rawglasstask.controller;
 
 
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+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 +20,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 RawGlassStorageTask rw) {
+        return Result.build(200,"鏌ヨ鎴愬姛", rwService.selectTasking(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/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
new file mode 100644
index 0000000..6afab45
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
@@ -0,0 +1,65 @@
+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.pp.entity.request.Reportingdamage;
+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.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 {
+    @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/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/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