From c0505074f5149b7f0c7fe26822e793eac18319f3 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期一, 13 五月 2024 11:00:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java  |  154 +
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java                          |   12 
 UI-Project/src/views/User/rolelist.vue                                                                                                   |  461 +++++
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java                                |   30 
 UI-Project/src/views/Identify/identify.vue                                                                                               |   32 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java                          |   12 
 UI-Project/src/views/Caching/cachingbefore.vue                                                                                           |   21 
 UI-Project/src/lang/locales/zh-CN.json                                                                                                   |  569 ------
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java                  |   39 
 hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java                                |    4 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java                                  |    8 
 UI-Project/src/views/UnLoadGlass/loadmachinerack.vue                                                                                     |    5 
 UI-Project/src/views/Caching/cachingun.vue                                                                                               |  219 +
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java     |   83 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java            |    3 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7object.java                                             |   61 
 UI-Project/src/views/User/permissions.vue                                                                                                |  461 +++++
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java |   29 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java         |    4 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java                  |   12 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java          |    8 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java                                               |   52 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java              |   10 
 UI-Project/config.js                                                                                                                     |    4 
 UI-Project/src/views/StockBasicData/stockBasicData.vue                                                                                   |  270 +-
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java         |  245 -
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java         |   11 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstation.java                      |    6 
 UI-Project/src/views/Slicecage/slicecage.vue                                                                                             | 1334 +++++++--------
 /dev/null                                                                                                                                |    0 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java                          |    6 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java                                      |  301 +++
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.json                                          |  362 ++++
 UI-Project/src/views/User/user.vue                                                                                                       |   49 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java                  |    2 
 UI-Project/src/router/index.js                                                                                                           |   36 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java     |   34 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java           |   14 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java                 |   20 
 39 files changed, 3,073 insertions(+), 1,910 deletions(-)

diff --git a/UI-Project/config.js b/UI-Project/config.js
index bf51358..2dfd4e0 100644
--- a/UI-Project/config.js
+++ b/UI-Project/config.js
@@ -1,6 +1,6 @@
 export default {
-  serverUrl: "127.0.0.1:88/api",
-  //serverUrl: "localhost:88/api/",
+ serverUrl: "10.153.19.150:88/api",
+
   serverUrl2: "10.153.19.150:88"
   //serverUrl:"res.abeim.cn"
 }
\ No newline at end of file
diff --git a/UI-Project/src/lang/locales/zh-CN.json b/UI-Project/src/lang/locales/zh-CN.json
index cc0ef84..b06a25b 100644
--- a/UI-Project/src/lang/locales/zh-CN.json
+++ b/UI-Project/src/lang/locales/zh-CN.json
@@ -1,521 +1,72 @@
 {
-  "Clear":"娓呴櫎",
-  "ip":"192.168.10.21",
-  "username": "鐢ㄦ埛鍚�",
+  "northglassMESsystem": "鍖楃幓MES绯荤粺",
+  "username": "璐﹀彿",
   "password": "瀵嗙爜",
-  "usernamePlaceholder": "璇疯緭鍏ョ敤鎴峰悕",
+  "usernamePlaceholder": "璇疯緭鍏ヨ处鍙�",
   "passwordPlaceholder": "璇疯緭鍏ュ瘑鐮�",
   "loginButton": "鐧诲綍",
   "registerButton": "娉ㄥ唽",
-  "resetButton": "閲嶇疆",
-  "usernameRequired": "璇疯緭鍏ョ敤鎴峰悕",
-  "usernameLength": "鐢ㄦ埛鍚嶉暱搴﹀湪5-15涓瓧绗︿箣闂�",
+  "registerButton": "娉ㄥ唽鏂扮敤鎴�",
+  "username": "濮撳悕",
+  "usernameRequired": "璇疯緭鍏ュ鍚�",
   "passwordRequired": "璇疯緭鍏ュ瘑鐮�",
-  "passwordLength": "瀵嗙爜闀垮害鍦�5-15涓瓧绗︿箣闂�",
+  "passwordRequired": "纭瀵嗙爜",
+  "passwordRequired": "璇风‘璁ゅ瘑鐮�",
+  "passwordRequired": "纭娉ㄥ唽",
+  "langCancel": "鍙栨秷",
   "loginSuccess": "鐧诲綍鎴愬姛",
   "langBtnCN": "涓枃",
   "langBtnEN": "English",
-  "langHome": "棣栭〉",
-  "langUserManagement": "鐢ㄦ埛绠$悊",
-  "langUserList": "鐢ㄦ埛鍒楄〃",
-  "langUsernamePlaceholder": "璇疯緭鍏ョ敤鎴峰悕",
-  "langEmailPlaceholder": "璇疯緭鍏ラ偖绠�",
-  "langSearch": "鎼滅储",
-  "langAddUser": "娣诲姞鐢ㄦ埛",
-  "langUsername": "鐢ㄦ埛鍚�",
-  "langEmail": "閭",
-  "langCreateTime": "鍒涘缓鏃堕棿",
-  "langDisabled": "鏄惁绂佺敤",
-  "langAction": "鎿嶄綔",
-  "langEdit": "淇敼",
-  "langDelete": "鍒犻櫎",
-  "langAddUserTitle": "娣诲姞鐢ㄦ埛",
-  "langPassword": "瀵嗙爜",
+  "langHome": "娆㈣繋",
+  "langUserManagement": "浣跨敤鍖楃幓MES绯荤粺",
+  "langUserList": "閫�鍑�",
+  "langUsernamePlaceholder": "鎵撴爣鏈哄氨缁姸鎬�",
+  "langEmailPlaceholder": "鍒囧壊鏈哄氨缁姸鎬�",
+  "langSearch": "鎵嬪姩纭",
+  "langAddUser": "閫夋嫨宸ョ▼",
+  "langUsername": "寮�濮嬩笂鐗�",
+  "langEmail": "鏆傚仠",
+  "langCreateTime": "鍋滄浠诲姟",
+  "langDisabled": "宸ョ▼鍙�",
+  "langAction": "鍘熺墖瀹�",
+  "langEdit": "鍘熺墖闀�",
+  "langDelete": "鑶滅郴",
+  "langAddUserTitle": "鏁伴噺",
+  "langPassword": "鍘氬害",
   "langState": "鐘舵��",
-  "langSelect": "璇烽�夋嫨",
-  "langEditUserTitle": "淇敼鐢ㄦ埛",
-  "northglassMESsystem": "鍖楃幓MES绯荤粺",
-  "exit": "閫�鍑�",
-  "changePassword": "淇敼瀵嗙爜",
-  "Old password":"鏃у瘑鐮�",
-  "New password":"鏂板瘑鐮�",
-  "Confirm password":"鎻愪氦瀵嗙爜",
-  "resetPassword": "閲嶇疆瀵嗙爜",
-  "home": "涓婚〉",
-  "role": "瑙掕壊",
-  "langRoleManagement": "瑙掕壊绠$悊",
-  "langRoleList": "瑙掕壊鍒楄〃",
-  "langEnterRoleName": "璇疯緭鍏ヨ鑹插悕绉�",
-  "langAddRole": "娣诲姞瑙掕壊",
-  "langName": "鍚嶇О",
-  "langIsValid": "鏄惁鏈夋晥",
-  "langOperation": "鎿嶄綔",
-  "langPleaseSelect": "璇烽�夋嫨",
-  "langValid": "鏈夋晥",
-  "langInvalid": "鏃犳晥",
-  "langConfirm": "纭畾",
-  "langCancel": "鍙栨秷",
-  "langAddRoleSuccess": "娣诲姞瑙掕壊鎴愬姛",
-  "langEnterName": "璇疯緭鍏ュ悕绉�",
-  "langLengthBetween": "闀垮害鍦�",
-  "langAnd": "鍜�",
-  "langCharacters": "涓瓧绗︿箣闂�",
-  "langEnterState": "璇疯緭鍏ョ姸鎬�",
-  "langUpdateState": "鐘舵�佹洿鏂版垚鍔�",
-  "langEditRole": "缂栬緫瑙掕壊",
-  "langEditRoleSuccess": "缂栬緫瑙掕壊鎴愬姛",
-  "langDeleteRoleConfirm": "纭畾瑕佸垹闄よ瑙掕壊鍚楋紵",
-  "langPrompt": "鎻愮ず",
-  "langDeleteRoleSuccess": "鍒犻櫎瑙掕壊鎴愬姛",
-  "langCancelDelete": "宸插彇娑堝垹闄�",
-  "langRoleName": "瑙掕壊鍚嶇О",
-  "updateSuccessMessage": "鏇存柊鎴愬姛",
-  "paginationTotal": "鍏� {total} 鏉�",
-  "paginationSizes": "姣忛〉鏄剧ず",
-  "paginationPrev": "涓婁竴椤�",
-  "paginationPager": "{currentPage}/{pageCount}",
-  "paginationNext": "涓嬩竴椤�",
-  "paginationJumper": "璺宠嚦",
-  "breadcrumb": {
-    "home": "棣栭〉",
-    "permissionManagement": "鏉冮檺绠$悊",
-    "permissionList": "鏉冮檺鍒楄〃"
-  },
-  "search": {
-    "placeholder": "璇疯緭鍏ュ叧閿瓧"
-  },
-  "button": {
-    "addPermission": "娣诲姞鏉冮檺",
-    "cancel": "鍙栨秷",
-    "confirm": "纭"
-  },
-  "table": {
-    "role": "瑙掕壊",
-    "permissionDescription": "鏉冮檺鎻忚堪",
-    "permissionValue": "鏉冮檺鍊�",
-    "createTime": "鍒涘缓鏃堕棿",
-    "isActive": "鏄惁婵�娲�",
-    "operation": "鎿嶄綔"
-  },
-  "tooltip": {
-    "edit": "淇敼",
-    "delete": "鍒犻櫎"
-  },
-  "dialog": {
-    "addPermission": "娣诲姞鏉冮檺",
-    "editPermission": "缂栬緫鏉冮檺"
-  },
-  "form": {
-    "role": "瑙掕壊",
-    "select": "璇烽�夋嫨",
-    "permission": "鏉冮檺",
-    "isActive": "鏄惁婵�娲�"
-  },
-  "鎿嶄綔": "鎿嶄綔",
-  "鏈夋晥": "鏈夋晥",
-  "鏃犳晥": "鏃犳晥",
-  "璇疯緭鍏ュ悕绉�": "璇疯緭鍏ュ悕绉�",
-  "闀垮害鍦� 2 鍒� 15 涓瓧绗�": "闀垮害鍦� 2 鍒� 15 涓瓧绗�",
-  "璇疯緭鍏ョ姸鎬�": "璇疯緭鍏ョ姸鎬�",
-  "娣诲姞瑙掕壊": "娣诲姞瑙掕壊",
-  "淇敼瑙掕壊": "淇敼瑙掕壊",
-  "鍒犻櫎瑙掕壊": "鍒犻櫎瑙掕壊",
-  "姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ヨ鑹�, 鏄惁缁х画?": "姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ヨ鑹�, 鏄惁缁х画?",
-  "鎻愮ず": "鎻愮ず",
-  "纭畾": "纭畾",
-  "鍙栨秷": "鍙栨秷",
-  "娣诲姞瑙掕壊鎴愬姛": "娣诲姞瑙掕壊鎴愬姛",
-  "鏇存柊鐘舵�佹垚鍔�": "鏇存柊鐘舵�佹垚鍔�",
-  "淇敼瑙掕壊鎴愬姛": "淇敼瑙掕壊鎴愬姛",
-  "鍒犻櫎瑙掕壊鎴愬姛": "鍒犻櫎瑙掕壊鎴愬姛",
-  "translation": {
-    "D01 VFD error": "D01 VFD 閿欒",
-    "D02 VFD error": "D02 VFD 閿欒",
-    "D03 VFD error": "D03 VFD 閿欒",
-    "D04 VFD error": "D04 VFD 閿欒",
-    "D05 VFD error": "D05 VFD 閿欒",
-    "D06 VFD error": "D06 VFD 閿欒",
-    "B01 VFD error": "B01 VFD 閿欒",
-    "B02 VFD error": "B02 VFD 閿欒",
-    "A01 VFD error": "A01 VFD 閿欒",
-    "A02 VFD error": "A02 VFD 閿欒",
-    "A01 servo turn error": "A01 servo turn 閿欒",
-    "A02 servo turn error": "A02 servo turn 閿欒",
-    "A01 servo travel error": "A01 servo travel 閿欒",
-    "A02 servo travel error": "A02 servo travel 閿欒",
-    "B01 servo travel error": "B01 servo travel 閿欒",
-    "B02 servo travel error": "B02 servo travel 閿欒",
-    "D01 DEC error": "D01 DEC 閿欒",
-    "D01 pos error": "D01 pos 閿欒",
-    "D02 DEC error": "D02 DEC 閿欒",
-    "D02 pos error": "D02 pos 閿欒",
-    "D03 DEC error": "D03 DEC 閿欒",
-    "D03 pos error": "D03 pos 閿欒",
-    "D04 DEC error": "D04 DEC 閿欒",
-    "D04 pos error": "D04 pos 閿欒",
-    "D05 DEC error": "D05 DEC 閿欒",
-    "D05 pos error": "D05 pos 閿欒",
-    "D06 DEC error": "D06 DEC 閿欒",
-    "D06 pos error": "D06 pos 閿欒",
-    "A01 DEC error": "A01 DEC 閿欒",
-    "A01 pos error": "A01 pos 閿欒",
-    "A02 DEC error": "A02 DEC 閿欒",
-    "A02 pos error": "A02 pos 閿欒",
-    "B01 IN DEC error": "B01 IN DEC 閿欒",
-    "B01 IN pos error": "B01 IN pos 閿欒",
-    "B01 OUT DEC error": "B01 OUT DEC 閿欒",
-    "B01 OUT pos error": "B01 OUT pos 閿欒",
-    "B02 IN DEC error": "B02 IN DEC 閿欒",
-    "B02 IN pos error": "B02 IN pos 閿欒",
-    "B02 OUT DEC error": "B02 OUT DEC 閿欒",
-    "B02 OUT pos error": "B02 OUT pos 閿欒"
-  },
-  "Electrical": "鐢ㄦ埛绠$悊",
-  "Parameter": "鏉冮檺绠$悊",
-  "Action": "涓婄墖鏈�",
-  "Sign": "鎺扮墖/璇嗗埆",
-  "State": "鐘舵��",
-  "Alarm": "鎶ヨ淇℃伅",
-  "Distribute": "涓嬪彂",
-  "Search": "鎼滅储",
-  "dvstate": {
-    "automatic": "鑷姩",
-    "manual": "鎵嬪姩"
-  },
-  "langUsernameLabel": "鐢ㄦ埛鍚�",
-  "langPasswordLabel": "瀵嗙爜",
-  "langPasswordPlaceholder": "璇疯緭鍏ュ瘑鐮�",
-  "langConfirmPasswordLabel": "纭瀵嗙爜",
-  "langConfirmPasswordPlaceholder": "璇风‘璁ゅ瘑鐮�",
-  "langEmailLabel": "閭",
-  "langQQLabel": "QQ",
-  "langQQPlaceholder": "璇疯緭鍏Q鍙风爜",
-  "langPhoneNumberLabel": "鎵嬫満鍙风爜",
-  "langPhoneNumberPlaceholder": "璇疯緭鍏ユ墜鏈哄彿鐮�",
-  "langUsernameRequiredMessage": "璇疯緭鍏ョ敤鎴峰悕",
-  "langUsernameLengthMessage": "鐢ㄦ埛鍚嶉暱搴﹀湪5鍒�15涓瓧绗︿箣闂�",
-  "langPasswordRequiredMessage": "璇疯緭鍏ュ瘑鐮�",
-  "langPasswordLengthMessage": "瀵嗙爜闀垮害鍦�5鍒�15涓瓧绗︿箣闂�",
-  "langEmailRequiredMessage": "璇疯緭鍏ラ偖绠�",
-  "langEmailFormatMessage": "閭鏍煎紡涓嶆纭�",
-  "langRegisterButton": "娉ㄥ唽",
-  "langResetButton": "閲嶇疆",
-  "langCancelButton": "鍙栨秷",
-  "langRegisterSuccessMessage": "娉ㄥ唽鎴愬姛",
-  "娣诲姞鐢ㄦ埛鎴愬姛": "娣诲姞鐢ㄦ埛鎴愬姛",
-  "confirmResetPassword": "纭閲嶇疆瀵嗙爜涓洪粯璁ゅ�煎悧锛�",
-  "confirm": "纭畾",
-  "cancel": "鍙栨秷",
-  "passwordResetSuccess": "瀵嗙爜宸查噸缃负榛樿鍊�",
-  "confirmDeleteCategory": "姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ュ垎绫�, 鏄惁缁х画?",
-  "prompt": "鎻愮ず",
-  "userDeleteSuccess": "鍒犻櫎鐢ㄦ埛鎴愬姛",
-  "deleteCanceled": "宸插彇娑堝垹闄�",
-  "addUserSuccess": "娣诲姞鐢ㄦ埛鎴愬姛",
-  "editUserSuccess": "淇敼鐢ㄦ埛鎴愬姛",
-  "effective": "鏈夋晥",
-  "invalid": "鏃犳晥",
-  "addSuccessMessage": "娣诲姞鎴愬姛",
-  "deleteConfirmMessage": "纭畾瑕佸垹闄よ鏉冮檺鍚楋紵",
-  "confirmButtonText": "纭畾",
-  "cancelButtonText": "鍙栨秷",
-  "deleteSuccessMessage": "鍒犻櫎鎴愬姛",
-  "deleteCancelledMessage": "宸插彇娑堝垹闄ゆ搷浣�",
-  "Enter the glass barcode": "杈撳叆鐜荤拑id",
-  "Infeed Barcodeid": "鎵嬪姩涓婄墖",
-  "Enter the order number": "杈撳叆璁㈠崟鍙�",
-  "Exit the glass by order number": "鎸夎鍗曞嚭鐗�",
-  "Please confirm the glass information": "璇风‘璁ょ幓鐠冧俊鎭�",
-  "Please confirm the Ordering Information": "璇风‘璁よ鍗曚俊鎭�",
-  "Alarm Information": "鎶ヨ淇℃伅",
-  "Cage Details": "鐞嗙墖绗艰鎯�",
-  "order": "璁㈠崟",
-  "Length": "闀�",
-  "Width": "瀹�",
-  "Operate": "鎿嶄綔",
-  "Terminate Task":"缁撴潫浠诲姟",
-  "end task": "瀹屾垚浠诲姟",
-  "Number": "鏁伴噺",
-  "Outfeed glass barcode": "鍑虹墖鐜荤拑id",
-  "Infeed glass barcode": "杩涚墖鐜荤拑id",
-  "Order No": "璁㈠崟缂栧彿",
-  "List No": "鍒楄〃缂栧彿",
-  "Box No": "绠卞瓙缂栧彿",
-  "Dim": "灏哄",
-  "id": "id",
-  "content": "鍐呭",
-  "timeon": "鎶ヨ鏃堕棿",
-  "endTime": "缁撴潫鏃堕棿",
-  "Cage No": "绗煎瓙",
-  "The Side": "鍐呭渚�",
-  "Slot No": "鏍煎瓙",
-  "Barcode": "鐜荤拑id",
-  "Delete": "鍒犻櫎",
-  "Out": "鍑虹墖",
-  "Operation successful": "鎿嶄綔鎴愬姛",
-  "Operation canceled": "鎿嶄綔鍙栨秷",
-  "There is no such order": "娌℃湁姝よ鍗曠殑鐜荤拑",
-  "There are currently tasks": "褰撳墠鏈変换鍔�",
-  "There is no such glass": "娌℃湁姝ょ幓鐠�",
-  "There is no such slot": "娌℃湁绌洪棽鏍煎瓙",
-  "No delete allowed": "涓嶈兘鍒犻櫎",
-  "No out allowed": "涓嶈兘鍑虹墖",
-  "Are you sure to perform this operation ?": "纭畾鎵ц姝ゆ搷浣�?",
-  "prompt": "鎻愮ず",
-  "Yes": "鏄�",
-  "No": "鍚�",
-  "today": "浠婂ぉ",
-  "yesterday": "鏄ㄥぉ",
-  "week": "涓�鍛ㄥ墠",
-  "shijian": "鏃ユ湡",
-  "Pick a day": "閫夋嫨鏃ユ湡",
-  "alarmid": "id",
-  "alacontent": "鎶ヨ鍐呭",
-  "time-on": "寮�濮嬫椂闂�",
-  "End-Time": "缁撴潫鏃堕棿",
-  "Please enter the password": "璇疯緭鍏ュ瘑鐮�",
-  "Password error": "瀵嗙爜閿欒",
-  "DataBase Connection failed": "鏁版嵁搴撹繛鎺ュけ璐�",
-  "Distribute parameters": "涓嬪彂鍙傛暟",
-  "The glass size is not within the range": "鐜荤拑灏哄涓嶅湪鑼冨洿鍐�",
-  "Add": "娣诲姞",
-  "Enable": "鍚敤",
-  "Disable": "绂佺敤",
-  "Usage": "浣跨敤鐜�",
-  "Space (Pieces)": "绌洪棿(鐗囨暟)",
-  "This glass is already in the cage": "绗煎瓙閲屽凡鏈夋鐜荤拑",
-  "Enter the Order No": "璇疯緭鍏ヨ鍗昳d",
-  "OrderInfo": "璁㈠崟淇℃伅",
-  "Query": "鏌ヨ",
-  "permission update": "鏉冮檺缂栬緫",
-  "query was successful": "鏌ヨ鎴愬姛",
-  "Scan Code Point": "鎵爜浣�",
-  "Upper film position": "涓婄墖浣�",
-  "Glass Information": "鐜荤拑淇℃伅",
-  "current Information": "褰撳墠淇℃伅",
-  "Modify Information": "淇敼淇℃伅",
-  "Clear Current": "娓呴櫎褰撳墠",
-  "Confirm": "纭",
-  "The glass ID already exists in the loading queue": "涓婄墖闃熷垪宸插瓨鍦ㄦ鐜荤拑id",
-  "This glass ID already exists in the sorting cage": "鐞嗙墖绗煎唴宸插瓨鍦ㄦ鐜荤拑id",
-  "Outing Queue":"鍑虹墖闃熷垪",
-  "Enter the Aluminum Frame No":"璇疯緭鍏ラ摑妗唅d",
-  "Frame No":"閾濇id",
-  "Glass information corresponding to aluminum frame":"閾濇瀵瑰簲鐨勭幓鐠冧俊鎭�",
-  "In the cage":"鍦ㄧ鍐�",
-  "Flipped":"缈昏浆",
-  "In the queue":"鍦ㄩ槦鍒�",
-  "Enter the Frame No":"璇疯緭鍏ラ摑妗唅d",
-  "Manually Infeed Glass":"鎵嬪姩杩涚墖",
-  "Normal":"姝e父",
-  "Entering":"姝e湪杩�",
-  "Outing":"姝e湪鍑�",
-  "Suspend":"鏆傚仠",
-  "Stop":"鍋滄",
-  "Start":"寮�濮�",
-  "Sequence":"椤哄簭",
-  "Position":"浣嶇疆",
-  "Top":"缃《",
-  "Up":"涓婄Щ",
-  "Down":"涓嬬Щ",
-  "You do not have this permission":"You do not have this permission",
-  "Unable to find the placement method of the aluminum frame":"鏌ヨ涓嶅埌閾濇鎽嗘斁鏂瑰紡",
-  "Unable to find whether the aluminum frame is flipped or not":"鏌ヨ涓嶅埌閾濇鏄惁缈昏浆",
-  "This glass is already in the Queue":"姝ょ幓鐠冨凡鍦ㄥ嚭鐗囬槦鍒椾腑",
-  "Complete":"瀹屾垚",
-  "Not Allow":"涓嶅厑璁�",
-  "Allow":"鍏佽",
-  "Completed":"宸插畬鎴�",
-  "Waiting":"绛夊緟涓�",
-  "Deleted":"宸插垹闄�",
-  "Glass State":"鐜荤拑鐘舵��",
-  "Absent":"涓嶅瓨鍦�",
-  "Approximately resettable time":"鍙浣嶅ぇ姒傛椂闂�",
-  "EXTERIQR OUT AND BYPASS TO THE LEFT":"EXTERIQR OUT AND BYPASS TO THE LEFT",
-  "EXTERIQR OUT AND BYPASS TO THE RIGHT":"EXTERIQR OUT AND BYPASS TO THE RIGHT",
-  "Complete Task":"瀹屾垚浠诲姟",
-  "Outed":"宸插嚭绗�",
-  "Queue State":"闃熷垪鐘舵��",
-  "Sorting State":"鎺掑簭鐘舵��",
-  "Confirm State":"纭鐘舵��",
-  "Next":"涓嬩竴涓�",
-  "Current Frame":"褰撳墠閾濇",
-  "Outside":"澶栦晶",
-  "Inside":"鍐呬晶",
-  "Cancel":"鍙栨秷",
-  "Are you sure to clear this barcode ?":"纭畾娓呴櫎姝ょ幓鐠僫d鍚� ?",
-  "Terminate Feeding":"缁堟杩涚墖",
-  "Terminate Outing":"缁堟鍑虹墖",
-  "SoftEmergencyStop":"杞�ュ仠",
-  "Unable to clear glass ID in automatic mode":"鏃犳硶鍦ㄨ嚜鍔ㄦā寮忎笅娓呴櫎鐜荤拑ID",
-  "Are you sure you want an emergency stop ?":"纭畾瑕佹�ュ仠鍚�?",
-  "Current State":"褰撳墠鐘舵��",
-  "Automatic":"鑷姩",
-  "Hand Movement":"鎵嬪姩",
-  "Please enter the correct glassID":"璇疯緭鍏ユ纭殑鐜荤拑ID",
-  "Switch":"鍒囨崲",
-  "This frame has glass that is currently outing":"姝ら摑妗嗘湁姝e湪鍑虹墖鐨勭幓鐠�",
-  "langparameter": {
-    "conveyor Velocity(Auto FAST)": "D01-D06 鐨甫杈撻�佽嚜鍔ㄥ揩閫�",
-    "conveyor Velocity(Auto SLOW)": "D01-D06 鐨甫杈撻�佽嚜鍔ㄦ參閫�",
-    "conveyor Velocity(Manual)": "D01-D06 鐨甫杈撻�佹墜鍔ㄩ�熷害",
-    "A01 A02 TURN JOG Velocity": "A01 A02 缈昏浆鐐瑰姩閫熷害",
-    "A01 A02 TRAVEL JOG Velocity": "A01 A02 琛岃蛋鐐瑰姩閫熷害",
-    "B01 B02 TRAVEL JOG Velocity": "B01 B02 琛岃蛋鐐瑰姩閫熷害",
-    "A01 A02 TURN POS Velocity AUTO": "A01 A02 缈昏浆鑷姩瀹氫綅閫熷害",
-    "A01 A02 TURN POS Velocity manual": "A01 A02 缈昏浆鎵嬪姩瀹氫綅閫熷害",
-    "A01 A02 TRAVEL POS Velocity AUTO": "A01 A02 琛岃蛋鑷姩瀹氫綅閫熷害",
-    "A01 A02 TRAVEL POS Velocity manual": "A01 A02 琛岃蛋鎵嬪姩瀹氫綅閫熷害",
-    "B01 B02 TRAVEL POS Velocity AUTO": "B01 B02 琛岃蛋鑷姩瀹氫綅閫熷害",
-    "B01 B02 TRAVEL POS Velocity manual": "B01 B02 琛岃蛋鎵嬪姩瀹氫綅閫熷害"
-  },
-  "langActions": {
-    "D01 VFD conveyor": "D01 杈撻�佸彉棰�",
-    "D02 VFD conveyor": "D02 杈撻�佸彉棰�",
-    "D03 VFD conveyor": "D03 杈撻�佸彉棰�",
-    "D04 VFD conveyor": "D04 杈撻�佸彉棰�",
-    "D05 VFD conveyor": "D05 杈撻�佸彉棰�",
-    "D06 VFD conveyor": "D06 杈撻�佸彉棰�",
-    "A01 VFD conveyor": "A01 杈撻�佸彉棰�",
-    "A02 VFD conveyor": "A02 杈撻�佸彉棰�",
-    "B01 VFD conveyor": "B01 杈撻�佸彉棰�",
-    "B02 VFD conveyor": "B02 杈撻�佸彉棰�",
-    "A01 SERVE TURN JOG+": "A01 缈昏浆浼烘湇鐐瑰姩",
-    "A02 SERVE TURN JOG-": "A02 缈昏浆浼烘湇鐐瑰姩",
-    "A01 SERVE TRAVEL JOG+": "A01 琛岃蛋浼烘湇鐐瑰姩",
-    "A02 SERVE TRAVEL JOG-": "A02 琛岃蛋浼烘湇鐐瑰姩",
-    "B01 SERVE TRAVEL JOG+": "B01 琛岃蛋浼烘湇鐐瑰姩",
-    "B02 SERVE TRAVEL JOG-": "B02 琛岃蛋浼烘湇鐐瑰姩",
-    "A01 SERVE TURN POS": "A01 缈昏浆浼烘湇瀹氫綅",
-    "A02 SERVE TURN POS": "A02 缈昏浆浼烘湇瀹氫綅",
-    "A01 SERVE TRAVEL POS": "A01 琛岃蛋浼烘湇瀹氫綅",
-    "A02 SERVE TRAVEL POS": "A02 琛岃蛋浼烘湇瀹氫綅",
-    "B01 SERVE TRAVEL POS": "B01 琛岃蛋浼烘湇瀹氫綅",
-    "B02 SERVE TRAVEL POS": "B02 琛岃蛋浼烘湇瀹氫綅",
-    "B01 YV TURN": "B01 鎶捣鐢电闃�",
-    "B01 YV UP DOWN": "B01 涓婂崌涓嬮檷鐢电闃�",
-    "B02 YV TURN": "B02 鎶捣鐢电闃�",
-    "B02 YV UP DOWN": "B02 涓婂崌涓嬮檷鐢电闃�"
-  },
-  "Signlang": {
-    "D01.SR dec": "D01.鍑忛�熶紶鎰熷櫒",
-    "D01.SR in pos": "D01.鍒颁綅浼犳劅鍣�",
-    "D02.SR dec": "D02.鍑忛�熶紶鎰熷櫒",
-    "D02.SR in pos": "D02.鍒颁綅浼犳劅鍣�",
-    "D03.SR into": "D03.杩涚墖浼犳劅鍣�",
-    "D03.SR dec": "D03.鍑忛�熶紶鎰熷櫒",
-    "D03.SR in pos": "D03.鍒颁綅浼犳劅鍣�",
-    "D04.SR dec": "D04.鍑忛�熶紶鎰熷櫒",
-    "D04.SR in pos": "D04.鍒颁綅浼犳劅鍣�",
-    "D05.SR dec": "D05.鍑忛�熶紶鎰熷櫒",
-    "D05.SR in pos": "D05.鍒颁綅浼犳劅鍣�",
-    "D06.SR dec": "D06.鍑忛�熶紶鎰熷櫒",
-    "D06.SR in pos": "D06.鍒颁綅浼犳劅鍣�",
-    "B01.SR in dec": "B01.杩涚墖鍑忛�熶紶鎰熷櫒",
-    "B01.SR in in pos": "B01.杩涚墖鍒颁綅浼犳劅鍣�",
-    "B01.SR out dec": "B01.鍑虹墖鍑忛�熶紶鎰熷櫒",
-    "B01.SR out in pos": "B01.鍑虹墖鍒颁綅浼犳劅鍣�",
-    "B01.SR turn on": "B01.缈昏浆涓婂埌浣嶄紶鎰熷櫒",
-    "B01.SR turn off": "B01.缈昏浆涓嬪埌浣嶄紶鎰熷櫒",
-    "B01.SR up": "B01.涓婂崌鍒颁綅浼犳劅鍣�",
-    "B01.SR down": "B01.涓嬮檷鍒颁綅浼犳劅鍣�",
-    "B02.SR out dec": "B02.鍑虹墖鍑忛�熶紶鎰熷櫒",
-    "B02.SR out in pos": "B02.鍑虹墖鍒颁綅浼犳劅鍣�",
-    "B02.SR in dec": "B02.杩涚墖鍑忛�熶紶鎰熷櫒",
-    "B02.SR in in pos": "B02.杩涚墖鍒颁綅浼犳劅鍣�",
-    "B02.SR turn on": "B02.缈昏浆涓婂埌浣嶄紶鎰熷櫒",
-    "B02.SR turn off": "B02.缈昏浆涓嬪埌浣嶄紶鎰熷櫒",
-    "B02.SR up": "B02.涓婂崌鍒颁綅浼犳劅鍣�",
-    "B02.SR down": "B02.涓嬮檷鍒颁綅浼犳劅鍣�",
-    "B01.SR in safety": "B01.杩涚墖瀹夊叏浼犳劅鍣�",
-    "B01.SR out safety": "B01.鍑虹墖瀹夊叏浼犳劅鍣�",
-    "B02.SR in safety": "B02.杩涚墖瀹夊叏浼犳劅鍣�",
-    "SB.start(+)": "SB.鍚姩锛�+锛夋寜閽�",
-    "SB.stop(1)": "SB.鍋滄锛�-锛夋寜閽�",
-    "SB.reset": "SB.澶嶄綅鎸夐挳",
-    "SB.auto/manul": "SB.鎵�/鑷垏鎹㈡寜閽�",
-    "D01.SB.confirm": "鐜荤拑淇℃伅纭",
-    "SB.emg": "SB.鎬ュ仠鎸夐挳",
-    "D01.SB.start": "D01.鍚姩",
-    "D06.SB.start": "D06.鍚姩",
-    "B02.SR out safety ": "B02.鍑虹墖瀹夊叏浼犳劅鍣�",
-    "SafetyDoor.requset": "瀹夊叏闂ㄨ姹傝繘鍏�",
-    "SafetyDoor.confirm": "瀹夊叏闂ㄧ‘璁�",
-    "SafetyDoor.reset": "瀹夊叏闂ㄥ浣�",
-    "A01.SR left dec":"A01宸﹂敭閫�",
-    "A01.SR left in pos":"A01宸﹀埌浣�",
-    "A01.SR left safety":"A01宸﹀畨鍏�",
-    "A01.SR right dec":"A01鍙抽敭閫�",
-    "A01.SR right in pos":"A01鍙冲埌浣�",
-    "A01.SR right safety":"A01鍙冲畨鍏�",
-    "A01.SR turn home":"A01缈昏浆鍘熺偣",
-    "A01.SR turn up":"A01缈昏浆涓婃瀬闄�",
-    "A01.SR turn down":"A01缈昏浆涓嬫瀬闄�",
-    "A01.SR travel home":"A01琛岃蛋鍘熺偣",
-    "A01.SR travel left dec":"A01琛岃蛋宸﹀噺閫�",
-    "A01.SR travel left limit":"A01琛岃蛋宸︽瀬闄�",
-    "A01.SR travel right dec":"A01琛岃蛋鍙冲噺閫�",
-    "A01.SR travel right limit":"A01琛岃蛋鍙虫瀬闄�",
-    "A02.SR left dec":"A02宸﹂敭閫�",
-    "A02.SR left in pos":"A02宸﹀埌浣�",
-    "A02.SR left safety":"A02宸﹀畨鍏�",
-    "A02.SR right dec":"A02鍙抽敭閫�",
-    "A02.SR right in pos":"A02鍙冲埌浣�",
-    "A02.SR right safety":"A02鍙冲畨鍏�",
-    "A02.SR turn home":"A02缈昏浆鍘熺偣",
-    "A02.SR turn up":"A02缈昏浆涓婃瀬闄�",
-    "A02.SR turn down":"A02缈昏浆涓嬫瀬闄�",
-    "A02.SR travel home":"A02琛岃蛋鍘熺偣",
-    "A02.SR travel left dec":"A02琛岃蛋宸﹀噺閫�",
-    "A02.SR travel left limit":"A02琛岃蛋宸︽瀬闄�",
-    "A02.SR travel right dec":"A02琛岃蛋鍙冲噺閫�",
-    "A02.SR travel right limit":"A02琛岃蛋鍙虫瀬闄�",
-    "B01.SR origin":"B01.鍘熺偣",
-    "B01.SR left limit":"B01.宸︽瀬闄�",
-    "B01.SR right limit":"B01.鍙虫瀬闄�",
-    "B02.SR origin":"B02.鍘熺偣",
-    "B02.SR left limit":"B02.宸︽瀬闄�",
-    "B02.SR right limit":"B02.鍙虫瀬闄�",
-    "LED.red": "涓夎壊鐏孩",
-    "LED.green": "涓夎壊鐏豢",
-    "LED.yellow": "涓夎壊鐏粍",
-    "D01.LED.green": "D01.缁跨伅",
-    "D06.LED.green": "D06.缁跨伅",
-    "B01.YV.turn": "B01.鐢电闃�缈昏浆",
-    "B01.YV.up down": "B01.鐢电闃�涓婂崌涓嬮檷",
-    "B01.YV.gassing": "B01.鐢电闃�鍚规皵",
-    "B02.YV.turn": "B02.鐢电闃�缈昏浆",
-    "B02.YV.up down": "B02.鐢电闃�涓婂崌涓嬮檷",
-    "B02.YV.gassing": "B02.鐢电闃�鍚规皵",
-    "SafetyDoor.Led": "瀹夊叏闂ㄧ姸鎬佺伅",
-    "SafetyDoor.open": "瀹夊叏闂ㄦ墦寮�",
-    "D01 SB.confirm":"鐜荤拑淇℃伅纭鎸囩ず鐏�",
-    "A01 oilPump":"A01娉ㄦ补娉�",
-    "A01 motorCtr":"A01鐢垫満鎺у埗",
-    "A02 oilPump":"A02娉ㄦ补娉�",
-    "A02 motorCtr":"A02鐢垫満鎺у埗",
-    "space":"澶囩敤"
-
-  },
-  "Statelang": {
-    "D01.State": "D01.鐘舵��",
-    "D02.State": "D02.鐘舵��",
-    "B01.State": "B01.鐘舵��",
-    "B02.State": "B02.鐘舵��",
-    "A01.State": "A01.鐘舵��",
-    "A02.State": "A02.鐘舵��",
-    "D03.State": "D03.鐘舵��",
-    "D04.State": "D04.鐘舵��",
-    "D05.State": "D05.鐘舵��",
-    "D06.State": "D06.鐘舵��"
-  },
-  "Automatic State":"鑷姩鐘舵��",
-  "ManualJog":"寮�鍏虫帶鍒�",
-  "ManualonePosition":"鎵嬪姩瀹氫綅",
-  "Servomanualone":"鍗婅嚜鍔�",
-  "Address parameter settings":"鍦板潃鍙傛暟璁剧疆",
-  "Speed parameter settings":"閫熷害鍙傛暟璁剧疆",
-  "InteractionState":"浜や簰鐘舵��",
-  "Set":"璁惧畾"
+  "langSelect": "瀹�",
+  "langEditUserTitle": "闀�",
+  "exit": "鎿嶄綔",
+  "changePassword": "宸ョ▼",
+  "Old password":"璇烽�夋嫨宸ョ▼",
+  "New password":"娣诲姞鍘熺墖",
+  "langConfirm": "纭",
+  "langUsernameLabel": "娣诲姞",
+  "langPasswordLabel": "鍒犻櫎",
+  "langPasswordLabel": "鏄惁鍒犻櫎璇ユ潯淇℃伅锛�",
+  "langPasswordLabel": "鏄惁寮�濮嬩笂鐗囷紵",
+  "langPasswordLabel": "鏄惁鏆傚仠锛�",
+  "langPasswordLabel": "鏄惁鍋滄浠诲姟锛�",
+  "langPasswordLabel": "鏍呮牸鍙�",
+  "langPasswordLabel": "鐜荤拑缂栧彿",
+  "langPasswordLabel": "楂�",
+  "langPasswordLabel": "鍚敤鐘舵��",
+  "langPasswordLabel": "鍚敤",
+  "langPasswordLabel": "鏈惎鐢�",
+  "langPasswordLabel": "鎶ョ己",
+  "langPasswordLabel": "杩涚倝涓�",
+  "langPasswordLabel": "杩涚倝鍓�",
+  "langPasswordLabel": "宸插嚭鐐夌幓鐠�",
+  "langPasswordLabel": "鐗堝浘缂栧彿",
+  "langPasswordLabel": "涓嬬墖浣�",
+  "langPasswordLabel": "鏋跺彿",
+  "langPasswordLabel": "娴佺▼鍗″彿",
+  "langPasswordLabel": "鎬绘暟閲�",
+  "langPasswordLabel": "宸茶惤鏋舵暟閲�",
+  "langPasswordLabel": "鐘舵��",
+  "langPasswordLabel": "璁惧鍙�",
+  "langPasswordLabel": "鍚敤鐘舵��",
+  "langPasswordLabel": "缁戝畾鏋跺瓙",
+  "langPasswordLabel": "娓呯┖",
 
 }
