From ce2791d2a730845a564ce0e16563b03fea0970db Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期三, 15 五月 2024 16:24:28 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java |  102 ++++-
 UI-Project/src/views/Returns/returns.vue                                                                                                |  272 +++++++++++----
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java                               |   10 
 UI-Project/src/lang/i18n.js                                                                                                             |    8 
 UI-Project/src/views/Caching/cachingbefore.vue                                                                                          |   15 
 hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java                               |    7 
 UI-Project/src/views/LoginView.vue                                                                                                      |   46 +-
 UI-Project/src/views/UnLoadGlass/loadmachinerack.vue                                                                                    |   17 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java    |    7 
 UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue                                                                               |   98 ++++-
 UI-Project/package.json                                                                                                                 |    2 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java                                              |    5 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java             |    2 
 UI-Project/src/views/UnLoadGlass/Landingindication.vue                                                                                  |  105 ++++-
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java                                          |    6 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.xlsx                                         |    0 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java                                            |   26 +
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java        |    6 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java        |    2 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java                                     |  118 +++---
 UI-Project/src/lang/LanguageMixin.js                                                                                                    |   24 
 UI-Project/src/main.js                                                                                                                  |   10 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java       |   24 +
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java          |    4 
 UI-Project/package-lock.json                                                                                                            |   70 ++--
 25 files changed, 666 insertions(+), 320 deletions(-)

diff --git a/UI-Project/package-lock.json b/UI-Project/package-lock.json
index 3a65897..ba2dc0c 100644
--- a/UI-Project/package-lock.json
+++ b/UI-Project/package-lock.json
@@ -18,7 +18,7 @@
         "sortablejs": "^1.15.1",
         "sweetalert2": "^11.10.7",
         "vue": "^3.3.4",
-        "vue-i18n": "^9.11.0",
+        "vue-i18n": "^9.13.1",
         "vue-router": "^4.2.4",
         "vxe-table": "^4.5.15",
         "xe-utils": "^3.5.14",
@@ -462,23 +462,23 @@
       "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
     },
     "node_modules/@intlify/core-base": {
-      "version": "9.11.0",
-      "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.11.0.tgz",
-      "integrity": "sha512-cveOqAstjLZIiyatcP/HrzrQ87cZI8ScPQna3yvoM8zjcjcIRK1MRvmxUNlPdg0rTNJMZw7rixPVM58O5aHVPA==",
+      "version": "9.13.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.13.1.tgz",
+      "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==",
       "dependencies": {
-        "@intlify/message-compiler": "9.11.0",
-        "@intlify/shared": "9.11.0"
+        "@intlify/message-compiler": "9.13.1",
+        "@intlify/shared": "9.13.1"
       },
       "engines": {
         "node": ">= 16"
       }
     },
     "node_modules/@intlify/message-compiler": {
-      "version": "9.11.0",
-      "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.11.0.tgz",
-      "integrity": "sha512-x31Gl7cscnoI4UUY1yaIy8e7vVMVW1VVlTXZz4SIHKqoSEUkfmgqK8NAx1e7RcoHEbICR7uyCbud0ZL1s4OGXQ==",
+      "version": "9.13.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.13.1.tgz",
+      "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==",
       "dependencies": {
-        "@intlify/shared": "9.11.0",
+        "@intlify/shared": "9.13.1",
         "source-map-js": "^1.0.2"
       },
       "engines": {
@@ -486,9 +486,9 @@
       }
     },
     "node_modules/@intlify/shared": {
-      "version": "9.11.0",
-      "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.11.0.tgz",
-      "integrity": "sha512-KHSNgi7sRjmSm7aD8QH8WFt9VfKaekJuJ473opbJlkGY3EDnDUU8ikIhG8PbasQbgNvbY3m3tWNGqk2omIdwMA==",
+      "version": "9.13.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.13.1.tgz",
+      "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==",
       "engines": {
         "node": ">= 16"
       }
@@ -1649,12 +1649,12 @@
       }
     },
     "node_modules/vue-i18n": {
-      "version": "9.11.0",
-      "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.11.0.tgz",
-      "integrity": "sha512-vU4gY6lu8Pdfs9BgKGiDAJmFDf88cceR47KcSB0VW4xJzUrXR/7qwqM7A8dQ2nedhoIDxoOm5Ro4pFd2KvJqbA==",
+      "version": "9.13.1",
+      "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.13.1.tgz",
+      "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==",
       "dependencies": {
-        "@intlify/core-base": "9.11.0",
-        "@intlify/shared": "9.11.0",
+        "@intlify/core-base": "9.13.1",
+        "@intlify/shared": "9.13.1",
         "@vue/devtools-api": "^6.5.0"
       },
       "engines": {
@@ -1960,27 +1960,27 @@
       "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
     },
     "@intlify/core-base": {
-      "version": "9.11.0",
-      "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.11.0.tgz",
-      "integrity": "sha512-cveOqAstjLZIiyatcP/HrzrQ87cZI8ScPQna3yvoM8zjcjcIRK1MRvmxUNlPdg0rTNJMZw7rixPVM58O5aHVPA==",
+      "version": "9.13.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.13.1.tgz",
+      "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==",
       "requires": {
-        "@intlify/message-compiler": "9.11.0",
-        "@intlify/shared": "9.11.0"
+        "@intlify/message-compiler": "9.13.1",
+        "@intlify/shared": "9.13.1"
       }
     },
     "@intlify/message-compiler": {
-      "version": "9.11.0",
-      "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.11.0.tgz",
-      "integrity": "sha512-x31Gl7cscnoI4UUY1yaIy8e7vVMVW1VVlTXZz4SIHKqoSEUkfmgqK8NAx1e7RcoHEbICR7uyCbud0ZL1s4OGXQ==",
+      "version": "9.13.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.13.1.tgz",
+      "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==",
       "requires": {
-        "@intlify/shared": "9.11.0",
+        "@intlify/shared": "9.13.1",
         "source-map-js": "^1.0.2"
       }
     },
     "@intlify/shared": {
-      "version": "9.11.0",
-      "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.11.0.tgz",
-      "integrity": "sha512-KHSNgi7sRjmSm7aD8QH8WFt9VfKaekJuJ473opbJlkGY3EDnDUU8ikIhG8PbasQbgNvbY3m3tWNGqk2omIdwMA=="
+      "version": "9.13.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.13.1.tgz",
+      "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ=="
     },
     "@jridgewell/sourcemap-codec": {
       "version": "1.4.15",
@@ -2771,12 +2771,12 @@
       }
     },
     "vue-i18n": {
-      "version": "9.11.0",
-      "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.11.0.tgz",
-      "integrity": "sha512-vU4gY6lu8Pdfs9BgKGiDAJmFDf88cceR47KcSB0VW4xJzUrXR/7qwqM7A8dQ2nedhoIDxoOm5Ro4pFd2KvJqbA==",
+      "version": "9.13.1",
+      "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.13.1.tgz",
+      "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==",
       "requires": {
-        "@intlify/core-base": "9.11.0",
-        "@intlify/shared": "9.11.0",
+        "@intlify/core-base": "9.13.1",
+        "@intlify/shared": "9.13.1",
         "@vue/devtools-api": "^6.5.0"
       }
     },
diff --git a/UI-Project/package.json b/UI-Project/package.json
index b816c15..6cade56 100644
--- a/UI-Project/package.json
+++ b/UI-Project/package.json
@@ -18,7 +18,7 @@
     "sortablejs": "^1.15.1",
     "sweetalert2": "^11.10.7",
     "vue": "^3.3.4",
-    "vue-i18n": "^9.11.0",
+    "vue-i18n": "^9.13.1",
     "vue-router": "^4.2.4",
     "vxe-table": "^4.5.15",
     "xe-utils": "^3.5.14",
