From b365a0879edc787655b908b0dbb65b5e966bb23b Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期二, 07 五月 2024 09:03:08 +0800
Subject: [PATCH] 公共yml文件 ip  改回10.153.19.150

---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java                              |   77 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java                            |    2 
 UI-Project/src/views/Returns/returns.vue                                                                                                 |  120 +
 hangzhoumesParent/gateway/src/main/resources/application.yml                                                                             |    6 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java                                |   47 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/xml/GlassInfoMapper.xml                                      |    5 
 hangzhoumesParent/common/springsecurity/src/main/resources/application-dev.yml                                                           |   15 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml                                                  |   21 
 hangzhoumesParent.zip                                                                                                                    |    0 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java                  |   29 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml                                                |   25 
 hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java                                |   13 
 UI-Project/src/views/LoginView.vue                                                                                                       |    9 
 UI-Project/src/views/Caching/caching.vue                                                                                                 |  217 --
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/entity/GlassInfo.java                                  |    4 
 hangzhoumesParent/common/springsecurity/src/main/resources/application-loc.yml                                                           |   15 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java                                 |   21 
 UI-Project/src/assets/lp.png                                                                                                             |    0 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java                                       |   82 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java |   14 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java                  |   11 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml                                                      |    4 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java                   |    2 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml                                                     |   26 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java                                      |    2 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java              |   34 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java                      |    2 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml                                             |   20 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java             |   19 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java           |    3 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java               |    1 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java                |   16 
 UI-Project/src/assets/lpa.png                                                                                                            |    0 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java                                                            |    6 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-prod.yml                                                 |   27 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java                                         |   17 
 hangzhoumesParent/gateway/src/main/resources/application-prod.yml                                                                        |    5 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java         |  221 --
 hangzhoumesParent/gateway/src/main/resources/application-dev.yml                                                                         |    5 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java                          |    5 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java                                          |   33 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plcdownglass.java                                         |   84 
 UI-Project/src/router/index.js                                                                                                           |   46 
 hangzhoumesParent/common/springsecurity/src/main/resources/application.yml                                                               |    6 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingAgoService.java               |   23 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-prod.yml                                         |   25 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-loc.yml                                                  |   27 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java  |  114 +
 UI-Project/src/layout/MainErpView.vue                                                                                                    |    3 
 UI-Project/src/views/Identify/identify.vue                                                                                               |  332 +--
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-dev.yml                                                 |   25 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java                      |   47 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcHomeEdg.java                                            |    2 
 UI-Project/src/views/Caching/cachingbefore.vue                                                                                           |  249 ++
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java                                                  |  121 -
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/OptimizeUpPattenUsage.java                               |   68 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml                                                       |   27 
 UI-Project/src/views/Caching/cachingun.vue                                                                                               |  196 ++
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java     |   60 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java                  |    7 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java                                               |  135 +
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-loc.yml                                                   |   25 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java   |   43 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java         |   24 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java          |    9 
 UI-Project/config.js                                                                                                                     |    2 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-dev.yml                                          |   25 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-loc.yml                                          |   25 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-loc.yml                                              |   22 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml                                              |   26 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java                               |    4 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml                                              |   22 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-prod.yml                                                  |   25 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java         |   39 
 UI-Project/src/views/Slicecage/slicecage.vue                                                                                             | 1215 ++++++++-----
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java                         |   98 
 hangzhoumesParent/common/springsecurity/src/main/resources/application-prod.yml                                                          |   15 
 /dev/null                                                                                                                                |   20 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/test/java/com/mes/TemperingApplicationTest.java                                 |   55 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java                          |    2 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml                                                                         |    6 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-dev.yml                                                  |   27 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingAgoServiceImpl.java      |   55 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java                  |   44 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-loc.yml                                                 |   25 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java                              |    2 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java     |    2 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java           |   42 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java                 |   11 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java                                       |   19 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-dev.yml                                                   |   25 
 UI-Project/src/views/PurchaseReturn/purchaseReturn.vue                                                                                   |  252 ++-
 UI-Project/vite.config.js                                                                                                                |    2 
 93 files changed, 3,222 insertions(+), 1,764 deletions(-)

diff --git a/UI-Project/config.js b/UI-Project/config.js
index 788923e..bf51358 100644
--- a/UI-Project/config.js
+++ b/UI-Project/config.js
@@ -1,5 +1,5 @@
 export default {
-  serverUrl: "10.153.19.150:88/api",
+  serverUrl: "127.0.0.1:88/api",
   //serverUrl: "localhost:88/api/",
   serverUrl2: "10.153.19.150:88"
   //serverUrl:"res.abeim.cn"
diff --git a/UI-Project/src/assets/lp.png b/UI-Project/src/assets/lp.png
new file mode 100644
index 0000000..fac27df
--- /dev/null
+++ b/UI-Project/src/assets/lp.png
Binary files differ
diff --git a/UI-Project/src/assets/lpa.png b/UI-Project/src/assets/lpa.png
new file mode 100644
index 0000000..fac27df
--- /dev/null
+++ b/UI-Project/src/assets/lpa.png
Binary files differ
diff --git a/UI-Project/src/layout/MainErpView.vue b/UI-Project/src/layout/MainErpView.vue
index d2e3ed7..65858e0 100644
--- a/UI-Project/src/layout/MainErpView.vue
+++ b/UI-Project/src/layout/MainErpView.vue
@@ -23,7 +23,8 @@
 
 //鎻愬彇鑿滃崟妯″潡鍒楄〃
 let menuList = $ref([])
-request.get('/loadGlass/menu/sysMenu/list').then((res) => {
+// request.get('/loadGlass/menu/sysMenu/list').then((res) => {
+request.get('/loadGlass/sys/menu/getMenuTree').then((res) => {
   if (res.code == 200) {
     menuList = deepClone(res.data)
   } else {
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
index 2ecd57e..ceeccbb 100644
--- a/UI-Project/src/router/index.js
+++ b/UI-Project/src/router/index.js
@@ -1,8 +1,11 @@
-import { createRouter, createWebHistory } from 'vue-router'
-import HomeView from '../views/HomeView.vue'
+import {createRouter, createWebHashHistory} from 'vue-router'
+
+import User from '../views/sys/User.vue'
+import Role from '../views/sys/Role.vue'
+import Menu from '../views/sys/Menu.vue'
 
 const router = createRouter({
-  history: createWebHistory(import.meta.env.BASE_URL),
+  history: createWebHashHistory(),
   routes: [
     {
       path: '/',
@@ -95,9 +98,14 @@
     component: () => import('../views/Caching/caching.vue'),
     children:[
       {
-        path: '/Caching/caching',
-        name: 'caching',
-        component: () => import('../views/Caching/caching.vue')
+        path: '/Caching/cachingbefore',
+        name: 'cachingbefore',
+        component: () => import('../views/Caching/cachingbefore.vue')
+      },
+      {
+        path: '/Caching/cachingun',
+        name: 'cachingun',
+        component: () => import('../views/Caching/cachingun.vue')
       },
     ]
   },
@@ -196,10 +204,34 @@
               component: () => import('../views/Visualization/screenthree.vue')
             }
           ]
+         },
+
+        /*----------- 绠$悊绯荤粺 ----------------*/
+        {
+          path: 'sys',
+          name: 'screen',
+          component: () => import('../views/Visualization/screen.vue'),
+          children: [
+            {
+              path: '/sys/users',
+              name: 'SysUser',
+              component: User
+            },
+            {
+              path: '/sys/roles',
+              name: 'SysRole',
+              component: Role
+            },
+            {
+              path: '/sys/menus',
+              name: 'SysMenu',
+              component: Menu
+            },
+          ]
         },
         {
           path: '',
-          redirect:'/Slicecage/slicecage'
+          redirect: '/Slicecage/slicecage'
         }
       ]
     },
diff --git a/UI-Project/src/views/Caching/caching.vue b/UI-Project/src/views/Caching/caching.vue
index 7ed5e6a..d0567d3 100644
--- a/UI-Project/src/views/Caching/caching.vue
+++ b/UI-Project/src/views/Caching/caching.vue
@@ -1,196 +1,49 @@
 <script setup>
-import {Search} from "@element-plus/icons-vue";
-import {reactive} from "vue";
-import {useRouter} from "vue-router"
-const router = useRouter()
-
-import request from "@/utils/request"
-import { ref, onMounted } from "vue";
-// import { ref } from 'vue'
-import { ElMessage, ElMessageBox } from 'element-plus'
-//  import LanguageMixin from './lang/LanguageMixin'
-
-const tableData = ref([])
-
-// 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰
-// const fetchTableData = async () => {
-//   try {
-//     // 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰锛屽苟绛夊緟鍝嶅簲
-//     // const response = await request.post("/loadGlass/optimizeProject/listByState", requestData);
-//     const response = await request.get("unLoadGlass/downStorage/selectStorageCage");
-
-//     // 妫�鏌ュ搷搴旂姸鎬�
-//     if (response.code === 200) {
-//       // 鏇存柊琛ㄦ牸鏁版嵁
-//       console.log('鎴愬姛鑾峰彇琛ㄦ牸鏁版嵁:', response.data);
-//       tableData.splice(0, tableData.length, ...response.data);
-//     } else {
-//       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
-//       ElMessage.error(response.msg);
-//     }
-//   } catch (error) {
-//     // 澶勭悊璇锋眰澶辫触鐨勬儏鍐�
-//    ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
-//   }
-// };
-// onMounted(fetchTableData);
-
-
-
-request.get("unLoadGlass/downStorage/selectStorageCage").then((res) => {
-          if (res.code == 200) {
-          console.log(res.data);
-          tableData.value = res.data
-          } else {
-          ElMessage.warning(res.msg)
-        
-          }
-          });
-
-const dialogForm = () => {
-  ElMessageBox.confirm(
-    '鏄惁鎶ョ己?',
-    '鎻愮ず',
-    {
-      confirmButtonText: '鏄�',
-      cancelButtonText: '鍙栨秷',
-      type: 'warning',
-    }
-  )
-  .then(() => {
-    // this.boxa = true
-    // this.box = false
-      
-    })
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter} from "vue-router";
+let indexFlag=$ref(1)
+function changeRouter(index){
+  indexFlag=index
 }
-const open = () => {
-  ElMessageBox.confirm(
-    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
-    '鎻愮ず',
-    {
-      confirmButtonText: '鏄�',
-      cancelButtonText: '鍙栨秷',
-      type: 'warning',
-    }
-  )
-    .then(() => {
-      ElMessage({
-        type: 'success',
-        message: '鍒犻櫎鎴愬姛锛�',
-      })
-    })
-    .catch(() => {
-      ElMessage({
-        type: 'info',
-        message: '鍒犻櫎澶辫触',
-      })
-    })
-}
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
-
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'OrderList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },
-  data:  [
-    {
-      'id': '1',
-      'long': '5',
-      'wide': '1005',
-      'thick': '183.6',
-    }
-  ]
- 
-})
-
-
 
 </script>
 
 <template>
-  <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="240" ref="table" 
-        @selection-change="handleSelectionChange"
-        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="id" align="center" label="鐜荤拑ID" min-width="80" />
-          <el-table-column prop="sequence" align="center" label="浣嶇疆" min-width="120" />
-          <el-table-column prop="width" align="center" label="瀹�" min-width="120" />
-          <el-table-column prop="height" align="center" label="闀�" min-width="120" />
-          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
-            <template #default>
-              <el-button size="mini" type="text" plain  @click="dialogForm">鎶ョ己</el-button>
-            </template>
-        </el-table-column>
-        </el-table>
-      </div>
-    </el-card>
+  <!-- <div id="main-div"> -->
    
-  </div>
-  <div id="awatch">
-    <img src="../../assets/woshihuancun.png" alt="" style="width: 60%;height: 90%;margin-left: 260px;margin-top: 20px;">
-<div style="width: 100px;height: 10px;background-color: #409EFF;margin-top: -124px;margin-left: 480px;"></div>
-<div style="width: 100px;height: 10px;background-color: #409EFF;margin-top: -30px;margin-left: 850px;"></div>
-<div style="width: 100px;height: 10px;background-color: #409EFF;margin-top: 30px;margin-left: 695px;"></div>
-</div>
+
+    <div id="main-body">
+      <router-view  />
+    </div>
+  <!-- </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%;}
-#dialog-footer{
-  text-align: center;
-  margin-top: -15px;
+#main-div{
+  width: 100%;
+  height: 100%;
 }
-#message{
-  text-align: center;
-  align-items: center;
-  color: black;
-   width: 200px;
-   height: 100px;
-   background-color: #337ecc;
-   margin-left: 28%;
+#div-title{
+  height: 2%;
+  width: 100%;
 }