\ No newline at end of file
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
index ceeccbb..c0773c2 100644
--- a/UI-Project/src/router/index.js
+++ b/UI-Project/src/router/index.js
@@ -1,8 +1,8 @@
 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'
+// 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: createWebHashHistory(),
@@ -212,21 +212,21 @@
           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: '/sys/users',
+            //   name: 'SysUser',
+            //   component: User
+            // },
+            // {
+            //   path: '/sys/roles',
+            //   name: 'SysRole',
+            //   component: Role
+            // },
+            // {
+            //   path: '/sys/menus',
+            //   name: 'SysMenu',
+            //   component: Menu
+            // },
           ]
         },
         {
diff --git a/UI-Project/src/views/Caching/cachingbefore.vue b/UI-Project/src/views/Caching/cachingbefore.vue
index 5cf4a38..5d9d157 100644
--- a/UI-Project/src/views/Caching/cachingbefore.vue
+++ b/UI-Project/src/views/Caching/cachingbefore.vue
@@ -55,7 +55,7 @@
 const open = async(row) => {  
   try {  
     const confirmResult = await ElMessageBox.confirm(  
-      '鏄惁鍒犻櫎璇ユ潯淇℃伅?',  
+      '鏄惁鎶ョ己璇ユ潯淇℃伅?',  
       '鎻愮ず',  
       {  
         confirmButtonText: '鏄�',  
@@ -66,15 +66,15 @@
     if (confirmResult === 'confirm') {  
       // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛  
       const deleteResponse = await request.post("/cacheGlass/edgStorageCage/edgStorageCageGlass", {
-        id:0,
-        slot: row.slot
+        id: row.id,
+        esdId: row.esdId
     })
       if (response.code == 200) {  
         // 鍒犻櫎鎴愬姛锛屾偍鍙互鏍规嵁闇�瑕佸鐞嗘垚鍔熺殑鎯呭喌  
         alert('鍒犻櫎鎴愬姛锛�');  
       } else {  
         // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛  
-        alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);  
+        alert('鍒犻櫎澶辫触锛�' + deleteResponse.message); 
       }  
     }  
   } catch (error) {  
@@ -171,9 +171,6 @@
   ]
  
 })
-
-
-
 </script>
 
 <template>
@@ -206,16 +203,6 @@
         </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;">
diff --git a/UI-Project/src/views/Caching/cachingun.vue b/UI-Project/src/views/Caching/cachingun.vue
index 7ed5e6a..5a82915 100644
--- a/UI-Project/src/views/Caching/cachingun.vue
+++ b/UI-Project/src/views/Caching/cachingun.vue
@@ -3,6 +3,7 @@
 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";
@@ -11,94 +12,126 @@
 //  import LanguageMixin from './lang/LanguageMixin'
 
 const tableData = ref([])
+const slot = 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) => {
+request.get("/unLoadGlass/downStorage/selectStorageCage").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 dialogForm = () => {
-  ElMessageBox.confirm(
-    '鏄惁鎶ョ己?',
-    '鎻愮ず',
-    {
-      confirmButtonText: '鏄�',
-      cancelButtonText: '鍙栨秷',
-      type: 'warning',
-    }
-  )
-  .then(() => {
-    // this.boxa = true
-    // this.box = false
-      
+//   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
     })
-}
-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
-    }
-  }
-}
+      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",//琛ㄦ牸鍔犺竟妗�
@@ -150,19 +183,39 @@
         <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="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 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>
-              <el-button size="mini" type="text" plain  @click="dialogForm">鎶ョ己</el-button>
+            <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;">
diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue
index 30fe865..5e2bc03 100644
--- a/UI-Project/src/views/Identify/identify.vue
+++ b/UI-Project/src/views/Identify/identify.vue
@@ -1,5 +1,6 @@
 <template>  
-<!-- <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading"> -->
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
+      <el-scrollbar height="700px">
   <div id="app" style="margin-top: 20px;">  
     <div  
       :style="{ width: `${olWidth}px`, height: `${olHeight}px`,position: 'relative' }"  
@@ -8,29 +9,51 @@
       v-for="(rect, index) in adjustedRects"  
       :key="index"  
       class="rect"  
+      @click="handleBind"
       :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 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> 
+  <!-- 鐐瑰嚮寮瑰嚭 -->
+  <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;">
+    <!-- <template #footer> -->
+      <!-- <div id="dialog-footer"> -->
+        <el-button type="warning" plain :icon="Delete" @click="handle"  style="width: 120px;margin-left: 10px;">
+          鐮存崯
+        </el-button>
+        <el-button  type="danger" plain @click="blind = false" style="width: 120px;margin-top: 10px;">
+          <el-icon class="el-icon--right"><Upload /></el-icon>
+          浜哄伐鎷胯蛋</el-button>
+      <!-- </div> -->
+    <!-- </template> -->
+  </el-dialog> 
    </div>
   </div>  
+  </el-scrollbar>
+  </el-card>
 </template>  
   
-<script setup>  
+<script setup lang="ts">  
+import { Delete, Upload } from '@element-plus/icons-vue'
 import { ref, onMounted } from 'vue';  
 import request from "@/utils/request"
+const blind = ref(false)
 const olWidth = ref(); 
 const olHeight = ref();
 const process_id = ref(); // 鐢ㄤ簬瀛樺偍process_id鐨勫搷搴斿紡寮曠敤 
 // const rects = ref([]); // 鐢ㄤ簬瀛樺偍鐭╁舰鏁版嵁鐨勫搷搴斿紡寮曠敤  
 const adjustedRects = ref([]);