diff --git a/UI-Project/src/lang/LanguageMixin.js b/UI-Project/src/lang/LanguageMixin.js
index 39a6488..5a90328 100644
--- a/UI-Project/src/lang/LanguageMixin.js
+++ b/UI-Project/src/lang/LanguageMixin.js
@@ -1,14 +1,14 @@
 export default {
-    created() {
-      const localStorageLang = localStorage.getItem('preferredLanguage');
-      if (localStorageLang) {
-        this.$i18n.locale = localStorageLang;
-      }
-    },
-    methods: {
-      switchLanguage(lang) {
-        this.$i18n.locale = lang;
-        localStorage.setItem('preferredLanguage', lang);
-      }
+  created() {
+    const localStorageLang = localStorage.getItem('preferredLanguage');
+    if (localStorageLang) {
+      this.$i18n.locale = localStorageLang;
     }
-  }
\ No newline at end of file
+  },
+  methods: {
+    switchLanguage(lang) {
+      this.$i18n.locale = lang;
+      localStorage.setItem('preferredLanguage', lang);
+    }
+  }
+}
\ No newline at end of file
diff --git a/UI-Project/src/lang/i18n.js b/UI-Project/src/lang/i18n.js
index c582ee5..080bd7c 100644
--- a/UI-Project/src/lang/i18n.js
+++ b/UI-Project/src/lang/i18n.js
@@ -1,9 +1,9 @@
 // i18n.js
-
+ 
 import { createI18n } from 'vue-i18n'
 import zhCn from './lang/locales/zh-CN.json'
 import enUs from './lang/locales/en-US.json'
-
+ 
 const i18n = createI18n({
   locale: 'zh-CN', // 璁剧疆榛樿璇█
   messages: {
@@ -11,5 +11,5 @@
     'en-US': enUs
   }
 })
-
-export default i18n
+ 
+export default i18n
\ No newline at end of file
diff --git a/UI-Project/src/main.js b/UI-Project/src/main.js
index 41bf9c3..fe656ab 100644
--- a/UI-Project/src/main.js
+++ b/UI-Project/src/main.js
@@ -1,5 +1,5 @@
 import './assets/main.css'
-
+ 
 import { createApp } from 'vue'
 import { createPinia } from 'pinia'
 import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
@@ -11,8 +11,8 @@
 import VXETable from 'vxe-table'
 import 'vxe-table/lib/style.css'
 //  import i18n from './lang/i18n' 
-
-
+ 
+ 
 const app = createApp(App)
 const pinia = createPinia()
 pinia.use(piniaPluginPersistedstate )
@@ -23,5 +23,5 @@
 app.use(ElementPlus,{
     locale: zhCn,
 })
-
-app.mount('#app')
+ 
+app.mount('#app')
\ No newline at end of file
diff --git a/UI-Project/src/views/Caching/cachingbefore.vue b/UI-Project/src/views/Caching/cachingbefore.vue
index 5d9d157..284a33c 100644
--- a/UI-Project/src/views/Caching/cachingbefore.vue
+++ b/UI-Project/src/views/Caching/cachingbefore.vue
@@ -65,13 +65,18 @@
     );  
     if (confirmResult === 'confirm') {  
       // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛  
-      const deleteResponse = await request.post("/cacheGlass/edgStorageCage/edgStorageCageGlass", {
-        id: row.id,
+      var url="/cacheGlass/edgStorageCage/edgStorageCageGlass?edgStorageCageId="+row.id;
+      console.log(url);
+      const deleteResponse = await request.post(url, {
         esdId: row.esdId
     })
-      if (response.code == 200) {  
-        // 鍒犻櫎鎴愬姛锛屾偍鍙互鏍规嵁闇�瑕佸鐞嗘垚鍔熺殑鎯呭喌  
-        alert('鍒犻櫎鎴愬姛锛�');  
+    if (response.code == 200) {
+        // 鍒犻櫎鎴愬姛锛屾偍鍙互鏍规嵁闇�瑕佸鐞嗘垚鍔熺殑鎯呭喌 
+      //   ElMessage({
+      //   type: 'success',
+      //   message: '鍒犻櫎鎴愬姛锛�',
+      // }) 
+      ElMessage.success(response.message);
       } else {  
         // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛  
         alert('鍒犻櫎澶辫触锛�' + deleteResponse.message); 
diff --git a/UI-Project/src/views/LoginView.vue b/UI-Project/src/views/LoginView.vue
index 366ed5a..40d2d9b 100644
--- a/UI-Project/src/views/LoginView.vue
+++ b/UI-Project/src/views/LoginView.vue
@@ -5,21 +5,21 @@
 import {ElMessage} from 'element-plus'
 import request from '@/utils/request'
 import userInfo from '@/stores/userInfo'
-
+ 
 const store = userInfo()
 let ruleFormRef = ref<FormInstance>()
 const router = useRouter()
 const route = useRoute()
-
+ 
 const userForm = reactive({
   userName: '',
   password: '',
 })
-
+ 
 if (typeof route.query.id != 'undefined') {
   userForm.userId = <string>route.query.id
 }
-
+ 
 const validateUser = (rule: any, value: any, callback: any) => {
   if (value === '') {
     callback(new Error('璇疯緭鍏ヤ綘鐨勮处鍙�'))
@@ -27,7 +27,7 @@
     callback()
   }
 }
-
+ 
 const validatePass = (rule: any, value: any, callback: any) => {
   if (value === '') {
     callback(new Error('璇疯緭鍏ヤ綘鐨勫瘑鐮�'))
@@ -35,12 +35,12 @@
     callback()
   }
 }
-
+ 
 const rules = reactive<FormRules<typeof userForm>>({
   userId: [{validator: validateUser, trigger: 'blur'}],
   pass: [{validator: validatePass, trigger: 'blur'}],
 })
-
+ 
 //鐧婚檰鏂规硶
 const submitForm = (formEl: FormInstance | undefined) => {
   if (!formEl) return
@@ -54,7 +54,7 @@
             if (res['code'] == 200) {
               store.$patch({user: res.data})
               console.log(res.data)
-
+ 
               router.push('/main')
               ElMessage.success(`鐧诲綍鎴愬姛`)
             } else {
@@ -77,16 +77,16 @@
     }
   })
 }
-
+ 
 function register() {
   router.push({
     path: '/register',
   })
 }
-
+ 
 let loginLoadings = ref(false)
 let registerLoadings = ref(false)
-
+ 
 const keyDown = (e) => {
   // 鍥炶溅鍒欐墽琛岀櫥褰曟柟娉� enter閿殑ASCII鏄�13
   if (e.keyCode == 13 || e.keyCode == 100) {
@@ -100,7 +100,7 @@
   window.removeEventListener('keydown', keyDown)
 })
 </script>
-
+ 
 <template>
   <div class="mainDiv">
     <div id="main-login">
@@ -155,29 +155,29 @@
                          @click="register"
                          plain>娉ㄥ唽
               </el-button>
-
+ 
             </el-form-item>
           </div>
         </el-form>
       </div>
     </div>
-
+ 
   </div>
 </template>
-
+ 
 <style scoped>
 .mainDiv {
   overflow: hidden;
   min-width: 718px;
   background-image: url('../../src/assets/background.jpg');
 }
-
+ 
 #main-login {
   margin: 150px auto 0 auto;
   height: 70vh;
   width: 80vw;
 }
-
+ 
 #img-div {
   width: 55%;
   height: 100%;
@@ -186,12 +186,12 @@
   align-items: center;
   float: left;
 }
-
+ 
 #img-pic {
   max-height: 90%;
   max-width: 100%;
 }
-
+ 
 #div-login {
   margin-top: 5%;
   /* margin-top: 20%; */
@@ -204,22 +204,22 @@
   border-radius: 4px;
   box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0), 0 6px 5px 0 rgba(0, 0, 0, 0.19);
 }
-
+ 
 #center {
   margin-top: -30px;
 }
-
+ 
 .el-form {
   width: 60%;
   margin: 20% auto auto;
 }
-
+ 
 #submitForm {
   display: flex;
   justify-content: space-evenly;
   margin-top: 2rem;
 }
-
+ 
 :deep(.el-form-item__content) {
   flex: unset;
 }
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index 49db7d7..6164565 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -22,9 +22,9 @@
 // import http from "@/http/index";
  
 let ruleForm = ref({
-  // engineeringId: '',
+  projectNo: '',
   workstationId: '',
-  patternHeigth: '',
+  patternHeight: '',
   patternWidth: '',
   filmsId: '',
   patternThickness: '',
@@ -61,27 +61,52 @@
     ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
   }
 };