-#awatch{
-  height: 460px;
-  /* margin-top: -60px; */
+#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/Caching/cachingbefore.vue b/UI-Project/src/views/Caching/cachingbefore.vue
new file mode 100644
index 0000000..5cf4a38
--- /dev/null
+++ b/UI-Project/src/views/Caching/cachingbefore.vue
@@ -0,0 +1,249 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+const adda = ref(false)
+
+import request from "@/utils/request"
+import { ref, onMounted } from "vue";
+// import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+//  import LanguageMixin from './lang/LanguageMixin'
+
+const tableData = ref([])
+const slot = ref('')
+  
+
+request.post("/cacheGlass/edgStorageCage/selectEdgStorageCage").then((res) => {
+          if (res.code == 200) {
+            
+          console.log(res.data);
+          tableData.value = res.data
+          console.log(res.data[0].slot);
+          } else {
+          ElMessage.warning(res.msg)
+        
+          }
+          });
+
+//   const getTableRow = (row,type) =>{
+//   switch (type) {
+//     case 'delete':{
+//       let flowData = ref({
+//         id:0,
+//         slot:row.slot
+//       })
+//       request.post("/cacheGlass/edgStorageCage/edgStorageCageGlass",flowData.value).then((res) => {
+//         if(res.code==200){
+//           ElMessage.success(t('searchOrder.msgDeleteSuccess'))
+//           router.push({path:'/main/delivery/selectDelivery',query:{random:Math.random()}})
+//         }else{
+//           ElMessage.warning(res.msg)
+//           router.push("/login")
+//         }
+//       })
+
+//       return
+//     }
+//   }
+// }
+// let slots = ref({
+//   id:0,
+//    slot: slot.value
+// })
+const open = async(row) => {  
+  try {  
+    const confirmResult = await ElMessageBox.confirm(  
+      '鏄惁鍒犻櫎璇ユ潯淇℃伅?',  
+      '鎻愮ず',  
+      {  
+        confirmButtonText: '鏄�',  
+        cancelButtonText: '鍙栨秷',  
+        type: 'warning',  
+      }  
+    );  
+    if (confirmResult === 'confirm') {  
+      // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛  
+      const deleteResponse = await request.post("/cacheGlass/edgStorageCage/edgStorageCageGlass", {
+        id:0,
+        slot: row.slot
+    })
+      if (response.code == 200) {  
+        // 鍒犻櫎鎴愬姛锛屾偍鍙互鏍规嵁闇�瑕佸鐞嗘垚鍔熺殑鎯呭喌  
+        alert('鍒犻櫎鎴愬姛锛�');  
+      } else {  
+        // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛  
+        alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);  
+      }  
+    }  
+  } catch (error) {  
+    // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑  
+    console.error('鍙戠敓閿欒:', error);  
+  }  
+};  
+// const open = () => {
+//   ElMessageBox.confirm(
+//     '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+//     '鎻愮ず',
+//     {
+//       confirmButtonText: '鏄�',
+//       cancelButtonText: '鍙栨秷',
+//       type: 'warning',
+//     }
+//   )
+//     .then(() => {
+//       ElMessage({
+//         type: 'success',
+//         message: '鍒犻櫎鎴愬姛锛�',
+//       })
+//     })
+//     .catch(() => {
+//       ElMessage({
+//         type: 'info',
+//         message: '鍒犻櫎澶辫触',
+//       })
+//     })
+// }
+// 鍒犻櫎
+// const handleBindRacka = (row) => {
+//   adda.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+// };
+// // 鍒犻櫎
+// const handleConfirma = async () => {
+//   try {
+//       window.localStorage.setItem('slot', res.data.slot)
+//     let slot = window.localStorage.getItem('slot')
+//     const response = await request.post('/cacheGlass/edgStorageCage/edgStorageCageGlass', {
+//       slot: slot.value,
+//       id: 0
+//     }); 
+ 
+//     if (response.code == 200) {
+//       // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+//       ElMessage.success(response.message);
+//       adda.value = false;
+//     } else {
+//       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+//       ElMessage.error(response.msg);
+//     }
+//   } catch (error) {
+//     // 澶勭悊閿欒
+//     console.error(error);
+//   }
+// };
+
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+    }
+  ]
+ 
+})
+
+
+
+</script>
+
+<template>
+  <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="240" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="slot" align="center" label="鏍呮牸鍙�" min-width="80" />
+          <el-table-column prop="glass_id" align="center" label="鐜荤拑缂栧彿" min-width="80" />
+          <el-table-column prop="width" align="center" label="瀹�" min-width="120" />
+          <el-table-column prop="height" align="center" label="楂�" min-width="120" />
+          <el-table-column
+            align="center"
+            label="鍚敤鐘舵��"
+            min-width="80"
+            prop="enable_state"
+          >
+          <template #default="scope">
+            <el-tag type="success" >{{ scope.row.enable_state==1?"鍚敤":"鏈惎鐢�"  }}</el-tag>
+          </template>
+          </el-table-column>
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default="scope">
+              <!-- <el-button size="mini" type="text" plain @click="handleBindRacka(scope.row)">鎶ョ己</el-button> -->
+              <el-button size="mini" type="text" plain  @click="open(scope.row)">鎶ョ己</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+    <!-- <el-dialog v-model="adda" top="30vh" width="25%" title="鏄惁鍒犻櫎璇ユ潯淇℃伅?" >
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleConfirma">
+          纭
+        </el-button>
+        <el-button @click="adda = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog> -->
+  </div>
+  <div id="awatch">
+    <img src="../../assets/woshihuancun.png" alt="" style="width: 60%;height: 90%;margin-left: 260px;margin-top: 20px;">
+<div style="width: 100px;height: 10px;background-color: #409EFF;margin-top: -124px;margin-left: 480px;"></div>
+<div style="width: 100px;height: 10px;background-color: #409EFF;margin-top: -30px;margin-left: 850px;"></div>
+<div style="width: 100px;height: 10px;background-color: #409EFF;margin-top: 30px;margin-left: 695px;"></div>
+</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%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 460px;
+  /* margin-top: -60px; */
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Caching/cachingun.vue b/UI-Project/src/views/Caching/cachingun.vue
new file mode 100644
index 0000000..7ed5e6a
--- /dev/null
+++ b/UI-Project/src/views/Caching/cachingun.vue
@@ -0,0 +1,196 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+
+import request from "@/utils/request"
+import { ref, onMounted } from "vue";
+// import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+//  import LanguageMixin from './lang/LanguageMixin'
+
+const tableData = ref([])
+
+// 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰
+// const fetchTableData = async () => {
+//   try {
+//     // 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰锛屽苟绛夊緟鍝嶅簲
+//     // const response = await request.post("/loadGlass/optimizeProject/listByState", requestData);
+//     const response = await request.get("unLoadGlass/downStorage/selectStorageCage");
+
+//     // 妫�鏌ュ搷搴旂姸鎬�
+//     if (response.code === 200) {
+//       // 鏇存柊琛ㄦ牸鏁版嵁
+//       console.log('鎴愬姛鑾峰彇琛ㄦ牸鏁版嵁:', response.data);
+//       tableData.splice(0, tableData.length, ...response.data);
+//     } else {
+//       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+//       ElMessage.error(response.msg);
+//     }
+//   } catch (error) {
+//     // 澶勭悊璇锋眰澶辫触鐨勬儏鍐�
+//    ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
+//   }
+// };
+// onMounted(fetchTableData);
+
+
+
+request.get("unLoadGlass/downStorage/selectStorageCage").then((res) => {
+          if (res.code == 200) {
+          console.log(res.data);
+          tableData.value = res.data
+          } else {
+          ElMessage.warning(res.msg)
+        
+          }
+          });
+
+const dialogForm = () => {
+  ElMessageBox.confirm(
+    '鏄惁鎶ョ己?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+  .then(() => {
+    // this.boxa = true
+    // this.box = false
+      
+    })
+}
+const open = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鍒犻櫎鎴愬姛锛�',
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鍒犻櫎澶辫触',
+      })
+    })
+}
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+    }
+  ]
+ 
+})
+
+
+
+</script>
+
+<template>
+  <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="240" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="id" align="center" label="鐜荤拑ID" min-width="80" />
+          <el-table-column prop="sequence" align="center" label="浣嶇疆" min-width="120" />
+          <el-table-column prop="width" align="center" label="瀹�" min-width="120" />
+          <el-table-column prop="height" align="center" label="闀�" min-width="120" />
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default>
+              <el-button size="mini" type="text" plain  @click="dialogForm">鎶ョ己</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+   
+  </div>
+  <div id="awatch">
+    <img src="../../assets/woshihuancun.png" alt="" style="width: 60%;height: 90%;margin-left: 260px;margin-top: 20px;">
+<div style="width: 100px;height: 10px;background-color: #409EFF;margin-top: -124px;margin-left: 480px;"></div>
+<div style="width: 100px;height: 10px;background-color: #409EFF;margin-top: -30px;margin-left: 850px;"></div>
+<div style="width: 100px;height: 10px;background-color: #409EFF;margin-top: 30px;margin-left: 695px;"></div>
+</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%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 460px;
+  /* margin-top: -60px; */
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue
index d2babdd..30fe865 100644
--- a/UI-Project/src/views/Identify/identify.vue
+++ b/UI-Project/src/views/Identify/identify.vue
@@ -1,234 +1,106 @@
-<template>
-  <el-card style="margin-left: 10px; margin-top: 10px; margin-right: 10px;" v-loading="loading">
-    <div style="display: flex;">
-      <div style="margin-left: 400px; font-size: 20px;">宸ョ▼鍙凤細P20240305001 </div>
-      <div style="margin-left: 150px; font-size: 20px;">鐗堝浘缂栧彿锛�1</div>
-    </div>
-    <svg width="100%" height="690" xmlns="http://www.w3.org/2000/svg" style="margin-top: -40px;">
-      <defs>
-            <marker id="arrow" markerUnits="strokeWidth" markerWidth="12" markerHeight="12" viewBox="0 0 12 12" refX="6"
-                refY="6" orient="auto">
-                <path d="M2,2 L10,6 L2,10 L2,2" style="fill: #911005;" />
-            </marker>
-        </defs>
-        <!--  <el-scrollbar height="630px">
-      <div id="home-card">
-      <div id="home-item" v-for="n in 20" :key="n">
-            <div id="box" style="width: 100px;height: 165px;">100*65</div>
-            <div id="box" style="width: 107px;height: 150px;">107*60</div>
-            <div id="box" style="width: 107px;height: 155px;">109*60</div>
-      </div>
-    </div>
-  </el-scrollbar> -->
-      <g v-for="(rack, index) in racks" :key="index">
-        <rect 
-          :x="rack.x" 
-          :y="rack.y" 
-          :width="rack.width" 
-          :height="rack.height" 
-          :fill="rack.fillColor" 
-          :data-index="index" 
-          class="rack-rect" 
-          style="stroke:#c8c9cc;stroke-width:3;"
-          @click="showRectInfo(rack)"
-        />
-        <line x1='510' y1='309' x2='260' y2='310' stroke='#911005' stroke-width='2' marker-end='url(#arrow)'>
-        </line>
-        <line x1='850' y1='309' x2='1100' y2='310' stroke='#911005' stroke-width='2' marker-end='url(#arrow)'>
-        </line>
-        <line x1='510' y1='409' x2='260' y2='410' stroke='#911005' stroke-width='2' marker-end='url(#arrow)'>
-        </line>
-        <line x1='1200' y1='650' x2='1200' y2='470' stroke='#911005' stroke-width='2' marker-end='url(#arrow)'>
-        </line>
-        <text x="370" y="240" dominant-baseline="middle" text-anchor="middle">NG2024030501A-01</text> 
-        <text x="370" y="260" dominant-baseline="middle" text-anchor="middle">500*300</text> 
-
-        <text x="970" y="240" dominant-baseline="middle" text-anchor="middle">NG2024030501A-02</text> 
-        <text x="970" y="260" dominant-baseline="middle" text-anchor="middle">500*300</text> 
-
-        <text x="600" y="500" dominant-baseline="middle" text-anchor="middle">NG2024030501A-03</text> 
-        <text x="600" y="520" dominant-baseline="middle" text-anchor="middle">800*450</text> 
-
-        
-        <text x="1280" y="520" dominant-baseline="middle" text-anchor="middle">NG2024030501A-04</text> 
-        <text x="1280" y="540" dominant-baseline="middle" text-anchor="middle">400*300</text> 
-        <g v-for="(item, itemIndex) in rack.items" :key="itemIndex">
-          <rect 
-            :x="calculateItemXPosition(rack, item, itemIndex)" 
-            :y="calculateItemYPosition(rack, item, itemIndex)" 
-            :width="item.width" 
-            :height="item.height" 
-            :fill="item.fillColor"
-          />
-        </g>
-      </g>
-    </svg>
-  </el-card>
-</template>
-
-<script>
-import Swal from 'sweetalert2'
-import request from "@/utils/request";
-
-
-request.get("/TidyUpGlassModule/CurrentCutTerritory").then((res) => {
-          if (res.code == 200) {
-          console.log(res.data);
-          } else {
-          ElMessage.warning(res.msg)
-          router.push("/login")
-          }
-          });
-
-export default {
-  data() {
-    return {
-      loading: false,
-      racks: [
-        { 
-          x: 70, y: 126, width: 600, height: 240, fillColor: '#93d2f3', 
-          items: [
-            { position: 'top-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456',y: '20'},
-            { position: 'bottom-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG1234567' },
-            { position: 'bottom-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG12345678' }
-          ]
-        },
-        { 
-          x: 685, y: 126, width: 600, height: 240,  fillColor: '#93d2f3', 
-          items: [
-            { position: 'bottom-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
-            { position: 'bottom-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
-            { position: 'top-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG1234567' }
-          ]
-        },
-        { 
-          x: 70, y: 380, width: 1100, height: 260, fillColor: '#81b337', 
-          items: [
-            { position: 'top-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
-            { position: 'bottom-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
-            { position: 'top-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG1234567' }
-          ]
-        },
-        { 
-          x: 1185, y: 380, width: 200, height: 300,fillColor: '#81b337', 
-          items: [
-            { position: 'bottom-right', width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
-            { position: 'top-right',width: 40, height: 30, fillColor: '#ffffff', content: 'NG123456' },
-            { position: 'top-left', width: 40, height: 30, fillColor: '#ffffff', content: 'NG1234567' },
-          ]
-        }
-        
-        // Add more racks and items here as needed
-      ],
-    };
-  },
+<template>  
+<!-- <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading"> -->
+  <div id="app" style="margin-top: 20px;">  
+    <div  
+      :style="{ width: `${olWidth}px`, height: `${olHeight}px`,position: 'relative' }"  
+    > 
+    <div  
+      v-for="(rect, index) in adjustedRects"  
+      :key="index"  
+      class="rect"  
+      :style="{ position: 'absolute', top: `${rect.y_axis}px`, left: `${rect.x_axis}px`, width: `${rect.width}px`, height: `${rect.height}px` }"  
+    >
+     <!-- 绠ご -->  
+     <div id="arrow"></div>  
+     <div id="line"></div>  
+     <!-- <div  class="centered-text" >NG24030401B01</div> -->
+     <div  class="centered-text">
+    <div>{{ rect.process_id }}</div>  
+    <div style="margin-top: 50px;margin-left: -85px;">{{ rect.width }}*{{ rect.height }}</div>  
+  </div>
+  </div> 
+   </div>
+  </div>  
+</template>  
   
-  methods: {
-    calculateItemXPosition(rack, item, index) {
-      if (item.position === 'top-right' || item.position === 'bottom-right') {
-        return Math.min(rack.x + rack.width - item.width, rack.x + rack.width);
-      } else {
-        return rack.x;
-      }
-    },
-    
-    calculateItemYPosition(rack, item, index) {
-      if (item.position === 'bottom-left' || item.position === 'bottom-right') {
-        return Math.min(rack.y + rack.height - item.height, rack.y + rack.height);
-      } else {
-        return rack.y;
-      }
-    },
-    
-    showCustomAlert(content) {
-      Swal.fire({
-    // type: 'warning', // 寮规绫诲瀷
-    title: '璇ョ墖鐜荤拑鐘舵��', //鏍囬
-    // text: "娉ㄩ攢鍚庡皢鏃犳硶鎭㈠锛岃璋ㄦ厧鎿嶄綔锛�", //鏄剧ず鍐呭            
+<script setup>  
+import { ref, onMounted } from 'vue';  
+import request from "@/utils/request"
+const olWidth = ref(); 
+const olHeight = ref();
+const process_id = ref(); // 鐢ㄤ簬瀛樺偍process_id鐨勫搷搴斿紡寮曠敤 
+// const rects = ref([]); // 鐢ㄤ簬瀛樺偍鐭╁舰鏁版嵁鐨勫搷搴斿紡寮曠敤  
+const adjustedRects = ref([]);
+onMounted(async () => {  
+  try {  
+    const response = await request.post('/cacheGlass/taskCache/currentCutTerritory'); // 鏇挎崲涓轰綘鐨凙PI绔偣  
+    if (response.code === 200) {  
+      // const process_id = response.data[0].process_id
+      const rawRects = response.data; // 璁剧疆鐭╁舰鏁版嵁  
+      console.log(response.data);
+      const { olWidth: newolWidth, olHeight: newolHeight, process_id: newprocess_id  } = response.data; // 鑾峰彇灏哄  
+      olWidth.value = newolWidth; // 璁剧疆瀹瑰櫒瀹藉害  
+      olHeight.value = newolHeight; // 璁剧疆瀹瑰櫒楂樺害  
+      process_id.value = newprocess_id;  
 
-    confirmButtonColor: '#3085d6',// 纭畾鎸夐挳鐨� 棰滆壊
-    confirmButtonText: '浜哄伐鎷胯蛋',// 纭畾鎸夐挳鐨� 鏂囧瓧
-    showCancelButton: true, // 鏄惁鏄剧ず鍙栨秷鎸夐挳
-    cancelButtonColor: '#d33', // 鍙栨秷鎸夐挳鐨� 棰滆壊
-    cancelButtonText: "鐮存崯", // 鍙栨秷鎸夐挳鐨� 鏂囧瓧
+      adjustedRects.value = rawRects.map(rect => ({  
+        ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
+        x_axis: (rect.x_axis*100) * 0.005, // 灏唜鍊奸櫎浠�3  
+        y_axis: (rect.y_axis*100) * 0.005,
+        width: (rect.width*100) * 0.004 ,
+        height:( rect.height*100) * 0.004 ,
+      }));  
+        console.log(rect);
 
-    // focusCancel: true, // 鏄惁鑱氱劍 鍙栨秷鎸夐挳
-    reverseButtons: true  // 鏄惁 鍙嶈浆 涓や釜鎸夐挳鐨勪綅缃� 榛樿鏄�  宸﹁竟 纭畾  鍙宠竟 鍙栨秷
-}).then((isConfirm) => {
-    try {
-        //鍒ゆ柇 鏄惁 鐐瑰嚮鐨� 纭畾鎸夐挳
-        if (isConfirm.value) {
-            Swal.fire("浜哄伐鎷胯蛋", "鐐瑰嚮浜嗕汉宸ユ嬁璧�", "success");
-        }
-        else {
-            Swal.fire("鐮存崯", "鐐瑰嚮浜嗙牬鎹�", "error");
-        }
-    } catch (e) {
-        alert(e);
-    }
-});
-    },
-    
-    showRectInfo(rectInfo) {
-      const contents = rectInfo.items.map(item => item.content).join(', ');
-      this.$nextTick(() => {
-        this.showCustomAlert(contents);
-      });
-    },
-  }
-};
-</script>
+      //   console.log( (rect.width*100) / 300 );
+    } else {  
+      // console.error('Failed to fetch rectangles from API.');  
+      console.error('Failed to fetch rects from API.'); 
+    }  
+  } catch (error) {  
+    // console.error('Error fetching rectangles :', error);
+    console.error('Error fetching rects :', error);  
+  }  
+});  
+</script>  
+  
+<style scoped>  
+.rect {  
+  border: 1px solid black; /* 璁剧疆鐭╁舰鐨勮竟妗� */  
+  background-color: lightblue; /* 璁剧疆鐭╁舰鐨勮儗鏅壊 */  
+} 
+.centered-text {
+  /* 璁剧疆鏂囧瓧灞呬腑鏍峰紡 */  
+  display: flex;  
+  justify-content: center;  
+  align-items: center;  
+  height: 100%; /* 纭繚div鍗犳嵁鏁翠釜鐭╁舰鐨勯珮搴� */  
+} 
+#rect {  
+  position: relative; /* 纭繚绠ご鍙互鐩稿浜庣煩褰㈠畾浣� */  
+  /* 鍏朵粬鏍峰紡 */  
+}  
 
-<style scoped>
-.glass-rack {
-  width: 100%;
-  height: 80vh;
-}
-.rack-rect:hover {
-  cursor: pointer;
-}
-.custom-popover-class {
-  background-color: lightgrey;
-  color: black;
-  border: 1px solid black;
-}
-
-#home-card {
-    width: 100%;
-    overflow: hidden;
-    padding: 10px 0px;
-    display: flex;
-    flex-wrap: wrap;
-    #home-item {
-      border-style: solid;
-      border-width: 1px;
-      border-color: #E4E4E4;
-      width: calc(34% - 20px);
-      padding: 20px 0px 20px 20px;
-      margin-right: 10px;
-      margin-bottom: 10px;
-      display: flex;
-      justify-content: center;
-      /* align-items: center; */
-      background: #fff;
-      #home-img {
-        display: inline-block;
-        width: 160px;
-        height: 60px;
-        margin: 0;
-        padding: 0;
-      }
-      #home-right {
-        display: flex;
-        flex-direction: column;
-        justify-content: center;
-        align-items: flex-start;
-        margin-left: 10px;
-        #home-num {
-          font-size: 40px;
-          margin: 5px 0;
-        }
-      }
-    }
-  }
-</style>
+#arrow {  
+  position: absolute;  
+  top: 70%; /* 绠ご浣嶄簬鐭╁舰涓棿 */  
+  left: 200px; /* 绠ご鍦ㄧ煩褰㈠乏渚т竴浜涜窛绂� */  
+  transform: translateY(-50%); /* 鍨傜洿灞呬腑 */  
+  width: 0;  
+  height: 0;  
+  border-top: 10px solid transparent; /* 涓婅竟妗� */  
+  border-bottom: 10px solid transparent; /* 涓嬭竟妗� */  
+  border-right: 20px solid #911005; /* 鍙宠竟妗嗭紝褰㈡垚绠ご */  
+  /* 鏍规嵁闇�瑕佽皟鏁磋竟妗嗗ぇ灏忓拰棰滆壊 */  
+}  
+  
+#line {  
+  position: absolute;  
+  top: 70%; /* 鐩寸嚎浣嶄簬鐭╁舰涓棿 */  
+  left: 210px; /* 鐩寸嚎鍦ㄧ澶村彸渚т竴浜涜窛绂� */  
+  transform: translateY(-50%); /* 鍨傜洿灞呬腑 */  
+  height: 2px; /* 鐩寸嚎鐨勯珮搴� */  
+  width: 240px; /* 鐩寸嚎鐨勯暱搴︼紝鏍规嵁闇�瑕佽皟鏁� */  
+  background-color: #911005; /* 鐩寸嚎鐨勯鑹� */  
+}  
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/LoginView.vue b/UI-Project/src/views/LoginView.vue
index 70fd9e6..366ed5a 100644
--- a/UI-Project/src/views/LoginView.vue
+++ b/UI-Project/src/views/LoginView.vue
@@ -48,7 +48,8 @@
     if (valid) {
       loginLoadings.value = true
       request
-          .post('/loadGlass/userinfo/login', userForm)
+          // .post('/loadGlass/userinfo/login', userForm)
+          .post('/loadGlass/sys/user/login', userForm)
           .then((res) => {
             if (res['code'] == 200) {
               store.$patch({user: res.data})
@@ -58,12 +59,18 @@
               ElMessage.success(`鐧诲綍鎴愬姛`)
             } else {
               ElMessage.error(res['msg'])
+              store.$patch({
+              user: null,
+              })
               loginLoadings.value = false
               return false
             }
           })
           .catch((error) => {
             ElMessage.error('鏈嶅姟鍣ㄨ繛鎺ュけ璐�')
+            store.$patch({
+              user: null,
+              })
             loginLoadings.value = false
             return false
           })
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index 63dbe54..b389719 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -2,26 +2,110 @@
 import {Search} from "@element-plus/icons-vue";
 import {reactive} from "vue";
 import {useRouter} from "vue-router"
+import request from "@/utils/request"
 
-import { ref } from 'vue'
+import { ref, onMounted } from 'vue';  
+// import { ref } from 'vue'
 
 const dialogFormVisible = ref(true)
 const dialogFormVisiblea = ref(false)
+const dialogFormVisibleb = ref(false)
+const width = ref(); // 鐢ㄤ簬瀛樺偍process_id鐨勫搷搴斿紡寮曠敤 
+const height = ref(); // 鐢ㄤ簬瀛樺偍process_id鐨勫搷搴斿紡寮曠敤 
+const adjustedRects = ref([]);
+const adjustedRectsa = ref([]);
+const adjustedRectsb = ref([]);
+// 杩涚倝涓�
+onMounted(async () => {  
+  try {  
+    const response = await request.get('/temperingGlass/temperingGlassInfo/SelectIntoGlass'); 
+    if (response.code === 200) {  
+      const rawRects = response.data; // 璁剧疆鐭╁舰鏁版嵁  
+      console.log(response.data);
+      const { height: newheight,width: newwidth  } = response.data; // 鑾峰彇灏哄  
+      height.value = newheight;  
+      width.value = newwidth;  
 
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-  }
-}
+      adjustedRects.value = rawRects.map(rect => ({  
+        ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
+        xcoordinate: rect.xcoordinate, // 灏唜鍊奸櫎浠�3  
+        ycoordinate: rect.ycoordinate,
+        width: rect.width ,
+        height: rect.height ,
+      }));  
+        console.log(rect);
 
+      //   console.log( (rect.width*100) / 300 );
+    } else {  
+      // console.error('Failed to fetch rectangles from API.');  
+      console.error('Failed to fetch rects from API.'); 
+    }  
+  } catch (error) {  
+    // console.error('Error fetching rectangles :', error);
+    console.error('Error fetching rects :', error);  
+  }  
+}); 
+// 杩涚倝鍓�
+const handleConfirm = async () => {
+  try {
+    const response = await request.post('/temperingGlass/temperingGlassInfo/SelectWaitingGlass'); 
+    if (response.code === 200) {  
+      const rawRects = response.data; // 璁剧疆鐭╁舰鏁版嵁  
+      console.log(response.data);
+      const { height: newheight,width: newwidth  } = response.data; // 鑾峰彇灏哄  
+      height.value = newheight;  
+      width.value = newwidth;  
+
+      adjustedRectsa.value = rawRects.map(rect => ({  
+        ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
+        xcoordinate: rect.xcoordinate, // 灏唜鍊奸櫎浠�3  
+        ycoordinate: rect.ycoordinate,
+        width: rect.width ,
+        height: rect.height ,
+      }));  
+        console.log(rect);
+
+      //   console.log( (rect.width*100) / 300 );
+    } else {  
+      // console.error('Failed to fetch rectangles from API.');  
+      console.error('Failed to fetch rects from API.'); 
+    }  
+  } catch (error) {  
+    // console.error('Error fetching rectangles :', error);
+    console.error('Error fetching rects :', error);  
+  }  
+}; 
+
+// 宸插嚭鐐�
+const handleConfirma = async () => {
+  try {
+    const response = await request.get('/temperingGlass/temperingGlassInfo/SelectOutGlass'); 
+    if (response.code === 200) {  
+      const rawRects = response.data; // 璁剧疆鐭╁舰鏁版嵁  
+      console.log(response.data);
+      const { height: newheight,width: newwidth  } = response.data; // 鑾峰彇灏哄  
+      height.value = newheight;  
+      width.value = newwidth;  
+
+      adjustedRectsb.value = rawRects.map(rect => ({  
+        ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
+        xcoordinate: rect.xcoordinate, // 灏唜鍊奸櫎浠�3  
+        ycoordinate: rect.ycoordinate,
+        width: rect.width ,
+        height: rect.height ,
+      }));  
+        console.log(rect);
+
+      //   console.log( (rect.width*100) / 300 );
+    } else {  
+      // console.error('Failed to fetch rectangles from API.');  
+      console.error('Failed to fetch rects from API.'); 
+    }  
+  } catch (error) {  
+    // console.error('Error fetching rectangles :', error);
+    console.error('Error fetching rects :', error);  
+  }  
+}; 
 const gridOptions = reactive({
   border:  "full",//琛ㄦ牸鍔犺竟妗�
   keepSource: true,//淇濇寔婧愭暟鎹�
@@ -57,85 +141,70 @@
 })
 </script>
 
-<template>
+<template> 
   <div style="margin-top: 10px;">
-     <el-button style="margin-left: 15px;"   id="searchButton" type="primary" @click="dialogFormVisible = true;dialogFormVisiblea = false">鎽嗙墖鐗堝浘</el-button>
-    <el-button  id="searchButton" type="success" @click="dialogFormVisiblea = true;dialogFormVisible = false">宸插嚭鐐夌幓鐠�</el-button>
+     <el-button style="margin-left: 15px;"   id="searchButton" type="primary" @click="dialogFormVisible = true;dialogFormVisiblea = false;dialogFormVisibleb = false;">杩涚倝涓�</el-button>
+     <el-button style="margin-left: 15px;"   id="searchButton" type="primary" @click="handleConfirm();dialogFormVisiblea = true;dialogFormVisible = false;dialogFormVisibleb = false;" >杩涚倝鍓�</el-button>
+    <el-button  id="searchButton" type="success" @click="handleConfirma();dialogFormVisibleb = true;dialogFormVisible = false;dialogFormVisiblea = false">宸插嚭鐐夌幓鐠�</el-button>
 <div v-if="dialogFormVisible" >
-    <el-card style="margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
-      <div style="display: flex;margin-bottom: 20px;">
+      <!-- <div style="display: flex;margin-bottom: 20px;">
       <div style="margin-left: 450px;font-size: 20px;">宸ョ▼鍙凤細P20240305001 </div>
       <div style="margin-left: 150px;font-size: 20px;">鐗堝浘缂栧彿锛�1</div>
-    </div>
-    <div>
-            <div id="boxa" style="width: 200px;height: 300px;margin-left: 70px;">
-              <div style="margin-top: 35px;"> NG202405060798A01-1</div> 
-            <div> 500脳1000</div>
-          </div>
-            <div id="boxa" style="width: 200px;height: 300px;">
-              <div style="margin-top: 35px;"> NG202405060798A01-1</div> 
-            <div> 500脳1000</div>
-          </div>
-          <div id="boxa" style="width: 200px;height: 300px;">
-              <div style="margin-top: 35px;"> NG202405060798A01-1</div> 
-            <div> 500脳1000</div>
-          </div>
-          <div id="boxa" style="width: 200px;height: 300px;">
-              <div style="margin-top: 35px;"> NG202405060798A01-1</div> 
-            <div> 500脳1000</div>
-          </div>
-          <div id="boxa" style="width: 200px;height: 300px;">
-              <div style="margin-top: 35px;"> NG202405060798A01-1</div> 
-            <div> 500脳1000</div>
-          </div>
-          <div id="boxa" style="width: 200px;height: 300px;">
-              <div style="margin-top: 35px;"> NG202405060798A01-1</div> 
-            <div> 500脳1000</div>
-          </div>
-    </div>
-    <div style="margin-top: 20px;">
-            <div id="boxa" style="width: 200px;height: 300px;margin-left: 70px;">
-              <div style="margin-top: 35px;"> NG202405060798A01-1</div> 
-            <div> 500脳1000</div>
-          </div>
-          <div id="boxa" style="width: 200px;height: 300px;">
-              <div style="margin-top: 35px;"> NG202405060798A01-1</div> 
-            <div> 500脳1000</div>
-          </div>
-          <div id="boxa" style="width: 200px;height: 300px;">
-              <div style="margin-top: 35px;"> NG202405060798A01-1</div> 
-            <div> 500脳1000</div>
-          </div>
-          <div id="boxa" style="width: 200px;height: 300px;">
-              <div style="margin-top: 35px;"> NG202405060798A01-1</div> 
-            <div> 500脳1000</div>
-          </div>
-          <div id="boxa" style="width: 200px;height: 300px;">
-              <div style="margin-top: 35px;"> NG202405060798A01-1</div> 
-            <div> 500脳1000</div>
-          </div>
-            <div id="boxb" style="width: 200px;height: 300px;">
-              <div style="margin-top: 35px;"> NG202405060798A01-1</div> 
-            <div> 500脳1000</div>
-          </div>
-    </div>
-    </el-card>
-    </div>
-<div v-if="dialogFormVisiblea">
+    </div> -->
     <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
       <el-scrollbar height="630px">
-      <div id="home-card">
-      <div id="home-item" v-for="n in 20" :key="n">
-            <div id="box" style="width: 100px;height: 165px;">100*65</div>
-            <div id="box" style="width: 107px;height: 150px;">107*60</div>
-            <div id="box" style="width: 107px;height: 155px;">109*60</div>
-      </div>
+    <div  style="position: relative;width: 1400px;">  
+      <div  
+      v-for="(rect, index) in adjustedRects"  
+      :key="index"  
+      class="rect"  
+      :style="{ position: 'absolute',  top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}px`, width: `${rect.width}px`, height: `${rect.height}px`  }"  
+    >
+     <div  class="centered-text">
+    <div style="margin-top: 50px;margin-left: -85px;">{{ rect.width }}*{{ rect.height }}</div>  
+  </div>
+  </div> 
+   </div>
+   </el-scrollbar>
+   </el-card>
     </div>
-  </el-scrollbar>
-    </el-card>
+<div v-if="dialogFormVisiblea">
+  <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
+      <el-scrollbar height="630px">
+    <div  style="position: relative;width: 1400px;">  
+      <div  
+      v-for="(rect, index) in adjustedRects"  
+      :key="index"  
+      class="rect"  
+      :style="{ position: 'absolute',  top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}px`, width: `${rect.width}px`, height: `${rect.height}px`  }"  
+    >
+     <div  class="centered-text">
+    <div style="margin-top: 50px;margin-left: -85px;">{{ rect.width }}*{{ rect.height }}</div>  
+  </div>
+  </div> 
+   </div>
+   </el-scrollbar>
+   </el-card>
+</div>
+<div v-if="dialogFormVisibleb">
+  <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
+      <el-scrollbar height="630px">
+    <div  style="position: relative;width: 1400px;">  
+      <div  
+      v-for="(rect, index) in adjustedRects"  
+      :key="index"  
+      class="rect"  
+      :style="{ position: 'absolute',  top: `${rect.ycoordinate}px`, left: `${rect.xcoordinate}px`, width: `${rect.width}px`, height: `${rect.height}px`  }"  
+    >
+     <div  class="centered-text">
+    <div style="margin-top: 50px;margin-left: -85px;">{{ rect.width }}*{{ rect.height }}</div>  
+  </div>
+  </div> 
+   </div>
+   </el-scrollbar>
+   </el-card>
 </div>
   </div>
-
 </template>
 
 <style scoped>
@@ -203,4 +272,19 @@
       }
     }
   }
+  .rect {  
+  border: 1px solid black; /* 璁剧疆鐭╁舰鐨勮竟妗� */  
+  background-color: lightblue; /* 璁剧疆鐭╁舰鐨勮儗鏅壊 */  
+} 
+#rect {  
+  position: relative; /* 纭繚绠ご鍙互鐩稿浜庣煩褰㈠畾浣� */  
+  /* 鍏朵粬鏍峰紡 */  
+}  
+.centered-text {
+  /* 璁剧疆鏂囧瓧灞呬腑鏍峰紡 */  
+  display: flex;  
+  justify-content: center;  
+  align-items: center;  
+  height: 100%; /* 纭繚div鍗犳嵁鏁翠釜鐭╁舰鐨勯珮搴� */  
+} 
 </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index c5550f2..49db7d7 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -33,11 +33,7 @@
 })
 const tableDataa = ref([])
   