+const handleBind = (row) => {
+ 
+  blind.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+};
 onMounted(async () => {  
   try {  
     const response = await request.post('/cacheGlass/taskCache/currentCutTerritory'); // 鏇挎崲涓轰綘鐨凙PI绔偣  
@@ -103,4 +126,5 @@
   width: 240px; /* 鐩寸嚎鐨勯暱搴︼紝鏍规嵁闇�瑕佽皟鏁� */  
   background-color: #911005; /* 鐩寸嚎鐨勯鑹� */  
 }  
+
 </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 2538c4e..22d0adc 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -1,27 +1,37 @@
 <script lang="ts" setup>
-import {reactive, ref} from 'vue'
-import {useRouter} from 'vue-router'
-import {ElMessage, ElMessageBox} from 'element-plus'
-
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
 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(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 carposition1 = ref(60);
+const carposition2 = ref(220);
+const carposition3 = ref(60);
+const carposition4 = ref(260);
+const timers1 =ref(true);
+const timers2 =ref(true);
+const timers3 =ref(true);
+const timers4 =ref(true);
+const cellshow=ref(false);
+const cellshow5=ref(false);
+const c1=ref(false);
+const c2=ref(false);
+const cellshow1=ref(true);
+const cellshow2=ref(true);
+const cellshow3=ref(true);
+const cellshow4=ref(true);
+const million=ref(0);
+const million1=ref(0);
+const million3=ref(0);
+const million4=ref(0);
+ 
 const currentPage4 = ref(4)
 const pageSize4 = ref(100)
 const tableData = [
@@ -46,338 +56,320 @@
     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 == 40) {
-        timers1.value = true
+ 
+  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==220){
+          timers1.value=false;
+        }else if(carposition1.value==60){
+          timers1.value=true;
+        }
+        if(timers1.value==true){
+          carposition1.value=carposition1.value+16;
+        }else{
+          carposition1.value=carposition1.value-16;
+        }
+ 
+        
+        if(carposition2.value==220){
+          timers2.value=false;
+        }else if(carposition2.value==60){
+          timers2.value=true;
+        }
+        if(timers2.value==true){
+          carposition2.value+=16;
+        }else{
+          carposition2.value-=16;
+        }
+      }else{
+ 
       }
-      if (timers1.value == true) {
-        carposition1.value = carposition1.value + 16
-      } else {
-        carposition1.value = carposition1.value - 16
+    }else{
+      million1.value=million.value;
+      if(cellshow.value==true){
+        cellshow.value=false;
+        
+      }else{
+        cellshow.value=true;
+        
       }
-
-      if (carposition2.value == 200) {
-        timers2.value = false
-      } else if (carposition2.value == 40) {
-        timers2.value = true
+      if(cellshow1.value==true){
+        cellshow1.value=false;
+      }else{
+        cellshow1.value=true;
       }
-      if (timers2.value == true) {
-        carposition2.value += 16
-      } else {
-        carposition2.value -= 16
+      if(cellshow2.value==true){
+        cellshow2.value=false;
+      }else{
+        cellshow2.value=true;
       }
-    } else {
     }
-  } else {
-    million1.value = million.value
-    if (cellshow.value == true) {
-      cellshow.value = false
-    } else {
-      cellshow.value = true
+    
+  }, 1000);
+ 
+  var timer=setInterval(() => {
+    console.log(million3.value,million4.value);
+    million3.value+=1;
+    if(million3.value-million4.value!==12){
+      
+      if(million3.value-million4.value>=2){
+        if(carposition3.value==260){
+          timers3.value=false;
+        }else if(carposition3.value==60){
+          timers3.value=true;
+        }
+        if(timers3.value==true){
+          carposition3.value=carposition3.value+20;
+        }else{
+          carposition3.value=carposition3.value-20;
+        }
+ 
+        
+        if(carposition4.value==260){
+          timers4.value=false;
+        }else if(carposition4.value==60){
+          timers4.value=true;
+        }
+        if(timers4.value==true){
+          carposition4.value+=20;
+        }else{
+          carposition4.value-=20;
+        }
+      }else{
+ 
+      }
+    }else{
+      million4.value=million3.value;
+      if(cellshow5.value==true){
+        cellshow5.value=false;
+        
+      }else{
+        cellshow5.value=true;
+        
+      }
+      if(cellshow3.value==true){
+        cellshow3.value=false;
+      }else{
+        cellshow3.value=true;
+      }
+      if(cellshow4.value==true){
+        cellshow4.value=false;
+      }else{
+        cellshow4.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) => {
+    
+  }, 1000);
+ 
+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
     }
   }
 }
-
+ 
 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>
-
+ 
 <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>
@@ -391,508 +383,360 @@
     <!-- <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: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 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 v-show="c1" 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="c2" class="img-car3" :style="'z-index:999;left:247px;top:' + carposition3 + 'px;position:absolute;'">
+      <div v-show="cellshow3" style="margin-top:10px;width:200px;height:5px;background-color:#409EFF;"></div>
+    </div>
+    <div class="img-car4" :style="'z-index:999;left:704px;top:' + carposition4 + 'px;position:absolute;'">
+      <div v-show="cellshow4" 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>
+    <div v-show="cellshow5" style="width: 200px;height: 5px;position: absolute;top:70px;left: 480px;background-color: #409EFF;">
+    </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>
-        </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 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 #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="鍑虹墖闃熷垪">
+<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>
-      <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>
+    <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>
-    <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>
-
+    <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>
+    <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 #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;
-}
-
-#dta {
-  display: block;
-  float: left;
-  line-height: 20px;
-  margin-left: 80%;
-}
-
-#dialog-footer {
+ 
+#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 {
+#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;
+     width: 0 !important;
+   }
+   ::-webkit-scrollbar {
+     width: 0 !important;height: 0;
+   }
+   .img-list{
+    
+  position:relative;
 }
-
-::-webkit-scrollbar {
-  width: 0 !important;
-  height: 0;
-}
-
-.img-list {
-  position: relative;
-}
-
-.data-img {
-  @apply float-none;
-
-  width: 100%;
-  height: 16rem;
+.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/lpl.jpg');
+.img-car1{
+  background-image:url('../../assets/lp.png');
   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/lpla.jpg');
+.img-car2{
+  background-image:url('../../assets/lpa.png');
   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-car3{
+  background-image:url('../../assets/lp.png');
+  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
+}
+.img-car4{
+  background-image:url('../../assets/lpa.png');
+  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
 }
 </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/stockBasicData.vue b/UI-Project/src/views/StockBasicData/stockBasicData.vue
index b4e4821..efba1a1 100644
--- a/UI-Project/src/views/StockBasicData/stockBasicData.vue
+++ b/UI-Project/src/views/StockBasicData/stockBasicData.vue
@@ -3,99 +3,136 @@
 import {reactive} from "vue";
 import {useRouter} from "vue-router"
 const router = useRouter()
+const adda = ref(false)
 
-import { ref } from 'vue'
+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 = [
-  {
-    id: '1',
-    long: '1005',
-    wide: '183.6',
-    thick: '1991',
-    type: '寰呰瘑鍒�',
-    typea: '1',
-  },
-  {
-    id: '2',
-    long: '105',
-    wide: '183',
-    thick: '191',
-    typea: '1',
-    type: '寰呰瘑鍒�'
-  },
-  {
-    id: '2',
-    long: '105',
-    wide: '183',
-    thick: '191',
-    typea: '1',
-    type: '寰呰瘑鍒�'
-  },
-]
-const open = () => {
-  ElMessageBox.confirm(
-    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
-    '鎻愮ず',
-    {
-      confirmButtonText: '鏄�',
-      cancelButtonText: '鍙栨秷',
-      type: 'warning',
-    }
-  )
-    .then(() => {
-      ElMessage({
-        type: 'success',
-        message: '鍒犻櫎鎴愬姛锛�',
-      })
+const tableData = ref([])
+const slot = ref('')
+  
+
+request.post("/cacheGlass/taskCache/selectEdgTask").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
     })
-    .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 dialogForm = () => {
-  ElMessageBox.confirm(
-    '鏄惁鐮存崯?',
-    '鎻愮ず',
-    {
-      confirmButtonText: '鏄�',
-      cancelButtonText: '鍙栨秷',
-      type: 'warning',
-    }
-  )
-  .then(() => {
-    // this.boxa = true
-    // this.box = false
-      
-    })
-}
-const dialogForma = () => {
-  ElMessageBox.confirm(
-    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
-    '鎻愮ず',
-    {
-      confirmButtonText: '鏄�',
-      cancelButtonText: '鍙栨秷',
-      type: 'warning',
-    }
-  )
-}
+      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,//淇濇寔婧愭暟鎹�
@@ -131,36 +168,48 @@
       'wide': '1005',
       'thick': '183.6',
     }
-  ],
+  ]
+ 
 })
+
+
 
 </script>
 
 <template>
   <div>
-    <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: 200px;">
-        <el-table height="100%" ref="table" 
+    <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="long" align="center" label="闀�" min-width="120" />
-          <el-table-column prop="wide" align="center" label="瀹�" min-width="120" />
-          <el-table-column prop="wide" align="center" label="鍘氬害" min-width="120" />
-          <el-table-column prop="wide" align="center" label="鑶滅郴" min-width="120" />
-          <el-table-column prop="wide" align="center" label="鍑虹墖椤哄簭" min-width="120" />
-          <el-table-column prop="wide" align="center" label="娴佺▼鍗″彿" min-width="120" />
-          <el-table-column prop="wide" align="center" label="鍏朵粬" min-width="120" />
+          <el-table-column prop="slot" align="center" label="id" 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 prop="height" align="center" label="鑶滅郴" min-width="120" />
+          <el-table-column prop="height" align="center" label="鍑虹墖椤哄簭" min-width="120" />
+          <el-table-column prop="height" 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>
-              <el-button size="mini" type="text" plain  @click="dialogForm">鐮存崯</el-button>
-              <el-button size="mini" type="text" plain  @click="dialogForma">鍒犻櫎</el-button>
+            <template #default="scope">
+              <el-button size="mini" type="text" plain  @click="open(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>
-   
   </div>
 </template>
 
@@ -182,14 +231,7 @@
    margin-left: 28%;
 }
 #awatch{
-  height: 450px;
-}
-#main-body{
-  margin-top: -20px;
-  margin-left: 300px;
-}
-#main-bodya{
-  margin-top: -10px;
-  margin-left: 100px;
+  height: 460px;
+  /* margin-top: -60px; */
 }
 </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index 0d44280..6f605ad 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -100,7 +100,8 @@
     const response = await request.get('unLoadGlass/downWorkStation/getflowCardId');
     console.log(response)
     if (response.code === 200) {
-      flowCardOptions.value = response.data.map(item => ({ flowcard_id: item.flow_card_id }));
+      flowCardOptions.value = response.data.map(item => ({ flowcard_id: item.flow_card_Id }));
+      console.log(flowCardOptions.value)
     } else {
       ElMessage.error(response.msg);
     }
@@ -198,7 +199,7 @@
 
 
 
-initWebSocket();
+// initWebSocket();
 onMounted(fetchTableData);
 // setInterval(fetchTableData, 2000)
 
diff --git a/UI-Project/src/views/User/permissions.vue b/UI-Project/src/views/User/permissions.vue
new file mode 100644
index 0000000..15a996d
--- /dev/null
+++ b/UI-Project/src/views/User/permissions.vue
@@ -0,0 +1,461 @@
+<script lang="ts" setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+import { ref } from 'vue'
+
+const router = useRouter()
+const value1 = ref(true)
+const add = ref(false)
+const adda = ref(false)
+
+const changer = ref(false)
+import { ElMessage, ElMessageBox } from 'element-plus'
+
+const tableData = [
+  {
+    id: '1',
+    long: '1005',
+    wide: '183.6',
+    thick: '1991',
+    time: '2024/4/1',
+    type: '寰呰瘑鍒�',
+    typea: '1',
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    time: '2024/4/1',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    time: '2024/4/1',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+]
+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 dialogForm = () => {
+  ElMessageBox.confirm(
+    '鏄惁閲嶇疆瀵嗙爜?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+  .then(() => {
+    // this.boxa = true
+    // this.box = false
+      
+    })
+}
+const dialogForma = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+}
+
+const options = [
+  {
+    value: 'Option1',
+    label: 'admin',
+  },
+  {
+    value: 'Option2',
+    label: 'ueser2',
+  },
+  {
+    value: 'Option3',
+    label: 'ueser3',
+  },
+]
+const optionsa = [
+  {
+    valuea: 'Option1',
+    labela: '姝e父',
+  },
+  {
+    valuea: 'Option2',
+    labela: '绂佺敤',
+  },
+]
+
+const data= reactive({
+   tableList:[]//table鏁版嵁
+})
+
+const beforeChange = () => {
+  return new Promise((resolve) => {
+    setTimeout(() => {
+      ElMessage.success("淇敼鎴愬姛锛�");
+      return resolve(true);
+    }, 1000);
+  });
+};
+
+// //js灞傦紝瀹炴垬鐗堟湰,涓庡悗鍙版帴鍙d氦浜�
+// const gettableList = (id) = >{
+//   xxx鎺ュ彛.({
+//    id:id
+// }).then((res)=>{
+//    //灏嗘暟鎹紶缁檈l-table缁戝畾鐨�:data=>data.tableList
+//    data.tableList = res.data
+   
+// })
+// }
+ 
+// //鏈�鍚庡皢璇锋眰鍑芥暟鎸傝浇鍒皏ue瑙嗗浘涓�
+// onMounted(() => {
+//   gettableList ()
+
+// })
+// const delete = () => {
+//   ElMessageBox.confirm(
+//     '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+//     '鎻愮ず',
+//     {
+//       confirmButtonText: '鏄�',
+//       cancelButtonText: '鍙栨秷',
+//       type: 'warning',
+//     }
+//   )
+//   .then(() => {
+      
+//     })
+// }
+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',
+      'time': '2024/4/1',
+    }
+  ]
+})
+
+</script>
+
+<template>
+  <div>
+        <el-button type="primary" style="margin-top: 10px;margin-left: 10px;"  size="mini" id="searchButton" @click="add = true">娣诲姞鐢ㄦ埛</el-button>
+        <el-input
+          clearable
+          placeholder="璇疯緭鍏ョ敤鎴峰悕"
+          size="mini"
+          style="margin-right: 20px; width: 200px;margin-left: 10px;margin-top: 10px;"
+        />
+        <el-input
+          clearable
+          placeholder="璇疯緭鍏ラ偖绠�"
+          size="mini"
+          style="margin-right: 20px; width: 200px;margin-left: 10px;margin-top: 10px;"
+        />
+        <el-button type="primary" size="mini" @click="searchSubmit" style="margin-top: 10px;">鏌ヨ</el-button >
+        <el-button type="primary" size="mini" @click="empty" style="margin-top: 10px;">娓呯┖</el-button>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
+        <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="鐢ㄦ埛鍚�" min-width="80" />
+          <el-table-column prop="long" align="center" label="閭" min-width="120" />
+          <el-table-column prop="time" align="center" label="鍒涘缓鏃堕棿" min-width="120" />
+          <el-table-column  align="center" prop="changer"  label="鏄惁绂佺敤"   min-width="140"  >
+           <template #default="scope">
+           <el-switch  v-model="scope.row.changer"  :before-change="beforeChange" />
+         </template>
+         </el-table-column>
+
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default>
+              <el-button size="mini" type="text" plain  @click="dialogForm">閲嶇疆瀵嗙爜</el-button>
+              <el-button size="mini" type="text" plain  @click="adda = true">缂栬緫</el-button>
+              <el-button size="mini" type="text" plain  @click="dialogForma">鍒犻櫎</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+   
+  </div>
+  
+  <el-dialog v-model="add" top="23vh" width="37%" title="娣诲姞鐢ㄦ埛" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form label-width="100px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鐢ㄦ埛鍚嶏細" :required="true" style="width: 25vw">
+                <el-input  autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨瑙掕壊"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="閭锛�" :required="true" style="width: 25vw;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏄惁绂佺敤" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨鏄惁绂佺敤"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in optionsa"
+            :key="item.valuea"
+            :label="item.labela"
+            :value="item.valuea"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瀵嗙爜锛�" :required="true" style="width: 25vw;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRow('edit')">
+          纭
+        </el-button>
+        <el-button @click="add = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>  
+  <el-dialog v-model="adda" top="23vh" width="37%" title="淇敼鐢ㄦ埛" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form label-width="100px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鐢ㄦ埛鍚嶏細" :required="true" style="width: 25vw">
+                <el-input  autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨瑙掕壊"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="閭锛�" :required="true" style="width: 25vw;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏄惁绂佺敤" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨鏄惁绂佺敤"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in optionsa"
+            :key="item.valuea"
+            :label="item.labela"
+            :value="item.valuea"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瀵嗙爜锛�" :required="true" style="width: 25vw;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRow('edit')">
+          纭
+        </el-button>
+        <el-button @click="adda = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+</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: 450px;
+}
+#main-body{
+  margin-top: -20px;
+  margin-left: 300px;
+}
+#main-bodya{
+  margin-top: -10px;
+  margin-left: 100px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/User/rolelist.vue b/UI-Project/src/views/User/rolelist.vue
new file mode 100644
index 0000000..15a996d
--- /dev/null
+++ b/UI-Project/src/views/User/rolelist.vue
@@ -0,0 +1,461 @@
+<script lang="ts" setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+import { ref } from 'vue'
+
+const router = useRouter()
+const value1 = ref(true)
+const add = ref(false)
+const adda = ref(false)
+
+const changer = ref(false)
+import { ElMessage, ElMessageBox } from 'element-plus'
+
+const tableData = [
+  {
+    id: '1',
+    long: '1005',
+    wide: '183.6',
+    thick: '1991',
+    time: '2024/4/1',
+    type: '寰呰瘑鍒�',
+    typea: '1',
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    time: '2024/4/1',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    time: '2024/4/1',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+]
+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 dialogForm = () => {
+  ElMessageBox.confirm(
+    '鏄惁閲嶇疆瀵嗙爜?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+  .then(() => {
+    // this.boxa = true
+    // this.box = false
+      
+    })
+}
+const dialogForma = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+}
+
+const options = [
+  {
+    value: 'Option1',
+    label: 'admin',
+  },
+  {
+    value: 'Option2',
+    label: 'ueser2',
+  },
+  {
+    value: 'Option3',
+    label: 'ueser3',
+  },
+]
+const optionsa = [
+  {
+    valuea: 'Option1',
+    labela: '姝e父',
+  },
+  {
+    valuea: 'Option2',
+    labela: '绂佺敤',
+  },
+]
+
+const data= reactive({
+   tableList:[]//table鏁版嵁
+})
+
+const beforeChange = () => {
+  return new Promise((resolve) => {
+    setTimeout(() => {
+      ElMessage.success("淇敼鎴愬姛锛�");
+      return resolve(true);
+    }, 1000);
+  });
+};
+
+// //js灞傦紝瀹炴垬鐗堟湰,涓庡悗鍙版帴鍙d氦浜�
+// const gettableList = (id) = >{
+//   xxx鎺ュ彛.({
+//    id:id
+// }).then((res)=>{
+//    //灏嗘暟鎹紶缁檈l-table缁戝畾鐨�:data=>data.tableList
+//    data.tableList = res.data
+   
+// })
+// }
+ 
+// //鏈�鍚庡皢璇锋眰鍑芥暟鎸傝浇鍒皏ue瑙嗗浘涓�
+// onMounted(() => {
+//   gettableList ()
+
+// })
+// const delete = () => {
+//   ElMessageBox.confirm(
+//     '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+//     '鎻愮ず',
+//     {
+//       confirmButtonText: '鏄�',
+//       cancelButtonText: '鍙栨秷',
+//       type: 'warning',
+//     }
+//   )
+//   .then(() => {
+      
+//     })
+// }
+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',
+      'time': '2024/4/1',
+    }
+  ]
+})
+
+</script>
+
+<template>
+  <div>
+        <el-button type="primary" style="margin-top: 10px;margin-left: 10px;"  size="mini" id="searchButton" @click="add = true">娣诲姞鐢ㄦ埛</el-button>
+        <el-input
+          clearable
+          placeholder="璇疯緭鍏ョ敤鎴峰悕"
+          size="mini"
+          style="margin-right: 20px; width: 200px;margin-left: 10px;margin-top: 10px;"
+        />
+        <el-input
+          clearable
+          placeholder="璇疯緭鍏ラ偖绠�"
+          size="mini"
+          style="margin-right: 20px; width: 200px;margin-left: 10px;margin-top: 10px;"
+        />
+        <el-button type="primary" size="mini" @click="searchSubmit" style="margin-top: 10px;">鏌ヨ</el-button >
+        <el-button type="primary" size="mini" @click="empty" style="margin-top: 10px;">娓呯┖</el-button>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
+        <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="鐢ㄦ埛鍚�" min-width="80" />
+          <el-table-column prop="long" align="center" label="閭" min-width="120" />
+          <el-table-column prop="time" align="center" label="鍒涘缓鏃堕棿" min-width="120" />
+          <el-table-column  align="center" prop="changer"  label="鏄惁绂佺敤"   min-width="140"  >
+           <template #default="scope">
+           <el-switch  v-model="scope.row.changer"  :before-change="beforeChange" />
+         </template>
+         </el-table-column>
+
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default>
+              <el-button size="mini" type="text" plain  @click="dialogForm">閲嶇疆瀵嗙爜</el-button>
+              <el-button size="mini" type="text" plain  @click="adda = true">缂栬緫</el-button>
+              <el-button size="mini" type="text" plain  @click="dialogForma">鍒犻櫎</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+   
+  </div>
+  
+  <el-dialog v-model="add" top="23vh" width="37%" title="娣诲姞鐢ㄦ埛" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form label-width="100px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鐢ㄦ埛鍚嶏細" :required="true" style="width: 25vw">
+                <el-input  autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨瑙掕壊"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="閭锛�" :required="true" style="width: 25vw;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏄惁绂佺敤" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨鏄惁绂佺敤"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in optionsa"
+            :key="item.valuea"
+            :label="item.labela"
+            :value="item.valuea"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瀵嗙爜锛�" :required="true" style="width: 25vw;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRow('edit')">
+          纭
+        </el-button>
+        <el-button @click="add = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>  
+  <el-dialog v-model="adda" top="23vh" width="37%" title="淇敼鐢ㄦ埛" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form label-width="100px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鐢ㄦ埛鍚嶏細" :required="true" style="width: 25vw">
+                <el-input  autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨瑙掕壊"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="閭锛�" :required="true" style="width: 25vw;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏄惁绂佺敤" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨鏄惁绂佺敤"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in optionsa"
+            :key="item.valuea"
+            :label="item.labela"
+            :value="item.valuea"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瀵嗙爜锛�" :required="true" style="width: 25vw;">
+                <el-input autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRow('edit')">
+          纭
+        </el-button>
+        <el-button @click="adda = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+</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: 450px;
+}
+#main-body{
+  margin-top: -20px;
+  margin-left: 300px;
+}
+#main-bodya{
+  margin-top: -10px;
+  margin-left: 100px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/User/user.vue b/UI-Project/src/views/User/user.vue
new file mode 100644
index 0000000..d0567d3
--- /dev/null
+++ b/UI-Project/src/views/User/user.vue
@@ -0,0 +1,49 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter} from "vue-router";
+let indexFlag=$ref(1)
+function changeRouter(index){
+  indexFlag=index
+}
+
+</script>
+
+<template>
+  <!-- <div id="main-div"> -->
+   
+
+    <div id="main-body">
+      <router-view  />
+    </div>
+  <!-- </div> -->
+</template>
+
+<style scoped>
+#main-div{
+  width: 100%;
+  height: 100%;
+}
+#div-title{
+  height: 2%;
+  width: 100%;
+}
+#searchButton{
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+/* #searchButton1{
+//margin-left: 10rem;
+} */
+/*main-body鏍峰紡*/
+#main-body{
+  width: 100%;
+  height: 95%;
+  /* margin-top: 1%; */
+}
+#select{
+  margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
+  color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java
index 45e5467..e5f4389 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
@@ -8,29 +8,29 @@
  * @Date: 2024/4/9 15:13
  * @Description:
  */