-request.get("/loadGlass/LoadGlass/list").then((res) => {
-          if (res.code == 200) {
-          console.log(res.data);
-          tableDataa.value = res.data
-      window.localStorage.setItem('patternWidth', res.data.patternWidth)
-      window.localStorage.setItem('workstationId', res.data.workstationId)
-      let workstationIda = window.localStorage.getItem('workstationId')
-      let patternWidth = window.localStorage.getItem('patternWidth')
-      if (patternWidth !== '' || workstationIda == '1') {
-      flake.value = true
-    } else if (patternWidth !== '' || workstationIda == '2') {
-      flakea.value = true
+   request.get("/loadGlass/LoadGlass/list").then((res) => {
+    if (res.code === 200) {
+     console.log(res.data);
+     tableDataa.value = res.data;
+   
+    if (tableDataa.value.length === 2) {
+     if (tableDataa.value[0].patternWidth > 0) {
+      flake.value = true;
+     }
+
+    if (tableDataa.value[1].patternWidth > 0) {
+    flakea.value = true;
     }
-          } else {
-          ElMessage.warning(res.msg)
-          // router.push("/login")
-          }
-          });
+    }
+    } else {
+    ElMessage.warning(res.msg);
+    // router.push("/login");
+    }
+   });
+// request.get("/loadGlass/LoadGlass/list").then((res) => {
+//       window.localStorage.setItem('patternWidth', res.data.patternWidth)
+//       window.localStorage.setItem('workstationId', res.data.workstationId)
+//           if (res.code == 200) {
+//           console.log(res.data);
+//           tableDataa.value = res.data
+//           console.log(res.data.patternWidth);
+          
+//       let workstationId = window.localStorage.getItem('workstationId')
+//       let patternWidth = window.localStorage.getItem('patternWidth')
+//       if (patternWidth !== '' || workstationId == '1') {
+//       flake.value = true
+//     } else if (patternWidth !== '' || workstationId == '2') {
+//       flakea.value = true
+//     }
+//           } else {
+//           ElMessage.warning(res.msg)
+//           // router.push("/login")
+//           }
+//           });
 //瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
 const titleSelectJson = ref({
   processType: [],
+ 
+})
+const titleSelectJsona = ref({
+  processTypea: [],
  
 })
 // const getBasicData = ref({
@@ -108,6 +133,7 @@
 };  
 // 鍝嶅簲寮忔暟鎹�  
 const selectedProjectNo = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿  
+const selectedProjectNoa = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿  
 const options = ref<any[]>([]); // 涓嬫媺閫夐」鍒楄〃  
   
 // 璋冪敤鎺ュ彛鑾峰彇閫夐」鏁版嵁鐨勫嚱鏁�  
@@ -121,12 +147,6 @@
     
     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 {  
@@ -136,7 +156,22 @@
     console.error('Error fetching options:', error);  
   }  
 };  
-  
+  // 寮�濮嬩笂鐗囦笅鎷夐��  
+const fetchOptionsa = async (queryString: string) => {  
+  try {  
+    // 鍙戦�佽姹傚埌鍚庣鎺ュ彛  
+    const response = await request.get('/loadGlass/engineering/engineering/selectTask');  
+    if (response.code == 200) {  
+    titleSelectJsona.value.processTypea = response.data;
+    console.log(response.data);
+
+    } else {  
+      ElMessage.warning(response.data);  
+    }  
+  } catch (error) {  
+    console.error('Error fetching options:', error);  
+  }  
+}; 
 // 澶勭悊鐢ㄦ埛杈撳叆鍙樺寲鐨勬柟娉�  
 const handleInputChange = async (value: string) => {  
   if (value) {  
@@ -145,13 +180,23 @@
     options.value = []; // 娓呯┖閫夐」鍒楄〃  
   }  
 };  
-  
+  // 澶勭悊鐢ㄦ埛杈撳叆鍙樺寲鐨勬柟娉�  
+const handleInputChangea = async (value: string) => {  
+  if (value) {  
+    await fetchOptionsa(value);  
+  } else {  
+    options.value = []; // 娓呯┖閫夐」鍒楄〃  
+  }  
+};  
 // 鍒濆鍖栧姞杞芥暟鎹紙濡傛灉闇�瑕侊級  
 onMounted(() => {  
   // 鍦ㄧ粍浠舵寕杞藉悗璋冪敤 fetchOptions('') 鏉ュ姞杞藉垵濮嬫暟鎹紙濡傛灉闇�瑕侊級  
   fetchOptions('');  
 });  
-  
+onMounted(() => {  
+  // 鍦ㄧ粍浠舵寕杞藉悗璋冪敤 fetchOptions('') 鏉ュ姞杞藉垵濮嬫暟鎹紙濡傛灉闇�瑕侊級  
+  fetchOptionsa('');  
+}); 
 // const billall  = () => {
 //   request.post("/loadGlass/optimizeProject/listByState", requestData)
 //     .then((res: any) => {
@@ -164,23 +209,23 @@
 // }
 const user = ref('');
 // 瀹氫箟琛ㄥご涓婁紶鏁版嵁
-let titleUploadData = ref({
-  projectNo:'',
-})
-// const engineeringId = ref('');
+// let titleUploadData = ref({
+//   projectNo:'',
+// })
+const projectNo = ref('');
 const workstationId = ref('');
-const patternHeigth = ref('');
+const patternHeight = ref('');
 const patternWidth = ref('');
 const filmsId = ref('');
 const patternThickness = ref('');
 const number = ref('');