- const requestData = {
-    // projectNo:"P24030805",
-    state:100
-  };
-  
+
   const tableData = reactive([]);
 //   let filterData = ref({
 //   damageDetails: {
@@ -88,21 +84,74 @@
   processType: [],
  
 })
-const getBasicData = ref({
-  id: '',
-  projectNo: '',
-})
-request.post("/loadGlass/optimizeProject/listByState", requestData)
-.then((res) => {
-          if (res.code == 200) {
-    titleSelectJson.value.processType = res.data;
-          console.log(res.data);
-          } else {
-          ElMessage.warning(res.msg)
-          // router.push("/login")
-          }
-          });
-          
+// const getBasicData = ref({
+//   id: '',
+//   projectNo: '',
+// })
+// const requestData = {
+//     // projectNo:"P24030805",
+//     state:100
+//   };
+// request.post("/loadGlass/optimizeProject/listByState", requestData)
+// .then((res) => {
+//           if (res.code == 200) {
+//     titleSelectJson.value.processType = res.data;
+//           console.log(res.data);
+//           } else {
+//           ElMessage.warning(res.msg)
+//           // router.push("/login")
+//           }
+//           });
+          // 鍒濆璇锋眰鍙傛暟  
+const requestData = {  
+  state: 100  
+};  
+// 鍝嶅簲寮忔暟鎹�  
+const selectedProjectNo = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿  
+const options = ref<any[]>([]); // 涓嬫媺閫夐」鍒楄〃  
+  
+// 璋冪敤鎺ュ彛鑾峰彇閫夐」鏁版嵁鐨勫嚱鏁�  
+const fetchOptions = async (queryString: string) => {  
+  try {  
+    // 鍙戦�佽姹傚埌鍚庣鎺ュ彛  
+    const response = await request.post('/loadGlass/optimizeProject/listByState', {  
+      ...requestData,  
+      query: queryString // 灏嗘煡璇㈠瓧绗︿覆浣滀负鍙傛暟浼犻��  
+    });  
+    
+    if (response.code == 200) {  
+    titleSelectJson.value.processType = response.data;
+
+    //   titleSelectJson.value.processType = response.data(item => ({  
+    //   // options.value = response.data.data.map(item => ({  
+    //     value: item.projectNo,  
+    //     // label: item.id // 鍋囪鍚庣杩斿洖鐨勬暟鎹腑鏈�  瀛楁浣滀负鏄剧ず鏍囩  
+    //   }));  
+    console.log(response.data);
+
+    } else {  
+      ElMessage.warning(response.data);  
+    }  
+  } catch (error) {  
+    console.error('Error fetching options:', error);  
+  }  
+};  
+  
+// 澶勭悊鐢ㄦ埛杈撳叆鍙樺寲鐨勬柟娉�  
+const handleInputChange = async (value: string) => {  
+  if (value) {  
+    await fetchOptions(value);  
+  } else {  
+    options.value = []; // 娓呯┖閫夐」鍒楄〃  
+  }  
+};  
+  
+// 鍒濆鍖栧姞杞芥暟鎹紙濡傛灉闇�瑕侊級  
+onMounted(() => {  
+  // 鍦ㄧ粍浠舵寕杞藉悗璋冪敤 fetchOptions('') 鏉ュ姞杞藉垵濮嬫暟鎹紙濡傛灉闇�瑕侊級  
+  fetchOptions('');  
+});  
+  
 // const billall  = () => {
 //   request.post("/loadGlass/optimizeProject/listByState", requestData)
 //     .then((res: any) => {
@@ -284,7 +333,7 @@
   }
 }
 onMounted(fetchTableData);
-
+ 
 // const open = () => {
 //   ElMessageBox.confirm(
 //     '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
@@ -311,31 +360,31 @@
 // 寮�濮嬩笂鐗�
 const handleBind = (row) => {
   // engineeringId.value = row.engineeringId; 
-
+ 
   blind.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
 };
 // 鏆傚仠
 const handleBinda = (row) => {
   // engineeringId.value = row.engineeringId; 
-
+ 
   blinda.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
 };
 // 鍋滄浠诲姟
 const handleBindb = (row) => {
   // engineeringId.value = row.engineeringId; 
-
+ 
   blindb.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
 };
 // 娣诲姞
 const handleBindRack = (row) => {
   workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
-
+ 
   add.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
 };
 // 鍒犻櫎
 const handleBindRacka = (row) => {
   workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
-
+ 
   adda.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
 };
 const gridOptions = reactive({
@@ -547,7 +596,22 @@
   <el-dialog v-model="dialogFormVisible" top="24vh" width="30%" title="宸ョ▼" >
     <div style="margin-left: 50px;margin-bottom: 10px;">
       <el-form-item label="宸ョ▼鍙凤細" :required="true">
-        <el-select  v-model="getBasicData.projectNo" clearable placeholder="璇烽�夋嫨宸ョ▼" style="width: 220px"
+        <el-select  
+           v-model="selectedProjectNo"  
+           filterable  
+           clearable  
+           placeholder="璇烽�夋嫨宸ョ▼"  
+           style="width: 220px"  
+           @input="handleInputChange"  
+         >  
+      <el-option  
+         v-for="item in titleSelectJson['processType']"  
+         :key="item.id"  
+         :label="item.projectNo"  
+         :value="item.projectNo"  
+      />  
+    </el-select>  
+        <!-- <el-select  v-model="getBasicData.projectNo" clearable placeholder="璇烽�夋嫨宸ョ▼" style="width: 220px"
                    >
             <el-option
                 v-for="item in titleSelectJson['processType']"
@@ -555,7 +619,7 @@
                 :label="item.projectNo"
                 :value="item.projectNo"
             />
-          </el-select>
+          </el-select> -->
               </el-form-item>
           </div>
     <template #footer>
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index edbc674..2538c4e 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -1,25 +1,26 @@
 <script lang="ts" setup>
-import {Search} from "@element-plus/icons-vue";
-import {reactive} from "vue";
-import {useRouter} from "vue-router"
+import {reactive, ref} from 'vue'
+import {useRouter} from 'vue-router'
+import {ElMessage, ElMessageBox} from 'element-plus'
+
 const router = useRouter()
 
-import { ref } from 'vue'
-import { ElMessage, ElMessageBox } from 'element-plus'
-import { tr } from "element-plus/es/locale";
 const dialogFormVisible = ref(false)
 const dialogFormVisiblea = ref(false)
 const dialogFormVisibleb = ref(false)
 
-const carposition1 = ref(60);
-const carposition2 = ref(200);
-const timers1 =ref(true);
-const timers2 =ref(true);
-const cellshow=ref(false);
-const cellshow1=ref(true);
-const cellshow2=ref(true);
-const million=ref(0);
-const million1=ref(0);
+const carposition1 = ref(40)
+const carposition2 = ref(200)
+const timers1 = ref(true)
+const timers2 = ref(true)
+const cellshow = ref(false)
+const cellshow1 = ref(true)
+const cellshow2 = ref(true)
+const million = ref(0)
+const million1 = ref(0)
+
+const loading = null
+const handleSelectionChange = null
 
 const currentPage4 = ref(4)
 const pageSize4 = ref(100)
@@ -45,95 +46,87 @@
     e: '1',
     f: '100*100',
     g: '',
-  }
+  },
 ]
 const dialogForm = () => {
-  ElMessageBox.confirm(
-    '纭畾瑕佹�ュ仠鍚�?',
-    '鎻愮ず',
-    {
-      confirmButtonText: '鏄�',
-      cancelButtonText: '鍚�',
-      type: 'warning',
-    }
-  )
-    .then(() => {
-      ElMessage({
-        type: 'success',
-        message: '鎬ュ仠鎴愬姛锛�',
+  ElMessageBox.confirm('纭畾瑕佹�ュ仠鍚�?', '鎻愮ず', {
+    confirmButtonText: '鏄�',
+    cancelButtonText: '鍚�',
+    type: 'warning',
+  })
+      .then(() => {
+        ElMessage({
+          type: 'success',
+          message: '鎬ュ仠鎴愬姛锛�',
+        })
       })
-    })
-    .catch(() => {
-      ElMessage({
-        type: 'info',
-        message: '鎬ュ仠澶辫触',
+      .catch(() => {
+        ElMessage({
+          type: 'info',
+          message: '鎬ュ仠澶辫触',
       })
     })
 }
 
-  var timer=setInterval(() => {
-    console.log(million.value,million1.value);
-    million.value+=1;
-    if(million.value-million1.value!==12){
-      
-      if(million.value-million1.value>=2){
-        if(carposition1.value==200){
-          timers1.value=false;
-        }else if(carposition1.value==60){
-          timers1.value=true;
-        }
-        if(timers1.value==true){
-          carposition1.value=carposition1.value+14;
-        }else{
-          carposition1.value=carposition1.value-14;
-        }
+var timer = setInterval(() => {
+  console.log(million.value, million1.value)
+  million.value += 1
+  if (million.value - million1.value !== 12) {
+    if (million.value - million1.value >= 2) {
+      if (carposition1.value == 200) {
+        timers1.value = false
+      } else if (carposition1.value == 40) {
+        timers1.value = true
+      }
+      if (timers1.value == true) {
+        carposition1.value = carposition1.value + 16
+      } else {
+        carposition1.value = carposition1.value - 16
+      }
 
-        
-        if(carposition2.value==200){
-          timers2.value=false;
-        }else if(carposition2.value==60){
-          timers2.value=true;
-        }
-        if(timers2.value==true){
-          carposition2.value+=14;
-        }else{
-          carposition2.value-=14;
-        }
-      }else{
-
+      if (carposition2.value == 200) {
+        timers2.value = false
+      } else if (carposition2.value == 40) {
+        timers2.value = true
       }
-    }else{
-      million1.value=million.value;
-      if(cellshow.value==true){
-        cellshow.value=false;
-        
-      }else{
-        cellshow.value=true;
-        
+      if (timers2.value == true) {
+        carposition2.value += 16
+      } else {
+        carposition2.value -= 16
       }
-      if(cellshow1.value==true){
-        cellshow1.value=false;
-      }else{
-        cellshow1.value=true;
-      }
-      if(cellshow2.value==true){
-        cellshow2.value=false;
-      }else{
-        cellshow2.value=true;
-      }
+    } else {
     }
-    
-  }, 1000);
+  } else {
+    million1.value = million.value
+    if (cellshow.value == true) {
+      cellshow.value = false
+    } else {
+      cellshow.value = true
+    }
+    if (cellshow1.value == true) {
+      cellshow1.value = false
+    } else {
+      cellshow1.value = true
+    }
+    if (cellshow2.value == true) {
+      cellshow2.value = false
+    } else {
+      cellshow2.value = true
+    }
+  }
+}, 100000)
 
-
-const getTableRow = (row,type) =>{
+const getTableRow = (row, type) => {
   switch (type) {
-    case 'edit' :{
+    case 'edit': {
       //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      router.push({
+        path: '/main/returns/createReturns',
+        query: {ReturnID: 'TH24010101'},
+      })
       break
     }
-    case 'delete':{
+    case 'delete': {
       alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
       break
     }
@@ -141,40 +134,41 @@
 }
 
 const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  border: 'full', //琛ㄦ牸鍔犺竟妗�
+  keepSource: true, //淇濇寔婧愭暟鎹�
+  align: 'center', //鏂囧瓧灞呬腑
+  stripe: true, //鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true, height: 50}, //榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
   id: 'OrderList',
-  showFooter: true,//鏄剧ず鑴�
+  showFooter: true, //鏄剧ず鑴�
   printConfig: {},
   importConfig: {},
   exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
+  scrollY: {enabled: true}, //寮�鍚櫄鎷熸粴鍔�
+  showOverflow: true,
   columnConfig: {
     resizable: true,
-    useKey: true
+    useKey: true,
   },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
+  filterConfig: {
+    //绛涢�夐厤缃」
+    remote: true,
   },
   customConfig: {
-    storage: true
+    storage: true,
   },
   editConfig: {
     trigger: 'click',
     mode: 'row',
-    showStatus: true
+    showStatus: true,
   },
-  data:  [
+  data: [
     {
-      'id': '1',
-      'long': '5',
-      'wide': '1005',
-      'thick': '183.6',
-    }
+      id: '1',
+      long: '5',
+      wide: '1005',
+      thick: '183.6',
+    },
   ],
 })
 </script>
@@ -182,130 +176,208 @@
 <template>
   <div style="height: 700px;">
     <!-- <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="primary" @click="dialogFormVisible = true">鎵嬪姩杩涚墖</el-button> -->
-    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="primary" @click="dialogFormVisiblea = true">璁㈠崟淇℃伅</el-button>
-    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="success" @click="dialogFormVisibleb = true">鍑虹墖闃熷垪</el-button>
-    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="danger">缁堟杩涚墖</el-button>
-    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="danger">缁堟鍑虹墖</el-button>
-    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="danger"  @click="dialogForm">杞�ュ仠</el-button>
-    
-    <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
+    <el-button style="margin-top: 5px;margin-left: 10px;"
+               id="searchButton"
+               type="primary"
+               @click="dialogFormVisiblea = true">璁㈠崟淇℃伅
+    </el-button>
+    <el-button style="margin-top: 5px;margin-left: 10px;"
+               id="searchButton"
+               type="success"
+               @click="dialogFormVisibleb = true">鍑虹墖闃熷垪
+    </el-button>
+    <el-button style="margin-top: 5px;margin-left: 10px;"
+               id="searchButton"
+               type="danger">缁堟杩涚墖
+    </el-button>
+    <el-button style="margin-top: 5px;margin-left: 10px;"
+               id="searchButton"
+               type="danger">缁堟鍑虹墖
+    </el-button>
+    <el-button style="margin-top: 5px;margin-left: 10px;"
+               id="searchButton"
+               type="danger"
+               @click="dialogForm">杞�ュ仠
+    </el-button>
+
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;"
+             v-loading="loading">
       <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
-        <el-table height="100%" ref="table" 
-        @selection-change="handleSelectionChange"
-        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="id" align="center" label="鍑虹墖鐜荤拑ID" min-width="80" />
-          <el-table-column prop="a" align="center" label="绗煎瓙" min-width="120" />
-          <el-table-column prop="b" align="center" label="鏍煎瓙" min-width="120" />
-          <el-table-column prop="c" align="center" label="宸ョ▼鍙�" min-width="120" />
-          <el-table-column prop="d" align="center" label="娴佺▼鍗″彿" min-width="120" />
-          <el-table-column prop="e" align="center" label="閽㈠寲鐗堝浘鍙�" min-width="157" />
-          <el-table-column prop="f" align="center" label="灏哄" min-width="120" />
-          <el-table-column prop="g" align="center" label="缁撴潫浠诲姟" min-width="120">
-    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="text">瀹屾垚浠诲姟</el-button>
-</el-table-column>
+        <el-table height="100%"
+                  ref="table"
+                  @selection-change="handleSelectionChange"
+                  :data="tableData"
+                  :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="id"
+                           align="center"
+                           label="鍑虹墖鐜荤拑ID"
+                           min-width="80"/>
+          <el-table-column prop="a"
+                           align="center"
+                           label="绗煎瓙"
+                           min-width="120"/>
+          <el-table-column prop="b"
+                           align="center"
+                           label="鏍煎瓙"
+                           min-width="120"/>
+          <el-table-column prop="c"
+                           align="center"
+                           label="宸ョ▼鍙�"
+                           min-width="120"/>
+          <el-table-column prop="d"
+                           align="center"
+                           label="娴佺▼鍗″彿"
+                           min-width="120"/>
+          <el-table-column prop="e"
+                           align="center"
+                           label="閽㈠寲鐗堝浘鍙�"
+                           min-width="157"/>
+          <el-table-column prop="f"
+                           align="center"
+                           label="灏哄"
+                           min-width="120"/>
+          <el-table-column prop="g"
+                           align="center"
+                           label="缁撴潫浠诲姟"
+                           min-width="120">
+            <el-button style="margin-top: 5px;margin-left: 10px;"
+                       id="searchButton"
+                       type="text">瀹屾垚浠诲姟
+            </el-button>
+          </el-table-column>
         </el-table>
       </div>
     </el-card>
-    <el-card style="flex: 1;margin-left: 10px;margin-top: 3px;" v-loading="loading">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 3px;"
+             v-loading="loading">
       <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
-        <el-table height="100%" ref="table" 
-        @selection-change="handleSelectionChange"
-        :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="id" align="center" label="杩涚墖鐜荤拑ID" min-width="80" />
-          <el-table-column prop="a" align="center" label="绗煎瓙" min-width="120" />
-          <el-table-column prop="b" align="center" label="鏍煎瓙" min-width="120" />
-          <el-table-column prop="c" align="center" label="宸ョ▼鍙�" min-width="120" />
-          <el-table-column prop="d" align="center" label="娴佺▼鍗″彿" min-width="120" />
-          <el-table-column prop="e" align="center" label="閽㈠寲鐗堝浘鍙�" min-width="157" />
-          <el-table-column prop="f" align="center" label="灏哄" min-width="120" />
-          <el-table-column prop="g" align="center" label="缁撴潫浠诲姟" min-width="120">
-    <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="text">瀹屾垚浠诲姟</el-button>
-</el-table-column>
+        <el-table height="100%"
+                  ref="table"
+                  @selection-change="handleSelectionChange"
+                  :data="tableDatab"
+                  :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="id"
+                           align="center"
+                           label="杩涚墖鐜荤拑ID"
+                           min-width="80"/>
+          <el-table-column prop="a"
+                           align="center"
+                           label="绗煎瓙"
+                           min-width="120"/>
+          <el-table-column prop="b"
+                           align="center"
+                           label="鏍煎瓙"
+                           min-width="120"/>
+          <el-table-column prop="c"
+                           align="center"
+                           label="宸ョ▼鍙�"
+                           min-width="120"/>
+          <el-table-column prop="d"
+                           align="center"
+                           label="娴佺▼鍗″彿"
+                           min-width="120"/>
+          <el-table-column prop="e"
+                           align="center"
+                           label="閽㈠寲鐗堝浘鍙�"
+                           min-width="157"/>
+          <el-table-column prop="f"
+                           align="center"
+                           label="灏哄"
+                           min-width="120"/>
+          <el-table-column prop="g"
+                           align="center"
+                           label="缁撴潫浠诲姟"
+                           min-width="120">
+            <el-button style="margin-top: 5px;margin-left: 10px;"
+                       id="searchButton"
+                       type="text">瀹屾垚浠诲姟
+            </el-button>
+          </el-table-column>
         </el-table>
       </div>
     </el-card>
     <div style="padding: 10px;display: flex;height:110px;">
-      <div  id="occupy">
-                    <el-col style="text-align:left;font-weight: bold;">#1</el-col>
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
-                    </el-col>
-                    <hr style="width:80%;margin: 0 auto;" />
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">绌洪棽锛堟牸瀛愭暟锛�</span><span id="zhi">555</span>
-                    </el-col>
-                </div> 
-                <div  id="occupy">
-                    <el-col style="text-align:left;font-weight: bold;">#2</el-col>
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
-                    </el-col>
-                    <hr style="width:80%;margin: 0 auto;" />
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">绌洪棽锛堟牸瀛愭暟锛�</span><span id="zhi">555</span>
-                    </el-col>
-                </div> 
-                <div  id="occupy">
-                    <el-col style="text-align:left;font-weight: bold;">#3</el-col>
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
-                    </el-col>
-                    <hr style="width:80%;margin: 0 auto;" />
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">绌洪棽锛堟牸瀛愭暟锛�</span><span id="zhi">555</span>
-                    </el-col>
-                </div> 
-                <div  id="occupy">
-                    <el-col style="text-align:left;font-weight: bold;">#4</el-col>
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
-                    </el-col>
-                    <hr style="width:80%;margin: 0 auto;" />
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">绌洪棽锛堟牸瀛愭暟锛�</span><span id="zhi">555</span>
-                    </el-col>
-                </div> 
-                <div  id="occupy">
-                    <el-col style="text-align:left;font-weight: bold;">#5</el-col>
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
-                    </el-col>
-                    <hr style="width:80%;margin: 0 auto;" />
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">绌洪棽锛堟牸瀛愭暟锛�</span><span id="zhi">555</span>
-                    </el-col>
-                </div> 
-                <div  id="occupy">
-                    <el-col style="text-align:left;font-weight: bold;">#6</el-col>
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
-                    </el-col>
-                    <hr style="width:80%;margin: 0 auto;" />
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">绌洪棽锛堟牸瀛愭暟锛�</span><span id="zhi">555</span>
-                    </el-col>
-                </div> 
-                <div  id="occupy">
-                    <el-col style="text-align:left;font-weight: bold;">#7</el-col>
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
-                    </el-col>
-                    <hr style="width:80%;margin: 0 auto;" />
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">绌洪棽锛堟牸瀛愭暟锛�</span><span id="zhi">555</span>
-                    </el-col>
-                </div> 
-                <div  id="occupy">
-                    <el-col style="text-align:left;font-weight: bold;">#8</el-col>
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
-                    </el-col>
-                    <hr style="width:80%;margin: 0 auto;" />
-                    <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
-                        <span id="biao">绌洪棽锛堟牸瀛愭暟锛�</span><span id="zhi">555</span>
-                    </el-col>
-                </div> 
-                <!-- <div v-for="n in 8" :key="n" id="occupy">
+      <div id="occupy">
+        <el-col style="text-align:left;font-weight: bold;">#1</el-col>
+        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+          <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
+        </el-col>
+        <hr style="width:80%;margin: 0 auto;"/>
+        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+          <span id="biao">绌洪棽锛堟牸瀛愭暟锛�</span><span id="zhi">555</span>
+        </el-col>
+      </div>
+      <div id="occupy">
+        <el-col style="text-align:left;font-weight: bold;">#2</el-col>
+        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+          <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
+        </el-col>
+        <hr style="width:80%;margin: 0 auto;"/>
+        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+          <span id="biao">绌洪棽锛堟牸瀛愭暟锛�</span><span id="zhi">555</span>
+        </el-col>
+      </div>
+      <div id="occupy">
+        <el-col style="text-align:left;font-weight: bold;">#3</el-col>
+        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+          <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
+        </el-col>
+        <hr style="width:80%;margin: 0 auto;"/>
+        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+          <span id="biao">绌洪棽锛堟牸瀛愭暟锛�</span><span id="zhi">555</span>
+        </el-col>
+      </div>
+      <div id="occupy">
+        <el-col style="text-align:left;font-weight: bold;">#4</el-col>
+        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+          <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
+        </el-col>
+        <hr style="width:80%;margin: 0 auto;"/>
+        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+          <span id="biao">绌洪棽锛堟牸瀛愭暟锛�</span><span id="zhi">555</span>
+        </el-col>
+      </div>
+      <div id="occupy">
+        <el-col style="text-align:left;font-weight: bold;">#5</el-col>
+        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+          <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
+        </el-col>
+        <hr style="width:80%;margin: 0 auto;"/>
+        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+          <span id="biao">绌洪棽锛堟牸瀛愭暟锛�</span><span id="zhi">555</span>
+        </el-col>
+      </div>
+      <div id="occupy">
+        <el-col style="text-align:left;font-weight: bold;">#6</el-col>
+        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+          <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
+        </el-col>
+        <hr style="width:80%;margin: 0 auto;"/>
+        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+          <span id="biao">绌洪棽锛堟牸瀛愭暟锛�</span><span id="zhi">555</span>
+        </el-col>
+      </div>
+      <div id="occupy">
+        <el-col style="text-align:left;font-weight: bold;">#7</el-col>
+        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+          <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
+        </el-col>
+        <hr style="width:80%;margin: 0 auto;"/>
+        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+          <span id="biao">绌洪棽锛堟牸瀛愭暟锛�</span><span id="zhi">555</span>
+        </el-col>
+      </div>
+      <div id="occupy">
+        <el-col style="text-align:left;font-weight: bold;">#8</el-col>
+        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+          <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
+        </el-col>
+        <hr style="width:80%;margin: 0 auto;"/>
+        <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
+          <span id="biao">绌洪棽锛堟牸瀛愭暟锛�</span><span id="zhi">555</span>
+        </el-col>
+      </div>
+      <!-- <div v-for="n in 8" :key="n" id="occupy">
                     <el-col style="text-align:left;font-weight: bold;">#1</el-col>
                     <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
                         <span id="biao">浣跨敤鐜�</span><span id="zhi">35%</span>
@@ -319,329 +391,508 @@
     <!-- <div id="awatch">
   <img src="../../assets/cp.png" alt="" style="width: 70%;height: 70%;margin-left: 160px;">
 </div> -->
-<!-- // 鐖剁骇妗� -->
-<div class="img-dlpl" >
-    <div class="img-car1" :style="'z-index:999;left:247px;top:' + carposition1 + 'px;position:absolute;'">
-      <div v-show="cellshow1" style="margin-top:10px;width:200px;height:5px;background-color:#409EFF;"></div>
-    </div>
-    
-    <div class="img-car2" :style="'z-index:999;left:704px;top:' + carposition2 + 'px;position:absolute;'">
-      <div v-show="cellshow2" style="margin-top:10px;width:200px;height:5px;background-color:#409EFF;"></div>
-    </div>
-    <div v-show="cellshow" style="width: 200px;height: 5px;position: absolute;top:70px;left: 480px;background-color: #409EFF;">
+    <!-- // 鐖剁骇妗� -->
+    <div class="img-dlpl">
+      <div class="img-car1"
+           :style="'z-index:999;left:247px;top:' + carposition1 + 'px;position:absolute;'">
+        <div v-show="cellshow1"
+             style="margin-top:10px;width:200px;height:5px;background-color:red;"></div>
+      </div>
 
+      <div class="img-car2"
+           :style="'z-index:999;left:704px;top:' + carposition2 + 'px;position:absolute;'">
+        <div v-show="cellshow2"
+             style="margin-top:10px;width:200px;height:5px;background-color:red;"></div>
+      </div>
+      <div v-show="cellshow"
+           style="width: 200px;height: 5px;position: absolute;top:60px;left: 490px;background-color: red;">
+
+      </div>
     </div>
-</div>
-	
+
   </div>
-<el-dialog v-model="dialogFormVisible" top="12vh" width="85%" title="璇风‘璁ょ幓鐠冧俊鎭�" >
-  <div style="margin-left: 50px;margin-bottom: 10px;">
-    <div style="display: flex;">
-    <p style="margin-top: 4px;">纭鐘舵��:</p>
-    <el-button style="margin-left: 10px;size: mini;" type="success">鍏佽</el-button>
-    <el-button style="margin-left: 10px;size: mini;" type="danger">涓嶅厑璁�</el-button>
-    <p style="margin-left: 60px;margin-top: 4px;">褰撳墠鐘舵��:</p>
-    <div style="margin-top: 4px; margin-left: 10px;">鎵嬪姩</div>
-    <el-button style="margin-left: 10px;size: mini;" type="primary">鍒囨崲</el-button>
-    <el-input  placeholder="璇疯緭鍏ョ幓鐠僫d" style="width: 180px;size: mini;margin-left: 60px;"></el-input>
-    <el-button style="margin-left: 10px;size: mini;" type="primary">娣诲姞</el-button>
-    <p style="margin-left: 60px;margin-top: 4px;">鐜荤拑id:</p>
-    <el-input  style="width: 180px;size: mini;margin-left: 30px;"></el-input>
-  </div>
-    <div style="display: flex;">
-      <p style="margin-left: 290px;margin-top: 20px;font-weight: bold;">涓婄墖浣�</p>
-      <p style="margin-left: 630px;margin-top: 20px;font-weight: bold;">鎵爜浣�</p>
-    </div>
-    <div style="display: flex;">
-    <div style="margin-top: 20px;">
-      <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">褰撳墠淇℃伅</p>
-      <el-form label-position="right" label-width="90px">
-      <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="闀匡細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="瀹斤細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
-       </el-form-item>
-      </el-form>
+  <el-dialog v-model="dialogFormVisible"
+             top="12vh"
+             width="85%"
+             title="璇风‘璁ょ幓鐠冧俊鎭�">
+    <div style="margin-left: 50px;margin-bottom: 10px;">
+      <div style="display: flex;">
+        <p style="margin-top: 4px;">纭鐘舵��:</p>
+        <el-button style="margin-left: 10px;size: mini;"
+                   type="success">鍏佽
+        </el-button>
+        <el-button style="margin-left: 10px;size: mini;"
+                   type="danger">涓嶅厑璁�
+        </el-button>
+        <p style="margin-left: 60px;margin-top: 4px;">褰撳墠鐘舵��:</p>
+        <div style="margin-top: 4px; margin-left: 10px;">鎵嬪姩</div>
+        <el-button style="margin-left: 10px;size: mini;"
+                   type="primary">鍒囨崲
+        </el-button>
+        <el-input placeholder="璇疯緭鍏ョ幓鐠僫d"
+                  style="width: 180px;size: mini;margin-left: 60px;"></el-input>
+        <el-button style="margin-left: 10px;size: mini;"
+                   type="primary">娣诲姞
+        </el-button>
+        <p style="margin-left: 60px;margin-top: 4px;">鐜荤拑id:</p>
+        <el-input style="width: 180px;size: mini;margin-left: 30px;"></el-input>
       </div>
-    <div style="margin-top: 20px;">
-      <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">淇敼淇℃伅</p>
-      <el-form label-position="right" label-width="90px">
-      <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="闀匡細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="瀹斤細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
-       </el-form-item>
-      </el-form>
+      <div style="display: flex;">
+        <p style="margin-left: 290px;margin-top: 20px;font-weight: bold;">涓婄墖浣�</p>
+        <p style="margin-left: 630px;margin-top: 20px;font-weight: bold;">鎵爜浣�</p>
       </div>
-    <div style="margin-top: 20px;">
-      <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">淇敼淇℃伅</p>
-      <el-form label-position="right" label-width="90px">
-      <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="闀匡細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="瀹斤細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
-       </el-form-item>
-      </el-form>
-      </div>
-    <div style="margin-top: 20px;">
-      <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">褰撳墠淇℃伅</p>
-      <el-form label-position="right" label-width="90px">
-      <el-form-item style="width: 20vw" label="鐜荤拑id锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="璁㈠崟缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="鍒楄〃缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="绠卞瓙缂栧彿锛�">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="闀匡細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ラ暱"></el-input>
-       </el-form-item>
-      <el-form-item style="width: 20vw" label="瀹斤細">
-      <el-input style="width: 180px" size="mini" placeholder="璇疯緭鍏ュ"></el-input>
-       </el-form-item>
-      </el-form>
-      </div>
-    </div>
+      <div style="display: flex;">
+        <div style="margin-top: 20px;">
+          <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">褰撳墠淇℃伅</p>
+          <el-form label-position="right"
+                   label-width="90px">
+            <el-form-item style="width: 20vw"
+                          label="鐜荤拑id锛�">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="璁㈠崟缂栧彿锛�">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="鍒楄〃缂栧彿锛�">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="绠卞瓙缂栧彿锛�">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="闀匡細">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ラ暱"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="瀹斤細">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ュ"></el-input>
+            </el-form-item>
+          </el-form>
         </div>
-  <template #footer>
-    <div id="dialog-footer">
-      <el-button type="primary" @click="dialogFormVisible = false">
-        纭
-      </el-button>
-      <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
+        <div style="margin-top: 20px;">
+          <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">淇敼淇℃伅</p>
+          <el-form label-position="right"
+                   label-width="90px">
+            <el-form-item style="width: 20vw"
+                          label="鐜荤拑id锛�">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="璁㈠崟缂栧彿锛�">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="鍒楄〃缂栧彿锛�">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="绠卞瓙缂栧彿锛�">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="闀匡細">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ラ暱"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="瀹斤細">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ュ"></el-input>
+            </el-form-item>
+          </el-form>
+        </div>
+        <div style="margin-top: 20px;">
+          <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">淇敼淇℃伅</p>
+          <el-form label-position="right"
+                   label-width="90px">
+            <el-form-item style="width: 20vw"
+                          label="鐜荤拑id锛�">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="璁㈠崟缂栧彿锛�">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="鍒楄〃缂栧彿锛�">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="绠卞瓙缂栧彿锛�">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="闀匡細">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ラ暱"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="瀹斤細">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ュ"></el-input>
+            </el-form-item>
+          </el-form>
+        </div>
+        <div style="margin-top: 20px;">
+          <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">褰撳墠淇℃伅</p>
+          <el-form label-position="right"
+                   label-width="90px">
+            <el-form-item style="width: 20vw"
+                          label="鐜荤拑id锛�">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ョ幓鐠僫d"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="璁㈠崟缂栧彿锛�">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="鍒楄〃缂栧彿锛�">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ュ垪琛ㄧ紪鍙�"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="绠卞瓙缂栧彿锛�">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ョ瀛愮紪鍙�"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="闀匡細">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ラ暱"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 20vw"
+                          label="瀹斤細">
+              <el-input style="width: 180px"
+                        size="mini"
+                        placeholder="璇疯緭鍏ュ"></el-input>
+            </el-form-item>
+          </el-form>
+        </div>
+      </div>
     </div>
-  </template>
-</el-dialog>
-<el-dialog v-model="dialogFormVisiblea" top="10vh" width="85%" title="璁㈠崟淇℃伅" >
-  <el-input  placeholder="璇疯緭鍏ュ伐绋嬪彿" style="width: 180px;size: mini;"></el-input>
-    <el-button style="margin-left: 10px;size: mini;" type="primary">鏌ヨ</el-button>
-    <el-table  ref="table" style="margin-top: 20px;height: 500px;"
-        @selection-change="handleSelectionChange"
-        :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="ida" align="center" label="鐜荤拑id" min-width="80" />
-          <el-table-column prop="typea" align="center" label="宸ョ▼鍙�" min-width="120" />
-          <el-table-column prop="typea" align="center" label="闀�" min-width="120" />
-          <el-table-column prop="typea" align="center" label="瀹�" min-width="120" />
-          <el-table-column prop="typea" align="center" label="鍘�" min-width="120" />
-        </el-table>
-        <div id="demo-pagination-block">
-    <el-pagination
-    style="margin-left: 850px;"
-      v-model:current-page="currentPage4"
-      v-model:page-size="pageSize4"
-      :page-sizes="[100, 200, 300, 400]"
-      :small="small"
-      :disabled="disabled"
-      :background="background"
-      layout="total, sizes, prev, pager, next, jumper"
-      :total="400"
-      @size-change="handleSizeChange"
-      @current-change="handleCurrentChange"
-    />
-  </div>
-</el-dialog>
-<el-dialog v-model="dialogFormVisibleb" top="10vh" width="85%" title="鍑虹墖闃熷垪" >
-  <div style="display: flex;">
-  <p style="margin-top: 4px;">闃熷垪鐘舵�侊細</p>
-  <p style="margin-top: 4px;">寮�濮�</p>
-    <el-button style="margin-left: 10px;size: mini;" type="danger">鍋滄</el-button>
-    <el-button style="margin-left: 10px;size: mini;" type="primary">娣诲姞</el-button>
-  </div>
-    <el-table  ref="table" style="margin-top: 20px;height: 500px;"
-        @selection-change="handleSelectionChange"
-        :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="id" align="center" label="閾濇id" min-width="80" />
-          <el-table-column prop="type" align="center" label="鐜荤拑id" min-width="120" />
-          <el-table-column prop="type" align="center" label="璁㈠崟缂栧彿" min-width="120" />
-          <el-table-column prop="type" align="center" label="鍒楄〃缂栧彿" min-width="120" />
-          <el-table-column prop="type" align="center" label="绠卞瓙缂栧彿" min-width="120" />
-          <el-table-column prop="type" align="center" label="闀�" min-width="120" />
-          <el-table-column prop="type" align="center" label="瀹�" min-width="120" />
-          <el-table-column prop="type" align="center" label="鐜荤拑鐘舵��" min-width="120" />
-          <el-table-column prop="type" align="center" label="椤哄簭" min-width="120" />
-          <el-table-column prop="type" align="center" label="瀹屾垚" min-width="120" />
-          <el-table-column prop="type" align="center" label="鎿嶄綔" min-width="120" />
-        </el-table>
-</el-dialog>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary"
+                   @click="dialogFormVisible = false">
+          纭
+        </el-button>
+        <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <el-dialog v-model="dialogFormVisiblea"
+             top="10vh"
+             width="85%"
+             title="璁㈠崟淇℃伅">
+    <el-input placeholder="璇疯緭鍏ュ伐绋嬪彿"
+              style="width: 180px;size: mini;"></el-input>
+    <el-button style="margin-left: 10px;size: mini;"
+               type="primary">鏌ヨ
+    </el-button>
+    <el-table ref="table"
+              style="margin-top: 20px;height: 500px;"
+              @selection-change="handleSelectionChange"
+              :data="tableDataa"
+              :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+      <el-table-column prop="ida"
+                       align="center"
+                       label="鐜荤拑id"
+                       min-width="80"/>
+      <el-table-column prop="typea"
+                       align="center"
+                       label="宸ョ▼鍙�"
+                       min-width="120"/>
+      <el-table-column prop="typea"
+                       align="center"
+                       label="闀�"
+                       min-width="120"/>
+      <el-table-column prop="typea"
+                       align="center"
+                       label="瀹�"
+                       min-width="120"/>
+      <el-table-column prop="typea"
+                       align="center"
+                       label="鍘�"
+                       min-width="120"/>
+    </el-table>
+    <div id="demo-pagination-block">
+      <el-pagination style="margin-left: 850px;"
+                     v-model:current-page="currentPage4"
+                     v-model:page-size="pageSize4"
+                     :page-sizes="[100, 200, 300, 400]"
+                     :small="small"
+                     :disabled="disabled"
+                     :background="background"
+                     layout="total, sizes, prev, pager, next, jumper"
+                     :total="400"
+                     @size-change="handleSizeChange"
+                     @current-change="handleCurrentChange"/>
+    </div>
+  </el-dialog>
+  <el-dialog v-model="dialogFormVisibleb"
+             top="10vh"
+             width="85%"
+             title="鍑虹墖闃熷垪">
+    <div style="display: flex;">
+      <p style="margin-top: 4px;">闃熷垪鐘舵�侊細</p>
+      <p style="margin-top: 4px;">寮�濮�</p>
+      <el-button style="margin-left: 10px;size: mini;"
+                 type="danger">鍋滄
+      </el-button>
+      <el-button style="margin-left: 10px;size: mini;"
+                 type="primary">娣诲姞
+      </el-button>
+    </div>
+    <el-table ref="table"
+              style="margin-top: 20px;height: 500px;"
+              @selection-change="handleSelectionChange"
+              :data="tableDatab"
+              :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+      <el-table-column prop="id"
+                       align="center"
+                       label="閾濇id"
+                       min-width="80"/>
+      <el-table-column prop="type"
+                       align="center"
+                       label="鐜荤拑id"
+                       min-width="120"/>
+      <el-table-column prop="type"
+                       align="center"
+                       label="璁㈠崟缂栧彿"
+                       min-width="120"/>
+      <el-table-column prop="type"
+                       align="center"
+                       label="鍒楄〃缂栧彿"
+                       min-width="120"/>
+      <el-table-column prop="type"
+                       align="center"
+                       label="绠卞瓙缂栧彿"
+                       min-width="120"/>
+      <el-table-column prop="type"
+                       align="center"
+                       label="闀�"
+                       min-width="120"/>
+      <el-table-column prop="type"
+                       align="center"
+                       label="瀹�"
+                       min-width="120"/>
+      <el-table-column prop="type"
+                       align="center"
+                       label="鐜荤拑鐘舵��"
+                       min-width="120"/>
+      <el-table-column prop="type"
+                       align="center"
+                       label="椤哄簭"
+                       min-width="120"/>
+      <el-table-column prop="type"
+                       align="center"
+                       label="瀹屾垚"
+                       min-width="120"/>
+      <el-table-column prop="type"
+                       align="center"
+                       label="鎿嶄綔"
+                       min-width="120"/>
+    </el-table>
+  </el-dialog>
 
 </template>
 <style scoped>
+#dt {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 100px;
+}
 
-#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
-#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
-#dialog-footer{
+#dta {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 80%;
+}
+
+#dialog-footer {
   text-align: center;
   margin-top: -15px;
 }
-#message{
+
+#message {
   text-align: center;
   align-items: center;
   color: black;
-   width: 200px;
-   height: 100px;
-   background-color: #337ecc;
-   margin-left: 28%;
+  width: 200px;
+  height: 100px;
+  background-color: #337ecc;
+  margin-left: 28%;
 }
-#awatch{
+
+#awatch {
   height: 450px;
 }
+
 #occupy {
-    height: 100%;
-    width: 15%;
-    background-color: white;
-    margin: 0px 8px 0px 8px;
-    border: 1px #EBEEF5 solid;
-    text-align: center;
-    padding: 5px;
+  height: 100%;
+  width: 15%;
+  background-color: white;
+  margin: 0px 8px 0px 8px;
+  border: 1px #ebeef5 solid;
+  text-align: center;
+  padding: 5px;
 }
 #biao {
-    font-size: 12px;
+  font-size: 12px;
 }
 #zhi {
-    font-size: 18px;
-    font-weight: bold;
+  font-size: 18px;
+  font-weight: bold;
 }
+
 #demo-pagination-block + #demo-pagination-block {
   margin-top: 10px;
 }