-public class S7object {
-    public S7control plccontrol; // PLC閫氳绫诲疄渚�
-    private EPlcType plcType = EPlcType.S1500; // 瑗块棬瀛怭LC绫诲瀷
-    private String ip = "192.168.10.1"; // plc ip鍦板潃
-    private int port = 102; // plc 绔彛鍙�
-
-    private static volatile S7object instance = null;
-
-    private S7object() {
-        if (plccontrol == null) {
-            plccontrol = new S7control(plcType, ip, port, 0, 0);
-        }
-    }
-
-    // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
-    public static S7object getinstance() {
-        if (instance == null) {
-            synchronized (S7object.class) {
-                if (instance == null) {
-                    instance = new S7object();
-                }
-            }
-        }
-        return instance;
-    }
-}
+//public class S7object {
+//    public S7control plccontrol; // PLC閫氳绫诲疄渚�
+//    private EPlcType plcType = EPlcType.S1500; // 瑗块棬瀛怭LC绫诲瀷
+//    private String ip = "192.168.10.1"; // plc ip鍦板潃
+//    private int port = 102; // plc 绔彛鍙�
+//
+//    private static volatile S7object instance = null;
+//
+//    private S7object() {
+//        if (plccontrol == null) {
+//            plccontrol = new S7control(plcType, ip, port, 0, 0);
+//        }
+//    }
+//
+//    // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+//    public static S7object getinstance() {
+//        if (instance == null) {
+//            synchronized (S7object.class) {
+//                if (instance == null) {
+//                    instance = new S7object();
+//                }
+//            }
+//        }
+//        return instance;
+//    }
+//}
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 afb83c3..0460092 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
@@ -53,7 +53,7 @@
     }
     @Test
     public  void  textglassinfo(){
-        List<GlassInfo> glass= glassInfoService.selectGlassInfo("P24032204");
-        log.info("glassinfo锛歿}", Arrays.asList(glass));
+       // List<GlassInfo> glass= glassInfoService.selectGlassInfo("P24032204");
+        //log.info("glassinfo锛歿}", Arrays.asList(glass));
     }
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/PLCAutoMes.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/PLCAutoMes.java
deleted file mode 100644
index 6fd4740..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/PLCAutoMes.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package com.mes.common;
-
-import com.mes.device.PlcParameterObject;
-import com.mes.tools.InitUtil;
-import org.springframework.context.annotation.Configuration;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static com.mes.tools.InitUtil.readAndUpdateWordValues;
-
-public class PLCAutoMes extends Thread {
-
-    // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
-    private Configuration config;
-    private static InitUtil initUtil;
-
-
-    // 鍗曚緥瀹炰緥
-    private static PLCAutoMes instance;
-    private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath();
-    private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath();
-    private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath();
-
-    private static String PlcAlarm = PLCAutoMes.class.getResource("/JsonFile/PlcAlarm.json").getPath();
-    // private static String PlcTest = PLCAutoMes.class.getResource("/JsonFile/PlcTest.json").getPath();
-
-    // 璋冪敤initword鏂规硶
-
-    //
-    // public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm);
-    public static PlcParameterObject PlcMesObject = initUtil.initword(PlcMes);
-    public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead);
-    public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe);
-
-    // 绉佹湁鏋勯�犲嚱鏁�
-    public PLCAutoMes() throws IOException {
-
-        initUtil = new InitUtil();
-    }
-
-    // 鑾峰彇鍗曚緥瀹炰緥
-    public static synchronized PLCAutoMes getInstance() throws IOException {
-        if (instance == null) {
-            instance = new PLCAutoMes();
-        }
-        return instance;
-    }
-
-    @Override
-    public void run() {
-        while (this != null) {
-            try {
-                Thread.sleep(100);
-
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-            }
-
-            // System.out.println(jsonFilePath);
-
-            // readAndUpdateWordValues(PlcReadObject);
-            readAndUpdateWordValues(PlcMesObject);
-
-            List<String> addresses = new ArrayList<>();
-            addresses.add("FeedID");
-            addresses.add("AddStart");
-
-            List<String> addresses2 = new ArrayList<>();
-            addresses2.add("FeedID");
-            addresses2.add("FeedCarStatus");
-
-            //   System.out.println(PlcReadObject.getPlcParameterValues(addresses2));
-
-        }
-    }
-}
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
deleted file mode 100644
index 48861a2..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plcdownglass.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.mes.common;
-
-import cn.hutool.json.JSONObject;
-
-import com.mes.downstorage.service.DownStorageCageService;
-import com.mes.downworkstation.service.DownWorkstationService;
-
-
-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;
-
-@Component
-@Slf4j
-public class Plcdownglass {
-
-    public static final String RESULT_IN = "1";
-    public static final String RESULT_OUT = "2";
-    public static final String RESULT_IN_OUT = "3";
-
-    @Autowired
-    private DownStorageCageService downStorageCageService;
-    @Autowired
-    private DownWorkstationService downWorkstationService;
-
-
-    @Scheduled(fixedDelay = 300)
-    public void PlcdownglassTask() throws InterruptedException {
-        JSONObject jsonObject = new JSONObject();
-        try {
-            Thread.sleep(300);
-
-
-            //                String result = S7control.getinstance().ReadWord("DB14.0", 1).get(0) + "";
-//                String number = S7control.getinstance().ReadWord("DB14.2", 1).get(0) + "";
-            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);
-                }
-            }
-
-            //涓嬬墖鏇存柊
-            downWorkstationService.insertdownglassinfo();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plchome.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plchome.java
deleted file mode 100644
index 4969337..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plchome.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.mes.common;
-
-import cn.hutool.json.JSONObject;
-
-import com.mes.downworkstation.service.DownWorkstationService;
-import com.mes.tools.WebSocketServer;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Supplier;
-
-@Component
-public class Plchome extends Thread {
-    private int i = 1;
-    private static final Logger log = LogManager.getLogger(Plchome.class);
-    @Autowired
-    private  DownWorkstationService downWorkstationService;
-
-   // private final Supplier<DownGlassLogic> plcServiceSupplier;
-
-//    public Plchome() {
-//        this.plcServiceSupplier = () -> WebSocketServer.applicationContext.getBean(DownGlassLogic.class);
-//    }
-
-
-    @Override
-    public void run() {
-        while (!Thread.currentThread().isInterrupted()) {
-            try {
-                i++;
-                Thread.sleep(1000);
-                JSONObject jsonObject = new JSONObject();
-                System.out.println(77);
-                downWorkstationService = WebSocketServer.applicationContext.getBean(DownWorkstationService.class);
-                List<Map<String, Object>>  yy= downWorkstationService.getTotalGlassDimensionsByWorkstation();
-                jsonObject.append("data", yy);
-                ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("unloadglass");
-                if (sendwServer != null) {
-                    for (WebSocketServer webserver : sendwServer) {
-                        webserver.sendMessage(jsonObject.toString());
-                        log.info("鍑嗗鍚� WebSocket 鏈嶅姟鍣ㄥ彂閫佹秷鎭�: {}", jsonObject.toString());
-                    }
-                }
-
-
-            } catch (InterruptedException e) {
-                Thread.currentThread().interrupt();
-                e.printStackTrace();
-            }
-
-
-
-        }
-    }
-}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7control.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7control.java
deleted file mode 100644
index 429a6e0..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7control.java
+++ /dev/null
@@ -1,458 +0,0 @@
-package com.mes.common;
-
-import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
-import com.github.xingshuangs.iot.protocol.s7.service.MultiAddressWrite;
-import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
-import com.google.common.primitives.Bytes;
-
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.List;
-
-public class S7control {
-
-    S7PLC s7PLC; // PLC閫氳绫诲疄渚�
-    private EPlcType plcType = EPlcType.S1500; // 瑗块棬瀛怭LC绫诲瀷
-    private String ip = "192.168.10.1"; // plc ip鍦板潃
-    private int port = 102; // plc 绔彛鍙�
-
-    private static volatile S7control instance = null;
-
-    private S7control() {
-        if (s7PLC == null)
-            s7PLC = new S7PLC(plcType, ip, port, 0, 0);
-    }
-
-    // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
-    public static S7control getinstance() {
-        if (instance == null) {
-            synchronized (S7control.class) {
-                if (instance == null) {
-                    instance = new S7control();
-                }
-            }
-        }
-        return instance;
-    }
-
-    /**
-     * 鍏抽棴瑗块棬瀛恠7閫氳杩炴帴
-     */
-    public void CloseS7client() {
-        if (s7PLC == null)
-            s7PLC.close();
-        s7PLC.checkConnected();
-    }
-
-    /**
-     * s7閫氳杩炴帴鐘舵��
-     */
-    public boolean CheckConnected() {
-        return s7PLC.checkConnected();
-    }
-
-    /**
-     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆涓�涓獁ord
-     *
-     * @param address 鍦板潃
-     * @param data    word鐨勫��
-     */
-    public void WriteWord(String address, short data) {
-        if (s7PLC == null) {
-            return;
-        }
-        s7PLC.writeInt16(address, data);
-    }
-
-    /**
-     * 浠庢煇鍦板潃杩炵画 鍐欏叆澶氫釜word
-     *
-     * @param address 鍦板潃
-     * @param datas   word鐨勫��
-     */
-    public void WriteWord(String address, List<Short> datas) {
-        if (s7PLC == null)
-            return;
-        // s7PLC.write(address, data);
-        List<String> addresslist = GetAddressList(address, datas.size(), 16);
-        MultiAddressWrite addressWrite = new MultiAddressWrite();
-        for (int i = 0; i < datas.size(); i++) {
-            addressWrite.addInt16(addresslist.get(i), datas.get(i));
-        }
-        s7PLC.writeMultiData(addressWrite);
-    }
-
-    /**
-     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆澶氫釜word
-     *
-     * @param address 鍦板潃
-     * @param datas   word鐨勫��
-     */
-
-
-    /**
-     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆涓�涓狟it
-     *
-     * @param address 鍦板潃
-     * @param data    Bit鐨勫��
-     */
-    public void WriteBit(String address, Boolean data) {
-        if (s7PLC == null)
-            return;
-        s7PLC.writeBoolean(address, data);
-    }
-
-    /**
-     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆澶氫釜bit
-     *
-     * @param address 鍦板潃
-     * @param datas   bit鐨勫��
-     */
-    public void WriteBit(List<String> address, List<Boolean> datas) {
-        if (s7PLC == null)
-            return;
-        // s7PLC.write(address, data);
-
-        MultiAddressWrite addressWrite = new MultiAddressWrite();
-        for (int i = 0; i < address.size(); i++) {
-            addressWrite.addBoolean(address.get(i), datas.get(i));
-        }
-        s7PLC.writeMultiData(addressWrite);
-    }
-
-    /**
-     * 浠庢煇鍦板潃杩炵画 鍐欏叆澶氫釜bit
-     *
-     * @param address 鍦板潃
-     * @param datas   word鐨勫��
-     */
-    public void WriteBit(String address, List<Boolean> datas) {
-        if (s7PLC == null)
-            return;
-        // s7PLC.write(address, data);
-        List<String> addresslist = GetAddressList(address, datas.size(), 1);
-        MultiAddressWrite addressWrite = new MultiAddressWrite();
-        for (int i = 0; i < datas.size(); i++) {
-            addressWrite.addBoolean(addresslist.get(i), datas.get(i));
-        }
-        s7PLC.writeMultiData(addressWrite);
-    }
-
-    /**
-     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆澶氫釜byte
-     *
-     * @param address 鍦板潃
-     * @param datas   byte鐨勫��
-     */
-    public void WriteByte(String address, byte[] datas) {
-        if (s7PLC == null)
-            return;
-        // s7PLC.write(address, data); 
-        s7PLC.writeByte(address, datas);
-    }
-
-    /**
-     * 鎸夋寚瀹氱殑鍦板潃 璇诲彇word缁撴灉闆�
-     *
-     * @param address 鍦板潃
-     * @return 缁撴灉
-     */
-    public List<Short> ReadWord(List<String> address) {
-        if (s7PLC == null)
-            return null;
-
-        try {
-            return s7PLC.readInt16(address);
-        } catch (Exception e) {
-            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
-            return null;
-        }
-    }
-
-
-    private int getIndexFromAddress(String address) {
-
-        // 鍙互瑙f瀽鍑哄湴鍧�涓殑鏁板瓧閮ㄥ垎锛屽苟杞崲涓烘暣鏁�
-        return 0;
-    }
-
-    private String getAddressFromIndex(int index) {
-
-        // 鏁存暟杞崲涓哄湴鍧�鏍煎紡鐨勫瓧绗︿覆
-        return "";
-    }
-
-    /**
-     * 鎸夋寚瀹氱殑鍦板潃 璇诲彇word缁撴灉闆�
-     *
-     * @param address 鍦板潃
-     * @param count   杩炵画璇诲灏戜釜word
-     * @return 缁撴灉
-     */
-    public List<Short> ReadWord(String address, int count) {
-        if (s7PLC == null)
-            return null;
-
-        List<String> addresslist = GetAddressList(address, count, 16);
-        try {
-            return s7PLC.readInt16(addresslist);
-        } catch (Exception e) {
-            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
-
-            return null;
-        }
-    }
-
-    /**
-     * 鎸夋寚瀹氱殑鍦板潃 璇诲彇byte缁撴灉闆�
-     *
-     * @param address 鍦板潃
-     * @param count   杩炵画璇诲灏戜釜byte
-     * @return 缁撴灉
-     */
-    public byte[] ReadByte(String address, int count) {
-        if (s7PLC == null)
-            return null;
-        // List<String> addresslist = GetAddressList(address, count, 16);
-
-        try {
-            return s7PLC.readByte(address, count);
-        } catch (Exception e) {
-            // 澶勭悊寮傚父
-            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
-            return null;
-        }
-
-    }
-
-    /**
-     * 鎸夋寚瀹氱殑鍦板潃 鎸塨it浣� 0 flase 1 true 璇诲彇缁撴灉
-     *
-     * @param addresslist 鍦板潃闆�
-     * @return Boolean缁撴灉
-     */
-    public List<Boolean> ReadBits(List<String> addresslist) {
-        if (s7PLC == null)
-            return null;
-        return s7PLC.readBoolean(addresslist);
-    }
-
-    //璇诲彇涓嶈繛缁湴鍧�bit
-    public List<Boolean> readBits(List<String> addressList) {
-        if (s7PLC == null || addressList.isEmpty()) {
-            return null;
-        }
-
-        List<Boolean> values = new ArrayList<>();
-        for (String address : addressList) {
-            try {
-                boolean value = s7PLC.readBoolean(address);
-                values.add(value);
-            } catch (Exception e) {
-                // 澶勭悊寮傚父
-                System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
-            }
-        }
-
-        return values;
-    }
-
-
-    //璇诲彇String
-    public List<String> readStrings(List<String> addressList) {
-        if (s7PLC == null) {
-            return null;
-        }
-        List<String> result = new ArrayList<>();
-        for (String address : addressList) {
-            try {
-                byte[] bytes = s7PLC.readByte(address, 14);
-                if (bytes != null) {
-                    String str = new String(bytes, StandardCharsets.UTF_8);
-                    result.add(str);
-                }
-            } catch (Exception e) {
-                System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
-                result.add(null);
-            }
-        }
-
-        return result;
-    }
-
-
-    public List<String> readStringsandword(List<String> addressList) {
-        if (s7PLC == null) {
-            return null;
-        }
-        List<String> result = new ArrayList<>();
-        for (String address : addressList) {
-            try {
-                if (address.contains("-")) {
-                    address = address.substring(0, address.indexOf("-"));
-
-                    byte[] bytes = s7PLC.readByte(address, 14);
-                    if (bytes != null) {
-                        String str = new String(bytes, StandardCharsets.UTF_8);
-                        result.add(str);
-                    }
-
-                } else {
-                    Short value = s7PLC.readInt16(address);
-                    result.add(value.toString());
-
-                }
-            } catch (Exception e) {
-                System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
-                result.add(null);
-            }
-        }
-
-        return result;
-    }
-
-
-    //涓嶈繛缁湴鍧�鍐欏叆Word
-    public void WriteWord(List<String> address, List<Short> datas) {
-        if (s7PLC == null)
-            return;
-
-        for (int i = 0; i < address.size(); i++) {
-            String addr = address.get(i);
-            short data = datas.get(i);
-
-            if (addr.contains("-")) {
-                outmesid(String.valueOf(data), addr); // 鍗曠嫭澶勭悊甯︾牬鎶樺彿鐨勫湴鍧�
-            } else {
-                s7PLC.writeInt16(addr, data); // 灏嗘暟鎹啓鍏ュ崟涓湴鍧�
-            }
-        }
-    }
-
-
-    //瀛楃涓插啓鍏�
-    public void outmesid(String data, String addr) {
-//        System.out.println("outmesid: " + data);
-        List<Byte> glassidlist = new ArrayList<>();
-        String[] parts = addr.split("-");
-        if (parts.length == 2) {
-            addr = parts[0]; // 鍙繚鐣� "-" 鍓嶉潰鐨勯儴鍒�
-        }
-        for (char iditem : data.toCharArray()) {
-            glassidlist.add(Byte.valueOf(String.valueOf(iditem)));
-        }
-        byte[] bytes = Bytes.toArray(glassidlist);
-        S7control.getinstance().WriteByte(addr, bytes);
-    }
-
-    //璇诲彇涓嶈繛缁瓀ord
-    public List<Short> readWords(List<String> addresses) {
-        if (s7PLC == null) {
-            return null;
-        }
-
-        List<Short> data = new ArrayList<>();
-
-        for (String address : addresses) {
-            try {
-
-                // 鍗曚釜鍦板潃
-                Short value = s7PLC.readInt16(address);
-                data.add(value);
-            } catch (Exception e) {
-                System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
-
-            }
-
-        }
-        return data;
-    }
-
-    //璇诲彇鏃堕棿
-    public Long readtime(String address) {
-        if (s7PLC == null)
-            return null;
-        try {
-            return s7PLC.readTime(address);
-        } catch (Exception e) {
-            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
-            return null;
-        }
-    }
-
-
-    public void writetime(String address, long datas) {
-        if (s7PLC == null)
-            return;
-
-
-        s7PLC.writeTime(address, datas); // 灏嗘暟鎹啓鍏ュ崟涓湴鍧�
-    }
-
-
-    private int extractAddressNumber(String address) {
-        String numberStr = address.replaceAll("\\D+", ""); // 浣跨敤姝e垯琛ㄨ揪寮忔彁鍙栨暟瀛楅儴鍒�
-        return Integer.parseInt(numberStr);
-    }
-
-
-    /**
-     * 浠庢寚瀹氱殑鍦板潃寮�濮� 杩炵画鎸塨it浣嶈鍙�
-     *
-     * @param address 鍦板潃
-     * @param count   闀垮害
-     * @return Boolean缁撴灉
-     */
-    public List<Boolean> ReadBits(String address, int count) {
-        if (s7PLC == null)
-            return null;
-        List<String> addresslist = GetAddressList(address, count, 1);
-        try {
-            return s7PLC.readBoolean(addresslist);
-        } catch (Exception e) {
-            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
-            return null;
-        }
-
-    }
-
-    ;
-
-
-    public void writeString(String addr, String data) {
-        s7PLC.writeString(addr, data);
-    }
-
-
-    private List<String> GetAddressList(String address, int count, int addedbit) {
-        List<String> addresslist = new ArrayList<String>();
-
-        String[] stringdatas = address.trim().split("\\.");
-        if (stringdatas.length < 2 || !address.startsWith("DB"))
-            return null;
-        int dbwindex = 0;
-        int bitindex = 0;
-        if (stringdatas.length == 2) {
-            dbwindex = Integer.parseInt(stringdatas[1]);
-        } else if (stringdatas.length == 3) {
-            dbwindex = Integer.parseInt(stringdatas[1]);
-            bitindex = Integer.parseInt(stringdatas[2]);
-        } else
-            return null;
-
-        addresslist.add(address);
-        for (int i = 0; i < count - 1; i++) {
-
-            int bitcurrent = bitindex + addedbit;
-            if (bitcurrent > 7) {
-                dbwindex += bitcurrent / 8;
-                bitindex = 0;
-            } else
-                bitindex = bitcurrent;
-
-            String endstr = stringdatas.length == 3 ? "." + bitindex : "";
-            addresslist.add(stringdatas[0] + "." + dbwindex + endstr);
-        }
-        return addresslist;
-    }
-}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7object.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7object.java
new file mode 100644
index 0000000..7ec3d2e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7object.java
@@ -0,0 +1,61 @@
+package com.mes.common;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.device.PlcParameterObject;
+import com.mes.tools.InitUtil;
+import com.mes.tools.S7control;
+
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 15:13
+ * @Description:
+ */
+public class S7object extends Thread {
+    public S7control plccontrol; // PLC閫氳绫诲疄渚�
+    private EPlcType plcType = EPlcType.S1200; // 瑗块棬瀛怭LC绫诲瀷
+    private String ip = "192.168.10.1"; // plc ip鍦板潃
+    private int port = 102; // plc 绔彛鍙�
+
+
+    public PlcParameterObject PlcMesObject;
+    private static volatile S7object instance = null;
+
+    private S7object() {
+        if (plccontrol == null) {
+            plccontrol = new S7control(plcType, ip, port, 0, 0);
+
+            String PlcCacheGlass=S7object.class.getResource("/JsonFile/PlcdownGlass.json").getPath();
+            //log.info(PLCAutoMes.class.getResource("").getPath());
+            PlcMesObject = InitUtil.initword(PlcCacheGlass);
+        }
+    }
+
+    // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+    public static S7object getinstance() {
+        if (instance == null) {
+            synchronized (S7object.class) {
+                if (instance == null) {
+                    instance = new S7object();
+                }
+            }
+        }
+        return instance;
+    }
+
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(100);
+
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+
+            byte[] getplcvlues=   plccontrol.ReadByte(PlcMesObject.getPlcAddressBegin(),PlcMesObject.getPlcAddressLength());
+            PlcMesObject.setPlcParameterList(getplcvlues);
+
+        }
+    }
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
deleted file mode 100644
index c0bf80e..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.mes.config;
-
-import com.mes.common.Plcdownglass;
-import com.mes.common.Plchome;
-import com.mes.device.PLCAutoMes;
-import org.springframework.boot.ApplicationArguments;
-import org.springframework.boot.ApplicationRunner;
-import org.springframework.core.annotation.Order;
-import org.springframework.stereotype.Component;
-
-@Component
-@Order(1)
-
-public class AppRunnerConfig implements ApplicationRunner {
-
-    @Override
-    public void run(ApplicationArguments args) throws Exception {
-        // TODO Auto-generated method stub
-        //
-        System.out.println("鍚姩瀹屾垚");
-
-        //new Plcdownglass().start();
-
-//       new PLCAutoMes().start();
-//
-// new Plchome().start();
-
-    }
-}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
index 40a5d0b..5543ab5 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
@@ -2,7 +2,9 @@
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.springframework.data.annotation.Id;
 import org.springframework.stereotype.Component;
+
 
 import java.io.Serializable;
 
@@ -24,6 +26,7 @@
     /**
      * 涓嬬墖鐜荤拑淇℃伅琛╥d
      */
+
     private Long id;
 
     /**
@@ -51,8 +54,15 @@
      */
     private Double thickness;
 
-
+    /**
+     * 鑶滅郴
+     */
     private String Filmsid;
 
+    /**
+     * 鐜荤拑id
+     */
+    private String glassId;
+
 
 }
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 5903d00..13fbc8a 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
@@ -5,6 +5,7 @@
 import lombok.EqualsAndHashCode;
 
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * <p>
@@ -75,4 +76,9 @@
      * 鐜荤拑id
      */
     private String glassId;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date CreateTime;
 }
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 4521c5a..02674b0 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
@@ -26,7 +26,7 @@
      *
      * @return
      */