- 
 // 娣诲姞
     const handleConfirm = async () => {
   try {
     const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
+      id: workstationId.value,
       workstationId: workstationId.value,
-      patternHeigth: patternHeigth.value,
+      patternHeight: patternHeight.value,
       patternWidth: patternWidth.value,
       filmsId: filmsId.value,
       patternThickness: patternThickness.value,
@@ -190,6 +235,7 @@
     if (response.code == 200) {
       // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       ElMessage.success(response.message);
+      window.location.reload() 
       add.value = false;
       window.localStorage.setItem('workstationId', response.data.workstationId)
       let workstationId = window.localStorage.getItem('workstationId')
@@ -212,7 +258,7 @@
   try {
     const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
       workstationId: workstationId.value,
-      patternHeigth: 0,
+      patternHeight: 0,
       patternWidth: 0,
       filmsId: "",
       patternThickness: 0,
@@ -239,30 +285,20 @@
     console.error(error);
   }
 };
-// 寮�濮嬩笂鐗�
-const handle = async () => {
+// 閫夋嫨宸ョ▼纭
+const handleup = async () => {
   try  {
-  let engineeringId = window.localStorage.getItem('engineeringId')
-console.log(engineeringId);
-if (engineeringId !== '') {
-  const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
-      engineeringId: engineeringId,
-      state: 1,
+  const response = await request.post('/loadGlass/up-patten-usage/saveUpPattenUsage', {
+    engineerId: selectedProjectNo.value,
     })
     if (response.code == 200) {
       // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       ElMessage.success(response.message);
-      blind.value = false;
+      window.location.reload() 
+      dialogFormVisible.value = false;
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
       ElMessage.error(response.msg);
-    }
-  }
-    else  {
-      ElMessage({
-        type: 'info',
-        message: '宸ョ▼鍙蜂笉鑳戒负绌猴紒',
-      })
     }
 }
 catch (error) {
@@ -270,6 +306,58 @@
     console.error(error);
   }
 }
+// 寮�濮嬩笂鐗�
+const handle = async () => {
+  try  {
+  const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
+    engineerId: selectedProjectNoa.value,
+    state: 1,
+    })
+    if (response.code == 200) {
+      // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+      ElMessage.success(response.message);
+      window.location.reload() 
+      blind.value = false;
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.msg);
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+}
+// const handle = async () => {
+//   try  {
+//   let engineeringId = window.localStorage.getItem('engineeringId')
+// console.log(engineeringId);
+// if (engineeringId !== '') {
+//   const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
+//       engineeringId: engineerId.va,
+//       state: 1,
+//     })
+//     if (response.code == 200) {
+//       // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+//       ElMessage.success(response.message);
+//       blind.value = false;
+//     } else {
+//       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+//       ElMessage.error(response.msg);
+//     }
+//   }
+//     else  {
+//       ElMessage({
+//         type: 'info',
+//         message: '宸ョ▼鍙蜂笉鑳戒负绌猴紒',
+//       })
+//     }
+// }
+// catch (error) {
+//     // 澶勭悊閿欒
+//     console.error(error);
+//   }
+// }
 // 鏆傚仠
 const handlea = async () => {
   try  {
@@ -283,6 +371,7 @@
     if (response.code == 200) {
       // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       ElMessage.success(response.message);
+      window.location.reload() 
       blinda.value = false;
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
@@ -301,7 +390,7 @@
     console.error(error);
   }
 }
-// 寮�濮嬩笂鐗�
+// 鍋滄浠诲姟
 const handleb = async () => {
   try  {
   let engineeringId = window.localStorage.getItem('engineeringId')
@@ -314,6 +403,7 @@
     if (response.code == 200) {
       // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       ElMessage.success(response.message);
+      window.location.reload() 
       blindb.value = false;
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
@@ -333,7 +423,24 @@
   }
 }
 onMounted(fetchTableData);
- 
+function getStatusText(state: number) {  
+  switch (state) {  
+    case 0:  
+      return '绛夊緟涓�';  
+    case 1:  
+    case 2:  
+      return '涓婄墖涓�';  
+    case 100:  
+      return '宸插畬鎴�';  
+    default:  
+      return '鏈煡鐘舵��';  
+  }  
+}  
+  
+function getStatusType(state: number) {  
+  // 杩欓噷鍋囪鍙湁100鏃剁被鍨嬩笉鏄痵uccess锛屽叾浠栭兘鏄痵uccess  
+  return state === 100 ? 'info' : 'success'; // 鏍规嵁闇�瑕佽皟鏁寸被鍨�  
+}  
 // const open = () => {
 //   ElMessageBox.confirm(
 //     '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
@@ -462,15 +569,39 @@
             min-width="80"
             prop="state"
           >
-          <template #default="scope">
-            <el-tag type="success" >{{ scope.row.state==1?"灏辩华":"鏈氨缁�"  }}</el-tag>
-          </template>
+          <template #default="scope">  
+        <el-tag :type="getStatusType(scope.row.state)">  
+          {{ getStatusText(scope.row.state) }}  
+        </el-tag>  
+      </template> 
+          <!-- <template #default="scope">
+            <el-tag type="success" >{{ scope.row.state==0?"绛夊緟涓�":"涓婄墖涓�"  }}</el-tag>
+          </template> -->
           </el-table-column>
     </el-table>
       </div>
       
     </el-card>
-  <el-dialog v-model="blind" top="30vh" width="25%" title="鏄惁寮�濮嬩笂鐗�?" >
+    <el-dialog v-model="blind" top="24vh" width="30%" title="鏄惁寮�濮嬩笂鐗囷紵" >
+    <div style="margin-left: 50px;margin-bottom: 10px;">
+      <el-form-item label="宸ョ▼鍙凤細" :required="true">
+        <el-select  
+           v-model="selectedProjectNoa"  
+           filterable  
+           clearable  
+           placeholder="璇烽�夋嫨宸ョ▼"  
+           style="width: 220px"  
+           @input="handleInputChangea"  
+         >  
+      <el-option  
+         v-for="item in titleSelectJsona['processTypea']"  
+         :key="item.id"  
+         :label="item.engineerId"  
+         :value="item.engineerId"  
+      />  
+    </el-select>  
+              </el-form-item>
+          </div>
     <template #footer>
       <div id="dialog-footer">
         <el-button type="primary" @click="handle">
@@ -480,6 +611,16 @@
       </div>
     </template>
   </el-dialog>
+  <!-- <el-dialog v-model="blind" top="30vh" width="25%" title="鏄惁寮�濮嬩笂鐗�?" >
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handle">
+          纭
+        </el-button>
+        <el-button @click="blind = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog> -->
   <el-dialog v-model="blinda" top="30vh" width="25%" title="鏄惁鏆傚仠?" >
     <template #footer>
       <div id="dialog-footer">
@@ -510,7 +651,7 @@
      :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
         >
           <el-table-column prop="patternWidth" align="center" label="瀹�" min-width="80" />
-          <el-table-column prop="patternHeigth" align="center" label="闀�" min-width="80" />
+          <el-table-column prop="patternHeight" align="center" label="闀�" min-width="80" />
           <el-table-column prop="filmsId" align="center" label="鑶滅郴" min-width="80" />
           <el-table-column prop="number" align="center" label="鏁伴噺" min-width="80" />
           <el-table-column fixed="right" label="鎿嶄綔" align="center" width="150">
@@ -531,7 +672,7 @@
               <div id="dt" style="font-size: 15px;">
         <div>
               <el-form-item label="闀匡細" :required="true" style="width: 14vw">
-                <el-input  v-model="patternHeigth" autocomplete="off" />
+                <el-input  v-model="patternHeight" autocomplete="off" />
               </el-form-item></div></div>
           </el-col>
           <el-col :span="9">
@@ -611,20 +752,11 @@
          :value="item.projectNo"  
       />  
     </el-select>  
-        <!-- <el-select  v-model="getBasicData.projectNo" clearable placeholder="璇烽�夋嫨宸ョ▼" style="width: 220px"
-                   >
-            <el-option
-                v-for="item in titleSelectJson['processType']"
-                :key="item.id"
-                :label="item.projectNo"
-                :value="item.projectNo"
-            />
-          </el-select> -->
               </el-form-item>
           </div>
     <template #footer>
       <div id="dialog-footer">
-        <el-button type="primary" @click="dialogFormVisible = false">
+        <el-button type="primary" @click="handleup">
           纭
         </el-button>
         <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindication.vue b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
index 72b46a9..e9bd3c7 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindication.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
@@ -4,7 +4,7 @@
       <svg width="500" height="500" xmlns="http://www.w3.org/2000/svg">
         <g stroke="null" id="Layer_1">
           <!-- 浣跨敤 v-for 寰幆娓叉煋鏁版嵁 -->
-          <g v-for="(rack, index) in racks" :key="index">
+          <g v-for="(rack, index) in racks" :key="index"   :data="tableData">
             <rect 
               :x="rack.x" 
               :y="rack.y" 
@@ -31,21 +31,28 @@
   </div>
 </template>
 
-<script setup>
+<script  setup>
+import { ref, watchEffect } from 'vue';
 import Swal from 'sweetalert2'
-
-const racks = [
+import request from "@/utils/request";
+const racks = ref([
   { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456' } },
-  { x: 50, y: 270, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 20, width: 10, fillColor: 'yellow', content: 'NG1234567' } },
-  { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 30, width: 20, fillColor: 'yellow', content: 'NG12345678' } },
-  { x: 280, y: 270, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 35, width: 23, fillColor: 'yellow', content: 'NG123456910' } },
-  { x: 140, y: 420, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 30, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }
-];
+ 
+  { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG12345678' } },
+ 
+  { x: 140, y: 420, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }
+  
+]);
+
+watchEffect(() => {
+  // 瑙﹀彂鏁版嵁鍙樺寲鏃堕噸鏂版覆鏌�
+});
+
 
 const calculateItemXPosition = (rack, item, index) => {
-  if (index === 0 || index === 1) {
+  if (index === 0 ) {
     return rack.x;
-  } else if (index === 2 || index === 3) {
+  } else if (index === 1 ) {
     return rack.x + rack.width - item.width;
   } else {
     return rack.x + (rack.width - item.width) / 2;
@@ -53,32 +60,78 @@
 };
 
 const calculateItemYPosition = (rack, item, index) => {
-  if (index === 0 || index === 1) {
+  if (index === 0 ) {
     return rack.y + (rack.height - item.height) / 2;
-  } else if (index === 2 || index === 3) {
+  } else if (index === 1) {
     return rack.y + (rack.height - item.height) / 2;
   } else {
     return rack.y + rack.height - item.height;
   }
 };
 
-const showCustomAlert = (content) => {
-  var str="鏋跺彿   :      111\n" +
-    "闀�     :      111\n" +
-    "瀹�     :      111\n" +
-    "鍘�     :      111\n"+
-    "鐜荤拑ID :      111\n"+
-    "鑶滅郴   :      111\n";
 
-  Swal.fire({
-    title: '鐜荤拑淇℃伅',
-    html: '<pre>' + str + '</pre>',
-    customClass: {
-      popup: 'format-pre'
+const fetchFlowCardId = async () => {
+  try {
+    const response = await request.get('unLoadGlass/downWorkStation/getwo');
+    
+    if (response.code === 200) {
+      console.log(response); 
+      // 閬嶅巻鍝嶅簲鏁版嵁骞舵浛鎹acks鏁扮粍涓殑item灞炴��
+      response.data.forEach((itemData, index) => {
+  if (index < racks.value.length) {
+    const rack = racks.value[index];
+    const newItem = {
+      content: itemData.item.content,
+      fillColor: itemData.item.fillColor,
+      width: itemData.item.width === "" ? "" : 10,
+      height: itemData.item.height === "" ? "" : 90
+    };
+
+    if (index === 2 && itemData.item.width > 0) {
+      newItem.width = 100;
+      newItem.height = 20;
     }
-  });
+
+    rack.item = newItem;
+
+    console.log(racks.value); // 鎵撳嵃鏇存柊鍚庣殑 racks 鍊�
+  }
+});
+
+
+
+      
+     
+    } else {
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    console.error(error);
+  }
 };
 
+fetchFlowCardId()
+// setTimeout(fetchFlowCardId(),1000);
+//setInterval(fetchFlowCardId, 2000)
+
+
+// const showCustomAlert = (content) => {
+//   var str="鏋跺彿   :      111\n" +
+//     "闀�     :      111\n" +
+//     "瀹�     :      111\n" +
+//     "鍘�     :      111\n"+
+//     "鐜荤拑ID :      111\n"+
+//     "鑶滅郴   :      111\n";
+
+//   Swal.fire({
+//     title: '鐜荤拑淇℃伅',
+//     html: '<pre>' + str + '</pre>',
+//     customClass: {
+//       popup: 'format-pre'
+//     }
+//   });
+// };
+
 const showRectInfo = (rectInfo) => {
   const content = rectInfo.item.content;
   showCustomAlert(content);
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
index b340c83..99bfcb7 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
@@ -22,7 +22,7 @@
               :height="rack.item.height" 
               :fill="rack.item.fillColor"
             />
-            <text :x="rack.x + rack.width / 2" :y="rack.y - 10" text-anchor="middle">{{ index + 6 }}鍙峰伐浣�</text>
+            <text :x="rack.x + rack.width / 2" :y="rack.y - 10" text-anchor="middle">{{ index + 4 }}鍙峰伐浣�</text>
             <text :x="rack.x + rack.width / 2" :y="rack.y + rack.height + 20" text-anchor="middle">{{ rack.item.content }}</text>
           </g>
         </g>
@@ -32,20 +32,27 @@
 </template>
 
 <script setup>
+import { ref, watchEffect } from 'vue';
 import Swal from 'sweetalert2'
+import request from "@/utils/request";
 
-const racks = [
+const racks = ref([
   { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456' } },
-  { x: 50, y: 270, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 20, width: 10, fillColor: 'yellow', content: 'NG1234567' } },
-  { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 30, width: 20, fillColor: 'yellow', content: 'NG12345678' } },
-  { x: 280, y: 270, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 35, width: 23, fillColor: 'yellow', content: 'NG123456910' } },
-  { x: 140, y: 420, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 30, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }
-];
+ 
+  { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG12345678' } },
+ 
+  { x: 140, y: 420, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }
+  
+]);
 
+watchEffect(() => {
+  // 瑙﹀彂鏁版嵁鍙樺寲鏃堕噸鏂版覆鏌�
+});
+// 璁$畻鍏冪礌浣嶇疆鐨勫嚱鏁�
 const calculateItemXPosition = (rack, item, index) => {
-  if (index === 0 || index === 1) {
+  if (index === 0) {
     return rack.x;
-  } else if (index === 2 || index === 3) {
+  } else if (index === 1) {
     return rack.x + rack.width - item.width;
   } else {
     return rack.x + (rack.width - item.width) / 2;
@@ -53,32 +60,75 @@
 };
 
 const calculateItemYPosition = (rack, item, index) => {
-  if (index === 0 || index === 1) {
+  if (index === 0) {
     return rack.y + (rack.height - item.height) / 2;
-  } else if (index === 2 || index === 3) {
+  } else if (index === 1) {
     return rack.y + (rack.height - item.height) / 2;
   } else {
     return rack.y + rack.height - item.height;
   }
 };
 
-const showCustomAlert = (content) => {
-  var str="鏋跺彿   :      111\n" +
-    "闀�     :      111\n" +
-    "瀹�     :      111\n" +
-    "鍘�     :      111\n"+
-    "鐜荤拑ID :      111\n"+
-    "鑶滅郴   :      111\n";
 
-  Swal.fire({
-    title: '鐜荤拑淇℃伅',
-    html: '<pre>' + str + '</pre>',
-    customClass: {
-      popup: 'format-pre'
+const fetchFlowCardId = async () => {
+  try {
+    const response = await request.get('unLoadGlass/downWorkStation/getwo2');
+    
+    if (response.code === 200) {
+      console.log(response); 
+      // 閬嶅巻鍝嶅簲鏁版嵁骞舵浛鎹acks鏁扮粍涓殑item灞炴��
+      response.data.forEach((itemData, index) => {
+  if (index < racks.value.length) {
+    const rack = racks.value[index];
+    const newItem = {
+      content: itemData.item.content,
+      fillColor: itemData.item.fillColor,
+      width: itemData.item.width === "" ? "" : 10,
+      height: itemData.item.height === "" ? "" : 90
+    };
+
+    if (index === 2 && itemData.item.width > 0) {
+      newItem.width = 100;
+      newItem.height = 20;
     }
-  });
+
+    rack.item = newItem;
+
+    console.log(racks.value); // 鎵撳嵃鏇存柊鍚庣殑 racks 鍊�
+  }
+});
+
+
+
+      
+     
+    } else {
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    console.error(error);
+  }
 };
 
+fetchFlowCardId()
+
+// const showCustomAlert = (content) => {
+//   var str="鏋跺彿   :      111\n" +
+//     "闀�     :      111\n" +
+//     "瀹�     :      111\n" +
+//     "鍘�     :      111\n"+
+//     "鐜荤拑ID :      111\n"+
+//     "鑶滅郴   :      111\n";
+
+//   Swal.fire({
+//     title: '鐜荤拑淇℃伅',
+//     html: '<pre>' + str + '</pre>',
+//     customClass: {
+//       popup: 'format-pre'
+//     }
+//   });
+// };
+
 const showRectInfo = (rectInfo) => {
   const content = rectInfo.item.content;
   showCustomAlert(content);
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index 6f605ad..d4a17c1 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -9,6 +9,7 @@
 import Landingindication from "./Landingindication.vue";
 import Landingindicationtwo from "./Landingindicationtwo.vue";
 import request from "@/utils/request";
+
 const dialogFormVisiblea = ref(false)
 
 
@@ -75,7 +76,7 @@
 const workstationId = ref('');
 const flowCardId = ref('');
 const flowCardOptions = ref([]);
-
+const tableData = reactive([]);
 
 // 鏂规硶
 const handleSelectionChange = () => {
@@ -121,7 +122,9 @@
     if (response.code == 200) {
       // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       console.log('缁戝畾鎴愬姛');
+   
       ElMessage.success(response.message);
+      updatePageData();
       dialogFormVisiblea.value = false;
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
@@ -131,6 +134,16 @@
     // 澶勭悊閿欒
     console.error(error);
   }
+};
+
+
+const updatePageData = () => {
+  // 鍋囪浣犵殑椤甸潰涓婃湁涓�涓悕涓� tableData 鐨� Vue 缁勪欢
+  // 浣犲彲浠ョ洿鎺ユ洿鏂� tableData 鐨勬暟鎹�
+  fetchTableData()
+
+  // 浣跨敤 $forceUpdate() 寮哄埗鏇存柊缁勪欢
+ 
 };
 
 
@@ -173,7 +186,7 @@
 
 
 
-const tableData = reactive([]);
+
 
 // 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰
 const fetchTableData = async () => {
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
index 0f0b2a6..500a02a 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -109,15 +109,15 @@
             log.info("2銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟");
             //鍔犵瀛愰噷闈㈡槸鍚︽湁鐜荤拑锛屾湁鍏堝嚭锛屾棤鐜荤拑鍏堣繘
             int count = edgStorageCageDetailsService.count(new LambdaQueryWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
-            if ("0".equals(out08Glassstate) && "0".equals(out10Glassstate) && count < 9) {
-                inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
-            } else {
+            if (("1".equals(out08Glassstate) || "1".equals(out10Glassstate)) && count > 0) {
                 boolean outFlase = outTo(Integer.parseInt(out08Glassstate),
                         Integer.parseInt(out10Glassstate), confirmationWrodAddress);
                 log.info("鍑虹墖浠诲姟鏄惁瀹屾垚锛歿},澶辫触涓旂幓鐠僫d:{}涓嶄负绌哄垯鎵ц杩涚墖浠诲姟", outFlase, glassIdeValue);
                 if (!outFlase && StringUtils.isNotBlank(glassIdeValue)) {
                     inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
                 }
+            } else {
+                inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
             }
         }
     }
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java
index 2ad66f4..d25f5ea 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java
@@ -6,7 +6,6 @@
 import com.mes.tools.S7control;
 
 
-
 /**
  * @Author : zhoush
  * @Date: 2024/4/9 15:13
@@ -26,7 +25,7 @@
         if (plccontrol == null) {
             plccontrol = new S7control(plcType, ip, port, 0, 0);
 
-            String PlcLoadGlass=S7object.class.getResource("/JsonFile/PlcLoadGlass.json").getPath();
+            String PlcLoadGlass = S7object.class.getResource("/JsonFile/PlcLoadGlass.json").getPath();
             //log.info(PLCAutoMes.class.getResource("").getPath());
             PlcMesObject = InitUtil.initword(PlcLoadGlass);
         }
@@ -54,7 +53,7 @@
                 e.printStackTrace();
             }
 
-            byte[] getplcvlues=   plccontrol.ReadByte(PlcMesObject.getPlcAddressBegin(),PlcMesObject.getPlcAddressLength());
+            byte[] getplcvlues = plccontrol.ReadByte(PlcMesObject.getPlcAddressBegin(), PlcMesObject.getPlcAddressLength());
             PlcMesObject.setPlcParameterList(getplcvlues);
 
         }
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 fbbcf0e..9725c57 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
@@ -65,12 +65,7 @@
         //鏇存柊鐘舵��
     }
 
-    @Test
-    public  void  textglassinfo(){
-        List<GlassInfo> glass= glassInfoService.selectGlassInfo("P24032204");
-        log.info("glassinfo锛歿}", Arrays.asList(glass));
-        glassInfoService.saveGlassInfo(glass);
-    }
+
     @Test
     public  void  textengineering(){
         List<Engineering> glass= engineeringService.selectEngineering("P24032204");
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java
new file mode 100644
index 0000000..ddac7f5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java
@@ -0,0 +1,26 @@
+package com.mes;
+
+import com.mes.common.S7object;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author SNG-012
+ */
+@Slf4j
+@Component
+@Order(1)
+
+public class AppRunnerConfig implements ApplicationRunner {
+
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        log.info("鍚姩瀹屾垚");
+        S7object.getinstance().start();
+
+    }
+}
\ No newline at end of file
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 5eb9031..df1f641 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
@@ -29,7 +29,7 @@
     @Override
     public List<DownGlassTask> getUnloadingTaskState() {
         QueryWrapper<DownGlassTask> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("task_stauts", 1);
+        queryWrapper.eq("task_stauts", 0);
         return baseMapper.selectList(queryWrapper);
     }
 
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 f5388ed..173056a 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
@@ -48,8 +48,8 @@
     List<DownStorageCageDetails> CacheOut(int start, int end);
 
     /**
-     * @return 鏌ヨ绌烘牸瀛�
+     * @return 鍑虹墖
      */
-   // List<DownStorageCageDetails> selectCacheEmpty2();
 
+    List<DownStorageCageDetails> CacheOut1(int start, int end);
 }
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 c2d8f32..f94df84 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
@@ -1,6 +1,8 @@
 package com.mes.downstorage.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.github.yulichang.query.MPJQueryWrapper;
 
 
@@ -13,24 +15,33 @@
 
 import com.mes.downstorage.mapper.DownStorageCageMapper;
 import com.mes.downstorage.service.DownStorageCageDetailsService;
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.mapper.DownWorkstationMapper;
 import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.glassinfo.mapper.GlassInfoMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
+
 @Slf4j
 @Service
 public class DownStorageCageDetailsServiceImpl extends ServiceImpl<DownStorageCageDetailsMapper, DownStorageCageDetails> implements DownStorageCageDetailsService {
 
-    @Autowired(required=false)
+    @Autowired(required = false)
     private DownStorageCageMapper downStorageCageMapper;
     @Autowired
     private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
     @Autowired
     private GlassInfoMapper glassInfoMapper;
+    @Autowired
+    private DownWorkstationMapper downWorkstationMapper;
+
     @Override
     public void addDownStorageCageDetails(DownStorageCageDetails details) {
         this.save(details);
@@ -39,7 +50,7 @@
 
     @Override
     //淇敼鐞嗙墖绗煎唴淇℃伅 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
-    public boolean updatedownStorageCageDetails(DownStorageCageDetails details){
+    public boolean updatedownStorageCageDetails(DownStorageCageDetails details) {
         baseMapper.updateById(details);
         return true;
     }
@@ -63,26 +74,6 @@
 
         );
     }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 
 
 //    @Override
@@ -170,17 +161,78 @@
 //    }
 
 
+    @Override
+    public List<DownStorageCageDetails> CacheOut1(int start, int end) {
 
 
+        List<DownStorageCageDetails> cageDetails = downStorageCageDetailsMapper.selectList(null);
+        // Step 5: 鍒ゆ柇 down_storage_cage_details 缁撴灉鏁伴噺鏄惁涓�9锛屽鏋滄槸锛屽垯鎵ц鍙﹀涓�涓煡璇�
+        if (cageDetails.size() == 9) {
+            log.info("1銆佺瀛愭弧浜嗙殑鏃跺�欙紝鎸夌収绗煎唴鐗堝浘id 鐗堝浘鐗囧簭鍑�");
+            List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
 
 
+            List<String> flowCardIds = new ArrayList<>();
+            for (DownWorkstation workstation : workstationList) {
+                flowCardIds.add(workstation.getFlowCardId());
+            }
+
+            if (flowCardIds.isEmpty()) {
+                log.error("鏈壘鍒板搴旂殑 flow_card_id");
+                return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+            }
+            LambdaQueryWrapper<DownStorageCageDetails> anotherQueryWrapper = Wrappers.lambdaQuery();
+
+            anotherQueryWrapper.orderByAsc(DownStorageCageDetails::getTemperingLayoutId);
+            anotherQueryWrapper.orderByDesc(DownStorageCageDetails::getTemperingFeedSequence);
+            anotherQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
+            anotherQueryWrapper.last("LIMIT 1");
+            return downStorageCageDetailsMapper.selectList(anotherQueryWrapper);
+        } else {
+
+            // Step 1: 鏌ヨ DownWorkstation 琛ㄨ幏鍙栧搴� workstation_id 鐨� flow_card_id
+            List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
 
 
+            List<String> flowCardIds = new ArrayList<>();
+            for (DownWorkstation workstation : workstationList) {
+                flowCardIds.add(workstation.getFlowCardId());
+            }
+
+            if (flowCardIds.isEmpty()) {
+                log.error("2銆佹湭鎵惧埌瀵瑰簲鐨� flow_card_id");
+                return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+            }
+            log.info("娴佺▼鍗�:{}", flowCardIds);
+            LambdaQueryWrapper<GlassInfo> queryWrapper2 = Wrappers.lambdaQuery();
+            queryWrapper2.select(GlassInfo::getFlowCardId,
+                    GlassInfo::getGlassId,
+                    GlassInfo::getTemperingLayoutId,
+                    GlassInfo::getTemperingFeedSequence)
+                    .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info")
+                    .orderByAsc(GlassInfo::getTemperingLayoutId)
+                    .orderByDesc(GlassInfo::getTemperingFeedSequence)
+                    .last("LIMIT 1");
+
+            // 鏌ヨ GlassInfo 琛�
+            List<GlassInfo> glassInfos = glassInfoMapper.selectList(queryWrapper2);
+            if (glassInfos.isEmpty()) {
+                log.error("鏈壘鍒板搴旂殑鐜荤拑淇℃伅");
+                return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+            }
+            // Step 3: 鏋勯�犳煡璇� down_storage_cage_details 琛ㄧ殑鏉′欢
+            List<String> glassIds = glassInfos.stream().map(GlassInfo::getGlassId).collect(Collectors.toList());
+            LambdaQueryWrapper<DownStorageCageDetails> cageDetailsQueryWrapper = Wrappers.lambdaQuery();
+            cageDetailsQueryWrapper.in(DownStorageCageDetails::getGlassId, glassIds);
+            cageDetailsQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
+
+            log.info("鎸夌収娴佺▼鍗$殑鐗堝浘id 鐗堝浘鐗囧簭鍑�");
+            // Step 4: 鏌ヨ down_storage_cage_details 琛ㄥ苟杩斿洖缁撴灉
+            return downStorageCageDetailsMapper.selectList(cageDetailsQueryWrapper);
+        }
 
 
-
-
-
+    }
 
 
 }
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 cef8be4..e580072 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,5 +1,7 @@
 package com.mes.downstorage.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.toolkit.JoinWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 
@@ -89,6 +91,10 @@
     }
 
 
+
+
+
+
     @Override
     public List<Map<String, Object>> selectDownStorageCages() {
         return baseMapper.selectJoinMaps(JoinWrappers.lambda(DownStorageCage.class)
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
index 6b0b547..d6f8f74 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
@@ -37,7 +37,7 @@
     @GetMapping("/getone")
     public ResponseEntity<?> getOneDownWorkstations() {
         try {
-            List<DownWorkstation> data = downWorkstationService.getoneDownWorkstations(1,5);
+            List<DownWorkstation> data = downWorkstationService.getoneDownWorkstations(1,6);
             // 鏋勫缓绗﹀悎棰勬湡鏍煎紡鐨勫搷搴旀暟鎹�
             Map<String, Object> responseData = new HashMap<>();
             responseData.put("code", 200);
@@ -131,12 +131,12 @@
 
 
 
-    @ApiOperation("鑾峰彇宸ヤ綅鏄剧ず鍥�")
+    @ApiOperation("鑾峰彇宸ヤ綅鏄剧ず鍥�1")
     @GetMapping("/getwo")
     public ResponseEntity<Map<String, Object>> getwo() {
         Map<String, Object> responseData = new HashMap<>();
         try {
-            List<Map<String, Object>> data = downWorkstationService.getTotalGlassDimensionsByWorkstation();
+            List<Map<String, Object>> data = downWorkstationService.getTotalGlassDimensionsByWorkstation(1,3);
             responseData.put("code", 200);
             responseData.put("msg", "鎴愬姛");
             responseData.put("data", data);
@@ -149,7 +149,23 @@
         }
     }
 
-
+    @ApiOperation("鑾峰彇宸ヤ綅鏄剧ず鍥�1")
+    @GetMapping("/getwo2")
+    public ResponseEntity<Map<String, Object>> getw2o() {
+        Map<String, Object> responseData = new HashMap<>();
+        try {
+            List<Map<String, Object>> data = downWorkstationService.getTotalGlassDimensionsByWorkstation(4,6);
+            responseData.put("code", 200);
+            responseData.put("msg", "鎴愬姛");
+            responseData.put("data", data);
+            return ResponseEntity.ok(responseData);
+        } catch (Exception e) {
+            responseData.put("code", 500);
+            responseData.put("msg", "澶辫触");
+            responseData.put("data", null);
+            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(responseData);
+        }
+    }
 
 
 
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 5e8c697..8a4ba9d 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
@@ -61,7 +61,7 @@
      * @return //
      * 宸ヤ綅鏄剧ず
      */
-    List<Map<String, Object>> getTotalGlassDimensionsByWorkstation();
+    List<Map<String, Object>> getTotalGlassDimensionsByWorkstation(int start,int end);
 
 
     /**
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 0746d83..0b2f093 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
@@ -62,11 +62,14 @@
 
     //宸ヤ綅鏄剧ず
     @Override
-    public List<Map<String, Object>> getTotalGlassDimensionsByWorkstation() {
+    public List<Map<String, Object>> getTotalGlassDimensionsByWorkstation(int start,int end) {
         MPJQueryWrapper<DownWorkstation> queryWrapper = new MPJQueryWrapper<>();
         queryWrapper.select("t.workstation_id", "t.flow_card_id", "COALESCE(SUM(b.width), 0) AS totalwidth", "COALESCE(SUM(b.height), 0) AS totalheight")
                 .leftJoin("down_glass_info b on t.flow_card_id = b.flow_card_id")
-                .groupBy("t.workstation_id", "t.flow_card_id");
+                .groupBy("t.workstation_id", "t.flow_card_id")
+                .orderByAsc("t.workstation_id").between("t.workstation_id", start, end)
+
+        ;
 
     List<DownWorkstionAndDownGlassinfo> workstationList = downWorkstationMapper.selectJoinList(DownWorkstionAndDownGlassinfo.class, queryWrapper);
        // List<DownWorkstionAndDownGlassinfo> workstationList = null;
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java
index 82516cd..820b173 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java
@@ -63,7 +63,7 @@
 //    @Value("${mes.threshold}")
     private int threshold;
 
-   // @Scheduled(fixedDelay = 1000)
+    //@Scheduled(fixedDelay = 1000)
     public void plcdownGlassTask() {
    //   PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
 //        String taskRequestTypeValue = plcParameterObject.getPlcParameter("A06_request_word").getValue();
@@ -74,7 +74,7 @@
       // String G06RobotTaskRequestWord = plcParameterObject.getPlcParameter("G06RobotTaskRequestWord").getAddress();
 
 
-                String taskRequestTypeValue ="1";
+                String taskRequestTypeValue ="3";
         String glassIdeValue ="NG24041101C002-2-6-1-6";
         String confirmationWrodValue ="1";
         String outGlassstate="1";
@@ -111,9 +111,7 @@
 
         } else if ("3".equals(taskRequestTypeValue)) {
             log.info("3銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟");
-            if (outTo( confirmationWrodAddress)) {
-
-
+            if (outTo(confirmationWrodAddress)) {
                 inTo(glassIdeValue, confirmationWrodAddress);
 
 
@@ -157,7 +155,7 @@
         DownStorageCageDetails details = new DownStorageCageDetails();
         BeanUtils.copyProperties(glassInfo, details);
         details.setState(1);
-        details.setGlassId(item.getGlassId());
+        details.setGlassId(glassInfo.getGlassId());
         details.setSlot(item.getSlot());
         details.setDeviceId(item.getDeviceId());
         downStorageCageDetailsService.save(details);
@@ -165,7 +163,6 @@
 
             DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(glassInfo, "0", item.getSlot() + "", "1");
         //娣诲姞杩涚墖浠诲姟
-
         log.info("6銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃{}", downGlassTask);
             downGlassTaskService.insertCacheTask(downGlassTask);
         }
@@ -182,17 +179,18 @@
      *
      */
     private Boolean outTo( String confirmationWrodAddress) {
-        log.info("鍗曠墖鎯呭喌鏍规嵁浼犲叆鐨勮澶噄d 鏌ヨ绗﹀悎鎸夌収澶у皬鍑虹墖,骞朵笖浼樺厛鍑烘弧鏋剁殑灏忕墖");
-        List<DownStorageCageDetails> list = downStorageCageDetailsService.CacheOut(1,3);
+        log.info("鍗曠墖鎯呭喌鏍规嵁浼犲叆鐨勬枡鏋跺彿 鏌ヨ绗﹀悎鎸夌収鐗堝浘id鍜岀墖搴忓嚭鐗�,骞朵笖浼樺厛鍑烘弧鏋剁殑灏忕墖");
+        List<DownStorageCageDetails> list = downStorageCageDetailsService.CacheOut1(1,3);
 
-        List<DownStorageCageDetails> list2 = downStorageCageDetailsService.CacheOut(4,6);
+        List<DownStorageCageDetails> list2 = downStorageCageDetailsService.CacheOut1(4,6);
 
-        List<DownStorageCageDetails> list3 = downStorageCageDetailsService.CacheOut(1, 6);
+        List<DownStorageCageDetails> list3 = downStorageCageDetailsService.CacheOut1(1,6);
         // 浼樺厛 瓒呭嚭灏哄浼樺厛浜哄伐鍑虹墖 浜哄伐澶勭悊
         if (!list3.isEmpty()) {
-            log.info("浜哄伐澶勭悊");
+
             DownStorageCageDetails item3 = list3.get(0);
             if (item3.getHeight() >= 2500 && item3.getWidth() >= 2660) {
+                log.info("浜哄伐澶勭悊");
                 String endcell = "7";
 
 
@@ -202,48 +200,49 @@
 
               return true;
             }
+            else if (!list2.isEmpty() && !list3.isEmpty()) {
+                log.info("鍓嶅悗绔兘绌洪棽 浼樺厛鍚庣鍑虹墖骞朵笖浼樺厛婊℃灦");
+                DownStorageCageDetails item4 = list2.get(0);
+
+                DownWorkstation downWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getFlowCardId, item4.getFlowCardId()));
+                String endcell = String.valueOf(downWorkstation.getWorkstationId());
+
+                DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(item4, "9", endcell, "2");
+                downGlassTaskService.insertCacheTask(downGlassTask);
+
+                //S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 2);
+
+                return true;
+
+            }
+            // 鎸夌収鐗堝浘id鍜岀墖搴忕鍚堝墠绔嚭鐗�
+            else if (!list.isEmpty()) {
+                log.info("鍓嶇鍑虹墖");
+                DownStorageCageDetails item = list.get(0);
+                DownWorkstation downWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getFlowCardId, item.getFlowCardId()));
+                String endcell = String.valueOf(downWorkstation.getWorkstationId());
+                // 鍑哄埌 G06
+                DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(item, "9", endcell, "2");
+                downGlassTaskService.insertCacheTask(downGlassTask);
+                // S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 2);
+
+
+                return true;
+                // 鎸夌収鐗堝浘id鍜岀墖搴忕鍚堝悗绔嚭鐗�
+            } else if (!list2.isEmpty()) {
+                log.info("鍚庣鍑虹墖");
+                DownStorageCageDetails item2 = list2.get(0);
+                DownWorkstation downWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getFlowCardId, item2.getFlowCardId()));
+                String endcell = String.valueOf(downWorkstation.getWorkstationId());
+                // 鍑哄埌 G11
+                DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(item2, "9", endcell, "2");
+                downGlassTaskService.insertCacheTask(downGlassTask);
+                //  S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 2);
+                return true;
+            }
         }
         //濡傛灉鍚屾椂鍓嶅悗绔兘绌洪棽 浼樺厛鍚庣鍑虹墖骞朵笖浼樺厛婊℃灦
-        else if (!list2.isEmpty() && !list3.isEmpty()) {
-            log.info("鍓嶅悗绔兘绌洪棽 浼樺厛鍚庣鍑虹墖骞朵笖浼樺厛婊℃灦");
-            DownStorageCageDetails item3 = list2.get(0);
 
-            DownWorkstation downWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getFlowCardId, item3.getFlowCardId()));
-            String endcell = String.valueOf(downWorkstation.getWorkstationId());
-
-            DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(item3, "9", endcell, "2");
-            downGlassTaskService.insertCacheTask(downGlassTask);
-
-         //S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 2);
-
-           return true;
-
-        }
-        // 鎸夌収澶у皬绗﹀悎鍓嶇鍑虹墖
-        else if (!list.isEmpty()) {
-            log.info("鍓嶇鍑虹墖");
-            DownStorageCageDetails item = list.get(0);
-            DownWorkstation downWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getFlowCardId, item.getFlowCardId()));
-            String endcell = String.valueOf(downWorkstation.getWorkstationId());
-            // 鍑哄埌 G06
-            DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(item, "9", endcell, "2");
-            downGlassTaskService.insertCacheTask(downGlassTask);
-           // S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 2);
-
-
-            return true;
-            // 鎸夌収澶у皬绗﹀悎鍚庣鍑虹墖
-        } else if (!list2.isEmpty()) {
-            log.info("鍚庣鍑虹墖");
-            DownStorageCageDetails item2 = list2.get(0);
-            DownWorkstation downWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getFlowCardId, item2.getFlowCardId()));
-            String endcell = String.valueOf(downWorkstation.getWorkstationId());
-            // 鍑哄埌 G11
-            DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(item2, "9", endcell, "2");
-            downGlassTaskService.insertCacheTask(downGlassTask);
-          //  S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 2);
-           return true;
-        }
         // 杩斿洖缁撴灉
         return false;
     }
@@ -252,37 +251,26 @@
 //
     public void insertdownglassinfo() {
         try {
-        String G06RobotTaskReply ="1";
-        String G06Rack ="1";
-        String G11RobotTaskReply ="1";
-        String G11Rack ="1";
+
         List<DownGlassTask> taskdownGlassInf = downGlassTaskService.getUnloadingTaskState();
         if (taskdownGlassInf != null && !taskdownGlassInf.isEmpty()) {
 
             for (DownGlassTask downGlassInfo : taskdownGlassInf) {
                 // 鍒涘缓鏂扮殑 DownGlassInfo 瀵硅薄骞惰缃浉鍏冲睘鎬�
                 DownGlassInfo newdownGlassInfo = new DownGlassInfo();
-//                newdownGlassInfo.setId(downGlassInfo.getId());
-                newdownGlassInfo.setFlowCardId(downGlassInfo.getFlowCardId());
+
                 Integer maxSequence = downGlassInfoService.getMaxSequenceByFlowCardId(downGlassInfo.getFlowCardId());
                 // 鍒濆鍖栭『搴忓瓧娈靛��
                 int sequence = maxSequence != null ? maxSequence + 1 : 1;
-//                newdownGlassInfo.setId(downGlassInfo.getId());
-                newdownGlassInfo.setWidth(downGlassInfo.getWidth());
-                newdownGlassInfo.setGlassId(downGlassInfo.getGlassId());
-                newdownGlassInfo.setHeight(downGlassInfo.getHeight());
-                newdownGlassInfo.setThickness(downGlassInfo.getThickness());
-                newdownGlassInfo.setFilmsid(downGlassInfo.getFilmsid());
+                BeanUtils.copyProperties(downGlassInfo, newdownGlassInfo);
                 // 璁剧疆椤哄簭瀛楁鍊�
                 newdownGlassInfo.setSequence(sequence);
                 // 鎻掑叆鏁版嵁鍒颁笅鐗囩幓鐠冧俊鎭〃
-
                 downGlassInfoService.insertDownGlassInfo(newdownGlassInfo);
                 log.info("鎻掑叆鏁版嵁鍒颁笅鐗囩幓鐠冧俊鎭〃");
                 DownWorkstation downWorkstation1 = downWorkstationService.selectByFlowCardId(downGlassInfo.getFlowCardId());
                 downWorkstationService.updateracksnumber(downGlassInfo.getFlowCardId(), downWorkstation1.getRacksnumber() + 1);
                 log.info("鏇存柊钀芥灦鏁伴噺");
-
                 sequence++; // 閫掑椤哄簭瀛楁鍊�
 
 
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.xlsx b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.xlsx
new file mode 100644
index 0000000..dd72649
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.xlsx
Binary files differ
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
index ed2c929..09de05d 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
@@ -112,12 +112,20 @@
         downStorageCageDetailsService.CacheOut(1,2);
 
     }
+    @Test
+    public void CacheEmpty1() {
+        log.info("娴嬭瘯鍑虹墖");
+        downStorageCageDetailsServiceImpl.CacheOut1(1,6);
+
+    }
+
+
 
 
     @Test
     public void getTotalGlassDimensionsByWorkstation() {
         log.info("宸ヤ綅鏄剧ず");
-        downWorkstationService.getTotalGlassDimensionsByWorkstation();
+        downWorkstationService.getTotalGlassDimensionsByWorkstation(1,3);
 
     }
 

--
Gitblit v1.8.0