+
 #demo-pagination-block #demonstration {
   margin-bottom: 16px;
 }
+
 ::-webkit-scrollbar {
-     width: 0 !important;
-   }
-   ::-webkit-scrollbar {
-     width: 0 !important;height: 0;
-   }
-   .img-list{
-	
-  position:relative;
+  width: 0 !important;
 }
-.data-img{
-  @apply float-none ;
-  
-  width:100%;
-  height:16rem;
+
+::-webkit-scrollbar {
+  width: 0 !important;
+  height: 0;
+}
+
+.img-list {
+  position: relative;
+}
+
+.data-img {
+  @apply float-none;
+
+  width: 100%;
+  height: 16rem;
   background: rgba(0, 0, 0, 0);
   opacity: 1;
   border-radius: 0.5rem 0.5rem 0px 0px;
-
 }
-.check-img{
+
+.check-img {
   position: absolute;
   width: 3.3125rem;
   height: 2.9375rem;
-  top:20rem;
+  top: 20rem;
   right: 57rem;
   z-index: 10;
-  
 }
-.check-imga{
+
+.check-imga {
   position: absolute;
   width: 3.3125rem;
   height: 2.9375rem;
-  top:15rem;
+  top: 15rem;
   right: 28.5rem;
   z-index: 10;
-  
 }
+
 .vertical {
-    width: 45px;
-    height: 25px;
-    background-color: #409EFF;
-    top: 485px; /* 鍒濆浣嶇疆 */
-    left: 899px; /* 姘村钩灞呬腑 */
-    transform: translateX(-50%);
-    animation: move-vertical 6s infinite; /* 浠庝笂鍒颁笅鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
+  width: 45px;
+  height: 25px;
+  background-color: #409eff;
+  top: 485px; /* 鍒濆浣嶇疆 */
+  left: 899px; /* 姘村钩灞呬腑 */
+  transform: translateX(-50%);
+  animation: move-vertical 6s infinite; /* 浠庝笂鍒颁笅鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
 }
 
 @keyframes move-vertical {
-    0% {
-        top: 485px; /* 璧峰浣嶇疆 */
-    }
-    100% {
-        top: calc(100% - 210px); /* 浠庝笂鍒颁笅缁撴潫浣嶇疆 */
-    }
+  0% {
+    top: 485px; /* 璧峰浣嶇疆 */
+  }
+  100% {
+    top: calc(100% - 210px); /* 浠庝笂鍒颁笅缁撴潫浣嶇疆 */
+  }
 }
 
-.img-dlpl{
+.img-dlpl {
   margin-left: 200px;
-  background-image:url('../../assets/dlpl.png');
+  background-image: url('../../assets/dlpl.png');
   background-repeat: no-repeat;
-    background-attachment: local;
-    min-height: 400px;
-    width: 1200px;
-    max-width: 100%;
-    background-size: 1200px 400px;
-    overflow: hidden;
-    position:relative
+  background-attachment: local;
+  min-height: 400px;
+  width: 1200px;
+  max-width: 100%;
+  background-size: 1200px 400px;
+  overflow: hidden;
+  position: relative;
 }
-.img-car1{
-  background-image:url('../../assets/lp.png');
+
+.img-car1 {
+  background-image: url('../../assets/lpl.jpg');
   position: absolute;
   background-repeat: no-repeat;
-    background-attachment: local;
-    min-height: 200px;
-    width: 200px;
-    max-width: 100%;
-    background-size: 200px 70px;
-    overflow: hidden;
-    position:relative
+  background-attachment: local;
+  min-height: 200px;
+  width: 200px;
+  max-width: 100%;
+  background-size: 200px 70px;
+  overflow: hidden;
+  position: relative;
 }
-.img-car2{
-  background-image:url('../../assets/lpa.png');
+
+.img-car2 {
+  background-image: url('../../assets/lpla.jpg');
   position: absolute;
   background-repeat: no-repeat;
-    background-attachment: local;
-    min-height: 200px;
-    width: 200px;
-    max-width: 100%;
-    background-size: 200px 70px;
-    overflow: hidden;
-    position:relative
+  background-attachment: local;
+  min-height: 200px;
+  width: 200px;
+  max-width: 100%;
+  background-size: 200px 70px;
+  overflow: hidden;
+  position: relative;
 }
 </style>
\ No newline at end of file
diff --git a/UI-Project/vite.config.js b/UI-Project/vite.config.js
index 996aec1..b93f5ee 100644
--- a/UI-Project/vite.config.js
+++ b/UI-Project/vite.config.js
@@ -22,7 +22,7 @@
     https: false,
     proxy: {
       '/api': {
-        target: '10.153.19.150:88/',
+        target: 'http://127.0.0.1:88/',
         changeOrigin: true,
         rewrite: (path) => path.replace(/^\/api/, '/'),
       },
diff --git a/hangzhoumesParent.zip b/hangzhoumesParent.zip
new file mode 100644
index 0000000..c049891
--- /dev/null
+++ b/hangzhoumesParent.zip
Binary files differ
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java
new file mode 100644
index 0000000..612845f
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java
@@ -0,0 +1,21 @@
+package com.mes.glassinfo.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-29
+ */
+@RestController
+@RequestMapping("/glassinfo/glass-info")
+public class GlassInfoController {
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
new file mode 100644
index 0000000..dfa7b6e
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
@@ -0,0 +1,135 @@
+package com.mes.glassinfo.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class GlassInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鐜荤拑淇℃伅琛╥d
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 娴佺▼鍗�
+     */
+    private String flowCardId;
+
+    /**
+     * 娴佺▼鍗$幓鐠冪被鍨�
+     */
+    private Integer glassType;
+
+    /**
+     * 瀹�
+     */
+    private Double width;
+
+    /**
+     * 楂�
+     */
+    private Double height;
+
+    /**
+     * 鍘氬害
+     */
+    private Double thickness;
+
+    /**
+     * 鑶滅郴
+     */
+    private String filmsid;
+
+    /**
+     * 纾ㄥ墠瀹�
+     */
+    private Double edgWidth;
+
+    /**
+     * 纾ㄥ墠楂�
+     */
+    private Double edgHeight;
+
+    /**
+     * 鏄惁閰嶇墖
+     */
+    private Integer ismultiple;
+
+    /**
+     * 閰嶇墖鏈�澶у
+     */
+    private Double maxWidth;
+
+    /**
+     * 閰嶇墖鏈�澶ч珮
+     */
+    private Double maxHeight;
+
+    /**
+     * 閽㈠寲鏄惁鎺ュ彈妯斁
+     */
+    private Integer ishorizontal;
+
+    /**
+     * 鍘熺墖椤哄簭
+     */
+    private Integer patternSequence;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+
+    /**
+     * 閽㈠寲鐗堝浘鐗囧簭
+     */
+    private Integer temperingFeedSequence;
+
+    /**
+     * x鍧愭爣
+     */
+    private Integer xCoordinate;
+
+    /**
+     * y鍧愭爣
+     */
+    private Integer yCoordinate;
+
+    /**
+     * 鏃嬭浆瑙掑害锛堥�嗘椂閽堬級
+     */
+    private Integer angle;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String engineerId;
+
+    /**
+     * 鐢熶骇瑙勫垯id
+     */
+    private Integer ruleId;
+
+    /**
+     * 鐜荤拑ID
+     */
+    private String glassId;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java
new file mode 100644
index 0000000..8f50981
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java
@@ -0,0 +1,82 @@
+package com.mes.glassinfo.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author SNG-010
+ */
+@Setter
+@Getter
+public class OptimizeGlassinfo {
+
+    // Getter methods
+    // Setter methods
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String projectId;
+
+    /**
+     * 宸ョ▼绉嶇被
+     */
+    private String type;
+
+    /**
+     * 瀹�
+     */
+    private Double width;
+
+    /**
+     * 楂�
+     */
+    private Double height;
+
+    /**
+     * 鍘氬害
+     */
+    private Double glassThickness;
+
+    /**
+     * 鐜荤拑鑶滅郴
+     */
+    private String glassType;
+
+    /**
+     * 灏忕墖瀹斤紙鍔犵(閲忥級
+     */
+    private Double pWidth;
+    /**
+     * 灏忕墖楂橈紙鍔犵(閲忥級
+     */
+    private Double pHeight;
+    /**
+     * 鐗堝浘id
+     */
+    private Integer stockId;
+    /**
+     * 閽㈠寲鐗堝浘缂栧彿(鏋跺彿)
+     */
+    private Integer heatLayoutId;
+    /**
+     * 閽㈠寲搴忓彿
+     */
+    private Integer heatLayoutSort;
+    /**
+     * x鍧愭爣
+     */
+    private Integer xAxis;
+    /**
+     * y鍧愭爣
+     */
+    private  Integer yAxis;
+    /**
+     * 宸ョ▼鍙�
+     */
+    private  String projectNo;
+    /**
+     * 灏忕墖缂栧彿
+     */
+    private  String glassId;
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java
new file mode 100644
index 0000000..4688c38
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java
@@ -0,0 +1,17 @@
+package com.mes.glassinfo.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-29
+ */
+public interface GlassInfoMapper extends BaseMapper<GlassInfo>, MPJBaseMapper<GlassInfo> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/xml/GlassInfoMapper.xml b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/xml/GlassInfoMapper.xml
new file mode 100644
index 0000000..3c9381f
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/xml/GlassInfoMapper.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.glassinfo.mapper.GlassInfoMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
new file mode 100644
index 0000000..746b5f4
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
@@ -0,0 +1,19 @@
+package com.mes.glassinfo.service;
+
+import com.mes.glassinfo.entity.GlassInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-29
+ */
+public interface GlassInfoService extends MPJBaseService<GlassInfo> {
+
+      List<GlassInfo> selectGlassInfo(String engineeringId);
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
new file mode 100644
index 0000000..88838b9
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
@@ -0,0 +1,77 @@
+package com.mes.glassinfo.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.github.yulichang.query.MPJQueryWrapper;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.entity.OptimizeGlassinfo;
+import com.mes.glassinfo.mapper.GlassInfoMapper;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.mapper.OptimizeProjectMapper;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-29
+ */
+@Service
+@Slf4j
+public class GlassInfoServiceImpl extends MPJBaseServiceImpl<GlassInfoMapper, GlassInfo> implements GlassInfoService {
+    @Autowired
+    OptimizeProjectMapper optimizeProjectMapper;
+    @Override
+    @DS("pp")
+
+    public List<GlassInfo> selectGlassInfo(String engineeringId) {
+        List<OptimizeGlassinfo> optimizeGlassinfos=null;
+        if (engineeringId != null) {
+            optimizeGlassinfos = optimizeProjectMapper.selectJoinList(OptimizeGlassinfo.class, new MPJQueryWrapper<OptimizeProject>()
+                    .select("b.process_id,t.type,b.width,b.height,t.glass_thickness,t.glass_type,b.p_width,b.p_height,b.stock_id,b.heat_layout_id,b.heat_layout_sort,b.x_axis,b.y_axis,b.project_no,b.glass_id")
+                    .leftJoin("optimize_detail b on t.project_no=b.project_no")
+                    .eq("t.state",200)
+                    .eq("t.project_no", engineeringId));
+        }
+
+        // 鍒涘缓涓�涓� List 鐢ㄤ簬淇濆瓨鏄犲皠鍚庣殑瀹炰綋瀵硅薄
+        List<GlassInfo> resultList = new ArrayList<>();
+
+        if(optimizeGlassinfos!=null){
+            for (OptimizeGlassinfo map : optimizeGlassinfos) {
+                // 鍒涘缓涓�涓柊鐨� OptimizeGlassinfo 瀵硅薄
+                GlassInfo glassInfo = new GlassInfo();
+                // 灏� Map 涓殑姣忎釜閿�煎鏄犲皠鍒� OptimizeGlassinfo 瀵硅薄鐨勭浉搴斿瓧娈典笂
+                glassInfo.setEngineerId(map.getProjectNo());
+                glassInfo.setFlowCardId(map.getProjectId());
+                glassInfo.setFilmsid(map.getGlassType());
+                glassInfo.setWidth(map.getWidth());
+                glassInfo.setHeight(map.getHeight());
+                glassInfo.setThickness(map.getGlassThickness());
+                glassInfo.setPatternSequence(map.getStockId());//
+                glassInfo.setTemperingLayoutId(map.getHeatLayoutId());//閽㈠寲鐗堝浘id
+                glassInfo.setTemperingFeedSequence(map.getHeatLayoutSort());//閽㈠寲鐗堝浘椤哄簭
+                glassInfo.setXCoordinate(map.getXAxis());
+                glassInfo.setYCoordinate(map.getYAxis());
+
+                glassInfo.setGlassId(map.getGlassId());
+                // 灏嗘槧灏勫悗鐨勫璞℃坊鍔犲埌缁撴灉鍒楄〃涓�
+                resultList.add(glassInfo);
+            }
+        }
+        log.info("鏌ヨ鍑篻lassinfo鐨勬暟鎹畕}:",resultList);
+        log.info("鏌ヨ鍑篻lassinfopro鐨勬暟鎹畕}:",optimizeGlassinfos);
+        return resultList;
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
index 866f4b4..7a3bfe9 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
@@ -22,7 +22,7 @@
         // 2銆佸叏灞�閰嶇疆
         // 鍏ㄥ眬閰嶇疆
         GlobalConfig gc = new GlobalConfig();
-        gc.setOutputDir("D:\\Documents\\hangzhoumesParent2\\");
+        gc.setOutputDir("D:\\Documents\\hangzhoumesParent3\\");
 
         gc.setServiceName("%sService");	//鍘绘帀Service鎺ュ彛鐨勯瀛楁瘝I
         gc.setAuthor("wu");
@@ -41,7 +41,7 @@
         // 4銆佸寘閰嶇疆
         PackageConfig pc = new PackageConfig();
         pc.setParent("com.mes");
-        pc.setModuleName("engineering"); //妯″潡鍚�
+        pc.setModuleName("glassinfo"); //妯″潡鍚�
         pc.setController("controller");
         pc.setService("service");
         pc.setMapper("mapper");
@@ -50,7 +50,7 @@
         // 5銆佺瓥鐣ラ厤缃�
         StrategyConfig strategy = new StrategyConfig();
 
-        strategy.setInclude("engineering");
+        strategy.setInclude("glass_info");
 
         strategy.setNaming(NamingStrategy.underline_to_camel);//鏁版嵁搴撹〃鏄犲皠鍒板疄浣撶殑鍛藉悕绛栫暐
 
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java
index c0a3d4d..48e78f1 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java
@@ -1,48 +1,56 @@
 package com.mes.uppattenusage.controller;
 
-
-import com.mes.uppattenusage.entity.UpPattenUsage;
-import com.mes.uppattenusage.service.UpPattenUsageService;
-import com.mes.utils.Result;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-
-/**
- * <p>
- *  鍓嶇鎺у埗鍣�
- * </p>
- *
- * @author zhoush
- * @since 2024-04-18
- */
-@RestController
-@RequestMapping("/up-patten-usage")
-@Slf4j
-public class UpPattenUsageController {
-
-    @Autowired
-    private UpPattenUsageService upPattenUsageService;
-    @ApiOperation("鏄剧ず姝e湪鍑虹墖鐨勫伐绋嬩俊鎭�")
-    @GetMapping("/prioritylist") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
-    public Result<List<UpPattenUsage>> prioritylist() {
-        List<UpPattenUsage> glass = upPattenUsageService.prioritylist(1);
-        log.info("鏄剧ず宸ヤ綅涓婄殑鐜荤拑淇℃伅:{}", glass);
-        return Result.build(200, "", glass);
-    }
-
-    @ApiOperation("鐐瑰嚮閫夋嫨宸ョ▼淇濆瓨鍚庤繘琛岃皟鐢�,浼犲叆宸ョ▼鍙�")
-    @GetMapping("/saveUpPattenUsage") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
-    public Result<Integer> saveUpPattenUsage(@RequestBody String engineeringId) {
-        //List<OptimizeUpPattenUsage> glass = upPattenUsageService.saveUpPattenUsage(engineeringId);
-        log.info("鏄剧ず宸ヤ綅涓婄殑鐜荤拑淇℃伅:{}", 200);
-        return Result.build(200, "", 200);
-    }
-}
+//
+//import com.mes.uppattenusage.service.GlassInfoService;
+//import com.mes.uppattenusage.entity.OptimizeUpPattenUsage;
+//import com.mes.uppattenusage.entity.UpPattenUsage;
+//import com.mes.glassinfo.entity.GlassInfo;
+//import com.mes.uppattenusage.service.UpPattenUsageService;
+//import com.mes.utils.Result;
+//import io.swagger.annotations.ApiOperation;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.web.bind.annotation.GetMapping;
+//import org.springframework.web.bind.annotation.RequestBody;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RestController;
+//
+//import java.util.List;
+//
+///**
+// * <p>
+// *  鍓嶇鎺у埗鍣�
+// * </p>
+// *
+// * @author zhoush
+// * @since 2024-04-18
+// */
+//@RestController
+//@RequestMapping("/up-patten-usage")
+//@Slf4j
+//public class UpPattenUsageController {
+//
+//    @Autowired
+//    private UpPattenUsageService upPattenUsageService;
+//    @Autowired
+//    private  GlassInfoService glassInfoService;
+//    @ApiOperation("鏄剧ず姝e湪鍑虹墖鐨勫伐绋嬩俊鎭�")
+//    @GetMapping("/prioritylist") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
+//    public Result<List<UpPattenUsage>> prioritylist() {
+//        List<UpPattenUsage> glass = upPattenUsageService.prioritylist(1);
+//        log.info("鏄剧ず宸ヤ綅涓婄殑鐜荤拑淇℃伅:{}", glass);
+//        return Result.build(200, "", glass);
+//    }
+//
+//    @ApiOperation("鐐瑰嚮閫夋嫨宸ョ▼淇濆瓨鍚庤繘琛岃皟鐢�,浼犲叆宸ョ▼鍙�")
+//    @GetMapping("/saveUpPattenUsage") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
+//    public Result<Integer> saveUpPattenUsage(String engineeringId) {
+//        List<UpPattenUsage> upPattenUsages = upPattenUsageService.selectSaveUpPattenUsage(engineeringId);
+//        log.info("灏嗘煡璇㈠嚭鐨刄pPattenUsage鏁版嵁淇濆瓨鍒版暟鎹簱琛ㄩ噷");
+//        upPattenUsageService.saveUpPattenUsage(upPattenUsages);
+//        log.info("浠嶱P琛ㄦ煡璇lassinfo鐨勬暟鎹苟淇濆瓨鍒拌〃閲�");
+//        List<GlassInfo> glassinfo=glassInfoService.selectGlassInfo(engineeringId);
+//        return Result.build(200, "", 200);
+//    }
+//}
 
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/OptimizeUpPattenUsage.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/OptimizeUpPattenUsage.java
index 2b747b6..7882159 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/OptimizeUpPattenUsage.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/OptimizeUpPattenUsage.java
@@ -1,7 +1,17 @@
 package com.mes.uppattenusage.entity;
 
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author SNG-010
+ */
+@Setter
+@Getter
 public class OptimizeUpPattenUsage {
 
+    // Getter methods
+    // Setter methods
     /**
      * 宸ョ▼鍙�
      */
@@ -36,63 +46,5 @@
      * 鐘舵��
      */
     private Integer state;
-
-    // Getter methods
-    public String getProjectNo() {
-        return projectNo;
-    }
-
-    public String getGlassType() {
-        return glassType;
-    }
-
-    public Double getWidth() {
-        return width;
-    }
-
-    public Double getHeight() {
-        return height;
-    }
-
-    public Double getGlassThickness() {
-        return glassThickness;
-    }
-
-    public Integer getHeatLayoutSort() {
-        return heatLayoutSort;
-    }
-
-    public Integer getState() {
-        return state;
-    }
-
-    // Setter methods
-    public void setProjectNo(String projectNo) {
-        this.projectNo = projectNo;
-    }
-
-    public void setGlassType(String glassType) {
-        this.glassType = glassType;
-    }
-
-    public void setWidth(Double width) {
-        this.width = width;
-    }
-
-    public void setHeight(Double height) {
-        this.height = height;
-    }
-
-    public void setGlassThickness(Double glassThickness) {
-        this.glassThickness = glassThickness;
-    }
-
-    public void setHeatLayoutSort(Integer heatLayoutSort) {
-        this.heatLayoutSort = heatLayoutSort;
-    }
-
-    public void setState(Integer state) {
-        this.state = state;
-    }
 
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
index 47a6c20..37427e8 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
@@ -16,6 +16,8 @@
 public interface UpPattenUsageService extends MPJBaseService<UpPattenUsage> {
      List<UpPattenUsage> prioritylist(int state);
 
-     List<Map> saveUpPattenUsage(String engineeringId);
+     List<UpPattenUsage> selectSaveUpPattenUsage(String engineeringId);
+
+     void saveUpPattenUsage(List<UpPattenUsage> upPattenUsages);
 }
 
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
index cf60362..59a06be 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
@@ -14,9 +14,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * <p>
@@ -43,16 +41,49 @@
 
     @Override
     @DS("pp")
-    public List<Map> saveUpPattenUsage(String engineeringId) {
+    public List<UpPattenUsage> selectSaveUpPattenUsage(String engineeringId) {
 
+        List<OptimizeUpPattenUsage> upPattenUsageList = null;
         if (engineeringId != null) {
-
-            List<Map> upPattenUsageList=optimizeProjectMapper.selectJoinList(Map.class,new MPJQueryWrapper<OptimizeProject>()
+            upPattenUsageList = optimizeProjectMapper.selectJoinList(OptimizeUpPattenUsage.class, new MPJQueryWrapper<OptimizeProject>()
                     .select("t.project_no,t.glass_type,b.width,b.height,REGEXP_REPLACE(t.glass_thickness,'\\D','')as glass_thickness,b.heat_layout_sort")
                     .leftJoin("optimize_layout b on t.project_no=b.project_no")
-                    .eq("b.project_no",engineeringId));
+                    .eq("b.project_no", engineeringId));
         }
-        return Collections.emptyList();
+        // 鍒涘缓涓�涓� List 鐢ㄤ簬淇濆瓨鏄犲皠鍚庣殑瀹炰綋瀵硅薄
+        List<UpPattenUsage> resultList = new ArrayList<>();
+
+// 閬嶅巻鏌ヨ缁撴灉涓殑姣忎釜 Map 瀵硅薄
+        if (upPattenUsageList != null) {
+            for (OptimizeUpPattenUsage map : upPattenUsageList) {
+                // 鍒涘缓涓�涓柊鐨� OptimizeProject 瀵硅薄
+                UpPattenUsage optimizeProject = new UpPattenUsage();
+                // 灏� Map 涓殑姣忎釜閿�煎鏄犲皠鍒� OptimizeProject 瀵硅薄鐨勭浉搴斿瓧娈典笂
+                optimizeProject.setEngineeringId((String) map.getProjectNo());
+                optimizeProject.setFilmsId((String) map.getGlassType());
+                optimizeProject.setWidth((Double) map.getWidth());
+                optimizeProject.setHeight((Double) map.getHeight());
+                optimizeProject.setThickness((Double)map.getHeight());
+                optimizeProject.setLayoutSequence((Integer) map.getHeatLayoutSort());
+                optimizeProject.setState(0);
+                // 灏嗘槧灏勫悗鐨勫璞℃坊鍔犲埌缁撴灉鍒楄〃涓�
+                resultList.add(optimizeProject);
+            }
+        }
+        log.info("鏌ヨ鍑轰笂鐗囬『搴忛泦鍚堜繚瀛樺埌瀹炰綋绫粄}",resultList);
+        return resultList;
+    }
+
+    @Override
+    public void saveUpPattenUsage(List<UpPattenUsage> upPattenUsage) {
+        this.saveBatch(upPattenUsage);
+        //淇濆瓨鍘熺墖浣跨敤璇︽儏琛�
+    }
+
+    //@Override
+    public void selectSaveGlassinfo(String engineeringId) {
+        //淇濆瓨鐜荤拑淇℃伅琛�
+        //optimizeProjectMapper.selectJoinList();
     }
 
 
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
index 5be6d66..e993f38 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
@@ -50,7 +50,7 @@
         //瑙f瀽token
         String userid;
         try {
-            Claims claims = JwtUtil.parseJWT(token);
+            Claims claims = JwtUtil.getClaimByToken(token);
             userid = claims.getSubject();
         } catch (Exception e) {
             e.printStackTrace();
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java
index 8c8f0d9..f7af90a 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java
@@ -2,119 +2,54 @@
 
 
 import io.jsonwebtoken.Claims;
-import io.jsonwebtoken.JwtBuilder;
 import io.jsonwebtoken.Jwts;
 import io.jsonwebtoken.SignatureAlgorithm;
+import lombok.Data;
 
-import javax.crypto.SecretKey;
-import javax.crypto.spec.SecretKeySpec;
-import java.util.Base64;
 import java.util.Date;
-import java.util.UUID;
 
 /**
  * @Author : zhoush
  * @Date: 2024/4/9 19:15
  * @Description:
  */
+@Data
 public class JwtUtil {
 
-    //鏈夋晥鏈熶负
-    public static final Long JWT_TTL = 60 * 60 * 1000L;// 60 * 60 *1000  涓�涓皬鏃�
-    //璁剧疆绉橀挜鏄庢枃
-    public static final String JWT_KEY = "sangeng";
+    private static final long expire = 60 * 60 * 1000L;
+    private static final String secret = "beibo";
+    private static final String header = "Authorization";
 
-    public static String getUUID() {
-        String token = UUID.randomUUID().toString().replaceAll("-", "");
-        return token;
-    }
+    // 鐢熸垚jwt
+    public static String generateToken(String username) {
 
-    /**
-     * 鐢熸垚jtw
-     *
-     * @param subject token涓瀛樻斁鐨勬暟鎹紙json鏍煎紡锛�
-     * @return
-     */
-    public static String createJWT(String subject) {
-        JwtBuilder builder = getJwtBuilder(subject, null, getUUID());// 璁剧疆杩囨湡鏃堕棿
-        return builder.compact();
-    }
+        Date nowDate = new Date();
+        Date expireDate = new Date(nowDate.getTime() + 1000 * expire);
 
-    /**
-     * 鐢熸垚jtw
-     *
-     * @param subject   token涓瀛樻斁鐨勬暟鎹紙json鏍煎紡锛�
-     * @param ttlMillis token瓒呮椂鏃堕棿
-     * @return
-     */
-    public static String createJWT(String subject, Long ttlMillis) {
-        JwtBuilder builder = getJwtBuilder(subject, ttlMillis, getUUID());// 璁剧疆杩囨湡鏃堕棿
-        return builder.compact();
-    }
-
-    private static JwtBuilder getJwtBuilder(String subject, Long ttlMillis, String uuid) {
-        SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
-        SecretKey secretKey = generalKey();
-        long nowMillis = System.currentTimeMillis();
-        Date now = new Date(nowMillis);
-        if (ttlMillis == null) {
-            ttlMillis = JwtUtil.JWT_TTL;
-        }
-        long expMillis = nowMillis + ttlMillis;
-        Date expDate = new Date(expMillis);
         return Jwts.builder()
-                .setId(uuid)              //鍞竴鐨処D
-                .setSubject(subject)   // 涓婚  鍙互鏄疛SON鏁版嵁
-                .setIssuer("sg")     // 绛惧彂鑰�
-                .setIssuedAt(now)      // 绛惧彂鏃堕棿
-                .signWith(signatureAlgorithm, secretKey) //浣跨敤HS256瀵圭О鍔犲瘑绠楁硶绛惧悕, 绗簩涓弬鏁颁负绉橀挜
-                .setExpiration(expDate);
+                .setHeaderParam("typ", "JWT")
+                .setSubject(username)
+                .setIssuedAt(nowDate)
+                .setExpiration(expireDate)// 7澶╅亷鏈�
+                .signWith(SignatureAlgorithm.HS512, secret)
+                .compact();
     }
 
-    /**
-     * 鍒涘缓token
-     *
-     * @param id
-     * @param subject
-     * @param ttlMillis
-     * @return
-     */
-    public static String createJWT(String id, String subject, Long ttlMillis) {
-        JwtBuilder builder = getJwtBuilder(subject, ttlMillis, id);// 璁剧疆杩囨湡鏃堕棿
-        return builder.compact();
+    // 瑙f瀽jwt
+    public static Claims getClaimByToken(String jwt) {
+        try {
+            return Jwts.parser()
+                    .setSigningKey(secret)
+                    .parseClaimsJws(jwt)
+                    .getBody();
+        } catch (Exception e) {
+            return null;
+        }
     }
 
-    public static void main(String[] args) throws Exception {
-        String token = "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJjYWM2ZDVhZi1mNjVlLTQ0MDAtYjcxMi0zYWEwOGIyOTIwYjQiLCJzdWIiOiJzZyIsImlzcyI6InNnIiwiaWF0IjoxNjM4MTA2NzEyLCJleHAiOjE2MzgxMTAzMTJ9.JVsSbkP94wuczb4QryQbAke3ysBDIL5ou8fWsbt_ebg";
-        Claims claims = parseJWT(token);
-        System.out.println(claims);
+    // jwt鏄惁杩囨湡
+    public boolean isTokenExpired(Claims claims) {
+        return claims.getExpiration().before(new Date());
     }
-
-    /**
-     * 鐢熸垚鍔犲瘑鍚庣殑绉橀挜 secretKey
-     *
-     * @return
-     */
-    public static SecretKey generalKey() {
-        byte[] encodedKey = Base64.getDecoder().decode(JwtUtil.JWT_KEY);
-        SecretKey key = new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES");
-        return key;
-    }
-
-    /**
-     * 瑙f瀽
-     *
-     * @param jwt
-     * @return
-     * @throws Exception
-     */
-    public static Claims parseJWT(String jwt) throws Exception {
-        SecretKey secretKey = generalKey();
-        return Jwts.parser()
-                .setSigningKey(secretKey)
-                .parseClaimsJws(jwt)
-                .getBody();
-    }
-
 
 }
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
index f6207b7..b8f3259 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
@@ -54,7 +54,7 @@
         //浣跨敤userid鐢熸垚token
         LoginUser loginUser = (LoginUser) authenticate.getPrincipal();
         String userId = loginUser.getUser().getId().toString();
-        String jwt = JwtUtil.createJWT(userId);
+        String jwt = JwtUtil.generateToken(userId);
         //authenticate瀛樺叆redis
         redisUtil.setCacheObject("login:" + userId, loginUser);
         //鎶妕oken鍝嶅簲缁欏墠绔�
diff --git a/hangzhoumesParent/common/springsecurity/src/main/resources/application-dev.yml b/hangzhoumesParent/common/springsecurity/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..7085cc4
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/resources/application-dev.yml
@@ -0,0 +1,15 @@
+spring:
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+    username: root
+    password: beibo.123/
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/resources/application-loc.yml b/hangzhoumesParent/common/springsecurity/src/main/resources/application-loc.yml
new file mode 100644
index 0000000..c615566
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/resources/application-loc.yml
@@ -0,0 +1,15 @@
+spring:
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://192.168.56.10:3306/hangzhoumes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+    username: root
+    password: root
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/resources/application-prod.yml b/hangzhoumesParent/common/springsecurity/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..64e7984
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/resources/application-prod.yml
@@ -0,0 +1,15 @@
+spring:
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+    username: root
+    password: beibo.123/
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8848
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml b/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml
index 9b6f864..d5978be 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml
+++ b/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml
@@ -3,18 +3,18 @@
 spring:
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://localhost:3306/hangzhoumes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+    url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
     username: root
     password: beibo.123/
   cloud:
     nacos:
       discovery:
-        server-addr: localhost:8848
+        server-addr: 10.153.19.150:8848
   application:
     name: security
   redis:
     database: 0
-    host: localhost
+    host: 10.153.19.150
     port: 6379
     password:
   session:
diff --git a/hangzhoumesParent/gateway/src/main/resources/application-dev.yml b/hangzhoumesParent/gateway/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..22ac82e
--- /dev/null
+++ b/hangzhoumesParent/gateway/src/main/resources/application-dev.yml
@@ -0,0 +1,5 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
diff --git a/hangzhoumesParent/gateway/src/main/resources/application-prod.yml b/hangzhoumesParent/gateway/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..dc6869c
--- /dev/null
+++ b/hangzhoumesParent/gateway/src/main/resources/application-prod.yml
@@ -0,0 +1,5 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8848
\ No newline at end of file
diff --git a/hangzhoumesParent/gateway/src/main/resources/application.yml b/hangzhoumesParent/gateway/src/main/resources/application.yml
index be39617..f8655cf 100644
--- a/hangzhoumesParent/gateway/src/main/resources/application.yml
+++ b/hangzhoumesParent/gateway/src/main/resources/application.yml
@@ -1,12 +1,10 @@
 server:
   port: 88
 spring:
+  profiles:
+    active: prod
   application:
     name: gateway
-  cloud:
-    nacos:
-      discovery:
-        server-addr: localhost:8848
     gateway:
       discovery:
         locator:
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcHomeEdg.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcHomeEdg.java
index f4944a9..4251046 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcHomeEdg.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcHomeEdg.java
@@ -163,7 +163,7 @@
                     outTo(3);
                 }else if("3".equals(mapValue.get("A06_request_word"))&&
                          "0".equals(mapValue.get("MES_confirmation_word"))){
-                    
+
                     if("0".equals(mapValue.get("A09_glass_status"))||"0".equals(mapValue.get("A10_glass_status"))){
                         outTo(3);
                     }else{
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..63837a9
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-dev.yml
@@ -0,0 +1,27 @@
+spring:
+  datasource:
+    dynamic:
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        hangzhoumes:
+          url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://127.0.0.1:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  application:
+    name: cacheGlass
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-loc.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-loc.yml
new file mode 100644
index 0000000..477e2cb
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-loc.yml
@@ -0,0 +1,27 @@
+spring:
+  datasource:
+    dynamic:
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        hangzhoumes:
+          url: jdbc:mysql://192.168.56.10:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: root
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://192.168.56.10:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: root
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  application:
+    name: cacheGlass
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..74b6d6c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-prod.yml
@@ -0,0 +1,27 @@
+spring:
+  datasource:
+    dynamic:
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        hangzhoumes:
+          url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        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
+  application:
+    name: cacheGlass
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
index 936cde1..b051f7b 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -3,8 +3,8 @@
 spring:
   datasource:
     dynamic:
-      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
-      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      primary: hangzhoumes #设置默认的数据源或者数据源组,默认值即为master
+      strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.
       datasource:
         hangzhoumes:
           url: jdbc:mysql://localhost:3306/hangzhoumes?serverTimezone=GMT%2b8
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml
index 4ecea3c..cb109f5 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml
@@ -12,12 +12,6 @@
 
 <artifactId>cacheVerticalGlass</artifactId>
     <dependencies>
-
-        <dependency>
-            <groupId>com.github.yulichang</groupId>
-            <artifactId>mybatis-plus-join</artifactId>
-            <version>1.1.6</version>
-        </dependency>
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..b4d7552
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/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/hangzhoumes?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: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-loc.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-loc.yml
new file mode 100644
index 0000000..2454814
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-loc.yml
@@ -0,0 +1,25 @@
+spring:
+  datasource:
+    dynamic:
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        hangzhoumes:
+          url: jdbc:mysql://192.168.56.10:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: root
+          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: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..25593bb
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-prod.yml
@@ -0,0 +1,25 @@
+spring:
+  datasource:
+    dynamic:
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        hangzhoumes:
+          url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?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
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8848
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
index 71c5cb3..8f86c1c 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -2,32 +2,10 @@
   port: 8082
 
 spring:
-  datasource:
-    dynamic:
-      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
-      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
-      datasource:
-        hangzhoumes:
-          url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?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
-  cloud:
-    nacos:
-      discovery:
-        server-addr: 10.153.19.150:8848
+  profiles:
+    active: prod
   application:
     name: cacheVerticalGlass
-  redis:
-    database: 0
-    host: 10.153.19.150
-    port: 6379
-    password: 123456
 mybatis-plus:
   mapper-locations: classpath*:mapper/*.xml
   configuration:
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
index b6d0cba..fa3ec49 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
@@ -20,6 +20,7 @@
     //寮�濮�/鏆傚仠浠诲姟
     @Override
     public  boolean  changeTask(String projectId, Integer state) {
+        //浣跨敤projectId浣滀负鏉′欢淇敼state瀛楁
         LambdaUpdateChainWrapper<Engineering> wrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
         wrapper.set(Engineering::getState,state);
         wrapper.eq(Engineering::getEngineerId,projectId);
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
new file mode 100644
index 0000000..d3c4324
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
@@ -0,0 +1,33 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.mes.workstation.service.UpWorkstationService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+@Component
+@Slf4j
+public class PlcLoadGlassTask {
+
+    @Autowired
+    private UpWorkstationService upWorkstationService;
+
+
+    /**
+     * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
+     * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
+     */
+    @Scheduled(fixedDelay = 300)
+    public void plcLoadGlassTask() throws InterruptedException {
+        JSONObject jsonObject = new JSONObject();
+        try {
+            Thread.sleep(300);
+            upWorkstationService.selectPriority();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java
index 57b043d..0534009 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java
@@ -45,14 +45,14 @@
         return Result.build(200, "", upwork);
     }
 
-    @ApiOperation("寮�濮嬩笂鐗囦换鍔�")
-    @PostMapping("/selectPriority") //璋冪敤涓婄墖浠诲姟
-    @ResponseBody
-    public void selectPriority() {
-        UpWorkSequence work=upWorkstationService.selectPriority();
-        log.info("鏄剧ず鍙笂鐨勭幓鐠冧俊鎭�:{}", work);
-
-    }
+//    @ApiOperation("寮�濮嬩笂鐗囦换鍔�")
+//    @PostMapping("/selectPriority") //璋冪敤涓婄墖浠诲姟
+//    @ResponseBody
+//    public void selectPriority() {
+//        UpWorkSequence work=upWorkstationService.selectPriority();
+//        log.info("鏄剧ず鍙笂鐨勭幓鐠冧俊鎭�:{}", work);
+//
+//    }
 
 }
 
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java
index 39d44e3..4c2638b 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java
@@ -18,7 +18,7 @@
 
 
     //鍒ゆ柇浼樺厛鍚哥墖浣嶇疆鍚庡彂閫佸嚭鐗囦换鍔�
-    public UpWorkSequence selectPriority();
+    UpWorkSequence selectPriority();
 
     //鏌ヨ姝e湪杩涜鐨勫伐绋�
 
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java
index 18d8b4b..ffd6491 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java
@@ -2,12 +2,16 @@
 
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
 import com.mes.workstation.entity.UpWorkSequence;
 import com.mes.workstation.entity.UpWorkstation;
 import com.mes.workstation.mapper.UpWorkstationMapper;
 import com.mes.workstation.service.UpWorkstationService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
 
 /**
  * <p>
@@ -19,8 +23,10 @@
  */
 @Service
 @Slf4j
-public class UpWorkstationServiceImpl extends ServiceImpl<UpWorkstationMapper, UpWorkstation> implements UpWorkstationService {
 
+public class UpWorkstationServiceImpl extends ServiceImpl<UpWorkstationMapper, UpWorkstation> implements UpWorkstationService {
+    @Resource
+    UpPattenUsageMapper upPattenUsageMapper;
     public static final String DB_100_10 = "DB_100_10";
 
     //鍒ゆ柇鏄惁鍙互鍚哥墖杩涜浠诲姟
@@ -33,12 +39,17 @@
 
 
     //鍒ゆ柇浼樺厛鍚哥墖浣嶇疆鍚庡彂閫佸嚭鐗囦换鍔�
+
     public UpWorkSequence selectPriority() {
         UpWorkSequence upwork= this.baseMapper.selectPriority(1);
-        String start = "鍚哥墖淇″彿";//plcmes.getPlcParameter("鍚哥墖淇″彿").getValue();
-        if(upwork!=null&&start.equals("1")){
+        String start = "1";//plcmes.getPlcParameter("鍚哥墖淇″彿").getValue();
+        UpPattenUsage uplist=new UpPattenUsage();
+        if(start.equals("1")){
             //鍙戦�佸嚭鐗囦换鍔�
-            //plcmes.getPlcParameter("鍑虹墖淇″彿").setValue("1");
+            UpdateWrapper<UpPattenUsage> updateWrapper = new UpdateWrapper<>();
+            updateWrapper.eq("state",1).last("LIMIT 1");
+            uplist= upPattenUsageMapper.selectOne(updateWrapper);
+            log.info("鏌ヨ鍑烘湰娆″嚭鐗囩殑鐜荤拑淇℃伅[]",uplist);
         }
         return upwork;
     }
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..a4d1cac
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/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/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://127.0.0.1:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-loc.yml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-loc.yml
new file mode 100644
index 0000000..cc53ca6
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-loc.yml
@@ -0,0 +1,25 @@
+spring:
+  datasource:
+    dynamic:
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        hangzhoumes:
+          url: jdbc:mysql://192.168.56.10:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: root
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://192.168.56.10:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: root
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..c372c41
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-prod.yml
@@ -0,0 +1,25 @@
+spring:
+  datasource:
+    dynamic:
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        hangzhoumes:
+          url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        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
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
index ae352b3..94840e1 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
@@ -1,33 +1,10 @@
 server:
   port: 8083
-
 spring:
-  datasource:
-    dynamic:
-      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
-      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
-      datasource:
-        hangzhoumes:
-          url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
-          username: root
-          password: beibo.123/
-          driver-class-name: com.mysql.cj.jdbc.Driver
-        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
+  profiles:
+    active: prod
   application:
     name: loadGlass
-  redis:
-    database: 0
-    host: 10.153.19.150
-    port: 6379
-    password: 123456
 mybatis-plus:
   mapper-locations: classpath*:mapper/*.xml
   configuration:
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
index 16d3ca2..afb83c3 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
@@ -1,7 +1,10 @@
 package com.mes;
 
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
 import com.mes.pp.mapper.OptimizeProjectMapper;
 import com.mes.uppattenusage.entity.OptimizeUpPattenUsage;
+import com.mes.uppattenusage.entity.UpPattenUsage;
 import com.mes.uppattenusage.service.impl.UpPattenUsageServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
@@ -29,7 +32,8 @@
     private OptimizeProjectMapper optimizeProjectMapper;
     @Autowired
     private UpPattenUsageServiceImpl upPattenUsageService;
-
+    @Autowired
+    private GlassInfoService glassInfoService;
     @Test
     public void test() {
 //        List<OptimizeProject> list = optimizeProjectMapper.saveProject("P24032204");
@@ -44,7 +48,12 @@
 
     @Test
     public void testFindPa() {
-        List<Map> glass = upPattenUsageService.saveUpPattenUsage("P24032204");
+        List<UpPattenUsage> glass = upPattenUsageService.selectSaveUpPattenUsage("P24032204");
         log.info("瀹屾暣璺緞锛歿}", Arrays.asList(glass));
     }
+    @Test
+    public  void  textglassinfo(){
+        List<GlassInfo> glass= glassInfoService.selectGlassInfo("P24032204");
+        log.info("glassinfo锛歿}", Arrays.asList(glass));
+    }
 }
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
index c78f5bf..2fbfdcc 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
@@ -1,48 +1,53 @@
 package com.mes.temperingglass.controller;
 
 import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingAgoService;
 import com.mes.temperingglass.service.TemperingOverService;
 import com.mes.temperingglass.service.TemperingService;
 import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
 
+/**
+ * @author SNG-010
+ */
 @RestController
 @RequestMapping("/temperingGlassInfo")
-
+@Slf4j
 // TidyUpGlassModule 閽㈠寲妯″潡
 public class TemperingGlassInfoController {
 
     @Autowired
     TemperingService temperingService;
-
     @Autowired
     private TemperingOverService temperingOverService;
+    @Autowired
+    private TemperingAgoService temperingAgoService;
 
-    @PostMapping("/SelectWaitingGlass") // 鏌ヨ閽㈠寲绛夌墖涓殑鐗堝浘淇℃伅,鐘舵�佷负1鐨勪负宸插埌,鐘舵�佷负0鐨勪负绛夊緟涓�
-    @ResponseBody
-    public Result SelectWaitingGlass(@RequestParam(name = "ProcessId", required = false) String ProcessId) {
-        List<TemperingGlassInfo> glass = temperingService.SelectWaitingGlass();
-        System.out.println(glass);
+    @ApiOperation("鏌ヨ閽㈠寲绛夌墖涓殑鐗堝浘淇℃伅,鐘舵�佷负1鐨勪负宸插埌,鐘舵�佷负0鐨勪负绛夊緟涓�")
+    @GetMapping("/selectWaitingGlass") // 鏌ヨ閽㈠寲绛夌墖涓殑鐗堝浘淇℃伅,鐘舵�佷负1鐨勪负宸插埌,鐘舵�佷负0鐨勪负绛夊緟涓�
+    public Result <List<TemperingGlassInfo>> selectWaitingGlass() {
+        List<TemperingGlassInfo> glass = temperingAgoService.selectWaitingGlass();
+        log.info("绛夊緟涓殑鐜荤拑淇℃伅{}",glass);
         return Result.build(200, "", glass);
     }
-
-    @GetMapping("/SelectIntoGlass") // 鏌ヨ杩涚倝涓殑閽㈠寲绛夌墖涓殑鐗堝浘淇℃伅,鐘舵�佸叏涓�1鐨勪负宸插埌銆�
-    @ResponseBody
-    public Result SelectIntoGlass(String ProcessId) {
-        List<TemperingGlassInfo> glass = temperingService.SelectIntoGlass();
-        System.out.println(glass);
+    @ApiOperation("鏌ヨ杩涚倝涓殑閽㈠寲绛夌墖涓殑鐗堝浘淇℃伅,鐘舵�佸叏涓�1鐨勪负宸插埌銆�")
+    @GetMapping("/selectIntoGlass") // 鏌ヨ杩涚倝涓殑閽㈠寲绛夌墖涓殑鐗堝浘淇℃伅,鐘舵�佸叏涓�1鐨勪负宸插埌銆�
+    public Result <List<TemperingGlassInfo>> selectIntoGlass() {
+        List<TemperingGlassInfo> glass = temperingAgoService.selectIntoGlass();
+        log.info("杩涚倝涓殑鐜荤拑鐗堝浘淇℃伅{}",glass);
         return Result.build(200, "", glass);
     }
-
-    @GetMapping("/SelectOutGlass") //閽㈠寲鍚庢樉绀哄嚭鐐夌殑鐗堝浘淇℃伅
-    @ResponseBody
-    public Result SelectOutGlass(String ProcessId) {
-        List<TemperingGlassInfo> glass = temperingOverService.SelectOutGlass();
-        System.out.println(glass);
+    @ApiOperation("//閽㈠寲鍚庢樉绀哄嚭鐐夌殑鐗堝浘淇℃伅銆�")
+    @GetMapping("/selectOutGlass") //閽㈠寲鍚庢樉绀哄嚭鐐夌殑鐗堝浘淇℃伅
+    public Result <List<TemperingGlassInfo>> selectOutGlass() {
+        List<TemperingGlassInfo> glass = temperingAgoService.SelectOutGlass();
+        log.info("閽㈠寲鍑虹倝鍚庣殑鐜荤拑淇℃伅{}",glass);
         return Result.build(200, "", glass);
     }
 
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
index adc5786..16bb9f2 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
@@ -1,6 +1,7 @@
 package com.mes.temperingglass.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 
 /**
@@ -11,6 +12,6 @@
  * @author zhoush
  * @since 2024-04-07
  */
-public interface TemperingGlassInfoMapper extends BaseMapper<TemperingGlassInfo> {
+public interface TemperingGlassInfoMapper extends BaseMapper<TemperingGlassInfo>, MPJBaseMapper<TemperingGlassInfo> {
 
 }
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingAgoService.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingAgoService.java
new file mode 100644
index 0000000..af0cfbb
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingAgoService.java
@@ -0,0 +1,23 @@
+package com.mes.temperingglass.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.github.yulichang.base.MPJBaseService;
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface TemperingAgoService extends MPJBaseService<TemperingGlassInfo> {
+
+    List<TemperingGlassInfo> selectWaitingGlass();
+
+    List<TemperingGlassInfo> selectIntoGlass();
+
+    List<TemperingGlassInfo> SelectOutGlass();
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
deleted file mode 100644
index 36e9d45..0000000
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.mes.temperingglass.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.mes.temperingglass.entity.TemperingGlassInfo;
-
-/**
- * <p>
- * 鏈嶅姟绫�
- * </p>
- *
- * @author zhoush
- * @since 2024-04-07
- */
-public interface TemperingGlassInfoService extends IService<TemperingGlassInfo> {
-
-}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingAgoServiceImpl.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingAgoServiceImpl.java
new file mode 100644
index 0000000..4e00b7f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingAgoServiceImpl.java
@@ -0,0 +1,55 @@
+package com.mes.temperingglass.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.query.MPJQueryWrapper;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
+import com.mes.temperingglass.mapper.TemperingMapper;
+import com.mes.temperingglass.service.TemperingAgoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Service
+public class TemperingAgoServiceImpl extends MPJBaseServiceImpl<TemperingGlassInfoMapper, TemperingGlassInfo> implements TemperingAgoService {
+    @Autowired
+    TemperingMapper temperingMapper;
+
+    @Override
+    public List<TemperingGlassInfo> selectWaitingGlass() {
+        //鑾峰彇绛夊緟杩涚倝涓殑鐜荤拑淇℃伅
+        QueryWrapper<TemperingGlassInfo> wrapper = new QueryWrapper<>();
+        wrapper.inSql("flowcard_id", "select flowcard_id from tempering_glass_info GROUP BY flowcard_id,state having count(state) = 2");
+        return temperingMapper.selectList(wrapper);
+    }
+
+    @Override
+    public List<TemperingGlassInfo> selectIntoGlass() {
+        //鑾峰彇杩涚倝涓殑鐜荤拑淇℃伅
+        QueryWrapper<TemperingGlassInfo> wrapper = new QueryWrapper<>();
+        wrapper.inSql("flowcard_id", "select flowcard_id from tempering_glass_info where state=1 GROUP BY flowcard_id,state having count(state) = 1");
+
+        return temperingMapper.selectList(wrapper);
+    }
+
+    @Override
+    public List<TemperingGlassInfo> SelectOutGlass() {
+        //鑾峰彇鍑虹倝涓殑鐜荤拑淇℃伅
+        QueryWrapper<TemperingGlassInfo> wapper = new QueryWrapper<>();
+        wapper.eq("state", 3);
+        return temperingMapper.selectList(wapper);
+    }
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
deleted file mode 100644
index 0687213..0000000
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.mes.temperingglass.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.mes.temperingglass.entity.TemperingGlassInfo;
-import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
-import com.mes.temperingglass.service.TemperingGlassInfoService;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- * 鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author zhoush
- * @since 2024-04-07
- */
-@Service
-public class TemperingGlassInfoServiceImpl extends ServiceImpl<TemperingGlassInfoMapper, TemperingGlassInfo> implements TemperingGlassInfoService {
-
-}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..f02ebee
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
@@ -0,0 +1,22 @@
+spring:
+  datasource:
+    dynamic:
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        hangzhoumes:
+          url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  application:
+    name: temperingGlass
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-loc.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-loc.yml
new file mode 100644
index 0000000..1e4042f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-loc.yml
@@ -0,0 +1,22 @@
+spring:
+  datasource:
+    dynamic:
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        hangzhoumes:
+          url: jdbc:mysql://192.168.56.10:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: root
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  application:
+    name: temperingGlass
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..9fb2c6f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml
@@ -0,0 +1,20 @@
+spring:
+  datasource:
+    dynamic:
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        hangzhoumes:
+          url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?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
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
index a84c58e..e9fcc1e 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
@@ -1,27 +1,10 @@
 server:
   port: 8084
 spring:
-  datasource:
-    dynamic:
-      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
-      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
-      datasource:
-        hangzhoumes:
-          url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?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
+  profiles:
+    active: prod
   application:
     name: temperingGlass
-  redis:
-    database: 0
-    host: 10.153.19.150
-    port: 6379
-    password: 123456
 mybatis-plus:
   mapper-locations: classpath*:mapper/*.xml
   configuration:
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/test/java/com/mes/TemperingApplicationTest.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/test/java/com/mes/TemperingApplicationTest.java
new file mode 100644
index 0000000..426a339
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/test/java/com/mes/TemperingApplicationTest.java
@@ -0,0 +1,55 @@
+package com.mes;
+
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.pp.mapper.OptimizeProjectMapper;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingAgoService;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.uppattenusage.service.impl.UpPattenUsageServiceImpl;
+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 javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/27 16:37
+ * @Description:
+ */
+@Slf4j
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = TemperingGlassModuleApplication.class)
+public class TemperingApplicationTest {
+
+    @Resource
+    private OptimizeProjectMapper optimizeProjectMapper;
+    @Autowired
+    private TemperingAgoService temperingAgoService;
+    @Autowired
+    private GlassInfoService glassInfoService;
+
+
+    @Test
+    public void testFindPa() {
+        List<TemperingGlassInfo> glass = temperingAgoService.selectIntoGlass();
+        log.info("杩涚倝涓殑鐜荤拑锛歿}", Arrays.asList(glass));
+    }
+    @Test
+    public void testFindPa2() {
+        List<TemperingGlassInfo> glass = temperingAgoService.SelectOutGlass();
+        log.info("宸插嚭涓殑鐜荤拑锛歿}", Arrays.asList(glass));
+    }
+
+    @Test
+    public void testFindPa3() {
+        List<TemperingGlassInfo> glass = temperingAgoService.selectWaitingGlass();
+        log.info("绛夊緟涓殑鐜荤拑锛歿}", Arrays.asList(glass));
+    }
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java
index f3d0880..9ce9047 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java
@@ -7,6 +7,7 @@
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.scheduling.annotation.EnableScheduling;
 import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
 /**
@@ -19,6 +20,7 @@
 @EnableSwagger2
 @EnableDiscoveryClient
 @MapperScan(basePackages = "com.mes.*.mapper")
+@EnableScheduling
 public class UnLoadGlassApplication {
 
 
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plcdownglass.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plcdownglass.java
index 56b0c56..48861a2 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plcdownglass.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plcdownglass.java
@@ -2,24 +2,21 @@
 
 import cn.hutool.json.JSONObject;
 
-import com.mes.device.PlcParameterObject;
-import com.mes.downglassinfo.entity.DownGlassTask;
-import com.mes.downglassinfo.service.DownGlassTaskService;
-import com.mes.downstorage.entity.DownStorageCageDetails;
-import com.mes.downstorage.mapper.DownStorageCageDetailsMapper;
 import com.mes.downstorage.service.DownStorageCageService;
 import com.mes.downworkstation.service.DownWorkstationService;
-import com.mes.glassinfo.entity.GlassInfo;
-import com.mes.glassinfo.service.GlassInfoService;
+
+
 import com.mes.tools.WebSocketServer;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
 
 import java.util.List;
-import java.util.function.Supplier;
 
+@Component
 @Slf4j
-public class Plcdownglass extends Thread {
+public class Plcdownglass {
 
     public static final String RESULT_IN = "1";
     public static final String RESULT_OUT = "2";
@@ -28,54 +25,41 @@
     @Autowired
     private DownStorageCageService downStorageCageService;
     @Autowired
-  private DownWorkstationService downWorkstationService;
-
-//     private final Supplier<DownWorkstationService> plcServiceSupplier;
-//
-//    public Plcdownglass() {
-//        this.plcServiceSupplier = () -> WebSocketServer.applicationContext.getBean(DownWorkstationService.class);
-//    }
+    private DownWorkstationService downWorkstationService;
 
 
+    @Scheduled(fixedDelay = 300)
+    public void PlcdownglassTask() throws InterruptedException {
+        JSONObject jsonObject = new JSONObject();
+        try {
+            Thread.sleep(300);
 
-    @Override
-    public void run() {
-        while (this != null) {
-            JSONObject jsonObject = new JSONObject();
-            try {
-                Thread.sleep(100);
-                downWorkstationService = WebSocketServer.applicationContext.getBean(DownWorkstationService.class);
-                downStorageCageService = WebSocketServer.applicationContext.getBean(DownStorageCageService.class);
-                //                String result = S7control.getinstance().ReadWord("DB14.0", 1).get(0) + "";
+
+            //                String result = S7control.getinstance().ReadWord("DB14.0", 1).get(0) + "";
 //                String number = S7control.getinstance().ReadWord("DB14.2", 1).get(0) + "";
-                String result ="1";
-                String number ="1";
-                // 杩涚墖璇锋眰
-                if (RESULT_IN.equals(result)) {
+            String result = "2";
+            String number = "1";
+            // 杩涚墖璇锋眰
+            if (RESULT_IN.equals(result)) {
+                downStorageCageService.processInto(number);
+            }
+            // 鍑虹墖璇锋眰
+            else if (RESULT_OUT.equals(result)) {
+                downStorageCageService.processOut();
+            }
+            // 杩涘嚭鐗囪姹�
+            else if (RESULT_IN_OUT.equals(result)) {
+                // 鍏堝嚭鍚庤繘
+                if (!downStorageCageService.processOut()) {
                     downStorageCageService.processInto(number);
                 }
-                // 鍑虹墖璇锋眰
-                else if (RESULT_OUT.equals(result)) {
-                    downStorageCageService.processOut();
-                }
-                // 杩涘嚭鐗囪姹�
-                else if (RESULT_IN_OUT.equals(result)) {
-                    // 鍏堝嚭鍚庤繘
-                    if (!downStorageCageService.processOut()) {
-                        downStorageCageService.processInto(number);
-                    }
-                }
-
-
-                downWorkstationService.insertdownglassinfo();
-
-
-
-
-            } catch (Exception e) {
-                e.printStackTrace();
             }
-        }
 
+            //涓嬬墖鏇存柊
+            downWorkstationService.insertdownglassinfo();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
+
 }
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java
index 232b7b7..5903d00 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java
@@ -71,5 +71,8 @@
      */
     private Integer taskStauts;
 
-
+    /**
+     * 鐜荤拑id
+     */
+    private String glassId;
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
index 7ba3394..2feead5 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
@@ -6,8 +6,15 @@
 public interface DownGlassInfoService extends IService<DownGlassInfo> {
 
 
+    /**
+     * @param flowCardId
+     * @return // 鏍规嵁娴佺▼鍗″彿鏌ヨ鏈�澶у簭鍙�
+     */
     Integer getMaxSequenceByFlowCardId(String flowCardId);
 
+    /**
+     * @param downGlassInfo 鎻掑叆涓嬬墖淇℃伅
+     */
     void insertDownGlassInfo(DownGlassInfo downGlassInfo);
 
 
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java
index cd1141e..4521c5a 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java
@@ -14,21 +14,51 @@
  * @since 2024-04-07
  */
 public interface DownGlassTaskService extends IService<DownGlassTask> {
-
+    /**
+     * 鏌ヨ浠诲姟鐘舵�佷负1鐨勪俊鎭�
+     *
+     * @return
+     */
     List<DownGlassTask> getUnloadingTaskState();
 
+    /**
+     * 鏇存柊浠诲姟鐘舵��
+     *
+     * @return
+     */
     void updateTaskStateToZero(long id);
 
+    /**
+     * 鍒犻櫎浠诲姟
+     *
+     * @return
+     */
     void deleteTask(String id);
-
-    DownGlassTask selectLastOutCacheInfo(String endCell);
-
-    Integer insertCacheTask(DownGlassTask downGlassTask);
-
-    List<DownGlassTask> selectInputTaskCache();
 
     /**
      * 鏌ヨ鍑虹墖浠诲姟
+     *
+     * @return
+     */
+    DownGlassTask selectLastOutCacheInfo(String endCell);
+
+    /**
+     * 鎻掑叆浠诲姟
+     *
+     * @return
+     */
+    Integer insertCacheTask(DownGlassTask downGlassTask);
+
+    /**
+     * 鏌ヨ杩涚墖浠诲姟
+     *
+     * @return
+     */
+    List<DownGlassTask> selectInputTaskCache();
+
+    /**
+     * 鏌ヨ鍑虹墖浠诲姟 澶囩敤
+     *
      * @return
      */
     List<DownGlassTask> selectOutTaskCache();
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
index f66cf65..66783be 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
@@ -1,6 +1,8 @@
 package com.mes.downglassinfo.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.mes.downglassinfo.entity.DownGlassInfo;
 import com.mes.downglassinfo.entity.DownGlassTask;
@@ -22,25 +24,21 @@
     // 鏍规嵁娴佺▼鍗″彿鏌ヨ鏈�澶у簭鍙�
     @Override
     public Integer getMaxSequenceByFlowCardId(String flowCardId) {
-        QueryWrapper<DownGlassInfo> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("flow_card_id", flowCardId);
-        queryWrapper.orderByDesc("sequence"); // 鎸夌収搴忓彿鍊掑簭鎺掑簭
-        queryWrapper.select("sequence").last("LIMIT 1"); // 閫夋嫨鏈�澶у簭鍙峰苟闄愬埗缁撴灉涓�1鏉¤褰�
-        DownGlassInfo downGlassInfo = baseMapper.selectOne(queryWrapper);
-        if (downGlassInfo != null) {
-            return downGlassInfo.getSequence();
-        }
-        return 0;
+        LambdaQueryWrapper<DownGlassInfo> lambdaQueryWrapper = Wrappers.lambdaQuery();
+        lambdaQueryWrapper.eq(DownGlassInfo::getFlowCardId, flowCardId)
+                .select(DownGlassInfo::getSequence)
+                .orderByDesc(DownGlassInfo::getSequence)
+                .last("LIMIT 1");
+
+        DownGlassInfo downGlassInfo = baseMapper.selectOne(lambdaQueryWrapper);
+        return downGlassInfo != null ? downGlassInfo.getSequence() : 0;
     }
+
 
     @Override
     public void insertDownGlassInfo(DownGlassInfo downGlassInfo) {
         baseMapper.insert(downGlassInfo);
     }
-
-
-
-
 
 
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java
index 8389edd..8feea50 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java
@@ -8,6 +8,7 @@
 import com.mes.downglassinfo.entity.DownGlassTask;
 import com.mes.downglassinfo.mapper.DownGlassTaskMapper;
 import com.mes.downglassinfo.service.DownGlassTaskService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -35,7 +36,7 @@
     public void updateTaskStateToZero(long id) {
         UpdateWrapper<DownGlassTask> updateWrapper = new UpdateWrapper<>();
         updateWrapper.set("task_stauts", 0).eq("id", id);
-        baseMapper.update(null, updateWrapper);
+        baseMapper.update(new DownGlassTask(), updateWrapper);
     }
 
     @Override
@@ -59,39 +60,39 @@
 
     @Override
     public Integer insertCacheTask(DownGlassTask downGlassTask) {
-        DownGlassTask glassInfo = new DownGlassTask();
-        glassInfo.setId(downGlassTask.getId());
-        glassInfo.setStartCell(downGlassTask.getStartCell());
-        glassInfo.setEndCell(downGlassTask.getEndCell());
-        glassInfo.setTaskType(downGlassTask.getTaskType());
-        glassInfo.setWidth(downGlassTask.getWidth());
-        glassInfo.setHeight(downGlassTask.getHeight());
-        glassInfo.setFilmsid(downGlassTask.getFilmsid());
-        glassInfo.setThickness(downGlassTask.getThickness());
-        glassInfo.setFlowCardId(downGlassTask.getFlowCardId());
-        glassInfo.setTaskStauts(0); // 榛樿浠诲姟鐘舵�佷负0
+        // 鏌ヨ鏁版嵁搴擄紝妫�鏌ヤ富閿�兼槸鍚﹀凡缁忓瓨鍦�
+        DownGlassTask existingTask = baseMapper.selectById(downGlassTask.getId());
+        if (existingTask != null) {
+            // 濡傛灉宸插瓨鍦ㄧ浉鍚屼富閿�肩殑浠诲姟锛屽垯涓嶈繘琛屾彃鍏ユ搷浣滐紝杩斿洖 null 鎴栬�呮姏鍑哄紓甯�
+            // 杩欓噷绠�鍗曡捣瑙侊紝鐩存帴杩斿洖 null
+            return null;
+        }
 
-        int rows = baseMapper.insert(glassInfo);
+        // 濡傛灉涓婚敭鍊间笉瀛樺湪锛屽垯杩涜鎻掑叆鎿嶄綔
+        DownGlassTask newDownGlassTask = new DownGlassTask();
+        BeanUtils.copyProperties(downGlassTask, newDownGlassTask);
+        newDownGlassTask.setTaskStauts(0); // 榛樿浠诲姟鐘舵�佷负0
+
+        int rows = baseMapper.insert(newDownGlassTask);
         return rows > 0 ? rows : null;
     }
 
 
 
-
     @Override
-    public List<DownGlassTask> selectInputTaskCache(){
-        return baseMapper.selectList(new QueryWrapper<DownGlassTask>().eq("task_status",0).eq("task_type",1));
+    public List<DownGlassTask> selectInputTaskCache() {
+        return baseMapper.selectList(new QueryWrapper<DownGlassTask>().eq("task_status", 0).eq("task_type", 1));
     }
 
     /**
      * 鏌ヨ寰呭嚭鐗囦换鍔�
+     *
      * @return
      */
     @Override
-    public List<DownGlassTask> selectOutTaskCache(){
-        return baseMapper.selectList(new QueryWrapper<DownGlassTask>().eq("task_status",0).eq("task_type",2));
+    public List<DownGlassTask> selectOutTaskCache() {
+        return baseMapper.selectList(new QueryWrapper<DownGlassTask>().eq("task_status", 0).eq("task_type", 2));
     }
-
 
 
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java
index 17a62f7..31c1308 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java
@@ -34,7 +34,7 @@
     @GetMapping("/selectStorageCage")
     @ResponseBody
     public Result selectEdgStorageCage () {
-        List<Map> list=downStorageCageService.getCacheInfo();
+        List<Map> list=downStorageCageDetailsService.getCacheInfo();
         return Result.build(200,"鎴愬姛",list);
     }
 
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java
index 1617790..c5cc426 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java
@@ -1,6 +1,7 @@
 package com.mes.downstorage.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -48,6 +49,7 @@
      * 鍚敤鐘舵��
      */
     @ApiModelProperty(value = "鍚敤鐘舵��", position = 5)
+    @TableField("enable_state")
     private String enableState;
 
     /**
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
index c5b11a4..9298084 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
@@ -86,7 +86,7 @@
     /**
      * 鑶滅郴id
      */
-    private int filmsid;
+    private String filmsid;
     /**
      * 鐘舵��
      */
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
index 277a0aa..78b15e4 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
@@ -7,11 +7,49 @@
 import java.util.Map;
 
 public interface DownStorageCageDetailsService {
-
+    /**
+     * @return //娣诲姞鐞嗙墖绗煎唴淇℃伅
+     */
     void addDownStorageCageDetails(DownStorageCageDetails details);
 
-    //淇敼鐞嗙墖绗煎唴淇℃伅
+
+    /**
+     * @return //淇敼鐞嗙墖绗煎唴淇℃伅
+     */
     boolean updatedownStorageCageDetails(DownStorageCageDetails details);
 
+    List<DownStorageCageDetails> getCacheLeisure();
+
+    /**
+     * @param start
+     * @param end
+     * @return 鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓ч『搴忓拰澶у皬鍑虹墖鐨勫皬鐗�
+     */
+    List<DownStorageCageDetails> getCacheOut(int start, int end);
+
+    /**
+     * @return 鏌ヨ绗煎瓙鍐呬俊鎭�
+     */
+    List<Map> getCacheInfo();
+
+
+    /**
+     * @param flowcardid
+     * @param width
+     * @return 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿  鎵惧埌绌烘牸
+     */
+    List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width);
+
+    /**
+     * @param start
+     * @param end
+     * @return log.info(" 鍗曠墖鎯呭喌鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓уぇ灏忓嚭鐗�, 骞朵笖浼樺厛鍑烘弧鏋剁殑灏忕墖 ");
+     */
     List<DownStorageCageDetails> CacheOut(int start, int end);
+
+    /**
+     * @return 鏌ヨ绌烘牸瀛�
+     */
+    List<DownStorageCageDetails> selectCacheEmpty2();
+
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
index dc1627f..81a88a8 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
@@ -17,19 +17,26 @@
  * @since 2024-03-27
  */
 public interface DownStorageCageService extends MPJBaseService<DownStorageCage> {
-    public List<Map> gettask();
+
 
     //    List<Map<String, Object>> selectCacheLeisure();
-    List<DownStorageCageDetails> getCacheLeisure();
-    List<DownStorageCageDetails> getCacheOut(int start, int end);
-    List<Map> getCacheInfo();
-    List<DownStorageCageDetails> getIsExistIntoCacheByLayoutAndSequence(Integer tempering_layout_id, Integer tempering_feed_sequence, double width);
-    List<DownStorageCageDetails> getIsExistIntoCacheByLayout(Integer tempering_layout_id, double width);
-    List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width);
-    List<DownStorageCageDetails> IsExistIntoCacheByflowcardid(String flowcardid, double width);
-    List<Map> selectCacheEmpty();
-    boolean processInto(String Number);
-    boolean processOut();
 
 
+    /**
+     * @param Number
+     * @return 杩涚墖
+     */
+    boolean processInto(String Number);
+
+    /**
+
+     * @return 绌烘牸
+     */
+
+    /**
+     * @return 鍑虹墖
+     */
+    boolean processOut();
+    List<DownStorageCageDetails> selectCacheEmpty() ;
+
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
index 8a1813a..b5c01ee 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
@@ -6,9 +6,12 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import com.github.yulichang.toolkit.JoinWrappers;
+import com.mes.downstorage.entity.DownStorageCage;
 import com.mes.downstorage.entity.DownStorageCageDetails;
 import com.mes.downstorage.mapper.DownStorageCageDetailsMapper;
 
+import com.mes.downstorage.mapper.DownStorageCageMapper;
 import com.mes.downstorage.service.DownStorageCageDetailsService;
 import com.mes.glassinfo.entity.GlassInfo;
 import lombok.extern.slf4j.Slf4j;
@@ -22,7 +25,8 @@
 @Service
 public class DownStorageCageDetailsServiceImpl extends ServiceImpl<DownStorageCageDetailsMapper, DownStorageCageDetails> implements DownStorageCageDetailsService {
 
-
+    @Autowired
+    private DownStorageCageMapper downStorageCageMapper;
     @Autowired
     private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
     @Override
@@ -41,22 +45,122 @@
 
     @Override
     public List<DownStorageCageDetails> CacheOut(int start, int end) {
-        log.info("鍗曠墖鎯呭喌鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓уぇ灏忓嚭鐗囩殑灏忕墖");
+        log.info("鍗曠墖鎯呭喌鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓уぇ灏忓嚭鐗�,骞朵笖浼樺厛鍑烘弧鏋剁殑灏忕墖");
         return downStorageCageDetailsMapper.selectJoinList(
                 DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
                         .select("t.*")
                         .leftJoin("(SELECT t1.* FROM down_storage_cage_details t1 "
-                                + "JOIN (SELECT flow_card_id, MAX(width) AS max_width FROM glass_info GROUP BY flow_card_id) t "
-                                + "ON t1.flow_card_id = t.flow_card_id WHERE t1.width = t.max_width) t3"
+                                + "JOIN (SELECT flow_card_id, MAX(width*height) AS max_width FROM glass_info GROUP BY flow_card_id) t "
+                                + "ON t1.flow_card_id = t.flow_card_id WHERE t1.width*t1.height = t.max_width) t3"
                                 + " ON t.glass_id = t3.glass_id")
                         .leftJoin("down_workstation t4 ON t3.flow_card_id = t4.flow_card_id")
                         .isNull(Boolean.parseBoolean("t.glass_id"), "SELECT glass_id FROM down_glass_info")
                         .between("t4.workstation_id", start, end)
+                        // 鏍规嵁 racks_number 鎺掑簭
+                        .orderByDesc("t4.racks_number")
+
         );
     }
 
 
 
 
-    // Other business methods can be implemented here
+
+
+
+
+
+
+
+
+
+    @Override
+    public List<DownStorageCageDetails> getCacheOut(int start, int end) {
+        log.info("鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓ч『搴忓拰澶у皬鍑虹墖鐨勫皬鐗�");
+        return  downStorageCageMapper.selectJoinList(
+                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
+                        .select("escd.*")
+                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
+                        .leftJoin("down_workstation dw on escd.flow_card_id = dw.flow_card_id")
+                        .leftJoin("glass_info gi on dw.flow_card_id = gi.flowcard_id  and gi.flowcard_id=escd.flow_card_id ")
+                        .isNotNull("escd.slot")
+                        .between("dw.workstation_id", start, end)
+                        .orderByDesc("escd.width")
+                        .orderByDesc("escd.height")
+        );
+    }
+
+
+    @Override
+    public List<DownStorageCageDetails> selectCacheEmpty2(){
+        return  downStorageCageMapper.selectJoinList(
+                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
+                        .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
+                        .leftJoin("down_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot")
+                        .isNull("escd.slot")
+        );
+    }
+
+
+    @Override
+    public List<Map> getCacheInfo() {
+        log.info(" 鏌ヨ绗煎瓙鍐呬俊鎭�");
+        return downStorageCageMapper.selectJoinList(
+                Map.class, new MPJQueryWrapper<DownStorageCage>()
+                        .select("escd.*")
+                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
+                        .orderByAsc("t.slot")
+        );
+
+    }
+
+
+
+    @Override
+    public List<DownStorageCageDetails> getCacheLeisure() {
+        log.info(" 鏌ヨ绗煎瓙鍐呯┖闂�");
+        List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList(
+                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
+                        .select("escd.*")
+                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
+                        .isNull("escd.slot")
+
+                        .orderByAsc("escd.slot")
+        );
+        return list;
+    }
+
+
+    @Override
+    public List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width) {
+        log.info("  鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿  鎵惧埌绌烘牸");
+
+        return downStorageCageMapper.selectJoinList(
+                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
+                        .select("escd.*")
+                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
+                        .isNull("escd.slot")
+                        .apply("t.remain_width - " + width + " > 0")
+                        .orderByAsc("escd.sequence")
+        );
+
+
+
+
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
index fe782a6..d1a6673 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
@@ -1,6 +1,6 @@
 package com.mes.downstorage.service.impl;
 
-import com.github.yulichang.query.MPJQueryWrapper;
+import com.github.yulichang.toolkit.JoinWrappers;
 import com.mes.common.PLCAutoMes;
 import com.mes.common.S7control;
 import com.mes.device.PlcParameterObject;
@@ -9,14 +9,13 @@
 import com.mes.downstorage.entity.DownStorageCage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.downstorage.entity.DownStorageCageDetails;
-import com.mes.downstorage.mapper.DownStorageCageDetailsMapper;
 import com.mes.downstorage.mapper.DownStorageCageMapper;
 import com.mes.downstorage.service.DownStorageCageDetailsService;
 import com.mes.downstorage.service.DownStorageCageService;
 import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.glassinfo.service.GlassInfoService;
-import com.mes.tools.WebSocketServer;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -38,167 +37,12 @@
     private DownStorageCageMapper downStorageCageMapper;
 
     @Autowired
-    private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
-
-    @Autowired
     private GlassInfoService glassInfoService;
 
     @Autowired
     private DownGlassTaskService downGlassTaskService;
     @Autowired
     private DownStorageCageDetailsService downStorageCageDetailsService;
-    @Override
-    public List<Map> gettask(){
-        downStorageCageMapper.selectList(null);
-//        downStorageCageMapper.selectJoin();
-        return null;
-    };
-
-
-
-    @Override
-    public List<DownStorageCageDetails> getCacheLeisure() {
-        log.info(" 鏌ヨ绗煎瓙鍐呯┖闂�");
-        List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
-                        .select("escd.*")
-                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
-                        .isNull("escd.slot")
-                        .orderByAsc("escd.slot")
-        );
-        return list;
-    }
-
-
-    @Override
-    public List<Map> selectCacheEmpty(){
-        return baseMapper.selectJoinList(
-                Map.class,new MPJQueryWrapper<DownStorageCage>().selectAll(DownStorageCage.class)
-                        .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
-                        .leftJoin("down_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot")
-                        .isNull("escd.slot")
-        );
-    }
-
-
-
-
-
-
-
-    @Override
-    public List<DownStorageCageDetails> getCacheOut(int start, int end) {
-        log.info("鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓ч『搴忓拰澶у皬鍑虹墖鐨勫皬鐗�");
-        return  downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
-                        .select("escd.*")
-                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
-                        .leftJoin("down_workstation dw on escd.flow_card_id = dw.flow_card_id")
-                        .leftJoin("glass_info gi on dw.flow_card_id = gi.flowcard_id  and gi.flowcard_id=escd.flow_card_id ")
-                        .isNotNull("escd.slot")
-                        .between("dw.workstation_id", start, end)
-                        .orderByDesc("escd.width")
-                        .orderByDesc("escd.height")
-        );
-    }
-
-
-
-
-
-    @Override
-    public List<Map> getCacheInfo() {
-        log.info(" 鏌ヨ绗煎瓙鍐呬俊鎭�");
-        return downStorageCageMapper.selectJoinList(
-                Map.class, new MPJQueryWrapper<DownStorageCage>()
-                        .select("escd.*")
-                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
-                        .orderByAsc("t.slot")
-        );
-
-    }
-
-
-
-    @Override
-    public List<DownStorageCageDetails> getIsExistIntoCacheByLayoutAndSequence(Integer tempering_layout_id, Integer tempering_feed_sequence, double width) {
-        log.info(" 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿  鎵惧埌鐩稿悓鐗堝浘id骞朵笖澶т簬鍓嶉潰鐨勯『搴忕殑绌烘牸");
-        List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
-                        .select("escd.*")
-                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
-                        .isNotNull("escd.slot")
-                        .eq("escd.tempering_layout_id", tempering_layout_id)
-                        .lt("escd.tempering_feed_sequence", tempering_feed_sequence)
-                        .gt("t.remain_width", width)
-                        .orderByAsc("escd.tempering_feed_sequence")
-        );
-        return list;
-    }
-
-
-
-
-
-
-
-    @Override
-    public List<DownStorageCageDetails> IsExistIntoCacheByflowcardid(String flowcardid, double width) {
-        log.info(" 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿");
-        return downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
-                        .select("escd.*")
-                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
-                        .isNotNull("escd.slot")
-                        .lt("escd.flow_card_id", flowcardid)
-                        // 鏉′欢 t.remain_width - width > 0
-                        .apply("t.remain_width - " + width + " > 0")
-                        .orderByDesc("escd.tempering_layout_id, escd.tempering_feed_sequence")
-        );
-
-    }
-
-
-    @Override
-    public List<DownStorageCageDetails> getIsExistIntoCacheByLayout(Integer tempering_layout_id, double width) {
-        log.info(" 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿");
-        return downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
-                        .select("escd.*")
-                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
-                        .isNotNull("escd.slot")
-                        .lt("escd.tempering_layout_id", tempering_layout_id)
-                        // 鏉′欢 t.remain_width - width > 0
-                        .apply("t.remain_width - " + width + " > 0")
-                        .orderByDesc("escd.tempering_layout_id, escd.tempering_feed_sequence")
-        );
-
-    }
-
-
-
-
-
-
-
-    @Override
-    public List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width) {
-        log.info(" 鍗曠墖鎯呭喌  鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿  鎵惧埌鐩稿悓娴佺▼鍗″彿鐨勭┖鏍�");
-
-        return downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
-                        .select("escd.*")
-                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
-                        .isNotNull("escd.slot")
-                        .eq("escd.flow_card_id", flowcardid)
-                        .gt("t.remain_width", width)
-                        .orderByAsc("escd.sequence")
-        );
-
-    }
-
-
-
 
 
 
@@ -225,32 +69,23 @@
 
     public DownGlassTask createDownGlassTask(GlassInfo glassInfo, String startCell, String endCell,String taskType ) {
         DownGlassTask downGlassTask = new DownGlassTask();
-        downGlassTask.setId(glassInfo.getId());
-        downGlassTask.setStartCell(startCell);
-        downGlassTask.setTaskType(taskType);
-        downGlassTask.setEndCell(endCell);
-        downGlassTask.setWidth(glassInfo.getWidth());
-        downGlassTask.setHeight(glassInfo.getHeight());
-        downGlassTask.setFilmsid(String.valueOf(glassInfo.getFilmsid()));
-        downGlassTask.setThickness(glassInfo.getThickness());
-        downGlassTask.setFlowCardId(glassInfo.getFlowcardId());
 
+        BeanUtils.copyProperties(glassInfo,downGlassTask);
+
+        downGlassTask.setStartCell(startCell);
+       downGlassTask.setTaskType(taskType);
+      downGlassTask.setEndCell(endCell);
         return downGlassTask;
     }
 
 
     public DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, String startCell, String endCell,String taskType ) {
         DownGlassTask downGlassTask = new DownGlassTask();
-        downGlassTask.setId(glassInfo.getId());
+
+        BeanUtils.copyProperties(glassInfo,downGlassTask);
         downGlassTask.setStartCell(startCell);
         downGlassTask.setTaskType(taskType);
         downGlassTask.setEndCell(endCell);
-        downGlassTask.setWidth(glassInfo.getWidth());
-        downGlassTask.setHeight(glassInfo.getHeight());
-        downGlassTask.setFilmsid(String.valueOf(glassInfo.getFilmsid()));
-        downGlassTask.setThickness(glassInfo.getThickness());
-        downGlassTask.setFlowCardId(glassInfo.getFlowCardId());
-
         return downGlassTask;
     }
 
@@ -264,13 +99,13 @@
         //瀛樺湪姝ょ幓鐠冪紪鍙�
         if (GlassInfo != null) {
             //鍚屾壘鍒板悓娴佺▼鍗¢檮杩戠┖鏍�
-            List<DownStorageCageDetails> list = getIsExistIntoCacheByflowcardid(GlassInfo.getFlowcardId(),  GlassInfo.getWidth());
+            List<DownStorageCageDetails> list = selectCacheEmpty();
 
-            List<Map> selectCacheEmpty=selectCacheEmpty();
+
 
             //            list<Map> list=selectCacheEmpty();
 //            list<Map> = downStorageCageService.selectCacheEmpty();
-            if (selectCacheEmpty.size() > 0) {
+            if (list.size() > 0) {
                 //瀛樺湪绌烘牸
                 //1.鐢熸垚浠诲姟锛�  璧峰浣嶇疆0   缁撴潫浣嶇疆this.slot  浠诲姟绫诲瀷 1   锛堣繘鐗囦换鍔★級
                 //2.鍥炲 1杩涚墖
@@ -282,7 +117,7 @@
 
                 downGlassTaskService.insertCacheTask(downGlassTask);
 
-               S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
+               //S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
 
 
                 //瀹屾垚鍚庢彃鍏ュ皬鐗囨暟鎹埌缂撳瓨琛�
@@ -326,25 +161,25 @@
                 String endcell = "13";
                 String SendEndcell = "1";
 
-//                selectInfo.insertCacheTask(item3.getGlassId() + "", "0", endcell, "2", item3.getWidth(), item3.getHeight(), item3.getFilmsid(), item3.getThickness(), item3.getFlowCardId());
+
 
                 DownGlassTask downGlassTask =createDownGlassTask(item3,"0",endcell,"2");
 
                 downGlassTaskService.insertCacheTask(downGlassTask);
-                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
-                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+           //  S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
+               // S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
                 return true;
             }
         }
 
 
         //濡傛灉鍚屾椂鍓嶅悗绔兘绌洪棽 浼樺厛鍚庣鍑虹墖骞朵笖浼樺厛婊℃灦
-        else if (!list2.isEmpty()) {
+        else if (!list2.isEmpty()&&!list3.isEmpty()) {
 
             DownStorageCageDetails item3 = list2.get(0);
             String endcell = "11";
             String SendEndcell = "1";
-            // selectInfo.insertCacheTask(item3.getGlassId() + "", "0", endcell, "2", item3.getWidth(), item3.getHeight(), item3.getFilmsid(), item3.getThickness(), item3.getFlowCardId());
+
             DownGlassTask downGlassTask =createDownGlassTask(item3,"0",endcell,"2");
             downGlassTaskService.insertCacheTask(downGlassTask);
 
@@ -358,9 +193,10 @@
             DownStorageCageDetails item = list.get(0);
 
             // 鍑哄埌 G06
-            //selectInfo.insertCacheTask(item.getGlassId() + "", "0", "06", "2", item.getWidth(), item.getHeight(), item.getFilmsid(), item.getThickness(), item.getFlowCardId());
+
 
             DownGlassTask downGlassTask =createDownGlassTask(item,"0","06","2");
+            downGlassTaskService.insertCacheTask(downGlassTask);
             S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1");
             S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
             return true;
@@ -370,7 +206,7 @@
             DownStorageCageDetails item2 = list2.get(0);
 
             // 鍑哄埌 G11
-            // selectInfo.insertCacheTask(item2.getGlassId() + "", "0", "11", "2", item2.getWidth(), item2.getHeight(), item2.getFilmsid(), item2.getThickness(), item2.getFlowCardId());
+
             DownGlassTask downGlassTask =createDownGlassTask(item2,"0","11","2");
             downGlassTaskService.insertCacheTask(downGlassTask);
 
@@ -388,8 +224,17 @@
     }
 
 
-
-
-
+    @Override
+    public List<DownStorageCageDetails> selectCacheEmpty() {
+        return baseMapper.selectJoinList(DownStorageCageDetails.class,
+                JoinWrappers.lambda(DownStorageCage.class)
+                        .selectAll(DownStorageCage.class)
+                        .select(DownStorageCageDetails::getWidth, DownStorageCageDetails::getHeight, DownStorageCageDetails::getGlassId)
+                        .leftJoin(DownStorageCageDetails.class, on -> on
+                                .eq(DownStorageCageDetails::getDeviceId, DownStorageCage::getDeviceId)
+                                .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot))
+                        .isNull(DownStorageCageDetails::getSlot)
+        );
+    }
 
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
index e0ecf93..7ac060a 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
@@ -5,7 +5,6 @@
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springframework.data.annotation.Id;
-//import javax.persistence.Id;
 
 import java.io.Serializable;
 
@@ -23,9 +22,7 @@
 
     private static final long serialVersionUID = 1L;
 
-    /**
-     * id
-     */
+    @Id
     @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
@@ -58,6 +55,8 @@
      * 浠诲姟鐘舵��
      */
     private Integer state;
-
-
+    /**
+     * 鐜荤拑
+     */
+    private String glassId;
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
index 3487d4d..7a1348b 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
@@ -16,18 +16,50 @@
  */
 public interface DownWorkstationService extends IService<DownWorkstation> {
 
+    /**
+     * @param startId
+     * @param endId
+     * @return 鑾峰彇宸ヤ綅淇℃伅
+     */
     List<DownWorkstation> getoneDownWorkstations(int startId, int endId);
 
+    /**
+     * @param workstationId
+     * @return 鑾峰彇鎬绘暟閲�
+     */
     int getTotalQuantity(int workstationId);
 
+    /**
+     * @param workstationId
+     * @return 鑾峰彇钀芥灦鏁伴噺
+     */
     int getRacksNumber(int workstationId);
 
+    /**
+     * @param workstationId 娓呯┖鏋跺瓙淇℃伅
+     */
     void clearFlowCardId(int workstationId);
 
+    /**
+     * @param flowCardId
+     * @param racksnumber 鏇存柊钀芥灦鏁伴噺
+     */
     void updateracksnumber(String flowCardId, int racksnumber);
 
 
+    /**
+     * @param flowCardId
+     * @param glassInfoCount
+     * @param workstationId
+     * @return 鏇存柊鏋跺瓙鍜屾暟閲�
+     */
     int updateFlowCardIdAndCount(String flowCardId, int glassInfoCount, int workstationId);
+
     void insertdownglassinfo();
-  List<Map<String, Object>> getTotalGlassDimensionsByWorkstation();
+
+    /**
+     * @return //
+     * 宸ヤ綅鏄剧ず
+     */
+    List<Map<String, Object>> getTotalGlassDimensionsByWorkstation();
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java
index 887f165..a40bc9b 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java
@@ -15,9 +15,18 @@
  * @since 2024-04-07
  */
 public interface DownWorkstationTaskService extends IService<DownWorkstationTask> {
+    /**
+     * @param downGlassInfo 鎻掑叆浠诲姟
+     */
     void insertdownWorkstationtask(DownGlassInfo downGlassInfo);
 
+    /**
+     * @param Id 鏇存柊浠诲姟鐘舵��
+     */
     void updateTaskStateToZero(long Id);
 
+    /**
+     * @return 鑾峰彇浠诲姟鐘舵�佷负1鐨勪俊鎭�
+     */
     List<DownWorkstationTask> getTaskState();
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
index 712baab..5800c38 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
@@ -25,6 +25,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+
 @Slf4j
 @Service
 public class DownWorkstationServiceImpl extends ServiceImpl<DownWorkstationMapper, DownWorkstation> implements DownWorkstationService {
@@ -44,7 +45,7 @@
     @Autowired
     private DownWorkstationTaskService downWorkstationTaskService;
 
-//    @Override
+    //    @Override
 //    public List<DownWorkstation> gettwoDownWorkstations() {
 //        return downWorkstationMapper.getDownWorkstationsInRange(6,10);
 //    }
@@ -58,7 +59,8 @@
         DownWorkstation result = baseMapper.selectOne(queryWrapper);
         return result != null ? result.getTotalquantity() : 0;
     }
-//宸ヤ綅鏄剧ず
+
+    //宸ヤ綅鏄剧ず
     @Override
     public List<Map<String, Object>> getTotalGlassDimensionsByWorkstation() {
         MPJQueryWrapper<DownWorkstation> queryWrapper = new MPJQueryWrapper<>();
@@ -66,16 +68,16 @@
                 .leftJoin("down_glass_info b on t.flow_card_id = b.flow_card_id")
                 .groupBy("t.workstation_id", "t.flow_card_id");
 
-        List<DownWorkstionAndDownGlassinfo> workstationList = downWorkstationMapper.selectJoinList(DownWorkstionAndDownGlassinfo.class, queryWrapper);
-
+//        List<DownWorkstionAndDownGlassinfo> workstationList = downWorkstationMapper.selectJoinList(DownWorkstionAndDownGlassinfo.class, queryWrapper);
+        List<DownWorkstionAndDownGlassinfo> workstationList = null;
         List<Map<String, Object>> result = new ArrayList<>();
         for (DownWorkstionAndDownGlassinfo downWorkstionAndDownGlassinfo : workstationList) {
             Map<String, Object> rack = new HashMap<>();
 
             // 鍒涘缓瀛愰」锛坕tem锛夊璞�
             Map<String, Object> item = new HashMap<>();
-            item.put("height",  downWorkstionAndDownGlassinfo.getTotalheight()); // 璁剧疆瀛愰」楂樺害锛屾牴鎹疄闄呮儏鍐佃缃�
-            item.put("width",  downWorkstionAndDownGlassinfo.getTotalwidth()); // 璁剧疆瀛愰」瀹藉害锛屾牴鎹疄闄呮儏鍐佃缃�
+            item.put("height", downWorkstionAndDownGlassinfo.getTotalheight()); // 璁剧疆瀛愰」楂樺害锛屾牴鎹疄闄呮儏鍐佃缃�
+            item.put("width", downWorkstionAndDownGlassinfo.getTotalwidth()); // 璁剧疆瀛愰」瀹藉害锛屾牴鎹疄闄呮儏鍐佃缃�
             item.put("fillColor", "yellow"); // 璁剧疆瀛愰」棰滆壊
             item.put("content", downWorkstionAndDownGlassinfo.getFlowCardId()); // 浣跨敤娴佺▼鍗″彿浣滀负瀛愰」鍐呭
 
@@ -89,18 +91,6 @@
     }
 
 
-
-//    @Override
-//    public int getTotalQuantity(int workstationId) {
-//        Integer totalQuantity = downWorkstationMapper.getTotalQuantity(workstationId);
-//        return totalQuantity != null ? totalQuantity : 0;
-//    }
-
-//    @Override
-//    public int getRacksNumber(int workstationId) {
-//        Integer racksNumber = downWorkstationMapper.getRacksNumber(workstationId);
-//        return racksNumber != null ? racksNumber : 0;
-//    }
     //鏍规嵁鏉′欢鑾峰彇钀芥灦鏁伴噺
     @Override
     public int getRacksNumber(int workstationId) {
@@ -111,7 +101,8 @@
         DownWorkstation result = baseMapper.selectOne(queryWrapper);
         return result != null ? result.getRacksnumber() : 0;
     }
-//鏍规嵁鏉′欢鑾峰彇宸ヤ綅鐜荤拑淇℃伅
+
+    //鏍规嵁鏉′欢鑾峰彇宸ヤ綅鐜荤拑淇℃伅
     @Override
     public List<DownWorkstation> getoneDownWorkstations(int startId, int endId) {
         QueryWrapper<DownWorkstation> queryWrapper = new QueryWrapper<>();
@@ -127,10 +118,9 @@
     @Override
     public void updateracksnumber(String flowCardId, int racksNumber) {
         UpdateWrapper<DownWorkstation> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.set("racks_number",racksNumber).eq("flow_card_id", flowCardId);
-        baseMapper.update(null, updateWrapper);
+        updateWrapper.set("racks_number", racksNumber).eq("flow_card_id", flowCardId);
+        baseMapper.update(new DownWorkstation(), updateWrapper);
     }
-
 
 
     @Override
@@ -140,7 +130,7 @@
                 .set("flow_card_id", flowCardId)
                 .eq("workstation_id", workstationId);
 
-        return baseMapper.update(null, updateWrapper);
+        return baseMapper.update(new DownWorkstation(), updateWrapper);
     }
 
     @Override
@@ -151,8 +141,10 @@
                 .set("racks_number", 0)
                 .eq("workstation_id", workstationId);
 
-        baseMapper.update(null, updateWrapper);
+        baseMapper.update(new DownWorkstation(), updateWrapper);
     }
+
+
 
 
 
@@ -162,12 +154,6 @@
 
         return baseMapper.selectOne(queryWrapper);
     }
-
-
-
-
-
-
 
 
     @Transactional
@@ -181,13 +167,8 @@
     }
 
 
-
-
-
-
     @Override
     public void insertdownglassinfo() {
-
 
 
         List<DownGlassTask> taskdownGlassInf = downGlassTaskService.getUnloadingTaskState();
@@ -231,8 +212,6 @@
         }
 
 
-
-
         try {
             //鏌ヨ涓嬬墖宸ヤ綅琛ㄤ腑鏋跺瓙鏄惁缁戝畾浜嗘祦绋嬪崱鍙� 宸ヤ綅琛ㄥ拰浠诲姟琛ㄤ腑鐘舵�佷负1鐨勬祦绋嬪崱鍙峰拰宸茶惤鏋舵暟閲�
             List<DownWorkstationTask> taskdownWorkstation = downWorkstationTaskService.getTaskState();
@@ -241,7 +220,7 @@
                 for (DownWorkstationTask downWorkstation : taskdownWorkstation) {
                     //鏇存柊涓嬬墖宸ヤ綅琛ㄤ腑宸茶惤鏋舵暟閲�
                     DownWorkstation downWorkstation1 = selectByFlowCardId(downWorkstation.getFlowCardId());
-                    updateracksnumber(downWorkstation.getFlowCardId(),downWorkstation1.getRacksnumber()  + 1);
+                    updateracksnumber(downWorkstation.getFlowCardId(), downWorkstation1.getRacksnumber() + 1);
                     //鏇存柊鏈烘浠诲姟琛ㄤ腑鐘舵�佷负0
                     downWorkstationTaskService.updateTaskStateToZero(downWorkstation.getId());
                     //鍒犻櫎鏈烘浠诲姟琛�
@@ -256,11 +235,6 @@
             // 鎴栬�呭彲浠ヨ繘琛屽叾浠栧紓甯稿鐞嗭紝姣斿璁板綍鏃ュ織鎴栬�呰繑鍥炵壒瀹氱殑閿欒淇℃伅
         }
     }
-
-
-
-
-
 
 
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java
index 1e67462..01cf539 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java
@@ -8,6 +8,7 @@
 import com.mes.downworkstation.entity.DownWorkstationTask;
 import com.mes.downworkstation.mapper.DownWorkstationTaskMapper;
 import com.mes.downworkstation.service.DownWorkstationTaskService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -31,14 +32,10 @@
         // 濡傛灉娌℃湁璁板綍锛屽垯灏� id 璁剧疆涓� 1锛涘惁鍒欙紝灏� id 璁剧疆涓哄綋鍓嶆渶澶� id 鍊煎姞 1
         Long newId = (maxId == null) ? 1 : maxId + 1;
 
-        entity.setId(newId); // 璁剧疆鎵嬪姩閫掑鐨� id
-        entity.setFlowCardId(downGlassInfo.getFlowCardId());
-        entity.setWidth(downGlassInfo.getWidth());
-        entity.setHeight(downGlassInfo.getHeight());
-        entity.setThickness(downGlassInfo.getThickness());
-        entity.setFilmsid(downGlassInfo.getFilmsid());
-        entity.setState(1);
 
+        BeanUtils.copyProperties(entity,downGlassInfo);
+        entity.setId(newId); // 璁剧疆鎵嬪姩閫掑鐨� id
+        entity.setState(1);
         baseMapper.insert(entity);
     }
 
@@ -70,6 +67,7 @@
         UpdateWrapper<DownWorkstationTask> updateWrapper = new UpdateWrapper<>();
         updateWrapper.set("state", 0).eq("id", id);
 
-        baseMapper.update(null, updateWrapper);
+        baseMapper.update(new DownWorkstationTask(), updateWrapper);
     }
+
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/entity/GlassInfo.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
index 46acc64..56172d8 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
@@ -32,7 +32,7 @@
      * 娴佺▼鍗�
      */
     @TableField("flow_card_Id")
-    private String flowcardId;
+    private String flowCardId;
 
     /**
      * 娴佺▼鍗$幓鐠冪被鍨�
@@ -57,7 +57,7 @@
     /**
      * 鑶滅郴
      */
-    private Integer filmsid;
+    private String filmsid;
 
     /**
      * 纾ㄥ墠瀹�
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
index ef1b9ca..a60db72 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
@@ -1,4 +1,4 @@
-package com.mes.uppattenusage.service.impl;
+package com.mes.glassinfo.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -53,12 +53,5 @@
     }
 
 
-//    public void updateFlowCardIdAndCount(String flowCardId, int glassInfoCount, int workstationId) {
-//        int rowsAffected = glassInfoMapper.updateFlowCardIdAndCount(flowCardId, glassInfoCount, workstationId);
-//        if (rowsAffected > 0) {
-//            System.out.println("鏇存柊鏋跺瓙涓婃祦绋嬪崱 ID 鍜屾暟閲忔垚鍔�");
-//        } else {
-//            System.out.println("鏇存柊鏋跺瓙涓婃祦绋嬪崱 ID 鍜屾暟閲忓け璐�");
-//        }
-//    }
+
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..3097382
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/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/hangzhoumes?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: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-loc.yml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-loc.yml
new file mode 100644
index 0000000..fadf3bf
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-loc.yml
@@ -0,0 +1,25 @@
+spring:
+  datasource:
+    dynamic:
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        hangzhoumes:
+          url: jdbc:mysql://192.168.56.10:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: root
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_hangzhoumes:
+          url: jdbc:sqlserver://192.168.56.10:1433;databasename=hangzhoumes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..2e6a12c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml
@@ -0,0 +1,25 @@
+spring:
+  datasource:
+    dynamic:
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        hangzhoumes:
+          url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?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
+  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/UnLoadGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
index 3b51bf1..90f92f5 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
@@ -2,32 +2,10 @@
   port: 8085
 
 spring:
-  datasource:
-    dynamic:
-      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
-      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
-      datasource:
-        hangzhoumes:
-          url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?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
-  cloud:
-    nacos:
-      discovery:
-        server-addr: 10.153.19.150:8848
+  profiles:
+    active: prod
   application:
     name: unLoadGlass
-  redis:
-    database: 0
-    host: 10.153.19.150
-    port: 6379
-    password: 123456
 mybatis-plus:
   mapper-locations: classpath*:mapper/*.xml
   configuration:
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
index f598dcb..a783463 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
@@ -1,8 +1,11 @@
 package mes;
 
 import com.mes.UnLoadGlassApplication;
+import com.mes.downglassinfo.service.impl.DownGlassInfoServiceImpl;
+import com.mes.downglassinfo.service.impl.DownGlassTaskServiceImpl;
 import com.mes.downstorage.entity.DownStorageCageDetails;
 import com.mes.downstorage.service.DownStorageCageDetailsService;
+import com.mes.downstorage.service.impl.DownStorageCageDetailsServiceImpl;
 import com.mes.downstorage.service.impl.DownStorageCageServiceImpl;
 
 import com.mes.downworkstation.service.DownWorkstationService;
@@ -31,6 +34,12 @@
     @Autowired
     DownStorageCageServiceImpl downStorageCageServiceImpl;
     @Autowired
+    DownGlassTaskServiceImpl downGlassTaskServiceImpl;
+    @Autowired
+    DownGlassInfoServiceImpl downGlassInfoServiceImpl;
+    @Autowired
+    DownStorageCageDetailsServiceImpl downStorageCageDetailsServiceImpl;
+    @Autowired
     DownStorageCageDetailsService downStorageCageDetailsService;
     @Autowired
     DownWorkstationServiceImpl downWorkstationServiceImpl;
@@ -42,20 +51,20 @@
 
     @Test
     public void testCacheGlass() {
-        List<Map> map = downStorageCageServiceImpl.getCacheInfo();
+        List<Map> map = downStorageCageDetailsServiceImpl.getCacheInfo();
         log.info("绗煎唴淇℃伅锛歿}", Arrays.asList(map));
     }
 
     @Test
     public void testselectCacheEmpty() {
-        List<DownStorageCageDetails> map = downStorageCageServiceImpl.getCacheLeisure();
+        List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheLeisure();
         log.info("绗煎唴绌烘牸锛歿}", Arrays.asList(map));
     }
 
 
     @Test
     public void testgetCacheOut() {
-        List<DownStorageCageDetails> map = downStorageCageServiceImpl.getCacheOut(1, 5);
+        List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheOut(1, 5);
         log.info("鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓ч『搴忓拰澶у皬鍑虹墖鐨勫皬鐗囷細{}", Arrays.asList(map));
     }
 
@@ -74,10 +83,12 @@
 
     }
 
+
+
     @Test
-    public void testin() {
+    public void testin2() {
         log.info("娴嬭瘯杩涚墖");
-        downStorageCageServiceImpl.getIsExistIntoCacheByflowcardid("NG2023005",500);
+        downStorageCageDetailsServiceImpl.getIsExistIntoCacheByflowcardid("NG2023005",500);
 
     }
 
@@ -85,14 +96,14 @@
     @Test
     public void selectCacheEmpty() {
         log.info("娴嬭瘯杩涚墖");
-        downStorageCageServiceImpl.selectCacheEmpty();
+        downStorageCageDetailsServiceImpl.getCacheLeisure();
 
     }
 
     @Test
     public void CacheEmpty() {
         log.info("娴嬭瘯鍑虹墖");
-        downStorageCageDetailsService.CacheOut(1,5);
+        downStorageCageDetailsService.CacheOut(1,10);
 
     }
 
@@ -105,5 +116,27 @@
     }
 
 
+    @Test
+    public void getMaxSequenceByFlowCardId() {
+        log.info("鏈�澶у簭鍙�");
+
+        downGlassInfoServiceImpl.getMaxSequenceByFlowCardId("NG2023005");
+    }
+
+    @Test
+    public void updateTaskStateToZero() {
+        log.info("鏇存柊鐘舵��0");
+
+        downGlassTaskServiceImpl.updateTaskStateToZero(3);
+    }
+
+
+    @Test
+    public void selectCacheEmpty2() {
+
+
+        downStorageCageServiceImpl.selectCacheEmpty();
+    }
+
 
 }
\ No newline at end of file

--
Gitblit v1.8.0