-    void updateTaskStateToZero(long id);
+    void updateTaskState(String id);
 
     /**
      * 鍒犻櫎浠诲姟
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 66783be..3cd3349 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
@@ -14,6 +14,7 @@
 import com.mes.downworkstation.service.DownWorkstationService;
 import com.mes.downworkstation.service.DownWorkstationTaskService;
 import com.mes.tools.WebSocketServer;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -37,6 +38,9 @@
 
     @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 8feea50..5eb9031 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
@@ -11,6 +11,7 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -33,16 +34,16 @@
     }
 
     @Override
-    public void updateTaskStateToZero(long id) {
+    public void updateTaskState(String id) {
         UpdateWrapper<DownGlassTask> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.set("task_stauts", 0).eq("id", id);
+        updateWrapper.set("task_stauts", 2).eq("id", id);
         baseMapper.update(new DownGlassTask(), updateWrapper);
     }
 
     @Override
     public void deleteTask(String id) {
         LambdaQueryWrapper<DownGlassTask> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(DownGlassTask::getFlowCardId, id);
+        queryWrapper.eq(DownGlassTask::getGlassId, id);
 
         baseMapper.delete(queryWrapper);
     }
@@ -71,8 +72,8 @@
         // 濡傛灉涓婚敭鍊间笉瀛樺湪锛屽垯杩涜鎻掑叆鎿嶄綔
         DownGlassTask newDownGlassTask = new DownGlassTask();
         BeanUtils.copyProperties(downGlassTask, newDownGlassTask);
-        newDownGlassTask.setTaskStauts(0); // 榛樿浠诲姟鐘舵�佷负0
-
+        newDownGlassTask.setTaskStauts(1); // 榛樿浠诲姟鐘舵�佷负1
+        newDownGlassTask.setCreateTime(new Date());
         int rows = baseMapper.insert(newDownGlassTask);
         return rows > 0 ? rows : null;
     }
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 f89f3ee..5737bd6 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
@@ -1,5 +1,6 @@
 package com.mes.downstorage.controller;
 
+import com.mes.downstorage.entity.DownStorageCage;
 import com.mes.downstorage.entity.DownStorageCageDetails;
 import com.mes.downstorage.service.DownStorageCageDetailsService;
 import com.mes.downstorage.service.DownStorageCageService;
@@ -33,32 +34,35 @@
     @ApiOperation("鏌ヨ缂撳瓨鐞嗙墖绗煎唴璇︽儏")
     @GetMapping("/selectStorageCage")
     @ResponseBody
-    public Result selectEdgStorageCage () {
-        List<Map> list=downStorageCageDetailsService.getCacheInfo();
+    public Result selectDownStorageCage () {
+        List<Map<String, Object>> list=downStorageCageService.selectDownStorageCages();
         return Result.build(200,"鎴愬姛",list);
     }
 
 
+//
+//    @ApiOperation("娣诲姞缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氱鍐呯粦瀹氱幓鐠�  鍙傛暟(DownStorageCageDetails downStorageCageDetails)")
+//    @PostMapping("/insertEdgStorageCage")
+//    @ResponseBody
+//    public Result insertEdgStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails) {
+//        boolean isSucess=downStorageCageService.updatedownStorageCageDetails(downStorageCageDetails);
+//        return Result.build(200,"娣诲姞鎴愬姛",1);
+//    }
 
-    @ApiOperation("娣诲姞缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氱鍐呯粦瀹氱幓鐠�  鍙傛暟(DownStorageCageDetails downStorageCageDetails)")
-    @PostMapping("/insertEdgStorageCage")
-    @ResponseBody
-    public Result insertEdgStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails) {
-        boolean isSucess=downStorageCageDetailsService.updatedownStorageCageDetails(downStorageCageDetails);
-        return Result.build(200,"娣诲姞鎴愬姛",1);
-    }
+
+
     @ApiOperation("淇敼缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氬绗煎唴鏍呮牸杩涜銆愬惎鐢�/绂佺敤銆�/ 銆愭洿鎹€�戠鍐呮爡鏍肩幓鐠冧俊鎭�")
-    @PostMapping("/updateEdgStorageCage")
+    @PostMapping("/updateDownStorageCage")
     @ResponseBody
-    public Result updateEdgStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails) {
-        boolean isSucess=downStorageCageDetailsService.updatedownStorageCageDetails(downStorageCageDetails);
+    public Result updateDownStorageCage(@RequestBody DownStorageCage downStorageCage) {
+        boolean isSucess=downStorageCageService.updateDownStorageCage(downStorageCage);
         return Result.build(200,"鏇存崲鎴愬姛",1);
     }
     @ApiOperation("鍒犻櫎缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愭竻闄ゃ��")
-    @PostMapping("/deleteEdgStorageCage")
+    @PostMapping("/deleteDownStorageCage")
     @ResponseBody
-    public Result deleteEdgStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails) {
-        boolean isSucess=downStorageCageDetailsService.updatedownStorageCageDetails(downStorageCageDetails);
+    public Result deleteDownStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails,int downStorageCageId) {
+        boolean isSucess=downStorageCageService.updateDownStorageCageDetails(downStorageCageId,downStorageCageDetails);
         return Result.build(200,"鍒犻櫎鎴愬姛",1);
     }
 
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 78b15e4..f5388ed 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
@@ -1,12 +1,12 @@
 package com.mes.downstorage.service;
 
+import com.github.yulichang.base.MPJBaseService;
 import com.mes.downstorage.entity.DownStorageCageDetails;
-import com.mes.glassinfo.entity.GlassInfo;
 
 import java.util.List;
 import java.util.Map;
 
-public interface DownStorageCageDetailsService {
+public interface DownStorageCageDetailsService extends MPJBaseService<DownStorageCageDetails> {
     /**
      * @return //娣诲姞鐞嗙墖绗煎唴淇℃伅
      */
@@ -18,19 +18,19 @@
      */
     boolean updatedownStorageCageDetails(DownStorageCageDetails details);
 
-    List<DownStorageCageDetails> getCacheLeisure();
+   // List<DownStorageCageDetails> getCacheLeisure();
 
     /**
      * @param start
      * @param end
      * @return 鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓ч『搴忓拰澶у皬鍑虹墖鐨勫皬鐗�
      */
-    List<DownStorageCageDetails> getCacheOut(int start, int end);
+  //  List<DownStorageCageDetails> getCacheOut(int start, int end);
 
     /**
      * @return 鏌ヨ绗煎瓙鍐呬俊鎭�
      */
-    List<Map> getCacheInfo();
+    List<Map<String, Object>> getCacheInfo();
 
 
     /**
@@ -38,7 +38,7 @@
      * @param width
      * @return 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿  鎵惧埌绌烘牸
      */
-    List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width);
+   // List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width);
 
     /**
      * @param start
@@ -50,6 +50,6 @@
     /**
      * @return 鏌ヨ绌烘牸瀛�
      */
-    List<DownStorageCageDetails> selectCacheEmpty2();
+   // 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 81a88a8..32d55a3 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
@@ -2,8 +2,10 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.yulichang.base.MPJBaseService;
+import com.mes.downglassinfo.entity.DownGlassTask;
 import com.mes.downstorage.entity.DownStorageCage;
 import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.glassinfo.entity.GlassInfo;
 
 import java.util.List;
 import java.util.Map;
@@ -18,25 +20,36 @@
  */
 public interface DownStorageCageService extends MPJBaseService<DownStorageCage> {
 
-
+    DownGlassTask createDownGlassTask(GlassInfo glassInfo, String startCell, String endCell, String taskType);
+    DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, String startCell, String endCell, String taskType);
     //    List<Map<String, Object>> selectCacheLeisure();
 
 
-    /**
-     * @param Number
-     * @return 杩涚墖
-     */
-    boolean processInto(String Number);
+
+
 
     /**
-
-     * @return 绌烘牸
+     * @return 鎵惧埌绌烘牸瀛�
      */
-
-    /**
-     * @return 鍑虹墖
-     */
-    boolean processOut();
     List<DownStorageCageDetails> selectCacheEmpty() ;
 
+    /**
+     * @param downStorageCage
+     * @return 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愬惎鐢�/绂佺敤銆�
+     */
+    boolean updateDownStorageCage(DownStorageCage downStorageCage);
+
+    /**
+     /**
+     *淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
+     */
+    boolean updateDownStorageCageDetails(int downStorageCageId,DownStorageCageDetails downStorageCageDetails);
+
+    /**
+     * @return 鏌ヨ绗煎瓙淇℃伅
+     */
+    List<Map<String, Object>> selectDownStorageCages();
+
 }
+
+
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 b5c01ee..c2d8f32 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
@@ -14,21 +14,23 @@
 import com.mes.downstorage.mapper.DownStorageCageMapper;
 import com.mes.downstorage.service.DownStorageCageDetailsService;
 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 javax.annotation.Resource;
 import java.util.List;
 import java.util.Map;
 @Slf4j
 @Service
 public class DownStorageCageDetailsServiceImpl extends ServiceImpl<DownStorageCageDetailsMapper, DownStorageCageDetails> implements DownStorageCageDetailsService {
 
-    @Autowired
+    @Autowired(required=false)
     private DownStorageCageMapper downStorageCageMapper;
     @Autowired
     private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
+    @Autowired
+    private GlassInfoMapper glassInfoMapper;
     @Override
     public void addDownStorageCageDetails(DownStorageCageDetails details) {
         this.save(details);
@@ -74,80 +76,98 @@
 
 
 
-    @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> 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<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")
+    public List<Map<String, Object>> getCacheInfo() {
+        log.info("鏌ヨ绗煎瓙鍐呬俊鎭�");
+        return downStorageCageDetailsMapper.selectJoinMaps(JoinWrappers.lambda(DownStorageCageDetails.class) // 浣跨敤 JoinWrappers.lambda 鍒涘缓鑱斿悎鏌ヨ
+                .selectAll(DownStorageCageDetails.class) // 閫夋嫨鎵�鏈夊瓧娈�
+                .eq(DownStorageCage::getSlot, DownStorageCageDetails::getSlot) // 璁剧疆鍏宠仈鏉′欢
+                .orderByAsc(DownStorageCage::getSlot) // 鎸� 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<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> 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")
-        );
-
-
-
-
-    }
+//    @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 d1a6673..cef8be4 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,19 +1,21 @@
 package com.mes.downstorage.service.impl;
 
 import com.github.yulichang.toolkit.JoinWrappers;
-import com.mes.common.PLCAutoMes;
-import com.mes.common.S7control;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+
 import com.mes.device.PlcParameterObject;
 import com.mes.downglassinfo.entity.DownGlassTask;
 import com.mes.downglassinfo.service.DownGlassTaskService;
 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.pp.entity.OptimizeDetail;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,7 +26,7 @@
 
 /**
  * <p>
- *  鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
  * </p>
  *
  * @author zhoush
@@ -33,7 +35,7 @@
 @Slf4j
 @Service
 public class DownStorageCageServiceImpl extends ServiceImpl<DownStorageCageMapper, DownStorageCage> implements DownStorageCageService {
-    @Autowired
+    @Autowired(required = false)
     private DownStorageCageMapper downStorageCageMapper;
 
     @Autowired
@@ -43,46 +45,26 @@
     private DownGlassTaskService downGlassTaskService;
     @Autowired
     private DownStorageCageDetailsService downStorageCageDetailsService;
+    @Autowired
+    private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    public DownGlassTask createDownGlassTask(GlassInfo glassInfo, String startCell, String endCell,String taskType ) {
+    @Override
+    public DownGlassTask createDownGlassTask(GlassInfo glassInfo, String startCell, String endCell, String taskType) {
         DownGlassTask downGlassTask = new DownGlassTask();
 
-        BeanUtils.copyProperties(glassInfo,downGlassTask);
+        BeanUtils.copyProperties(glassInfo, downGlassTask);
 
         downGlassTask.setStartCell(startCell);
-       downGlassTask.setTaskType(taskType);
-      downGlassTask.setEndCell(endCell);
+        downGlassTask.setTaskType(taskType);
+        downGlassTask.setEndCell(endCell);
         return downGlassTask;
     }
 
-
-    public DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, String startCell, String endCell,String taskType ) {
+    @Override
+    public DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, String startCell, String endCell, String taskType) {
         DownGlassTask downGlassTask = new DownGlassTask();
 
-        BeanUtils.copyProperties(glassInfo,downGlassTask);
+        BeanUtils.copyProperties(glassInfo, downGlassTask);
         downGlassTask.setStartCell(startCell);
         downGlassTask.setTaskType(taskType);
         downGlassTask.setEndCell(endCell);
@@ -90,140 +72,9 @@
     }
 
 
-    @Override
-    public boolean processInto(String Number) {
-
-        //鎸塱d鏌ヨ鐜荤拑淇℃伅琛ㄩ噷鐨勭幓鐠�
-        GlassInfo GlassInfo = glassInfoService.selectGlassId(Number);
-     PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
-        //瀛樺湪姝ょ幓鐠冪紪鍙�
-        if (GlassInfo != null) {
-            //鍚屾壘鍒板悓娴佺▼鍗¢檮杩戠┖鏍�
-            List<DownStorageCageDetails> list = selectCacheEmpty();
 
 
-
-            //            list<Map> list=selectCacheEmpty();
-//            list<Map> = downStorageCageService.selectCacheEmpty();
-            if (list.size() > 0) {
-                //瀛樺湪绌烘牸
-                //1.鐢熸垚浠诲姟锛�  璧峰浣嶇疆0   缁撴潫浣嶇疆this.slot  浠诲姟绫诲瀷 1   锛堣繘鐗囦换鍔★級
-                //2.鍥炲 1杩涚墖
-                DownStorageCageDetails item = list.get(0);
-
-                //selectInfo.insertCacheTask(GlassInfo.getId() + "", "0", item.getSlot() + "", "1", GlassInfo.getWidth(), GlassInfo.getHeight(), GlassInfo.getFilmsid(), GlassInfo.getThickness(), GlassInfo.getFlowcardId());
-
-                DownGlassTask downGlassTask =   createDownGlassTask(GlassInfo,"0",item.getSlot()+"","1");
-
-                downGlassTaskService.insertCacheTask(downGlassTask);
-
-               //S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
-
-
-                //瀹屾垚鍚庢彃鍏ュ皬鐗囨暟鎹埌缂撳瓨琛�
-                return true;
-            }
-
-        } else {
-            // ID缂栧彿涓嶅瓨鍦�   涓嶅鐞�/鍥炲PLC  杩涜鎶ヨ鎻愮ず
-        }
-        //杩斿洖缁撴灉
-        return false;
-    }
-
-
-    /**
-     * 鐞嗙墖 鍑�
-     * @return
-     */
-    //
-    @Override
-    public boolean processOut() {
-        // 鏌ヨ浠诲姟
-
-
-        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
-
-        List<DownStorageCageDetails> list = downStorageCageDetailsService.CacheOut(1, 5);
-        List<DownStorageCageDetails> list2 = downStorageCageDetailsService.CacheOut(6, 10);
-        List<DownStorageCageDetails> list3 = downStorageCageDetailsService.CacheOut(1, 10);
-        //鑷姩缁戝畾鏋跺瓙
-
-
-
-
-        // 浼樺厛 瓒呭嚭灏哄浼樺厛浜哄伐鍑虹墖 浜哄伐澶勭悊
-
-        if (!list3.isEmpty()) {
-            DownStorageCageDetails item3 = list3.get(0);
-            if (item3.getHeight() >= 1 && item3.getWidth() >= 1) {
-
-                String endcell = "13";
-                String SendEndcell = "1";
-
-
-
-                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");
-                return true;
-            }
-        }
-
-
-        //濡傛灉鍚屾椂鍓嶅悗绔兘绌洪棽 浼樺厛鍚庣鍑虹墖骞朵笖浼樺厛婊℃灦
-        else if (!list2.isEmpty()&&!list3.isEmpty()) {
-
-            DownStorageCageDetails item3 = list2.get(0);
-            String endcell = "11";
-            String SendEndcell = "1";
-
-            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");
-            return true;
-
-        }
-        // 鎸夌収澶у皬绗﹀悎鍓嶇鍑虹墖
-        else if (!list.isEmpty()) {
-            DownStorageCageDetails item = list.get(0);
-
-            // 鍑哄埌 G06
-
-
-            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;
-
-            // 鎸夌収澶у皬绗﹀悎鍚庣鍑虹墖
-        } else if (!list2.isEmpty()) {
-            DownStorageCageDetails item2 = list2.get(0);
-
-            // 鍑哄埌 G11
-
-            DownGlassTask downGlassTask =createDownGlassTask(item2,"0","11","2");
-            downGlassTaskService.insertCacheTask(downGlassTask);
-
-            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2");
-            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
-            return true;
-
-
-        }
-
-
-
-        // 杩斿洖缁撴灉
-        return false;
-    }
-
-
+    //鎵惧埌绌烘牸瀛�
     @Override
     public List<DownStorageCageDetails> selectCacheEmpty() {
         return baseMapper.selectJoinList(DownStorageCageDetails.class,
@@ -237,4 +88,66 @@
         );
     }
 
+
+    @Override
+    public List<Map<String, Object>> selectDownStorageCages() {
+        return baseMapper.selectJoinMaps(JoinWrappers.lambda(DownStorageCage.class)
+                .selectAll(DownStorageCage.class)
+                .selectAs(DownStorageCageDetails::getId, "esdId")
+                .select(DownStorageCageDetails::getGlassId, DownStorageCageDetails::getWidth, DownStorageCageDetails::getHeight, DownStorageCageDetails::getId)
+                .leftJoin(DownStorageCageDetails.class, on -> on
+                        .eq(DownStorageCageDetails::getDeviceId, DownStorageCage::getDeviceId)
+                        .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot))
+        );
+
+    }
+
+    /**
+     * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愬惎鐢�/绂佺敤銆�
+     *
+     * @param downStorageCage
+     * @return
+     */
+    @Override
+    public boolean updateDownStorageCage(DownStorageCage downStorageCage) {
+        DownStorageCage downItem = baseMapper.selectById(downStorageCage.getId());
+        downItem.setEnableState(downStorageCage.getEnableState());
+        baseMapper.updateById(downItem);
+        return true;
+    }
+
+    /**
+     * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
+     *
+     * @param downStorageCageId
+     * @param downStorageCageDetails
+     * @return
+     */
+    @Override
+    public boolean updateDownStorageCageDetails(int downStorageCageId, DownStorageCageDetails downStorageCageDetails) {
+        DownStorageCage downItem = baseMapper.selectById(downStorageCageId);
+        log.info("姝e父" + downItem);
+        if (downStorageCageDetails != null) {
+            DownStorageCageDetails edgDItem = downStorageCageDetailsMapper.selectById(downStorageCageDetails.getId());
+            //娣诲姞
+            if (edgDItem != null) {
+                //鍙紶鏍煎瓙  锛氱Щ闄ょ幓鐠�
+                DownStorageCageDetails newresult = downStorageCageDetailsMapper.selectById(downStorageCageDetails.getId());
+                newresult.setSlot(downItem.getSlot());
+                downStorageCageDetailsMapper.updateById(newresult);
+            }
+        }
+
+        if (downItem != null) {
+            //绉婚櫎
+            DownStorageCageDetails result = downStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<DownStorageCageDetails>().eq(DownStorageCageDetails::getSlot, downStorageCageId));
+            if (result != null) {
+                result.setSlot(0);
+                downStorageCageDetailsMapper.updateById(result);
+            }
+
+        }
+        return true;
+    }
+
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstation.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstation.java
index e9f6e7a..d242127 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstation.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstation.java
@@ -54,9 +54,15 @@
     private Integer workState;
 
 
+    /**
+     * 鎬绘暟閲�
+     */
     @TableField("total_quantity")
     private Integer totalquantity;
 
+    /**
+     * 钀芥灦鏁伴噺
+     */
     @TableField("racks_number")
     private Integer Racksnumber;
 
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 7ac060a..15cbb9f 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
@@ -56,7 +56,17 @@
      */
     private Integer state;
     /**
-     * 鐜荤拑
+     * 鐜荤拑ID
      */
     private String glassId;
+
+    /**
+     * 宸ヤ綅id
+     */
+    private String workstationid;
+
+    /**
+     * 鏈哄櫒浜�
+     */
+    private String Robot;
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java
index 3cdda74..b9b2df0 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.mes.downworkstation.entity.DownWorkstation;
 import com.mes.downworkstation.entity.DownWorkstationTask;
+import org.mapstruct.Mapper;
 
 import java.util.List;
 
@@ -15,7 +16,9 @@
  * @author zhoush
  * @since 2024-04-07
  */
+
 @DS("salve_hangzhoumes")
+@Mapper
 public interface DownWorkstationTaskMapper extends BaseMapper<DownWorkstationTask> {
 
     List<DownWorkstationTask> selectList();
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 7a1348b..5e8c697 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
@@ -55,11 +55,19 @@
      */
     int updateFlowCardIdAndCount(String flowCardId, int glassInfoCount, int workstationId);
 
-    void insertdownglassinfo();
+
 
     /**
      * @return //
      * 宸ヤ綅鏄剧ず
      */
     List<Map<String, Object>> getTotalGlassDimensionsByWorkstation();
+
+
+    /**
+     * @param flowcardid
+     * 鏍规嵁娴佺▼鍗″彿鏌ヨ
+     * @return
+     */
+    DownWorkstation selectByFlowCardId(String flowcardid);
 }
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 a40bc9b..7b11958 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
@@ -18,15 +18,17 @@
     /**
      * @param downGlassInfo 鎻掑叆浠诲姟
      */
-    void insertdownWorkstationtask(DownGlassInfo downGlassInfo);
+    void insertdownWorkstationtask(DownGlassInfo downGlassInfo,String workstationid);
 
     /**
-     * @param Id 鏇存柊浠诲姟鐘舵��
+     * @param downWorkstationTask 鏇存柊浠诲姟鐘舵��
      */
-    void updateTaskStateToZero(long Id);
+    void updateTaskState(DownWorkstationTask downWorkstationTask);
 
     /**
      * @return 鑾峰彇浠诲姟鐘舵�佷负1鐨勪俊鎭�
      */
     List<DownWorkstationTask> getTaskState();
+
+    void deleteTask(DownWorkstationTask downWorkstationTask);
 }
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 5800c38..0746d83 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
@@ -32,7 +32,7 @@
 
     @Autowired
     private DownWorkstationMapper downWorkstationMapper;
-    @Autowired
+    @Autowired(required=false)
     private DownWorkstationTaskMapper downWorkstationTaskMapper;
     @Autowired
     private DownGlassInfoService downGlassInfoService;
@@ -52,13 +52,13 @@
 //鑾峰彇鎬绘暟閲�
     @Override
     public int getTotalQuantity(int workstationId) {
-        QueryWrapper<DownWorkstation> queryWrapper = new QueryWrapper<>();
-        queryWrapper.select("total_quantity")
-                .eq("workstation_id", workstationId);
+        DownWorkstation result = baseMapper.selectOne(new QueryWrapper<DownWorkstation>().lambda()
+                .select(DownWorkstation::getTotalquantity)
+                .eq(DownWorkstation::getWorkstationId, workstationId));
 
-        DownWorkstation result = baseMapper.selectOne(queryWrapper);
         return result != null ? result.getTotalquantity() : 0;
     }
+
 
     //宸ヤ綅鏄剧ず
     @Override
@@ -68,8 +68,8 @@
                 .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 = null;
