From b9b44b51b201e2f5a9a1f3665c7fb76b5690f9af Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期一, 23 十二月 2024 16:13:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java | 31
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageMapper.java | 4
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java | 2
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OPCPlcSlicecage.java | 68 -
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageService.java | 10
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java | 49
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceTaskHistoryController.java | 64 -
hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java | 14
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java | 40
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java | 124 ++
UI-Project/package.json | 2
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml | 4
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java | 21
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java | 4
UI-Project/src/lang/py.js | 14
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java | 23
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java | 8
hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/application.yml | 2
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml | 17
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/request/TaskHistoryRequest.java | 35
hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/HollowBigStorageCageBaseInfo.java | 6
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCage.java | 8
UI-Project/src/router/index.js | 10
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageAndDetailsDTO.java | 2
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java | 19
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskHistoryServiceImpl.java | 19
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskHistoryService.java | 4
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageServiceImpl.java | 46
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java | 7
UI-Project/src/views/Caching/cachingbefore.vue | 247 +++-
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCageDetails.java | 4
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java | 16
UI-Project/src/views/Caching/cachingun.vue | 390 ++++---
hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java | 9
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java | 4
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java | 268 ----
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/controller/HollowBigStorageCageController.java | 17
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/vo/HollowBigStorageDetailsQueryVO.java | 25
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml | 2
UI-Project/src/lang/en.js | 14
UI-Project/src/lang/zh.js | 14
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java | 26
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml | 1
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/dto/HollowBigStorageAndDetailsDTO.java | 18
/dev/null | 958 -------------------
UI-Project/src/views/Slicecage/slicecage.vue | 85 +
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/CutDrawingVO.java | 19
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollowqueue/entity/HollowGlassQueueInfo.java | 4
UI-Project/package-lock.json | 117 +-
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java | 1
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java | 28
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java | 11
52 files changed, 1,199 insertions(+), 1,736 deletions(-)
diff --git a/UI-Project/package-lock.json b/UI-Project/package-lock.json
index a357011..300ee38 100644
--- a/UI-Project/package-lock.json
+++ b/UI-Project/package-lock.json
@@ -24,7 +24,7 @@
"vue": "^3.3.4",
"vue-draggable-plus": "^0.5.0",
"vue-echarts": "^6.7.3",
- "vue-i18n": "^9.10.1",
+ "vue-i18n": "^11.0.0-rc.1",
"vue-print-nb": "^1.7.5",
"vue-router": "^4.0.13",
"vue3-print-nb": "^0.1.4",
@@ -148,35 +148,44 @@
"integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
},
"node_modules/@intlify/core-base": {
- "version": "9.13.1",
- "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.13.1.tgz",
- "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==",
+ "version": "11.0.0-rc.1",
+ "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-11.0.0-rc.1.tgz",
+ "integrity": "sha512-fnfZoa9pb1dKM3L1UkDUGLLrPFQ2BK98x4/fMqwS/fktUor34vQR/itPtfv652ZTplenXXLCEYjUYTGfDZgMTQ==",
"dependencies": {
- "@intlify/message-compiler": "9.13.1",
- "@intlify/shared": "9.13.1"
+ "@intlify/message-compiler": "11.0.0-rc.1",
+ "@intlify/shared": "11.0.0-rc.1"
},
"engines": {
"node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
}
},
"node_modules/@intlify/message-compiler": {
- "version": "9.13.1",
- "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.13.1.tgz",
- "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==",
+ "version": "11.0.0-rc.1",
+ "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-11.0.0-rc.1.tgz",
+ "integrity": "sha512-TGw2uBfuTFTegZf/BHtUQBEKxl7Q/dVGLoqRIdw8lFsp9g/53sYn5iD+0HxIzdYjbWL6BTJMXCPUHp9PxDTRPw==",
"dependencies": {
- "@intlify/shared": "9.13.1",
+ "@intlify/shared": "11.0.0-rc.1",
"source-map-js": "^1.0.2"
},
"engines": {
"node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
}
},
"node_modules/@intlify/shared": {
- "version": "9.13.1",
- "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.13.1.tgz",
- "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==",
+ "version": "11.0.0-rc.1",
+ "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-11.0.0-rc.1.tgz",
+ "integrity": "sha512-8tR1xe7ZEbkabTuE/tNhzpolygUn9OaYp9yuYAF4MgDNZg06C3Qny80bes2/e9/Wm3aVkPUlCw6WgU7mQd0yEg==",
"engines": {
"node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
@@ -2028,12 +2037,12 @@
}
},
"node_modules/vue-i18n": {
- "version": "9.13.1",
- "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.13.1.tgz",
- "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==",
+ "version": "11.0.0-rc.1",
+ "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-11.0.0-rc.1.tgz",
+ "integrity": "sha512-qbdCbA537HEdr2yXQ4ec/OMDsoHjod1DwnWbrf+l4Cu/O7CYTCKsOyITUm3RmrCJgRnoVycuR6i/JWdNTJvD5g==",
"dependencies": {
- "@intlify/core-base": "9.13.1",
- "@intlify/shared": "9.13.1",
+ "@intlify/core-base": "11.0.0-rc.1",
+ "@intlify/shared": "11.0.0-rc.1",
"@vue/devtools-api": "^6.5.0"
},
"engines": {
@@ -2307,27 +2316,27 @@
"integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
},
"@intlify/core-base": {
- "version": "9.13.1",
- "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.13.1.tgz",
- "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==",
+ "version": "11.0.0-rc.1",
+ "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-11.0.0-rc.1.tgz",
+ "integrity": "sha512-fnfZoa9pb1dKM3L1UkDUGLLrPFQ2BK98x4/fMqwS/fktUor34vQR/itPtfv652ZTplenXXLCEYjUYTGfDZgMTQ==",
"requires": {
- "@intlify/message-compiler": "9.13.1",
- "@intlify/shared": "9.13.1"
+ "@intlify/message-compiler": "11.0.0-rc.1",
+ "@intlify/shared": "11.0.0-rc.1"
}
},
"@intlify/message-compiler": {
- "version": "9.13.1",
- "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.13.1.tgz",
- "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==",
+ "version": "11.0.0-rc.1",
+ "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-11.0.0-rc.1.tgz",
+ "integrity": "sha512-TGw2uBfuTFTegZf/BHtUQBEKxl7Q/dVGLoqRIdw8lFsp9g/53sYn5iD+0HxIzdYjbWL6BTJMXCPUHp9PxDTRPw==",
"requires": {
- "@intlify/shared": "9.13.1",
+ "@intlify/shared": "11.0.0-rc.1",
"source-map-js": "^1.0.2"
}
},
"@intlify/shared": {
- "version": "9.13.1",
- "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.13.1.tgz",
- "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ=="
+ "version": "11.0.0-rc.1",
+ "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-11.0.0-rc.1.tgz",
+ "integrity": "sha512-8tR1xe7ZEbkabTuE/tNhzpolygUn9OaYp9yuYAF4MgDNZg06C3Qny80bes2/e9/Wm3aVkPUlCw6WgU7mQd0yEg=="
},
"@jridgewell/sourcemap-codec": {
"version": "1.4.15",
@@ -3213,7 +3222,7 @@
"@vitejs/plugin-vue": "^4.6.2",
"@vue-macros/reactivity-transform": "^0.3.23",
"axios": "^1.6.8",
- "babel-polyfill": "*",
+ "babel-polyfill": "^6.26.0",
"chart.js": "^4.4.3",
"echarts": "^5.5.1",
"element-plus": "^2.4.0",
@@ -3230,7 +3239,7 @@
"vue": "^3.3.4",
"vue-draggable-plus": "^0.5.0",
"vue-echarts": "^6.7.3",
- "vue-i18n": "^9.10.1",
+ "vue-i18n": "11.0.0-rc.1",
"vue-print-nb": "^1.7.5",
"vue-router": "^4.0.13",
"vue3-print-nb": "^0.1.4",
@@ -3314,27 +3323,27 @@
"integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
},
"@intlify/core-base": {
- "version": "9.13.1",
- "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.13.1.tgz",
- "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==",
+ "version": "11.0.0-rc.1",
+ "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-11.0.0-rc.1.tgz",
+ "integrity": "sha512-fnfZoa9pb1dKM3L1UkDUGLLrPFQ2BK98x4/fMqwS/fktUor34vQR/itPtfv652ZTplenXXLCEYjUYTGfDZgMTQ==",
"requires": {
- "@intlify/message-compiler": "9.13.1",
- "@intlify/shared": "9.13.1"
+ "@intlify/message-compiler": "11.0.0-rc.1",
+ "@intlify/shared": "11.0.0-rc.1"
}
},
"@intlify/message-compiler": {
- "version": "9.13.1",
- "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.13.1.tgz",
- "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==",
+ "version": "11.0.0-rc.1",
+ "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-11.0.0-rc.1.tgz",
+ "integrity": "sha512-TGw2uBfuTFTegZf/BHtUQBEKxl7Q/dVGLoqRIdw8lFsp9g/53sYn5iD+0HxIzdYjbWL6BTJMXCPUHp9PxDTRPw==",
"requires": {
- "@intlify/shared": "9.13.1",
+ "@intlify/shared": "11.0.0-rc.1",
"source-map-js": "^1.0.2"
}
},
"@intlify/shared": {
- "version": "9.13.1",
- "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.13.1.tgz",
- "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ=="
+ "version": "11.0.0-rc.1",
+ "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-11.0.0-rc.1.tgz",
+ "integrity": "sha512-8tR1xe7ZEbkabTuE/tNhzpolygUn9OaYp9yuYAF4MgDNZg06C3Qny80bes2/e9/Wm3aVkPUlCw6WgU7mQd0yEg=="
},
"@jridgewell/sourcemap-codec": {
"version": "1.4.15",
@@ -4615,12 +4624,12 @@
}
},
"vue-i18n": {
- "version": "9.13.1",
- "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.13.1.tgz",
- "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==",
+ "version": "11.0.0-rc.1",
+ "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-11.0.0-rc.1.tgz",
+ "integrity": "sha512-qbdCbA537HEdr2yXQ4ec/OMDsoHjod1DwnWbrf+l4Cu/O7CYTCKsOyITUm3RmrCJgRnoVycuR6i/JWdNTJvD5g==",
"requires": {
- "@intlify/core-base": "9.13.1",
- "@intlify/shared": "9.13.1",
+ "@intlify/core-base": "11.0.0-rc.1",
+ "@intlify/shared": "11.0.0-rc.1",
"@vue/devtools-api": "^6.5.0"
}
},
@@ -5178,12 +5187,12 @@
}
},
"vue-i18n": {
- "version": "9.13.1",
- "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.13.1.tgz",
- "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==",
+ "version": "11.0.0-rc.1",
+ "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-11.0.0-rc.1.tgz",
+ "integrity": "sha512-qbdCbA537HEdr2yXQ4ec/OMDsoHjod1DwnWbrf+l4Cu/O7CYTCKsOyITUm3RmrCJgRnoVycuR6i/JWdNTJvD5g==",
"requires": {
- "@intlify/core-base": "9.13.1",
- "@intlify/shared": "9.13.1",
+ "@intlify/core-base": "11.0.0-rc.1",
+ "@intlify/shared": "11.0.0-rc.1",
"@vue/devtools-api": "^6.5.0"
}
},
diff --git a/UI-Project/package.json b/UI-Project/package.json
index acb0d7e..916c2c4 100644
--- a/UI-Project/package.json
+++ b/UI-Project/package.json
@@ -24,7 +24,7 @@
"vue": "^3.3.4",
"vue-draggable-plus": "^0.5.0",
"vue-echarts": "^6.7.3",
- "vue-i18n": "^9.10.1",
+ "vue-i18n": "^11.0.0-rc.1",
"vue-print-nb": "^1.7.5",
"vue-router": "^4.0.13",
"vue3-print-nb": "^0.1.4",
diff --git a/UI-Project/src/lang/en.js b/UI-Project/src/lang/en.js
index a661505..e81910d 100644
--- a/UI-Project/src/lang/en.js
+++ b/UI-Project/src/lang/en.js
@@ -87,6 +87,20 @@
layoutSequence:'Serial Number',
},
sorter:{
+ inPlace:'鍒颁綅',
+ ninPlace:'鏈埌浣�',
+ emptymissions:'绌轰换鍔�',
+ advancetask:'杩涚墖浠诲姟',
+ outputtasks:'鍑虹墖浠诲姟',
+ straighttasks:'鐩撮�氫换鍔�',
+ endingtask:'缁撴潫',
+ another:'鍏朵粬',
+ taskRunning:'浠诲姟璇锋眰',
+ updateTime:'鏇存柊鏃堕棿',
+ id:'纾ㄨ竟鍓嶇悊鐗囩琛↖D',
+ remainWidth:'鍓╀綑',
+ place:'鏄惁鍒颁綅',
+ layernow:'褰撳墠灞傚彿',
gridnumber:'Grid number',
glassnumber:'Glass number',
width:'Width',
diff --git a/UI-Project/src/lang/py.js b/UI-Project/src/lang/py.js
index 84f4a6d..f1ae786 100644
--- a/UI-Project/src/lang/py.js
+++ b/UI-Project/src/lang/py.js
@@ -87,6 +87,20 @@
layoutSequence:'小械褉懈泄薪 薪芯屑械褉',
},
sorter: {
+ inPlace:'鍒颁綅',
+ ninPlace:'鏈埌浣�',
+ emptymissions:'绌轰换鍔�',
+ advancetask:'杩涚墖浠诲姟',
+ outputtasks:'鍑虹墖浠诲姟',
+ straighttasks:'鐩撮�氫换鍔�',
+ endingtask:'缁撴潫',
+ another:'鍏朵粬',
+ taskRunning:'浠诲姟璇锋眰',
+ remainWidth:'鍓╀綑',
+ id:'纾ㄨ竟鍓嶇悊鐗囩琛↖D',
+ updateTime:'鏇存柊鏃堕棿',
+ place:'鏄惁鍒颁綅',
+ layernow:'褰撳墠灞傚彿',
gridnumber: '携褔械械泻 褋械褌泻谢邪',
glassnumber: '袧芯屑械褉 褋褌邪泻谢邪',
width: '楔懈褉懈薪邪',
diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
index f22fe3c..7bb85de 100644
--- a/UI-Project/src/lang/zh.js
+++ b/UI-Project/src/lang/zh.js
@@ -87,6 +87,20 @@
layoutSequence:'搴忓彿',
},
sorter:{
+ inPlace:'鍒颁綅',
+ ninPlace:'鏈埌浣�',
+ emptymissions:'绌轰换鍔�',
+ advancetask:'杩涚墖浠诲姟',
+ outputtasks:'鍑虹墖浠诲姟',
+ straighttasks:'鐩撮�氫换鍔�',
+ endingtask:'缁撴潫',
+ another:'鍏朵粬',
+ id:'纾ㄨ竟鍓嶇悊鐗囩琛↖D',
+ remainWidth:'鍓╀綑',
+ taskRunning:'浠诲姟璇锋眰',
+ updateTime:'鏇存柊鏃堕棿',
+ place:'鏄惁鍒颁綅',
+ layernow:'褰撳墠灞傚彿',
gridnumber:'鏍呮牸鍙�',
glassnumber:'鐜荤拑缂栧彿',
width:'瀹�',
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
index 9643500..d750e60 100644
--- a/UI-Project/src/router/index.js
+++ b/UI-Project/src/router/index.js
@@ -46,11 +46,6 @@
component: () => import('../views/Returns/return.vue'),
children:[
{
- path: '/Returns/returns',
- name: 'returns',
- component: () => import('../views/Returns/returns.vue')
- },
- {
path: '/Returns/upreturns',
name: 'upreturns',
component: () => import('../views/Returns/upreturns.vue')
@@ -95,11 +90,6 @@
path: '/Caching/cachingun',
name: 'cachingun',
component: () => import('../views/Caching/cachingun.vue')
- },
- {
- path: '/Caching/cachingyiwu',
- name: 'cachingyiwu',
- component: () => import('../views/Caching/cachingyiwu.vue')
},
]
},
diff --git a/UI-Project/src/views/Caching/cachingbefore.vue b/UI-Project/src/views/Caching/cachingbefore.vue
index f97f343..19d921e 100644
--- a/UI-Project/src/views/Caching/cachingbefore.vue
+++ b/UI-Project/src/views/Caching/cachingbefore.vue
@@ -8,77 +8,115 @@
import {useI18n} from 'vue-i18n'
const {t} = useI18n()
let language = ref(localStorage.getItem('lang') || 'zh')
-const tableData = ref([])
-const slot = ref('')
+const tableDataa = ref([])
+const tableDatab = ref([])
const adjustedRects = ref([]);
-onMounted(async () => {
- try {
- const response = await request.post('/cacheGlass/edgStorageCage/selectEdgStorageCage');
- if (response.code === 200) {
- const rawRects = response.data;
- tableData.value = response.data
- adjustedRects.value = rawRects.map(rect => ({
- ...rect,
- width: rect.width * 0.5 ,
- id: rect.id * 10,
- }));
- } else {
- ElMessage.warning(res.msg)
- }
- } catch (error) {
- // console.error('Error fetching rects :', error);
- }
-});
-const toggleEnableState = async (row) => {
- const newState = row.enable_state === 1 ? 0 : 1;
- const response = await request.post('/cacheGlass/edgStorageCage/updateEdgStorageCage', { id: row.id, enableState: newState });
- if (response.code === 200) {
- ElMessage.success(response.message);
- } else {
- ElMessage.error(response.message);
- }
- row.enable_state = newState;
-};
-const open = async(row) => {
- try {
- const confirmResult = await ElMessageBox.confirm(
- t('sorter.information'),
- t('sorter.prompt'),
- {
- confirmButtonText: t('sorter.yes'),
- cancelButtonText: t('sorter.cancel'),
- type: 'warning',
- }
- );
- if (confirmResult === 'confirm') {
- var url="/cacheGlass/edgStorageCage/edgStorageCageGlass?edgStorageCageId="+row.id;
- const response = await request.post(url, {
- glassId:row.glass_id
- })
- if (response.code === 200) {
- ElMessage.success(response.message);
- } else {
- ElMessage.error(response.msg);
- }
- }
- } catch (error) {
- console.error('鍙戠敓閿欒:', error);
- }
-};
let socket = null;
-const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlass`;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlassOne`;
const handleMessage = (data) => {
- tableData.value = data.EdgStorageCageinfos[0]
- adjustedRects.value = data.EdgStorageCageinfos[0].map(rect => ({
- ...rect,
- width: rect.width * 0.5 ,
- id: rect.id * 10,
- }));
+ const cageInfo = data.taskMessage[0];
+ if (cageInfo && cageInfo.createTime) {
+ cageInfo.formattedCreateTime = formatTimestamp(cageInfo.createTime);
+ }
+ if (cageInfo && cageInfo.updateTime) {
+ cageInfo.formattedupdateTime = formatTimestamp(cageInfo.updateTime);
+ }
+ tableDataa.value = data.EdgStorageCageinfos[0]
+ tableDatab.value = data.taskMessage
+ // adjustedRects.value = data.EdgStorageCageinfos[0].map(rect => ({
+ // ...rect,
+ // width: rect.width * 0.5 ,
+ // id: rect.id * 10,
+ // }));
};
// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
onMounted(() => {
socket = initializeWebSocket(socketUrl, handleMessage);
});
+function getStatusTypea(taskRunning) {
+ switch (taskRunning) {
+ case 0:
+ return 'info';
+ case 1:
+ return 'success';
+ case 2:
+ return 'success';
+ case 3:
+ return 'success';
+ case 4:
+ return 'success';
+ case 5:
+ return 'danger';
+ case 6:
+ return 'info';
+ }
+}
+function getStatusTexta(taskRunning) {
+ switch (taskRunning) {
+ case 0:
+ return t('sorter.emptymissions');
+ case 1:
+ return t('sorter.advancetask');
+ case 2:
+ return t('sorter.outputtasks');
+ case 3:
+ return t('sorter.straighttasks');
+ case 4:
+ return t('searchOrder.infilm');
+ case 5:
+ return t('sorter.endingtask');
+ case 6:
+ return t('sorter.another');
+ }
+}
+function getStatusTypeb(taskState) {
+ switch (taskState) {
+ case 0:
+ return 'info';
+ case 1:
+ return 'success';
+ case 2:
+ return 'success';
+ case 3:
+ return 'success';
+ case 4:
+ return 'success';
+ case 5:
+ return 'danger';
+ case 6:
+ return 'info';
+ }
+}
+function getStatusTextb(taskState) {
+ switch (taskState) {
+ case 0:
+ return t('sorter.emptymissions');
+ case 1:
+ return t('sorter.advancetask');
+ case 2:
+ return t('sorter.outputtasks');
+ case 3:
+ return t('sorter.straighttasks');
+ case 4:
+ return t('searchOrder.infilm');
+ case 5:
+ return t('sorter.endingtask');
+ case 6:
+ return t('sorter.another');
+ }
+}
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+ const date = new Date(timestamp);
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+ const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+ const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+ const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+ const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+ // 鍙樉绀哄勾鏈堟棩锛屽鏋滈渶瑕佹樉绀烘椂闂达紝鍒欐嫾鎺� hours + ':' + minutes + ':' + seconds
+ return `${year}-${month}-${day}`;
+}
onUnmounted(() => {
if (socket) {
closeWebSocket(socket);
@@ -93,41 +131,84 @@
<div style="height: 500px;">
<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="340" ref="table"
+ <el-table height="300" ref="table"
@selection-change="handleSelectionChange"
- :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="id" align="center" :label="$t('sorter.id')" min-width="80" />
+ <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="80" />
<el-table-column prop="slot" align="center" :label="$t('sorter.gridnumber')" min-width="80" />
- <el-table-column prop="glass_id" align="center" :label="$t('sorter.glassnumber')" min-width="80" />
- <el-table-column prop="width" align="center" :label="$t('sorter.width')" min-width="120" />
- <el-table-column prop="height" align="center" :label="$t('sorter.height')" min-width="120" />
<el-table-column
align="center"
:label="$t('sorter.startstatus')"
min-width="80"
- prop="enable_state"
+ prop="enableState"
+ >
+ <template #default="scope">
+ <el-tag
+ :type="scope.row.enableState === 1 ? 'success' : 'warning'"
+ >
+ {{ scope.row.enableState === 1 ? $t('sorter.start') : $t('sorter.disable') }}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column prop="remainWidth" align="center" :label="$t('sorter.remainWidth')" min-width="80" />
+ </el-table>
+ </div>
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;margin-top: 15px;">
+ <el-table height="90" ref="table"
+ @selection-change="handleSelectionChange"
+ :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="glassIdOut" align="center" :label="$t('searchOrder.outputglassID')" min-width="80" />
+ <el-table-column prop="currentCell" align="center" :label="$t('sorter.layernow')" min-width="80" />
+ <el-table-column prop="startCell" align="center" :label="$t('processCard.layer')" min-width="120" />
+ <el-table-column
+ align="center"
+ :label="$t('sorter.place')"
+ min-width="80"
+ prop="inPlace"
+ >
+ <template #default="scope">
+ <el-tag
+ :type="scope.row.inPlace === 1 ? 'success' : 'warning'"
+ >
+ {{ scope.row.inPlace === 1 ? $t('sorter.inPlace') : $t('sorter.ninPlace') }}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
+ align="center"
+ :label="$t('sorter.taskRunning')"
+ min-width="80"
+ prop="taskRunning"
>
<template #default="scope">
- <el-tag
- :type="scope.row.enable_state === 1 ? 'success' : 'danger'"
- @click="toggleEnableState(scope.row)"
- >
- {{ scope.row.enable_state === 1 ? $t('sorter.start') : $t('sorter.disable') }}
- </el-tag>
- </template>
+ <el-tag :type="getStatusTypea(scope.row.taskRunning)">
+ {{ getStatusTexta(scope.row.taskRunning) }}
+ </el-tag>
+ </template>
</el-table-column>
- <el-table-column fixed="right" :label="$t('sorter.operate')" align="center" width="200">
- <template #default="scope">
- <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('sorter.deficiencieste') }}</el-button>
- </template>
- </el-table-column>
+ <el-table-column
+ align="center"
+ :label="$t('film.taskstatus')"
+ min-width="80"
+ prop="taskState"
+ >
+ <template #default="scope">
+ <el-tag :type="getStatusTypeb(scope.row.taskState)">
+ {{ getStatusTextb(scope.row.taskState) }}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column prop="formattedCreateTime" align="center" :label="$t('film.createtime')" min-width="120" />
+ <el-table-column prop="formattedupdateTime" align="center" :label="$t('sorter.updateTime')" min-width="120" />
</el-table>
</div>
</el-card>
<div class="awatch">
- <img src="../../assets/woshihuancun.png" alt="" style="width: 70%;height: 90%;margin-left: 200px;margin-top: 20px;position: relative;">
+ <img src="../../assets/woshihuancun.png" alt="" style="width: 50%;height: 70%;margin-left: 30%;margin-top: 20px;position: relative;">
<div style="position: relative; width: 500px;height: 95px;margin-top: -165px;margin-left: 450px;">
<div
- v-for="(rect, index) in adjustedRects"
+ v-for="(rect, index) in adjustedRects"
:key="rect"
:style="{ position: 'absolute',
top: `${rect.id}px`, left: `10px`, width: `${rect.width}px`, height: `5px`,
diff --git a/UI-Project/src/views/Caching/cachingun.vue b/UI-Project/src/views/Caching/cachingun.vue
index e6ac037..334ccf1 100644
--- a/UI-Project/src/views/Caching/cachingun.vue
+++ b/UI-Project/src/views/Caching/cachingun.vue
@@ -1,200 +1,244 @@
-<template>
- <div style="height: 500px;">
- <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="340" ref="table" @selection-change="handleSelectionChange" :data="tableData"
- :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
- <el-table-column prop="slot" align="center" :label="$t('sorter.gridnumber')" min-width="80" />
- <el-table-column prop="glass_id" align="center" :label="$t('sorter.glassnumber')" min-width="80" />
- <el-table-column prop="width" align="center" :label="$t('sorter.width')" min-width="120" />
- <el-table-column prop="height" align="center" :label="$t('sorter.height')" min-width="120" />
- <el-table-column align="center" :label="$t('sorter.startstatus')" min-width="80" prop="enable_state">
- <template #default="scope">
- <el-tag :type="scope.row.enable_state === 1 ? 'success' : 'danger'" @click="toggleEnableState(scope.row)">
- {{ scope.row.enable_state === 1 ? $t('sorter.start') : $t('sorter.disable') }}
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column fixed="right" :label="$t('sorter.operate')" align="center" width="200">
- <template #default="scope">
- <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('sorter.deficiencieste')
- }}</el-button>
- <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('sorter.updown') }}</el-button>
- </template>
- </el-table-column>
- </el-table>
- </div>
- </el-card>
- <div class="awatch">
- <img src="../../assets/woshihuancun.png" alt=""
- style="width: 70%;height: 90%;margin-left: 200px;margin-top: 20px;position: relative;">
- <div style="position: relative; width: 500px;height: 95px;margin-top: -165px;margin-left: 450px;">
- <div v-for="(rect, index) in adjustedRects" :key="rect" :style="{
- position: 'absolute',
- top: `${rect.id}px`, left: `10px`, width: `${rect.width}px`, height: `5px`,
- backgroundColor: '#409EFF'
- }">
- </div>
- </div>
- </div>
- </div>
-</template>
<script setup>
-import { Search, Lock, Avatar } from "@element-plus/icons-vue";
-import { reactive } from "vue";
-import { useRouter } from "vue-router"
-const router = useRouter()
-import { WebSocketHost, host } from '@/utils/constants'
+import {onBeforeUnmount, onMounted, onUnmounted, ref} from "vue";
+import {useRouter} from "vue-router"
+import {host, WebSocketHost} from '@/utils/constants'
import request from "@/utils/request"
-import { ref, onMounted, onBeforeUnmount, onUnmounted } from "vue";
-import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
-import { ElMessage, ElMessageBox } from 'element-plus'
-import { useI18n } from 'vue-i18n'
-const { t } = useI18n()
-const tableData = reactive([]);
-const slot = ref('')
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const tableDataa = ref([])
+const tableDatab = ref([])
const adjustedRects = ref([]);
-onMounted(async () => {
- try {
- const response = await request.get('/unLoadGlass/downStorage/selectStorageCage');
- if (response.code === 200) {
- const rawRects = response.data;
- tableData.value = response.data
- console.log(response.data);
- adjustedRects.value = rawRects.map(rect => ({
- ...rect,
- width: rect.width * 0.5,
- id: rect.id * 10,
- }));
- console.log(adjustedRects.value);
- } else {
- ElMessage.warning(res.msg)
- }
- } catch (error) {
- // console.error('Error fetching rects :', error);
- }
-});
-const open = async (row) => {
- try {
- const confirmResult = await ElMessageBox.confirm(
- t('sorter.information'),
- t('sorter.prompt'),
- {
- confirmButtonText: t('sorter.yes'),
- cancelButtonText: t('sorter.cancel'),
- type: 'warning',
- }
- );
- if (confirmResult === 'confirm') {
- var url = "/unLoadGlass/downStorage/deleteDownStorageCage";
- console.log(url);
- const response = await request.post(url, {
- glassId: row.glass_id,
- state: 9,
- line: 1001,
- workingProcedure: '纾ㄨ竟',
- })
- if (response.code === 200) {
- ElMessage.success(response.message);
- } else {
- ElMessage.error(response.message);
- }
- }
- }
- catch (error) {
- console.error('鍙戠敓閿欒:', error);
-}
-};
-// 浜哄伐涓嬬墖
-const opena = async (row) => {
- try {
- const confirmResult = await ElMessageBox.confirm(
- t('sorter.infor'),
- t('sorter.prompt'),
- {
- confirmButtonText: t('sorter.yes'),
- cancelButtonText: t('sorter.cancel'),
- type: 'warning',
- }
- );
- if (confirmResult === 'confirm') {
- const response = await request.post("/unLoadGlass/downGlassTask/generateOutGlassTask", {
- glassId: row.glass_id
- })
- if (response.code === 200) {
- ElMessage.success(response.message);
- } else {
- ElMessage.error(response.message);
- }
- }
- }
- catch (error) {
- console.error('鍙戠敓閿欒:', error);
- }
-};
-const toggleEnableState = async (row) => {
- const newState = row.enable_state === 1 ? 0 : 1;
- const response = await request.post('/unLoadGlass/downStorage/updateDownStorageCage', { id: row.id, enableState: newState });
- if (response.code === 200) {
- ElMessage.success(response.message);
- } else {
- ElMessage.error(response.message);
- }
- row.enable_state = newState;
-};
let socket = null;
-const socketUrl = `ws://${WebSocketHost}:${host}/api/unLoadGlass/api/talk/downcache`;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlassTwo`;
const handleMessage = (data) => {
- tableData.splice(0, tableData.length, ...data.params2[0]);
- adjustedRects.value = data.params2[0].map(rect => ({
- ...rect,
- width: rect.width * 0.5,
- id: rect.id * 10,
- }));
+ const cageInfo = data.taskMessage[0];
+ if (cageInfo && cageInfo.createTime) {
+ cageInfo.formattedCreateTime = formatTimestamp(cageInfo.createTime);
+ }
+ if (cageInfo && cageInfo.updateTime) {
+ cageInfo.formattedupdateTime = formatTimestamp(cageInfo.updateTime);
+ }
+ tableDataa.value = data.EdgStorageCageinfos[0]
+ tableDatab.value = data.taskMessage
+ // adjustedRects.value = data.EdgStorageCageinfos[0].map(rect => ({
+ // ...rect,
+ // width: rect.width * 0.5 ,
+ // id: rect.id * 10,
+ // }));
};
+// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
onMounted(() => {
socket = initializeWebSocket(socketUrl, handleMessage);
});
-onUnmounted(() => {
- if (socket) {
- closeWebSocket(socket);
+function getStatusTypea(taskRunning) {
+ switch (taskRunning) {
+ case 0:
+ return 'info';
+ case 1:
+ return 'success';
+ case 2:
+ return 'success';
+ case 3:
+ return 'success';
+ case 4:
+ return 'success';
+ case 5:
+ return 'danger';
+ case 6:
+ return 'info';
}
-});
+}
+function getStatusTexta(taskRunning) {
+ switch (taskRunning) {
+ case 0:
+ return t('sorter.emptymissions');
+ case 1:
+ return t('sorter.advancetask');
+ case 2:
+ return t('sorter.outputtasks');
+ case 3:
+ return t('sorter.straighttasks');
+ case 4:
+ return t('searchOrder.infilm');
+ case 5:
+ return t('sorter.endingtask');
+ case 6:
+ return t('sorter.another');
+ }
+}
+function getStatusTypeb(taskState) {
+ switch (taskState) {
+ case 0:
+ return 'info';
+ case 1:
+ return 'success';
+ case 2:
+ return 'success';
+ case 3:
+ return 'success';
+ case 4:
+ return 'success';
+ case 5:
+ return 'danger';
+ case 6:
+ return 'info';
+ }
+}
+function getStatusTextb(taskState) {
+ switch (taskState) {
+ case 0:
+ return t('sorter.emptymissions');
+ case 1:
+ return t('sorter.advancetask');
+ case 2:
+ return t('sorter.outputtasks');
+ case 3:
+ return t('sorter.straighttasks');
+ case 4:
+ return t('searchOrder.infilm');
+ case 5:
+ return t('sorter.endingtask');
+ case 6:
+ return t('sorter.another');
+ }
+}
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+ const date = new Date(timestamp);
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+ const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+ const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+ const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+ const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+ // 鍙樉绀哄勾鏈堟棩锛屽鏋滈渶瑕佹樉绀烘椂闂达紝鍒欐嫾鎺� hours + ':' + minutes + ':' + seconds
+ return `${year}-${month}-${day}`;
+}
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
onBeforeUnmount(() => {
console.log("鍏抽棴浜�")
closeWebSocket();
});
</script>
+<template>
+ <div style="height: 500px;">
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+ <el-table height="300" ref="table"
+ @selection-change="handleSelectionChange"
+ :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="id" align="center" :label="$t('sorter.id')" min-width="80" />
+ <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="80" />
+ <el-table-column prop="slot" align="center" :label="$t('sorter.gridnumber')" min-width="80" />
+ <el-table-column
+ align="center"
+ :label="$t('sorter.startstatus')"
+ min-width="80"
+ prop="enableState"
+ >
+ <template #default="scope">
+ <el-tag
+ :type="scope.row.enableState === 1 ? 'success' : 'warning'"
+ >
+ {{ scope.row.enableState === 1 ? $t('sorter.start') : $t('sorter.disable') }}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column prop="remainWidth" align="center" :label="$t('sorter.remainWidth')" min-width="80" />
+ </el-table>
+ </div>
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;margin-top: 15px;">
+ <el-table height="90" ref="table"
+ @selection-change="handleSelectionChange"
+ :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="glassIdOut" align="center" :label="$t('searchOrder.outputglassID')" min-width="80" />
+ <el-table-column prop="currentCell" align="center" :label="$t('sorter.layernow')" min-width="80" />
+ <el-table-column prop="startCell" align="center" :label="$t('processCard.layer')" min-width="120" />
+ <el-table-column
+ align="center"
+ :label="$t('sorter.place')"
+ min-width="80"
+ prop="inPlace"
+ >
+ <template #default="scope">
+ <el-tag
+ :type="scope.row.inPlace === 1 ? 'success' : 'warning'"
+ >
+ {{ scope.row.inPlace === 1 ? $t('sorter.inPlace') : $t('sorter.ninPlace') }}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
+ align="center"
+ :label="$t('sorter.taskRunning')"
+ min-width="80"
+ prop="taskRunning"
+ >
+ <template #default="scope">
+ <el-tag :type="getStatusTypea(scope.row.taskRunning)">
+ {{ getStatusTexta(scope.row.taskRunning) }}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
+ align="center"
+ :label="$t('film.taskstatus')"
+ min-width="80"
+ prop="taskState"
+ >
+ <template #default="scope">
+ <el-tag :type="getStatusTypeb(scope.row.taskState)">
+ {{ getStatusTextb(scope.row.taskState) }}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column prop="formattedCreateTime" align="center" :label="$t('film.createtime')" min-width="120" />
+ <el-table-column prop="formattedupdateTime" align="center" :label="$t('sorter.updateTime')" min-width="120" />
+ </el-table>
+ </div>
+ </el-card>
+ <div class="awatch">
+ <img src="../../assets/woshihuancun.png" alt="" style="width: 50%;height: 70%;margin-left: 30%;margin-top: 20px;position: relative;">
+ <div style="position: relative; width: 500px;height: 95px;margin-top: -165px;margin-left: 450px;">
+ <div
+ v-for="(rect, index) in adjustedRects"
+ :key="rect"
+ :style="{ position: 'absolute',
+ top: `${rect.id}px`, left: `10px`, width: `${rect.width}px`, height: `5px`,
+ backgroundColor: '#409EFF'
+ }"
+ >
+ </div>
+ </div>
+</div>
+</div>
+</template>
<style scoped>
-#dt {
- display: block;
- float: left;
- line-height: 20px;
- margin-left: 100px;
-}
-#dta {
- display: block;
- float: left;
- line-height: 20px;
- margin-left: 80%;
-}
-#dialog-footer {
+#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: 460px;
width: 1500px;
max-width: 100%;
- /* margin-top: -60px; */
}
-</style>
\ No newline at end of file
+</style>
diff --git a/UI-Project/src/views/Caching/cachingyiwu.vue b/UI-Project/src/views/Caching/cachingyiwu.vue
deleted file mode 100644
index 8391db9..0000000
--- a/UI-Project/src/views/Caching/cachingyiwu.vue
+++ /dev/null
@@ -1,184 +0,0 @@
-<script setup>
-import {onBeforeUnmount, onMounted, onUnmounted, ref} from "vue";
-import {useRouter} from "vue-router"
-import {host, WebSocketHost} from '@/utils/constants'
-
-import request from "@/utils/request"
-import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
-import {ElMessage, ElMessageBox} from 'element-plus'
-import {useI18n} from 'vue-i18n'
-const router = useRouter()
-const {t} = useI18n()
-let language = ref(localStorage.getItem('lang') || 'zh')
-const tableData = ref([])
-const slot = ref('')
-const adjustedRects = ref([]);
-onMounted(async () => {
- try {
- const response = await request.post('/cacheGlass/edgStorageCage/selectEdgStorageCage');
- if (response.code === 200) {
- const rawRects = response.data;
- tableData.value = response.data
- console.log(response.data);
- adjustedRects.value = rawRects.map(rect => ({
- ...rect,
- width: rect.width * 0.5,
- id: rect.id * 10,
- }));
- console.log(adjustedRects.value);
- } else {
- ElMessage.warning(res.msg)
- }
- } catch (error) {
- // console.error('Error fetching rects :', error);
- }
-});
-const toggleEnableState = async (row) => {
- const newState = row.enable_state === 1 ? 0 : 1;
- const response = await request.post('/cacheGlass/edgStorageCage/updateEdgStorageCage', {
- id: row.id,
- enableState: newState
- });
- if (response.code === 200) {
- ElMessage.success(response.message);
- } else {
- ElMessage.error(response.message);
- }
- row.enable_state = newState;
-};
-const open = async (row) => {
- try {
- const confirmResult = await ElMessageBox.confirm(
- t('sorter.information'),
- t('sorter.prompt'),
- {
- confirmButtonText: t('sorter.yes'),
- cancelButtonText: t('sorter.cancel'),
- type: 'warning',
- }
- );
- if (confirmResult === 'confirm') {
- var url = "/cacheGlass/edgStorageCage/edgStorageCageGlass?edgStorageCageId=" + row.id;
- console.log(row);
- const response = await request.post(url, {
- glassId: row.glass_id
- })
- if (response.code === 200) {
- ElMessage.success(response.message);
- } else {
- ElMessage.error(response.msg);
- }
- }
- } catch (error) {
- console.error('鍙戠敓閿欒:', error);
- }
-};
-let socket = null;
-const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlass`;
-const handleMessage = (data) => {
- tableData.value = data.EdgStorageCageinfos[0]
- adjustedRects.value = data.EdgStorageCageinfos[0].map(rect => ({
- ...rect,
- width: rect.width * 0.5,
- id: rect.id * 10,
- }));
-};
-onMounted(() => {
- socket = initializeWebSocket(socketUrl, handleMessage);
-});
-onUnmounted(() => {
- if (socket) {
- closeWebSocket(socket);
- }
-});
-onBeforeUnmount(() => {
- console.log("鍏抽棴浜�")
- closeWebSocket();
-});
-</script>
-<template>
- <div style="height: 500px;">
- <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="340" ref="table"
- @selection-change="handleSelectionChange"
- :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="slot" align="center" :label="$t('sorter.gridnumber')" min-width="80"/>
- <el-table-column prop="glass_id" align="center" :label="$t('sorter.glassnumber')" min-width="80"/>
- <el-table-column prop="width" align="center" :label="$t('sorter.width')" min-width="120"/>
- <el-table-column prop="height" align="center" :label="$t('sorter.height')" min-width="120"/>
- <el-table-column
- align="center"
- :label="$t('sorter.startstatus')"
- min-width="80"
- prop="enable_state"
- >
- <template #default="scope">
- <el-tag
- :type="scope.row.enable_state === 1 ? 'success' : 'danger'"
- @click="toggleEnableState(scope.row)"
- >
- {{ scope.row.enable_state === 1 ? $t('sorter.start') : $t('sorter.disable') }}
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column fixed="right" :label="$t('sorter.operate')" align="center" width="200">
- <template #default="scope">
- <el-button size="mini" type="text" plain @click="open(scope.row)">{{
- $t('sorter.deficiencieste')
- }}
- </el-button>
- </template>
- </el-table-column>
- </el-table>
- </div>
- </el-card>
- <div class="awatch">
- <img src="../../assets/woshihuancun.png" alt=""
- style="width: 70%;height: 90%;margin-left: 200px;margin-top: 20px;position: relative;">
- <div style="position: relative; width: 500px;height: 95px;margin-top: -165px;margin-left: 450px;">
- <div
- v-for="(rect, index) in adjustedRects"
- :key="rect"
- :style="{ position: 'absolute',
- top: `${rect.id}px`, left: `10px`, width: `${rect.width}px`, height: `5px`,
- backgroundColor: '#409EFF'
- }"
- >
- </div>
- </div>
- </div>
- </div>
-</template>
-<style scoped>
-#dt {
- display: block;
- float: left;
- line-height: 20px;
- margin-left: 100px;
-}
-#dta {
- display: block;
- float: left;
- line-height: 20px;
- margin-left: 80%;
-}
-#dialog-footer {
- text-align: center;
- margin-top: -15px;
-}
-#message {
- text-align: center;
- align-items: center;
- color: black;
- width: 200px;
- height: 100px;
- background-color: #337ecc;
- margin-left: 28%;
-}
-.awatch {
- height: 460px;
- width: 1500px;
- max-width: 100%;
-}
-</style>
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
deleted file mode 100644
index 3ac8c56..0000000
--- a/UI-Project/src/views/Returns/returns.vue
+++ /dev/null
@@ -1,958 +0,0 @@
-<script lang="ts" setup>
-import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
-import {useRouter} from "vue-router"
-import {ElMessage} from 'element-plus'
-import {useI18n} from 'vue-i18n'
-import {host, WebSocketHost} from '@/utils/constants'
-import request from "@/utils/request"
-import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
-const router = useRouter()
-const {t} = useI18n()
-const dialogFormVisible = ref(false)
-const blind = ref(false)
-const blinda = ref(false)
-const blindb = ref(false)
-const add = ref(false)
-const adda = ref(false)
-const flake = ref(false)
-const flakea = ref(false)
-const flakeb = ref(false)
-const flakec = ref(false)
-const dialoglea = ref(false)
-const tableDatax = ref([])
-const user = ref('');
-const projectNo = ref('');
-const workstationId = ref('');
-const id = ref('');
-const patternHeight = ref('');
-const patternWidth = ref('');
-const filmsId = ref('');
-const patternThickness = ref('');
-const number = ref('');
-const canSelectProject = ref(true);
-const canStartLoading = ref(false);
-const ida = ref(null);
-const selectedProjectNo = ref('');
-const selectedProjectNoa = ref('');
-const selectedValue = ref('');
-const selectedValuea = ref('');
-const selectedValueb = ref('');
-const selectedValuec = ref('');
-const upstatus = ref(t('basicData.machineaa'));
-const cuttingMachine = ref('');
-const cuttingMachineStatusColor = ref('#911005'); // 鐢ㄤ簬鍔ㄦ�佽缃甶鏍囩鐨勮儗鏅壊
-const inKageWord = ref(0); // 鐢ㄤ簬瀛樺偍瑕佷紶閫掔粰鎺ュ彛鐨刬nKageWord鍊�
-const options = ref<any[]>([]);
-const selectOptions = ref<Array<any>>([]);
-const selectOptionsa = ref<Array<any>>([]);
-const selectOptionsb = ref<Array<any>>([]);
-const selectOptionsc = ref<Array<any>>([]);
-const tableDataa = ref([])
-const tableData = reactive([]);
-const fetchTableData = async () => {
- try {
- const response = await request.get("/loadGlass/up-patten-usage/prioritylist");
- if (response.code === 200) {
- console.log('鎴愬姛鑾峰彇琛ㄦ牸鏁版嵁:', response.data);
- tableData.splice(0, tableData.length, ...response.data);
- const uniqueWidths = new Set(response.data.map(item => item.width));
- const uniqueHeights = new Set(response.data.map(item => item.height));
- const uniqueFilmsIds = new Set(response.data.map(item => item.filmsId));
- const uniqueThicknesses = new Set(response.data.map(item => item.thickness));
- selectOptions.value = Array.from(uniqueWidths).map(width => ({
- value: width,
- label: width,
- }));
- selectOptionsa.value = Array.from(uniqueHeights).map(height => ({
- value: height,
- label: height,
- }));
- selectOptionsb.value = Array.from(uniqueFilmsIds).map(filmsId => ({
- value: filmsId,
- label: filmsId,
- }));
- selectOptionsc.value = Array.from(uniqueThicknesses).map(thickness => ({
- value: thickness,
- label: thickness,
- }));
- } else {
- ElMessage.error(response.message);
- }
- } catch (error) {
- // ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
- }
-};
-const handlezhiban = () => {
- dialoglea.value = true;
- fetchFlowCardId();
-};
-const selectproject = () => {
- dialogFormVisible.value = true;
- selectgong();
-};
-// 鍒犻櫎
-const handledelete = (row) => {
- blindb.value = true;
-};
-// 鍊肩彮淇℃伅
-const fetchFlowCardId = async () => {
- try {
- const response = await request.post('/loadGlass/work_assignment/selectWorkAssignment',{
- line: 2001,
- workingProcedure : '鍐峰姞宸�'
- })
- if (response.code == 200) {
- ElMessage.success(response.message);
- tableDatax.value = response.data;
- } else {
- ElMessage.error(response.message);
- }
-}
-catch (error) {
- console.error(error);
- }
-}
-// 鍒犻櫎
-const deleteTask = async () => {
- try {
- let engineeringId = window.localStorage.getItem('engineeringId')
- console.log(engineeringId);
- if (engineeringId !== '') {
- const response = await request.post('/loadGlass/engineering/engineering/deleteTask', {
- engineerId: engineeringId,
- })
- if (response.code == 200) {
- ElMessage.success(response.message);
- blindb.value = false;
- } else {
- ElMessage.error(response.message);
- }
- }
- else {
- ElMessage({
- type: 'info',
- message: t('basicData.infonull'),
- })
- }
-}
-catch (error) {
- console.error(error);
- }
-}
-const handleConfirmb = async () => {
- const response = await request.post("/loadGlass/work_assignment/updateWorkAssignment", tableDatax.value)
- if (response.code === 200) {
- ElMessage.success(response.message);
- dialoglea.value = false;
- } else {
- ElMessage.error(response.message);
- }
-};
-onMounted(() => {
- list('');
- fetchOptions('');
- socket = initializeWebSocket(socketUrl, handleMessage);
-});
-onUnmounted(() => {
- if (socket) {
- closeWebSocket(socket);
- }
-});
-const list = async () => {
- try {
- const response = await request.get('/loadGlass/LoadGlass/list');
- if (response.code == 200) {
- tableDataa.value = response.data
- if (tableDataa.value.length === 4) {
- if (tableDataa.value[0].patternHeight > 0 && tableDataa.value[0].patternWidth > 0 && tableDataa.value[0].number > 0) {
- flake.value = true;
- }
- if (tableDataa.value[1].patternHeight > 0 && tableDataa.value[1].patternWidth > 0 && tableDataa.value[1].number > 0) {
- flakea.value = true;
- }
- if (tableDataa.value[2].patternHeight > 0 && tableDataa.value[2].patternWidth > 0 && tableDataa.value[2].number > 0) {
- flakeb.value = true;
- }
- if (tableDataa.value[3].patternHeight > 0 && tableDataa.value[3].patternWidth > 0 && tableDataa.value[3].number > 0) {
- flakec.value = true;
- }
- }
- } else {
- ElMessage.warning(response.data);
- }
- } catch (error) {
- console.error('Error fetching options:', error);
- }
-};
-const titleSelectJson = ref({
- processType: [],
-})
-const titleSelectJsona = ref({
- processTypea: [],
-})
-let socket = null;
-const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
-const handleMessage = (data) => {
- if(data.prioritylist!=null){
- tableData.splice(0, tableData.length, ...data.prioritylist[0]);
- }
- if(data.list!=null){
- tableDataa.value = data.list[0]
- }
- if(data.engineering ){
- if ( Array.isArray(data.engineering) && data.engineering.length !== 0) {
- canSelectProject.value = false;
- canStartLoading.value = true;
- }else{
- canSelectProject.value = true;
- canStartLoading.value = false;
- }
-}
-if (data.InkageStatus) {
-if(data.InkageStatus!=null){
- const status = data.InkageStatus[0];
- cuttingMachine.value = status;
- upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa');
- cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005';
- inKageWord.value = status === '1' ? 0 : 1;
-}
-}
-};
-const requestData = {
- state: 100
-};
-const selectgong = async (queryString: string) => {
- try {
- const response = await request.post('/loadGlass/optimizeProject/listByState',{
- ...requestData,
- projectNo: queryString
- })
- if (response.code == 200) {
- titleSelectJson.value.processType = response.data;
- } else {
- ElMessage.error(response.message);
- }
-}
-catch (error) {
- console.error(error);
- }
-}
-const fetchOptions = async (queryString: string) => {
- try {
- const response = await request.post('/loadGlass/optimizeProject/listByState', {
- ...requestData,
- query: queryString
- });
- if (response.code == 200) {
- // titleSelectJson.value.processType = response.data;
- console.log(response.data);
- } else {
- ElMessage.warning(response.data);
- }
- } catch (error) {
- console.error('Error fetching options:', error);
- }
-};
-// 澶勭悊鐢ㄦ埛杈撳叆鍙樺寲鐨勬柟娉�
-const handleInputChange = async (value: string) => {
- if (value) {
- await fetchOptions(value);
- } else {
- options.value = [];
- }
-};
-const handleInputChangea = async (value: string) => {
- if (value) {
- await fetchOptionsa(value);
- } else {
- options.value = [];
- }
-};
-onBeforeUnmount(() => {
- closeWebSocket();
-});
-// 娣诲姞
-const handleBindRack = (row) => {
- workstationId.value = row.workstationId;
- ida.value = row.id;
- add.value = true;
-};
-// 娣诲姞
-const handleConfirm = async () => {
- if ((ida.value === 2 || ida.value === 4) && (parseInt(selectedValuea.value, 10) >= 2700)) {
- try {
- const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
- id: workstationId.value,
- workstationId: workstationId.value,
- patternHeight: selectedValuea.value,
- patternWidth: selectedValue.value,
- filmsId: selectedValueb.value,
- patternThickness: selectedValuec.value,
- number: number.value
- });
- if (response.code == 200) {
- ElMessage.success(response.message);
- add.value = false;
- tableDataa.value = response.data;
- if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '1') {
- flake.value = true
- } else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '2'){
- flakea.value = true
- }else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '3'){
- flakeb.value = true
- }else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '4'){
- flakec.value = true
- }
- selectedValuea.value = '';
- selectedValue.value = '';
- selectedValueb.value = '';
- selectedValuec.value = '';
- number.value = '';
- list()
- } else {
- ElMessage.error(response.message);
- }
- } catch (error) {
- }
- }
- else if( ida.value === 1 || ida.value === 3){
- try {
- const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
- id: workstationId.value,
- workstationId: workstationId.value,
- patternHeight: selectedValuea.value,
- patternWidth: selectedValue.value,
- filmsId: selectedValueb.value,
- patternThickness: selectedValuec.value,
- number: number.value
- });
- if (response.code == 200) {
- ElMessage.success(response.message);
- add.value = false;
- tableDataa.value = response.data;
- if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '1') {
- flake.value = true
- } else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '2'){
- flakea.value = true
- }else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '3'){
- flakeb.value = true
- }else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '4'){
- flakec.value = true
- }
- selectedValuea.value = '';
- selectedValue.value = '';
- selectedValueb.value = '';
- selectedValuec.value = '';
- number.value = '';
- list()
- } else {
- ElMessage.error(response.message);
- }
- } catch (error) {
- }
- }
- else {
- ElMessage({
- type: 'info',
- message: t('basicData.pause'),
- })
- }
-};
-// 鍒犻櫎
-const handleConfirma = async () => {
- try {
- const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
- workstationId: workstationId.value,
- patternHeight: 0,
- patternWidth: 0,
- filmsId: "",
- patternThickness: 0,
- number: 0
- });
- if (response.code == 200) {
- ElMessage.success(response.message);
- adda.value = false;
- tableDataa.value = response.data;
- if (workstationId.value == '1') {
- flake.value = false
- } else if (workstationId.value == '2') {
- flakea.value = false
- } else if (workstationId.value == '3') {
- flakeb.value = false
- } else if (workstationId.value == '4') {
- flakec.value = false
- }
- list()
- } else {
- ElMessage.error(response.message);
- }
- } catch (error) {
- console.error(error);
- }
-};
-// 閫夋嫨宸ョ▼纭
-const handleup = async () => {
- try {
- const response = await request.post('/loadGlass/up-patten-usage/selectUpPattenUsage', {
- engineerId: selectedProjectNo.value,
- })
- window.localStorage.setItem('engineeringId', selectedProjectNo.value)
- if (response.code == 200) {
- ElMessage.success(response.message);
- dialogFormVisible.value = false;
- tableData.splice(0, tableData.length, ...response.data);
- selectedProjectNo.value = ''
- markingMachineStatus.value = '#911005';
- cuttingMachineStatus.value = '#911005';
- const uniqueWidths = new Set(response.data.map(item => item.width));
- const uniqueHeights = new Set(response.data.map(item => item.height));
- const uniqueFilmsIds = new Set(response.data.map(item => item.filmsId));
- const uniqueThicknesses = new Set(response.data.map(item => item.thickness));
- selectOptions.value = Array.from(uniqueWidths).map(width => ({
- value: width,
- label: width,
- }));
- selectOptionsa.value = Array.from(uniqueHeights).map(height => ({
- value: height,
- label: height,
- }));
- selectOptionsb.value = Array.from(uniqueFilmsIds).map(filmsId => ({
- value: filmsId,
- label: filmsId,
- }));
- selectOptionsc.value = Array.from(uniqueThicknesses).map(thickness => ({
- value: thickness,
- label: thickness,
- }));
- } else {
- ElMessage.error(response.message);
- }
-}
-catch (error) {
- console.error(error);
- }
-}
-// 寮�濮嬩笂鐗�
-const handle = async () => {
- if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {
- try {
- let engineeringId = window.localStorage.getItem('engineeringId')
- const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
- engineerId: engineeringId,
- state: 1,
- })
- if (response.code == 200) {
- ElMessage.success(response.message);
- blind.value = false;
- selectedProjectNoa.value = '';
- } else {
- ElMessage.error(response.message);
- }
-}
-catch (error) {
- console.error(error);
- }
- } else if (markingMachineStatus.value === '#911005' || cuttingMachineStatus.value === '#911005') {
- // 鎻愮ず鐢ㄦ埛鎵撴爣鏈烘湭灏辩华
- ElMessage.warning(t('basicData.pausea'));
- }
-}
-// 鏆傚仠
-const handlea = async () => {
- try {
- let engineeringId = window.localStorage.getItem('engineeringId')
- console.log(engineeringId);
- if (engineeringId !== '') {
- const response = await request.post('/loadGlass/engineering/engineering/pauseTask', {
- engineeringId: engineeringId,
- state: 0,
- })
- if (response.code == 200) {
- ElMessage.success(response.message);
- blinda.value = false;
- // tableData.splice([]);
- } else {
- ElMessage.error(response.message);
- }
- }
- else {
- ElMessage({
- type: 'info',
- message: t('basicData.infonull'),
- })
- }
-}
-catch (error) {
- console.error(error);
- }
-}
-// 鍋滄浠诲姟
-const handleb = async () => {
- try {
- let engineeringId = window.localStorage.getItem('engineeringId')
-console.log(engineeringId);
-if (engineeringId !== '') {
- const response = await request.post('/loadGlass/engineering/engineering/pauseTask', {
- engineeringId: engineeringId,
- state: 0,
- })
- if (response.code == 200) {
- ElMessage.success(response.message);
- blindb.value = false;
- tableData.splice([]);
- ElMessage.error(response.message);
- }
- }
- else {
- ElMessage({
- type: 'info',
- message: t('basicData.infonull'),
- })
- }
-}
-catch (error) {
- console.error(error);
- }
-}
-onMounted(fetchTableData);
-function getStatusText(state: number) {
- switch (state) {
- case 0:
- return t('basicData.waiting');
- case 1:
- return t('basicData.up');
- case 2:
- return t('basicData.up');
- case 100:
- return t('basicData.finish');
- }
-}
-function getStatusType(state: number) {
- switch (state) {
- case 0:
- return 'warning';
- case 1:
- return 'primary';
- case 2:
- return 'primary';
- case 100:
- return 'success';
- }
-}
-// 寮�濮嬩笂鐗�
-const handleBind = (row) => {
- blind.value = true;
-};
-// 鏆傚仠
-const handleBinda = (row) => {
- blinda.value = true;
-};
-// 鍒犻櫎
-const handleBindRacka = (row) => {
- workstationId.value = row.workstationId;
- adda.value = true;
-};
-const markingMachineStatus = ref('#911005');
-const cuttingMachineStatus = ref('#911005');
-// 瀹氫箟涓�涓柟娉曟潵鏀瑰彉棰滆壊鐘舵��
-const confirmMarkingMachine = () => {
- markingMachineStatus.value = 'green';
-};
-const confirmCuttingMachine = () => {
- cuttingMachineStatus.value = 'green';
-};
-const toggleEnableState = async (row: any) => {
- if (!row.id) {
- ElMessage.error(t('basicData.updatanull'));
- return;
- }
- const newState = row.state === 100 ? 0 : 100;
- try {
- const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', { id: row.id, state: newState });
- if (response.code === 200) {
- ElMessage.success(response.message);
- row.state = newState;
- } else {
- ElMessage.error(response.message);
- }
- } catch (error) {
- ElMessage.error(t('basicData.glassnull'));
- }
-};
-const confirmCutting = async () => {
- try {
- const response = await request.post('/loadGlass/LoadGlass/updateMesInkageLoad',
- inKageWord.value
- );
- if (response.code == 200) {
- const status = response.data.status;
- upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa');
- cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005';
- ElMessage.success(response.message);
- } else {
- ElMessage.error(response.message || '璇锋眰澶辫触');
- }
- } catch (error) {
- console.error('璇锋眰鏃跺彂鐢熼敊璇�', error);
- ElMessage.error('璇锋眰鏃跺彂鐢熼敊璇�');
- }
-};
-</script>
-<template>
- <div style="height: 500px;">
- <div>
- <div id="dotClass">
- <div>{{ $t('basicData.laserprinting') }}</div>
- <i :style="{ marginTop: '2px', backgroundColor: markingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
- <el-button @click="confirmMarkingMachine" style="margin-left: 30px;margin-top: -3px;">{{
- $t('basicData.yes')
- }}
- </el-button>
- <div style="margin-left: 70px;">{{ $t('basicData.cuttingmachine') }}</div>
- <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
- <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;">{{
- $t('basicData.yes')
- }}
- </el-button>
- <div style="margin-left: 70px;">{{ upstatus }}</div>
- <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
- <el-button @click="confirmCutting" style="margin-left: 30px;margin-top: -3px;">{{
- $t('basicData.change')
- }}
- </el-button>
- </div>
- <el-button :disabled="!canSelectProject" style="margin-top: 5px;margin-left: 15px;" type="primary" @click="selectproject">{{ $t('basicData.selectproject') }}</el-button>
- <el-button :disabled="!canSelectProject" :style="{ backgroundColor: canStartLoading ? 'green' : 'initial',color: canStartLoading ? 'white' : 'black', }" style="margin-top: 5px;margin-left: 20px;" @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
- <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
- <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="danger" @click="handledelete">{{ $t('searchOrder.deleteTask') }}</el-button>
- <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</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;">
- <el-table
- height="350"
- ref="table"
- :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
- :data="tableData"
- >
- <el-table-column prop="layoutSequence" :label="$t('basicData.layoutSequence')" width="100" align="center"/>
- <el-table-column prop="engineeringId" :label="$t('basicData.projectnumber')" width="200" align="center"/>
- <el-table-column prop="width" :label="$t('basicData.glasswidth')" align="center"/>
- <el-table-column prop="height" :label="$t('basicData.glassheight')" align="center"/>
- <el-table-column prop="filmsId" :label="$t('basicData.coatingtypes')" align="center"/>
- <el-table-column :label="$t('basicData.quantity')" align="center">
- <template #default="{ row }">
- <!-- 杩欓噷鎬绘槸鏄剧ず 1 -->
- <span>{{ 1 }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="thickness" :label="$t('basicData.thickness')" align="center"/>
- <el-table-column
- align="center"
- :label="$t('basicData.startstatus')"
- min-width="80"
- prop="state"
- >
- <template #default="scope">
- <el-tag
- :type="scope.row.state === 100 ? 'success' : 'warning'"
- @click="toggleEnableState(scope.row)"
- >
- {{ scope.row.state === 100 ? $t('basicData.pass') : $t('basicData.waiting') }}
- </el-tag>
- </template>
- </el-table-column>
- </el-table>
- </div>
- </el-card>
- <el-dialog v-model="blind" top="30vh" width="25%" :title="$t('basicData.startfilm')">
- <template #footer>
- <div id="dialog-footer">
- <el-button type="primary" @click="handle">
- {{ $t('basicData.confirm') }}
- </el-button>
- <el-button @click="blind = false">{{ $t('basicData.cancel') }}</el-button>
- </div>
- </template>
- </el-dialog>
-<el-dialog v-model="dialoglea" top="15vh" width="70%" :title="$t('searchOrder.dutyinformation')">
- <el-table ref="table" style="margin-top: 20px;height: 300px;"
- :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="line" fixed align="center" :label="$t('searchOrder.line')"/>
- <el-table-column prop="workProcesses" fixed align="center" :label="$t('searchOrder.process')" />
- <el-table-column prop="teamsGroupsName" align="center" :label="$t('searchOrder.team')">
- <template #default="{ row }">
- <el-input v-model="row.teamsGroupsName" autocomplete="off" min-width="150"/>
- </template>
- </el-table-column>
- <el-table-column prop="deviceName" align="center" :label="$t('searchOrder.basic')">
- <template #default="{ row }">
- <el-input v-model="row.deviceName" autocomplete="off" min-width="150"/>
- </template>
- </el-table-column>
- </el-table>
- <template #footer>
- <div id="dialog-footer">
- <el-button type="primary" @click="handleConfirm">
- {{ $t('searchOrder.add') }}
- </el-button>
- <el-button @click="dialoglea = false">{{ $t('searchOrder.cancel') }}</el-button>
- </div>
- </template>
-</el-dialog>
- <el-dialog v-model="blinda" top="30vh" width="25%" :title="$t('basicData.whetherpause')">
- <template #footer>
- <div id="dialog-footer">
- <el-button type="primary" @click="handlea">
- {{ $t('basicData.confirm') }}
- </el-button>
- <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
- </div>
- </template>
- </el-dialog>
- <el-dialog v-model="blindb" top="30vh" width="25%" :title="$t('searchOrder.pdeleteTask')">
- <template #footer>
- <div id="dialog-footer">
- <el-button type="primary" @click="deleteTask">
- {{ $t('basicData.confirm') }}
- </el-button>
- <el-button @click="blindb = false">{{ $t('basicData.cancel') }}</el-button>
- </div>
- </template>
- </el-dialog>
- <div id="parent">
- <img src="../../assets/shangpian.png" alt="" style="max-width: 40%;max-height: 40%;margin-top: 20px;margin-left: 340px;">
- <div id="overlay" v-show="flake"></div>
- <div id="overlaya" v-show="flakea"></div>
- <div id="overlayb" v-show="flakeb"></div>
- <div id="overlayc" v-show="flakec"></div>
- </div>
- <div style="margin-top: -300px;margin-left: 680px;">
- <el-table :data="tableDataa" border style="width: 85%"
- :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
- >
- <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60" />
- <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80" />
- <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80" />
- <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
- <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80" />
- <el-table-column fixed="right" :label="$t('basicData.operate')" align="center" width="150">
- <template #default="scope">
- <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">{{ $t('basicData.add') }}</el-button>
- <el-button size="mini" type="text" plain @click="handleBindRacka(scope.row)">{{ $t('basicData.delete') }}</el-button>
- </template>
- </el-table-column>
- </el-table>
- </div>
- <el-dialog v-model="add" top="23vh" width="45%" :title="$t('basicData.addglass')" >
- <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
- <el-form size="mini" label-width="150px">
- <el-form label-width="70px" 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="$t('basicData.widtha')" :required="true" style="width: 14vw">
- <el-select
- v-model="selectedValue"
- filterable
- clearable
- :placeholder="$t('basicData.selectwidth')"
- style="width: 220px"
- @input="handleInputChangea"
- >
- <el-option
- v-for="item in selectOptions"
- :key="item.id"
- :label="item.label"
- :value="item.value"
- />
- </el-select>
- </el-form-item>
- </div></div>
- </el-col>
- <el-col :span="9">
- <div id="dta" style="font-size: 15px;">
- <div>
- <el-form-item :label="$t('basicData.heighta')" :required="true" style="width: 14vw">
- <el-select
- v-model="selectedValuea"
- filterable
- clearable
- :placeholder="$t('basicData.selectheight')"
- style="width: 220px"
- @input="handleInputChangea"
- >
- <el-option
- v-for="item in selectOptionsa"
- :key="item.id"
- :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="$t('basicData.coatingtypesa')" :required="true" style="width: 14vw;">
- <el-select
- v-model="selectedValueb"
- filterable
- clearable
- :placeholder="$t('basicData.selectcoatingtypes')"
- style="width: 220px"
- @input="handleInputChangea"
- >
- <el-option
- v-for="item in selectOptionsb"
- :key="item.id"
- :label="item.label"
- :value="item.value"
- />
- </el-select>
- </el-form-item></div></div>
- </el-col>
- <el-col :span="9">
- <div id="dta" style="font-size: 15px;">
- <div>
- <el-form-item :label="$t('basicData.thicknessa')" :required="true" style="width: 14vw">
- <el-select
- v-model="selectedValuec"
- filterable
- clearable
- :placeholder="$t('basicData.selectthickness')"
- style="width: 220px"
- @input="handleInputChangea"
- >
- <el-option
- v-for="item in selectOptionsc"
- :key="item.id"
- :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="$t('basicData.quantitya')" :required="true" style="width: 14vw;">
- <el-input :placeholder="$t('basicData.selectquantity')" v-model="number" 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="handleConfirm">
- {{ $t('basicData.confirm') }}
- </el-button>
- <el-button @click="add = false">{{ $t('basicData.cancel') }}</el-button>
- </div>
- </template>
- </el-dialog>
- <el-dialog v-model="adda" top="30vh" width="25%" :title="$t('basicData.deletemessage')">
- <template #footer>
- <div id="dialog-footer">
- <el-button type="primary" @click="handleConfirma">
- {{ $t('basicData.confirm') }}
- </el-button>
- <el-button @click="adda = false">{{ $t('basicData.cancel') }}</el-button>
- </div>
- </template>
- </el-dialog>
- </div>
- <el-dialog v-model="dialogFormVisible" top="24vh" width="30%" :title="$t('basicData.project')" >
- <div style="margin-left: 50px;margin-bottom: 10px;">
- <el-form-item :label="$t('basicData.projectnumber')" :required="true">
- <el-select
- v-model="selectedProjectNo"
- filterable
- clearable
- :placeholder="$t('basicData.plselectproject')"
- style="width: 220px"
- @input="handleInputChange"
- >
- <el-option
- v-for="item in titleSelectJson['processType']"
- :key="item.id"
- :label="item.projectNo"
- :value="item.projectNo"
- />
- </el-select>
- </el-form-item>
- </div>
- <template #footer>
- <div id="dialog-footer">
- <el-button type="primary" @click="handleup">
- {{ $t('basicData.confirm') }}
- </el-button>
- <el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button>
- </div>
- </template>
- </el-dialog>
- </div>
-</template>
-<style scoped>
-#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
-#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
-#dialog-footer{
- text-align: center;
- margin-top: -15px;
-}
-#dotClass {
- display: flex;
- margin-left: 20px;
- size: 50px;
- margin-top: 20px;
- margin-bottom: 10px;
-}
-#parent{
- position: relative;
- width: 1500px;
- margin-left: -300px
-}
-#overlayb{
- position: absolute;
- z-index: 1;
- width: 228px;
- height: 16px;
- background-color: #529b2e;
- margin-top: -303px;
- margin-left: 355px;
-}
-#overlayc{
- position: absolute;
- z-index: 1;
- width: 228px;
- height: 16px;
- background-color: #529b2e;
- margin-top: -303px;
- margin-left:703px;
-}
-#overlay{
- position: absolute;
- z-index: 1;
- width: 228px;
- height: 16px;
- background-color: #529b2e;
- margin-top: -45px;
- margin-left: 355px;
-}
-#overlaya{
- position: absolute;
- z-index: 1;
- width: 228px;
- height: 16px;
- background-color: #529b2e;
- margin-top: -45px;
- margin-left: 703px;
-}
-</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 290f1e9..e0b840e 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -19,6 +19,11 @@
const dialogFormVisiblec = ref(false)
const dialogFormVisibled = ref(false)
const dialogFormVisibles = ref(false)
+const inkageEntity = ref('#911005');
+const requestEntity = ref('#911005');
+const mesReplyEntity = ref('#911005');
+const outInkageEntity = ref('#911005');
+const outRequestEntity = ref('#911005');
const tableDataa = ref([])
const tableDatagh = ref([])
const tableDatab = ref([])
@@ -69,6 +74,7 @@
const cell7=ref(true);
const cell8=ref(true);
const cell9=ref(true);
+const canEdit = ref(true);
const selectedRow = ref(null);
const temperingtotal = ref(0);
const glasstotal = ref(0);
@@ -186,16 +192,21 @@
row.enableState = newState;
};
// 鏄惁鐮存崯
-const toggleEnableisDamage = async (row) => {
+const broken = async (row) => {
+ try {
const newState = row.isDamage === 1 ? 0 : 1;
- const response = await request.post('/cacheGlass/edgStorageCage/updateEdgStorageCage', { id: row.id, enableState: newState });
- if (response.code === 200) {
+ const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/bigStorageGlassDamageByGlassId', { glassId: row.glassId });
+ if (response.code == 200) {
ElMessage.success(response.message);
- } else {
+ } else {
ElMessage.error(response.message);
- }
+ }
row.isDamage = newState;
-};
+}
+catch (error) {
+ console.error(error);
+ }
+}
// 鍒犻櫎
const opena = async(row) => {
try {
@@ -745,7 +756,22 @@
let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/slicecage`;
const handleMessage = (data) => {
- if (data.scanGlass != null) {
+ if (data.inkageEntity != null) {
+ inkageEntity.value = data.inkageEntity == 1 ? '#911005' : 'green';
+ }
+ if (data.requestEntity != null) {
+ requestEntity.value = data.requestEntity == 1 ? '#911005' : 'green';
+ }
+ if (data.mesReplyEntity != null) {
+ mesReplyEntity.value = data.mesReplyEntity == 1 ? '#911005' : 'green';
+ }
+ if (data.outInkageEntity != null) {
+ outInkageEntity.value = data.outInkageEntity == 1 ? '#911005' : 'green';
+ }
+ if (data.outRequestEntity != null) {
+ outRequestEntity.value = data.outRequestEntity == 1 ? '#911005' : 'green';
+ }
+ if (data.scanGlass != null) {
scanGlass.value = data.scanGlass[0];
let width = scanGlass.value.width;
let height = scanGlass.value.height;
@@ -898,6 +924,18 @@
<el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="primary"
@click="dialogFormVisibleaDownGlasss = true">{{ $t('searchOrder.Labelprinting') }}
</el-button>
+ <div id="dotClass">
+ <div>{{ $t('searchOrder.inkageEntity') }}</div>
+ <i :style="{ marginTop: '2px', backgroundColor: inkageEntity, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+ <div style="margin-left: 70px;">{{ $t('searchOrder.requestEntity') }}</div>
+ <i :style="{ marginTop: '2px', backgroundColor: requestEntity, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+ <div style="margin-left: 70px;">{{ $t('searchOrder.mesReplyEntity') }}</div>
+ <i :style="{ marginTop: '2px', backgroundColor: mesReplyEntity, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+ <div style="margin-left: 70px;">{{ $t('searchOrder.outInkageEntity') }}</div>
+ <i :style="{ marginTop: '2px', backgroundColor: outInkageEntity, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+ <div style="margin-left: 70px;">{{ $t('searchOrder.outRequestEntity') }}</div>
+ <i :style="{ marginTop: '2px', backgroundColor: outRequestEntity, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+ </div>
<div class="table-container">
<el-card style="flex: 1;margin-left: 10px;margin-top: 10px;" v-loading="loading">
<div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 300px;">
@@ -1504,16 +1542,24 @@
min-width="80"
prop="isDamage"
>
- <template #default="scope">
- <el-tag
- :type="scope.row.isDamage === 1 ? 'danger' : 'success'"
- @click="toggleEnableisDamage(scope.row)"
- >
- {{ scope.row.isDamage === 1 ? $t('searchOrder.breakage') : $t('searchOrder.breakagn') }}
- </el-tag>
- </template>
+ <template #default="scope">
+ <div
+ @click="scope.row.isDamage === 1 ? null : broken(scope.row)"
+ style="position: relative; display: inline-block;"
+ >
+ <el-tag
+ :type="scope.row.isDamage === 1 ? 'danger' : 'success'"
+ style="pointer-events: {{ scope.row.isDamage === 1 ? 'none' : 'auto' }};"
+ >
+ {{ scope.row.isDamage === 1 ? $t('searchOrder.breakage') : $t('searchOrder.breakagn') }}
+ </el-tag>
+ <div
+ v-if="scope.row.isDamage === 1"
+ style="position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: transparent; z-index: 1;"
+ ></div>
+ </div>
+ </template>
</el-table-column>
- <!-- <el-table-column prop="isDamage" align="center" :label="$t('searchOrder.state')" min-width="80" /> -->
<el-table-column prop="layer" align="center" :label="$t('processCard.layer')" min-width="80" />
<el-table-column prop="xcoordinate" align="center" :label="$t('searchOrder.xcoordinates')" min-width="80" />
<el-table-column prop="ycoordinate" align="center" :label="$t('searchOrder.ycoordinates')" min-width="80" />
@@ -1742,4 +1788,11 @@
flex: 1; /* 浣夸袱涓崱鐗囧钩鍒嗗彲鐢ㄧ┖闂� */
margin-bottom: 10px; /* 鍙�夛紝鏍规嵁闇�瑕佹坊鍔犲簳閮ㄩ棿璺� */
}
+#dotClass {
+ display: flex;
+ margin-left: 20px;
+ size: 50px;
+ margin-top: 20px;
+ margin-bottom: 10px;
+}
</style>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/HollowBigStorageCageBaseInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/HollowBigStorageCageBaseInfo.java
index 261ec06..57fc8dd 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/HollowBigStorageCageBaseInfo.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/HollowBigStorageCageBaseInfo.java
@@ -45,6 +45,12 @@
private double height;
/**
+ * 鍘氬害
+ */
+ @ApiModelProperty(value = "鍘氬害")
+ private Double thickness;
+
+ /**
* 鏍煎瓙鍙�
*/
@ApiModelProperty(value = "鐜荤拑id")
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
index c33869e..ea0cda4 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
@@ -84,6 +84,7 @@
public static final Integer GLASS_CACHE_TYPE_FINISH = 5;
public static final Integer GLASS_CACHE_TYPE_OTHER = 6;
public static final List<Integer> GLASS_CACHE_TYPE_OUT_ALL = Arrays.asList(2, 3);
+ public static final List<Integer> GLASS_CACHE_TYPE_IN_ALL = Arrays.asList(1, 3);
/**
* 纾ㄨ竟浠诲姟鐜荤拑鐘舵��
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
index 4e5ec39..dfd5bc6 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
@@ -27,6 +27,14 @@
Boolean submitReport(Damage damage);
/**
+ * 鎸夌収鐜荤拑id淇℃伅鑷姩鎶ュ伐
+ * @param glassId
+ * @param deviceId
+ * @param workingProcedure
+ * @param remark
+ */
+ void autoSubmitReport(String glassId, int deviceId,String workingProcedure,String remark);
+ /**
* 鍗曚釜鐮存崯
*
* @param damage
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
index 314be15..b9f5401 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
@@ -101,6 +101,15 @@
* 鍘熺墖椤哄簭
*/
private Integer patternSequence;
+ /**
+ * x鍧愭爣
+ */
+ private Integer xAxis;
+
+ /**
+ * y鍧愭爣
+ */
+ private Integer yAxis;
/**
* 閽㈠寲鐗堝浘id
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java
index db245d8..ce530ac 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java
@@ -72,9 +72,17 @@
*/
private double pHeight;
/**
- * 鐗堝浘id
+ * 鍘熺墖鐗堝浘id
*/
private Integer stockId;
+ /**
+ * 鍘熺墖鐗堝浘鐗堝簭
+ */
+ private Integer xAxis;
+ /**
+ * 鍘熺墖鐗堝浘鐗堝簭
+ */
+ private Integer yAxis;
/**
* 閽㈠寲鐗堝浘缂栧彿(鏋跺彿)
*/
@@ -86,11 +94,11 @@
/**
* x鍧愭爣
*/
- private Integer xAxis;
+ private Integer xAxisHeat;
/**
* y鍧愭爣
*/
- private Integer yAxis;
+ private Integer yAxisHeat;
/**
* 宸ョ▼鍙�
*/
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
index 0252637..ae5354a 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
@@ -39,7 +39,9 @@
List<OptimizeGlassinfo> optimizeGlassinfos = null;
if (engineeringId != null) {
optimizeGlassinfos = optimizeProjectMapper.selectJoinList(OptimizeGlassinfo.class, new MPJQueryWrapper<OptimizeProject>()
- .select("b.process_id,t.glass_type,b.o_width,b.o_height,t.glass_thickness,b.order_sort,b.p_width,b.p_height,b.layer, b.total_layer, b.stock_id,b.heat_layout_id,b.heat_layout_sort,c.x_axis,c.y_axis,b.project_no,b.glass_id,c.rotate_angle,d.merge as combine ,b.mark_icon")
+ .select("b.process_id,t.glass_type,b.o_width,b.o_height,t.glass_thickness,b.order_sort,b.p_width,b.p_height,b.layer," +
+ "d.layers_number AS total_layer, b.stock_id,b.heat_layout_id,b.heat_layout_sort, b.x_axis,b.y_axis," +
+ "c.x_axis as x_axis_heat,c.y_axis as y_axis_heat,b.project_no,b.glass_id,c.rotate_angle,d.merge as combine ,b.mark_icon")
.leftJoin("optimize_detail b on t.project_no=b.project_no")
.leftJoin("optimize_heat_detail c on c.project_no=t.project_no and b.heat_layout_id=c.layout_id and b.heat_layout_sort=c.sort")
.leftJoin("flow_card d on d.process_id=b.process_id and d.technology_number=b.layer and d.order_number=b.order_sort ")
@@ -57,19 +59,26 @@
glassInfo.setEngineerId(map.getProjectNo());
glassInfo.setFlowCardId(map.getProcessId());
glassInfo.setFilmsid(map.getGlassType());
- glassInfo.setGlassType(map.getOrderSort());//璁㈠崟搴忓彿
- glassInfo.setWidth(map.getOWidth());//璁㈠崟瀹�
- glassInfo.setHeight(map.getOHeight());//璁㈠崟楂�
+ //璁㈠崟搴忓彿
+ glassInfo.setGlassType(map.getOrderSort());
+ //璁㈠崟瀹�
+ glassInfo.setWidth(map.getOWidth());
+ //璁㈠崟楂�
+ glassInfo.setHeight(map.getOHeight());
glassInfo.setEdgWidth(map.getPWidth());
- glassInfo.setLayer(map.getLayer());
- glassInfo.setTotalLayer(map.getTotalLayer());
glassInfo.setEdgHeight(map.getPHeight());
glassInfo.setThickness(map.getGlassThickness());
- glassInfo.setPatternSequence(map.getStockId());//
- glassInfo.setTemperingLayoutId(map.getHeatLayoutId());//閽㈠寲鐗堝浘id
- glassInfo.setTemperingFeedSequence(map.getHeatLayoutSort());//閽㈠寲鐗堝浘椤哄簭
- glassInfo.setXCoordinate(map.getXAxis());
- glassInfo.setYCoordinate(map.getYAxis());
+ glassInfo.setLayer(map.getLayer());
+ glassInfo.setTotalLayer(map.getTotalLayer());
+ glassInfo.setPatternSequence(map.getStockId());
+ glassInfo.setXAxis(map.getXAxis());
+ glassInfo.setYAxis(map.getYAxis());
+ //閽㈠寲鐗堝浘id
+ glassInfo.setTemperingLayoutId(map.getHeatLayoutId());
+ //閽㈠寲鐗堝浘椤哄簭
+ glassInfo.setTemperingFeedSequence(map.getHeatLayoutSort());
+ glassInfo.setXCoordinate(map.getXAxisHeat());
+ glassInfo.setYCoordinate(map.getYAxisHeat());
glassInfo.setAngle(map.getRotateAngle());
glassInfo.setGlassId(map.getGlassId());
glassInfo.setCombine(map.getCombine());
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
index ae7acb3..b86fa90 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
@@ -34,17 +34,8 @@
@Autowired
private EdgStorageCageDetailsService edgStorageCageDetailsService;
-// @ApiOperation("鏌ヨ纾ㄨ竟缂撳瓨鐞嗙墖绗煎唴璇︽儏 鍙傛暟()")
-// @PostMapping("/selectEdgStorageCage")
-// @ResponseBody
-// public Result selectEdgStorageCage() {
-// List<Map<String, Object>> list = edgStorageCageService.selectEdgStorageCages();
-// return Result.build(200, "鎴愬姛", list);
-// }
-
@ApiOperation("淇敼纾ㄨ竟缂撳瓨鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸杩涜銆愬惎鐢�/绂佺敤銆�")
@PostMapping("/updateEdgStorageCage")
- @ResponseBody
public Result updateEdgStorageCage(@RequestBody EdgStorageCage edgStorageCage) {
String isSucess = edgStorageCageService.updateEdgStorageCage(edgStorageCage) ? "鎴愬姛" : "澶辫触";
return Result.build(200, "銆愬惎鐢�/绂佺敤銆�" + isSucess, 1);
@@ -52,7 +43,6 @@
@ApiOperation("纾ㄨ竟缂撳瓨鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愭竻闄�/鏇存崲/缁戝畾銆� EdgStorageCage鏍煎瓙淇℃伅,EdgStorageCageDetails 鐜荤拑淇℃伅 ")
@PostMapping("/edgStorageCageGlass")
- @ResponseBody
public Result edgStorageCageGlass(@RequestBody EdgStorageCageDetails edgStorageCageDetails, int edgStorageCageId) {
String isSucess = edgStorageCageService.updateEdgStorageCageDetails(edgStorageCageId, edgStorageCageDetails) ? "鎴愬姛" : "澶辫触";
@@ -61,7 +51,6 @@
@ApiOperation("纾ㄨ竟妯″潡姹囨姤鐜荤拑鐘舵�� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愮牬鎹�/鎷胯蛋銆� ")
@PostMapping("/edgReportStatus")
- @ResponseBody
public Result edgReportStatus(@RequestBody @Validated IdentWornRequest request) {
return Result.build(200, "銆愮牬鎹�/鎷胯蛋銆�" + edgStorageCageDetailsService.edgReportStatus(request), 1);
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/CutDrawingVO.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/CutDrawingVO.java
new file mode 100644
index 0000000..76770f5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/CutDrawingVO.java
@@ -0,0 +1,19 @@
+package com.mes.edgstoragecage.entity.vo;
+
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.glassinfo.entity.GlassInfo;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/18 20:00
+ * @Description:
+ */
+@Data
+public class CutDrawingVO extends GlassInfo {
+
+ private int state;
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java
index 8dd8e31..80d8574 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java
@@ -2,6 +2,11 @@
import com.github.yulichang.base.MPJBaseMapper;
import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.entity.vo.CutDrawingVO;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.security.core.parameters.P;
+
+import java.util.List;
/**
* <p>
@@ -14,4 +19,6 @@
public interface EdgStorageCageDetailsMapper extends MPJBaseMapper<EdgStorageCageDetails> {
EdgStorageCageDetails queryEdgStorageDetailsBySize(int deviceId, int currentSlot, double width, double height);
+
+ List<CutDrawingVO> queryCutDrawingByEngineerId(@Param("engineerId") String engineerId, @Param("patternSequence") int patternSequence, @Param("isAll") int isAll);
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
index 43d2024..2dfceff 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
@@ -3,6 +3,7 @@
import com.github.yulichang.base.MPJBaseService;
import com.mes.edgglasstask.entity.request.IdentWornRequest;
import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.entity.vo.CutDrawingVO;
import java.util.List;
import java.util.Map;
@@ -20,19 +21,14 @@
// boolean identWorn(Map<String, Object> arguments);
/**
- * 鑾峰彇 鍒囧壊褰撳墠鐗堝浘
- *
+ * 鎸夌収璁惧鍙婄嚎璺紝鑾峰彇褰撳墠绾胯矾姝e湪鍒囧壊鐨勭増鍥句俊鎭�
+ * @param deviceId
+ * @param stationCell
* @return
*/
- List<Map<String, Object>> selectCutTerritory();
+ List<CutDrawingVO> queryCurrentCutDrawing(int deviceId, int stationCell);
- /**
- * 鑾峰彇 宸ョ▼涓嬬殑褰撳墠鐗堝浘
- *
- * @param current
- * @return
- */
- List<List<Map<String, Object>>> selectCurrentCutTerritory(String current);
+ Map<String, Object> queryCutDrawingByEngineerId(String engineerId, int patternSequence);
/**
* 鑾峰彇 宸ョ▼涓嬬殑閽㈠寲鐗堝浘
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
index e01c67f..87ce02b 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
@@ -1,5 +1,6 @@
package com.mes.edgstoragecage.service.impl;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -16,20 +17,20 @@
import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
import com.mes.edgstoragecage.entity.EdgStorageCage;
import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.entity.vo.CutDrawingVO;
import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
import com.mes.edgstoragecage.mapper.EdgStorageCageMapper;
import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
import com.mes.engineering.entity.Engineering;
import com.mes.engineering.mapper.EngineeringMapper;
import com.mes.glassinfo.entity.GlassInfo;
-import com.mes.glassinfo.mapper.GlassInfoMapper;
-import com.mes.pp.entity.*;
-import com.mes.pp.mapper.OptimizeDetailMapper;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.pp.entity.OptimizeHeatDetail;
+import com.mes.pp.entity.OptimizeHeatLayout;
+import com.mes.pp.entity.OptimizeProject;
import com.mes.pp.mapper.OptimizeHeatDetailMapper;
import com.mes.taskcache.entity.TaskCache;
import com.mes.taskcache.service.TaskCacheService;
-import com.mes.uppattenusage.entity.UpPattenUsage;
-import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
@@ -56,13 +57,7 @@
public class EdgStorageCageDetailsServiceImpl extends MPJBaseServiceImpl<EdgStorageCageDetailsMapper, EdgStorageCageDetails> implements EdgStorageCageDetailsService {
@Resource
- UpPattenUsageMapper upPattenUsageMapper;
-
- @Resource
EngineeringMapper engineeringMapper;
-
- @Resource
- OptimizeDetailMapper optimizeDetailMapper;
@Resource
OptimizeHeatDetailMapper optimizeHeatDetailMapper;
@@ -71,7 +66,7 @@
EdgStorageCageMapper edgStorageCageMapper;
@Resource
- GlassInfoMapper glassInfoMapper;
+ GlassInfoService glassInfoService;
@Autowired
TaskCacheService taskCacheService;
@@ -84,226 +79,51 @@
@Autowired
EdgGlassTaskInfoService edgGlassTaskInfoService;
-//
-// @Override
-// public boolean identWorn(Map<String, Object> arguments) {
-// String glassId=arguments.get("glassId").toString();
-// int state=arguments.get("state").toString().isEmpty()?0:Integer.parseInt(arguments.get("state").toString());
-// int line=arguments.get("line").toString().isEmpty()?0:Integer.parseInt(arguments.get("line").toString());
-// String workingProcedure=arguments.get("workingProcedure").toString();
-// if(state==0||line==0||workingProcedure==null||glassId==null||glassId.isEmpty()){
-// log.info("鍓嶇浼犻�掓暟鎹笉鍏�:{}",arguments);
-// return false;
-// }
-// List<GlassInfo> GlassInfos = glassInfoMapper.selectList(new MPJLambdaQueryWrapper<GlassInfo>()
-// .selectAll(GlassInfo.class)
-// .eq(GlassInfo::getGlassId, glassId));
-// if (GlassInfos.size() == 1) {
-// Damage damage =new Damage();
-// damage.setGlassId(glassId);
-// damage.setLine(line);
-// damage.setWorkingProcedure(workingProcedure);
-// damage.setRemark("");
-// damage.setStatus(state);//8鐮存崯锛�9鎷胯蛋
-// damageService.insertDamage(damage);
-// }else{
-// return false;
-// }
-// List<EdgStorageCageDetails> edgStorageCageDetails = baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
-// .selectAll(EdgStorageCageDetails.class)
-// .eq(EdgStorageCageDetails::getGlassId, glassId));
-// if (edgStorageCageDetails.size() == 1) {
-// EdgStorageCageDetails item = edgStorageCageDetails.get(0);
-// item.setState(state);
-// baseMapper.update(item, new MPJLambdaWrapper<EdgStorageCageDetails>().selectAll(EdgStorageCageDetails.class).eq(EdgStorageCageDetails::getGlassId, glassId));
-// }
-// return true;
-// }
- /**
- * 鑾峰彇 鍒囧壊褰撳墠鐗堝浘
- *
- * @return
- */
@Override
- public List<Map<String, Object>> selectCutTerritory() {
- //鏌ヨEdgStorageCageDetails鏈�鍚庝竴寮犵幓鐠冩墍灞炵増鍥�
- List<UpPattenUsage> upPattenUsage = upPattenUsageMapper.selectJoinList(UpPattenUsage.class, new MPJLambdaWrapper<UpPattenUsage>()
- .selectAll(UpPattenUsage.class)
- .distinct()
- .innerJoin(Engineering.class, on -> on
- .eq(Engineering::getEngineerId, UpPattenUsage::getEngineeringId))
- .innerJoin(GlassInfo.class, on -> on
- .eq(GlassInfo::getEngineerId, UpPattenUsage::getEngineeringId)
- .eq(GlassInfo::getPatternSequence, UpPattenUsage::getLayoutSequence))
- .leftJoin(EdgStorageCageDetails.class, on -> on
- .eq(EdgStorageCageDetails::getEngineerId, UpPattenUsage::getEngineeringId)
- .eq(EdgStorageCageDetails::getGlassId, GlassInfo::getGlassId))
- .leftJoin(Damage.class, on -> on
- .eq(Damage::getEngineerId, UpPattenUsage::getEngineeringId)
- .eq(Damage::getGlassId, GlassInfo::getGlassId))
- .eq(Engineering::getState, 1)
- .and(wrapper -> wrapper.isNotNull(EdgStorageCageDetails::getId).or().isNotNull(Damage::getId))
- .orderByDesc(UpPattenUsage::getLayoutSequence)
- .orderByDesc(GlassInfo::getId)
- );
- if (!upPattenUsage.isEmpty()) {
- //褰撳墠鐗�
- UpPattenUsage upPattenUsage1 = upPattenUsage.get(0);
- //鏌ョ湅褰撳墠鐗堟槸鍚﹀瓨鍦ㄦ湭杩涚瀛愭垨鐮存崯鐨勭幓鐠�
- List<UpPattenUsage> upPattenUsage2 = upPattenUsageMapper.selectJoinList(UpPattenUsage.class, new MPJLambdaWrapper<UpPattenUsage>()
- .selectAll(UpPattenUsage.class)
- .distinct()
- .innerJoin(GlassInfo.class, on -> on
- .eq(GlassInfo::getEngineerId, UpPattenUsage::getEngineeringId)
- .eq(GlassInfo::getPatternSequence, UpPattenUsage::getLayoutSequence))
- .leftJoin(EdgStorageCageDetails.class, on -> on
- .eq(EdgStorageCageDetails::getEngineerId, UpPattenUsage::getEngineeringId)
- .eq(EdgStorageCageDetails::getGlassId, GlassInfo::getGlassId))
- .leftJoin(Damage.class, on -> on
- .eq(Damage::getEngineerId, UpPattenUsage::getEngineeringId)
- .eq(Damage::getGlassId, GlassInfo::getGlassId))
- .eq(UpPattenUsage::getEngineeringId, upPattenUsage.get(0).getEngineeringId())
- .eq(UpPattenUsage::getLayoutSequence, upPattenUsage.get(0).getLayoutSequence())
- .and(wrapper -> wrapper.isNull(EdgStorageCageDetails::getId).or().isNull(Damage::getId))
- .orderByDesc(UpPattenUsage::getLayoutSequence)
- .orderByDesc(GlassInfo::getId)
- );
- //鏄剧ず涓嬩竴鐗� 鍚﹀垯鏄剧ず褰撳墠鐗堝浘
- if (upPattenUsage2.isEmpty()) {
- //鍓╀綑鐗堝浘
- List<UpPattenUsage> upPattenUsage3 = upPattenUsageMapper.selectJoinList(UpPattenUsage.class, new MPJLambdaWrapper<UpPattenUsage>()
- .selectAll(UpPattenUsage.class)
- .distinct()
- .innerJoin(Engineering.class, on -> on
- .eq(Engineering::getEngineerId, UpPattenUsage::getEngineeringId))
- .eq(Engineering::getState, 1)
- .gt(UpPattenUsage::getLayoutSequence, upPattenUsage1.getLayoutSequence())
- .orderByAsc(UpPattenUsage::getLayoutSequence)
- );
- if (!upPattenUsage3.isEmpty()) {
- //鍒囨崲鎴愪笅涓�鐗堝浘
- upPattenUsage1 = upPattenUsage3.get(0);
- }
- }
-
- List<Map<String, Object>> cutTerritorys = optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
- .selectAll(OptimizeDetail.class)
- .selectAs(OptimizeLayout::getWidth, "olWidth")
- .selectAs(OptimizeLayout::getHeight, "olHeight")
- .leftJoin(OptimizeLayout.class, on -> on
- .eq(OptimizeLayout::getProjectNo, OptimizeDetail::getProjectNo)
- .eq(OptimizeLayout::getStockId, OptimizeDetail::getStockId))
- .eq(OptimizeDetail::getProjectNo, upPattenUsage1.getEngineeringId())
- .eq(OptimizeDetail::getStockId, upPattenUsage1.getLayoutSequence())
- );
- Map<String, EdgStorageCageDetails> edgMaps = baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
- .selectAll(EdgStorageCageDetails.class)
- .eq(EdgStorageCageDetails::getEngineerId, upPattenUsage1.getEngineeringId())
- ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId, EdgStorageCageDetails -> EdgStorageCageDetails));
-
- Map<String, Damage> damageMaps = damageMapper.selectList(new MPJLambdaQueryWrapper<Damage>()
- .selectAll(Damage.class)
- .eq(Damage::getEngineerId, upPattenUsage1.getEngineeringId())
- .and(wrapper -> wrapper.eq(Damage::getType, 8)
- .or()
- .eq(Damage::getType, 9))
- ).stream().collect(Collectors.toMap(Damage::getGlassId, Damage -> Damage, (V1, V2) -> V2));
-
- List<Map<String, Object>> resultCutTerritory = new ArrayList<>();
- for (Map<String, Object> cutTerritory : cutTerritorys) {
-// log.info("鍐呭锛歿}-------{}",cutTerritory,edgStorageCageDetails);
- if (cutTerritory.get("glass_id") == null || "".equals(cutTerritory.get("glass_id"))) {
- log.info("浼樺寲鏁版嵁涓璯lassId瀛樺湪绌哄��-----鍐呭锛歿}", cutTerritorys);
- return new ArrayList<>();
- } else if (damageMaps.get(cutTerritory.get("glass_id")) != null) {
- //log.info("鐜荤拑宸茬牬鎹�/鎷胯蛋-----鍐呭锛歿}",damageMaps.get(item.get("glass_id")));
- cutTerritory.put("glass_state", damageMaps.get(cutTerritory.get("glass_id")).getType());
- } else if (edgMaps.get(cutTerritory.get("glass_id")) != null) {
- cutTerritory.put("glass_state", edgMaps.get(cutTerritory.get("glass_id")).getState());
- } else {
- cutTerritory.put("glass_state", 0);
- }
- resultCutTerritory.add(cutTerritory);
- }
- return resultCutTerritory;
+ public List<CutDrawingVO> queryCurrentCutDrawing(int deviceId, int stationCell) {
+// 鑾峰彇鏈潯绾垮綋鍓嶆鍦ㄦ墽琛岀殑宸ョ▼
+ Engineering engineering = engineeringMapper.selectOne(new LambdaQueryWrapper<Engineering>()
+ .eq(Engineering::getState, 1).eq(Engineering::getStationCell, stationCell));
+ if (null == engineering) {
+ log.info("褰撳墠绾胯矾娌℃湁闇�瑕佹墽琛岀殑宸ョ▼");
+ return null;
}
- return null;
- }
-
- /**
- * 鑾峰彇 宸ョ▼涓嬬殑褰撳墠鐗堝浘
- *
- * @param current
- * @return
- */
- @Override
- public List<List<Map<String, Object>>> selectCurrentCutTerritory(String current) {
-
- List<Engineering> engineering = engineeringMapper.selectJoinList(Engineering.class, new MPJLambdaWrapper<Engineering>()
- .selectAll(Engineering.class)
- .eq(Engineering::getEngineerId, current)
- );
- if (engineering.size() == 0) {
- log.info("褰撳墠宸ョ▼鍙锋湭棰嗗彇杩�:{}", current);
- return new ArrayList<>();
- }
- //缁撴灉
- List<Map<String, Object>> resultCutTerritory = new ArrayList<>();
- //姝ゅ伐绋嬬殑鎵�鏈変紭鍖栨暟鎹�
- List<Map<String, Object>> cutTerritory = optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
- .selectAll(OptimizeDetail.class)
- .selectAs(OptimizeLayout::getWidth, "olWidth")
- .selectAs(OptimizeLayout::getHeight, "olHeight")
- .leftJoin(OptimizeLayout.class, on -> on
- .eq(OptimizeLayout::getProjectNo, OptimizeDetail::getProjectNo)
- .eq(OptimizeLayout::getStockId, OptimizeDetail::getStockId))
- .eq(OptimizeDetail::getProjectNo, current)
- );
-
- Map<String, EdgStorageCageDetails> edgMaps = baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
- .selectAll(EdgStorageCageDetails.class)
- .eq(EdgStorageCageDetails::getEngineerId, current)
- ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId, EdgStorageCageDetails -> EdgStorageCageDetails, (V1, V2) -> V2));
-
- Map<String, Damage> damageMaps = damageMapper.selectList(new MPJLambdaQueryWrapper<Damage>()
- .selectAll(Damage.class)
- .eq(Damage::getEngineerId, current)
- .and(wrapper -> wrapper.eq(Damage::getType, 8)
- .or()
- .eq(Damage::getType, 9))
- ).stream().collect(Collectors.toMap(Damage::getGlassId, Damage -> Damage, (V1, V2) -> V2));
-
- for (Map<String, Object> item : cutTerritory) {
-// log.info("鍐呭锛歿}-------{}",cutTerritory,edgStorageCageDetails);
- if (item.get("glass_id") == null || "".equals(item.get("glass_id"))) {
- log.info("浼樺寲鏁版嵁涓璯lassId瀛樺湪绌哄��-----鍐呭锛歿}", cutTerritory);
- return new ArrayList<>();
- }
- if (damageMaps.get(item.get("glass_id")) != null) {
- //log.info("鐜荤拑宸茬牬鎹�/鎷胯蛋-----鍐呭锛歿}",damageMaps.get(item.get("glass_id")));
- item.put("glass_state", damageMaps.get(item.get("glass_id")).getType());
- } else if (edgMaps.get(item.get("glass_id")) != null) {
- item.put("glass_state", edgMaps.get(item.get("glass_id")).getState());
+ List<EdgStorageCageDetails> edgStorageCageDetailsList = this.list(new LambdaQueryWrapper<EdgStorageCageDetails>()
+ .eq(EdgStorageCageDetails::getDeviceId, deviceId)
+ .eq(EdgStorageCageDetails::getEngineerId, engineering.getEngineerId())
+ .orderByDesc(EdgStorageCageDetails::getId));
+ //鎸夌収褰撳墠宸ョ▼鍘荤悊鐗囩鎼滄渶鍚庝竴鍧楃幓鐠� 鑾峰彇宸ョ▼鍙� 鐗堝浘鍙� 娌℃湁鐩存帴鏄剧ず绗竴寮犵増鍥�
+ int patternSequence = 0;
+ if (CollectionUtil.isEmpty(edgStorageCageDetailsList)) {
+ patternSequence = 1;
+ } else {
+ EdgStorageCageDetails lastGlass = edgStorageCageDetailsList.get(0);
+ log.info("鑾峰彇鏈�鍚庝竴鍧楄繘绗肩殑鐜荤拑涓猴細{}", lastGlass);
+ List<CutDrawingVO> drawingVOList = baseMapper.queryCutDrawingByEngineerId(lastGlass.getEngineerId(), lastGlass.getPatternSequence(), 1);
+ if (CollectionUtil.isEmpty(drawingVOList)) {
+ //鏃犲墿浣� 鏄剧ず褰撳墠鐗堝浘鍔�1鐨勫叏閲忕増鍥�
+ patternSequence = lastGlass.getPatternSequence() + 1;
} else {
- item.put("glass_state", 0);
+ //褰撳墠鐗堝浘鏄惁鏈夊墿浣欙紝鏈夊墿浣欐樉绀哄綋鍓嶇増鍥�
+ patternSequence = lastGlass.getPatternSequence();
}
- resultCutTerritory.add(item);
}
- Map<String, List<Map<String, Object>>> groupBy = resultCutTerritory.stream().collect(Collectors.groupingBy(item -> item.get("stock_id").toString()));
-// List<List<Map<String, Object>>> Result=groupBy.values().stream().collect(Collectors.toList());
- int count = 1;
- List<List<Map<String, Object>>> result = new ArrayList<>();
- for (String item : groupBy.keySet()) {
- String key = count + "";
- if (key != null) {
- result.add(groupBy.get(key));
- }
- count++;
- }
- return result;
+ return baseMapper.queryCutDrawingByEngineerId(engineering.getEngineerId(), patternSequence, 0);
}
+ @Override
+ public Map<String, Object> queryCutDrawingByEngineerId(String engineerId, int patternSequence) {
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("currentCutDrawing", baseMapper.queryCutDrawingByEngineerId(engineerId, patternSequence, 0));
+ List<GlassInfo> glassInfoList = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getEngineerId, engineerId));
+ long totalPatternSequence = glassInfoList.stream().map(GlassInfo::getPatternSequence).distinct().count();
+ map.put("totalPatternSequence", totalPatternSequence);
+ return map;
+
+ }
+
+
/**
* 鑾峰彇 宸ョ▼涓嬬殑閽㈠寲鐗堝浘
*
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
index 5a08b5f..51d94ae 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
@@ -9,6 +9,7 @@
import com.kangaroohy.milo.model.ReadWriteEntity;
import com.kangaroohy.milo.service.MiloService;
import com.mes.common.config.Const;
+import com.mes.damage.service.DamageService;
import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
import com.mes.edgstoragecage.entity.EdgStorageCage;
@@ -72,6 +73,8 @@
EdgStorageCageService edgStorageCageService;
@Resource
EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService;
+ @Resource
+ DamageService damageService;
@Value("${mes.glassGap}")
private int glassGap;
@@ -122,17 +125,17 @@
private void startOneOpcTaskChild(String tableName, int device) {
EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(tableName);
// try {
- if (task == null) {
- log.info("浠诲姟琛ㄥ熀纭�鏁版嵁褰曞叆澶辫触锛岃妫�鏌ユ暟鎹槸鍚﹀綍鍏ユ垚鍔�");
- return;
- }
- if (task.getTaskState() == 2) {
- //闃叉鍑虹墖浠诲姟涓旂鍓嶆湁鐜荤拑鐨勬儏鍐碉紝灏嗚繘鐗噄d缃┖锛屽嵆鍑虹墖浠呰�冭檻绗煎唴鐨勭幓鐠�
- task.setGlassIdIn("");
- }
+ if (task == null) {
+ log.info("浠诲姟琛ㄥ熀纭�鏁版嵁褰曞叆澶辫触锛岃妫�鏌ユ暟鎹槸鍚﹀綍鍏ユ垚鍔�");
+ return;
+ }
+ if (task.getTaskState() == 2) {
+ //闃叉鍑虹墖浠诲姟涓旂鍓嶆湁鐜荤拑鐨勬儏鍐碉紝灏嗚繘鐗噄d缃┖锛屽嵆鍑虹墖浠呰�冭檻绗煎唴鐨勭幓鐠�
+ task.setGlassIdIn("");
+ }
int request = task.getTaskState();
int taskRunning = task.getTaskRunning();
- log.info("寮�濮嬫墽琛屼换鍔★紝浠诲姟璇蜂俊鎭负{}", task);
+ log.info("寮�濮嬫墽琛屼换鍔★紝浠诲姟璇蜂俊鎭负{}", task);
if (request == 0) {
log.info("璁惧锛歿}鐘舵�侊細{}", device, request);
log.info("鏈敹鍒颁换鍔¤姹傦紝缁撴潫鏈浠诲姟");
@@ -487,6 +490,10 @@
.eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
.eq(EdgStorageDeviceTaskHistory::getDeviceId, device)
.orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1"));
+ //濡傛灉浠诲姟绫诲瀷涓�1锛�3锛屽皢鍒囧壊瀹屾垚鐨勭幓鐠冭嚜鍔ㄦ姤宸�
+ if (Const.GLASS_CACHE_TYPE_IN_ALL.contains(taskHistory.getTaskType())) {
+ damageService.autoSubmitReport(taskHistory.getGlassIdIn(), taskHistory.getDeviceId(),"鍒囧壊","杩涘崸鐞�");
+ }
updateCellRemainWidth(cell, device, taskHistory);
edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>()
.eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
@@ -528,10 +535,23 @@
.last("Limit 1");
GlassInfo swapGlassInfo = glassInfoService.getOne(queryWrapper);
if (swapGlassInfo != null && !glassInfo.getGlassId().equals(swapGlassInfo.getGlassId())) {
+
+ int patternSequence = glassInfo.getPatternSequence();
+ int xAxis = glassInfo.getXAxis();
+ int yAxis = glassInfo.getYAxis();
String swapGlassId = swapGlassInfo.getGlassId();
- log.info("灏嗙幓鐠儃}鍜岀幓鐠儃}锛屼俊鎭簰鎹�,杩涚幓鐠� {}", glassInfo, swapGlassInfo, swapGlassInfo);
+ int swapPatternSequence = swapGlassInfo.getPatternSequence();
+ int swapXAxis = swapGlassInfo.getXAxis();
+ int swapYAxis = swapGlassInfo.getYAxis();
swapGlassInfo.setGlassId(glassId);
+ swapGlassInfo.setPatternSequence(patternSequence);
+ swapGlassInfo.setXAxis(xAxis);
+ swapGlassInfo.setYAxis(yAxis);
glassInfo.setGlassId(swapGlassId);
+ glassInfo.setPatternSequence(swapPatternSequence);
+ glassInfo.setXAxis(swapXAxis);
+ glassInfo.setYAxis(swapYAxis);
+ log.info("灏嗙幓鐠儃}鍜岀幓鐠儃}锛屼俊鎭簰鎹�(鍘熺墖搴忓彿鍙婂潗鏍囬櫎澶�),杩涚幓鐠� {}", glassInfo, swapGlassInfo, swapGlassInfo);
glassInfoService.updateById(swapGlassInfo);
glassInfoService.updateById(glassInfo);
return swapGlassId;
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
index 8801ad7..c603a6e 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
@@ -1,12 +1,17 @@
package com.mes.job;
import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.mes.common.config.Const;
import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+import com.mes.edgstoragecage.entity.vo.CutDrawingVO;
import com.mes.edgstoragecage.entity.vo.EdgStorageCageVO;
import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
import com.mes.edgstoragecage.service.EdgStorageCageService;
import com.mes.opctask.entity.EdgStorageDeviceTask;
+import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService;
import com.mes.opctask.service.EdgStorageDeviceTaskService;
import com.mes.tools.WebSocketServer;
import lombok.extern.slf4j.Slf4j;
@@ -35,6 +40,8 @@
EdgGlassTaskInfoService edgGlassTaskInfoService;
@Resource
EdgStorageDeviceTaskService edgStorageDeviceTaskService;
+ @Resource
+ EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService;
private static final String EDG_STORAGE_DEVICE_ONE_TASK = "edg_storage_device_one_task";
@@ -53,14 +60,18 @@
private void CacheGlassTasksChild(String tableName, String webSocketName, int deviceId, int stationCell) {
JSONObject jsonObject = new JSONObject();
-// List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory();
-// jsonObject.append("currentCutTerritory", currentCutTerritorys);
- //鍗у缂撳瓨绗煎唴淇℃伅0 = {EdgStorageCageVO@11649} "EdgStorageCageVO(details=null)"
+ List<CutDrawingVO> currentCutDrawings = edgStorageCageDetailsService.queryCurrentCutDrawing(deviceId, stationCell);
+ jsonObject.append("currentCutTerritory", currentCutDrawings);
+ //鍗у缂撳瓨绗煎唴淇℃伅
List<EdgStorageCageVO> edgStorageCageVOS = edgStorageCageService.selectEdgStorageCagesByDeviceId(deviceId);
jsonObject.append("EdgStorageCageinfos", edgStorageCageVOS);
- EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(tableName);
- jsonObject.append("taskMessage", task);
+ //鑾峰彇姝e湪鏁村舰涓殑浠诲姟
+ EdgStorageDeviceTaskHistory taskHistory = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
+ .eq(EdgStorageDeviceTaskHistory::getDeviceId,deviceId)
+ .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+ .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1"));
+ jsonObject.append("taskMessage", taskHistory);
ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get(webSocketName);
if (sendwServer != null) {
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceTaskHistoryController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceTaskHistoryController.java
index 7eb5d0b..64e3791 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceTaskHistoryController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceTaskHistoryController.java
@@ -1,16 +1,17 @@
package com.mes.opctask.controller;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import com.mes.opctask.entity.request.TaskHistoryRequest;
import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService;
import com.mes.utils.Result;
import io.swagger.annotations.Api;
-import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
-import java.io.Serializable;
import java.util.List;
/**
@@ -29,60 +30,11 @@
@Resource
private EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService;
- /**
- * 鍒嗛〉鏌ヨ鎵�鏈夋暟鎹�
- *
- * @param page 鍒嗛〉瀵硅薄
- * @param edgStorageDeviceTaskHistory 鏌ヨ瀹炰綋
- * @return 鎵�鏈夋暟鎹�
- */
+ @ApiOperation(value = "鏌ヨ鏈潯绾挎墽琛岃繃鐨勫巻鍙蹭换鍔℃暟鎹�", notes = "鏌ヨ鏈潯绾挎墽琛岃繃鐨勫巻鍙蹭换鍔℃暟鎹�")
@GetMapping
- public Result selectAll(Page<EdgStorageDeviceTaskHistory> page, EdgStorageDeviceTaskHistory edgStorageDeviceTaskHistory) {
- return Result.success(this.edgStorageDeviceTaskHistoryService.page(page, new QueryWrapper<>(edgStorageDeviceTaskHistory)));
+ public Result<List<EdgStorageDeviceTaskHistory>> queryEdgStorageDeviceTaskHistory(TaskHistoryRequest request) {
+ return Result.success(edgStorageDeviceTaskHistoryService.queryEdgStorageDeviceTaskHistory(request));
}
- /**
- * 閫氳繃涓婚敭鏌ヨ鍗曟潯鏁版嵁
- *
- * @param id 涓婚敭
- * @return 鍗曟潯鏁版嵁
- */
- @GetMapping("{id}")
- public Result selectOne(@PathVariable Serializable id) {
- return Result.success(this.edgStorageDeviceTaskHistoryService.getById(id));
- }
-
- /**
- * 鏂板鏁版嵁
- *
- * @param edgStorageDeviceTaskHistory 瀹炰綋瀵硅薄
- * @return 鏂板缁撴灉
- */
- @PostMapping
- public Result insert(@RequestBody EdgStorageDeviceTaskHistory edgStorageDeviceTaskHistory) {
- return Result.success(this.edgStorageDeviceTaskHistoryService.save(edgStorageDeviceTaskHistory));
- }
-
- /**
- * 淇敼鏁版嵁
- *
- * @param edgStorageDeviceTaskHistory 瀹炰綋瀵硅薄
- * @return 淇敼缁撴灉
- */
- @PutMapping
- public Result update(@RequestBody EdgStorageDeviceTaskHistory edgStorageDeviceTaskHistory) {
- return Result.success(this.edgStorageDeviceTaskHistoryService.updateById(edgStorageDeviceTaskHistory));
- }
-
- /**
- * 鍒犻櫎鏁版嵁
- *
- * @param idList 涓婚敭缁撳悎
- * @return 鍒犻櫎缁撴灉
- */
- @DeleteMapping
- public Result delete(@RequestParam("idList") List<Long> idList) {
- return Result.success(this.edgStorageDeviceTaskHistoryService.removeByIds(idList));
- }
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/request/TaskHistoryRequest.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/request/TaskHistoryRequest.java
new file mode 100644
index 0000000..39f8572
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/request/TaskHistoryRequest.java
@@ -0,0 +1,35 @@
+package com.mes.opctask.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/22 16:10
+ * @Description:
+ */
+@Data
+public class TaskHistoryRequest {
+
+ @ApiModelProperty(value = "璁惧id")
+ private Integer deviceId;
+ @ApiModelProperty(value = "鐜荤拑id")
+ private String glassId;
+ @ApiModelProperty(value = "浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1缁撴潫浠诲姟")
+ private Integer taskState;
+ @ApiModelProperty(value = "浠诲姟绫诲瀷锛�1杩涚墖浠诲姟 2鍑虹墖浠诲姟 3鐩撮�氫换鍔�")
+ private Integer taskType;
+ @ApiModelProperty(value = "寮�濮嬫椂闂�")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date startTime;
+ @ApiModelProperty(value = "缁撴潫鏃堕棿")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date endTime;
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskHistoryService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskHistoryService.java
index 3eb12cb..13e4038 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskHistoryService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskHistoryService.java
@@ -2,6 +2,9 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import com.mes.opctask.entity.request.TaskHistoryRequest;
+
+import java.util.List;
/**
* (EdgStorageDeviceTaskHistory)琛ㄦ湇鍔℃帴鍙�
@@ -11,5 +14,6 @@
*/
public interface EdgStorageDeviceTaskHistoryService extends IService<EdgStorageDeviceTaskHistory> {
+ List<EdgStorageDeviceTaskHistory> queryEdgStorageDeviceTaskHistory(TaskHistoryRequest request);
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskHistoryServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskHistoryServiceImpl.java
index 2eaa927..55a23a7 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskHistoryServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskHistoryServiceImpl.java
@@ -1,10 +1,15 @@
package com.mes.opctask.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import com.mes.opctask.entity.request.TaskHistoryRequest;
import com.mes.opctask.mapper.EdgStorageDeviceTaskHistoryMapper;
import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService;
import org.springframework.stereotype.Service;
+
+import java.util.List;
/**
* (EdgStorageDeviceTaskHistory)琛ㄦ湇鍔″疄鐜扮被
@@ -15,5 +20,19 @@
@Service("edgStorageDeviceTaskHistoryService")
public class EdgStorageDeviceTaskHistoryServiceImpl extends ServiceImpl<EdgStorageDeviceTaskHistoryMapper, EdgStorageDeviceTaskHistory> implements EdgStorageDeviceTaskHistoryService {
+ @Override
+ public List<EdgStorageDeviceTaskHistory> queryEdgStorageDeviceTaskHistory(TaskHistoryRequest request) {
+ LambdaQueryWrapper<EdgStorageDeviceTaskHistory> wrapper = new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
+ .eq(EdgStorageDeviceTaskHistory::getDeviceId, request.getDeviceId())
+ .eq(StringUtils.checkValNotNull(request.getTaskState()), EdgStorageDeviceTaskHistory::getTaskState, request.getTaskState())
+ .eq(StringUtils.checkValNotNull(request.getTaskType()), EdgStorageDeviceTaskHistory::getTaskState, request.getTaskType())
+ .between(StringUtils.checkValNotNull(request.getStartTime()), EdgStorageDeviceTaskHistory::getCreateTime, request.getStartTime(),
+ request.getEndTime()).orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 20");
+ if (StringUtils.isNotBlank(request.getGlassId())) {
+ wrapper.and(e -> e.like(EdgStorageDeviceTaskHistory::getGlassIdIn, request.getGlassId())
+ .or().like(EdgStorageDeviceTaskHistory::getGlassIdOut, request.getGlassId()));
+ }
+ return this.list(wrapper);
+ }
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
index 577dd92..feefee2 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
@@ -1,6 +1,7 @@
package com.mes.taskcache.controller;
import com.mes.edgglasstask.entity.request.IdentWornRequest;
+import com.mes.edgstoragecage.entity.vo.CutDrawingVO;
import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
import com.mes.taskcache.service.TaskCacheService;
import com.mes.utils.Result;
@@ -34,39 +35,34 @@
@ApiOperation("鏌ヨ閽㈠寲鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙� 鍙傛暟(宸ョ▼鍙�)")
@PostMapping("/temperingTerritory")
- @ResponseBody
public Result temperingTerritory(String current) {
List<Map<String, Object>> h = edgStorageCageDetailsService.selectTemperingTerritory(current);
return Result.build(200, "鎴愬姛", h);
}
- @ApiOperation("鏌ヨ鍒囧壊鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙� 鍙傛暟(宸ョ▼鍙�)")
- @PostMapping("/cutTerritory")
- @ResponseBody
- public Result cutTerritory(String current) {
- //engineerId=current;
- List<List<Map<String, Object>>> h = edgStorageCageDetailsService.selectCurrentCutTerritory(current);
- return Result.build(200, "鎴愬姛", h);
+ @ApiOperation("鏌ヨ鍒囧壊鐗堝浘淇℃伅-鏍规嵁宸ョ▼鍙峰強鐗堝簭锛岀増搴忛粯璁や负1")
+ @PostMapping("/queryCutDrawingByEngineerId")
+ public Result queryCutDrawingByEngineerId(String engineerId, int patternSequence) {
+// List<List<Map<String, Object>>> h = edgStorageCageDetailsService.selectCurrentCutTerritory(current);
+ Map<String, Object> map = edgStorageCageDetailsService.queryCutDrawingByEngineerId(engineerId, patternSequence);
+ return Result.build(200, "鎴愬姛", map);
}
- @ApiOperation("璇嗗埆鏄剧ず 褰撳墠鐗堝浘 鍙傛暟()")
- @PostMapping("/currentCutTerritory")
- @ResponseBody
- public Result currentCutTerritory() {
- List<Map<String, Object>> h = edgStorageCageDetailsService.selectCutTerritory();
- return Result.build(200, "鎴愬姛", h);
+ @ApiOperation("璇嗗埆鏄剧ず:褰撳墠鐗堝浘,闇�瑕佸綋鍓嶅崸寮忕悊鐗囪澶噄d銆佷笂鐗囩嚎璺�")
+ @PostMapping("/queryCurrentCutDrawing")
+ public Result queryCurrentCutDrawing(int deviceId, int stationCell) {
+ List<CutDrawingVO> cutDrawingVOS = edgStorageCageDetailsService.queryCurrentCutDrawing(deviceId, stationCell);
+ return Result.build(200, "鎴愬姛", cutDrawingVOS);
}
@ApiOperation("璇嗗埆鎿嶄綔锛� 鐮存崯/鎷胯蛋 鍙傛暟锛圛D,鍔熻兘[9锛氭嬁璧帮紝8:鐮存崯]锛�")
@PostMapping("/identControls")
- @ResponseBody
public Result<String> identControls(@RequestBody @Validated IdentWornRequest request) {
return Result.build(200, "鎴愬姛", edgStorageCageDetailsService.identControls(request));
}
@ApiOperation("纾ㄨ竟浠诲姟 鍙傛暟()")
@PostMapping("/selectEdgTask")
- @ResponseBody
public Result selectEdgTask(@RequestBody Map<String, String> arguments) {
String line = arguments.get("line");
List<Map<String, Object>> EdgTasks = taskCacheService.selectEdgInfo(line);
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
index 097e078..8861765 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -31,8 +31,8 @@
firstLength: 460
secondLength: 390
two: #绗簩鏉$(杈圭嚎鐨勬渶灏忓昂瀵镐俊鎭�
- firstLength: 390
- secondLength: 390
+ firstLength: 300
+ secondLength: 300
glassGap: 2500
cellLength: 2500
sequence:
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml
index aae437f..f4f8fc6 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml
@@ -56,4 +56,21 @@
select *
from slot_temp limit 1
</select>
+ <select id="queryCutDrawingByEngineerId" resultType="com.mes.edgstoragecage.entity.vo.CutDrawingVO">
+ with glass_temp as (
+ select * from glass_info where engineer_id = #{engineerId} and pattern_sequence = #{patternSequence}
+ ), cut_drawing_temp as (
+ select t.*,
+ case when t2.glass_id is not null then t2.type
+ when t1.glass_id is not null then t1.state
+ else 0 end as state
+ from glass_temp t
+ left join edg_storage_cage_details t1 on t.glass_id = t1.glass_id
+ left join damage t2 on t.glass_id = t2.glass_id and t2.type in (8,9)
+ )select * from cut_drawing_temp where 1=1
+ <if test="isAll == 1">
+ and state = 0
+ </if>
+
+ </select>
</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
index 0cf74de..6011bcc 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
@@ -104,6 +104,17 @@
}
}
+ @ApiOperation("鎸囧畾閽㈠寲宸ョ▼")
+ @PostMapping("/appointTemperingEngineerId")
+ public Result appointTemperingEngineerId(@RequestBody BigStorageCageDetails bigStorageCageDetails) {
+ boolean result = bigStorageCageDetailsService.appointTemperingEngineerId(bigStorageCageDetails.getEngineerId());
+ if (result == true) {
+ return Result.build(200, "鎸囧畾閽㈠寲鎴愬姛", 1);
+ } else {
+ return Result.build(200, "宸插瓨鍦ㄩ挗鍖栦换鍔★紝璇风瓑寰呴挗鍖栧畬鎴愬啀鎸囧畾閽㈠寲", 1);
+ }
+ }
+
@ApiOperation("閽㈠寲/闈為挗鍖栨煡璇細0 闈為挗鍖� 1锛氶挗鍖�")
@PostMapping("/selectTemperingGlass")
public Result<List<TemperingGlassCountDTO>> selectTemperingGlass(int isTempering) {
@@ -163,17 +174,11 @@
return Result.build(200, "鎸囧畾娴佺▼鍗℃垚鍔�", 1);
}
}
-
- @ApiOperation("鎸囧畾宸ョ▼")
- @PostMapping("/appointEngineerId")
- public Result appointEngineerId(@RequestBody BigStorageCageDetails bigStorageCageDetails) {
- bigStorageCageDetailsService.appointEngineerId(bigStorageCageDetails.getEngineerId());
- return Result.build(200, "淇敼鎴愬姛", 1);
- }
-
@ApiOperation("澶х悊鐗囩鎶ョ牬鎹�")
@PostMapping("/bigStorageGlassDamageByGlassId")
- public Result<String> bigStorageGlassDamageByGlassId(String glassId) {
+
+ public Result<String> bigStorageGlassDamageByGlassId(@RequestBody Map<String, String> map) {
+ String glassId=map.get("glassId");
return Result.build(200, "鎶ョ牬鎹熸垚鍔�", bigStorageCageDetailsService.bigStorageGlassDamageByGlassId(glassId));
}
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageAndDetailsDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageAndDetailsDTO.java
index 8d126d5..4acd70a 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageAndDetailsDTO.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageAndDetailsDTO.java
@@ -1,9 +1,7 @@
package com.mes.bigstorage.entity.dto;
-import com.baomidou.mybatisplus.annotation.TableField;
import com.mes.bigstorage.entity.BigStorageCage;
import com.mes.bigstorage.entity.BigStorageCageDetails;
-import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
index d52dbbb..f8413c4 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
@@ -76,7 +76,7 @@
String temperingSwitch(Boolean flag);
- void appointEngineerId(String engineerId);
+ boolean appointTemperingEngineerId(String engineerId);
List<BigStorageRelationDTO> queryIsAllNeedDispatchVirtualSlot();
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
index 485bdba..f23a0a7 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -447,8 +447,30 @@
}
@Override
- public void appointEngineerId(String engineerId) {
- redisUtil.setCacheObject("temperingengineerId", engineerId);
+ public boolean appointTemperingEngineerId(String engineerId) {
+ LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ temperingGlassInfoLambdaQueryWrapper
+ .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW);
+ List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoMapper.selectList(temperingGlassInfoLambdaQueryWrapper);
+
+ if (temperingGlassInfoList.size() == 0) {
+ List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
+ .selectAll(GlassInfo.class)
+ .select("-1 as state")
+ .selectAs(BigStorageCageDetails::getSlot, TemperingGlassInfo::getSlot)
+ .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
+ .eq(GlassInfo::getEngineerId, engineerId)
+ .ne(GlassInfo::getTemperingLayoutId, 0)
+ .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+ .orderByAsc(GlassInfo::getTemperingLayoutId)
+ .orderByAsc(GlassInfo::getTemperingFeedSequence)
+ );
+ if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
+ temperingGlassInfoService.saveBatch(temperingGlassInfos);
+ return true;
+ }
+ }
+ return false;
}
@Override
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
index 959d8b7..57b2a42 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
@@ -221,8 +221,8 @@
MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(BigStorageCage.class).selectCollection(BigStorageCageDetails.class, BigStorageCage::getBigStorageCageDetails)
.leftJoin(BigStorageCageDetails.class, on -> on.eq(BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
- .eq(StringUtils.isNotBlank(query.getFilmsId()), BigStorageCageDetails::getFilmsId, query.getFilmsId())
- .eq(StringUtils.isNotBlank(query.getFlowCardId()), BigStorageCageDetails::getFlowCardId, query.getFlowCardId())
+ .like(StringUtils.isNotBlank(query.getFilmsId()), BigStorageCageDetails::getFilmsId, query.getFilmsId())
+ .like(StringUtils.isNotBlank(query.getFlowCardId()), BigStorageCageDetails::getFlowCardId, query.getFlowCardId())
.in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL, Const.GLASS_STATE_OUT_ING))
.eq(BigStorageCage::getDeviceId, query.getDeviceId())
.orderByAsc(BigStorageCage::getDeviceId)
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OPCPlcSlicecage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OPCPlcSlicecage.java
index 1429d59..1fcdedf 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OPCPlcSlicecage.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OPCPlcSlicecage.java
@@ -88,6 +88,22 @@
}
}
jsonObject.append("bigStorageCageDetailsFeedTask", inTaskList);
+
+ //杩涚墖鑱旀満
+ ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1A.DLP1A.mesControl");
+ jsonObject.append("inkageEntity", inkageEntity.getValue());
+ //杩涚墖璇锋眰
+ ReadWriteEntity requestEntity = miloService.readFromOpcUa("DLP1A.DLP1A.RequestMes");
+ jsonObject.append("requestEntity", requestEntity.getValue());
+ //鍚姩鍛戒护
+ ReadWriteEntity mesReplyEntity = miloService.readFromOpcUa("DLP1A.DLP1A.MesReply");
+ jsonObject.append("mesReplyEntity", mesReplyEntity.getValue());
+ //鍑虹墖鑱旀満
+ ReadWriteEntity outInkageEntity = miloService.readFromOpcUa("DLP1B.DLP1B.mesControl");
+ jsonObject.append("outInkageEntity", outInkageEntity.getValue());
+ //鍑虹墖璇锋眰
+ ReadWriteEntity outRequestEntity = miloService.readFromOpcUa("DLP1B.DLP1B.RequestMes");
+ jsonObject.append("outRequestEntity", outRequestEntity.getValue());
}catch(Exception e){
//todo:涓嶅仛浠诲姟澶勭悊
}
@@ -181,58 +197,6 @@
}
} catch (Exception e) {
e.printStackTrace();
- }
- }
-
-// @Scheduled(fixedDelay = 1000)
- public void temperingIsRun() {
- JSONObject jsonObject = new JSONObject();
- //杩涚墖浠诲姟鏁版嵁
- List<BigStorageCageDetails> bigStorageCageDetailsFeedTask = bigStorageCageDetailsService.selectFeedTask();
- jsonObject.append("bigStorageCageDetailsFeedTask", bigStorageCageDetailsFeedTask);
- //鍑虹墖浠诲姟鏁版嵁
- List<BigStorageCageDetails> bigStorageCageDetailsOutTask = bigStorageCageDetailsService.selectOutTask();
- jsonObject.append("bigStorageCageDetailsOutTask", bigStorageCageDetailsOutTask);
- ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("isRun");
- if (sendwServer != null) {
- for (WebSocketServer webserver : sendwServer) {
- if (webserver != null) {
- webserver.sendMessage(jsonObject.toString());
- } else {
- log.info("Home is closed");
- }
- }
- }
- }
-
- // @Scheduled(fixedDelay = Long.MAX_VALUE)
- public void scanCodeTask() {
- log.info("鎵弿浠诲姟宸插惎鍔�");
- while (true) {
- JSONObject jsonObject = new JSONObject();
- try (Socket socket = new Socket(scanIp, scanPort);
- BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
- // 鎺ユ敹鏈嶅姟鍣ㄥ搷搴�
- log.info("绛夊緟鎵爜涓�......");
- String glassId = in.readLine();
- log.info("鎵弿鍒扮殑鐜荤拑id锛歿}", glassId);
- List<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("slicecage");
- if (CollectionUtils.isNotEmpty(sendwServer)) {
- //鎸夌収鐜荤拑id鑾峰彇鐜荤拑淇℃伅杩斿洖缁欏墠绔晫闈紝鍏蜂綋闇�瑕佸摢浜涙暟鎹緟纭
- GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
- .eq(GlassInfo::getGlassId, glassId).last("limit 1"));
- if (null == glassInfo) {
- log.info("鎸夌収鐜荤拑id锛歿}锛屾棤娉曟壘鍒扮幓鐠冧俊鎭�", glassId);
- } else {
- for (WebSocketServer webserver : sendwServer) {
- jsonObject.append("scanGlass", glassInfo);
- webserver.sendMessage(jsonObject.toString());
- }
- }
- }
- } catch (Exception exception) {
- log.info("璇诲彇寮傚父锛屽師鍥犱负{}", exception.getMessage());
- }
}
}
}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
index 44d88bd..2faeee9 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
@@ -101,6 +101,8 @@
private Integer artificialOutTargetPosition;
@Value("${mes.slotMaxHeight}")
private Integer slotMaxHeight;
+ @Value("${mes.slotMaxthickness}")
+ private Integer slotMaxthickness;
@Scheduled(fixedDelay = 1000)
public void inBigStorageTask() throws Exception {
@@ -175,7 +177,7 @@
}
}
//todo:瓒呭ぇ灏哄
- if (slotMaxHeight < Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight())) {
+ if (slotMaxHeight < Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) || glassInfoList.get(0).getThickness() > slotMaxthickness) {
int count = bigStorageCageDetailsService.count(new LambdaQueryWrapper<BigStorageCageDetails>()
.eq(BigStorageCageDetails::getSlot, THROUGH_SLOT)
.in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
@@ -189,6 +191,11 @@
//淇敼纾ㄨ竟瀵瑰垪琛ㄧ殑鐜荤拑鐘舵��
edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>()
.set(EdgGlassTaskInfo::getState, Const.EDG_GLASS_SUCCESS).in(EdgGlassTaskInfo::getGlassId, glassIdList));
+ //鎶ュ伐
+ for (String glass : glassIdList) {
+ damageService.autoSubmitReport(glass, inTaskList.get(0).getStartSlot(), "纾ㄨ竟", "杩涘ぇ鐞嗙墖绗�");
+ }
+
Map<String, List<GlassInfo>> glassListMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getGlassId));
//璁$畻鐩爣鏍煎瓙
List<BigStorageCageHistoryTask> historyTasks = new ArrayList<>();
@@ -283,16 +290,6 @@
List<TemperingGlassInfo> unFinishTemperingGlassInfoList = temperingGlassInfoService.list(new LambdaQueryWrapper<TemperingGlassInfo>()
.eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW).orderByAsc(TemperingGlassInfo::getTemperingFeedSequence));
if (CollectionUtil.isNotEmpty(unFinishTemperingGlassInfoList)) {
-// List<String> glassIdList = unFinishTemperingGlassInfoList.stream().map(TemperingGlassInfo::getGlassId).collect(Collectors.toList());
-// List<BigStorageCageHistoryTask> historyTaskList = bigStorageCageHistoryTaskService.list(new LambdaQueryWrapper<BigStorageCageHistoryTask>()
-// .eq(BigStorageCageHistoryTask::getTaskType, Const.BIG_STORAGE_BEFORE_OUT)
-// .in(BigStorageCageHistoryTask::getGlassId, glassIdList));
-// List<TemperingGlassInfo> temperingGlassList = unFinishTemperingGlassInfoList;
-// if (CollectionUtil.isNotEmpty(historyTaskList)) {
-// List<String> taskGlassList = historyTaskList.stream().map(BigStorageCageHistoryTask::getGlassId).collect(Collectors.toList());
-// temperingGlassList = unFinishTemperingGlassInfoList.stream().filter(e -> !taskGlassList.contains(e.getGlassId())).collect(Collectors.toList());
-// }
-// if (CollectionUtil.isNotEmpty(unFinishTemperingGlassInfoList)) {
log.info("鏈夋鍦ㄥ嚭鐗囩殑閽㈠寲浠诲姟");
computeOutGlassInfoByVirtualSlot(unFinishTemperingGlassInfoList, "big_storage_cage_out_one_task", temperingOutTargetPosition, Const.GLASS_STATE_OUT_ING, Const.BIG_STORAGE_BEFORE_OUT);
Date endDate = new Date();
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
index 51356c7..c60e249 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -28,6 +28,7 @@
glassGap: 250 #鐜荤拑闂磋窛
xMaxSize: 2800
slotMaxHeight: 2500
+ slotMaxthickness: 12
temperingOutTargetPosition: 930
artificialOutTargetPosition: 931
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
index 61adf41..ebda8bb 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -132,7 +132,7 @@
</where>
</update>
<update id="updateDeviceIdBySlot">
- update big_storage_cage_details t innser join big_storage_cage t1 on t.slot = t1.slot
+ update big_storage_cage_details t inner join big_storage_cage t1 on t.slot = t1.slot
set t.device_id = t1.device_id
where t.slot in (
<foreach collection="list" item="item" separator=",">
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/controller/HollowBigStorageCageController.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/controller/HollowBigStorageCageController.java
index 6b96a2e..2ef9415 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/controller/HollowBigStorageCageController.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/controller/HollowBigStorageCageController.java
@@ -1,8 +1,18 @@
package com.mes.hollow.controller;
+import com.mes.hollow.entity.dto.HollowBigStorageAndDetailsDTO;
+import com.mes.hollow.entity.vo.HollowBigStorageDetailsQueryVO;
+import com.mes.hollow.service.HollowBigStorageCageService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
/**
* (HollowBigStorageCage)琛ㄦ帶鍒跺眰
@@ -13,6 +23,13 @@
@RestController
@RequestMapping("hollowBigStorageCage")
public class HollowBigStorageCageController {
+ @Resource
+ HollowBigStorageCageService hollowBigStorageCageService;
+ @ApiOperation("鎸夌収鏌ヨ鏉′欢锛堣澶噄d銆佹祦绋嬪崱銆佽啘绯伙級鑾峰彇璁惧瀵瑰簲鐨勭瀛愮幓鐠冧俊鎭�")
+ @PostMapping("/queryHollowBigStorageCageDetail")
+ public Result<List<HollowBigStorageAndDetailsDTO>> queryHollowBigStorageCageDetail(@RequestBody HollowBigStorageDetailsQueryVO query) {
+ return Result.build(200, "鏌ヨ鎴愬姛", hollowBigStorageCageService.queryHollowBigStorageCageDetail(query));
+ }
}
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCage.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCage.java
index 2e6c606..7da587d 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCage.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCage.java
@@ -1,8 +1,12 @@
package com.mes.hollow.entity;
import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+
+import java.util.List;
/**
* (HollowBigStorageCage)琛ㄥ疄浣撶被
@@ -42,6 +46,10 @@
*/
private Integer remainWidth;
+ @ApiModelProperty(hidden = true)
+ @TableField(exist = false)
+ private List<HollowBigStorageCageDetails> hollowBigStorageCageDetails;
+
}
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCageDetails.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCageDetails.java
index fb77157..ab67700 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCageDetails.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCageDetails.java
@@ -45,10 +45,6 @@
*/
private String filmsId;
/**
- * /*鍘氬害
- */
- private Double thickness;
- /**
* /*鐘舵��
*/
private Integer state;
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/dto/HollowBigStorageAndDetailsDTO.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/dto/HollowBigStorageAndDetailsDTO.java
new file mode 100644
index 0000000..48381de
--- /dev/null
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/dto/HollowBigStorageAndDetailsDTO.java
@@ -0,0 +1,18 @@
+package com.mes.hollow.entity.dto;
+
+import com.mes.hollow.entity.HollowBigStorageCage;
+import com.mes.hollow.entity.HollowBigStorageCageDetails;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/6/11 16:45
+ * @Description:
+ */
+@Data
+public class HollowBigStorageAndDetailsDTO extends HollowBigStorageCage {
+
+ private List<HollowBigStorageCageDetails> hollowBigStorageCageDetails;
+}
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/vo/HollowBigStorageDetailsQueryVO.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/vo/HollowBigStorageDetailsQueryVO.java
new file mode 100644
index 0000000..f623d4e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/vo/HollowBigStorageDetailsQueryVO.java
@@ -0,0 +1,25 @@
+package com.mes.hollow.entity.vo;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/23 10:48
+ * @Description:
+ */
+@Data
+public class HollowBigStorageDetailsQueryVO {
+ /**
+ * 璁惧id
+ */
+ private Integer deviceId;
+ /**
+ * 娴佺▼鍗�
+ */
+ private String flowCardId;
+ /**
+ * 鑶滅郴
+ */
+ private String filmsId;
+
+}
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageMapper.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageMapper.java
index b8f0656..d6ec7c7 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageMapper.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageMapper.java
@@ -1,6 +1,6 @@
package com.mes.hollow.mapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
import com.mes.hollow.entity.HollowBigStorageCage;
/**
@@ -9,7 +9,7 @@
* @author makejava
* @since 2024-11-21 09:22:40
*/
-public interface HollowBigStorageCageMapper extends BaseMapper<HollowBigStorageCage> {
+public interface HollowBigStorageCageMapper extends MPJBaseMapper<HollowBigStorageCage> {
}
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageService.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageService.java
index 88b3fd8..ba96566 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageService.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageService.java
@@ -2,6 +2,11 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.hollow.entity.HollowBigStorageCage;
+import com.mes.hollow.entity.dto.HollowBigStorageAndDetailsDTO;
+import com.mes.hollow.entity.vo.HollowBigStorageDetailsQueryVO;
+
+import java.util.List;
+import java.util.Map;
/**
* (HollowBigStorageCage)琛ㄦ湇鍔℃帴鍙�
@@ -11,5 +16,10 @@
*/
public interface HollowBigStorageCageService extends IService<HollowBigStorageCage> {
+ List<HollowBigStorageAndDetailsDTO> queryHollowBigStorageCageDetail(HollowBigStorageDetailsQueryVO query);
+
+ Map<Integer, List<HollowBigStorageCage>> queryHollowbigStorageCageDetail();
+
+ List<Map<String, Object>> selectBigStorageCageUsage();
}
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageServiceImpl.java
index 68350a7..3a365aa 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageServiceImpl.java
@@ -1,10 +1,22 @@
package com.mes.hollow.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.common.config.Const;
import com.mes.hollow.entity.HollowBigStorageCage;
+import com.mes.hollow.entity.HollowBigStorageCageDetails;
+import com.mes.hollow.entity.dto.HollowBigStorageAndDetailsDTO;
+import com.mes.hollow.entity.vo.HollowBigStorageDetailsQueryVO;
import com.mes.hollow.mapper.HollowBigStorageCageMapper;
import com.mes.hollow.service.HollowBigStorageCageService;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* (HollowBigStorageCage)琛ㄦ湇鍔″疄鐜扮被
@@ -15,5 +27,39 @@
@Service
public class HollowBigStorageCageServiceImpl extends ServiceImpl<HollowBigStorageCageMapper, HollowBigStorageCage> implements HollowBigStorageCageService {
+ @Value("${mes.slotWidth}")
+ private Integer slotWidth;
+ @Override
+ public List<HollowBigStorageAndDetailsDTO> queryHollowBigStorageCageDetail(HollowBigStorageDetailsQueryVO query) {
+ MPJLambdaWrapper<HollowBigStorageCage> wrapper = new MPJLambdaWrapper<>();
+ wrapper.selectAll(HollowBigStorageCage.class).selectCollection(HollowBigStorageCageDetails.class, HollowBigStorageCage::getHollowBigStorageCageDetails)
+ .leftJoin(HollowBigStorageCageDetails.class, on -> on.eq(HollowBigStorageCageDetails::getSlot, HollowBigStorageCage::getSlot)
+ .like(StringUtils.isNotBlank(query.getFilmsId()), HollowBigStorageCageDetails::getFilmsId, query.getFilmsId())
+ .like(StringUtils.isNotBlank(query.getFlowCardId()), HollowBigStorageCageDetails::getFlowCardId, query.getFlowCardId())
+ .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL, Const.GLASS_STATE_OUT_ING))
+ .eq(HollowBigStorageCage::getDeviceId, query.getDeviceId())
+ .orderByAsc(HollowBigStorageCage::getDeviceId)
+ .orderByAsc(HollowBigStorageCage::getSlot);
+ return baseMapper.selectJoinList(HollowBigStorageAndDetailsDTO.class, wrapper);
+ }
+
+ @Override
+ public Map<Integer, List<HollowBigStorageCage>> queryHollowbigStorageCageDetail() {
+ MPJLambdaWrapper<HollowBigStorageCage> wrapper = new MPJLambdaWrapper<>();
+ wrapper.selectAll(HollowBigStorageCage.class).selectCollection(HollowBigStorageCageDetails.class, HollowBigStorageCage::getHollowBigStorageCageDetails)
+ .leftJoin(HollowBigStorageCageDetails.class, on -> on.eq(HollowBigStorageCageDetails::getSlot, HollowBigStorageCage::getSlot)
+ .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL).orderByAsc(HollowBigStorageCageDetails::getUpdateTime));
+ List<HollowBigStorageCage> bigStorageCages = baseMapper.selectJoinList(HollowBigStorageCage.class, wrapper);
+ Map<Integer, List<HollowBigStorageCage>> listMap = bigStorageCages.stream().collect(Collectors.groupingBy(item -> item.getDeviceId()));
+ return listMap;
+ }
+
+ @Override
+ public List<Map<String, Object>> selectBigStorageCageUsage() {
+ QueryWrapper<HollowBigStorageCage> wrapper = new QueryWrapper<>();
+ wrapper.select("device_id,ROUND(1 - SUM(CASE WHEN remain_width = " + slotWidth + " THEN 1 ELSE 0 END) / COUNT(device_id), 2)*100 AS percentage,SUM(CASE WHEN remain_width = " + slotWidth + " THEN 1 ELSE 0 END) AS count")
+ .groupBy("device_id");
+ return baseMapper.selectMaps(wrapper);
+ }
}
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
index a61b3dd..cafa468 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
@@ -63,6 +63,7 @@
.eq(HollowGlassRelationInfo::getFlowCardId, flowCardId)
.eq(HollowGlassRelationInfo::getWidth, width)
.eq(HollowGlassRelationInfo::getHeight, height)
+ .eq(HollowGlassRelationInfo::getTotalLayer, totalLayer)
.eq(HollowGlassRelationInfo::getLayer, layer)
.eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
.orderByAsc(HollowGlassRelationInfo::getHollowSequence)
@@ -76,6 +77,7 @@
.eq(HollowGlassRelationInfo::getFlowCardId, flowCardId)
.eq(HollowGlassRelationInfo::getWidth, width)
.eq(HollowGlassRelationInfo::getHeight, height)
+ .eq(HollowGlassRelationInfo::getTotalLayer, totalLayer)
.eq(HollowGlassRelationInfo::getLayer, layer)
.eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
.orderByAsc(HollowGlassRelationInfo::getHollowSequence)
@@ -84,6 +86,7 @@
}
HollowBigStorageCageDetails hollowDetails = hollowBigStorageCageDetailsService.getOne(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
.eq(HollowBigStorageCageDetails::getFlowCardId, relationInfoOne.getFlowCardId())
+ .eq(HollowBigStorageCageDetails::getTotalLayer, totalLayer)
.eq(HollowBigStorageCageDetails::getLayer, layer)
.eq(HollowBigStorageCageDetails::getVirtualSlot, relationInfoOne.getVirtualSlot())
.in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
@@ -102,6 +105,7 @@
}
HollowGlassRelationInfo relationInfoBefore = hollowGlassRelationInfoService.getOne(new LambdaQueryWrapper<HollowGlassRelationInfo>()
.eq(HollowGlassRelationInfo::getFlowCardId, relationInfoOne.getFlowCardId())
+ .eq(HollowGlassRelationInfo::getTotalLayer, relationInfoOne.getTotalLayer())
.eq(HollowGlassRelationInfo::getLayer, relationInfoOne.getLayer())
.eq(HollowGlassRelationInfo::getVirtualSlot, relationInfoOne.getVirtualSlot())
.eq(HollowGlassRelationInfo::getSlotSequence, relationInfoOne.getSlotSequence() - 1));
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollowqueue/entity/HollowGlassQueueInfo.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollowqueue/entity/HollowGlassQueueInfo.java
index 0b1049f..a230379 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollowqueue/entity/HollowGlassQueueInfo.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollowqueue/entity/HollowGlassQueueInfo.java
@@ -49,10 +49,6 @@
*/
private String filmsId;
/**
- * /*鍘氬害
- */
- private Double thickness;
- /**
* /*鐘舵��
*/
private Integer state;
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
index dfd6891..d718fe5 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
@@ -78,6 +78,10 @@
private static final String BIG_STORAGE_CAGE_IN_TWO_TASK = "big_storage_cage_in_two_task";
private static final String BIG_STORAGE_CAGE_OUT_TWO_TASK = "big_storage_cage_out_two_task";
+ /**
+ * 鐩撮�氭牸瀛�
+ */
+ private static final Integer THROUGH_SLOT = 920;
@Autowired(required = false)
MiloService miloService;
@Resource
@@ -94,6 +98,11 @@
@Value("${mes.outCarMaxSize}")
private Integer outCarMaxSize;
+
+ @Value("${mes.slotMaxHeight}")
+ private Integer slotMaxHeight;
+ @Value("${mes.slotMaxthickness}")
+ private Integer slotMaxthickness;
@Scheduled(fixedDelay = 1000)
public void inBigStorageTask() throws Exception {
@@ -154,10 +163,40 @@
//todo:鍚憄lc鍙戦�佹姤璀�
return;
}
+ //鎸夌収鐜荤拑鍘氬害鍒嗙粍锛屽垽鏂墿浣欐牸瀛愭槸鍚﹀彲浠ュ瓨鏀�
+ Map<Double, Long> thickCountMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getThickness, Collectors.counting()));
+ for (Map.Entry<Double, Long> entry : thickCountMap.entrySet()) {
+ int count = hollowBigStorageCageService.count(new LambdaQueryWrapper<HollowBigStorageCage>()
+ .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth)
+ .le(HollowBigStorageCage::getMinThickness, entry.getKey())
+ .ge(HollowBigStorageCage::getMaxThickness, entry.getKey()));
+ if (count < entry.getValue()) {
+ log.info("绗煎唴鏍煎瓙鍓╀綑鏁伴噺涓嶈冻锛岀粨鏉熸湰娆¤繘鐗�");
+ //todo:鍚憄lc鍙戦�佹姤璀�
+ return;
+ }
+ }
+ //todo:瓒呭ぇ灏哄
+ if (slotMaxHeight < Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) || glassInfoList.get(0).getThickness() > slotMaxthickness) {
+ int count = hollowBigStorageCageDetailsService.count(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+ .eq(HollowBigStorageCageDetails::getSlot, THROUGH_SLOT)
+ .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
+ if (count > 0) {
+ log.info("鐩撮�氱墖鍙板瓨鍦ㄧ幓鐠冿紝缁撴潫鏈杩涚墖");
+ //todo:鍚憄lc鍙戦�佹姤璀�
+ return;
+ }
+ }
+
+ log.info("灏嗛挗鍖栧皬鐗囪〃鍐呯殑鐘舵�佹敼涓洪挗鍖栫粨鏉燂紝鐜荤拑id鏈夛細{}", glassIdList);
//淇敼閽㈠寲浠诲姟琛ㄤ腑鐨勭姸鎬�
temperingGlassInfoService.update(new LambdaUpdateWrapper<TemperingGlassInfo>()
.set(TemperingGlassInfo::getState, Const.TEMPERING_END).in(TemperingGlassInfo::getGlassId, glassIdList));
-
+ //鎶ュ伐
+ log.info("灏嗘帴鏀跺埌鐨勭幓鐠冭繘琛岄挗鍖栬嚜鍔ㄦ姤宸ワ紝鐜荤拑id鏈夛細{}", glassIdList);
+ for (String glass : glassIdList) {
+ damageService.autoSubmitReport(glass, inTaskList.get(0).getStartSlot(), "閽㈠寲", "杩涗腑绌虹悊鐗囩");
+ }
Map<String, List<GlassInfo>> glassListMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getGlassId));
//璁$畻鐩爣鏍煎瓙
@@ -762,11 +801,15 @@
if (totalLayer != 0) {
resultList.add(list.get(0));
HollowBigStorageCage storageCage = hollowBigStorageCageService.getOne(new LambdaQueryWrapper<HollowBigStorageCage>()
- .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth).last("limit 1"));
+ .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON)
+ .le(HollowBigStorageCage::getMinThickness, list.get(0).getThickness())
+ .ge(HollowBigStorageCage::getMaxThickness, list.get(0).getThickness())
+ .eq(HollowBigStorageCage::getRemainWidth, slotWidth)
+ .orderByAsc(HollowBigStorageCage::getMaxThickness).last("limit 1"));
targetSlot = storageCage.getSlot();
hollowBigStorageCageService.update(new LambdaUpdateWrapper<HollowBigStorageCage>()
.set(HollowBigStorageCage::getRemainWidth, 0).eq(HollowBigStorageCage::getSlot, targetSlot));
- }else{
+ } else {
resultList = tempList;
}
totalLayer = 0;
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
index c745481..e3b5d27 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
@@ -3,13 +3,22 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+import com.mes.bigstoragecagetask.entity.BigStorageCageTask;
+import com.mes.bigstoragecagetask.service.BigStorageCageTaskService;
import com.mes.common.config.Const;
+import com.mes.hollow.entity.HollowBigStorageCage;
import com.mes.hollow.entity.HollowGlassOutRelationInfo;
+import com.mes.hollow.service.HollowBigStorageCageService;
import com.mes.hollow.service.HollowGlassOutRelationInfoService;
import com.mes.hollowqueue.entity.HollowGlassQueueInfo;
import com.mes.hollowqueue.service.HollowGlassQueueInfoService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
import com.mes.tools.WebSocketServer;
+import com.mes.utils.RedisUtil;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -32,6 +41,16 @@
HollowGlassQueueInfoService hollowGlassQueueInfoService;
@Resource
HollowGlassOutRelationInfoService hollowGlassOutRelationInfoService;
+ @Resource
+ HollowBigStorageCageService hollowBigStorageCageService;
+ @Resource
+ BigStorageCageTaskService bigStorageCageTaskService;
+
+ @Autowired(required = false)
+ MiloService miloService;
+
+ @Resource
+ RedisUtil redisUtil;
@Scheduled(fixedDelay = 1000)
public void hollowGlassTask() {
List<HollowGlassOutRelationInfo> taskList = hollowGlassOutRelationInfoService.list(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
@@ -55,4 +74,109 @@
}
}
}
+
+ @Scheduled(fixedDelay = 1000)
+ public void hollowGlassMessage() {
+ JSONObject jsonObject = new JSONObject();
+ try {
+ //鏌ヨ浣跨敤鏁版嵁婧�1鏌ヨ鏁版嵁
+ queryDataSource1(jsonObject);
+
+ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("hollowGlassMessage");
+ if (sendwServer != null) {
+ for (WebSocketServer webserver : sendwServer) {
+ if (webserver != null) {
+ webserver.sendMessage(jsonObject.toString());
+ List<String> messages = webserver.getMessages();
+ if (!messages.isEmpty()) {
+ // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+ webserver.clearMessages();
+ }
+ } else {
+ log.info("Home is closed");
+ }
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+
+ public void queryDataSource1(JSONObject jsonObject) throws Exception {
+ List<Double> carPostion = new ArrayList<>();
+ carPostion.add(0.25);
+ carPostion.add(0.5);
+ jsonObject.append("carPostion", carPostion);
+ //鐣岄潰灞曠ず绗煎瓙淇℃伅
+ jsonObject.append("bigStorageCageInfos", hollowBigStorageCageService.queryHollowbigStorageCageDetail());
+
+ try{
+ //杩涚墖浠诲姟鏁版嵁
+ List<BigStorageCageTask> inTaskList = new ArrayList();
+ ReadWriteEntity fromOpcUa = miloService.readFromOpcUa("DLP2A.DLP2A.FROM1");
+ for (int i = 1; i <= 6; i++) {
+ ReadWriteEntity requestWord = miloService.readFromOpcUa("DLP2A.DLP2A.DI" + i);
+ ReadWriteEntity targetSlotWord = miloService.readFromOpcUa("DLP2A.DLP2A.TO" + i);
+ ReadWriteEntity stateWord = miloService.readFromOpcUa("DLP2A.DLP2A.STATE" + i);
+ if (null != requestWord.getValue()) {
+ BigStorageCageTask task = new BigStorageCageTask();
+ task.setGlassId(requestWord.getValue() + "");
+ task.setStartSlot(Integer.parseInt(fromOpcUa.getValue() + ""));
+ task.setTargetSlot(Integer.parseInt(targetSlotWord.getValue() + ""));
+ task.setTaskState(Integer.parseInt(stateWord.getValue() + ""));
+ inTaskList.add(task);
+ continue;
+ }
+ }
+ jsonObject.append("bigStorageCageDetailsFeedTask", inTaskList);
+ //杩涚墖鑱旀満
+ ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP2A.DLP2A.mesControl");
+ jsonObject.append("inkageEntity", inkageEntity.getValue());
+ //杩涚墖璇锋眰
+ ReadWriteEntity requestEntity = miloService.readFromOpcUa("DLP2A.DLP2A.RequestMes");
+ jsonObject.append("requestEntity", requestEntity.getValue());
+ //鍚姩鍛戒护
+ ReadWriteEntity mesReplyEntity = miloService.readFromOpcUa("DLP2A.DLP2A.MesReply");
+ jsonObject.append("mesReplyEntity", mesReplyEntity.getValue());
+ //鍑虹墖鑱旀満
+ ReadWriteEntity outInkageEntity = miloService.readFromOpcUa("DLP2B.DLP2B.mesControl");
+ jsonObject.append("outInkageEntity", outInkageEntity.getValue());
+ //鍑虹墖璇锋眰
+ ReadWriteEntity outRequestEntity = miloService.readFromOpcUa("DLP2B.DLP2B.RequestMes");
+ jsonObject.append("outRequestEntity", outRequestEntity.getValue());
+
+ }catch(Exception e){
+ //todo:涓嶅仛浠诲姟澶勭悊
+ }
+
+ //鍑虹墖浠诲姟鏁版嵁
+ List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_out_two_task");
+ jsonObject.append("bigStorageCageDetailsOutTask", outTaskList);
+
+ //璋冨害寮�鍏�
+ boolean dispatchHollowSwitch = false;
+ if (redisUtil.getCacheObject("dispatchHollowSwitch") == null) {
+ redisUtil.setCacheObject("dispatchHollowSwitch", false);
+ } else {
+ dispatchHollowSwitch = redisUtil.getCacheObject("dispatchHollowSwitch");
+ }
+ jsonObject.append("dispatchHollowSwitch", dispatchHollowSwitch);
+
+ //鐞嗙墖绗间娇鐢ㄦ儏鍐�
+ List<Map<String, Object>> bigStorageCageUsage = hollowBigStorageCageService.selectBigStorageCageUsage();
+ jsonObject.append("bigStorageCageUsage", bigStorageCageUsage);
+
+//
+// //鎵撳嵃寮�鍏�
+// boolean autoPrint = false;
+// if (redisUtil.getCacheObject("autoPrint") == null) {
+// redisUtil.setCacheObject("autoPrint", false);
+// } else {
+// autoPrint = redisUtil.getCacheObject("autoPrint");
+// }
+// jsonObject.append("autoPrint", autoPrint);
+
+ }
+
}
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/application.yml
index d1efe15..71d5812 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/application.yml
@@ -29,6 +29,8 @@
xMaxSize: 2800
temperingOutTargetPosition: 930
artificialOutTargetPosition: 931
+ slotMaxHeight: 2500
+ slotMaxthickness: 12
kangaroohy:
milo:
enabled: true
--
Gitblit v1.8.0