+    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<>();
@@ -148,6 +148,7 @@
 
 
 
+    @Override
     public DownWorkstation selectByFlowCardId(String flowcardid) {
         QueryWrapper<DownWorkstation> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("flow_card_id", flowcardid);
@@ -167,74 +168,6 @@
     }
 
 
-    @Override
-    public void insertdownglassinfo() {
-
-
-        List<DownGlassTask> taskdownGlassInf = downGlassTaskService.getUnloadingTaskState();
-//
-
-
-        if (taskdownGlassInf != null && !taskdownGlassInf.isEmpty()) {
-
-//
-
-            for (DownGlassTask downGlassInfo : taskdownGlassInf) {
-                // 鍒涘缓鏂扮殑 DownGlassInfo 瀵硅薄骞惰缃浉鍏冲睘鎬�
-                DownGlassInfo newdownGlassInfo = new DownGlassInfo();
-
-                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.setHeight(downGlassInfo.getHeight());
-                newdownGlassInfo.setThickness(downGlassInfo.getThickness());
-                newdownGlassInfo.setFilmsid(downGlassInfo.getFilmsid());
-                // 璁剧疆椤哄簭瀛楁鍊�
-                newdownGlassInfo.setSequence(sequence);
-
-                // 鎻掑叆鏁版嵁鍒颁笅鐗囩幓鐠冧俊鎭〃
-                downGlassInfoService.insertDownGlassInfo(newdownGlassInfo);
-                //鎻掑叆鏁版嵁鍒版満姊版墜浠诲姟琛�
-
-                downWorkstationTaskService.insertdownWorkstationtask(newdownGlassInfo);
-                //鏇存柊涓嬬墖浠诲姟琛ㄧ姸鎬佷负0
-                downGlassTaskService.updateTaskStateToZero(downGlassInfo.getId());
-                //鍒犻櫎涓嬬墖浠诲姟琛ㄤ腑鐨勮褰�
-                downGlassTaskService.deleteTask(downGlassInfo.getFlowCardId());
-
-                sequence++; // 閫掑椤哄簭瀛楁鍊�
-
-
-            }
-        }
-
-
-        try {
-            //鏌ヨ涓嬬墖宸ヤ綅琛ㄤ腑鏋跺瓙鏄惁缁戝畾浜嗘祦绋嬪崱鍙� 宸ヤ綅琛ㄥ拰浠诲姟琛ㄤ腑鐘舵�佷负1鐨勬祦绋嬪崱鍙峰拰宸茶惤鏋舵暟閲�
-            List<DownWorkstationTask> taskdownWorkstation = downWorkstationTaskService.getTaskState();
-            if (taskdownWorkstation != null && !taskdownWorkstation.isEmpty()) {
-                //锛屽鏋滃凡缁忕粦瀹氬垯鏇存柊宸茶惤鏋舵暟閲�,骞朵笖鍒犻櫎涓嬬墖浠诲姟琛ㄤ腑鐨勮褰�
-                for (DownWorkstationTask downWorkstation : taskdownWorkstation) {
-                    //鏇存柊涓嬬墖宸ヤ綅琛ㄤ腑宸茶惤鏋舵暟閲�
-                    DownWorkstation downWorkstation1 = selectByFlowCardId(downWorkstation.getFlowCardId());
-                    updateracksnumber(downWorkstation.getFlowCardId(), downWorkstation1.getRacksnumber() + 1);
-                    //鏇存柊鏈烘浠诲姟琛ㄤ腑鐘舵�佷负0
-                    downWorkstationTaskService.updateTaskStateToZero(downWorkstation.getId());
-                    //鍒犻櫎鏈烘浠诲姟琛�
-                    downWorkstationTaskService.removeById(downWorkstation.getId());
-
-
-                }
-            }
-        } catch (Exception e) {
-            // 鎵撳嵃寮傚父淇℃伅
-            e.printStackTrace();
-            // 鎴栬�呭彲浠ヨ繘琛屽叾浠栧紓甯稿鐞嗭紝姣斿璁板綍鏃ュ織鎴栬�呰繑鍥炵壒瀹氱殑閿欒淇℃伅
-        }
-    }
 
 
 }
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 01cf539..813c149 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
@@ -1,6 +1,8 @@
 package com.mes.downworkstation.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.downglassinfo.entity.DownGlassInfo;
@@ -25,7 +27,7 @@
 public class DownWorkstationTaskServiceImpl extends ServiceImpl<DownWorkstationTaskMapper, DownWorkstationTask> implements DownWorkstationTaskService {
 
 
-    public void insertdownWorkstationtask(DownGlassInfo downGlassInfo) {
+    public void insertdownWorkstationtask(DownGlassInfo downGlassInfo,String workstationid) {
         DownWorkstationTask entity = new DownWorkstationTask();
         // 鏌ヨ褰撳墠鏈�澶х殑 id 鍊�
         Long maxId = getMaxId();
@@ -33,9 +35,10 @@
         Long newId = (maxId == null) ? 1 : maxId + 1;
 
 
-        BeanUtils.copyProperties(entity,downGlassInfo);
+        BeanUtils.copyProperties(downGlassInfo,entity);
         entity.setId(newId); // 璁剧疆鎵嬪姩閫掑鐨� id
         entity.setState(1);
+        entity.setWorkstationid(workstationid);
         baseMapper.insert(entity);
     }
 
@@ -62,12 +65,24 @@
         queryWrapper.eq("state", 1);
         return baseMapper.selectList(queryWrapper);
     }
-    @Override
-    public void updateTaskStateToZero(long id) {
-        UpdateWrapper<DownWorkstationTask> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.set("state", 0).eq("id", id);
 
-        baseMapper.update(new DownWorkstationTask(), updateWrapper);
+    @Override
+    public void updateTaskState(DownWorkstationTask downWorkstationTask) {
+        LambdaUpdateWrapper<DownWorkstationTask> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+
+        lambdaUpdateWrapper.set(DownWorkstationTask::getState, 2)
+                .eq(DownWorkstationTask::getGlassId, downWorkstationTask.getGlassId());
+
+        baseMapper.update(new DownWorkstationTask(), lambdaUpdateWrapper);
+    }
+
+
+    @Override
+    public void deleteTask(DownWorkstationTask downWorkstationTask) {
+        LambdaQueryWrapper<DownWorkstationTask> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(DownWorkstationTask::getGlassId, downWorkstationTask.getGlassId());
+
+        baseMapper.delete(queryWrapper);
     }
 
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
index 7d16a94..2f827dc 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
@@ -16,10 +16,22 @@
  */
 public interface GlassInfoService extends IService<GlassInfo> {
 
+    /**
+     * @param flowCardId
+     * @return 鏍规嵁娴佺▼鍗″彿鏌ヨ鐜荤拑淇℃伅
+     */
     int getGlassInfoCountByFlowCardId(String flowCardId);
 
+    /**
+     * @return
+     * 鏌ヨ鎵�鏈変笉鍚屾祦绋嬪崱鍙�
+     */
     List<Map<String, Object>> getFlowCardId();
 
+    /**
+     * @param id
+     * @return 鏍规嵁鐜荤拑id鏌ヨ鐜荤拑淇℃伅
+     */
     GlassInfo selectGlassId(String id);
 //    List<GlassInfo> getmaxglass(GlassInfo glassInfo);
 }
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 a60db72..58bb4b0 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
@@ -24,34 +24,34 @@
 
     private GlassInfoMapper glassInfoMapper;
 
-    @Autowired
+    @Autowired(required=false)
     public GlassInfoServiceImpl(GlassInfoMapper glassInfoMapper) {
         this.glassInfoMapper = glassInfoMapper;
     }
 
     @Override
     public int getGlassInfoCountByFlowCardId(String flowCardId) {
-        QueryWrapper<GlassInfo> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("flow_card_id", flowCardId);
-
-        return baseMapper.selectCount(queryWrapper);
+        return baseMapper.selectCount(new QueryWrapper<GlassInfo>().lambda()
+                .eq(GlassInfo::getFlowCardId, flowCardId));
     }
+
 
     @Override
     public List<Map<String, Object>> getFlowCardId() {
-        return baseMapper.selectMaps(new QueryWrapper<GlassInfo>().select("DISTINCT flow_card_id"));
+        return baseMapper.selectMaps(new QueryWrapper<GlassInfo>().lambda().select(GlassInfo::getFlowCardId).groupBy(GlassInfo::getFlowCardId));
     }
+
+
 
 
 
     @Override
     public GlassInfo selectGlassId(String id) {
-        QueryWrapper<GlassInfo> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("glass_id", id);
-
-        return baseMapper.selectOne(queryWrapper);
+        return baseMapper.selectOne(new QueryWrapper<GlassInfo>().lambda()
+                .eq(GlassInfo::getGlassId, id));
     }
 
 
 
+
 }
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
new file mode 100644
index 0000000..82516cd
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java
@@ -0,0 +1,301 @@
+package com.mes.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.mes.common.S7object;
+import com.mes.common.config.Const;
+import com.mes.device.PlcParameterObject;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.mapper.DownGlassInfoMapper;
+import com.mes.downglassinfo.service.DownGlassInfoService;
+import com.mes.downstorage.entity.DownStorageCage;
+import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.service.DownStorageCageDetailsService;
+import com.mes.downstorage.service.DownStorageCageService;
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.entity.DownWorkstationTask;
+import com.mes.downworkstation.service.DownWorkstationService;
+import com.mes.downworkstation.service.DownWorkstationTaskService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.downglassinfo.entity.DownGlassTask;
+import com.mes.downglassinfo.service.DownGlassTaskService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/5/8 8:17
+ * @Description:
+ */
+@Component
+@Slf4j
+public class DownCacheGlassTask {
+
+
+    @Autowired
+    DownGlassTaskService downGlassTaskService;
+    @Autowired
+    GlassInfoService glassInfoService;
+    @Autowired
+    DownStorageCageDetailsService downStorageCageDetailsService;
+    @Autowired
+    DownStorageCageService downStorageCageService;
+    @Autowired
+    DownWorkstationService downWorkstationService;
+    @Autowired
+     DownGlassInfoService downGlassInfoService;
+
+
+
+
+    @Autowired
+    private DownWorkstationTaskService downWorkstationTaskService;
+
+//    @Value("${mes.threshold}")
+    private int threshold;
+
+   // @Scheduled(fixedDelay = 1000)
+    public void plcdownGlassTask() {
+   //   PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+//        String taskRequestTypeValue = plcParameterObject.getPlcParameter("A06_request_word").getValue();
+//        String glassIdeValue = plcParameterObject.getPlcParameter("A05_scanning_ID").getValue();
+//        String confirmationWrodValue = plcParameterObject.getPlcParameter("MES_confirmation_word").getValue();
+//        String outGlassstate = plcParameterObject.getPlcParameter("A09_glass_status").getValue();
+//        String confirmationWrodAddress = plcParameterObject.getPlcParameter("MES_confirmation_word").getAddress();
+      // String G06RobotTaskRequestWord = plcParameterObject.getPlcParameter("G06RobotTaskRequestWord").getAddress();
+
+
+                String taskRequestTypeValue ="1";
+        String glassIdeValue ="NG24041101C002-2-6-1-6";
+        String confirmationWrodValue ="1";
+        String outGlassstate="1";
+        String confirmationWrodAddress="1";
+        String G11RobotTaskRequestWord ="1";
+        String G06RobotTaskRequestWord ="1";
+        String G13RobotTaskRequestWord ="1";
+
+                log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{}锛岃幏鍙栧埌鐨勭‘璁ゅ瓧涓猴細{}锛岃幏鍙栧埌鐨勫嚭鐗囩姸鎬佷负锛歿}",
+                taskRequestTypeValue, glassIdeValue, confirmationWrodValue, outGlassstate);
+
+//        if ("0".equals(taskRequestTypeValue)) {
+//            if ("0".equals(confirmationWrodValue)) {
+//                log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓�0锛屼笖纭瀛椾负0锛屼笉鎵ц浠诲姟");
+//                return;
+//            }
+//            log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓�0锛屽皢纭瀛楁敼涓�0");
+//            S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 0);
+//            return;
+//        }
+//        if (!"0".equals(confirmationWrodValue)) {
+//            log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓嶄负0锛屽皢纭瀛楁敼涓�0");
+//            S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 0);
+//            return;
+//        }
+
+        if ("1".equals(taskRequestTypeValue)) {
+            log.info("3銆佽繘鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�");
+            inTo(glassIdeValue, confirmationWrodAddress);
+        } else if ("2".equals(taskRequestTypeValue)) {
+
+            log.info("3銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�");
+            outTo( confirmationWrodAddress);
+
+        } else if ("3".equals(taskRequestTypeValue)) {
+            log.info("3銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟");
+            if (outTo( confirmationWrodAddress)) {
+
+
+                inTo(glassIdeValue, confirmationWrodAddress);
+
+
+            }
+        }
+
+        if (("1".equals(G11RobotTaskRequestWord) || "1".equals(G06RobotTaskRequestWord))  || "1".equals(G13RobotTaskRequestWord)) {
+            log.info("4銆佹湁鏈哄櫒浜轰笅鐗囪姹傦紝鎵ц涓嬬墖浠诲姟");
+            insertdownglassinfo();
+        }
+
+        //鑷姩缁戝畾鏋跺瓙锛屽鏋滃伐浣嶈〃娌℃湁缁戝畾鏋跺瓙锛岄粯璁ゅ皢绗煎瓙涓暟閲忔渶澶氱殑娴佺▼鍗″彿缁戝畾鏈哄櫒鎵�2鐨勭┖鏋跺瓙
+
+
+
+    }
+
+    /**
+     * 杩涚墖浠诲姟
+     * @param glassId
+     * @param confirmationWrodAddress
+     * @param
+     */
+    private void inTo(String glassId, String confirmationWrodAddress) {
+        log.info("1銆佹寜鐓х幓鐠僫d:{}鑾峰彇鐜荤拑灏忕墖淇℃伅", glassId);
+        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
+        if (glassInfo == null) {
+            log.info("2銆佹鐜荤拑缂栧彿涓嶅瓨鍦�");
+            return;
+        }
+        log.info("2銆佽幏鍙栧埌鐨勭幓鐠冧俊鎭负{}", glassInfo);
+        //娣诲姞杩涚墖浠诲姟  鏌ユ壘绌烘牸
+        List<DownStorageCageDetails> list = downStorageCageService.selectCacheEmpty();
+        if(list.size()>0){
+            DownStorageCageDetails item = list.get(0);
+
+
+
+        log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", list);
+        log.info("4銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
+        DownStorageCageDetails details = new DownStorageCageDetails();
+        BeanUtils.copyProperties(glassInfo, details);
+        details.setState(1);
+        details.setGlassId(item.getGlassId());
+        details.setSlot(item.getSlot());
+        details.setDeviceId(item.getDeviceId());
+        downStorageCageDetailsService.save(details);
+        log.info("5銆佺幓鐠冧俊鎭凡瀛樺叆鐞嗙墖绗艰鎯呰〃锛岀幓鐠冧俊鎭负{}", details);
+
+            DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(glassInfo, "0", item.getSlot() + "", "1");
+        //娣诲姞杩涚墖浠诲姟
+
+        log.info("6銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃{}", downGlassTask);
+            downGlassTaskService.insertCacheTask(downGlassTask);
+        }
+        //S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 1);
+        log.info("7銆佸彂閫佺‘璁ゅ瓧瀹屾垚");
+
+
+    }
+
+    /**
+     * 鍑虹墖浠诲姟
+     *
+     * @param confirmationWrodAddress
+     *
+     */
+    private Boolean outTo( String confirmationWrodAddress) {
+        log.info("鍗曠墖鎯呭喌鏍规嵁浼犲叆鐨勮澶噄d 鏌ヨ绗﹀悎鎸夌収澶у皬鍑虹墖,骞朵笖浼樺厛鍑烘弧鏋剁殑灏忕墖");
+        List<DownStorageCageDetails> list = downStorageCageDetailsService.CacheOut(1,3);
+
+        List<DownStorageCageDetails> list2 = downStorageCageDetailsService.CacheOut(4,6);
+
+        List<DownStorageCageDetails> list3 = downStorageCageDetailsService.CacheOut(1, 6);
+        // 浼樺厛 瓒呭嚭灏哄浼樺厛浜哄伐鍑虹墖 浜哄伐澶勭悊
+        if (!list3.isEmpty()) {
+            log.info("浜哄伐澶勭悊");
+            DownStorageCageDetails item3 = list3.get(0);
+            if (item3.getHeight() >= 2500 && item3.getWidth() >= 2660) {
+                String endcell = "7";
+
+
+                DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(item3, "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;
+    }
+
+
+//
+    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());
+                // 璁剧疆椤哄簭瀛楁鍊�
+                newdownGlassInfo.setSequence(sequence);
+                // 鎻掑叆鏁版嵁鍒颁笅鐗囩幓鐠冧俊鎭〃
+
+                downGlassInfoService.insertDownGlassInfo(newdownGlassInfo);
+                log.info("鎻掑叆鏁版嵁鍒颁笅鐗囩幓鐠冧俊鎭〃");
+                DownWorkstation downWorkstation1 = downWorkstationService.selectByFlowCardId(downGlassInfo.getFlowCardId());
+                downWorkstationService.updateracksnumber(downGlassInfo.getFlowCardId(), downWorkstation1.getRacksnumber() + 1);
+                log.info("鏇存柊钀芥灦鏁伴噺");
+
+                sequence++; // 閫掑椤哄簭瀛楁鍊�
+
+
+            }
+        }
+        } catch (Exception e) {
+            // 鎵撳嵃寮傚父淇℃伅
+            e.printStackTrace();
+            // 鎴栬�呭彲浠ヨ繘琛屽叾浠栧紓甯稿鐞嗭紝姣斿璁板綍鏃ュ織鎴栬�呰繑鍥炵壒瀹氱殑閿欒淇℃伅
+        }
+
+
+    }
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java
index 8fbb58a..d5cc9c8 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java
@@ -18,13 +18,13 @@
 public class ExcelToJsonConverter {
 
     public static void main(String[] args) {
-        String excelFilePath = "src/main/resources/JsonFile/alarm.xlsx";
+        String excelFilePath = "src/main/resources/JsonFile/PlcdownGlass.xlsx";
         String sheetName = "Sheet1";
         int addressColumnIndex = 0;
         int nameColumnIndex = 1;
 
         //int unitColumnIndex = 2;
-        String outputFilePath = "src/main/resources/JsonFile/PlcAlarm.json";
+        String outputFilePath = "src/main/resources/JsonFile/PlcdownGlass.json";
 
         try (Workbook workbook = new XSSFWorkbook(new FileInputStream(excelFilePath))) {
             Sheet sheet = workbook.getSheet(sheetName);
@@ -75,8 +75,8 @@
             LinkedHashMap<String, Object> resultObject = new LinkedHashMap<>();
             resultObject.put("plcAddressBegin", "DB100.0");
             resultObject.put("plcAddressLenght", String.valueOf(plcAddressLength));
-            // resultObject.put("dataType", "word");
-            resultObject.put("dataType", "bit");
+            resultObject.put("dataType", "word");
+           // resultObject.put("dataType", "bit");
             resultObject.put("parameteInfor", jsonList);
 
             Gson gson = new Gson();
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json
deleted file mode 100644
index acfdad0..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json
+++ /dev/null
@@ -1,371 +0,0 @@
-{
-  "plcAddressBegin": "DB104.0.0",
-  "plcAddressLenght": "91",
-  "dataType": "bit",
-  "parameteInfor": [
-    {
-      "codeId": "D01VFDerror",
-      "addressIndex": 0
-    },
-    {
-      "codeId": "D02VFDerror",
-      "addressIndex": 1
-    },
-    {
-      "codeId": "D03VFDerror",
-      "addressIndex": 2
-    },
-    {
-      "codeId": "D04VFDerror",
-      "addressIndex": 3
-    },
-    {
-      "codeId": "D05VFDerror",
-      "addressIndex": 4
-    },
-    {
-      "codeId": "D06VFDerror",
-      "addressIndex": 5
-    },
-    {
-      "codeId": "B01VFDerror",
-      "addressIndex": 6
-    },
-    {
-      "codeId": "B02VFDerror",
-      "addressIndex": 7
-    },
-    {
-      "codeId": "A01VFDerror",
-      "addressIndex": 8
-    },
-    {
-      "codeId": "A02VFDerror",
-      "addressIndex": 9
-    },
-    {
-      "codeId": "A01servoturnerror",
-      "addressIndex": 10
-    },
-    {
-      "codeId": "A02servoturnerror",
-      "addressIndex": 11
-    },
-    {
-      "codeId": "A01servotravelerror",
-      "addressIndex": 12
-    },
-    {
-      "codeId": "A02servotravelerror",
-      "addressIndex": 13
-    },
-    {
-      "codeId": "B01servotravelerror",
-      "addressIndex": 14
-    },
-    {
-      "codeId": "B02servotravelerror",
-      "addressIndex": 15
-    },
-    {
-      "codeId": "D01DECerror",
-      "addressIndex": 16
-    },
-    {
-      "codeId": "D01poserror",
-      "addressIndex": 17
-    },
-    {
-      "codeId": "D02DECerror",
-      "addressIndex": 18
-    },
-    {
-      "codeId": "D02poserror",
-      "addressIndex": 19
-    },
-    {
-      "codeId": "D03DECerror",
-      "addressIndex": 20
-    },
-    {
-      "codeId": "D03poserror",
-      "addressIndex": 21
-    },
-    {
-      "codeId": "D04DECerror",
-      "addressIndex": 22
-    },
-    {
-      "codeId": "D04poserror",
-      "addressIndex": 23
-    },
-    {
-      "codeId": "D05DECerror",
-      "addressIndex": 24
-    },
-    {
-      "codeId": "D05poserror",
-      "addressIndex": 25
-    },
-    {
-      "codeId": "D06DECerror",
-      "addressIndex": 26
-    },
-    {
-      "codeId": "D06poserror",
-      "addressIndex": 27
-    },
-    {
-      "codeId": "A01DECerror",
-      "addressIndex": 28
-    },
-    {
-      "codeId": "A01poserror",
-      "addressIndex": 29
-    },
-    {
-      "codeId": "A02DECerror",
-      "addressIndex": 30
-    },
-    {
-      "codeId": "A02poserror",
-      "addressIndex": 31
-    },
-    {
-      "codeId": "B01INDECerror",
-      "addressIndex": 32
-    },
-    {
-      "codeId": "B01INposerror",
-      "addressIndex": 33
-    },
-    {
-      "codeId": "B01OUTDECerror",
-      "addressIndex": 34
-    },
-    {
-      "codeId": "B01OUTposerror",
-      "addressIndex": 35
-    },
-    {
-      "codeId": "B02INDECerror",
-      "addressIndex": 36
-    },
-    {
-      "codeId": "B02INposerror",
-      "addressIndex": 37
-    },
-    {
-      "codeId": "B02OUTDECerror",
-      "addressIndex": 38
-    },
-    {
-      "codeId": "B02OUTposerror",
-      "addressIndex": 39
-    },
-    {
-      "codeId": "D01Scanglassexceedinglimit",
-      "addressIndex": 40
-    },
-    {
-      "codeId": "emergencystopalarm",
-      "addressIndex": 41
-    },
-    {
-      "codeId": "Moreglassthanknown",
-      "addressIndex": 42
-    },
-    {
-      "codeId": "lessglassthanknown",
-      "addressIndex": 43
-    },
-    {
-      "codeId": "D01conveyortimeoutalarm",
-      "addressIndex": 44
-    },
-    {
-      "codeId": "D02conveyortimeoutalarm",
-      "addressIndex": 45
-    },
-    {
-      "codeId": "D03conveyortimeoutalarm",
-      "addressIndex": 46
-    },
-    {
-      "codeId": "D04conveyortimeoutalarm",
-      "addressIndex": 47
-    },
-    {
-      "codeId": "D05conveyortimeoutalarm",
-      "addressIndex": 48
-    },
-    {
-      "codeId": "D06conveyortimeoutalarm",
-      "addressIndex": 49
-    },
-    {
-      "codeId": "A01conveyortimeoutalarm",
-      "addressIndex": 50
-    },
-    {
-      "codeId": "A02conveyortimeoutalarm",
-      "addressIndex": 51
-    },
-    {
-      "codeId": "B01conveyortimeoutalarm",
-      "addressIndex": 52
-    },
-    {
-      "codeId": "B02conveyortimeoutalarm",
-      "addressIndex": 53
-    },
-    {
-      "codeId": "A01conveyorLeftsafetyalarm",
-      "addressIndex": 54
-    },
-    {
-      "codeId": "A01conveyorrightsafetyalarm",
-      "addressIndex": 55
-    },
-    {
-      "codeId": "A02conveyorLeftsafetyalarm",
-      "addressIndex": 56
-    },
-    {
-      "codeId": "A02conveyorrightsafetyalarm",
-      "addressIndex": 57
-    },
-    {
-      "codeId": "1#buffersafetyalarm",
-      "addressIndex": 58
-    },
-    {
-      "codeId": "2#buffersafetyalarm",
-      "addressIndex": 59
-    },
-    {
-      "codeId": "3#buffersafetyalarm",
-      "addressIndex": 60
-    },
-    {
-      "codeId": "4#buffersafetyalarm",
-      "addressIndex": 61
-    },
-    {
-      "codeId": "A01.SRrightinposerror",
-      "addressIndex": 62
-    },
-    {
-      "codeId": "A02.SRleftinposerror",
-      "addressIndex": 63
-    },
-    {
-      "codeId": "B01.SRleftinposerror",
-      "addressIndex": 64
-    },
-    {
-      "codeId": "B01.SRleftdecerror",
-      "addressIndex": 65
-    },
-    {
-      "codeId": "B01.SRrightdecerror",
-      "addressIndex": 66
-    },
-    {
-      "codeId": "B01.SRrightinposerror",
-      "addressIndex": 67
-    },
-    {
-      "codeId": "B02.SRleftinposerror",
-      "addressIndex": 68
-    },
-    {
-      "codeId": "B02.SRleftdecerror",
-      "addressIndex": 69
-    },
-    {
-      "codeId": "B02.SRrightdecerror",
-      "addressIndex": 70
-    },
-    {
-      "codeId": "B02.SRrightinposerror",
-      "addressIndex": 71
-    },
-    {
-      "codeId": "A01servoturnhomed",
-      "addressIndex": 72
-    },
-    {
-      "codeId": "A02servoturnhomed",
-      "addressIndex": 73
-    },
-    {
-      "codeId": "A01servotravelhomed",
-      "addressIndex": 74
-    },
-    {
-      "codeId": "A02servotravelhomed",
-      "addressIndex": 75
-    },
-    {
-      "codeId": "B01servotravelhomed",
-      "addressIndex": 76
-    },
-    {
-      "codeId": "B02servotravelhomed",
-      "addressIndex": 77
-    },
-    {
-      "codeId": "resetDelay",
-      "addressIndex": 78
-    },
-    {
-      "codeId": "A01travelNegativelimit",
-      "addressIndex": 79
-    },
-    {
-      "codeId": "A01travelPositivelimit",
-      "addressIndex": 80
-    },
-    {
-      "codeId": "A01turnuplimit",
-      "addressIndex": 81
-    },
-    {
-      "codeId": "A01turndownlimit",
-      "addressIndex": 82
-    },
-    {
-      "codeId": "A02travelNegativelimit",
-      "addressIndex": 83
-    },
-    {
-      "codeId": "A02travelPositivelimit",
-      "addressIndex": 84
-    },
-    {
-      "codeId": "A02turnuplimit",
-      "addressIndex": 85
-    },
-    {
-      "codeId": "A02turndownlimit",
-      "addressIndex": 86
-    },
-    {
-      "codeId": "B01travelNegativelimit",
-      "addressIndex": 87
-    },
-    {
-      "codeId": "B01travelPositivelimit",
-      "addressIndex": 88
-    },
-    {
-      "codeId": "B02travelNegativelimit",
-      "addressIndex": 89
-    },
-    {
-      "codeId": "B02travelPositivelimit",
-      "addressIndex": 90
-    }
-  ]
-}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json
deleted file mode 100644
index ab5d4cd..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
-   "plcAddressBegin":"DB105.0",
-   "plcAddressLenght":"12",
-   "dataType":"word",
-   "parameteInfor":[
-      {
-         "codeId": "OutActivate",
-         "addressIndex":"0",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-          "codeId": "Addgoal",
-          "addressIndex":"2",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"m/min"      
-       },
-       {
-          "codeId": "AddLength",
-          "addressIndex":"4",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"m/min"       
-       },
-       {
-          "codeId": "AddWidth",
-          "addressIndex":"6",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "AddCount",
-          "addressIndex":"8",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "OutStart",
-          "addressIndex":"10",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       }
-
-   ]
-}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json
deleted file mode 100644
index afbe090..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json
+++ /dev/null
@@ -1,610 +0,0 @@
-{
-   "plcAddressBegin":"DB100.0",
-   "plcAddressLenght":"198",
-   "dataType":"word",
-   "parameteInfor":[
-      {
-         "codeId": "conveyorVelocity(Max)",
-         "addressIndex":"0",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-          "codeId": "conveyorVelocity(AutoFAST)",
-          "addressIndex":"2",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"m/min"      
-       },
-       {
-          "codeId": "conveyorVelocity(AutoSLOW)",
-          "addressIndex":"4",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"m/min"       
-       },
-       {
-          "codeId": "conveyorVelocity(Manual)",
-          "addressIndex":"6",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "A01A02TURNJOGVelocity",
-          "addressIndex":"8",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "A01A02TRAVELJOGVelocity",
-          "addressIndex":"10",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "B01B02TRAVELJOGVelocity",
-          "addressIndex":"12",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "A01A02TURNPOSVelocityAUTO",
-          "addressIndex":"14",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "A01TURNPOSVelocitymanual",
-          "addressIndex":"16",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-         "codeId": "A01A02TRAVELPOSVelocityAUTO",
-         "addressIndex":"18",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },
-     {
-       "codeId": "A01TRAVELPOSVelocitymanual",
-       "addressIndex":"20",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm/S"
-     },
-     {
-       "codeId": "B01B02TRAVELPOSVelocityAUTO",
-       "addressIndex":"22",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm/S"
-     },
-     {
-       "codeId": "B01TRAVELPOSVelocitymanual",
-       "addressIndex":"24",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm/S"
-     },
-     {
-       "codeId": "A01A02conveyorVelocity(Max)",
-       "addressIndex":"26",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"m/min"
-     },
-     {
-       "codeId": "A01A02conveyorVelocity(AutoFAST)",
-       "addressIndex":"28",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"m/min"
-     },
-     {
-       "codeId": "A01A02conveyorVelocity(AutoSLOW)",
-       "addressIndex":"30",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"m/min"
-     },
-     {
-       "codeId": "B01B02conveyorVelocity(Manual)",
-       "addressIndex":"32",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"m/min"
-     },
-     {
-       "codeId": "B01B02conveyorVelocity(Max)",
-       "addressIndex":"34",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"m/min"
-     },
-     {
-       "codeId": "B01B02conveyorVelocity(AutoFAST)",
-       "addressIndex":"36",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"m/min"
-     },
-     {
-       "codeId": "B01B02conveyorVelocity(AutoSLOW)",
-       "addressIndex":"38",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"m/min"
-     },
-     {
-       "codeId": "B01B02conveyorVelocity(Manual)",
-       "addressIndex":"40",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"m/min"
-     },
-     {
-       "codeId": "gridspacing",
-       "addressIndex":"42",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A01Spliceaddresssetting",
-       "addressIndex":"44",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A02Spliceaddresssetting",
-       "addressIndex":"46",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A011#gridaddress",
-       "addressIndex":"48",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A0122#gridaddress",
-       "addressIndex":"50",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A0143#gridaddress",
-       "addressIndex":"52",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A0164#gridaddress",
-       "addressIndex":"54",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A0185#gridaddress",
-       "addressIndex":"56",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A01106#gridaddress",
-       "addressIndex":"58",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A01127#gridaddress",
-       "addressIndex":"60",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A01148#gridaddress",
-       "addressIndex":"62",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A01169#gridaddress",
-       "addressIndex":"64",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A01190#gridaddress",
-       "addressIndex":"66",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A021#gridaddress",
-       "addressIndex":"68",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A0222#gridaddress",
-       "addressIndex":"70",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A0243#gridaddress",
-       "addressIndex":"72",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A0264#gridaddress",
-       "addressIndex":"74",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A0285#gridaddress",
-       "addressIndex":"76",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A02106#gridaddress",
-       "addressIndex":"78",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A02127#gridaddress",
-       "addressIndex":"80",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A02148#gridaddress",
-       "addressIndex":"82",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A02169#gridaddress",
-       "addressIndex":"84",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A02190#gridaddress",
-       "addressIndex":"86",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "B011#gridaddress",
-       "addressIndex":"88",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "B0122#gridaddress",
-       "addressIndex":"90",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "B0143#gridaddress",
-       "addressIndex":"92",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "B0164#gridaddress",
-       "addressIndex":"94",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "B0185#gridaddress",
-       "addressIndex":"96",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "B02106#gridaddress",
-       "addressIndex":"98",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "B02127#gridaddress",
-       "addressIndex":"100",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "B02148#gridaddress",
-       "addressIndex":"102",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "B02169#gridaddress",
-       "addressIndex":"104",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "B02190#gridaddress",
-       "addressIndex":"106",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"mm"
-     },
-     {
-       "codeId": "A01Targetgrid(Manual)",
-       "addressIndex":"108",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": " A02Targetgrid(Manual)",
-       "addressIndex":"110",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "B01Targetgrid(Manual)",
-       "addressIndex":"112",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "B02Targetgrid(Manual)",
-       "addressIndex":"114",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "A01turnTargetAngle(Manual)",
-       "addressIndex":"116",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"掳"
-     },
-     {
-       "codeId": "A02turnTargetAngle(Manual)",
-       "addressIndex":"118",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"掳"
-     },
-     {
-       "codeId": "A01turnAngle1",
-       "addressIndex":"120",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"掳"
-     },
-     {
-       "codeId": "A01turnAngle2",
-       "addressIndex":"122",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"掳"
-     },
-     {
-       "codeId": "A01turnAngle3",
-       "addressIndex":"124",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"掳"
-     },
-     {
-       "codeId": "A01turnAngle4",
-       "addressIndex":"126",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"掳"
-     },
-     {
-       "codeId": "A02turnAngle1",
-       "addressIndex":"128",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"掳"
-     },
-     {
-       "codeId": "A02turnAngle2",
-       "addressIndex":"130",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"掳"
-     },
-     {
-       "codeId": "A02turnAngle3",
-       "addressIndex":"132",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"掳"
-     },
-     {
-       "codeId": "A02turnAngle4",
-       "addressIndex":"134",
-       "addressLenght":"2",
-       "ratio":"1",
-       "unit":"掳"
-     },
-     {
-       "codeId": "Minimumglasslength",
-       "addressIndex":"136",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "Minimumglassheight",
-       "addressIndex":"138",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "Maximumglasslength",
-       "addressIndex":"140",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "Maximumglassheight",
-       "addressIndex":"142",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "A01cellsGlassNum",
-       "addressIndex":"144",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "A02cellsGlassNum",
-       "addressIndex":"146",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "A01ID",
-       "addressIndex":"148",
-       "addressLenght":"14",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "A02ID",
-       "addressIndex":"162",
-       "addressLenght":"14",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "A02TRAVELPOSVelocitymanual",
-       "addressIndex":"176",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "B02TRAVELPOSVelocitymanual",
-       "addressIndex":"178",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "Startingpositionofthefeedca",
-       "addressIndex":"180",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "Targetpositionofthefeedcar",
-       "addressIndex":"182",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "Lengthofincomingglass",
-       "addressIndex":"184",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "Widthofincomingglass",
-       "addressIndex":"186",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     },
-     {
-       "codeId": "Startingpositionoftheexitcar",
-       "addressIndex":"188",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     }, {
-       "codeId": "Exitcartargetposition",
-       "addressIndex":"190",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     }
-     , {
-       "codeId": "A02TURNPOSVelocitymanual",
-       "addressIndex":"192",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     }
-     , {
-       "codeId": "A01delayTime",
-       "addressIndex":"194",
-       "addressLenght":"2",
-       "ratio":"1"
-
-     }
-
-
-   ]
-}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json
deleted file mode 100644
index f3ebb33..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json
+++ /dev/null
@@ -1,195 +0,0 @@
-{
-   "plcAddressBegin": "DB106.0",
-   "plcAddressLenght": "66",
-   "dataType": "word",
-   "parameteInfor": [{
-         "codeId": "A01Position",
-         "addressIndex": "0",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "A01FlipPosition",
-         "addressIndex": "2",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "A01QuestStartPosition",
-         "addressIndex": "4",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "A01EndPosition",
-         "addressIndex": "6",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "FeedCarStatus",
-         "addressIndex": "8",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "A02QuestOver",
-         "addressIndex": "10",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "A02Position",
-         "addressIndex": "12",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "A02FlipPosition",
-         "addressIndex": "14",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "A02QuestStartPosition",
-         "addressIndex": "16",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "A02EndPosition",
-         "addressIndex": "18",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "ExitCarStatus",
-         "addressIndex": "20",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "A02QuestOver",
-         "addressIndex": "22",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "FeedRequest",
-         "addressIndex": "24",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "FeedID",
-         "addressIndex": "26",
-         "addressLenght":"14", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "B01Position",
-         "addressIndex": "40",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "B01QuestPosition",
-         "addressIndex": "42",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "B01CurrentTaskMode",
-         "addressIndex": "44",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "B01CarStatus",
-         "addressIndex": "46",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "B01CarTaskStatus",
-         "addressIndex": "48",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "B02Position",
-         "addressIndex": "50",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "B02CarCurrentTask",
-         "addressIndex": "52",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "B02CurrentTaskMode",
-         "addressIndex": "54",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "B02CarStatus",
-         "addressIndex": "56",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "B02CarSaskStatus",
-         "addressIndex": "58",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "B01CompleteTheReport",
-         "addressIndex": "60",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "B02CompleteTheReport",
-         "addressIndex": "62",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-         "codeId": "OutRequest",
-         "addressIndex": "64",
-         "addressLenght":"2", 
-         "ratio":"1",
-         "unit":"m/min"    
-      }
-   ]
-}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json
deleted file mode 100644
index 8f9295a..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json
+++ /dev/null
@@ -1,460 +0,0 @@
-{
-  "plcAddressBegin": "DB102.0.0",
-  "plcAddressLenght": "112",
-  "dataType": "bit",
-  "parameteInfor": [
-    {
-      "codeId": "D01.SRdec",
-      "addressIndex": 0
-    },
-    {
-      "codeId": "D01.SRinpos",
-      "addressIndex": 1
-    },
-    {
-      "codeId": "D02.SRdec",
-      "addressIndex": 2
-    },
-    {
-      "codeId": "D02.SRinpos",
-      "addressIndex": 3
-    },
-    {
-      "codeId": "D03.SRinto",
-      "addressIndex": 4
-    },
-    {
-      "codeId": "D03.SRdec",
-      "addressIndex": 5
-    },
-    {
-      "codeId": "D03.SRinpos",
-      "addressIndex": 6
-    },
-    {
-      "codeId": "D04.SRdec",
-      "addressIndex": 7
-    },
-    {
-      "codeId": "D04.SRinpos",
-      "addressIndex": 8
-    },
-    {
-      "codeId": "D05.SRdec",
-      "addressIndex": 9
-    },
-    {
-      "codeId": "D05.SRinpos",
-      "addressIndex": 10
-    },
-    {
-      "codeId": "D06.SRdec",
-      "addressIndex": 11
-    },
-    {
-      "codeId": "D06.SRinpos",
-      "addressIndex": 12
-    },
-    {
-      "codeId": "B01.SRindec",
-      "addressIndex": 13
-    },
-    {
-      "codeId": "B01.SRininpos",
-      "addressIndex": 14
-    },
-    {
-      "codeId": "B01.SRoutdec",
-      "addressIndex": 15
-    },
-    {
-      "codeId": "B01.SRoutinpos",
-      "addressIndex": 16
-    },
-    {
-      "codeId": "B01.SRturnon",
-      "addressIndex": 17
-    },
-    {
-      "codeId": "B01.SRturnoff",
-      "addressIndex": 18
-    },
-    {
-      "codeId": "B01.SRup",
-      "addressIndex": 19
-    },
-    {
-      "codeId": "B01.SRdown",
-      "addressIndex": 20
-    },
-    {
-      "codeId": "B02.SRoutdec",
-      "addressIndex": 21
-    },
-    {
-      "codeId": "B02.SRoutinpos",
-      "addressIndex": 22
-    },
-    {
-      "codeId": "B02.SRindec",
-      "addressIndex": 23
-    },
-    {
-      "codeId": "B02.SRininpos",
-      "addressIndex": 24
-    },
-    {
-      "codeId": "B02.SRturnon",
-      "addressIndex": 25
-    },
-    {
-      "codeId": "B02.SRturnoff",
-      "addressIndex": 26
-    },
-    {
-      "codeId": "B02.SRup",
-      "addressIndex": 27
-    },
-    {
-      "codeId": "B02.SRdown",
-      "addressIndex": 28
-    },
-    {
-      "codeId": "B01.SRinsafety",
-      "addressIndex": 29
-    },
-    {
-      "codeId": "B01.SRoutsafety",
-      "addressIndex": 30
-    },
-    {
-      "codeId": "B02.SRinsafety",
-      "addressIndex": 31
-    },
-    {
-      "codeId": "SB.start(+)",
-      "addressIndex": 32
-    },
-    {
-      "codeId": "SB.stop(-)",
-      "addressIndex": 33
-    },
-    {
-      "codeId": "SB.reset",
-      "addressIndex": 34
-    },
-    {
-      "codeId": "SB.auto/manul",
-      "addressIndex": 35
-    },
-    {
-      "codeId": "D01.SB.confirm",
-      "addressIndex": 36
-    },
-    {
-      "codeId": "SB.emg",
-      "addressIndex": 37
-    },
-    {
-      "codeId": "D01.SB.start",
-      "addressIndex": 38
-    },
-    {
-      "codeId": "D06.SB.start",
-      "addressIndex": 39
-    },
-    {
-      "codeId": "B02.SRoutsafety",
-      "addressIndex": 40
-    },
-    {
-      "codeId": "SafetyDoor.requset",
-      "addressIndex": 41
-    },
-    {
-      "codeId": "SafetyDoor.confirm",
-      "addressIndex": 42
-    },
-    {
-      "codeId": "SafetyDoor.reset",
-      "addressIndex": 43
-    },
-    {
-      "codeId": "Sspce",
-      "addressIndex": 44
-    },
-    {
-      "codeId": "Sspce",
-      "addressIndex": 45
-    },
-    {
-      "codeId": "Sspce",
-      "addressIndex": 46
-    },
-    {
-      "codeId": "Sspce",
-      "addressIndex": 47
-    },
-    {
-      "codeId": "A01.SRleftdec",
-      "addressIndex": 48
-    },
-    {
-      "codeId": "A01.SRleftinpos",
-      "addressIndex": 49
-    },
-    {
-      "codeId": "A01.SRleftsafety",
-      "addressIndex": 50
-    },
-    {
-      "codeId": "A01.SRrightdec",
-      "addressIndex": 51
-    },
-    {
-      "codeId": "A01.SRrightinpos",
-      "addressIndex": 52
-    },
-    {
-      "codeId": "A01.SRrightsafety",
-      "addressIndex": 53
-    },
-    {
-      "codeId": "A01.SRturnhome",
-      "addressIndex": 54
-    },
-    {
-      "codeId": "A01.SRturnup",
-      "addressIndex": 55
-    },
-    {
-      "codeId": "A01.SRturndown",
-      "addressIndex": 56
-    },
-    {
-      "codeId": "A01.SRtravelhome",
-      "addressIndex": 57
-    },
-    {
-      "codeId": "A01.SRtravelleftdec",
-      "addressIndex": 58
-    },
-    {
-      "codeId": "A01.SRtravelleftlimit",
-      "addressIndex": 59
-    },
-    {
-      "codeId": "A01.SRtravelrightdec",
-      "addressIndex": 60
-    },
-    {
-      "codeId": "A01.SRtravelrightlimit",
-      "addressIndex": 61
-    },
-    {
-      "codeId": "space",
-      "addressIndex": 62
-    },
-    {
-      "codeId": "space",
-      "addressIndex": 63
-    },
-    {
-      "codeId": "A02.SRleftdec",
-      "addressIndex": 64
-    },
-    {
-      "codeId": "A02.SRleftinpos",
-      "addressIndex": 65
-    },
-    {
-      "codeId": "A02.SRleftsafety",
-      "addressIndex": 66
-    },
-    {
-      "codeId": "A02.SRrightdec",
-      "addressIndex": 67
-    },
-    {
-      "codeId": "A02.SRrightinpos",
-      "addressIndex": 68
-    },
-    {
-      "codeId": "A02.SRrightsafety",
-      "addressIndex": 69
-    },
-    {
-      "codeId": "A02.SRturnhome",
-      "addressIndex": 70
-    },
-    {
-      "codeId": "A02.SRturnup",
-      "addressIndex": 71
-    },
-    {
-      "codeId": "A02.SRturndown",
-      "addressIndex": 72
-    },
-    {
-      "codeId": "A02.SRtravelhome",
-      "addressIndex": 73
-    },
-    {
-      "codeId": "A02.SRtravelleftdec",
-      "addressIndex": 74
-    },
-    {
-      "codeId": "A02.SRtravelleftlimit",
-      "addressIndex": 75
-    },
-    {
-      "codeId": "A02.SRtravelrightdec",
-      "addressIndex": 76
-    },
-    {
-      "codeId": "A02.SRtravelrightlimit",
-      "addressIndex": 77
-    },
-    {
-      "codeId": "space",
-      "addressIndex": 78
-    },
-    {
-      "codeId": "space",
-      "addressIndex": 79
-    },
-    {
-      "codeId": "B01.SRorigin",
-      "addressIndex": 80
-    },
-    {
-      "codeId": "B01.SRleftlimit",
-      "addressIndex": 81
-    },
-    {
-      "codeId": "B01.SRrightlimit",
-      "addressIndex": 82
-    },
-    {
-      "codeId": "B02.SRorigin",
-      "addressIndex": 83
-    },
-    {
-      "codeId": "B02.SRleftlimit",
-      "addressIndex": 84
-    },
-    {
-      "codeId": "B02.SRrightlimit",
-      "addressIndex": 85
-    },
-    {
-      "codeId": "space",
-      "addressIndex": 86
-    },
-    {
-      "codeId": "space",
-      "addressIndex": 87
-    },
-    {
-      "codeId": "LED.red",
-      "addressIndex": 88
-    },
-    {
-      "codeId": "LED.green",
-      "addressIndex": 89
-    },
-    {
-      "codeId": "LED.yellow",
-      "addressIndex": 90
-    },
-    {
-      "codeId": "D01.LED.green",
-      "addressIndex": 91
-    },
-    {
-      "codeId": "D06.LED.green",
-      "addressIndex": 92
-    },
-    {
-      "codeId": "B01.YV.turn",
-      "addressIndex": 93
-    },
-    {
-      "codeId": "B01.YV.updown",
-      "addressIndex": 94
-    },
-    {
-      "codeId": "B01.YV.gassing",
-      "addressIndex": 95
-    },
-    {
-      "codeId": "B02.YV.turn",
-      "addressIndex": 96
-    },
-    {
-      "codeId": "B02.YV.updown",
-      "addressIndex": 97
-    },
-    {
-      "codeId": "B02.YV.gassing",
-      "addressIndex": 98
-    },
-    {
-      "codeId": "SafetyDoor.Led",
-      "addressIndex": 99
-    },
-    {
-      "codeId": "SafetyDoor.open",
-      "addressIndex": 100
-    },
-    {
-      "codeId": "D01SB.confirm",
-      "addressIndex": 101
-    },
-    {
-      "codeId": "space",
-      "addressIndex": 102
-    },
-    {
-      "codeId": "space",
-      "addressIndex": 103
-    },
-    {
-      "codeId": "A01oilPump",
-      "addressIndex": 104
-    },
-    {
-      "codeId": "A01motorCtr",
-      "addressIndex": 105
-    },
-    {
-      "codeId": "space",
-      "addressIndex": 106
-    },
-    {
-      "codeId": "space",
-      "addressIndex": 107
-    },
-    {
-      "codeId": "A02oilPump",
-      "addressIndex": 108
-    },
-    {
-      "codeId": "A02motorCtr",
-      "addressIndex": 109
-    },
-    {
-      "codeId": "space",
-      "addressIndex": 110
-    },
-    {
-      "codeId": "space",
-      "addressIndex": 111
-    }
-    ,
-    {
-      "codeId": "space",
-      "addressIndex": 111
-    }
-  ]
-}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json
deleted file mode 100644
index 595107e..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json
+++ /dev/null
@@ -1,285 +0,0 @@
-{
-  "plcAddressBegin": "DB103.0",
-  "plcAddressLenght": "258",
-  "dataType": "word",
-  "parameteInfor": [
-    {
-      "codeId": "D01.State",
-      "addressIndex": "0",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "D02.State",
-      "addressIndex": "2",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "B01.State",
-      "addressIndex": "4",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "B02.State",
-      "addressIndex": "6",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "A01.State",
-      "addressIndex": "8",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "A02.State",
-      "addressIndex": "10",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "D03.State",
-      "addressIndex": "12",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "D04.State",
-      "addressIndex": "14",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "D05.State",
-      "addressIndex": "16",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "D06.State",
-      "addressIndex": "18",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "A01tavelActualPosition",
-      "addressIndex": "20",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "A01turnActualangle",
-      "addressIndex": "22",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "A02tavelActualPosition",
-      "addressIndex": "24",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "A02turnActualangle",
-      "addressIndex": "26",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "B01tavelActualPosition",
-      "addressIndex": "28",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "B02tavelActualPosition",
-      "addressIndex": "30",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "A01CurrentGrid",
-      "addressIndex": "32",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "A02CurrentGrid",
-      "addressIndex": "34",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "B01CurrentGrid",
-      "addressIndex": "36",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "B01TargetGrid",
-      "addressIndex": "38",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "B02CurrentGrid",
-      "addressIndex": "40",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "B02TargetGrid",
-      "addressIndex": "42",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "D01ID",
-      "addressIndex": "44",
-      "addressLenght": "14",
-      "unit": ""
-    },
-    {
-      "codeId": "D02ID",
-      "addressIndex": "58",
-      "addressLenght": "14",
-      "unit": ""
-    },
-    {
-      "codeId": "D03ID",
-      "addressIndex": "72",
-      "addressLenght": "14",
-      "unit": ""
-    },
-    {
-      "codeId": "D04ID",
-      "addressIndex": "86",
-      "addressLenght": "14",
-      "unit": ""
-    },
-    {
-      "codeId": "D05ID",
-      "addressIndex": "100",
-      "addressLenght": "14",
-      "unit": ""
-    },
-    {
-      "codeId": "D06ID",
-      "addressIndex": "114",
-      "addressLenght": "14",
-      "unit": ""
-    },
-    {
-      "codeId": "A01ID1",
-      "addressIndex": "128",
-      "addressLenght": "14",
-      "unit": ""
-    },
-    {
-      "codeId": "A01ID2",
-      "addressIndex": "142",
-      "addressLenght": "14",
-      "unit": ""
-    },
-    {
-      "codeId": "A02ID1",
-      "addressIndex": "156",
-      "addressLenght": "14",
-      "unit": ""
-    },
-    {
-      "codeId": "A02ID2",
-      "addressIndex": "170",
-      "addressLenght": "14",
-      "unit": ""
-    },
-    {
-      "codeId": "B01ID1",
-      "addressIndex": "184",
-      "addressLenght": "14",
-      "unit": ""
-    },
-    {
-      "codeId": "B01ID2",
-      "addressIndex": "198",
-      "addressLenght": "14",
-      "unit": ""
-    },
-    {
-      "codeId": "B02ID1",
-      "addressIndex": "212",
-      "addressLenght": "14",
-      "unit": ""
-    },
-    {
-      "codeId": "B02ID2",
-      "addressIndex": "226",
-      "addressLenght": "14",
-      "unit": ""
-    },
-    {
-      "codeId": "A01conveyorFaultcodes",
-      "addressIndex": "240",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "A01turnservoFaultcodes",
-      "addressIndex": "242",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "A01travelservoFaultcodes",
-      "addressIndex": "244",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "A02conveyorFaultcodes",
-      "addressIndex": "246",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "A02turnservoFaultcodes",
-      "addressIndex": "248",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "A02travelservoFaultcodes",
-      "addressIndex": "250",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "B01travelservoFaultcodes",
-      "addressIndex": "252",
-      "addressLenght": "2",
-      "unit": ""
-    },
-    {
-      "codeId": "B02travelservoFaultcodes",
-      "addressIndex": "254",
-      "addressLenght": "2",
-      "unit": ""
-    }
-    ,
-    {
-      "codeId": "Scanningguns",
-      "addressIndex": "256",
-      "addressLenght": "2",
-      "unit": ""
-    }
-    ,
-    {
-      "codeId": "Frameid",
-      "addressIndex": "270",
-      "addressLenght": "2",
-      "unit": ""
-    }
-  ]
-}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json
deleted file mode 100644
index 95a2010..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json
+++ /dev/null
@@ -1,378 +0,0 @@
-{
-  "plcAddressBegin": "DB101.0.0",
-  "plcAddressLenght": "93",
-  "dataType": "bit",
-  "parameteInfor": [
-    {
-      "codeId": "D01VFDconveyor",
-      "addressIndex": 0
-    },
-    {
-      "codeId": "D02VFDconveyor",
-      "addressIndex": 1
-    },
-    {
-      "codeId": "D03VFDconveyor",
-      "addressIndex": 2
-    },
-    {
-      "codeId": "D04VFDconveyor",
-      "addressIndex": 3
-    },
-    {
-      "codeId": "D05VFDconveyor",
-      "addressIndex": 4
-    },
-    {
-      "codeId": "D06VFDconveyor",
-      "addressIndex": 5
-    },
-    {
-      "codeId": "A01VFDconveyor",
-      "addressIndex": 6
-    },
-    {
-      "codeId": "A02VFDconveyor",
-      "addressIndex": 7
-    },
-    {
-      "codeId": "B01VFDconveyor",
-      "addressIndex": 8
-    },
-    {
-      "codeId": "B02VFDconveyor",
-      "addressIndex": 9
-    },
-    {
-      "codeId": "A01SERVETURN",
-      "addressIndex": 10
-    },
-    {
-      "codeId": "A02SERVETURN",
-      "addressIndex": 11
-    },
-    {
-      "codeId": "A01SERVETRAVEL",
-      "addressIndex": 12
-    },
-    {
-      "codeId": "A02SERVETRAVEL",
-      "addressIndex": 13
-    },
-    {
-      "codeId": "B01SERVETRAVEL",
-      "addressIndex": 14
-    },
-    {
-      "codeId": "B02SERVETRAVEL",
-      "addressIndex": 15
-    },
-    {
-      "codeId": "A01SERVETURNPOS",
-      "addressIndex": 16
-    },
-    {
-      "codeId": "A02SERVETURNPOS",
-      "addressIndex": 17
-    },
-    {
-      "codeId": "A01SERVETRAVELPOS",
-      "addressIndex": 18
-    },
-    {
-      "codeId": "A02SERVETRAVELPOS",
-      "addressIndex": 19
-    },
-    {
-      "codeId": "B01SERVETRAVELPOS",
-      "addressIndex": 20
-    },
-    {
-      "codeId": "B02SERVETRAVELPOS",
-      "addressIndex": 21
-    },
-    {
-      "codeId": "B01YVTURN",
-      "addressIndex": 22
-    },
-    {
-      "codeId": "B01YVUPDOWN",
-      "addressIndex": 23
-    },
-    {
-      "codeId": "B02YVTURN",
-      "addressIndex": 24
-    },
-    {
-      "codeId": "B02YVUPDOWN",
-      "addressIndex": 25
-    },
-    {
-      "codeId": "B01YVGassing",
-      "addressIndex": 26
-    },
-    {
-      "codeId": "B02YVGassing",
-      "addressIndex": 27
-    },
-    {
-      "codeId": "A01VFDconveyorreverse",
-      "addressIndex": 28
-    },
-    {
-      "codeId": "A02VFDconveyorreverse",
-      "addressIndex": 29
-    },
-    {
-      "codeId": "A01SERVETURNreset",
-      "addressIndex": 30
-    },
-    {
-      "codeId": "A01SERVETURNhome",
-      "addressIndex": 31
-    },
-    {
-      "codeId": "A01SERVETRAVELreset",
-      "addressIndex": 32
-    },
-    {
-      "codeId": "A02SERVETURNreset",
-      "addressIndex": 33
-    },
-    {
-      "codeId": "A02SERVETURNhome",
-      "addressIndex": 34
-    },
-    {
-      "codeId": "A02SERVETRAVELreset",
-      "addressIndex": 35
-    },
-    {
-      "codeId": "B01SERVETRAVELreset",
-      "addressIndex": 36
-    },
-    {
-      "codeId": "B01SERVETRAVELhome",
-      "addressIndex": 37
-    },
-    {
-      "codeId": "B02SERVETRAVELreset",
-      "addressIndex": 38
-    },
-    {
-      "codeId": "B02SERVETRAVELhome",
-      "addressIndex": 39
-    },
-    {
-      "codeId": "Manualstoragestartup",
-      "addressIndex": 40
-    },
-    {
-      "codeId": "Manualoutputstartup",
-      "addressIndex": 41
-    },
-    {
-      "codeId": "A01oilpump",
-      "addressIndex": 42
-    },
-    {
-      "codeId": "A02oilpump",
-      "addressIndex": 43
-    },
-    {
-      "codeId": "A01get1#gridaddress",
-      "addressIndex": 44
-    },
-    {
-      "codeId": "A01get22#gridaddress",
-      "addressIndex": 45
-    },
-    {
-      "codeId": "A01get43#gridaddress",
-      "addressIndex": 46
-    },
-    {
-      "codeId": "A01get64#gridaddress",
-      "addressIndex": 47
-    },
-    {
-      "codeId": "A01get85#gridaddress",
-      "addressIndex": 48
-    },
-    {
-      "codeId": "A01get106#gridaddress",
-      "addressIndex": 49
-    },
-    {
-      "codeId": "A01get127#gridaddress",
-      "addressIndex": 50
-    },
-    {
-      "codeId": "A01get148#gridaddress",
-      "addressIndex": 51
-    },
-    {
-      "codeId": "A01get169#gridaddress",
-      "addressIndex": 52
-    },
-    {
-      "codeId": "A02get190#gridaddress",
-      "addressIndex": 53
-    },
-    {
-      "codeId": "A02get1#gridaddress",
-      "addressIndex": 54
-    },
-    {
-      "codeId": "A02get22#gridaddress",
-      "addressIndex": 55
-    },
-    {
-      "codeId": "A02get43#gridaddress",
-      "addressIndex": 56
-    },
-    {
-      "codeId": "A02get64#gridaddress",
-      "addressIndex": 57
-    },
-    {
-      "codeId": "A02get85#gridaddress",
-      "addressIndex": 58
-    },
-    {
-      "codeId": "A02get106#gridaddress",
-      "addressIndex": 59
-    },
-    {
-      "codeId": "A02get127#gridaddress",
-      "addressIndex": 60
-    },
-    {
-      "codeId": "A02get148#gridaddress",
-      "addressIndex": 61
-    },
-    {
-      "codeId": "A02get169#gridaddress",
-      "addressIndex": 62
-    },
-    {
-      "codeId": "A02get190#gridaddress",
-      "addressIndex": 63
-    },
-    {
-      "codeId": "B01get1#gridaddress",
-      "addressIndex": 64
-    },
-    {
-      "codeId": "B01get22#gridaddress",
-      "addressIndex": 65
-    },
-    {
-      "codeId": "B01get43#gridaddress",
-      "addressIndex": 66
-    },
-    {
-      "codeId": "B01get64#gridaddress",
-      "addressIndex": 67
-    },
-    {
-      "codeId": "B01get85#gridaddress",
-      "addressIndex": 68
-    },
-    {
-      "codeId": "B02get106#gridaddress",
-      "addressIndex": 69
-    },
-    {
-      "codeId": "B02get127#gridaddress",
-      "addressIndex": 70
-    },
-    {
-      "codeId": "B02get148#gridaddress",
-      "addressIndex": 71
-    },
-    {
-      "codeId": "B02get169#gridaddress",
-      "addressIndex": 72
-    },
-    {
-      "codeId": "B02get190#gridaddress",
-      "addressIndex": 73
-    },
-    {
-      "codeId": "D01IDClean",
-      "addressIndex": 74
-    },
-    {
-      "codeId": "D02IDClean",
-      "addressIndex": 75
-    },
-    {
-      "codeId": "D03IDClean",
-      "addressIndex": 76
-    },
-    {
-      "codeId": "D04IDClean",
-      "addressIndex": 77
-    },
-    {
-      "codeId": "D05IDClean",
-      "addressIndex": 78
-    },
-    {
-      "codeId": "D06IDClean",
-      "addressIndex": 79
-    },
-    {
-      "codeId": "A01IDClean",
-      "addressIndex": 80
-    },
-    {
-      "codeId": "A02IDClean",
-      "addressIndex": 81
-    },
-    {
-      "codeId": "B01IDClean",
-      "addressIndex": 82
-    },
-    {
-      "codeId": "B02IDClean",
-      "addressIndex": 83
-    },
-    {
-      "codeId": "abort/resumeTasks",
-      "addressIndex": 84
-    },
-    {
-      "codeId": "A01SERVETRAVELhome",
-      "addressIndex": 85
-    },
-    {
-      "codeId": "A02SERVETRAVELhome",
-      "addressIndex": 86
-    },
-    {
-      "codeId": "A01A02travelHoming",
-      "addressIndex": 87
-    },
-    {
-      "codeId": "A01halfAutoSelect",
-      "addressIndex": 88
-    },
-    {
-      "codeId": "A02halfAutoSelect",
-      "addressIndex": 89
-    },
-    {
-      "codeId": "A02abortTasks",
-      "addressIndex": 90
-    },
-    {
-      "codeId": "emgHMI",
-      "addressIndex": 91
-    },
-    {
-      "codeId": "Scanningmethod",
-      "addressIndex": 92
-  ]
-}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.json
new file mode 100644
index 0000000..3880ffc
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.json
@@ -0,0 +1,362 @@
+{
+  "plcAddressBegin": "DB100.0",
+  "plcAddressLenght": "142",
+  "dataType": "word",
+  "parameteInfor": [
+    {
+      "codeId": "RequestWord",
+      "addressIndex": "0",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G04ID",
+      "addressIndex": "2",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G06RobotTaskRequestWord",
+      "addressIndex": "4",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G06ID",
+      "addressIndex": "6",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G11RobotTaskRequestWord",
+      "addressIndex": "8",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G011ID",
+      "addressIndex": "10",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "12",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "14",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "16",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "18",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "MESSendingWord",
+      "addressIndex": "20",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "InputGrid",
+      "addressIndex": "22",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "OutputGrid",
+      "addressIndex": "24",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "OutputID",
+      "addressIndex": "26",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "FrontOrRearLowerSlice",
+      "addressIndex": "28",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "30",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G06RobotTaskReply",
+      "addressIndex": "32",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G06Rack",
+      "addressIndex": "34",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G11RobotTaskReply",
+      "addressIndex": "36",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G11Rack",
+      "addressIndex": "38",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "40",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "42",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "44",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "46",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "48",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "50",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "52",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "54",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "MESTaskState",
+      "addressIndex": "56",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "58",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "AlarmState",
+      "addressIndex": "60",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "Alarm1",
+      "addressIndex": "62",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "Alarm2",
+      "addressIndex": "64",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "Alarm3",
+      "addressIndex": "66",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "Alarm4",
+      "addressIndex": "68",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "neirong",
+      "addressIndex": "70",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "device",
+      "addressIndex": "72",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "74",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "76",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "InOut1",
+      "addressIndex": "78",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "InOut2",
+      "addressIndex": "80",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "InOut3",
+      "addressIndex": "82",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "InOut4",
+      "addressIndex": "84",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "InOut5",
+      "addressIndex": "86",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "InOut6",
+      "addressIndex": "88",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "InOut7",
+      "addressIndex": "90",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "92",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "94",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "96",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "98",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "spare",
+      "addressIndex": "100",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G04ActionState",
+      "addressIndex": "102",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G05ActionState",
+      "addressIndex": "104",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G06ActionState",
+      "addressIndex": "106",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G07ActionState",
+      "addressIndex": "108",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G08ActionState",
+      "addressIndex": "110",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G09ActionState",
+      "addressIndex": "112",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G10ActionState",
+      "addressIndex": "114",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G11ActionState",
+      "addressIndex": "116",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G12ActionState",
+      "addressIndex": "118",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G13ActionState",
+      "addressIndex": "120",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G04IDS",
+      "addressIndex": "122",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G05IDS",
+      "addressIndex": "124",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G06IDS",
+      "addressIndex": "126",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G07IDS",
+      "addressIndex": "128",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G08IDS",
+      "addressIndex": "130",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G09IDS",
+      "addressIndex": "132",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G10IDS",
+      "addressIndex": "134",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G11IDS",
+      "addressIndex": "136",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G12IDS",
+      "addressIndex": "138",
+      "addressLenght": "2"
+    },
+    {
+      "codeId": "G13ID",
+      "addressIndex": "140",
+      "addressLenght": "2"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json
deleted file mode 100644
index c270227..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-   "plcAddressBegin":"DB17.0",
-   "plcAddressLenght":"40",
-   "dataType":"word",
-   "parameteInfor":[
-      {
-         "codeId": "E01id",  
-         "addressIndex":"0",
-         "addressLenght":"14", 
-         "ratio":"1",
-         "unit":"m/min"    
-      },
-      {
-          "codeId": "E01Quest",
-          "addressIndex":"16",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"m/min"      
-       },
-       {
-          "codeId": "E01Reply",
-          "addressIndex":"18",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"m/min"       
-       },
-       {
-          "codeId": "J01Quest",
-          "addressIndex":"20",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "J01id",
-          "addressIndex":"22",
-          "addressLenght":"14",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "J01TurnGo",
-          "addressIndex":"38",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       }
-
-
-   ]
-}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx
deleted file mode 100644
index 50b26dc..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx
+++ /dev/null
Binary files differ
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx
deleted file mode 100644
index 3922301..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx
+++ /dev/null
Binary files differ
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx
deleted file mode 100644
index 9862cf5..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx
+++ /dev/null
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 a783463..ed2c929 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
@@ -10,6 +10,7 @@
 
 import com.mes.downworkstation.service.DownWorkstationService;
 import com.mes.downworkstation.service.impl.DownWorkstationServiceImpl;
+import com.mes.glassinfo.service.impl.GlassInfoServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -43,6 +44,10 @@
     DownStorageCageDetailsService downStorageCageDetailsService;
     @Autowired
     DownWorkstationServiceImpl downWorkstationServiceImpl;
+    @Autowired
+    GlassInfoServiceImpl glassInfoServiceImpl;
+    @Autowired
+    DownWorkstationService downWorkstationService;
 
     @Test
     public void testFindPath() {
@@ -51,21 +56,22 @@
 
     @Test
     public void testCacheGlass() {
-        List<Map> map = downStorageCageDetailsServiceImpl.getCacheInfo();
-        log.info("绗煎唴淇℃伅锛歿}", Arrays.asList(map));
+        //List<Map<String, Object>> map = downStorageCageServiceImpl.selectDownStorageCages();
+      //  log.info("绗煎唴淇℃伅锛歿}", Arrays.asList(map));
+        downStorageCageServiceImpl.updateDownStorageCageDetails(1,null);
     }
 
     @Test
     public void testselectCacheEmpty() {
-        List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheLeisure();
-        log.info("绗煎唴绌烘牸锛歿}", Arrays.asList(map));
+       // List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheLeisure();
+       // log.info("绗煎唴绌烘牸锛歿}", Arrays.asList(map));
     }
 
 
     @Test
     public void testgetCacheOut() {
-        List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheOut(1, 5);
-        log.info("鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓ч『搴忓拰澶у皬鍑虹墖鐨勫皬鐗囷細{}", Arrays.asList(map));
+       // List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheOut(1, 5);
+      //  log.info("鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓ч『搴忓拰澶у皬鍑虹墖鐨勫皬鐗囷細{}", Arrays.asList(map));
     }
 
 
@@ -79,7 +85,7 @@
     @Test
     public void testplc() {
         log.info("娴嬭瘯");
-        downWorkstationServiceImpl.insertdownglassinfo();
+        glassInfoServiceImpl.getGlassInfoCountByFlowCardId("NG24030702A01");
 
     }
 
@@ -88,7 +94,7 @@
     @Test
     public void testin2() {
         log.info("娴嬭瘯杩涚墖");
-        downStorageCageDetailsServiceImpl.getIsExistIntoCacheByflowcardid("NG2023005",500);
+        //downStorageCageDetailsServiceImpl.getIsExistIntoCacheByflowcardid("NG2023005",500);
 
     }
 
@@ -96,14 +102,14 @@
     @Test
     public void selectCacheEmpty() {
         log.info("娴嬭瘯杩涚墖");
-        downStorageCageDetailsServiceImpl.getCacheLeisure();
+        //downStorageCageDetailsServiceImpl.getCacheLeisure();
 
     }
 
     @Test
     public void CacheEmpty() {
         log.info("娴嬭瘯鍑虹墖");
-        downStorageCageDetailsService.CacheOut(1,10);
+        downStorageCageDetailsService.CacheOut(1,2);
 
     }
 
@@ -111,7 +117,7 @@
     @Test
     public void getTotalGlassDimensionsByWorkstation() {
         log.info("宸ヤ綅鏄剧ず");
-        downWorkstationServiceImpl.getTotalGlassDimensionsByWorkstation();
+        downWorkstationService.getTotalGlassDimensionsByWorkstation();
 
     }
 
@@ -127,7 +133,7 @@
     public void updateTaskStateToZero() {
         log.info("鏇存柊鐘舵��0");
 
-        downGlassTaskServiceImpl.updateTaskStateToZero(3);
+        downGlassTaskServiceImpl.updateTaskState("3");
     }
 
 

--
Gitblit v1.8.0