From 7b89e2cf25b6d5a43ecc86bb64a6a245ae862c6e Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期五, 17 五月 2024 11:12:25 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes
---
hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java | 16
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java | 2
UI-Project/src/views/Returns/returns.vue | 272 ++
hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java | 14
UI-Project/src/lang/i18n.js | 8
hangzhoumesParent/common/springsecurity/src/main/resources/application-dev.yml | 6
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java | 29
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java | 19
hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java | 61
UI-Project/src/views/LoginView.vue | 46
hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java | 111 +
UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue | 98 +
hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java | 2
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 76
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java | 7
UI-Project/package.json | 2
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java | 10
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml | 3
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java | 12
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java | 14
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java | 29
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/WebSocketServer.java | 160 ++
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java | 58
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java | 1
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java | 13
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java | 73
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java | 2
hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/controller/EngineeringController.java | 47
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeProject.java | 20
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java | 26
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java | 207 --
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java | 6
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java | 293 ++++
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/JsonFile/PlcLoadGlass.json | 71
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java | 37
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java | 7
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java | 91 +
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java | 24
hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/OptimizeEngineering.java | 78 +
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java | 99 +
hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java | 64
UI-Project/src/views/Caching/cachingbefore.vue | 15
hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/OptimizeUpPattenUsage.java | 2
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java | 18
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml | 4
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java | 8
hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml | 0
UI-Project/src/views/UnLoadGlass/loadmachinerack.vue | 17
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java | 20
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/AppRunnerConfig.java | 29
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java | 105 -
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/JsonFile/PlcCacheGlass.json | 2
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeProjectController.java | 26
hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java | 2
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java | 16
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7object.java | 61
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java | 93
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/WebSocketServer.java | 160 ++
hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/Engineering.java | 2
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java | 4
hangzhoumesParent/common/servicebase/pom.xml | 7
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java | 26
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java | 29
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java | 1
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json | 57
hangzhoumesParent/common/pom.xml | 13
UI-Project/src/views/UnLoadGlass/Landingindication.vue | 79
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java | 319 +++
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java | 20
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.xlsx | 0
hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/EngineeringService.java | 40
hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java | 30
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java | 11
hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java | 0
hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java | 126 +
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java | 2
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/S7object.java | 61
/dev/null | 458 ------
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.json | 88
UI-Project/src/lang/LanguageMixin.js | 24
UI-Project/src/main.js | 10
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java | 2
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java | 2
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java | 7
UI-Project/package-lock.json | 70
hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java | 11
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java | 17
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java | 6
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/CacheGlassModuleApplication.java | 3
89 files changed, 2,923 insertions(+), 1,394 deletions(-)
diff --git a/UI-Project/package-lock.json b/UI-Project/package-lock.json
index 3a65897..ba2dc0c 100644
--- a/UI-Project/package-lock.json
+++ b/UI-Project/package-lock.json
@@ -18,7 +18,7 @@
"sortablejs": "^1.15.1",
"sweetalert2": "^11.10.7",
"vue": "^3.3.4",
- "vue-i18n": "^9.11.0",
+ "vue-i18n": "^9.13.1",
"vue-router": "^4.2.4",
"vxe-table": "^4.5.15",
"xe-utils": "^3.5.14",
@@ -462,23 +462,23 @@
"integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
},
"node_modules/@intlify/core-base": {
- "version": "9.11.0",
- "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.11.0.tgz",
- "integrity": "sha512-cveOqAstjLZIiyatcP/HrzrQ87cZI8ScPQna3yvoM8zjcjcIRK1MRvmxUNlPdg0rTNJMZw7rixPVM58O5aHVPA==",
+ "version": "9.13.1",
+ "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.13.1.tgz",
+ "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==",
"dependencies": {
- "@intlify/message-compiler": "9.11.0",
- "@intlify/shared": "9.11.0"
+ "@intlify/message-compiler": "9.13.1",
+ "@intlify/shared": "9.13.1"
},
"engines": {
"node": ">= 16"
}
},
"node_modules/@intlify/message-compiler": {
- "version": "9.11.0",
- "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.11.0.tgz",
- "integrity": "sha512-x31Gl7cscnoI4UUY1yaIy8e7vVMVW1VVlTXZz4SIHKqoSEUkfmgqK8NAx1e7RcoHEbICR7uyCbud0ZL1s4OGXQ==",
+ "version": "9.13.1",
+ "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.13.1.tgz",
+ "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==",
"dependencies": {
- "@intlify/shared": "9.11.0",
+ "@intlify/shared": "9.13.1",
"source-map-js": "^1.0.2"
},
"engines": {
@@ -486,9 +486,9 @@
}
},
"node_modules/@intlify/shared": {
- "version": "9.11.0",
- "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.11.0.tgz",
- "integrity": "sha512-KHSNgi7sRjmSm7aD8QH8WFt9VfKaekJuJ473opbJlkGY3EDnDUU8ikIhG8PbasQbgNvbY3m3tWNGqk2omIdwMA==",
+ "version": "9.13.1",
+ "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.13.1.tgz",
+ "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==",
"engines": {
"node": ">= 16"
}
@@ -1649,12 +1649,12 @@
}
},
"node_modules/vue-i18n": {
- "version": "9.11.0",
- "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.11.0.tgz",
- "integrity": "sha512-vU4gY6lu8Pdfs9BgKGiDAJmFDf88cceR47KcSB0VW4xJzUrXR/7qwqM7A8dQ2nedhoIDxoOm5Ro4pFd2KvJqbA==",
+ "version": "9.13.1",
+ "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.13.1.tgz",
+ "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==",
"dependencies": {
- "@intlify/core-base": "9.11.0",
- "@intlify/shared": "9.11.0",
+ "@intlify/core-base": "9.13.1",
+ "@intlify/shared": "9.13.1",
"@vue/devtools-api": "^6.5.0"
},
"engines": {
@@ -1960,27 +1960,27 @@
"integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
},
"@intlify/core-base": {
- "version": "9.11.0",
- "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.11.0.tgz",
- "integrity": "sha512-cveOqAstjLZIiyatcP/HrzrQ87cZI8ScPQna3yvoM8zjcjcIRK1MRvmxUNlPdg0rTNJMZw7rixPVM58O5aHVPA==",
+ "version": "9.13.1",
+ "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.13.1.tgz",
+ "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==",
"requires": {
- "@intlify/message-compiler": "9.11.0",
- "@intlify/shared": "9.11.0"
+ "@intlify/message-compiler": "9.13.1",
+ "@intlify/shared": "9.13.1"
}
},
"@intlify/message-compiler": {
- "version": "9.11.0",
- "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.11.0.tgz",
- "integrity": "sha512-x31Gl7cscnoI4UUY1yaIy8e7vVMVW1VVlTXZz4SIHKqoSEUkfmgqK8NAx1e7RcoHEbICR7uyCbud0ZL1s4OGXQ==",
+ "version": "9.13.1",
+ "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.13.1.tgz",
+ "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==",
"requires": {
- "@intlify/shared": "9.11.0",
+ "@intlify/shared": "9.13.1",
"source-map-js": "^1.0.2"
}
},
"@intlify/shared": {
- "version": "9.11.0",
- "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.11.0.tgz",
- "integrity": "sha512-KHSNgi7sRjmSm7aD8QH8WFt9VfKaekJuJ473opbJlkGY3EDnDUU8ikIhG8PbasQbgNvbY3m3tWNGqk2omIdwMA=="
+ "version": "9.13.1",
+ "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.13.1.tgz",
+ "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ=="
},
"@jridgewell/sourcemap-codec": {
"version": "1.4.15",
@@ -2771,12 +2771,12 @@
}
},
"vue-i18n": {
- "version": "9.11.0",
- "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.11.0.tgz",
- "integrity": "sha512-vU4gY6lu8Pdfs9BgKGiDAJmFDf88cceR47KcSB0VW4xJzUrXR/7qwqM7A8dQ2nedhoIDxoOm5Ro4pFd2KvJqbA==",
+ "version": "9.13.1",
+ "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.13.1.tgz",
+ "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==",
"requires": {
- "@intlify/core-base": "9.11.0",
- "@intlify/shared": "9.11.0",
+ "@intlify/core-base": "9.13.1",
+ "@intlify/shared": "9.13.1",
"@vue/devtools-api": "^6.5.0"
}
},
diff --git a/UI-Project/package.json b/UI-Project/package.json
index b816c15..6cade56 100644
--- a/UI-Project/package.json
+++ b/UI-Project/package.json
@@ -18,7 +18,7 @@
"sortablejs": "^1.15.1",
"sweetalert2": "^11.10.7",
"vue": "^3.3.4",
- "vue-i18n": "^9.11.0",
+ "vue-i18n": "^9.13.1",
"vue-router": "^4.2.4",
"vxe-table": "^4.5.15",
"xe-utils": "^3.5.14",
diff --git a/UI-Project/src/lang/LanguageMixin.js b/UI-Project/src/lang/LanguageMixin.js
index 39a6488..5a90328 100644
--- a/UI-Project/src/lang/LanguageMixin.js
+++ b/UI-Project/src/lang/LanguageMixin.js
@@ -1,14 +1,14 @@
export default {
- created() {
- const localStorageLang = localStorage.getItem('preferredLanguage');
- if (localStorageLang) {
- this.$i18n.locale = localStorageLang;
- }
- },
- methods: {
- switchLanguage(lang) {
- this.$i18n.locale = lang;
- localStorage.setItem('preferredLanguage', lang);
- }
+ created() {
+ const localStorageLang = localStorage.getItem('preferredLanguage');
+ if (localStorageLang) {
+ this.$i18n.locale = localStorageLang;
}
- }
\ No newline at end of file
+ },
+ methods: {
+ switchLanguage(lang) {
+ this.$i18n.locale = lang;
+ localStorage.setItem('preferredLanguage', lang);
+ }
+ }
+}
\ No newline at end of file
diff --git a/UI-Project/src/lang/i18n.js b/UI-Project/src/lang/i18n.js
index c582ee5..080bd7c 100644
--- a/UI-Project/src/lang/i18n.js
+++ b/UI-Project/src/lang/i18n.js
@@ -1,9 +1,9 @@
// i18n.js
-
+
import { createI18n } from 'vue-i18n'
import zhCn from './lang/locales/zh-CN.json'
import enUs from './lang/locales/en-US.json'
-
+
const i18n = createI18n({
locale: 'zh-CN', // 璁剧疆榛樿璇█
messages: {
@@ -11,5 +11,5 @@
'en-US': enUs
}
})
-
-export default i18n
+
+export default i18n
\ No newline at end of file
diff --git a/UI-Project/src/main.js b/UI-Project/src/main.js
index 41bf9c3..fe656ab 100644
--- a/UI-Project/src/main.js
+++ b/UI-Project/src/main.js
@@ -1,5 +1,5 @@
import './assets/main.css'
-
+
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
@@ -11,8 +11,8 @@
import VXETable from 'vxe-table'
import 'vxe-table/lib/style.css'
// import i18n from './lang/i18n'
-
-
+
+
const app = createApp(App)
const pinia = createPinia()
pinia.use(piniaPluginPersistedstate )
@@ -23,5 +23,5 @@
app.use(ElementPlus,{
locale: zhCn,
})
-
-app.mount('#app')
+
+app.mount('#app')
\ No newline at end of file
diff --git a/UI-Project/src/views/Caching/cachingbefore.vue b/UI-Project/src/views/Caching/cachingbefore.vue
index 5d9d157..284a33c 100644
--- a/UI-Project/src/views/Caching/cachingbefore.vue
+++ b/UI-Project/src/views/Caching/cachingbefore.vue
@@ -65,13 +65,18 @@
);
if (confirmResult === 'confirm') {
// 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
- const deleteResponse = await request.post("/cacheGlass/edgStorageCage/edgStorageCageGlass", {
- id: row.id,
+ var url="/cacheGlass/edgStorageCage/edgStorageCageGlass?edgStorageCageId="+row.id;
+ console.log(url);
+ const deleteResponse = await request.post(url, {
esdId: row.esdId
})
- if (response.code == 200) {
- // 鍒犻櫎鎴愬姛锛屾偍鍙互鏍规嵁闇�瑕佸鐞嗘垚鍔熺殑鎯呭喌
- alert('鍒犻櫎鎴愬姛锛�');
+ if (response.code == 200) {
+ // 鍒犻櫎鎴愬姛锛屾偍鍙互鏍规嵁闇�瑕佸鐞嗘垚鍔熺殑鎯呭喌
+ // ElMessage({
+ // type: 'success',
+ // message: '鍒犻櫎鎴愬姛锛�',
+ // })
+ ElMessage.success(response.message);
} else {
// 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛
alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
diff --git a/UI-Project/src/views/LoginView.vue b/UI-Project/src/views/LoginView.vue
index 366ed5a..40d2d9b 100644
--- a/UI-Project/src/views/LoginView.vue
+++ b/UI-Project/src/views/LoginView.vue
@@ -5,21 +5,21 @@
import {ElMessage} from 'element-plus'
import request from '@/utils/request'
import userInfo from '@/stores/userInfo'
-
+
const store = userInfo()
let ruleFormRef = ref<FormInstance>()
const router = useRouter()
const route = useRoute()
-
+
const userForm = reactive({
userName: '',
password: '',
})
-
+
if (typeof route.query.id != 'undefined') {
userForm.userId = <string>route.query.id
}
-
+
const validateUser = (rule: any, value: any, callback: any) => {
if (value === '') {
callback(new Error('璇疯緭鍏ヤ綘鐨勮处鍙�'))
@@ -27,7 +27,7 @@
callback()
}
}
-
+
const validatePass = (rule: any, value: any, callback: any) => {
if (value === '') {
callback(new Error('璇疯緭鍏ヤ綘鐨勫瘑鐮�'))
@@ -35,12 +35,12 @@
callback()
}
}
-
+
const rules = reactive<FormRules<typeof userForm>>({
userId: [{validator: validateUser, trigger: 'blur'}],
pass: [{validator: validatePass, trigger: 'blur'}],
})
-
+
//鐧婚檰鏂规硶
const submitForm = (formEl: FormInstance | undefined) => {
if (!formEl) return
@@ -54,7 +54,7 @@
if (res['code'] == 200) {
store.$patch({user: res.data})
console.log(res.data)
-
+
router.push('/main')
ElMessage.success(`鐧诲綍鎴愬姛`)
} else {
@@ -77,16 +77,16 @@
}
})
}
-
+
function register() {
router.push({
path: '/register',
})
}
-
+
let loginLoadings = ref(false)
let registerLoadings = ref(false)
-
+
const keyDown = (e) => {
// 鍥炶溅鍒欐墽琛岀櫥褰曟柟娉� enter閿殑ASCII鏄�13
if (e.keyCode == 13 || e.keyCode == 100) {
@@ -100,7 +100,7 @@
window.removeEventListener('keydown', keyDown)
})
</script>
-
+
<template>
<div class="mainDiv">
<div id="main-login">
@@ -155,29 +155,29 @@
@click="register"
plain>娉ㄥ唽
</el-button>
-
+
</el-form-item>
</div>
</el-form>
</div>
</div>
-
+
</div>
</template>
-
+
<style scoped>
.mainDiv {
overflow: hidden;
min-width: 718px;
background-image: url('../../src/assets/background.jpg');
}
-
+
#main-login {
margin: 150px auto 0 auto;
height: 70vh;
width: 80vw;
}
-
+
#img-div {
width: 55%;
height: 100%;
@@ -186,12 +186,12 @@
align-items: center;
float: left;
}
-
+
#img-pic {
max-height: 90%;
max-width: 100%;
}
-
+
#div-login {
margin-top: 5%;
/* margin-top: 20%; */
@@ -204,22 +204,22 @@
border-radius: 4px;
box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0), 0 6px 5px 0 rgba(0, 0, 0, 0.19);
}
-
+
#center {
margin-top: -30px;
}
-
+
.el-form {
width: 60%;
margin: 20% auto auto;
}
-
+
#submitForm {
display: flex;
justify-content: space-evenly;
margin-top: 2rem;
}
-
+
:deep(.el-form-item__content) {
flex: unset;
}
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index 49db7d7..6164565 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -22,9 +22,9 @@
// import http from "@/http/index";
let ruleForm = ref({
- // engineeringId: '',
+ projectNo: '',
workstationId: '',
- patternHeigth: '',
+ patternHeight: '',
patternWidth: '',
filmsId: '',
patternThickness: '',
@@ -61,27 +61,52 @@
ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
}
};
-request.get("/loadGlass/LoadGlass/list").then((res) => {
- if (res.code == 200) {
- console.log(res.data);
- tableDataa.value = res.data
- window.localStorage.setItem('patternWidth', res.data.patternWidth)
- window.localStorage.setItem('workstationId', res.data.workstationId)
- let workstationIda = window.localStorage.getItem('workstationId')
- let patternWidth = window.localStorage.getItem('patternWidth')
- if (patternWidth !== '' || workstationIda == '1') {
- flake.value = true
- } else if (patternWidth !== '' || workstationIda == '2') {
- flakea.value = true
+ request.get("/loadGlass/LoadGlass/list").then((res) => {
+ if (res.code === 200) {
+ console.log(res.data);
+ tableDataa.value = res.data;
+
+ if (tableDataa.value.length === 2) {
+ if (tableDataa.value[0].patternWidth > 0) {
+ flake.value = true;
+ }
+
+ if (tableDataa.value[1].patternWidth > 0) {
+ flakea.value = true;
}
- } else {
- ElMessage.warning(res.msg)
- // router.push("/login")
- }
- });
+ }
+ } else {
+ ElMessage.warning(res.msg);
+ // router.push("/login");
+ }
+ });
+// request.get("/loadGlass/LoadGlass/list").then((res) => {
+// window.localStorage.setItem('patternWidth', res.data.patternWidth)
+// window.localStorage.setItem('workstationId', res.data.workstationId)
+// if (res.code == 200) {
+// console.log(res.data);
+// tableDataa.value = res.data
+// console.log(res.data.patternWidth);
+
+// let workstationId = window.localStorage.getItem('workstationId')
+// let patternWidth = window.localStorage.getItem('patternWidth')
+// if (patternWidth !== '' || workstationId == '1') {
+// flake.value = true
+// } else if (patternWidth !== '' || workstationId == '2') {
+// flakea.value = true
+// }
+// } else {
+// ElMessage.warning(res.msg)
+// // router.push("/login")
+// }
+// });
//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
const titleSelectJson = ref({
processType: [],
+
+})
+const titleSelectJsona = ref({
+ processTypea: [],
})
// const getBasicData = ref({
@@ -108,6 +133,7 @@
};
// 鍝嶅簲寮忔暟鎹�
const selectedProjectNo = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿
+const selectedProjectNoa = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿
const options = ref<any[]>([]); // 涓嬫媺閫夐」鍒楄〃
// 璋冪敤鎺ュ彛鑾峰彇閫夐」鏁版嵁鐨勫嚱鏁�
@@ -121,12 +147,6 @@
if (response.code == 200) {
titleSelectJson.value.processType = response.data;
-
- // titleSelectJson.value.processType = response.data(item => ({
- // // options.value = response.data.data.map(item => ({
- // value: item.projectNo,
- // // label: item.id // 鍋囪鍚庣杩斿洖鐨勬暟鎹腑鏈� 瀛楁浣滀负鏄剧ず鏍囩
- // }));
console.log(response.data);
} else {
@@ -136,7 +156,22 @@
console.error('Error fetching options:', error);
}
};
-
+ // 寮�濮嬩笂鐗囦笅鎷夐��
+const fetchOptionsa = async (queryString: string) => {
+ try {
+ // 鍙戦�佽姹傚埌鍚庣鎺ュ彛
+ const response = await request.get('/loadGlass/engineering/engineering/selectTask');
+ if (response.code == 200) {
+ titleSelectJsona.value.processTypea = response.data;
+ console.log(response.data);
+
+ } else {
+ ElMessage.warning(response.data);
+ }
+ } catch (error) {
+ console.error('Error fetching options:', error);
+ }
+};
// 澶勭悊鐢ㄦ埛杈撳叆鍙樺寲鐨勬柟娉�
const handleInputChange = async (value: string) => {
if (value) {
@@ -145,13 +180,23 @@
options.value = []; // 娓呯┖閫夐」鍒楄〃
}
};
-
+ // 澶勭悊鐢ㄦ埛杈撳叆鍙樺寲鐨勬柟娉�
+const handleInputChangea = async (value: string) => {
+ if (value) {
+ await fetchOptionsa(value);
+ } else {
+ options.value = []; // 娓呯┖閫夐」鍒楄〃
+ }
+};
// 鍒濆鍖栧姞杞芥暟鎹紙濡傛灉闇�瑕侊級
onMounted(() => {
// 鍦ㄧ粍浠舵寕杞藉悗璋冪敤 fetchOptions('') 鏉ュ姞杞藉垵濮嬫暟鎹紙濡傛灉闇�瑕侊級
fetchOptions('');
});
-
+onMounted(() => {
+ // 鍦ㄧ粍浠舵寕杞藉悗璋冪敤 fetchOptions('') 鏉ュ姞杞藉垵濮嬫暟鎹紙濡傛灉闇�瑕侊級
+ fetchOptionsa('');
+});
// const billall = () => {
// request.post("/loadGlass/optimizeProject/listByState", requestData)
// .then((res: any) => {
@@ -164,23 +209,23 @@
// }
const user = ref('');
// 瀹氫箟琛ㄥご涓婁紶鏁版嵁
-let titleUploadData = ref({
- projectNo:'',
-})
-// const engineeringId = ref('');
+// let titleUploadData = ref({
+// projectNo:'',
+// })
+const projectNo = ref('');
const workstationId = ref('');
-const patternHeigth = ref('');
+const patternHeight = ref('');
const patternWidth = ref('');
const filmsId = ref('');
const patternThickness = ref('');
const number = ref('');
-
// 娣诲姞
const handleConfirm = async () => {
try {
const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
+ id: workstationId.value,
workstationId: workstationId.value,
- patternHeigth: patternHeigth.value,
+ patternHeight: patternHeight.value,
patternWidth: patternWidth.value,
filmsId: filmsId.value,
patternThickness: patternThickness.value,
@@ -190,6 +235,7 @@
if (response.code == 200) {
// 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
ElMessage.success(response.message);
+ window.location.reload()
add.value = false;
window.localStorage.setItem('workstationId', response.data.workstationId)
let workstationId = window.localStorage.getItem('workstationId')
@@ -212,7 +258,7 @@
try {
const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
workstationId: workstationId.value,
- patternHeigth: 0,
+ patternHeight: 0,
patternWidth: 0,
filmsId: "",
patternThickness: 0,
@@ -239,30 +285,20 @@
console.error(error);
}
};
-// 寮�濮嬩笂鐗�
-const handle = async () => {
+// 閫夋嫨宸ョ▼纭
+const handleup = async () => {
try {
- let engineeringId = window.localStorage.getItem('engineeringId')
-console.log(engineeringId);
-if (engineeringId !== '') {
- const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
- engineeringId: engineeringId,
- state: 1,
+ const response = await request.post('/loadGlass/up-patten-usage/saveUpPattenUsage', {
+ engineerId: selectedProjectNo.value,
})
if (response.code == 200) {
// 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
ElMessage.success(response.message);
- blind.value = false;
+ window.location.reload()
+ dialogFormVisible.value = false;
} else {
// 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
ElMessage.error(response.msg);
- }
- }
- else {
- ElMessage({
- type: 'info',
- message: '宸ョ▼鍙蜂笉鑳戒负绌猴紒',
- })
}
}
catch (error) {
@@ -270,6 +306,58 @@
console.error(error);
}
}
+// 寮�濮嬩笂鐗�
+const handle = async () => {
+ try {
+ const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
+ engineerId: selectedProjectNoa.value,
+ state: 1,
+ })
+ if (response.code == 200) {
+ // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+ ElMessage.success(response.message);
+ window.location.reload()
+ blind.value = false;
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.msg);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+// const handle = async () => {
+// try {
+// let engineeringId = window.localStorage.getItem('engineeringId')
+// console.log(engineeringId);
+// if (engineeringId !== '') {
+// const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
+// engineeringId: engineerId.va,
+// state: 1,
+// })
+// if (response.code == 200) {
+// // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+// ElMessage.success(response.message);
+// blind.value = false;
+// } else {
+// // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+// ElMessage.error(response.msg);
+// }
+// }
+// else {
+// ElMessage({
+// type: 'info',
+// message: '宸ョ▼鍙蜂笉鑳戒负绌猴紒',
+// })
+// }
+// }
+// catch (error) {
+// // 澶勭悊閿欒
+// console.error(error);
+// }
+// }
// 鏆傚仠
const handlea = async () => {
try {
@@ -283,6 +371,7 @@
if (response.code == 200) {
// 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
ElMessage.success(response.message);
+ window.location.reload()
blinda.value = false;
} else {
// 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
@@ -301,7 +390,7 @@
console.error(error);
}
}
-// 寮�濮嬩笂鐗�
+// 鍋滄浠诲姟
const handleb = async () => {
try {
let engineeringId = window.localStorage.getItem('engineeringId')
@@ -314,6 +403,7 @@
if (response.code == 200) {
// 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
ElMessage.success(response.message);
+ window.location.reload()
blindb.value = false;
} else {
// 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
@@ -333,7 +423,24 @@
}
}
onMounted(fetchTableData);
-
+function getStatusText(state: number) {
+ switch (state) {
+ case 0:
+ return '绛夊緟涓�';
+ case 1:
+ case 2:
+ return '涓婄墖涓�';
+ case 100:
+ return '宸插畬鎴�';
+ default:
+ return '鏈煡鐘舵��';
+ }
+}
+
+function getStatusType(state: number) {
+ // 杩欓噷鍋囪鍙湁100鏃剁被鍨嬩笉鏄痵uccess锛屽叾浠栭兘鏄痵uccess
+ return state === 100 ? 'info' : 'success'; // 鏍规嵁闇�瑕佽皟鏁寸被鍨�
+}
// const open = () => {
// ElMessageBox.confirm(
// '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
@@ -462,15 +569,39 @@
min-width="80"
prop="state"
>
- <template #default="scope">
- <el-tag type="success" >{{ scope.row.state==1?"灏辩华":"鏈氨缁�" }}</el-tag>
- </template>
+ <template #default="scope">
+ <el-tag :type="getStatusType(scope.row.state)">
+ {{ getStatusText(scope.row.state) }}
+ </el-tag>
+ </template>
+ <!-- <template #default="scope">
+ <el-tag type="success" >{{ scope.row.state==0?"绛夊緟涓�":"涓婄墖涓�" }}</el-tag>
+ </template> -->
</el-table-column>
</el-table>
</div>
</el-card>
- <el-dialog v-model="blind" top="30vh" width="25%" title="鏄惁寮�濮嬩笂鐗�?" >
+ <el-dialog v-model="blind" top="24vh" width="30%" title="鏄惁寮�濮嬩笂鐗囷紵" >
+ <div style="margin-left: 50px;margin-bottom: 10px;">
+ <el-form-item label="宸ョ▼鍙凤細" :required="true">
+ <el-select
+ v-model="selectedProjectNoa"
+ filterable
+ clearable
+ placeholder="璇烽�夋嫨宸ョ▼"
+ style="width: 220px"
+ @input="handleInputChangea"
+ >
+ <el-option
+ v-for="item in titleSelectJsona['processTypea']"
+ :key="item.id"
+ :label="item.engineerId"
+ :value="item.engineerId"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
<template #footer>
<div id="dialog-footer">
<el-button type="primary" @click="handle">
@@ -480,6 +611,16 @@
</div>
</template>
</el-dialog>
+ <!-- <el-dialog v-model="blind" top="30vh" width="25%" title="鏄惁寮�濮嬩笂鐗�?" >
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="handle">
+ 纭
+ </el-button>
+ <el-button @click="blind = false">鍙栨秷</el-button>
+ </div>
+ </template>
+ </el-dialog> -->
<el-dialog v-model="blinda" top="30vh" width="25%" title="鏄惁鏆傚仠?" >
<template #footer>
<div id="dialog-footer">
@@ -510,7 +651,7 @@
:header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
>
<el-table-column prop="patternWidth" align="center" label="瀹�" min-width="80" />
- <el-table-column prop="patternHeigth" align="center" label="闀�" min-width="80" />
+ <el-table-column prop="patternHeight" align="center" label="闀�" min-width="80" />
<el-table-column prop="filmsId" align="center" label="鑶滅郴" min-width="80" />
<el-table-column prop="number" align="center" label="鏁伴噺" min-width="80" />
<el-table-column fixed="right" label="鎿嶄綔" align="center" width="150">
@@ -531,7 +672,7 @@
<div id="dt" style="font-size: 15px;">
<div>
<el-form-item label="闀匡細" :required="true" style="width: 14vw">
- <el-input v-model="patternHeigth" autocomplete="off" />
+ <el-input v-model="patternHeight" autocomplete="off" />
</el-form-item></div></div>
</el-col>
<el-col :span="9">
@@ -611,20 +752,11 @@
:value="item.projectNo"
/>
</el-select>
- <!-- <el-select v-model="getBasicData.projectNo" clearable placeholder="璇烽�夋嫨宸ョ▼" style="width: 220px"
- >
- <el-option
- v-for="item in titleSelectJson['processType']"
- :key="item.id"
- :label="item.projectNo"
- :value="item.projectNo"
- />
- </el-select> -->
</el-form-item>
</div>
<template #footer>
<div id="dialog-footer">
- <el-button type="primary" @click="dialogFormVisible = false">
+ <el-button type="primary" @click="handleup">
纭
</el-button>
<el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindication.vue b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
index 72b46a9..bf305e6 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindication.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
@@ -4,7 +4,7 @@
<svg width="500" height="500" xmlns="http://www.w3.org/2000/svg">
<g stroke="null" id="Layer_1">
<!-- 浣跨敤 v-for 寰幆娓叉煋鏁版嵁 -->
- <g v-for="(rack, index) in racks" :key="index">
+ <g v-for="(rack, index) in racks" :key="index" :data="tableData">
<rect
:x="rack.x"
:y="rack.y"
@@ -31,21 +31,28 @@
</div>
</template>
-<script setup>
+<script setup>
+import { ref, watchEffect } from 'vue';
import Swal from 'sweetalert2'
-
-const racks = [
+import request from "@/utils/request";
+const racks = ref([
{ x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456' } },
- { x: 50, y: 270, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 20, width: 10, fillColor: 'yellow', content: 'NG1234567' } },
- { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 30, width: 20, fillColor: 'yellow', content: 'NG12345678' } },
- { x: 280, y: 270, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 35, width: 23, fillColor: 'yellow', content: 'NG123456910' } },
- { x: 140, y: 420, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 30, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }
-];
+
+ { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG12345678' } },
+
+ { x: 140, y: 420, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }
+
+]);
+
+watchEffect(() => {
+ // 瑙﹀彂鏁版嵁鍙樺寲鏃堕噸鏂版覆鏌�
+});
+
const calculateItemXPosition = (rack, item, index) => {
- if (index === 0 || index === 1) {
+ if (index === 0 ) {
return rack.x;
- } else if (index === 2 || index === 3) {
+ } else if (index === 1 ) {
return rack.x + rack.width - item.width;
} else {
return rack.x + (rack.width - item.width) / 2;
@@ -53,15 +60,61 @@
};
const calculateItemYPosition = (rack, item, index) => {
- if (index === 0 || index === 1) {
+ if (index === 0 ) {
return rack.y + (rack.height - item.height) / 2;
- } else if (index === 2 || index === 3) {
+ } else if (index === 1) {
return rack.y + (rack.height - item.height) / 2;
} else {
return rack.y + rack.height - item.height;
}
};
+
+const fetchFlowCardId = async () => {
+ try {
+ const response = await request.get('unLoadGlass/downWorkStation/getwo');
+
+ if (response.code === 200) {
+ console.log(response);
+ // 閬嶅巻鍝嶅簲鏁版嵁骞舵浛鎹acks鏁扮粍涓殑item灞炴��
+ response.data.forEach((itemData, index) => {
+ if (index < racks.value.length) {
+ const rack = racks.value[index];
+ const newItem = {
+ content: itemData.item.content,
+ fillColor: itemData.item.fillColor,
+ width: itemData.item.width === 0 ? "" : 10,
+ height: itemData.item.height === 0 ? "" : 90
+ };
+
+ if (index === 2 && itemData.item.width > 0) {
+ newItem.width = 100;
+ newItem.height = 20;
+ }
+
+ rack.item = newItem;
+
+ console.log(racks.value); // 鎵撳嵃鏇存柊鍚庣殑 racks 鍊�
+ }
+});
+
+
+
+
+
+ } else {
+ ElMessage.error(response.msg);
+ }
+ } catch (error) {
+ console.error(error);
+ }
+};
+
+fetchFlowCardId()
+// setTimeout(fetchFlowCardId(),1000);
+//setInterval(fetchFlowCardId, 2000)
+
+
const showCustomAlert = (content) => {
var str="鏋跺彿 : 111\n" +
"闀� : 111\n" +
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
index b340c83..e5f562f 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
@@ -22,7 +22,7 @@
:height="rack.item.height"
:fill="rack.item.fillColor"
/>
- <text :x="rack.x + rack.width / 2" :y="rack.y - 10" text-anchor="middle">{{ index + 6 }}鍙峰伐浣�</text>
+ <text :x="rack.x + rack.width / 2" :y="rack.y - 10" text-anchor="middle">{{ index + 4 }}鍙峰伐浣�</text>
<text :x="rack.x + rack.width / 2" :y="rack.y + rack.height + 20" text-anchor="middle">{{ rack.item.content }}</text>
</g>
</g>
@@ -32,20 +32,27 @@
</template>
<script setup>
+import { ref, watchEffect } from 'vue';
import Swal from 'sweetalert2'
+import request from "@/utils/request";
-const racks = [
+const racks = ref([
{ x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456' } },
- { x: 50, y: 270, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 20, width: 10, fillColor: 'yellow', content: 'NG1234567' } },
- { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 30, width: 20, fillColor: 'yellow', content: 'NG12345678' } },
- { x: 280, y: 270, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 35, width: 23, fillColor: 'yellow', content: 'NG123456910' } },
- { x: 140, y: 420, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 30, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }
-];
+
+ { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG12345678' } },
+
+ { x: 140, y: 420, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }
+
+]);
+watchEffect(() => {
+ // 瑙﹀彂鏁版嵁鍙樺寲鏃堕噸鏂版覆鏌�
+});
+// 璁$畻鍏冪礌浣嶇疆鐨勫嚱鏁�
const calculateItemXPosition = (rack, item, index) => {
- if (index === 0 || index === 1) {
+ if (index === 0) {
return rack.x;
- } else if (index === 2 || index === 3) {
+ } else if (index === 1) {
return rack.x + rack.width - item.width;
} else {
return rack.x + (rack.width - item.width) / 2;
@@ -53,32 +60,75 @@
};
const calculateItemYPosition = (rack, item, index) => {
- if (index === 0 || index === 1) {
+ if (index === 0) {
return rack.y + (rack.height - item.height) / 2;
- } else if (index === 2 || index === 3) {
+ } else if (index === 1) {
return rack.y + (rack.height - item.height) / 2;
} else {
return rack.y + rack.height - item.height;
}
};
-const showCustomAlert = (content) => {
- var str="鏋跺彿 : 111\n" +
- "闀� : 111\n" +
- "瀹� : 111\n" +
- "鍘� : 111\n"+
- "鐜荤拑ID : 111\n"+
- "鑶滅郴 : 111\n";
- Swal.fire({
- title: '鐜荤拑淇℃伅',
- html: '<pre>' + str + '</pre>',
- customClass: {
- popup: 'format-pre'
+const fetchFlowCardId = async () => {
+ try {
+ const response = await request.get('unLoadGlass/downWorkStation/getwo2');
+
+ if (response.code === 200) {
+ console.log(response);
+ // 閬嶅巻鍝嶅簲鏁版嵁骞舵浛鎹acks鏁扮粍涓殑item灞炴��
+ response.data.forEach((itemData, index) => {
+ if (index < racks.value.length) {
+ const rack = racks.value[index];
+ const newItem = {
+ content: itemData.item.content,
+ fillColor: itemData.item.fillColor,
+ width: itemData.item.width === 0 ? "" : 10,
+ height: itemData.item.height === 0 ? "" : 90
+ };
+
+ if (index === 2 && itemData.item.width > 0) {
+ newItem.width = 100;
+ newItem.height = 20;
}
- });
+
+ rack.item = newItem;
+
+ console.log(racks.value); // 鎵撳嵃鏇存柊鍚庣殑 racks 鍊�
+ }
+});
+
+
+
+
+
+ } else {
+ ElMessage.error(response.msg);
+ }
+ } catch (error) {
+ console.error(error);
+ }
};
+fetchFlowCardId()
+
+// const showCustomAlert = (content) => {
+// var str="鏋跺彿 : 111\n" +
+// "闀� : 111\n" +
+// "瀹� : 111\n" +
+// "鍘� : 111\n"+
+// "鐜荤拑ID : 111\n"+
+// "鑶滅郴 : 111\n";
+
+// Swal.fire({
+// title: '鐜荤拑淇℃伅',
+// html: '<pre>' + str + '</pre>',
+// customClass: {
+// popup: 'format-pre'
+// }
+// });
+// };
+
const showRectInfo = (rectInfo) => {
const content = rectInfo.item.content;
showCustomAlert(content);
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index 6f605ad..d4a17c1 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -9,6 +9,7 @@
import Landingindication from "./Landingindication.vue";
import Landingindicationtwo from "./Landingindicationtwo.vue";
import request from "@/utils/request";
+
const dialogFormVisiblea = ref(false)
@@ -75,7 +76,7 @@
const workstationId = ref('');
const flowCardId = ref('');
const flowCardOptions = ref([]);
-
+const tableData = reactive([]);
// 鏂规硶
const handleSelectionChange = () => {
@@ -121,7 +122,9 @@
if (response.code == 200) {
// 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
console.log('缁戝畾鎴愬姛');
+
ElMessage.success(response.message);
+ updatePageData();
dialogFormVisiblea.value = false;
} else {
// 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
@@ -131,6 +134,16 @@
// 澶勭悊閿欒
console.error(error);
}
+};
+
+
+const updatePageData = () => {
+ // 鍋囪浣犵殑椤甸潰涓婃湁涓�涓悕涓� tableData 鐨� Vue 缁勪欢
+ // 浣犲彲浠ョ洿鎺ユ洿鏂� tableData 鐨勬暟鎹�
+ fetchTableData()
+
+ // 浣跨敤 $forceUpdate() 寮哄埗鏇存柊缁勪欢
+
};
@@ -173,7 +186,7 @@
-const tableData = reactive([]);
+
// 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰
const fetchTableData = async () => {
diff --git a/hangzhoumesParent/common/pom.xml b/hangzhoumesParent/common/pom.xml
index 0a5605a..951b4ea 100644
--- a/hangzhoumesParent/common/pom.xml
+++ b/hangzhoumesParent/common/pom.xml
@@ -167,9 +167,22 @@
<version>1.4.2</version>
</dependency>
+ <!--寮曞叆redis,鎺掗櫎lettuce鐨勫紩鐢�-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>io.lettuce</groupId>
+ <artifactId>lettuce-core</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <!-- 寮曞叆Jedis瀹㈡埗绔�-->
+ <dependency>
+ <groupId>redis.clients</groupId>
+ <artifactId>jedis</artifactId>
</dependency>
<dependency>
diff --git a/hangzhoumesParent/common/servicebase/pom.xml b/hangzhoumesParent/common/servicebase/pom.xml
index e7f1411..07e9a43 100644
--- a/hangzhoumesParent/common/servicebase/pom.xml
+++ b/hangzhoumesParent/common/servicebase/pom.xml
@@ -16,5 +16,12 @@
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
+ <dependencies>
+ <dependency>
+ <groupId>com.microsoft.sqlserver</groupId>
+ <artifactId>sqljdbc4</artifactId>
+ <version>4.0</version>
+ </dependency>
+ </dependencies>
</project>
\ No newline at end of file
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 51a945b..2e03df0 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
@@ -33,4 +33,21 @@
public static final Integer GLASS_STATE_TAKE = 200;
public static final Integer A10_OUT_TARGET_DAMAGE = 201;
+ /**
+ * 鍗у紡鐞嗙墖绗艰鎯呰〃鐜荤拑鐘舵��
+ * 杩涚墖浠诲姟1
+ * 鍑虹墖浠诲姟2
+ */
+ public static final Integer GLASS_CACHE_TYPE_IN = 1;
+ public static final Integer GLASS_CACHE_TYPE_OUT = 2;
+
+ /**
+ * 纾ㄨ竟浠诲姟鐜荤拑鐘舵��
+ * 杩涚墖浠诲姟1
+ * 鍑虹墖浠诲姟2
+ */
+ public static final Integer EDG_GLASS_BEFORE = 0;
+ public static final Integer EDG_GLASS_START = 1;
+ public static final Integer EDG_GLASS_SUCCESS = 2;
+
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/controller/EngineeringController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/controller/EngineeringController.java
new file mode 100644
index 0000000..97571fa
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/controller/EngineeringController.java
@@ -0,0 +1,47 @@
+package com.mes.engineering.controller;
+
+
+import com.mes.engineering.entity.Engineering;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.mes.engineering.service.EngineeringService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-22
+ */
+@RestController
+@Slf4j
+@RequestMapping("/engineering/engineering")
+public class EngineeringController {
+ @Autowired
+ private EngineeringService engineeringService;
+
+ @ApiOperation("寮�濮�/鏆傚仠浠诲姟/浼犻�掑伐绋嬪彿鍜岀姸鎬�,寮�濮嬫槸1 鏆傚仠鏄�0")
+ @PostMapping("/changeTask") //璋冪敤涓婄墖浠诲姟
+ @ResponseBody
+ public Result <Boolean> changeTask(@RequestBody Engineering engineering) {
+ boolean work=engineeringService.changeTask(engineering.getEngineerId(),engineering.getState());
+ log.info("StartorStop:{},{}", work,engineering);
+ return Result.build(200, engineering.getEngineerId(),work);
+ }
+
+ @ApiOperation("鏌ヨ鍙互涓婄墖鐨勫伐绋嬪彿")
+ @GetMapping("/selectTask") //璋冪敤涓婄墖浠诲姟
+ @ResponseBody
+ public Result <List<Engineering>> selectTask() {
+ List<Engineering> engineering=engineeringService.selectTask();
+ log.info("鍙鍙栦换鍔¤繑鍥�:{}", engineering);
+ return Result.build(200, "",engineering);
+ }
+}
+
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/entity/Engineering.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/Engineering.java
similarity index 97%
rename from hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/entity/Engineering.java
rename to hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/Engineering.java
index 4e68183..586a7b3 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/entity/Engineering.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/Engineering.java
@@ -89,7 +89,7 @@
/**
* 鑶滅郴id
*/
- private Integer filmsId;
+ private String filmsId;
/**
* 澶囨敞
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/OptimizeEngineering.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/OptimizeEngineering.java
new file mode 100644
index 0000000..38b62f7
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/OptimizeEngineering.java
@@ -0,0 +1,78 @@
+package com.mes.engineering.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author SNG-010
+ */
+@Setter
+@Getter
+public class OptimizeEngineering {
+
+ // Getter methods
+ // Setter methods
+ /**
+ * 宸ョ▼鍙�
+ */
+ private String projectNo;
+
+ /**
+ * 宸ョ▼鍚�
+ */
+ private String projectName;
+
+ /**
+ * 骞冲潎鍒╃敤鐜�
+ */
+ private Double avgCutPct;
+
+ /**
+ * 鏈夋晥鍒╃敤鐜�
+ */
+ private Double validCutPct;
+
+ /**
+ * 灏剧墖鍒╃敤鐜�
+ */
+ private Double lastCutPct;
+
+ /**
+ * 鐘舵��
+ */
+ private Integer state;
+
+ /**
+ * 灏忕墖鎬绘暟
+ */
+ private Integer glassTotal;
+ /**
+ * 灏忕墖鎬婚潰绉�
+ */
+ private Double glassTotalArea;
+ /**
+ * 璁″垝鍘熺墖鎬绘暟
+ */
+ private Integer rawStockQty;
+ /**
+ * 璁″垝鍘熺墖鎬婚潰绉�
+ */
+ private Double rawStockArea;
+ /**
+ * 瀹為檯鍘熺墖鎬绘暟
+ */
+ private Integer actualStockQty;
+ /**
+ * 瀹為檯鍘熺墖鎬婚潰绉�
+ */
+ private Double actualStockArea;
+ /**
+ * 鑶滅郴
+ */
+ private String glassType;
+ /**
+ * 澶囨敞
+ */
+ private String remark;
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java
similarity index 100%
rename from hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java
rename to hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml
similarity index 100%
rename from hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml
rename to hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/EngineeringService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/EngineeringService.java
new file mode 100644
index 0000000..3828c3b
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/EngineeringService.java
@@ -0,0 +1,40 @@
+package com.mes.engineering.service;
+
+import com.mes.engineering.entity.Engineering;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-22
+ */
+public interface EngineeringService extends IService<Engineering> {
+
+
+ /**
+ * 寮�濮�/鏆傚仠浠诲姟
+ * @return boolean
+ */
+ boolean changeTask(String projectId, Integer state);
+ /**
+ * 鏌ヨ閽㈠寲淇℃伅
+ * @return List<Engineering>
+ */
+ List<Engineering> selectEngineering(String engineeringId);
+ /**
+ * 淇濆瓨閽㈠寲淇℃伅
+ */
+ void saveEngineering(List<Engineering> engineering);
+ /**
+ * 鏌ヨ鏄惁鏈変笂鐗囦换鍔�
+ * @return Engineering
+ */
+ Engineering selectInitiate(Integer state);
+
+ List<Engineering> selectTask();
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
new file mode 100644
index 0000000..8dd2ddc
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
@@ -0,0 +1,111 @@
+package com.mes.engineering.service.impl;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.mapper.EngineeringMapper;
+import com.mes.engineering.service.EngineeringService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.mapper.OptimizeProjectMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-22
+ */
+@Service
+@Slf4j
+public class EngineeringServiceImpl extends ServiceImpl<EngineeringMapper, Engineering> implements EngineeringService {
+
+ @Autowired
+ OptimizeProjectMapper optimizeProjectMapper;
+ @Autowired
+ private EngineeringMapper engineeringMapper;
+
+ //寮�濮�/鏆傚仠浠诲姟
+ @Override
+ public boolean changeTask(String projectId, Integer state) {
+ //鏆傚仠姝e湪杩涜宸ョ▼
+ LambdaUpdateChainWrapper<Engineering> pauseWrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
+ pauseWrapper.set(Engineering::getState,0);
+ pauseWrapper.eq(Engineering::getState,1);
+ pauseWrapper.update();
+ //浣跨敤projectId浣滀负鏉′欢寮�濮嬪伐绋�
+ LambdaUpdateChainWrapper<Engineering> wrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
+ wrapper.set(Engineering::getState,state);
+ wrapper.eq(Engineering::getEngineerId,projectId);
+ return wrapper.update();
+ }
+
+ @Override
+ @DS("pp")
+ public List<Engineering> selectEngineering(String engineeringId) {
+ //鏌ヨ閽㈠寲宸ョ▼淇℃伅
+ List<OptimizeProject> optimizeEngineerings = null;
+ if (engineeringId != null) {
+ QueryWrapper<OptimizeProject> wrapper = new QueryWrapper<>();
+ wrapper.select("project_no,project_name,avg_cut_pct,valid_cut_pct,last_cut_pct,glass_total,glass_total_area,raw_stock_qty,raw_stock_area,glass_type,remark ")
+ .eq("project_no", engineeringId);
+ optimizeEngineerings = optimizeProjectMapper.selectList(wrapper);
+
+ }
+ List<Engineering> resultList=new ArrayList<>();
+// 閬嶅巻鏌ヨ缁撴灉璧嬪��
+ if (optimizeEngineerings != null) {
+ for (OptimizeProject map : optimizeEngineerings) {
+ // 鍒涘缓涓�涓柊鐨� OptimizeProject 瀵硅薄
+ Engineering engineering = new Engineering();
+ // 灏� Map 涓殑姣忎釜閿�煎鏄犲皠鍒� OptimizeProject 瀵硅薄鐨勭浉搴斿瓧娈典笂
+ engineering.setEngineerId( map.getProjectNo());//宸ョ▼id
+ engineering.setEngineerName( map.getProjectName());//宸ョ▼鍚嶇О
+ engineering.setAvgAvailability( map.getAvgCutPct());//骞冲潎浼樺寲鐜�
+ engineering.setValidAvailability( map.getValidCutPct());//鏈夋晥浼樺寲鐜�
+ engineering.setLastAvailability( map.getLastCutPct());//灏剧墖浼樺寲鐜�
+ engineering.setState(0);//鐘舵��
+ engineering.setGlassTotal( map.getGlassTotal());//灏忕墖鐜荤拑鎬绘暟
+ engineering.setGlassTotalArea( map.getGlassTotalArea());//灏忕墖鎬婚潰绉�
+ engineering.setPlanPatternTotal( map.getRawStockQty());//璁″垝鍘熺墖鎬绘暟
+ engineering.setPlanPatternTotalArea( map.getRawStockArea());//璁″垝鍘熺墖鎬婚潰绉�
+ engineering.setFilmsId( map.getGlassType());//鑶滅郴
+ engineering.setNotes( map.getRemark());//澶囨敞
+ // 灏嗘槧灏勫悗鐨勫璞℃坊鍔犲埌缁撴灉鍒楄〃涓�
+ resultList.add(engineering);
+ }
+ }
+ log.info("鏌ヨ鍑洪挗鍖栧伐绋嬮泦鍚堜繚瀛樺埌瀹炰綋绫粄}",resultList);
+ return resultList;
+ }
+
+ @Override
+ public void saveEngineering(List<Engineering> engineering) {
+ this.saveBatch(engineering);
+ //淇濆瓨閽㈠寲宸ョ▼淇℃伅
+ }
+
+ @Override
+ public Engineering selectInitiate(Integer state) {
+ //鏌ヨ鏄惁鏈夊紑濮嬩笂鐗囩殑宸ョ▼浠诲姟
+ QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
+ wrapper.eq("state", state);
+ return this.getOne(wrapper);
+ }
+
+ @Override
+ public List<Engineering> selectTask() {
+ //鏌ヨ鍙紑濮嬩换鍔$殑宸ョ▼
+ QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
+ wrapper.eq("state", 0);
+ return engineeringMapper.selectList(wrapper);
+ }
+
+}
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 dfa7b6e..f1fa50d 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
@@ -34,7 +34,7 @@
/**
* 娴佺▼鍗$幓鐠冪被鍨�
*/
- private Integer glassType;
+ private String glassType;
/**
* 瀹�
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 8f50981..622197a 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
@@ -15,7 +15,7 @@
/**
* 娴佺▼鍗″彿
*/
- private String projectId;
+ private String processId;
/**
* 宸ョ▼绉嶇被
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
index 746b5f4..f85f7f8 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
@@ -1,7 +1,6 @@
package com.mes.glassinfo.service;
import com.mes.glassinfo.entity.GlassInfo;
-import com.baomidou.mybatisplus.extension.service.IService;
import com.github.yulichang.base.MPJBaseService;
import java.util.List;
@@ -14,6 +13,14 @@
* @since 2024-04-29
*/
public interface GlassInfoService extends MPJBaseService<GlassInfo> {
-
+ /**
+ * 鏌ヨ灏忕墖琛�
+ * @return List<GlassInfo>
+ */
List<GlassInfo> selectGlassInfo(String engineeringId);
+ /**
+ * 淇濆瓨灏忕墖琛�
+ */
+ void saveGlassInfo(List<GlassInfo> glassinfo);
}
+
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 88838b9..25fada5 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
@@ -6,17 +6,14 @@
import com.mes.glassinfo.entity.OptimizeGlassinfo;
import com.mes.glassinfo.mapper.GlassInfoMapper;
import com.mes.glassinfo.service.GlassInfoService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.pp.entity.OptimizeProject;
import com.mes.pp.mapper.OptimizeProjectMapper;
-import com.mes.uppattenusage.entity.UpPattenUsage;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.github.yulichang.base.MPJBaseServiceImpl;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
/**
@@ -34,14 +31,13 @@
OptimizeProjectMapper optimizeProjectMapper;
@Override
@DS("pp")
-
public List<GlassInfo> selectGlassInfo(String engineeringId) {
List<OptimizeGlassinfo> optimizeGlassinfos=null;
if (engineeringId != null) {
optimizeGlassinfos = optimizeProjectMapper.selectJoinList(OptimizeGlassinfo.class, new MPJQueryWrapper<OptimizeProject>()
.select("b.process_id,t.type,b.width,b.height,t.glass_thickness,t.glass_type,b.p_width,b.p_height,b.stock_id,b.heat_layout_id,b.heat_layout_sort,b.x_axis,b.y_axis,b.project_no,b.glass_id")
.leftJoin("optimize_detail b on t.project_no=b.project_no")
- .eq("t.state",200)
+ .eq("t.state",100)
.eq("t.project_no", engineeringId));
}
@@ -54,10 +50,13 @@
GlassInfo glassInfo = new GlassInfo();
// 灏� Map 涓殑姣忎釜閿�煎鏄犲皠鍒� OptimizeGlassinfo 瀵硅薄鐨勭浉搴斿瓧娈典笂
glassInfo.setEngineerId(map.getProjectNo());
- glassInfo.setFlowCardId(map.getProjectId());
+ glassInfo.setFlowCardId(map.getProcessId());
glassInfo.setFilmsid(map.getGlassType());
+ glassInfo.setGlassType(map.getType());
glassInfo.setWidth(map.getWidth());
glassInfo.setHeight(map.getHeight());
+ glassInfo.setEdgWidth(map.getPWidth());
+ glassInfo.setEdgHeight(map.getPHeight());
glassInfo.setThickness(map.getGlassThickness());
glassInfo.setPatternSequence(map.getStockId());//
glassInfo.setTemperingLayoutId(map.getHeatLayoutId());//閽㈠寲鐗堝浘id
@@ -74,4 +73,9 @@
log.info("鏌ヨ鍑篻lassinfopro鐨勬暟鎹畕}:",optimizeGlassinfos);
return resultList;
}
+
+ @Override
+ public void saveGlassInfo(List<GlassInfo> glassinfo) {
+ this.saveBatch(glassinfo);
+ }
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeProjectController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeProjectController.java
index 222759c..38fc688 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeProjectController.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeProjectController.java
@@ -8,10 +8,7 @@
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -34,6 +31,7 @@
@ApiOperation("鏄剧ず宸ョ▼閫夋嫨淇℃伅")
@PostMapping("/listByState") //鏄剧ず宸ョ▼閫夋嫨淇℃伅
+ @ResponseBody
public Result<List<OptimizeProject>> listByState(@RequestBody OptimizeRequest optimizeRequest) {
log.info("灏嗚姹傚弬鏁板皝瑁呭湪璇锋眰绫婚噷闈�");
List<OptimizeProject> glass = optimizeProjectService.listByState(optimizeRequest);
@@ -41,16 +39,16 @@
return Result.build(200, "", glass);
}
- @ApiOperation("淇濆瓨宸ョ▼淇℃伅")
- @PostMapping("/saveProject") //鏄剧ず宸ョ▼閫夋嫨淇℃伅
- public Result<List<OptimizeProject>> saveProject(@RequestBody OptimizeRequest optimizeRequest) {
- log.info("鑾峰彇閫夋嫨濂界殑宸ョ▼id杩涜鏌ヨ鏁版嵁鍚庝繚瀛�");
- List<OptimizeProject> glass = optimizeProjectService.selectSaveProject(optimizeRequest);
- log.info("鏄剧ず宸ョ▼閫夋嫨淇℃伅鍚庝繚瀛樺埌upPattenUsage琛�:{}", glass);
- optimizeProjectService.insetupPattenUsage(glass);
- //void insetProject(glass);
- return Result.build(200, "", glass);
- }
+// @ApiOperation("淇濆瓨宸ョ▼淇℃伅")
+// @PostMapping("/saveProject") //鏄剧ず宸ョ▼閫夋嫨淇℃伅
+// public Result<List<OptimizeProject>> saveProject(@RequestBody OptimizeRequest optimizeRequest) {
+// log.info("鑾峰彇閫夋嫨濂界殑宸ョ▼id杩涜鏌ヨ鏁版嵁鍚庝繚瀛�");
+// List<OptimizeProject> glass = optimizeProjectService.selectSaveProject(optimizeRequest);
+// log.info("鏄剧ず宸ョ▼閫夋嫨淇℃伅鍚庝繚瀛樺埌upPattenUsage琛�:{}", glass);
+// optimizeProjectService.insetupPattenUsage(glass);
+// //void insetProject(glass);
+// return Result.build(200, "", glass);
+// }
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeProject.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeProject.java
index beb015c..032b7c5 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeProject.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeProject.java
@@ -87,7 +87,7 @@
/**
* 绗竴娆″钩鍧囧垏瑁佺巼
*/
- private String fristCutPct;
+ private Double fristCutPct;
/**
* 浣跨敤鐨勫師鏂欐暟
@@ -97,22 +97,22 @@
/**
* 浣跨敤鐨勫師鏂欓潰绉�
*/
- private String rawStockArea;
+ private Double rawStockArea;
/**
* 骞冲潎鍒囪鐜�
*/
- private String avgCutPct;
+ private Double avgCutPct;
/**
* 鏈夋晥鍒囪鐜�
*/
- private String validCutPct;
+ private Double validCutPct;
/**
* 灏剧墖鍒囪鐜�
*/
- private String lastCutPct;
+ private Double lastCutPct;
/**
* g娣锋帓绋嬪害
@@ -137,27 +137,27 @@
/**
* g涓婄墖瀹�
*/
- private Float loadWidth;
+ private Double loadWidth;
/**
* g涓婄墖闀�
*/
- private Float loadLength;
+ private Double loadLength;
/**
* x闂撮殧
*/
- private Float xSpace;
+ private Double xSpace;
/**
* y闂撮殧
*/
- private Float ySpace;
+ private Double ySpace;
/**
* g骞冲潎瑁呰浇鐜�
*/
- private Float loadRate;
+ private Double loadRate;
/**
* 娴佺▼鍗¢泦鍚�
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java
index 0fb765e..94fe110 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java
@@ -1,6 +1,5 @@
package com.mes.pp.service;
-import com.baomidou.mybatisplus.extension.service.IService;
import com.github.yulichang.base.MPJBaseService;
import com.mes.pp.entity.OptimizeProject;
import com.mes.pp.entity.request.OptimizeRequest;
@@ -19,17 +18,12 @@
/**
* 鏌ヨ鍙鍙栫殑浠诲姟宸ョ▼淇℃伅
- * @return
+ * @return List<OptimizeProject>
*/
List<OptimizeProject> listByState(OptimizeRequest optimizeRequest);
+
/**
- * 鏌ヨ淇濆瓨鍒板師鐗囦娇鐢ㄨ鎯呰〃鐨勬暟鎹�
- * @return
+ * 灏嗗伐绋嬩俊鎭洿鏂扮姸鎬佷负宸查鍙�
*/
- List<OptimizeProject> selectSaveProject(OptimizeRequest optimizeRequest);
- /**
- * 灏嗗伐绋嬩俊鎭繚瀛樺埌鍘熺墖浣跨敤璇︽儏琛�
- * @return
- */
- void insetupPattenUsage(List<OptimizeProject> glass);
+ void changeTask(String engineeringId, int i);
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java
index 5df4ef4..76aa79e 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java
@@ -2,20 +2,18 @@
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.mes.pp.entity.OptimizeProject;
import com.mes.pp.entity.request.OptimizeRequest;
import com.mes.pp.mapper.OptimizeProjectMapper;
import com.mes.pp.service.OptimizeProjectService;
-import com.mes.uppattenusage.entity.UpPattenUsage;
import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import java.util.Collections;
import java.util.List;
/**
@@ -47,23 +45,15 @@
@Override
- public void insetupPattenUsage(List<OptimizeProject> glass) {
- log.info("寰幆鏌ヨ缁撴灉淇濆瓨鍒癠pPattenUsage琛ㄤ腑");
- for (OptimizeProject project : glass) {
- UpPattenUsage upPattenUsage = new UpPattenUsage();
- upPattenUsage.setEngineeringId(project.getProjectNo());
- upPattenUsage.setFilmsId(project.getGlassType());
- upPattenUsage.setState(project.getState());
- upPattenUsageMapper.insert(upPattenUsage);
- }
+ public void changeTask(String engineeringId, int state) {
+ UpdateWrapper<OptimizeProject> wrapper = new UpdateWrapper<>();
+ wrapper.eq("project_no",engineeringId)
+ .set("state",state);
+ boolean updateSuccess = this.update(wrapper);
+ log.info("宸ョ▼琛ㄦ洿鏂扮姸鎬亄}",updateSuccess);
+
}
- @Override
- public List<OptimizeProject> selectSaveProject(OptimizeRequest optimizeRequest) {
- log.info("灏嗗弬鏁颁紶鍏ュ埌鏌ヨ绫婚噷,宸ョ▼鍙峰仛闈炵┖鍒ゆ柇妯$硦鏌ヨ");
- log.info("杩斿洖宸ョ▼淇℃伅");
- return this.baseMapper.saveProject(optimizeRequest);
- }
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java
index 48e78f1..6f81e0a 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java
@@ -1,56 +1,76 @@
package com.mes.uppattenusage.controller;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.service.EngineeringService;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.service.OptimizeProjectService;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.uppattenusage.service.UpPattenUsageService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
-//
-//import com.mes.uppattenusage.service.GlassInfoService;
-//import com.mes.uppattenusage.entity.OptimizeUpPattenUsage;
-//import com.mes.uppattenusage.entity.UpPattenUsage;
-//import com.mes.glassinfo.entity.GlassInfo;
-//import com.mes.uppattenusage.service.UpPattenUsageService;
-//import com.mes.utils.Result;
-//import io.swagger.annotations.ApiOperation;
-//import lombok.extern.slf4j.Slf4j;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.web.bind.annotation.GetMapping;
-//import org.springframework.web.bind.annotation.RequestBody;
-//import org.springframework.web.bind.annotation.RequestMapping;
-//import org.springframework.web.bind.annotation.RestController;
-//
-//import java.util.List;
-//
-///**
-// * <p>
-// * 鍓嶇鎺у埗鍣�
-// * </p>
-// *
-// * @author zhoush
-// * @since 2024-04-18
-// */
-//@RestController
-//@RequestMapping("/up-patten-usage")
-//@Slf4j
-//public class UpPattenUsageController {
-//
-// @Autowired
-// private UpPattenUsageService upPattenUsageService;
-// @Autowired
-// private GlassInfoService glassInfoService;
-// @ApiOperation("鏄剧ず姝e湪鍑虹墖鐨勫伐绋嬩俊鎭�")
-// @GetMapping("/prioritylist") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
-// public Result<List<UpPattenUsage>> prioritylist() {
-// List<UpPattenUsage> glass = upPattenUsageService.prioritylist(1);
-// log.info("鏄剧ず宸ヤ綅涓婄殑鐜荤拑淇℃伅:{}", glass);
-// return Result.build(200, "", glass);
-// }
-//
-// @ApiOperation("鐐瑰嚮閫夋嫨宸ョ▼淇濆瓨鍚庤繘琛岃皟鐢�,浼犲叆宸ョ▼鍙�")
-// @GetMapping("/saveUpPattenUsage") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
-// public Result<Integer> saveUpPattenUsage(String engineeringId) {
-// List<UpPattenUsage> upPattenUsages = upPattenUsageService.selectSaveUpPattenUsage(engineeringId);
-// log.info("灏嗘煡璇㈠嚭鐨刄pPattenUsage鏁版嵁淇濆瓨鍒版暟鎹簱琛ㄩ噷");
-// upPattenUsageService.saveUpPattenUsage(upPattenUsages);
-// log.info("浠嶱P琛ㄦ煡璇lassinfo鐨勬暟鎹苟淇濆瓨鍒拌〃閲�");
-// List<GlassInfo> glassinfo=glassInfoService.selectGlassInfo(engineeringId);
-// return Result.build(200, "", 200);
-// }
-//}
+import java.util.List;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-18
+ */
+@RestController
+@RequestMapping("/up-patten-usage")
+@Slf4j
+public class UpPattenUsageController {
+
+ @Autowired
+ private UpPattenUsageService upPattenUsageService;
+ @Autowired
+ private GlassInfoService glassInfoService;
+ @Autowired
+ private EngineeringService engineeringService;
+ @Autowired
+ private OptimizeProjectService optimizeProjectService;
+ @ApiOperation("鏄剧ず姝e湪鍑虹墖鐨勫伐绋嬩俊鎭�")
+ @GetMapping("/prioritylist") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
+ @ResponseBody
+ public Result<List<UpPattenUsage>> prioritylist() {
+ List<UpPattenUsage> glass = upPattenUsageService.prioritylist();
+ log.info("鏄剧ず姝e湪鍑虹墖鐨勫伐绋嬩俊鎭�:{}", glass);
+ return Result.build(200, "", glass);
+ }
+
+ @ApiOperation("鐐瑰嚮閫夋嫨宸ョ▼淇濆瓨鍚庤繘琛岃皟鐢�,浼犲叆宸ョ▼鍙�")
+ @PostMapping("/saveUpPattenUsage") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
+ @ResponseBody
+ public Result<Engineering> saveUpPattenUsage(@RequestBody Engineering engineering) {
+ log.info("engineeringId:{}", engineering);
+ UpPattenUsage upPattenUsage= upPattenUsageService.selectedEngineering(engineering.getEngineerId());
+ if (upPattenUsage!=null){
+ log.info("宸蹭繚瀛樿繃");
+ return Result.build(200, "宸蹭繚瀛樼殑宸ョ▼", null);
+ }else {
+ List<UpPattenUsage> upPattenUsages = upPattenUsageService.selectSaveUpPattenUsage(engineering.getEngineerId());
+ log.info("灏嗘煡璇㈠嚭鐨刄pPattenUsage鏁版嵁淇濆瓨鍒版暟鎹簱琛ㄩ噷");
+ upPattenUsageService.saveUpPattenUsage(upPattenUsages);
+ log.info("浠嶱P琛ㄦ煡璇lassinfo鐨勬暟鎹苟淇濆瓨鍒拌〃閲�");
+ List<GlassInfo> glassinfo=glassInfoService.selectGlassInfo(engineering.getEngineerId());
+ glassInfoService.saveGlassInfo(glassinfo);
+ log.info("浠嶱P琛ㄦ煡璇ngineering鐨勬暟鎹苟淇濆瓨鍒拌〃閲�");
+ List<Engineering> listengineering= engineeringService.selectEngineering(engineering.getEngineerId());
+ engineeringService.saveEngineering(listengineering);
+ log.info("鏇存敼pp琛ㄧ姸鎬佷负宸查鍙�");
+ optimizeProjectService.changeTask(engineering.getEngineerId(), 200);
+// List<UpPattenUsage> data=upPattenUsageService.prioritylist();
+// log.info("鏄剧ず淇濆瓨鍚庣殑涓婄墖椤哄簭琛�");
+ return Result.build(200, "", engineering);
+ }
+
+ }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/OptimizeUpPattenUsage.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/OptimizeUpPattenUsage.java
index 7882159..d4aca93 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/OptimizeUpPattenUsage.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/OptimizeUpPattenUsage.java
@@ -40,7 +40,7 @@
/**
* 鍘熺墖鐗堝浘鐗囧簭
*/
- private Integer heatLayoutSort;
+ private Integer stockId;
/**
* 鐘舵��
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
index 37427e8..d5506a4 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
@@ -3,7 +3,6 @@
import com.mes.uppattenusage.entity.UpPattenUsage;
import java.util.List;
-import java.util.Map;
/**
* <p>
@@ -14,10 +13,33 @@
* @since 2024-04-18
*/
public interface UpPattenUsageService extends MPJBaseService<UpPattenUsage> {
- List<UpPattenUsage> prioritylist(int state);
-
+ /**
+ * 鏌ヨ宸ヤ綅涓婄殑鐜荤拑淇℃伅
+ * @return List<UpPattenUsage>
+ */
+ List<UpPattenUsage> prioritylist();
+ /**
+ * 鏌ヨ涓婄墖椤哄簭淇℃伅
+ * @return List<UpPattenUsage>
+ */
List<UpPattenUsage> selectSaveUpPattenUsage(String engineeringId);
-
+ /**
+ * 淇濆瓨涓婄墖椤哄簭淇℃伅
+ */
void saveUpPattenUsage(List<UpPattenUsage> upPattenUsages);
+ /**
+ * 鏇存柊涓婄墖琛ㄧ姸鎬�
+ */
+ void updateUpPattenUsageState(UpPattenUsage upPattenUsage, Integer state);
+ /**
+ * 鍒ゆ柇姝ゅ伐绋嬫槸鍚﹀凡淇濆瓨杩�
+ * @return UpPattenUsage
+ */
+ UpPattenUsage selectedEngineering(String engineeringId);
+ /**
+ * 鏌ヨ姝e湪鎵ц鐨勪笂鐗囦换鍔�
+ * @return UpPattenUsage
+ */
+ UpPattenUsage selectOverTask();
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
index 59a06be..132a0e5 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
@@ -2,8 +2,11 @@
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.github.yulichang.query.MPJQueryWrapper;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.service.EngineeringService;
import com.mes.pp.entity.OptimizeProject;
import com.mes.pp.mapper.OptimizeProjectMapper;
import com.mes.uppattenusage.entity.OptimizeUpPattenUsage;
@@ -30,13 +33,21 @@
@Autowired
OptimizeProjectMapper optimizeProjectMapper;
+ @Autowired
+ EngineeringService engineeringService;
@Override
- public List<UpPattenUsage> prioritylist(int state) {
- log.info("灏嗗弬鏁颁紶鍏ュ埌鏌ヨ绫婚噷,宸ョ▼鍙峰仛闈炵┖鍒ゆ柇妯$硦鏌ヨ");
- LambdaQueryWrapper<UpPattenUsage> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(UpPattenUsage::getState,state);
- log.info("杩斿洖宸ョ▼淇℃伅");
- return this.list(wrapper);
+ public List<UpPattenUsage> prioritylist() {
+ //鑾峰彇姝e湪涓婄墖鐨勪换鍔d
+ Engineering engineering= engineeringService.selectInitiate(1);
+ log.info("灏嗗弬鏁颁紶鍏ュ埌鏌ヨ绫婚噷{}",engineering);
+ if(engineering!=null){
+ LambdaQueryWrapper<UpPattenUsage> wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(UpPattenUsage::getEngineeringId,engineering.getEngineerId());
+ return this.list(wrapper);
+ }else {
+ return null;
+ }
+
}
@Override
@@ -46,7 +57,7 @@
List<OptimizeUpPattenUsage> upPattenUsageList = null;
if (engineeringId != null) {
upPattenUsageList = optimizeProjectMapper.selectJoinList(OptimizeUpPattenUsage.class, new MPJQueryWrapper<OptimizeProject>()
- .select("t.project_no,t.glass_type,b.width,b.height,REGEXP_REPLACE(t.glass_thickness,'\\D','')as glass_thickness,b.heat_layout_sort")
+ .select("t.project_no,t.glass_type,b.width,b.height,REGEXP_REPLACE(t.glass_thickness,'\\D','')as glass_thickness,b.stock_id")
.leftJoin("optimize_layout b on t.project_no=b.project_no")
.eq("b.project_no", engineeringId));
}
@@ -59,12 +70,12 @@
// 鍒涘缓涓�涓柊鐨� OptimizeProject 瀵硅薄
UpPattenUsage optimizeProject = new UpPattenUsage();
// 灏� Map 涓殑姣忎釜閿�煎鏄犲皠鍒� OptimizeProject 瀵硅薄鐨勭浉搴斿瓧娈典笂
- optimizeProject.setEngineeringId((String) map.getProjectNo());
- optimizeProject.setFilmsId((String) map.getGlassType());
- optimizeProject.setWidth((Double) map.getWidth());
- optimizeProject.setHeight((Double) map.getHeight());
- optimizeProject.setThickness((Double)map.getHeight());
- optimizeProject.setLayoutSequence((Integer) map.getHeatLayoutSort());
+ optimizeProject.setEngineeringId(map.getProjectNo());
+ optimizeProject.setFilmsId( map.getGlassType());
+ optimizeProject.setWidth(map.getWidth());
+ optimizeProject.setHeight( map.getHeight());
+ optimizeProject.setThickness(map.getGlassThickness());
+ optimizeProject.setLayoutSequence( map.getStockId());
optimizeProject.setState(0);
// 灏嗘槧灏勫悗鐨勫璞℃坊鍔犲埌缁撴灉鍒楄〃涓�
resultList.add(optimizeProject);
@@ -80,10 +91,29 @@
//淇濆瓨鍘熺墖浣跨敤璇︽儏琛�
}
- //@Override
- public void selectSaveGlassinfo(String engineeringId) {
- //淇濆瓨鐜荤拑淇℃伅琛�
- //optimizeProjectMapper.selectJoinList();
+ @Override
+ public void updateUpPattenUsageState(UpPattenUsage upPattenUsage, Integer state) {
+ upPattenUsage.setState(state);
+ boolean updateSuccess=this.updateById(upPattenUsage);
+ log.info("鏇存柊鐘舵�亄}",updateSuccess);
+ //鏇存柊鐘舵��
+ }
+
+ @Override
+ public UpPattenUsage selectedEngineering(String engineeringId) {
+ QueryWrapper<UpPattenUsage>wrapper = new QueryWrapper<>();
+ wrapper.eq("engineering_id",engineeringId)
+ .last("limit 1");
+ return this.getOne(wrapper);
+ }
+
+ @Override
+ public UpPattenUsage selectOverTask() {
+ QueryWrapper<UpPattenUsage>wrapper = new QueryWrapper<>();
+ wrapper.gt("state",0)
+ .lt("state",99)
+ .last("limit 1");
+ return this.getOne(wrapper);
}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java
index e5f3071..a130533 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java
@@ -72,6 +72,7 @@
.antMatchers("/webjars/**").permitAll()
.antMatchers("/v2/**").permitAll()
.antMatchers("/swagger-resources/**").permitAll()
+ .antMatchers("/**").permitAll()
.anyRequest().authenticated()
// 寮傚父澶勭悊鍣�
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
index 34416ba..1505d1b 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
@@ -77,4 +77,4 @@
//鏀捐
filterChain.doFilter(request, response);
}
-}
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/resources/application-dev.yml b/hangzhoumesParent/common/springsecurity/src/main/resources/application-dev.yml
index 7085cc4..64e7984 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/resources/application-dev.yml
+++ b/hangzhoumesParent/common/springsecurity/src/main/resources/application-dev.yml
@@ -1,15 +1,15 @@
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+ url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
username: root
password: beibo.123/
cloud:
nacos:
discovery:
- server-addr: 127.0.0.1:8848
+ server-addr: 10.153.19.150:8848
redis:
database: 0
- host: 127.0.0.1
+ host: 10.153.19.150
port: 6379
password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/CacheGlassModuleApplication.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/CacheGlassModuleApplication.java
index 376cca1..13cceb4 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/CacheGlassModuleApplication.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/CacheGlassModuleApplication.java
@@ -23,9 +23,6 @@
public static void main(String[] args) {
try {
-// SpringApplication springApplication = new SpringApplication(CacheGlassModuleApplication.class);
-// ConfigurableApplicationContext applicationContext = springApplication.run(args);
-// WebSocketServer.setApplicationContext(applicationContext);
SpringApplication.run(CacheGlassModuleApplication.class, args);
} catch (Exception e) {
log.error(e.getMessage());
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java
new file mode 100644
index 0000000..b8b8a9d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java
@@ -0,0 +1,20 @@
+package com.mes.edgglasstask.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+@RestController
+@RequestMapping("/edgGlassTaskInfo")
+public class EdgGlassTaskInfoController {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
new file mode 100644
index 0000000..810e146
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
@@ -0,0 +1,37 @@
+package com.mes.edgglasstask.entity;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class EdgGlassTaskInfo implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private String glassId;
+
+ private Integer width;
+
+ private Integer height;
+
+ private Integer thickness;
+
+ private Integer glassType;
+
+ private Integer status;
+
+
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java
new file mode 100644
index 0000000..2f6a5be
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java
@@ -0,0 +1,18 @@
+package com.mes.edgglasstask.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+@DS("salve_hangzhoumes")
+public interface EdgGlassTaskInfoMapper extends BaseMapper<EdgGlassTaskInfo> {
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
new file mode 100644
index 0000000..1589b7d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
@@ -0,0 +1,16 @@
+package com.mes.edgglasstask.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+public interface EdgGlassTaskInfoService extends IService<EdgGlassTaskInfo> {
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
new file mode 100644
index 0000000..34a06f4
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.edgglasstask.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgglasstask.mapper.EdgGlassTaskInfoMapper;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+@Service
+public class EdgGlassTaskInfoServiceImpl extends ServiceImpl<EdgGlassTaskInfoMapper, EdgGlassTaskInfo> implements EdgGlassTaskInfoService {
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java
index 29f21c7..6e85d25 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java
@@ -1,6 +1,7 @@
package com.mes.edgstoragecage.entity;
import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -106,6 +107,11 @@
* 鐜荤拑闂撮殭
*/
private Integer gap;
+ /**
+ * 鐜荤拑闂撮殭
+ */
+ @TableField(exist = false)
+ private Integer count;
}
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 577e794..f9c0aa1 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
@@ -40,16 +40,16 @@
/**
* 鏌ヨ绗煎唴鐗堝浘宸�艰寖鍥村唴鐨� 姝ゅ昂瀵哥幓鐠� 濡傛棤鍒欐寜鐓� 閽㈠寲鐗堝浘搴忓彿 浠ュ強鐜荤拑搴忓彿
* @param glassId
- * @param poor
+ * @param threshold
* @return
*/
- EdgStorageCageDetails selectConformGlass(String glassId, int poor);
+ EdgStorageCageDetails selectConformGlass(String glassId, int threshold);
/**
* 鑾峰彇鍑虹墖淇℃伅鏁版嵁
* @param glassId
- * @param poor
+ * @param threshold
* @return
*/
- EdgStorageCageDetails selectOutGlass(String glassId, int poor);
+ EdgStorageCageDetails selectOutGlass(String glassId, int threshold);
}
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 052a00b..930f76f 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
@@ -143,55 +143,52 @@
/**
* 鏌ヨ绗煎唴鐗堝浘宸�艰寖鍥村唴鐨� 姝ゅ昂瀵哥幓鐠� 濡傛棤鍒欐寜鐓� 閽㈠寲鐗堝浘搴忓彿 浠ュ強鐜荤拑搴忓彿
+ *
* @param glassId
- * @param poor
+ * @param threshold
* @return
*/
@Override
- public EdgStorageCageDetails selectConformGlass(String glassId, int poor){
+ public EdgStorageCageDetails selectConformGlass(String glassId, int threshold) {
//1.鍘荤鍐呮煡璇㈡灏哄鐨勭幓鐠� 鐩墠鐗堝浘宸�煎唴鐨勭幓鐠� 鏄惁鏈夊悓灏哄鐨�
//1.1 鏈夊悓灏哄鐨� 鍒欑敓鎴愬悓灏哄鐨勪换鍔�
//1.2 鏃犲悓灏哄鐨� 鍒欑敓鎴愮増鍥鹃『搴忔渶灏忕殑鍑虹墖
- EdgStorageCageDetails edgStorageCageDetails= baseMapper.selectOne(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
+ EdgStorageCageDetails edgStorageCageDetails = baseMapper.selectOne(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
.selectAll(EdgStorageCageDetails.class)
- .eq(EdgStorageCageDetails::getGlassId,glassId)
+ .eq(EdgStorageCageDetails::getGlassId, glassId)
);
- List<EdgStorageCageDetails> listEdgStorageCageDetails= baseMapper.selectList(new LambdaQueryWrapper<EdgStorageCageDetails>()
- .eq(EdgStorageCageDetails::getState,100)
- .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId,EdgStorageCageDetails::getTemperingFeedSequence)
+ List<EdgStorageCageDetails> listEdgStorageCageDetails = baseMapper.selectList(new LambdaQueryWrapper<EdgStorageCageDetails>()
+ .lt(EdgStorageCageDetails::getState, 200)
+ .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence)
);
- EdgStorageCageDetails minTemperingLayoutId=new EdgStorageCageDetails();
- if(!listEdgStorageCageDetails.isEmpty()){
- minTemperingLayoutId=listEdgStorageCageDetails.get(0);
+ EdgStorageCageDetails minTemperingLayoutId = new EdgStorageCageDetails();
+ if (!listEdgStorageCageDetails.isEmpty()) {
+ minTemperingLayoutId = listEdgStorageCageDetails.get(0);
}
- EdgStorageCageDetails result=new EdgStorageCageDetails();
- boolean a=minTemperingLayoutId!=null;
- if(edgStorageCageDetails!=null&&minTemperingLayoutId!=null){
- List <EdgStorageCageDetails> list= edgStorageCageMapper.selectJoinList(EdgStorageCageDetails.class,new MPJLambdaWrapper<EdgStorageCage>()
+ EdgStorageCageDetails result = new EdgStorageCageDetails();
+ if (edgStorageCageDetails != null && minTemperingLayoutId != null) {
+ result = edgStorageCageMapper.selectJoinOne(EdgStorageCageDetails.class, new MPJLambdaWrapper<EdgStorageCage>()
.selectAll(EdgStorageCageDetails.class)
- .leftJoin(EdgStorageCageDetails.class,on->on
- .eq(EdgStorageCageDetails::getDeviceId,EdgStorageCage::getDeviceId)
- .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot))
+ .leftJoin(EdgStorageCageDetails.class, on -> on
+ .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId)
+ .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot))
.isNotNull(EdgStorageCageDetails::getSlot)
- .eq(EdgStorageCageDetails::getWidth,edgStorageCageDetails.getWidth())
- .eq(EdgStorageCageDetails::getHeight,edgStorageCageDetails.getHeight())
- .ge(EdgStorageCageDetails::getTemperingLayoutId,minTemperingLayoutId.getTemperingLayoutId())
- .le(EdgStorageCageDetails::getTemperingLayoutId,minTemperingLayoutId.getTemperingLayoutId()+poor)
- .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId,EdgStorageCageDetails::getTemperingFeedSequence)
+ .eq(EdgStorageCageDetails::getWidth, edgStorageCageDetails.getWidth())
+ .eq(EdgStorageCageDetails::getHeight, edgStorageCageDetails.getHeight())
+ .ge(EdgStorageCageDetails::getTemperingLayoutId, minTemperingLayoutId.getTemperingLayoutId())
+ .le(EdgStorageCageDetails::getTemperingLayoutId, minTemperingLayoutId.getTemperingLayoutId() + threshold)
+ .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence)
);
- if(!list.isEmpty()){
- result=list.get(0);
- }
}
- if (result==null){
- result=edgStorageCageMapper.selectJoinOne(EdgStorageCageDetails.class,new MPJLambdaWrapper<EdgStorageCage>()
+ if (result == null) {
+ result = edgStorageCageMapper.selectJoinOne(EdgStorageCageDetails.class, new MPJLambdaWrapper<EdgStorageCage>()
.selectAll(EdgStorageCageDetails.class)
- .leftJoin(EdgStorageCageDetails.class,on->on
- .eq(EdgStorageCageDetails::getDeviceId,EdgStorageCage::getDeviceId)
- .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot))
+ .leftJoin(EdgStorageCageDetails.class, on -> on
+ .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId)
+ .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot))
.isNotNull(EdgStorageCageDetails::getSlot)
- .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId,EdgStorageCageDetails::getTemperingFeedSequence)
+ .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence)
);
}
return result;
@@ -201,11 +198,11 @@
* 鏌ヨ绗煎唴鐗堝浘宸�艰寖鍥村唴鐨� 姝ゅ昂瀵哥幓鐠� 濡傛棤鍒欐寜鐓� 閽㈠寲鐗堝浘搴忓彿 浠ュ強鐜荤拑搴忓彿
*
* @param glassId
- * @param poor
+ * @param threshold
* @return
*/
@Override
- public EdgStorageCageDetails selectOutGlass(String glassId, int poor) {
+ public EdgStorageCageDetails selectOutGlass(String glassId, int threshold) {
EdgStorageCageDetails oldEdgStorageCageDetails = null;
if (StringUtils.isNotEmpty(glassId)) {
oldEdgStorageCageDetails = baseMapper.selectOne(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
@@ -231,25 +228,23 @@
EdgStorageCageDetails outEdgStorageCageDetails = null;
- //todo:鑾峰彇绗煎瓙鍐呮渶澶х増鍥緄d鍜屾渶灏忕増鍥緄d鎻掑�硷紝鍒ゆ柇鏄惁澶т簬闃堝�硷紝澶т簬闃堝�肩洿鎺ュ嚭鏈�灏忕増鍥剧幓鐠�
- //todo:閫昏緫1锛氳幏鍙栦袱鏉$嚎宸插嚭鏈�鍚庝竴鍧楃幓鐠冨湪绗煎唴鐩稿悓灏哄鎵�鍓╂暟閲忥紝浼樺厛璧版暟閲忓皯鐨勭嚎
- //todo:閫昏緫2锛氫紭鍏堣蛋绌洪棽鐨勭嚎
- //todo:闇�瑕佸湪鍗у紡鐞嗙墖绗艰鎯呰〃涓柊澧炵姸鎬侊紝鐢ㄦ潵琛ㄧず鐜荤拑杩涘嚭鐞嗙墖绗兼儏鍐�
- if (oldEdgStorageCageDetails != null && minTemperingLayoutId != null) {
- log.info("鎸夌収涓婁竴鐗囧凡鍑虹幓鐠冨搴}锛岄珮搴}锛屽強鐗堝浘id鍖洪棿{}鍒皗}鑾峰彇鍑虹墖浠诲姟鐜荤拑淇℃伅", oldEdgStorageCageDetails.getWidth()
- , oldEdgStorageCageDetails.getHeight(), minTemperingLayoutId.getTemperingLayoutId(), minTemperingLayoutId.getTemperingLayoutId() + poor);
- outEdgStorageCageDetails = this.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
- .notIn(CollectionUtils.isNotEmpty(glassIds), EdgStorageCageDetails::getGlassId, glassIds)
- .eq(EdgStorageCageDetails::getWidth, oldEdgStorageCageDetails.getWidth())
- .eq(EdgStorageCageDetails::getHeight, oldEdgStorageCageDetails.getHeight())
- .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence)
- .last("limit 1"));
- log.info("鍑虹墖浠诲姟鐨勭幓鐠冧俊鎭細{}", outEdgStorageCageDetails);
- }
+// if (queryMaxMinDiff(threshold))
+ //todo:閫昏緫1锛氳幏鍙栦袱鏉$嚎宸插嚭鏈�鍚庝竴鍧楃幓鐠冨湪绗煎唴鐩稿悓灏哄鎵�鍓╂暟閲忥紝浼樺厛璧版暟閲忓皯鐨勭嚎
+ //todo:闇�瑕佸湪鍗у紡鐞嗙墖绗艰鎯呰〃涓柊澧炵姸鎬侊紝鐢ㄦ潵琛ㄧず鐜荤拑杩涘嚭鐞嗙墖绗兼儏鍐�
+ if (oldEdgStorageCageDetails != null && minTemperingLayoutId != null) {
+ log.info("鎸夌収涓婁竴鐗囧凡鍑虹幓鐠冨搴}锛岄珮搴}锛屽強鐗堝浘id鍖洪棿{}鍒皗}鑾峰彇鍑虹墖浠诲姟鐜荤拑淇℃伅", oldEdgStorageCageDetails.getWidth()
+ , oldEdgStorageCageDetails.getHeight(), minTemperingLayoutId.getTemperingLayoutId(), minTemperingLayoutId.getTemperingLayoutId() + threshold);
+ outEdgStorageCageDetails = this.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+ .notIn(CollectionUtils.isNotEmpty(glassIds), EdgStorageCageDetails::getGlassId, glassIds)
+ .eq(EdgStorageCageDetails::getWidth, oldEdgStorageCageDetails.getWidth())
+ .eq(EdgStorageCageDetails::getHeight, oldEdgStorageCageDetails.getHeight())
+ .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence)
+ .last("limit 1"));
+ log.info("鍑虹墖浠诲姟鐨勭幓鐠冧俊鎭細{}", outEdgStorageCageDetails);
+ }
if (outEdgStorageCageDetails == null) {
outEdgStorageCageDetails = minTemperingLayoutId;
}
return outEdgStorageCageDetails;
}
-
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
index 7c71c38..2969896 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
@@ -20,7 +20,7 @@
/**
* <p>
- * 鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
* </p>
*
* @author zhoush
@@ -37,44 +37,46 @@
@Override
public EdgStorageCage selectNearestEmpty(int currentSlot) {
- return this.selectJoinOne(EdgStorageCage.class,new MPJLambdaWrapper<EdgStorageCage>()
+ return this.selectJoinOne(EdgStorageCage.class, new MPJLambdaWrapper<EdgStorageCage>()
.selectAll(EdgStorageCage.class)
- .leftJoin(EdgStorageCageDetails.class,on->on
- .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot)
+ .leftJoin(EdgStorageCageDetails.class, on -> on
+ .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)
.eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN))
.isNull(EdgStorageCageDetails::getSlot)
- .last("order by abs(slot - 4) asc limit 1")
+ .last("order by abs(t.slot - " + currentSlot + ") asc limit 1")
);
}
/**
* 鏌ヨ绗煎唴绌烘牸
+ *
* @return
*/
@Override
- public List<EdgStorageCage> selectCacheEmpty(){
- return baseMapper.selectJoinList(EdgStorageCage.class,new MPJLambdaWrapper<EdgStorageCage>()
+ public List<EdgStorageCage> selectCacheEmpty() {
+ return baseMapper.selectJoinList(EdgStorageCage.class, new MPJLambdaWrapper<EdgStorageCage>()
.selectAll(EdgStorageCage.class)
- .leftJoin(EdgStorageCageDetails.class,on->on
- .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot)
- .eq(EdgStorageCageDetails::getState,"100"))
+ .leftJoin(EdgStorageCageDetails.class, on -> on
+ .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)
+ .eq(EdgStorageCageDetails::getState, "100"))
.isNull(EdgStorageCageDetails::getSlot)
- .last("order by abs(slot - 4) asc")
+ .last("order by abs(t.slot - 4) asc")
);
}
/**
* 鏌ヨ绗煎唴鍑虹墖浠诲姟 鎸夐挗鍖栫増鍥惧彿+鐗堝浘鍐呭簭鍙�
+ *
* @return
*/
@Override
- public List<Map<String, Object>> selectCacheOut(){
+ public List<Map<String, Object>> selectCacheOut() {
return upPattenUsageMapper.selectJoinMaps(JoinWrappers.lambda(UpPattenUsage.class).selectAll(UpPattenUsage.class)
- .select(EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight,EdgStorageCageDetails::getGlassId)
- .leftJoin(EdgStorageCageDetails.class,on->on
- .eq(EdgStorageCageDetails::getDeviceId,EdgStorageCage::getDeviceId)
- .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot))
+ .select(EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight, EdgStorageCageDetails::getGlassId)
+ .leftJoin(EdgStorageCageDetails.class, on -> on
+ .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId)
+ .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot))
.isNull(EdgStorageCageDetails::getSlot)
);
// return upPattenUsageMapper.selectJoinMaps(new MPJQueryWrapper<UpPattenUsage>().selectAll(UpPattenUsage.class)
@@ -87,17 +89,18 @@
/**
* 鐞嗙墖缂撳瓨璇︽儏
+ *
* @return
*/
@Override
- public List<Map<String, Object>> selectEdgStorageCages(){
+ public List<Map<String, Object>> selectEdgStorageCages() {
return baseMapper.selectJoinMaps(JoinWrappers.lambda(EdgStorageCage.class)
.selectAll(EdgStorageCage.class)
- .selectAs(EdgStorageCageDetails::getId,"esdId")
- .select(EdgStorageCageDetails::getGlassId,EdgStorageCageDetails::getWidth,EdgStorageCageDetails::getHeight,EdgStorageCageDetails::getId)
- .leftJoin(EdgStorageCageDetails.class,on->on
- .eq(EdgStorageCageDetails::getDeviceId,EdgStorageCage::getDeviceId)
- .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot))
+ .selectAs(EdgStorageCageDetails::getId, "esdId")
+ .select(EdgStorageCageDetails::getGlassId, EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight, EdgStorageCageDetails::getId)
+ .leftJoin(EdgStorageCageDetails.class, on -> on
+ .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId)
+ .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot))
);
// return baseMapper.selectJoinMaps(new MPJQueryWrapper<EdgStorageCage>().selectAll(EdgStorageCage.class)
// .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
@@ -107,39 +110,41 @@
/**
* 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愬惎鐢�/绂佺敤銆�
+ *
* @param edgStorageCage
* @return
*/
@Override
- public boolean updateEdgStorageCage(EdgStorageCage edgStorageCage){
- EdgStorageCage edgItem=baseMapper.selectById(edgStorageCage.getId());
+ public boolean updateEdgStorageCage(EdgStorageCage edgStorageCage) {
+ EdgStorageCage edgItem = baseMapper.selectById(edgStorageCage.getId());
edgItem.setEnableState(edgStorageCage.getEnableState());
baseMapper.updateById(edgItem);
return true;
}
/**
- *淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
+ * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
+ *
* @param edgStorageCageId
* @param edgStorageCageDetails
* @return
*/
@Override
- public boolean updateEdgStorageCageDetails(int edgStorageCageId,EdgStorageCageDetails edgStorageCageDetails){
- EdgStorageCage edgItem=baseMapper.selectById(edgStorageCageId);
- log.info("姝e父"+edgItem);
- EdgStorageCageDetails edgDItem=edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
- if (edgItem!=null){
+ public boolean updateEdgStorageCageDetails(int edgStorageCageId, EdgStorageCageDetails edgStorageCageDetails) {
+ EdgStorageCage edgItem = baseMapper.selectById(edgStorageCageId);
+ log.info("姝e父" + edgItem);
+ EdgStorageCageDetails edgDItem = edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
+ if (edgItem != null) {
//绉婚櫎
- EdgStorageCageDetails result=edgStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getSlot,edgStorageCageId));
- if (result!=null){
+ EdgStorageCageDetails result = edgStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getSlot, edgStorageCageId));
+ if (result != null) {
result.setSlot(0);
edgStorageCageDetailsMapper.updateById(result);
}
//娣诲姞
- if(edgDItem!=null){
+ if (edgDItem != null) {
//鍙紶鏍煎瓙 锛氱Щ闄ょ幓鐠�
- EdgStorageCageDetails newresult=edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
+ EdgStorageCageDetails newresult = edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
newresult.setSlot(edgItem.getSlot());
edgStorageCageDetailsMapper.updateById(newresult);
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
index 674592b..500a02a 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -3,9 +3,14 @@
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.query.QueryWrapper;
+import com.github.yulichang.query.MPJQueryWrapper;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.mes.common.S7object;
import com.mes.common.config.Const;
import com.mes.device.PlcParameterObject;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
import com.mes.edgstoragecage.entity.EdgStorageCage;
import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
@@ -15,6 +20,7 @@
import com.mes.taskcache.entity.TaskCache;
import com.mes.taskcache.service.TaskCacheService;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -24,7 +30,6 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
-import java.util.stream.Collectors;
/**
* @Author : zhoush
@@ -44,8 +49,14 @@
@Autowired
EdgStorageCageDetailsService edgStorageCageDetailsService;
+ @Autowired
+ EdgGlassTaskInfoService edgGlassTaskInfoService;
+
@Value("${mes.threshold}")
private int threshold;
+
+ @Value("${mes.ratio}")
+ private int ratio;
@Scheduled(fixedDelay = 1000)
public void plcHomeEdgTask() {
@@ -53,12 +64,24 @@
String taskRequestTypeValue = plcParameterObject.getPlcParameter("A06_request_word").getValue();
String glassIdeValue = plcParameterObject.getPlcParameter("A05_scanning_ID").getValue();
String confirmationWrodValue = plcParameterObject.getPlcParameter("MES_confirmation_word").getValue();
- // 1涓篈09绌洪棽锛�2涓篈10绌洪棽锛�3涓篈09A10閮界┖闂�,0涓篈09A10閮芥湁鐜荤拑
- String outGlassstate = plcParameterObject.getPlcParameter("A09_glass_status").getValue();
+ //A08 A09琛ㄧず绾胯矾鐩稿悓 鍙仛绛変环 鏃犳暟鎹浆int寮傚父
+ String out08Glassstate = plcParameterObject.getPlcParameter("A08_glass_status").getValue();
+ String out10Glassstate = plcParameterObject.getPlcParameter("A10_glass_status").getValue();
String confirmationWrodAddress = plcParameterObject.getPlcParameter("MES_confirmation_word").getAddress();
String currentSlot = plcParameterObject.getPlcParameter("Current_slot").getValue();
- log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{}锛岃幏鍙栧埌鐨勭‘璁ゅ瓧涓猴細{}锛岃幏鍙栧埌鐨勫嚭鐗囩姸鎬佷负锛歿},褰撳墠鏍煎瓙鍙蜂负锛歿}",
- taskRequestTypeValue, glassIdeValue, confirmationWrodValue, outGlassstate, currentSlot);
+
+// String taskRequestTypeValue = "2";
+// String glassIdeValue = "2222222222";
+// String confirmationWrodValue = "0";
+// //A08 A09琛ㄧず绾胯矾鐩稿悓 鍙仛绛変环
+// Integer out08Glassstate = 1;
+// Integer out10Glassstate = 0;
+// String confirmationWrodAddress = "DB11.38";
+// String currentSlot = "1";
+
+
+ log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{}锛岃幏鍙栧埌鐨勭‘璁ゅ瓧涓猴細{}锛岃幏鍙栧埌鐨勫嚭鐗囩姸鎬佸垎鍒负锛欰09:{}銆丄10:{},褰撳墠鏍煎瓙鍙蜂负锛歿}",
+ taskRequestTypeValue, glassIdeValue, confirmationWrodValue, out08Glassstate, out10Glassstate, currentSlot);
if ("0".equals(taskRequestTypeValue)) {
if ("0".equals(confirmationWrodValue)) {
@@ -74,26 +97,34 @@
S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 0);
return;
}
-
if ("1".equals(taskRequestTypeValue)) {
- log.info("3銆佽繘鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�");
+ log.info("2銆佽繘鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�");
inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
} else if ("2".equals(taskRequestTypeValue)) {
//09绌洪棽 锛�1 10绌洪棽 锛�2 閮界┖闂诧細3 鍏朵粬0
- log.info("3銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�");
- outTo(Integer.parseInt(outGlassstate), confirmationWrodAddress, currentSlot);
+ log.info("2銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�");
+ outTo(Integer.parseInt(out08Glassstate),
+ Integer.parseInt(out10Glassstate), confirmationWrodAddress);
} else if ("3".equals(taskRequestTypeValue)) {
- log.info("3銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟");
- if ("0".equals(outGlassstate)) {
- inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
+ log.info("2銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟");
+ //鍔犵瀛愰噷闈㈡槸鍚︽湁鐜荤拑锛屾湁鍏堝嚭锛屾棤鐜荤拑鍏堣繘
+ int count = edgStorageCageDetailsService.count(new LambdaQueryWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
+ if (("1".equals(out08Glassstate) || "1".equals(out10Glassstate)) && count > 0) {
+ boolean outFlase = outTo(Integer.parseInt(out08Glassstate),
+ Integer.parseInt(out10Glassstate), confirmationWrodAddress);
+ log.info("鍑虹墖浠诲姟鏄惁瀹屾垚锛歿},澶辫触涓旂幓鐠僫d:{}涓嶄负绌哄垯鎵ц杩涚墖浠诲姟", outFlase, glassIdeValue);
+ if (!outFlase && StringUtils.isNotBlank(glassIdeValue)) {
+ inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
+ }
} else {
- outTo(Integer.parseInt(outGlassstate), confirmationWrodAddress, currentSlot);
+ inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
}
}
}
/**
* 杩涚墖浠诲姟
+ *
* @param glassId
* @param confirmationWrodAddress
* @param currentSlot
@@ -108,7 +139,7 @@
log.info("2銆佽幏鍙栧埌鐨勭幓鐠冧俊鎭负{}", glassInfo);
//娣诲姞杩涚墖浠诲姟 鏌ユ壘绌烘牸
EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(Integer.parseInt(currentSlot));
- Assert.isTrue(nearestEmpty == null, "鏍煎瓙宸叉弧");
+ Assert.isTrue(null != nearestEmpty, "鏍煎瓙宸叉弧");
log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", nearestEmpty);
log.info("4銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
@@ -119,17 +150,9 @@
details.setDeviceId(nearestEmpty.getDeviceId());
edgStorageCageDetailsService.save(details);
log.info("5銆佺幓鐠冧俊鎭凡瀛樺叆鐞嗙墖绗艰鎯呰〃锛岀幓鐠冧俊鎭负{}", details);
-
//娣诲姞杩涚墖浠诲姟
- TaskCache taskCache = new TaskCache();
- taskCache.setGlassId(glassId);
- taskCache.setTaskStatus(0);
- taskCache.setStartCell(0);
- taskCache.setEndCell(nearestEmpty.getSlot());
- taskCache.setTaskType(1);
- taskCache.setCreateTime(new Date());
- taskCacheService.insertTaskCache(taskCache);
- log.info("6銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃{}", taskCache);
+ boolean taskCache = saveTaskCache(details.getGlassId(), 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN);
+ log.info("6銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃鏄惁瀹屾垚锛歿}", taskCache);
S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 1);
log.info("7銆佸彂閫佺‘璁ゅ瓧瀹屾垚");
@@ -139,47 +162,241 @@
/**
* 鍑虹墖浠诲姟
- * @param line
+ *
+ * @param out08Glassstate
+ * @param out10Glassstate
* @param confirmationWrodAddress
- * @param currentSlot
*/
- private void outTo(int line, String confirmationWrodAddress, String currentSlot) {
- Assert.isTrue(line != 0, "A09銆丄10閮芥湁鐜荤拑锛屾棤娉曞嚭鐗�");
- log.info("1銆佸嚭鐗囦换鍔″嚭銆恵}銆戝彿绾�,澶囨敞(09绌洪棽锛�1;10绌洪棽锛�2;閮界┖闂诧細3)", line);
+ private boolean outTo(int out08Glassstate, int out10Glassstate, String confirmationWrodAddress) {
+ //閫昏緫姝ラ锛�
+// 0銆丄09銆丄10鏄惁绌洪棽锛屾槸鍚﹀彲浠ユ墽琛屽嚭鐗囦换鍔�
+// 1銆佽幏鍙栭挗鍖栫増鍥炬槸鍚﹁秴杩囬槇鍊�
+// 1.1銆佽秴杩囬槇鍊硷細鑾峰彇褰撳墠鏈�灏忕増鍥鹃渶瑕佸嚭鐗囩殑鐜荤拑淇℃伅
+// 1.1.1銆佽幏鍙栦袱鏉$嚎鏈�鍚庝竴娆″嚭鐗囩殑浠诲姟淇℃伅
+// 1.1.2銆佹寜鐓у嚭鐗囦俊鎭幓璇︽儏琛ㄦ煡璇㈡牸瀛愬湪绗煎瓙閲岄潰鍓╀綑鐩稿悓灏哄鐨勭幓鐠冩暟鎹�
+// 1.1.3銆佸垽鏂摢鏉$嚎鐜荤拑鏁伴噺鍦ㄧ悊鐗囩鍐呯殑鏁版嵁鏈�灏戯紝鍐冲畾鏈�灏忕増鍥捐蛋璇ユ潯绾匡紙闂锛氬鏋滆繖鏉$嚎闈炵┖闂诧紝鐩存帴缁撴潫锛�
+// 1.2銆佹湭瓒呰繃闃堝�硷細
+// 1.2.1銆佽幏鍙栫▼搴忛偅鏉$嚎绌洪棽
+// 1.2.2銆佽幏鍙栬鏉$嚎鏈�鍚庝竴娆″嚭鐗囩殑浠诲姟淇℃伅
+// 1.2.3銆佹寜鐓у嚭鐗囦俊鎭幓璇︽儏琛ㄦ煡璇㈡牸瀛愬湪绗煎瓙閲岄潰鍓╀綑鐩稿悓灏哄鐨勭幓鐠冩暟鎹笖浠ョ増鍥緄d銆佺増搴忓崌搴忔帓搴� 鍙栫涓�鍧楃幓鐠冨嚭鐗�
+// 2銆佸鏋滄病鏈夊巻鍙插嚭鐗囦换鍔�
+// 2.1銆佸嚭褰撳墠鐗堝浘id鏈�灏忕増搴忔渶灏忕殑鐜荤拑锛堥棶棰橈細涓ゆ潯绾块兘娌℃湁鍘嗗彶浠诲姟锛屽嚭鐗囨椂涓ゆ潯绾跨殑鐜荤拑灏哄鐩稿悓锛屾槸鍚︽壘灏哄涓嶅悓鐨勶級
+ Assert.isFalse(out08Glassstate == 0 && out10Glassstate == 0, "A09銆丄10閮芥湁鐜荤拑锛屾棤娉曞嚭鐗�");
+ log.info("0銆佸嚭鐗囦换鍔″嚭鐨勭姸鎬�:A09:銆恵}銆�;A10:銆恵}銆�)", out08Glassstate, out10Glassstate);
+ //瀹氫箟鍑虹墖鐜荤拑淇℃伅
int endcell = 0;
+ EdgStorageCageDetails glassInfo = null;
+ boolean flag = queryMaxMinDiff(threshold);
+ log.info("1銆佽幏鍙栭挗鍖栫増鍥炬槸鍚﹁秴杩囬槇鍊�:{}", flag);
+ if (flag) {
+ glassInfo = queryMinGlass(0.0, 0.0);
+ log.info("1.1銆佽秴杩囬槇鍊硷細鑾峰彇褰撳墠鏈�灏忕増鍥鹃渶瑕佸嚭鐗囩殑鐜荤拑淇℃伅:{}", glassInfo);
+ Integer a09Count = queryCountByTaskLine(Const.A09_OUT_TARGET_POSITION).size();
+ Integer a10Count = queryCountByTaskLine(Const.A10_OUT_TARGET_POSITION).size();
+ log.info("1.2銆佽幏鍙栫瀛愬墿浣欐暟閲廇09涓簕},A10涓簕}", a09Count, a10Count);
- List<TaskCache> oldTaskCacheList;
- if (line == 2) {
- endcell = Const.A10_OUT_TARGET_POSITION;
- oldTaskCacheList = taskCacheService.selectLastOutCacheInfos(Const.A10_OUT_TARGET_POSITION);
+ // 鍋囪宸茬煡 outXXGlassstate 鐨勫�煎彧鏈� 0 鍜� 1 涓ょ鎯呭喌锛屼笖 0 琛ㄧず鏌愮鐘舵�侊紝1 琛ㄧず鍙︿竴绉嶇姸鎬�
+ int targetPositionWhenStateZero = (out08Glassstate == 0) ? Const.A10_OUT_TARGET_POSITION : Const.A09_OUT_TARGET_POSITION;
+ int targetPositionWhenStateOne = (out10Glassstate == 0) ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
+ endcell = (a10Count <= a09Count) ? targetPositionWhenStateZero : targetPositionWhenStateOne;
} else {
- endcell = Const.A09_OUT_TARGET_POSITION;
- oldTaskCacheList = taskCacheService.selectLastOutCacheInfos(Const.A09_OUT_TARGET_POSITION);
+ //褰撳墠浠诲姟鍑哄畬鏃犵幓鐠� 鏇存崲鐜荤拑 鑾峰彇鍙︿竴鏉$嚎璺�
+ endcell = out08Glassstate == 1 ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
+ int othercell = endcell == Const.A10_OUT_TARGET_POSITION ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
+ List<EdgStorageCageDetails> details = queryCountByTaskLine(endcell);
+ if (details.size() > 0) {
+ glassInfo = details.get(0);
+ } else {
+ //鍘荤悊鐗囩閲岄潰鏌�
+ glassInfo = queryChangeGlassInfo(othercell);
+ }
}
- log.info("2銆佸垽鏂嚭鐗囩嚎璺瘂}锛岃幏鍙栨渶鍚庤鏉$嚎宸插嚭鐗囩殑浠诲姟淇℃伅{}(澶囨敞锛�0寰呮墽琛岋紝1宸叉墽琛�).閮界┖闂蹭紭鍏堝嚭A09绾�", endcell, oldTaskCacheList);
-
- String glassId = "";
- if (CollectionUtil.isNotEmpty(oldTaskCacheList)) {
- glassId = oldTaskCacheList.get(0).getGlassId();
- }
- EdgStorageCageDetails glassInfo = edgStorageCageDetailsService.selectOutGlass(glassId, threshold);
- log.info("3銆佹寜鐓у巻鍙插凡鍑虹幓鐠僫d{}鍜岄槇鍊納}锛屾嬁鍑虹悊鐗囩鍐呯殑鍑虹墖淇℃伅{}", glassId, threshold, glassInfo);
if (glassInfo != null) {
log.info("4銆佹坊鍔犲嚭鐗囦换鍔★紝鐜荤拑id锛歿}锛屼换鍔$被鍨嬶細{}锛岃捣濮嬩綅缃細{}锛岀粨鏉熶綅缃細{}", glassInfo.getGlassId(),
2, glassInfo.getSlot(), endcell);
- TaskCache taskCache = new TaskCache();
- taskCache.setGlassId(glassInfo.getGlassId());
- taskCache.setTaskStatus(0);
- taskCache.setStartCell(glassInfo.getSlot());
- taskCache.setEndCell(endcell);
- taskCache.setTaskType(2);
- taskCache.setCreateTime(new Date());
- taskCacheService.insertTaskCache(taskCache);
+
+ LambdaQueryWrapper<EdgStorageCageDetails> wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(EdgStorageCageDetails::getGlassId, glassInfo.getGlassId());
+ EdgStorageCageDetails updateDetail = new EdgStorageCageDetails();
+ updateDetail.setState(Const.GLASS_STATE_OUT);
+ edgStorageCageDetailsService.update(updateDetail, wrapper);
+ log.info("5銆佹洿鏂板嚭鐗囩幓鐠冪殑鐘舵�佷负{}", Const.GLASS_STATE_OUT);
+
+ boolean taskCacheStatus = saveTaskCache(glassInfo.getGlassId(), glassInfo.getSlot(), endcell, Const.GLASS_CACHE_TYPE_OUT);
+ log.info("6銆佹坊鍔犲嚭鐗囦换鍔℃槸鍚﹀畬鎴愶細{}", taskCacheStatus);
+
+ boolean glassSizeStatus = saveGlassSize(glassInfo);
+ log.info("7銆佹坊鍔犲嚭鐗囩幓鐠冨昂瀵镐俊鎭埌纾ㄨ竟鍓嶇幓鐠冭〃鏄惁瀹屾垚锛歿}", glassSizeStatus);
+
S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 1);
+ log.info("8銆佸彂閫佺‘璁ゅ瓧宸插畬鎴�");
+ return Boolean.TRUE;
+ }
+ return Boolean.FALSE;
+ }
+
+ /**
+ * 鑾峰彇璇︽儏琛ㄥ唴鏈�澶ф渶灏忕増鍥緄d鐨勫樊鍊硷紝鍒ゆ柇鏄惁鍑烘渶灏忕増鍥剧幓鐠�
+ *
+ * @return
+ */
+ private boolean queryMaxMinDiff(int threshold) {
+ //鑾峰彇绗煎瓙鍐呮渶澶х増鍥緄d鍜屾渶灏忕増鍥緄d鎻掑�硷紝鍒ゆ柇鏄惁澶т簬闃堝�硷紝澶т簬闃堝�肩洿鎺ュ嚭鏈�灏忕増鍥剧幓鐠�
+ QueryWrapper<EdgStorageCageDetails> queryWrapper = new QueryWrapper<>();
+ queryWrapper.select("max(tempering_layout_id)-min(tempering_layout_id) as diff")
+ .eq("state", Const.GLASS_STATE_IN);
+ List<Object> list = edgStorageCageDetailsService.listObjs(queryWrapper);
+ if (CollectionUtil.isNotEmpty(list)) {
+ Long diff = (Long) list.get(0);
+ return diff > threshold;
+ } else {
+ return Boolean.FALSE;
}
+ }
+ /**
+ * 鑾峰彇褰撳墠鏈�灏忕増鍥鹃渶瑕佸嚭鐗囩殑鐜荤拑淇℃伅
+ *
+ * @param width
+ * @param height
+ */
+ private EdgStorageCageDetails queryMinGlass(Double width, Double height) {
+ return edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+ .eq(EdgStorageCageDetails::getState, 100)
+ .eq(width != 0, EdgStorageCageDetails::getWidth, width)
+ .eq(height != 0, EdgStorageCageDetails::getHeight, height)
+ .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence)
+ .last("limit 1"));
+ }
+
+ /**
+ * 鑾峰彇浠诲姟琛ㄤ腑鎸囧畾绾胯矾绗煎瓙鍐呰繕鍓╀綑鐨勭幓鐠冩暟閲�
+ */
+ private List<EdgStorageCageDetails> queryCountByTaskLine(int line) {
+ //鑾峰彇浠诲姟琛ㄤ腑鏈�鍚庝竴娆″嚭鐗囩殑鐜荤拑id
+ LambdaQueryWrapper<TaskCache> queryWrapper = new LambdaQueryWrapper<TaskCache>().eq(TaskCache::getTaskType, Const.GLASS_CACHE_TYPE_OUT)
+ .eq(TaskCache::getEndCell, line).orderByDesc(TaskCache::getCreateTime);
+ List<TaskCache> taskCacheList = taskCacheService.list(queryWrapper);
+ if (CollectionUtil.isEmpty(taskCacheList)) {
+ return new ArrayList<>();
+ }
+ TaskCache taskCache = taskCacheList.get(0);
+ MPJQueryWrapper<EdgStorageCageDetails> mpjLambdaWrapper = new MPJQueryWrapper<>();
+ mpjLambdaWrapper.select("t1.*")
+ .innerJoin("edg_storage_cage_details t1 on t.width = t1.width and t.height = t1.height")
+ .eq("t.glass_id", taskCache.getGlassId())
+ .ne("t1.glass_id", taskCache.getGlassId())
+ .orderByAsc("t1.tempering_layout_id", "t1.tempering_feed_sequence");
+ List<EdgStorageCageDetails> details = edgStorageCageDetailsService.selectJoinList(EdgStorageCageDetails.class, mpjLambdaWrapper);
+ if (CollectionUtil.isEmpty(details)) {
+ return new ArrayList<>();
+ }
+ return details;
+ }
+
+ /**
+ * 鏇存崲鍑虹墖鐜荤拑
+ *
+ * @param othercell
+ * @return
+ */
+ private EdgStorageCageDetails queryChangeGlassInfo(int othercell) {
+ //鑾峰彇绗煎瓙鍐呮暟閲忓墠浜岀殑鐜荤拑鏁伴噺
+ MPJLambdaWrapper<EdgStorageCageDetails> wrapper = new MPJLambdaWrapper<>();
+ wrapper.select(EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight)
+ .selectCount(EdgStorageCageDetails::getGlassId, EdgStorageCageDetails::getCount)
+ .groupBy(EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight)
+ .last("order by count(t.glass_id) desc limit 2");
+ List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(wrapper);
+ log.info("鑾峰彇绗煎瓙鍐呮暟閲忓墠浜岀殑鐜荤拑鏁伴噺锛歿}", list);
+ if (CollectionUtil.isEmpty(list)) {
+ log.info("绗煎瓙閲屾病鏈夌幓鐠�");
+ return null;
+ }
+ //涓�鐗囩幓鐠冪洿鎺ュ嚭
+ //鑾峰彇瀹介珮鎷嶇涓�鐨勭幓鐠冧俊鎭�
+ EdgStorageCageDetails firstSize = list.get(0);
+ Integer firstCount = firstSize.getCount();
+ Double firstWidth = firstSize.getWidth();
+ Double firstHeight = firstSize.getHeight();
+ if (list.size() == 1) {
+ return queryMinGlass(firstWidth, firstHeight);
+ }
+ //鑾峰彇瀹介珮鎷嶇浜岀殑鐜荤拑淇℃伅
+ EdgStorageCageDetails secondSize = list.get(1);
+ //鑾峰彇浠诲姟琛ㄤ腑鏈�鍚庝竴娆″嚭鐗囩殑鐜荤拑id
+ LambdaQueryWrapper<TaskCache> queryWrapper = new LambdaQueryWrapper<TaskCache>().eq(TaskCache::getTaskType, Const.GLASS_CACHE_TYPE_OUT)
+ .eq(TaskCache::getEndCell, othercell).orderByDesc(TaskCache::getCreateTime);
+ List<TaskCache> taskCacheList = taskCacheService.list(queryWrapper);
+ log.info("鑾峰彇浠诲姟琛ㄤ腑{}绾挎渶鍚庝竴娆″嚭鐗囩殑鐜荤拑浠诲姟淇℃伅锛歿}", othercell, taskCacheList);
+ if (CollectionUtil.isEmpty(taskCacheList)) {
+ log.info("{}绾挎病鏈夊嚭鐗囦换鍔′俊鎭紝鐩存帴鍑虹墖", othercell);
+ return queryMinGlass(firstSize.getWidth(), firstSize.getHeight());
+ }
+
+ Integer secondCount = secondSize.getCount();
+ Double secondWidth = secondSize.getWidth();
+ Double secondHeight = secondSize.getHeight();
+ //鑾峰彇鏁伴噺鍓�2鐨勭幓鐠冩暟閲忔瘮渚�
+ Integer mix = firstCount / secondCount;
+ log.info("鑾峰彇鐜荤拑鏁伴噺鍓�2鐨勭幓鐠冨崰姣斾负锛歿}", mix);
+
+ if (mix >= 2) {
+ log.info("鑾峰彇鐜荤拑鏁伴噺鍓�2鐨勭幓鐠冨崰姣斾负{}锛屽ぇ浜�2锛岀洿鎺ュ嚭鐜荤拑鏁版嵁鐨勬渶澶氱殑锛屽锛歿}锛岄珮锛歿}", mix, firstWidth, firstHeight);
+ return queryMinGlass(firstWidth, firstHeight);
+ } else {
+ log.info("鑾峰彇鐜荤拑鏁伴噺鍓�2鐨勭幓鐠冨崰姣斾负{}锛屽皬浜�2", mix);
+ TaskCache taskCache = taskCacheList.get(0);
+ EdgStorageCageDetails outGlassInfo = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getGlassId, taskCache.getGlassId()));
+ log.info("{}绾挎湁鍑虹墖浠诲姟淇℃伅,浠诲姟淇℃伅涓簕}锛岀幓鐠冧俊鎭负{}", othercell, taskCache, outGlassInfo);
+ if (outGlassInfo.getWidth().equals(firstWidth) && outGlassInfo.getHeight().equals(firstHeight)) {
+ log.info("鏁伴噺鏈�澶氱殑瀹絳}楂榹}鍜寋}绾夸换鍔$殑瀹絳}楂榹}鐩稿悓锛屽嚭鏁伴噺鎺掔浜岀殑鐜荤拑锛屽{}楂榹}",
+ firstWidth, firstHeight, othercell, outGlassInfo.getWidth(), outGlassInfo.getHeight(), secondWidth, secondHeight);
+ return queryMinGlass(secondWidth, secondHeight);
+ } else {
+ log.info("鏁伴噺绗簩澶氱殑瀹絳}楂榹}鍜寋}绾夸换鍔$殑瀹絳}楂榹}鐩稿悓锛屽嚭鏁伴噺鎺掔浜岀殑鐜荤拑锛屽{}楂榹}",
+ secondWidth, secondHeight, othercell, outGlassInfo.getWidth(), outGlassInfo.getHeight(), firstWidth, firstHeight);
+ return queryMinGlass(firstWidth, firstHeight);
+ }
+ }
+ }
+
+ /**
+ * 娣诲姞鐞嗙墖绗间换鍔�
+ *
+ * @param glassId
+ * @param startcell
+ * @param endcell
+ * @param taskType
+ * @return
+ */
+ private boolean saveTaskCache(String glassId, int startcell, int endcell, int taskType) {
+ TaskCache taskCache = new TaskCache();
+ taskCache.setGlassId(glassId);
+ taskCache.setTaskStatus(0);
+ taskCache.setStartCell(startcell);
+ taskCache.setEndCell(endcell);
+ taskCache.setTaskType(taskType);
+ taskCache.setCreateTime(new Date());
+ return taskCacheService.save(taskCache);
+ }
+
+ /**
+ * 娣诲姞鐞嗙墖绗间换鍔�
+ *
+ * @param glassInfo
+ * @return
+ */
+ private boolean saveGlassSize(EdgStorageCageDetails glassInfo) {
+ EdgGlassTaskInfo edgGlassTaskInfo = new EdgGlassTaskInfo();
+ BeanUtils.copyProperties(glassInfo, edgGlassTaskInfo);
+ edgGlassTaskInfo.setHeight((int) (glassInfo.getEdgHeight() * ratio));
+ edgGlassTaskInfo.setWidth((int) (glassInfo.getWidth() * ratio));
+ edgGlassTaskInfo.setThickness((int) (glassInfo.getThickness() * ratio));
+ edgGlassTaskInfo.setStatus(Const.EDG_GLASS_BEFORE);
+ return edgGlassTaskInfoService.save(edgGlassTaskInfo);
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java
index 429edc1..c474e1f 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java
@@ -16,13 +16,8 @@
*/
public interface TaskCacheService extends IService<TaskCache> {
- /**
- * 娣诲姞鐞嗙墖绗间换鍔�
- * @param taskCache
- * @return
- */
- boolean insertTaskCache(TaskCache taskCache);
+ boolean insertTaskCache(TaskCache taskCache);
/**
* 鏌ヨ纾ㄨ竟浠诲姟
* @param line
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/JsonFile/PlcCacheGlass.json b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/JsonFile/PlcCacheGlass.json
index d3ebde8..01969b7 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/JsonFile/PlcCacheGlass.json
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/JsonFile/PlcCacheGlass.json
@@ -32,7 +32,7 @@
"unit":""
},
{
- "codeId": "A09_glass_status",
+ "codeId": "A08_glass_status",
"addressIndex":"68",
"addressLenght":"2",
"ratio":"1",
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
index 1cf0247..e48a9b9 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -5,10 +5,11 @@
profiles:
active: dev
application:
- name: unLoadGlass
+ name: cacheGlass
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mes:
threshold: 3
+ ratio: 10
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/AppRunnerConfig.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/AppRunnerConfig.java
new file mode 100644
index 0000000..1a84ab6
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/AppRunnerConfig.java
@@ -0,0 +1,29 @@
+package com.mes;
+
+import com.mes.common.S7object;
+import com.mes.job.PlcStorageCageTask;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+@Order(1)
+
+public class AppRunnerConfig implements ApplicationRunner {
+
+ private final PlcStorageCageTask plcStorageCageTask;
+
+ public AppRunnerConfig(PlcStorageCageTask plcStorageCageTask) {
+ this.plcStorageCageTask = plcStorageCageTask;
+ }
+
+ @Override
+ public void run(ApplicationArguments args) throws Exception {
+ log.info("鍚姩瀹屾垚");
+ S7object.getinstance().start();
+
+ }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
index 2b18a23..60ba4df 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
@@ -18,7 +18,7 @@
*/
public interface BigStorageCageService extends IService<BigStorageCage> {
- void updateRemainWidth(int Slot);
+ void updateRemainWidth(int slot);
BigStorageCageDetails feedGlass(GlassInfo glassInfo, BigStorageCageDetails bigStorageCageDetails);
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 6e71ea3..51d5f49 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
@@ -61,10 +61,10 @@
bigStorageCageDetails.setSlot(layoutSlotInfo.getSlot());
} else {
log.info("3銆佹煡璇㈢悊鐗囩鍐呯墖搴�+1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠冪殑缁撴灉涓虹┖鏃惰幏鍙栧綋鍓嶇幓鐠冪増鍥緄d鏄惁瀛樺湪鐞嗙墖绗煎唴");
- LambdaQueryWrapper<BigStorageCageDetails> BigStorageCageDetailslambdaQueryWrapper = new LambdaQueryWrapper<>();
- BigStorageCageDetailslambdaQueryWrapper
+ LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailslambdaQueryWrapper = new LambdaQueryWrapper<>();
+ bigStorageCageDetailslambdaQueryWrapper
.select(BigStorageCageDetails::getTemperingLayoutId);
- layoutSlotInfo = bigStorageCageDetailsMapper.selectOne(BigStorageCageDetailslambdaQueryWrapper);
+ layoutSlotInfo = bigStorageCageDetailsMapper.selectOne(bigStorageCageDetailslambdaQueryWrapper);
if(layoutSlotInfo != null){
log.info("4銆佽幏鍙栫瀛愬唴閫傚悎鐨勬牸瀛�");
@@ -78,10 +78,10 @@
.apply("LEFT JOIN (SELECT device_id, tempering_layout_id FROM big_storage_cage_details) b ON a.device_id = b.device_id AND a.slot = b.slot")
.orderByAsc("layoutCount")
.orderByAsc("a.device_id");
- List<Map<String, Object>> BigStorageCageDetailsCount= bigStorageCageDetailsMapper.selectMaps(queryWrapper);
+ List<Map<String, Object>> bigStorageCageDetailsCount= bigStorageCageDetailsMapper.selectMaps(queryWrapper);
log.info("5銆佹煡璇㈢瀛愬唴鏄惁鏈夊悎閫傜殑鏍煎瓙");
- for (Map<String, Object> map : BigStorageCageDetailsCount) {
+ for (Map<String, Object> map : bigStorageCageDetailsCount) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
int deviceId = Integer.parseInt(entry.getKey());
BigStorageCage bigStorageCage=bigStorageCageSlot(deviceId);
@@ -92,8 +92,9 @@
}
}
}
- log.info("6銆佸綋鎵惧埌鍚堥�傜殑鏍煎瓙鏃舵坊鍔犵幓鐠冨埌绗煎瓙琛�");
+
if (bigStorageCageDetails.getSlot() != null) {
+ log.info("6銆佸綋鎵惧埌鍚堥�傜殑鏍煎瓙鏃舵坊鍔犵幓鐠冨埌绗煎瓙琛�");
bigStorageCageDetails.setState(0);
bigStorageCageDetailsMapper.insert(bigStorageCageDetails);
updateRemainWidth(bigStorageCageDetails.getSlot()) ;
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/S7object.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/S7object.java
new file mode 100644
index 0000000..102ff13
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/S7object.java
@@ -0,0 +1,61 @@
+package com.mes.common;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.device.PlcParameterObject;
+import com.mes.tools.InitUtil;
+import com.mes.tools.S7control;
+
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 15:13
+ * @Description:
+ */
+public class S7object extends Thread {
+ public S7control plccontrol; // PLC閫氳绫诲疄渚�
+ private EPlcType plcType = EPlcType.S1200; // 瑗块棬瀛怭LC绫诲瀷
+ private String ip = "192.168.10.1"; // plc ip鍦板潃
+ private int port = 102; // plc 绔彛鍙�
+
+
+ public PlcParameterObject PlcMesObject;
+ private static volatile S7object instance = null;
+
+ private S7object() {
+ if (plccontrol == null) {
+ plccontrol = new S7control(plcType, ip, port, 0, 0);
+
+ String PlcLoadGlass=S7object.class.getResource("/JsonFile/PlcCacheVerticalGlass.json").getPath();
+ //log.info(PLCAutoMes.class.getResource("").getPath());
+ PlcMesObject = InitUtil.initword(PlcLoadGlass);
+ }
+ }
+
+ // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+ public static S7object getinstance() {
+ if (instance == null) {
+ synchronized (S7object.class) {
+ if (instance == null) {
+ instance = new S7object();
+ }
+ }
+ }
+ return instance;
+ }
+
+ @Override
+ public void run() {
+ while (this != null) {
+ try {
+ Thread.sleep(100);
+
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ byte[] getplcvlues= plccontrol.ReadByte(PlcMesObject.getPlcAddressBegin(),PlcMesObject.getPlcAddressLength());
+ PlcMesObject.setPlcParameterList(getplcvlues);
+
+ }
+ }
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/WebSocketServer.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/WebSocketServer.java
new file mode 100644
index 0000000..5fabafa
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/WebSocketServer.java
@@ -0,0 +1,160 @@
+package com.mes.common;
+
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.stereotype.Component;
+
+import javax.websocket.*;
+import javax.websocket.server.PathParam;
+import javax.websocket.server.ServerEndpoint;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+@ServerEndpoint(value = "/api/talk/{username}")
+@Component("webSocketServer")
+public class WebSocketServer {
+
+
+ public static ConfigurableApplicationContext applicationContext;
+
+ // 瑙e喅鏃犳硶娉ㄥ叆mapper闂 //浣跨敤鏂规硶
+ // homeMapper=WebSocketServer.applicationContext.getBean(HomeMapper.class);
+ public static void setApplicationContext(ConfigurableApplicationContext configurableApplicationContext) {
+ WebSocketServer.applicationContext = configurableApplicationContext;
+ }
+
+ private static final Logger log = LoggerFactory.getLogger(WebSocketServer.class);
+ private List<String> messages;
+ /**
+ * 璁板綍褰撳墠鍦ㄧ嚎杩炴帴鏁�
+ */
+ public static final Map<String, ArrayList<WebSocketServer>> sessionMap = new ConcurrentHashMap<>();
+
+ String username;
+ Session session;
+
+ public WebSocketServer() {
+ this.messages = new ArrayList<>();
+ }
+
+ /**
+ * 杩炴帴寤虹珛鎴愬姛璋冪敤鐨勬柟娉�
+ */
+ @OnOpen
+ public void onOpen(Session session, @PathParam("username") String username) {
+ this.username = username;
+ this.session = session;
+ List<WebSocketServer> webSocketServers = sessionMap.get(username);
+ if (webSocketServers == null) {
+ ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>();
+ arrayListwebserver.add(this);
+ sessionMap.put(username, arrayListwebserver);
+ } else {
+ webSocketServers.add(this);
+ }
+
+ log.info("鏈夋柊鐢ㄦ埛鍔犲叆锛寀sername={}, 褰撳墠鍦ㄧ嚎浜烘暟涓猴細{}", username, sessionMap.get(username).size());
+
+ // JSONObject result = new JSONObject();
+ // JSONArray array = new JSONArray();
+ // result.set("users", array);
+ // for (Object key : sessionMap.keySet()) {
+ // JSONObject jsonObject = new JSONObject();
+ // jsonObject.set("username", key);
+ // array.add(jsonObject);
+ // }
+
+ // sendAllMessage(JSONUtil.toJsonStr(result)); // 鍚庡彴鍙戦�佹秷鎭粰鎵�鏈夌殑瀹㈡埛绔�
+ }
+
+ /**
+ * 杩炴帴鍏抽棴璋冪敤鐨勬柟娉�
+ */
+ @OnClose
+ public void onClose(Session session, @PathParam("username") String username) {
+ List<WebSocketServer> webSocketServers = sessionMap.get(username);
+ ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>();
+ if (webSocketServers.size() > 1) {
+ for (WebSocketServer webSocketServer : webSocketServers) {
+ if (webSocketServer != this) {
+ arrayListwebserver.add(webSocketServer);
+ }
+ }
+ sessionMap.put(username, arrayListwebserver);
+ log.info("绉婚櫎username={}涓�鍚嶇敤鎴穝ession, {}鐨勫綋鍓嶅湪绾夸汉鏁颁负锛歿}", username, username, sessionMap.get(username).size());
+ } else {
+ sessionMap.remove(username);
+ log.info("绉婚櫎username={}涓�鍚嶇敤鎴穝ession, {}杩炴帴鍏抽棴, 褰撳墠杩炴帴鏁颁负锛歿}", username, username, sessionMap.size());
+ }
+
+ }
+
+ /**
+ * 鏀跺埌瀹㈡埛绔秷鎭悗璋冪敤鐨勬柟娉�
+ * 鍚庡彴鏀跺埌瀹㈡埛绔彂閫佽繃鏉ョ殑娑堟伅
+ * onMessage 鏄竴涓秷鎭殑涓浆绔�
+ * 鎺ュ彈 娴忚鍣ㄧ socket.send 鍙戦�佽繃鏉ョ殑 json鏁版嵁
+ *
+ * @param message 瀹㈡埛绔彂閫佽繃鏉ョ殑娑堟伅
+ */
+ @OnMessage
+ public void onMessage(String message, Session session, @PathParam("username") String username) {
+ log.info("鏈嶅姟绔敹鍒扮敤鎴穟sername={}鐨勬秷鎭�:{}", username, message);
+ JSONObject obj = JSONUtil.parseObj(message);
+ String text = obj.getStr("data");
+
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.set("message", text);
+ this.messages.add(text);
+ this.sendMessage(jsonObject.toString()); // JSONUtil.toJsonStr(jsonObject)
+
+ }
+
+ @OnError
+ public void onError(Session session, Throwable error) {
+ log.error("鍙戠敓閿欒");
+ error.printStackTrace();
+ }
+
+ /**
+ * 鏈嶅姟绔彂閫佹秷鎭粰瀹㈡埛绔�
+ */
+ public void sendMessage(String message) {
+ try {
+ // log.info("鏈嶅姟绔粰瀹㈡埛绔痆{}]鍙戦�佹秷鎭瘂}", this.session.getId(), message);
+ this.session.getBasicRemote().sendText(message);
+ } catch (Exception e) {
+ log.error("鏈嶅姟绔彂閫佹秷鎭粰瀹㈡埛绔け璐�", e);
+ }
+ }
+
+ // /**
+ // * 鏈嶅姟绔彂閫佹秷鎭粰鎵�鏈夊鎴风
+ // */
+ // public void sendAllMessage(String message) {
+ // try {
+ // for (WebSocketServer webSocketServer : sessionMap.values()) {
+ // // log.info("鏈嶅姟绔粰瀹㈡埛绔痆{}]鍙戦�佹秷鎭瘂}", this.session.getId(), message);
+ // webSocketServer.sendMessage(message);
+ // }
+ // } catch (Exception e) {
+ // log.error("鏈嶅姟绔彂閫佹秷鎭粰瀹㈡埛绔け璐�", e);
+ // }
+ // }
+
+ public List<String> getMessages() {
+ return messages;
+
+ }
+
+ public void clearMessages() {
+ messages.clear();
+ }
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
index ab589a7..1e9a559 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -5,8 +5,12 @@
import com.mes.bigstorage.service.BigStorageCageDetailsService;
import com.mes.bigstorage.service.BigStorageCageService;
import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
+import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService;
import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
+import com.mes.common.S7object;
+import com.mes.common.WebSocketServer;
+import com.mes.device.PlcParameterObject;
import com.mes.edgstoragetask.service.TaskCacheService;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.service.GlassInfoService;
@@ -16,28 +20,31 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+import javax.annotation.Resource;
+import java.util.ArrayList;
import java.util.List;
@Component
@Slf4j
public class PlcStorageCageTask {
- @Autowired
+ @Resource
private BigStorageCageService bigStorageCageService;
- @Autowired
+ @Resource
private BigStorageCageDetailsService bigStorageCageDetailsService;
- @Autowired
+ @Resource
private GlassInfoService glassInfoService;
- @Autowired
+ @Resource
private BigStorageCageFeedTaskService bigStorageCageFeedTaskService;
- @Autowired
+ @Resource
private BigStorageCageOutTaskService bigStorageCageOutTaskService;
- @Autowired
+ @Resource
private TaskCacheService taskCacheService;
- @Autowired
+ @Resource
private SysMenuService sysMenuService;
+ PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
/**
* fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
* fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
@@ -46,22 +53,18 @@
public void plcStorageCageTask() throws InterruptedException {
JSONObject jsonObject = new JSONObject();
try {
- Thread.sleep(300);
+ // 鐖嗙鎶ヨ
boolean bigStorageCageFullAlarm = false;
- String plcD01FeedReq = "0";
- String plcD04FeedReq = "0";
- String plcFeedGlassid = "111";
+ String plcFeedGlassid = "";
String plcFeedReqLine = "0";
- if ("1".equals(plcD01FeedReq)) {
+ if ("1".equals(plcParameterObject.getPlcParameter("D01Request").getValue())) {
plcFeedReqLine = "1";
- } else {
- //plc浠诲姟鍙戦�佸瓧0
+ plcFeedGlassid=plcParameterObject.getPlcParameter("D01ID1").getValue();
}
- if ("1".equals(plcD04FeedReq)) {
+ if ("1".equals(plcParameterObject.getPlcParameter("D04Request").getValue())) {
plcFeedReqLine = "2";
- } else {
- //plc浠诲姟鍙戦�佸瓧0
+ plcFeedGlassid=plcParameterObject.getPlcParameter("D04ID1").getValue();
}
if (!("0".equals(plcFeedReqLine))) {
@@ -75,10 +78,8 @@
log.info("3銆佹煡璇换鍔¤〃鍒ゆ柇褰撳墠浠诲姟绫诲瀷涓轰笂杞︾瓑鍒拌繕鏄笂杞﹀惎鍔�" + taskType);
bigStorageCageFeedTaskService.addFeedTask(slotInfo, Integer.parseInt(plcFeedReqLine), taskType);
log.info("4銆佹坊鍔犱换鍔″埌浠诲姟琛�");
- //plc浠诲姟鍙戦�佸瓧1
bigStorageCageFullAlarm = false;
} else {
- //鐞嗙墖绗肩垎绗兼姤璀�
bigStorageCageFullAlarm = true;
}
} else {
@@ -96,24 +97,33 @@
}
}
- //鍑虹墖璇锋眰
- String plcOutReq = "0";
- boolean result = false;
- if ("1".equals(plcOutReq)) {
- result = bigStorageCageService.outGlass();
- log.info("8銆佸嚭鐗囪姹傛椂璋冪敤鍑虹墖鎺ュ彛" + result);
- if (result) {
- //plc浠诲姟鍙戦�佸瓧1
- }
- } else {
- bigStorageCageOutTaskService.updateOutTask();
- //plc浠诲姟鍙戦�佸瓧0
+ //鏌ヨ鍑虹墖琛ㄦ槸鍚︽湁浠诲姟鏈畬鎴愮殑浠诲姟
+ List<BigStorageCageOutTask> bigStorageCageOutTask=bigStorageCageOutTaskService.querybigStorageCageOutTask(0);
+ if(bigStorageCageOutTask.size()==0){
+ bigStorageCageService.outGlass();
+ log.info("8銆佹病鏈夋湭瀹屾垚浠诲姟鏃惰皟鐢ㄥ嚭鐗囨帴鍙�");
}
-
- //鏄剧ず鍓╀綑绌烘牸瀛�
+ bigStorageCageOutTaskService.updateOutTask();
+ log.info("9銆佹牴鎹换鍔¤〃鐘舵�佷慨鏀归挗鍖栧皬鐗囪〃浠诲姟鐘舵��");
//鎶ヨ淇℃伅
jsonObject.append("bigStorageCageFullAlarm", bigStorageCageFullAlarm);
+
+ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
+ 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();
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json
new file mode 100644
index 0000000..5838dac
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json
@@ -0,0 +1,57 @@
+{
+ "plcAddressBegin":"DB.0",
+ "plcAddressLenght":"72",
+ "dataType":"word",
+ "parameteInfor":[
+ {
+ "codeId": "D01Request",
+ "addressIndex":"0",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "D01ID1",
+ "addressIndex":"2",
+ "addressLenght":"6",
+ "ratio":"1",
+ "unit":""
+ },
+ {
+ "codeId": "D04Request",
+ "addressIndex":"8",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ },
+ {
+ "codeId": "D04ID1",
+ "addressIndex":"10",
+ "addressLenght":"6",
+ "ratio":"1",
+ "unit":""
+ },
+ {
+ "codeId": "D02Go",
+ "addressIndex":"20",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ },
+ {
+ "codeId": "D05Go",
+ "addressIndex":"22",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ }
+ ,
+ {
+ "codeId": "DeviceStatus",
+ "addressIndex":"70",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ }
+ ]
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java
new file mode 100644
index 0000000..4f6a172
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java
@@ -0,0 +1,29 @@
+package com.mes;
+
+import com.mes.common.S7object;
+import com.mes.job.PlcLoadGlassTask;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+@Order(1)
+
+public class AppRunnerConfig implements ApplicationRunner {
+
+ private final PlcLoadGlassTask plcLoadGlassTask;
+
+ public AppRunnerConfig(PlcLoadGlassTask plcLoadGlassTask) {
+ this.plcLoadGlassTask = plcLoadGlassTask;
+ }
+
+ @Override
+ public void run(ApplicationArguments args) throws Exception {
+ log.info("鍚姩瀹屾垚");
+ S7object.getinstance().start();
+
+ }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/JsonFile/PlcLoadGlass.json b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/JsonFile/PlcLoadGlass.json
deleted file mode 100644
index eed5688..0000000
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/JsonFile/PlcLoadGlass.json
+++ /dev/null
@@ -1,414 +0,0 @@
-{
- "plcAddressBegin":"DB14.0",
- "plcAddressLenght":"208",
- "dataType":"word",
- "parameteInfor":[
- {
- "codeId": "PLCToMES",
- "addressIndex":"0",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"m/min"
- },
- {
- "codeId": "IDStatus1",
- "addressIndex":"2",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"m/min"
- },
- {
- "codeId": "IDStatus2",
- "addressIndex":"4",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"m/min"
- },
- {
- "codeId": "IDStatus3",
- "addressIndex":"6",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },
- {
- "codeId": "IDStatus4",
- "addressIndex":"8",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },
- {
- "codeId": "IDStatus5",
- "addressIndex":"10",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- }
- ,
- {
- "codeId": "IDStatus6",
- "addressIndex":"12",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },
- {
- "codeId": "StautsID1",
- "addressIndex":"14",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- }
- ,
- {
- "codeId": "StautsID2",
- "addressIndex":"16",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- }
- ,
- {
- "codeId": "StautsID3",
- "addressIndex":"18",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- }
- ,
- {
- "codeId": "StautsID4",
- "addressIndex":"20",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- }
- ,
- {
- "codeId": "StautsID5",
- "addressIndex":"22",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },
- {
- "codeId": "StautsID6",
- "addressIndex":"24",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },
- {
- "codeId": "GaToMES",
- "addressIndex":"26",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },
- {
- "codeId": "Height",
- "addressIndex":"28",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },
- {
- "codeId": "width",
- "addressIndex":"30",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },
- {
- "codeId": "ExportTOMES1",
- "addressIndex":"32",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- }
- ,
- {
- "codeId": "ExportToMES2",
- "addressIndex":"34",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- } ,
- {
- "codeId": "MESToPLC",
- "addressIndex":"36",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- } ,
- {
- "codeId": "MESID1",
- "addressIndex":"38",
- "addressLenght":"14",
- "ratio":"1",
- "unit":"mm/S"
- } ,
- {
- "codeId": "MESID2",
- "addressIndex":"54",
- "addressLenght":"14",
- "ratio":"1",
- "unit":"mm/S"
- },
- {
- "codeId": "MESID3",
- "addressIndex":"70",
- "addressLenght":"14",
- "ratio":"1",
- "unit":"mm/S"
- },
- {
- "codeId": "MESID4",
- "addressIndex":"86",
- "addressLenght":"14",
- "ratio":"1",
- "unit":"mm/S"
- },
- {
- "codeId": "MESID5",
- "addressIndex":"102",
- "addressLenght":"14",
- "ratio":"1",
- "unit":"mm/S"
- },
- {
- "codeId": "MESID6",
- "addressIndex":"118",
- "addressLenght":"14",
- "ratio":"1",
- "unit":"mm/S"
- },
- {
- "codeId": "MESToPLCStart1",
- "addressIndex":"134",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "MESToPLCStart2",
- "addressIndex":"136",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "MESToPLCStart3",
- "addressIndex":"138",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- }
- ,{
- "codeId": "MESToPLCStart4",
- "addressIndex":"140",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- }
- ,{
- "codeId": "MESToPLCStart5",
- "addressIndex":"142",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- }
- ,{
- "codeId": "MESToPLCStart6",
- "addressIndex":"144",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "MESToPLCTarget1",
- "addressIndex":"146",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "MESToPLCTarget2",
- "addressIndex":"148",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "MESToPLCTarget3",
- "addressIndex":"150",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "MESToPLCTarget4",
- "addressIndex":"152",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "MESToPLCTarget5",
- "addressIndex":"154",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "MESToPLCTarget6",
- "addressIndex":"156",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "MESToPLCStatus1",
- "addressIndex":"158",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "MESToPLCStatus2",
- "addressIndex":"160",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "MESToPLCStatus3",
- "addressIndex":"162",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "MESToPLCStatus4",
- "addressIndex":"164",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "MESToPLCStatus5",
- "addressIndex":"166",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "MESToPLCStatus6",
- "addressIndex":"168",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "MESToGaStatus",
- "addressIndex":"170",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "A01Err",
- "addressIndex":"172",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "A02Err",
- "addressIndex":"174",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "B01Err",
- "addressIndex":"176",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "C01Err",
- "addressIndex":"178",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "C02Err",
- "addressIndex":"180",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "ErrSpace1",
- "addressIndex":"182",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "ErrSpace2",
- "addressIndex":"184",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "ErrSpace3",
- "addressIndex":"186",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "B01Position",
- "addressIndex":"188",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "C01Position",
- "addressIndex":"190",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "C02Position",
- "addressIndex":"192",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "DeviceState",
- "addressIndex":"194",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "AllFVRun",
- "addressIndex":"196",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "A01State",
- "addressIndex":"198",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "A02State",
- "addressIndex":"200",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "B01State",
- "addressIndex":"202",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "C01State",
- "addressIndex":"204",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- },{
- "codeId": "C02State",
- "addressIndex":"206",
- "addressLenght":"2",
- "ratio":"1",
- "unit":"mm/S"
- }
- ]
-}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java
index 45e5467..d25f5ea 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java
@@ -1,24 +1,33 @@
package com.mes.common;
import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.device.PlcParameterObject;
+import com.mes.tools.InitUtil;
import com.mes.tools.S7control;
+
/**
* @Author : zhoush
* @Date: 2024/4/9 15:13
* @Description:
*/
-public class S7object {
+public class S7object extends Thread {
public S7control plccontrol; // PLC閫氳绫诲疄渚�
- private EPlcType plcType = EPlcType.S1500; // 瑗块棬瀛怭LC绫诲瀷
+ private EPlcType plcType = EPlcType.S1200; // 瑗块棬瀛怭LC绫诲瀷
private String ip = "192.168.10.1"; // plc ip鍦板潃
private int port = 102; // plc 绔彛鍙�
+
+ public PlcParameterObject PlcMesObject;
private static volatile S7object instance = null;
private S7object() {
if (plccontrol == null) {
plccontrol = new S7control(plcType, ip, port, 0, 0);
+
+ String PlcLoadGlass = S7object.class.getResource("/JsonFile/PlcLoadGlass.json").getPath();
+ //log.info(PLCAutoMes.class.getResource("").getPath());
+ PlcMesObject = InitUtil.initword(PlcLoadGlass);
}
}
@@ -33,4 +42,20 @@
}
return instance;
}
+
+ @Override
+ public void run() {
+ while (this != null) {
+ try {
+ Thread.sleep(100);
+
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ byte[] getplcvlues = plccontrol.ReadByte(PlcMesObject.getPlcAddressBegin(), PlcMesObject.getPlcAddressLength());
+ PlcMesObject.setPlcParameterList(getplcvlues);
+
+ }
+ }
}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/WebSocketServer.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/WebSocketServer.java
new file mode 100644
index 0000000..5fabafa
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/WebSocketServer.java
@@ -0,0 +1,160 @@
+package com.mes.common;
+
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.stereotype.Component;
+
+import javax.websocket.*;
+import javax.websocket.server.PathParam;
+import javax.websocket.server.ServerEndpoint;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+@ServerEndpoint(value = "/api/talk/{username}")
+@Component("webSocketServer")
+public class WebSocketServer {
+
+
+ public static ConfigurableApplicationContext applicationContext;
+
+ // 瑙e喅鏃犳硶娉ㄥ叆mapper闂 //浣跨敤鏂规硶
+ // homeMapper=WebSocketServer.applicationContext.getBean(HomeMapper.class);
+ public static void setApplicationContext(ConfigurableApplicationContext configurableApplicationContext) {
+ WebSocketServer.applicationContext = configurableApplicationContext;
+ }
+
+ private static final Logger log = LoggerFactory.getLogger(WebSocketServer.class);
+ private List<String> messages;
+ /**
+ * 璁板綍褰撳墠鍦ㄧ嚎杩炴帴鏁�
+ */
+ public static final Map<String, ArrayList<WebSocketServer>> sessionMap = new ConcurrentHashMap<>();
+
+ String username;
+ Session session;
+
+ public WebSocketServer() {
+ this.messages = new ArrayList<>();
+ }
+
+ /**
+ * 杩炴帴寤虹珛鎴愬姛璋冪敤鐨勬柟娉�
+ */
+ @OnOpen
+ public void onOpen(Session session, @PathParam("username") String username) {
+ this.username = username;
+ this.session = session;
+ List<WebSocketServer> webSocketServers = sessionMap.get(username);
+ if (webSocketServers == null) {
+ ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>();
+ arrayListwebserver.add(this);
+ sessionMap.put(username, arrayListwebserver);
+ } else {
+ webSocketServers.add(this);
+ }
+
+ log.info("鏈夋柊鐢ㄦ埛鍔犲叆锛寀sername={}, 褰撳墠鍦ㄧ嚎浜烘暟涓猴細{}", username, sessionMap.get(username).size());
+
+ // JSONObject result = new JSONObject();
+ // JSONArray array = new JSONArray();
+ // result.set("users", array);
+ // for (Object key : sessionMap.keySet()) {
+ // JSONObject jsonObject = new JSONObject();
+ // jsonObject.set("username", key);
+ // array.add(jsonObject);
+ // }
+
+ // sendAllMessage(JSONUtil.toJsonStr(result)); // 鍚庡彴鍙戦�佹秷鎭粰鎵�鏈夌殑瀹㈡埛绔�
+ }
+
+ /**
+ * 杩炴帴鍏抽棴璋冪敤鐨勬柟娉�
+ */
+ @OnClose
+ public void onClose(Session session, @PathParam("username") String username) {
+ List<WebSocketServer> webSocketServers = sessionMap.get(username);
+ ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>();
+ if (webSocketServers.size() > 1) {
+ for (WebSocketServer webSocketServer : webSocketServers) {
+ if (webSocketServer != this) {
+ arrayListwebserver.add(webSocketServer);
+ }
+ }
+ sessionMap.put(username, arrayListwebserver);
+ log.info("绉婚櫎username={}涓�鍚嶇敤鎴穝ession, {}鐨勫綋鍓嶅湪绾夸汉鏁颁负锛歿}", username, username, sessionMap.get(username).size());
+ } else {
+ sessionMap.remove(username);
+ log.info("绉婚櫎username={}涓�鍚嶇敤鎴穝ession, {}杩炴帴鍏抽棴, 褰撳墠杩炴帴鏁颁负锛歿}", username, username, sessionMap.size());
+ }
+
+ }
+
+ /**
+ * 鏀跺埌瀹㈡埛绔秷鎭悗璋冪敤鐨勬柟娉�
+ * 鍚庡彴鏀跺埌瀹㈡埛绔彂閫佽繃鏉ョ殑娑堟伅
+ * onMessage 鏄竴涓秷鎭殑涓浆绔�
+ * 鎺ュ彈 娴忚鍣ㄧ socket.send 鍙戦�佽繃鏉ョ殑 json鏁版嵁
+ *
+ * @param message 瀹㈡埛绔彂閫佽繃鏉ョ殑娑堟伅
+ */
+ @OnMessage
+ public void onMessage(String message, Session session, @PathParam("username") String username) {
+ log.info("鏈嶅姟绔敹鍒扮敤鎴穟sername={}鐨勬秷鎭�:{}", username, message);
+ JSONObject obj = JSONUtil.parseObj(message);
+ String text = obj.getStr("data");
+
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.set("message", text);
+ this.messages.add(text);
+ this.sendMessage(jsonObject.toString()); // JSONUtil.toJsonStr(jsonObject)
+
+ }
+
+ @OnError
+ public void onError(Session session, Throwable error) {
+ log.error("鍙戠敓閿欒");
+ error.printStackTrace();
+ }
+
+ /**
+ * 鏈嶅姟绔彂閫佹秷鎭粰瀹㈡埛绔�
+ */
+ public void sendMessage(String message) {
+ try {
+ // log.info("鏈嶅姟绔粰瀹㈡埛绔痆{}]鍙戦�佹秷鎭瘂}", this.session.getId(), message);
+ this.session.getBasicRemote().sendText(message);
+ } catch (Exception e) {
+ log.error("鏈嶅姟绔彂閫佹秷鎭粰瀹㈡埛绔け璐�", e);
+ }
+ }
+
+ // /**
+ // * 鏈嶅姟绔彂閫佹秷鎭粰鎵�鏈夊鎴风
+ // */
+ // public void sendAllMessage(String message) {
+ // try {
+ // for (WebSocketServer webSocketServer : sessionMap.values()) {
+ // // log.info("鏈嶅姟绔粰瀹㈡埛绔痆{}]鍙戦�佹秷鎭瘂}", this.session.getId(), message);
+ // webSocketServer.sendMessage(message);
+ // }
+ // } catch (Exception e) {
+ // log.error("鏈嶅姟绔彂閫佹秷鎭粰瀹㈡埛绔け璐�", e);
+ // }
+ // }
+
+ public List<String> getMessages() {
+ return messages;
+
+ }
+
+ public void clearMessages() {
+ messages.clear();
+ }
+
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java
deleted file mode 100644
index 6b2c34c..0000000
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.mes.engineering.controller;
-
-
-import com.mes.engineering.entity.Engineering;
-import com.mes.engineering.service.impl.EngineeringServiceImpl;
-import com.mes.utils.Result;
-import com.mes.workstation.service.UpWorkstationService;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import com.mes.engineering.service.EngineeringService;
-/**
- * <p>
- * 鍓嶇鎺у埗鍣�
- * </p>
- *
- * @author wu
- * @since 2024-04-22
- */
-@RestController
-@Slf4j
-@RequestMapping("/engineering/engineering")
-public class EngineeringController {
- @Autowired
- private EngineeringService engineeringService;
-
- @ApiOperation("寮�濮�/鏆傚仠浠诲姟/浼犻�掑伐绋嬪彿鍜岀姸鎬�,寮�濮嬫槸1 鏆傚仠鏄�0")
- @PostMapping("/changeTask") //璋冪敤涓婄墖浠诲姟
- @ResponseBody
- public Result <Engineering> changeTask(String projectId , Integer state) {
- boolean work=engineeringService.changeTask(projectId,state);
- log.info("寮�濮嬩换鍔¤繑鍥�:{}", work);
- return Result.build(200, "",null);
- }
-}
-
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/EngineeringService.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/EngineeringService.java
deleted file mode 100644
index ebca48c..0000000
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/EngineeringService.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.mes.engineering.service;
-
-import com.mes.engineering.entity.Engineering;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- * 鏈嶅姟绫�
- * </p>
- *
- * @author wu
- * @since 2024-04-22
- */
-public interface EngineeringService extends IService<Engineering> {
-
- boolean changeTask(String projectId,Integer state);
-}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
deleted file mode 100644
index fa3ec49..0000000
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.mes.engineering.service.impl;
-
-import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
-import com.mes.engineering.entity.Engineering;
-import com.mes.engineering.mapper.EngineeringMapper;
-import com.mes.engineering.service.EngineeringService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- * 鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author wu
- * @since 2024-04-22
- */
-@Service
-public class EngineeringServiceImpl extends ServiceImpl<EngineeringMapper, Engineering> implements EngineeringService {
- //寮�濮�/鏆傚仠浠诲姟
- @Override
- public boolean changeTask(String projectId, Integer state) {
- //浣跨敤projectId浣滀负鏉′欢淇敼state瀛楁
- LambdaUpdateChainWrapper<Engineering> wrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
- wrapper.set(Engineering::getState,state);
- wrapper.eq(Engineering::getEngineerId,projectId);
- return wrapper.update();
- }
-
-}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
index d3c4324..3fd3a87 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
@@ -1,33 +1,116 @@
package com.mes.job;
-import cn.hutool.json.JSONObject;
+import com.mes.common.S7object;
+import com.mes.device.PlcParameterObject;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.service.EngineeringService;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.uppattenusage.service.UpPattenUsageService;
+import com.mes.workstation.entity.UpWorkstation;
import com.mes.workstation.service.UpWorkstationService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+/**
+ * @author SNG-010
+ */
@Component
@Slf4j
public class PlcLoadGlassTask {
@Autowired
private UpWorkstationService upWorkstationService;
+ @Autowired
+ private EngineeringService engineeringService;
+ @Autowired
+ private UpPattenUsageService upPattenUsageService;
+ PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
/**
* fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
* fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
*/
+
@Scheduled(fixedDelay = 300)
public void plcLoadGlassTask() throws InterruptedException {
- JSONObject jsonObject = new JSONObject();
try {
- Thread.sleep(300);
- upWorkstationService.selectPriority();
+ //鑾峰彇鏄惁鏈変笂鐗囪姹�
+ String loadRequest = plcParameterObject.getPlcParameter("loadRequest").getValue();
+ String mesToPlc = plcParameterObject.getPlcParameter("MesToPlc").getValue();
+ //鍒ゆ柇寮�濮嬩笂鐗囩殑宸ョ▼鍙�
+ Engineering engineering = engineeringService.selectInitiate(1);
+ if ("1".equals(loadRequest) && engineering != null) {
+ log.info("寮�濮嬩笂鐗囦换鍔�");
+ UpPattenUsage upPattenUsage = upWorkstationService.selectPriority(engineering);
+ log.info("褰撴湁璇锋眰鏃舵煡璇㈠綋鍓嶄笂鐗囬『搴忕殑鐜荤拑淇℃伅{}", upPattenUsage);
+ UpWorkstation upwork = upWorkstationService.selectWorkstation(upPattenUsage);
+ log.info("绗﹀悎鐨勫昂瀵哥殑宸ヤ綅鐜荤拑锛歿}", upwork);
+ if (upwork != null) {
+ int workId = upwork.getWorkstationId();//宸ヤ綅id
+ double width = upwork.getPatternWidth();//瀹藉害
+ double height = upwork.getPatternHeight();//楂樺害
+ S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("WorkId").getAddress(), workId);
+ S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("GlassWidth").getAddress(), (long) width);
+ S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("GlassHeight").getAddress(), (long) height);
+ S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlc").getAddress(), 1);
+ //鏇存敼涓婄墖琛ㄧ姸鎬�
+ upPattenUsageService.updateUpPattenUsageState(upPattenUsage, workId);
+
+ }
+ }
+ if("1".equals(mesToPlc)&& "0".equals(loadRequest)){
+ //璇锋眰瀛椾负闆舵椂锛屼换鍔″瓧娓呴浂
+ S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlc").getAddress(), 0);
+ }
+ //鎵ц鍚庝紤鐪�300姣
+ //Thread.sleep(300);
} catch (Exception e) {
e.printStackTrace();
}
}
+ @Scheduled(fixedDelay = 300)
+ public void plcLoadGlassReport(){
+ //鑾峰彇鏄惁鏈夋眹鎶�
+ String loadStatus = plcParameterObject.getPlcParameter("PlcStatus").getValue();
+ if (loadStatus != null) {
+ log.info(loadStatus);
+ switch (loadStatus) {
+ case "1":
+ log.info("鏀跺埌姹囨姤浠诲姟瀹屾垚");
+ S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 1);
+ break;
+ case "2":
+ log.info("鏀跺埌姹囨姤鏈畬鎴愪换鍔�");
+ //鍑忓皯宸ヤ綅鏁伴噺,鎭㈠浠诲姟鐘舵��
+ overTask(loadStatus, 0);
+ break;
+ case "3":
+ log.info("鏀跺埌姹囨姤鐜荤拑鐮存崯");
+ overTask(loadStatus, 0);
+ break;
+ case "0":
+ log.info("鏀跺埌姹囨姤娓�0鐘舵��");
+ //鍑忓皯宸ヤ綅鏁伴噺,瀹屾垚浠诲姟鐘舵��
+ overTask(loadStatus, 100);
+ break;
+ }
+ }
+ }
+
+ public void overTask(String loadStatus, int state) {
+ UpPattenUsage upPattenUsage = upPattenUsageService.selectOverTask();
+ if (upPattenUsage != null) {
+ log.info("鏀跺埌姹囨姤娓厈}鐘舵��", loadStatus);
+ //鍑忓皯宸ヤ綅鏁伴噺
+ upWorkstationService.reduceWorkstationNumber(upPattenUsage.getState());
+ //瀹屾垚涓婄墖琛ㄧ姸鎬�
+ upPattenUsageService.updateUpPattenUsageState(upPattenUsage, state);
+ S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 0);
+ }
+ }
+
}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java
index 0534009..984060f 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java
@@ -29,6 +29,7 @@
private UpWorkstationService upWorkstationService;
@ApiOperation("鏄剧ず宸ヤ綅涓婄殑鐜荤拑淇℃伅")
@GetMapping("/list") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
+ @ResponseBody
public Result<List<UpWorkstation>> list() {
List<UpWorkstation> glass = upWorkstationService.list();
log.info("鏄剧ず宸ヤ綅涓婄殑鐜荤拑淇℃伅:{}", glass);
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java
index 74f6cce..b5265de 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java
@@ -56,7 +56,7 @@
/**
* 鍘熺墖楂�
*/
- private Double patternHeigth;
+ private Double patternHeight;
/**
* 鍘熺墖鍘氬害
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java
index f5358bf..6c44a7d 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java
@@ -3,7 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mes.workstation.entity.UpWorkSequence;
import com.mes.workstation.entity.UpWorkstation;
-import io.lettuce.core.dynamic.annotation.Param;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java
index 4c2638b..28547f4 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java
@@ -1,7 +1,8 @@
package com.mes.workstation.service;
import com.baomidou.mybatisplus.extension.service.IService;
-import com.mes.workstation.entity.UpWorkSequence;
+import com.mes.engineering.entity.Engineering;
+import com.mes.uppattenusage.entity.UpPattenUsage;
import com.mes.workstation.entity.UpWorkstation;
/**
@@ -13,22 +14,26 @@
* @since 2024-04-07
*/
public interface UpWorkstationService extends IService<UpWorkstation> {
- //PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
-
-
- //鍒ゆ柇浼樺厛鍚哥墖浣嶇疆鍚庡彂閫佸嚭鐗囦换鍔�
- UpWorkSequence selectPriority();
-
- //鏌ヨ姝e湪杩涜鐨勫伐绋�
-
-
+ //鍒ゆ柇浼樺厛鍚哥墖鐜荤拑
+ /**
+ * 鍒ゆ柇浼樺厛鍚哥墖浣嶇疆
+ * @return UpPattenUsage
+ */
+ UpPattenUsage selectPriority(Engineering engineering);
+ /**
+ * 鏌ヨ姝e湪杩涜鐨勫崟鐗囦俊鎭�
+ * @return UpWorkstation
+ */
+ UpWorkstation selectWorkstation(UpPattenUsage upPattenUsage);
+ /**
+ * 鍑忓皯宸ヤ綅鏁伴噺
+ */
+ void reduceWorkstationNumber(Integer upworkId);
/**
* 澧炲姞浜哄伐杈撳叆鐨勫伐浣嶇幓鐠冧俊鎭�
- *
* @param upwork
*/
- //淇敼宸ヤ綅琛ㄥ鍔犵幓鐠冧俊鎭垨鑰呭垹闄ょ幓鐠冧俊鎭�
void updateGlassMessage(UpWorkstation upwork);
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java
index ffd6491..3b8a57a 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java
@@ -1,7 +1,9 @@
package com.mes.workstation.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.engineering.entity.Engineering;
import com.mes.uppattenusage.entity.UpPattenUsage;
import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
import com.mes.workstation.entity.UpWorkSequence;
@@ -27,36 +29,47 @@
public class UpWorkstationServiceImpl extends ServiceImpl<UpWorkstationMapper, UpWorkstation> implements UpWorkstationService {
@Resource
UpPattenUsageMapper upPattenUsageMapper;
- public static final String DB_100_10 = "DB_100_10";
-
- //鍒ゆ柇鏄惁鍙互鍚哥墖杩涜浠诲姟
- public boolean isCanLoadGlass() {
- String loadstart = "鍚哥墖淇″彿";//plcmes.getPlcParameter("鍚哥墖淇″彿").getValue();
- return "1".equals(loadstart);
-
- }
- //鏄剧ず姝e湪杩涜浠诲姟鐨勫伐绋嬩俊鎭�
+ @Resource
+ UpWorkstationMapper upWorkstationMapper;
//鍒ゆ柇浼樺厛鍚哥墖浣嶇疆鍚庡彂閫佸嚭鐗囦换鍔�
- public UpWorkSequence selectPriority() {
- UpWorkSequence upwork= this.baseMapper.selectPriority(1);
- String start = "1";//plcmes.getPlcParameter("鍚哥墖淇″彿").getValue();
- UpPattenUsage uplist=new UpPattenUsage();
- if(start.equals("1")){
- //鍙戦�佸嚭鐗囦换鍔�
- UpdateWrapper<UpPattenUsage> updateWrapper = new UpdateWrapper<>();
- updateWrapper.eq("state",1).last("LIMIT 1");
- uplist= upPattenUsageMapper.selectOne(updateWrapper);
- log.info("鏌ヨ鍑烘湰娆″嚭鐗囩殑鐜荤拑淇℃伅[]",uplist);
- }
- return upwork;
+ public UpPattenUsage selectPriority(Engineering engineering) {
+ QueryWrapper<UpPattenUsage> wrapper=new QueryWrapper<>();
+ wrapper.eq("state", 0)
+ .eq("engineering_id",engineering.getEngineerId())
+ .orderByAsc("layout_sequence")
+ .last("limit 1");
+ return upPattenUsageMapper.selectOne(wrapper);
+ }
+
+ //鍒ゆ柇宸ヤ綅鏄惁鏈夌鍚堟潯浠剁殑鐜荤拑
+ @Override
+ public UpWorkstation selectWorkstation(UpPattenUsage upPattenUsage) {
+ QueryWrapper<UpWorkstation> wrapper = new QueryWrapper<>();
+ wrapper.eq("pattern_width", upPattenUsage.getWidth())
+ .eq("pattern_height", upPattenUsage.getHeight())
+ .eq("pattern_thickness", upPattenUsage.getThickness())
+ .eq("films_id", upPattenUsage.getFilmsId())
+ .gt("number", 0)
+ .orderByAsc("number")
+ .last("limit 1");
+ return this.baseMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public void reduceWorkstationNumber(Integer upworkId) {
+ UpdateWrapper<UpWorkstation> wrapper = new UpdateWrapper<>();
+ wrapper.eq("id", upworkId)
+ .setSql("number = number - 1");
+ boolean updateResult = upWorkstationMapper.update(null, wrapper) > 0;
+ log.info("鍑忓皯宸ヤ綅鏁伴噺{}",updateResult);
+
}
/**
* 澧炲姞浜哄伐杈撳叆鐨勫伐浣嶇幓鐠冧俊鎭�/鍒犻櫎浜哄伐鎼蛋鐨勭幓鐠冧俊鎭�
- * @param upwork
*/
@Override
public void updateGlassMessage(UpWorkstation upwork) {
@@ -66,4 +79,5 @@
}
+
}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/JsonFile/PlcLoadGlass.json b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/JsonFile/PlcLoadGlass.json
new file mode 100644
index 0000000..1a32fde
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/JsonFile/PlcLoadGlass.json
@@ -0,0 +1,71 @@
+{
+ "plcAddressBegin":"DB14.0",
+ "plcAddressLenght":"98",
+ "dataType":"word",
+ "parameteInfor":[
+ {
+ "codeId": "loadRequest",
+ "addressIndex":"0",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "PlcStatus",
+ "addressIndex":"10",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ },
+ {
+ "codeId": "MesToPlc",
+ "addressIndex":"20",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ },
+ {
+ "codeId": "WorkId",
+ "addressIndex":"24",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ },
+ {
+ "codeId": "GlassWidth",
+ "addressIndex":"26",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ },
+ {
+ "codeId": "GlassHeight",
+ "addressIndex":"28",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ }
+ ,
+ {
+ "codeId": "MesToPlcStatus",
+ "addressIndex":"40",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ },
+ {
+ "codeId": "MesToPlcStatusId",
+ "addressIndex":"42",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ },
+ {
+ "codeId": "MesTaskStatus",
+ "addressIndex":"56",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ }
+ ]
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
index 94840e1..625cc04 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
@@ -7,5 +7,5 @@
name: loadGlass
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
- configuration:
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
\ No newline at end of file
+# configuration:
+# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 鎵撳嵃sql璇彞
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
index afb83c3..9725c57 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
@@ -1,11 +1,14 @@
package com.mes;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.service.EngineeringService;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.service.GlassInfoService;
-import com.mes.pp.mapper.OptimizeProjectMapper;
-import com.mes.uppattenusage.entity.OptimizeUpPattenUsage;
+import com.mes.pp.service.OptimizeProjectService;
import com.mes.uppattenusage.entity.UpPattenUsage;
import com.mes.uppattenusage.service.impl.UpPattenUsageServiceImpl;
+import com.mes.workstation.entity.UpWorkstation;
+import com.mes.workstation.service.UpWorkstationService;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -13,27 +16,29 @@
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
-import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
-import java.util.Map;
/**
- * @Author : zhoush
- * @Date: 2024/3/27 16:37
- * @Description:
+
*/
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(classes = LoadGlassModuleApplication.class)
public class LoadGlassModuleApplicationTest {
- @Resource
- private OptimizeProjectMapper optimizeProjectMapper;
+// @Resource
+// private OptimizeProjectMapper optimizeProjectMapper;
@Autowired
private UpPattenUsageServiceImpl upPattenUsageService;
@Autowired
private GlassInfoService glassInfoService;
+ @Autowired
+ private EngineeringService engineeringService;
+ @Autowired
+ private UpWorkstationService workstationService;
+ @Autowired
+ private OptimizeProjectService optimizeProjectService;
@Test
public void test() {
// List<OptimizeProject> list = optimizeProjectMapper.saveProject("P24032204");
@@ -48,12 +53,42 @@
@Test
public void testFindPa() {
- List<UpPattenUsage> glass = upPattenUsageService.selectSaveUpPattenUsage("P24032204");
- log.info("瀹屾暣璺緞锛歿}", Arrays.asList(glass));
+ Engineering engineering= engineeringService.selectInitiate(1);
+ log.info("寮�濮嬩笂鐗囩殑宸ョ▼锛歿}", Arrays.asList(engineering));
+ UpPattenUsage upPattenUsage = workstationService.selectPriority(engineering);
+ log.info("涓婄墖椤哄簭锛歿}", Arrays.asList(upPattenUsage));
+ UpWorkstation glass2=workstationService.selectWorkstation(upPattenUsage);
+ log.info("绗﹀悎鐨勫伐浣嶇幓鐠儃}",glass2);
+ workstationService.reduceWorkstationNumber(glass2.getWorkstationId());
+ //鍑忓皯鏁伴噺
+ upPattenUsageService.updateUpPattenUsageState(upPattenUsage,1);
+ //鏇存柊鐘舵��
}
+
+
@Test
- public void textglassinfo(){
- List<GlassInfo> glass= glassInfoService.selectGlassInfo("P24032204");
+ public void textengineering(){
+ List<Engineering> glass= engineeringService.selectEngineering("P24032204");
+ engineeringService.saveEngineering(glass);
log.info("glassinfo锛歿}", Arrays.asList(glass));
}
+ @Test
+ public void textengineering2(){
+ //鏇存柊宸ョ▼琛ㄧ姸鎬佷负宸查鍙�
+ //optimizeProjectService.changeTask("P24050801",200);
+ engineeringService.changeTask("P24051102",1);
+ }
+ @Test
+ public void textengineering3(){
+ //鍒ゆ柇鏄惁宸蹭繚瀛樿繃宸ョ▼鍙峰埌涓婄墖琛�
+ UpPattenUsage upPattenUsage=upPattenUsageService.selectOverTask();
+ log.info("涓婄墖琛ㄤ换鍔′腑鐨勬暟鎹畕}",upPattenUsage);
+ }
+ @Test
+ public void textengineering4(){
+ //鍒ゆ柇鏄惁宸蹭繚瀛樿繃宸ョ▼鍙峰埌涓婄墖琛�
+ List<Engineering> engineerings=engineeringService.selectTask();
+ log.info("涓婄墖琛ㄤ换鍔′腑鐨勬暟鎹畕}",engineerings);
+ }
+
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java
new file mode 100644
index 0000000..ddac7f5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java
@@ -0,0 +1,26 @@
+package com.mes;
+
+import com.mes.common.S7object;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author SNG-012
+ */
+@Slf4j
+@Component
+@Order(1)
+
+public class AppRunnerConfig implements ApplicationRunner {
+
+
+ @Override
+ public void run(ApplicationArguments args) throws Exception {
+ log.info("鍚姩瀹屾垚");
+ S7object.getinstance().start();
+
+ }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/PLCAutoMes.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/PLCAutoMes.java
deleted file mode 100644
index e3218e1..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/PLCAutoMes.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package com.mes.common;
-
-import com.mes.device.PlcParameterObject;
-import com.mes.tools.InitUtil;
-import org.springframework.context.annotation.Configuration;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-//import static com.mes.tools.InitUtil.readAndUpdateWordValues;
-
-public class PLCAutoMes extends Thread {
-
- // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
- private Configuration config;
- private static InitUtil initUtil;
-
-
- // 鍗曚緥瀹炰緥
- private static PLCAutoMes instance;
- private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath();
- private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath();
- private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath();
-
- private static String PlcAlarm = PLCAutoMes.class.getResource("/JsonFile/PlcAlarm.json").getPath();
- // private static String PlcTest = PLCAutoMes.class.getResource("/JsonFile/PlcTest.json").getPath();
-
- // 璋冪敤initword鏂规硶
-
- //
- // public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm);
- public static PlcParameterObject PlcMesObject = initUtil.initword(PlcMes);
- public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead);
- public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe);
-
- // 绉佹湁鏋勯�犲嚱鏁�
- public PLCAutoMes() throws IOException {
-
- initUtil = new InitUtil();
- }
-
- // 鑾峰彇鍗曚緥瀹炰緥
- public static synchronized PLCAutoMes getInstance() throws IOException {
- if (instance == null) {
- instance = new PLCAutoMes();
- }
- return instance;
- }
-
- @Override
- public void run() {
- while (this != null) {
- try {
- Thread.sleep(100);
-
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
-
- // System.out.println(jsonFilePath);
-
- // readAndUpdateWordValues(PlcReadObject);
- //readAndUpdateWordValues(PlcMesObject);
-
- List<String> addresses = new ArrayList<>();
- addresses.add("FeedID");
- addresses.add("AddStart");
-
- List<String> addresses2 = new ArrayList<>();
- addresses2.add("FeedID");
- addresses2.add("FeedCarStatus");
-
- // System.out.println(PlcReadObject.getPlcParameterValues(addresses2));
-
- }
- }
-}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plcdownglass.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plcdownglass.java
deleted file mode 100644
index 9b1b935..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plcdownglass.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package com.mes.common;
-
-import cn.hutool.json.JSONObject;
-
-import com.mes.downstorage.service.DownStorageCageService;
-import com.mes.downworkstation.service.DownWorkstationService;
-
-
-import com.mes.tools.WebSocketServer;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-@Component
-@Slf4j
-public class Plcdownglass {
-
- public static final String RESULT_IN = "1";
- public static final String RESULT_OUT = "2";
- public static final String RESULT_IN_OUT = "3";
-
- @Autowired
- private DownStorageCageService downStorageCageService;
- @Autowired
- private DownWorkstationService downWorkstationService;
-
-
- @Scheduled(fixedDelay = 300)
- public void PlcdownglassTask() throws InterruptedException {
- JSONObject jsonObject = new JSONObject();
- try {
- Thread.sleep(300);
-
-
- // String result = S7control.getinstance().ReadWord("DB14.0", 1).get(0) + "";
-// String number = S7control.getinstance().ReadWord("DB14.2", 1).get(0) + "";
- String result = "3";
- String number = "4";
- // 杩涚墖璇锋眰
- if (RESULT_IN.equals(result)) {
- downStorageCageService.processInto(number);
- }
- // 鍑虹墖璇锋眰
- else if (RESULT_OUT.equals(result)) {
- downStorageCageService.processOut();
- }
- // 杩涘嚭鐗囪姹�
- else if (RESULT_IN_OUT.equals(result)) {
- // 鍏堝嚭鍚庤繘
- if (downStorageCageService.processOut()) {
- //涓嬬墖鏇存柊
- downWorkstationService.insertdownglassinfo();
- // 鎵ц杩涚墖鎿嶄綔
- downStorageCageService.processInto(number);
- } else {
- // 濡傛灉 processOut() 杩斿洖 false锛屽彲浠ュ湪杩欓噷澶勭悊鍏朵粬閫昏緫
- log.info("鍑虹墖璇锋眰澶辫触锛屾棤娉曟墽琛岃繘鐗囨搷浣�");
- }
-
- }
-
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
-}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plchome.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plchome.java
deleted file mode 100644
index 4969337..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plchome.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.mes.common;
-
-import cn.hutool.json.JSONObject;
-
-import com.mes.downworkstation.service.DownWorkstationService;
-import com.mes.tools.WebSocketServer;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Supplier;
-
-@Component
-public class Plchome extends Thread {
- private int i = 1;
- private static final Logger log = LogManager.getLogger(Plchome.class);
- @Autowired
- private DownWorkstationService downWorkstationService;
-
- // private final Supplier<DownGlassLogic> plcServiceSupplier;
-
-// public Plchome() {
-// this.plcServiceSupplier = () -> WebSocketServer.applicationContext.getBean(DownGlassLogic.class);
-// }
-
-
- @Override
- public void run() {
- while (!Thread.currentThread().isInterrupted()) {
- try {
- i++;
- Thread.sleep(1000);
- JSONObject jsonObject = new JSONObject();
- System.out.println(77);
- downWorkstationService = WebSocketServer.applicationContext.getBean(DownWorkstationService.class);
- List<Map<String, Object>> yy= downWorkstationService.getTotalGlassDimensionsByWorkstation();
- jsonObject.append("data", yy);
- ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("unloadglass");
- if (sendwServer != null) {
- for (WebSocketServer webserver : sendwServer) {
- webserver.sendMessage(jsonObject.toString());
- log.info("鍑嗗鍚� WebSocket 鏈嶅姟鍣ㄥ彂閫佹秷鎭�: {}", jsonObject.toString());
- }
- }
-
-
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- e.printStackTrace();
- }
-
-
-
- }
- }
-}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7control.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7control.java
deleted file mode 100644
index 429a6e0..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7control.java
+++ /dev/null
@@ -1,458 +0,0 @@
-package com.mes.common;
-
-import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
-import com.github.xingshuangs.iot.protocol.s7.service.MultiAddressWrite;
-import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
-import com.google.common.primitives.Bytes;
-
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.List;
-
-public class S7control {
-
- S7PLC s7PLC; // PLC閫氳绫诲疄渚�
- private EPlcType plcType = EPlcType.S1500; // 瑗块棬瀛怭LC绫诲瀷
- private String ip = "192.168.10.1"; // plc ip鍦板潃
- private int port = 102; // plc 绔彛鍙�
-
- private static volatile S7control instance = null;
-
- private S7control() {
- if (s7PLC == null)
- s7PLC = new S7PLC(plcType, ip, port, 0, 0);
- }
-
- // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
- public static S7control getinstance() {
- if (instance == null) {
- synchronized (S7control.class) {
- if (instance == null) {
- instance = new S7control();
- }
- }
- }
- return instance;
- }
-
- /**
- * 鍏抽棴瑗块棬瀛恠7閫氳杩炴帴
- */
- public void CloseS7client() {
- if (s7PLC == null)
- s7PLC.close();
- s7PLC.checkConnected();
- }
-
- /**
- * s7閫氳杩炴帴鐘舵��
- */
- public boolean CheckConnected() {
- return s7PLC.checkConnected();
- }
-
- /**
- * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆涓�涓獁ord
- *
- * @param address 鍦板潃
- * @param data word鐨勫��
- */
- public void WriteWord(String address, short data) {
- if (s7PLC == null) {
- return;
- }
- s7PLC.writeInt16(address, data);
- }
-
- /**
- * 浠庢煇鍦板潃杩炵画 鍐欏叆澶氫釜word
- *
- * @param address 鍦板潃
- * @param datas word鐨勫��
- */
- public void WriteWord(String address, List<Short> datas) {
- if (s7PLC == null)
- return;
- // s7PLC.write(address, data);
- List<String> addresslist = GetAddressList(address, datas.size(), 16);
- MultiAddressWrite addressWrite = new MultiAddressWrite();
- for (int i = 0; i < datas.size(); i++) {
- addressWrite.addInt16(addresslist.get(i), datas.get(i));
- }
- s7PLC.writeMultiData(addressWrite);
- }
-
- /**
- * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆澶氫釜word
- *
- * @param address 鍦板潃
- * @param datas word鐨勫��
- */
-
-
- /**
- * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆涓�涓狟it
- *
- * @param address 鍦板潃
- * @param data Bit鐨勫��
- */
- public void WriteBit(String address, Boolean data) {
- if (s7PLC == null)
- return;
- s7PLC.writeBoolean(address, data);
- }
-
- /**
- * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆澶氫釜bit
- *
- * @param address 鍦板潃
- * @param datas bit鐨勫��
- */
- public void WriteBit(List<String> address, List<Boolean> datas) {
- if (s7PLC == null)
- return;
- // s7PLC.write(address, data);
-
- MultiAddressWrite addressWrite = new MultiAddressWrite();
- for (int i = 0; i < address.size(); i++) {
- addressWrite.addBoolean(address.get(i), datas.get(i));
- }
- s7PLC.writeMultiData(addressWrite);
- }
-
- /**
- * 浠庢煇鍦板潃杩炵画 鍐欏叆澶氫釜bit
- *
- * @param address 鍦板潃
- * @param datas word鐨勫��
- */
- public void WriteBit(String address, List<Boolean> datas) {
- if (s7PLC == null)
- return;
- // s7PLC.write(address, data);
- List<String> addresslist = GetAddressList(address, datas.size(), 1);
- MultiAddressWrite addressWrite = new MultiAddressWrite();
- for (int i = 0; i < datas.size(); i++) {
- addressWrite.addBoolean(addresslist.get(i), datas.get(i));
- }
- s7PLC.writeMultiData(addressWrite);
- }
-
- /**
- * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆澶氫釜byte
- *
- * @param address 鍦板潃
- * @param datas byte鐨勫��
- */
- public void WriteByte(String address, byte[] datas) {
- if (s7PLC == null)
- return;
- // s7PLC.write(address, data);
- s7PLC.writeByte(address, datas);
- }
-
- /**
- * 鎸夋寚瀹氱殑鍦板潃 璇诲彇word缁撴灉闆�
- *
- * @param address 鍦板潃
- * @return 缁撴灉
- */
- public List<Short> ReadWord(List<String> address) {
- if (s7PLC == null)
- return null;
-
- try {
- return s7PLC.readInt16(address);
- } catch (Exception e) {
- System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
- return null;
- }
- }
-
-
- private int getIndexFromAddress(String address) {
-
- // 鍙互瑙f瀽鍑哄湴鍧�涓殑鏁板瓧閮ㄥ垎锛屽苟杞崲涓烘暣鏁�
- return 0;
- }
-
- private String getAddressFromIndex(int index) {
-
- // 鏁存暟杞崲涓哄湴鍧�鏍煎紡鐨勫瓧绗︿覆
- return "";
- }
-
- /**
- * 鎸夋寚瀹氱殑鍦板潃 璇诲彇word缁撴灉闆�
- *
- * @param address 鍦板潃
- * @param count 杩炵画璇诲灏戜釜word
- * @return 缁撴灉
- */
- public List<Short> ReadWord(String address, int count) {
- if (s7PLC == null)
- return null;
-
- List<String> addresslist = GetAddressList(address, count, 16);
- try {
- return s7PLC.readInt16(addresslist);
- } catch (Exception e) {
- System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
-
- return null;
- }
- }
-
- /**
- * 鎸夋寚瀹氱殑鍦板潃 璇诲彇byte缁撴灉闆�
- *
- * @param address 鍦板潃
- * @param count 杩炵画璇诲灏戜釜byte
- * @return 缁撴灉
- */
- public byte[] ReadByte(String address, int count) {
- if (s7PLC == null)
- return null;
- // List<String> addresslist = GetAddressList(address, count, 16);
-
- try {
- return s7PLC.readByte(address, count);
- } catch (Exception e) {
- // 澶勭悊寮傚父
- System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
- return null;
- }
-
- }
-
- /**
- * 鎸夋寚瀹氱殑鍦板潃 鎸塨it浣� 0 flase 1 true 璇诲彇缁撴灉
- *
- * @param addresslist 鍦板潃闆�
- * @return Boolean缁撴灉
- */
- public List<Boolean> ReadBits(List<String> addresslist) {
- if (s7PLC == null)
- return null;
- return s7PLC.readBoolean(addresslist);
- }
-
- //璇诲彇涓嶈繛缁湴鍧�bit
- public List<Boolean> readBits(List<String> addressList) {
- if (s7PLC == null || addressList.isEmpty()) {
- return null;
- }
-
- List<Boolean> values = new ArrayList<>();
- for (String address : addressList) {
- try {
- boolean value = s7PLC.readBoolean(address);
- values.add(value);
- } catch (Exception e) {
- // 澶勭悊寮傚父
- System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
- }
- }
-
- return values;
- }
-
-
- //璇诲彇String
- public List<String> readStrings(List<String> addressList) {
- if (s7PLC == null) {
- return null;
- }
- List<String> result = new ArrayList<>();
- for (String address : addressList) {
- try {
- byte[] bytes = s7PLC.readByte(address, 14);
- if (bytes != null) {
- String str = new String(bytes, StandardCharsets.UTF_8);
- result.add(str);
- }
- } catch (Exception e) {
- System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
- result.add(null);
- }
- }
-
- return result;
- }
-
-
- public List<String> readStringsandword(List<String> addressList) {
- if (s7PLC == null) {
- return null;
- }
- List<String> result = new ArrayList<>();
- for (String address : addressList) {
- try {
- if (address.contains("-")) {
- address = address.substring(0, address.indexOf("-"));
-
- byte[] bytes = s7PLC.readByte(address, 14);
- if (bytes != null) {
- String str = new String(bytes, StandardCharsets.UTF_8);
- result.add(str);
- }
-
- } else {
- Short value = s7PLC.readInt16(address);
- result.add(value.toString());
-
- }
- } catch (Exception e) {
- System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
- result.add(null);
- }
- }
-
- return result;
- }
-
-
- //涓嶈繛缁湴鍧�鍐欏叆Word
- public void WriteWord(List<String> address, List<Short> datas) {
- if (s7PLC == null)
- return;
-
- for (int i = 0; i < address.size(); i++) {
- String addr = address.get(i);
- short data = datas.get(i);
-
- if (addr.contains("-")) {
- outmesid(String.valueOf(data), addr); // 鍗曠嫭澶勭悊甯︾牬鎶樺彿鐨勫湴鍧�
- } else {
- s7PLC.writeInt16(addr, data); // 灏嗘暟鎹啓鍏ュ崟涓湴鍧�
- }
- }
- }
-
-
- //瀛楃涓插啓鍏�
- public void outmesid(String data, String addr) {
-// System.out.println("outmesid: " + data);
- List<Byte> glassidlist = new ArrayList<>();
- String[] parts = addr.split("-");
- if (parts.length == 2) {
- addr = parts[0]; // 鍙繚鐣� "-" 鍓嶉潰鐨勯儴鍒�
- }
- for (char iditem : data.toCharArray()) {
- glassidlist.add(Byte.valueOf(String.valueOf(iditem)));
- }
- byte[] bytes = Bytes.toArray(glassidlist);
- S7control.getinstance().WriteByte(addr, bytes);
- }
-
- //璇诲彇涓嶈繛缁瓀ord
- public List<Short> readWords(List<String> addresses) {
- if (s7PLC == null) {
- return null;
- }
-
- List<Short> data = new ArrayList<>();
-
- for (String address : addresses) {
- try {
-
- // 鍗曚釜鍦板潃
- Short value = s7PLC.readInt16(address);
- data.add(value);
- } catch (Exception e) {
- System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
-
- }
-
- }
- return data;
- }
-
- //璇诲彇鏃堕棿
- public Long readtime(String address) {
- if (s7PLC == null)
- return null;
- try {
- return s7PLC.readTime(address);
- } catch (Exception e) {
- System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
- return null;
- }
- }
-
-
- public void writetime(String address, long datas) {
- if (s7PLC == null)
- return;
-
-
- s7PLC.writeTime(address, datas); // 灏嗘暟鎹啓鍏ュ崟涓湴鍧�
- }
-
-
- private int extractAddressNumber(String address) {
- String numberStr = address.replaceAll("\\D+", ""); // 浣跨敤姝e垯琛ㄨ揪寮忔彁鍙栨暟瀛楅儴鍒�
- return Integer.parseInt(numberStr);
- }
-
-
- /**
- * 浠庢寚瀹氱殑鍦板潃寮�濮� 杩炵画鎸塨it浣嶈鍙�
- *
- * @param address 鍦板潃
- * @param count 闀垮害
- * @return Boolean缁撴灉
- */
- public List<Boolean> ReadBits(String address, int count) {
- if (s7PLC == null)
- return null;
- List<String> addresslist = GetAddressList(address, count, 1);
- try {
- return s7PLC.readBoolean(addresslist);
- } catch (Exception e) {
- System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
- return null;
- }
-
- }
-
- ;
-
-
- public void writeString(String addr, String data) {
- s7PLC.writeString(addr, data);
- }
-
-
- private List<String> GetAddressList(String address, int count, int addedbit) {
- List<String> addresslist = new ArrayList<String>();
-
- String[] stringdatas = address.trim().split("\\.");
- if (stringdatas.length < 2 || !address.startsWith("DB"))
- return null;
- int dbwindex = 0;
- int bitindex = 0;
- if (stringdatas.length == 2) {
- dbwindex = Integer.parseInt(stringdatas[1]);
- } else if (stringdatas.length == 3) {
- dbwindex = Integer.parseInt(stringdatas[1]);
- bitindex = Integer.parseInt(stringdatas[2]);
- } else
- return null;
-
- addresslist.add(address);
- for (int i = 0; i < count - 1; i++) {
-
- int bitcurrent = bitindex + addedbit;
- if (bitcurrent > 7) {
- dbwindex += bitcurrent / 8;
- bitindex = 0;
- } else
- bitindex = bitcurrent;
-
- String endstr = stringdatas.length == 3 ? "." + bitindex : "";
- addresslist.add(stringdatas[0] + "." + dbwindex + endstr);
- }
- return addresslist;
- }
-}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7object.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7object.java
new file mode 100644
index 0000000..7ec3d2e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7object.java
@@ -0,0 +1,61 @@
+package com.mes.common;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.device.PlcParameterObject;
+import com.mes.tools.InitUtil;
+import com.mes.tools.S7control;
+
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 15:13
+ * @Description:
+ */
+public class S7object extends Thread {
+ public S7control plccontrol; // PLC閫氳绫诲疄渚�
+ private EPlcType plcType = EPlcType.S1200; // 瑗块棬瀛怭LC绫诲瀷
+ private String ip = "192.168.10.1"; // plc ip鍦板潃
+ private int port = 102; // plc 绔彛鍙�
+
+
+ public PlcParameterObject PlcMesObject;
+ private static volatile S7object instance = null;
+
+ private S7object() {
+ if (plccontrol == null) {
+ plccontrol = new S7control(plcType, ip, port, 0, 0);
+
+ String PlcCacheGlass=S7object.class.getResource("/JsonFile/PlcdownGlass.json").getPath();
+ //log.info(PLCAutoMes.class.getResource("").getPath());
+ PlcMesObject = InitUtil.initword(PlcCacheGlass);
+ }
+ }
+
+ // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+ public static S7object getinstance() {
+ if (instance == null) {
+ synchronized (S7object.class) {
+ if (instance == null) {
+ instance = new S7object();
+ }
+ }
+ }
+ return instance;
+ }
+
+ @Override
+ public void run() {
+ while (this != null) {
+ try {
+ Thread.sleep(100);
+
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ byte[] getplcvlues= plccontrol.ReadByte(PlcMesObject.getPlcAddressBegin(),PlcMesObject.getPlcAddressLength());
+ PlcMesObject.setPlcParameterList(getplcvlues);
+
+ }
+ }
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java
index 5903d00..13fbc8a 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java
@@ -5,6 +5,7 @@
import lombok.EqualsAndHashCode;
import java.io.Serializable;
+import java.util.Date;
/**
* <p>
@@ -75,4 +76,9 @@
* 鐜荤拑id
*/
private String glassId;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private Date CreateTime;
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java
index f6d883e..02674b0 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java
@@ -26,7 +26,7 @@
*
* @return
*/
- void updateTaskStateToZero(String id);
+ void updateTaskState(String id);
/**
* 鍒犻櫎浠诲姟
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java
index 2d163d1..df1f641 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java
@@ -11,6 +11,7 @@
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
+import java.util.Date;
import java.util.List;
/**
@@ -28,14 +29,14 @@
@Override
public List<DownGlassTask> getUnloadingTaskState() {
QueryWrapper<DownGlassTask> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("task_stauts", 1);
+ queryWrapper.eq("task_stauts", 0);
return baseMapper.selectList(queryWrapper);
}
@Override
- public void updateTaskStateToZero(String id) {
+ public void updateTaskState(String id) {
UpdateWrapper<DownGlassTask> updateWrapper = new UpdateWrapper<>();
- updateWrapper.set("task_stauts", 0).eq("id", id);
+ updateWrapper.set("task_stauts", 2).eq("id", id);
baseMapper.update(new DownGlassTask(), updateWrapper);
}
@@ -71,8 +72,8 @@
// 濡傛灉涓婚敭鍊间笉瀛樺湪锛屽垯杩涜鎻掑叆鎿嶄綔
DownGlassTask newDownGlassTask = new DownGlassTask();
BeanUtils.copyProperties(downGlassTask, newDownGlassTask);
- newDownGlassTask.setTaskStauts(0); // 榛樿浠诲姟鐘舵�佷负0
-
+ newDownGlassTask.setTaskStauts(1); // 榛樿浠诲姟鐘舵�佷负1
+ newDownGlassTask.setCreateTime(new Date());
int rows = baseMapper.insert(newDownGlassTask);
return rows > 0 ? rows : null;
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
index 1327452..173056a 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
@@ -1,11 +1,12 @@
package com.mes.downstorage.service;
+import com.github.yulichang.base.MPJBaseService;
import com.mes.downstorage.entity.DownStorageCageDetails;
import java.util.List;
import java.util.Map;
-public interface DownStorageCageDetailsService {
+public interface DownStorageCageDetailsService extends MPJBaseService<DownStorageCageDetails> {
/**
* @return //娣诲姞鐞嗙墖绗煎唴淇℃伅
*/
@@ -47,8 +48,8 @@
List<DownStorageCageDetails> CacheOut(int start, int end);
/**
- * @return 鏌ヨ绌烘牸瀛�
+ * @return 鍑虹墖
*/
- // List<DownStorageCageDetails> selectCacheEmpty2();
+ List<DownStorageCageDetails> CacheOut1(int start, int end);
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
index 7aea275..32d55a3 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
@@ -2,8 +2,10 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.yulichang.base.MPJBaseService;
+import com.mes.downglassinfo.entity.DownGlassTask;
import com.mes.downstorage.entity.DownStorageCage;
import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.glassinfo.entity.GlassInfo;
import java.util.List;
import java.util.Map;
@@ -18,25 +20,12 @@
*/
public interface DownStorageCageService extends MPJBaseService<DownStorageCage> {
-
+ DownGlassTask createDownGlassTask(GlassInfo glassInfo, String startCell, String endCell, String taskType);
+ DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, String startCell, String endCell, String taskType);
// List<Map<String, Object>> selectCacheLeisure();
- /**
- * @param Number
- * @return 杩涚墖
- */
- boolean processInto(String Number);
- /**
-
- * @return 绌烘牸
- */
-
- /**
- * @return 鍑虹墖
- */
- boolean processOut();
/**
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
index c10e337..f94df84 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
@@ -1,5 +1,8 @@
package com.mes.downstorage.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.yulichang.query.MPJQueryWrapper;
@@ -12,20 +15,32 @@
import com.mes.downstorage.mapper.DownStorageCageMapper;
import com.mes.downstorage.service.DownStorageCageDetailsService;
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.mapper.DownWorkstationMapper;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.mapper.GlassInfoMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+
@Slf4j
@Service
public class DownStorageCageDetailsServiceImpl extends ServiceImpl<DownStorageCageDetailsMapper, DownStorageCageDetails> implements DownStorageCageDetailsService {
- @Autowired(required=false)
+ @Autowired(required = false)
private DownStorageCageMapper downStorageCageMapper;
@Autowired
private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
+ @Autowired
+ private GlassInfoMapper glassInfoMapper;
+ @Autowired
+ private DownWorkstationMapper downWorkstationMapper;
@Override
public void addDownStorageCageDetails(DownStorageCageDetails details) {
@@ -35,7 +50,7 @@
@Override
//淇敼鐞嗙墖绗煎唴淇℃伅 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
- public boolean updatedownStorageCageDetails(DownStorageCageDetails details){
+ public boolean updatedownStorageCageDetails(DownStorageCageDetails details) {
baseMapper.updateById(details);
return true;
}
@@ -59,19 +74,6 @@
);
}
-
-
-
-
-
-
-
-
-
-
-
-
-
// @Override
@@ -159,17 +161,78 @@
// }
+ @Override
+ public List<DownStorageCageDetails> CacheOut1(int start, int end) {
+ List<DownStorageCageDetails> cageDetails = downStorageCageDetailsMapper.selectList(null);
+ // Step 5: 鍒ゆ柇 down_storage_cage_details 缁撴灉鏁伴噺鏄惁涓�9锛屽鏋滄槸锛屽垯鎵ц鍙﹀涓�涓煡璇�
+ if (cageDetails.size() == 9) {
+ log.info("1銆佺瀛愭弧浜嗙殑鏃跺�欙紝鎸夌収绗煎唴鐗堝浘id 鐗堝浘鐗囧簭鍑�");
+ List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
+ List<String> flowCardIds = new ArrayList<>();
+ for (DownWorkstation workstation : workstationList) {
+ flowCardIds.add(workstation.getFlowCardId());
+ }
+
+ if (flowCardIds.isEmpty()) {
+ log.error("鏈壘鍒板搴旂殑 flow_card_id");
+ return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+ }
+ LambdaQueryWrapper<DownStorageCageDetails> anotherQueryWrapper = Wrappers.lambdaQuery();
+
+ anotherQueryWrapper.orderByAsc(DownStorageCageDetails::getTemperingLayoutId);
+ anotherQueryWrapper.orderByDesc(DownStorageCageDetails::getTemperingFeedSequence);
+ anotherQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
+ anotherQueryWrapper.last("LIMIT 1");
+ return downStorageCageDetailsMapper.selectList(anotherQueryWrapper);
+ } else {
+
+ // Step 1: 鏌ヨ DownWorkstation 琛ㄨ幏鍙栧搴� workstation_id 鐨� flow_card_id
+ List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
+ List<String> flowCardIds = new ArrayList<>();
+ for (DownWorkstation workstation : workstationList) {
+ flowCardIds.add(workstation.getFlowCardId());
+ }
+
+ if (flowCardIds.isEmpty()) {
+ log.error("2銆佹湭鎵惧埌瀵瑰簲鐨� flow_card_id");
+ return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+ }
+ log.info("娴佺▼鍗�:{}", flowCardIds);
+ LambdaQueryWrapper<GlassInfo> queryWrapper2 = Wrappers.lambdaQuery();
+ queryWrapper2.select(GlassInfo::getFlowCardId,
+ GlassInfo::getGlassId,
+ GlassInfo::getTemperingLayoutId,
+ GlassInfo::getTemperingFeedSequence)
+ .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info")
+ .orderByAsc(GlassInfo::getTemperingLayoutId)
+ .orderByDesc(GlassInfo::getTemperingFeedSequence)
+ .last("LIMIT 1");
+
+ // 鏌ヨ GlassInfo 琛�
+ List<GlassInfo> glassInfos = glassInfoMapper.selectList(queryWrapper2);
+ if (glassInfos.isEmpty()) {
+ log.error("鏈壘鍒板搴旂殑鐜荤拑淇℃伅");
+ return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+ }
+ // Step 3: 鏋勯�犳煡璇� down_storage_cage_details 琛ㄧ殑鏉′欢
+ List<String> glassIds = glassInfos.stream().map(GlassInfo::getGlassId).collect(Collectors.toList());
+ LambdaQueryWrapper<DownStorageCageDetails> cageDetailsQueryWrapper = Wrappers.lambdaQuery();
+ cageDetailsQueryWrapper.in(DownStorageCageDetails::getGlassId, glassIds);
+ cageDetailsQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
+
+ log.info("鎸夌収娴佺▼鍗$殑鐗堝浘id 鐗堝浘鐗囧簭鍑�");
+ // Step 4: 鏌ヨ down_storage_cage_details 琛ㄥ苟杩斿洖缁撴灉
+ return downStorageCageDetailsMapper.selectList(cageDetailsQueryWrapper);
+ }
-
-
-
+ }
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
index d139f5f..e580072 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
@@ -1,9 +1,10 @@
package com.mes.downstorage.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
-import com.mes.common.PLCAutoMes;
-import com.mes.common.S7control;
+
import com.mes.device.PlcParameterObject;
import com.mes.downglassinfo.entity.DownGlassTask;
import com.mes.downglassinfo.service.DownGlassTaskService;
@@ -27,7 +28,7 @@
/**
* <p>
- * 鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
* </p>
*
* @author zhoush
@@ -36,7 +37,7 @@
@Slf4j
@Service
public class DownStorageCageServiceImpl extends ServiceImpl<DownStorageCageMapper, DownStorageCage> implements DownStorageCageService {
- @Autowired(required=false)
+ @Autowired(required = false)
private DownStorageCageMapper downStorageCageMapper;
@Autowired
@@ -49,46 +50,23 @@
@Autowired
private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- public DownGlassTask createDownGlassTask(GlassInfo glassInfo, String startCell, String endCell,String taskType ) {
+ @Override
+ public DownGlassTask createDownGlassTask(GlassInfo glassInfo, String startCell, String endCell, String taskType) {
DownGlassTask downGlassTask = new DownGlassTask();
- BeanUtils.copyProperties(glassInfo,downGlassTask);
+ BeanUtils.copyProperties(glassInfo, downGlassTask);
downGlassTask.setStartCell(startCell);
- downGlassTask.setTaskType(taskType);
- downGlassTask.setEndCell(endCell);
+ downGlassTask.setTaskType(taskType);
+ downGlassTask.setEndCell(endCell);
return downGlassTask;
}
-
- public DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, String startCell, String endCell,String taskType ) {
+ @Override
+ public DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, String startCell, String endCell, String taskType) {
DownGlassTask downGlassTask = new DownGlassTask();
- BeanUtils.copyProperties(glassInfo,downGlassTask);
+ BeanUtils.copyProperties(glassInfo, downGlassTask);
downGlassTask.setStartCell(startCell);
downGlassTask.setTaskType(taskType);
downGlassTask.setEndCell(endCell);
@@ -96,134 +74,9 @@
}
- @Override
- public boolean processInto(String Number) {
-
- //鎸塱d鏌ヨ鐜荤拑淇℃伅琛ㄩ噷鐨勭幓鐠�
- GlassInfo GlassInfo = glassInfoService.selectGlassId(Number);
- PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
- //瀛樺湪姝ょ幓鐠冪紪鍙�
- if (GlassInfo != null) {
- //鍚屾壘鍒板悓娴佺▼鍗¢檮杩戠┖鏍�
- List<DownStorageCageDetails> list = selectCacheEmpty();
-
- if (list.size() > 0) {
- //瀛樺湪绌烘牸
- //1.鐢熸垚浠诲姟锛� 璧峰浣嶇疆0 缁撴潫浣嶇疆this.slot 浠诲姟绫诲瀷 1 锛堣繘鐗囦换鍔★級
- //2.鍥炲 1杩涚墖
- DownStorageCageDetails item = list.get(0);
-
- //selectInfo.insertCacheTask(GlassInfo.getId() + "", "0", item.getSlot() + "", "1", GlassInfo.getWidth(), GlassInfo.getHeight(), GlassInfo.getFilmsid(), GlassInfo.getThickness(), GlassInfo.getFlowcardId());
-
- DownGlassTask downGlassTask = createDownGlassTask(GlassInfo,"0",item.getSlot()+"","1");
-
- downGlassTaskService.insertCacheTask(downGlassTask);
-
- //S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
- //瀹屾垚鍚庢彃鍏ュ皬鐗囨暟鎹埌缂撳瓨琛�
- return true;
- }
-
- } else {
- // ID缂栧彿涓嶅瓨鍦� 涓嶅鐞�/鍥炲PLC 杩涜鎶ヨ鎻愮ず
- }
- //杩斿洖缁撴灉
- return false;
- }
-
-
- /**
- * 鐞嗙墖 鍑�
- * @return
- */
- //
- @Override
- public boolean processOut() {
- // 鏌ヨ浠诲姟
-
-
- // PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
-
- List<DownStorageCageDetails> list = downStorageCageDetailsService.CacheOut(1, 5);
- List<DownStorageCageDetails> list2 = downStorageCageDetailsService.CacheOut(6, 10);
- List<DownStorageCageDetails> list3 = downStorageCageDetailsService.CacheOut(1, 10);
-
-
-
- // 浼樺厛 瓒呭嚭灏哄浼樺厛浜哄伐鍑虹墖 浜哄伐澶勭悊
-
- if (!list3.isEmpty()) {
- DownStorageCageDetails item3 = list3.get(0);
- if (item3.getHeight() >= 1 && item3.getWidth() >= 1) {
-
- String endcell = "13";
- String SendEndcell = "1";
-
-
-
- DownGlassTask downGlassTask =createDownGlassTask(item3,"0",endcell,"2");
-
- downGlassTaskService.insertCacheTask(downGlassTask);
- // S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
- // S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
- return true;
- }
- }
-
-
- //濡傛灉鍚屾椂鍓嶅悗绔兘绌洪棽 浼樺厛鍚庣鍑虹墖骞朵笖浼樺厛婊℃灦
- else if (!list2.isEmpty()&&!list3.isEmpty()) {
-
- DownStorageCageDetails item3 = list2.get(0);
- String endcell = "11";
- String SendEndcell = "1";
-
- DownGlassTask downGlassTask =createDownGlassTask(item3,"0",endcell,"2");
- downGlassTaskService.insertCacheTask(downGlassTask);
-
- //S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
- //S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
- return true;
-
- }
- // 鎸夌収澶у皬绗﹀悎鍓嶇鍑虹墖
- else if (!list.isEmpty()) {
- DownStorageCageDetails item = list.get(0);
-
- // 鍑哄埌 G06
-
-
- DownGlassTask downGlassTask =createDownGlassTask(item,"0","06","2");
- downGlassTaskService.insertCacheTask(downGlassTask);
- // S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1");
- // S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
- return true;
-
- // 鎸夌収澶у皬绗﹀悎鍚庣鍑虹墖
- } else if (!list2.isEmpty()) {
- DownStorageCageDetails item2 = list2.get(0);
-
- // 鍑哄埌 G11
-
- DownGlassTask downGlassTask =createDownGlassTask(item2,"0","11","2");
- downGlassTaskService.insertCacheTask(downGlassTask);
-
- // S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2");
- // S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
- return true;
-
-
- }
-
-
-
- // 杩斿洖缁撴灉
- return false;
- }
-
- //鎵惧埌绌烘牸瀛�
+ //鎵惧埌绌烘牸瀛�
@Override
public List<DownStorageCageDetails> selectCacheEmpty() {
return baseMapper.selectJoinList(DownStorageCageDetails.class,
@@ -236,6 +89,10 @@
.isNull(DownStorageCageDetails::getSlot)
);
}
+
+
+
+
@Override
@@ -253,42 +110,44 @@
/**
* 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愬惎鐢�/绂佺敤銆�
+ *
* @param downStorageCage
* @return
*/
@Override
- public boolean updateDownStorageCage(DownStorageCage downStorageCage){
- DownStorageCage downItem=baseMapper.selectById(downStorageCage.getId());
+ public boolean updateDownStorageCage(DownStorageCage downStorageCage) {
+ DownStorageCage downItem = baseMapper.selectById(downStorageCage.getId());
downItem.setEnableState(downStorageCage.getEnableState());
baseMapper.updateById(downItem);
return true;
}
/**
- *淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
+ * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
+ *
* @param downStorageCageId
* @param downStorageCageDetails
* @return
*/
@Override
- public boolean updateDownStorageCageDetails(int downStorageCageId,DownStorageCageDetails downStorageCageDetails){
- DownStorageCage downItem=baseMapper.selectById(downStorageCageId);
- log.info("姝e父"+downItem);
- if(downStorageCageDetails !=null){
- DownStorageCageDetails edgDItem=downStorageCageDetailsMapper.selectById(downStorageCageDetails.getId());
+ public boolean updateDownStorageCageDetails(int downStorageCageId, DownStorageCageDetails downStorageCageDetails) {
+ DownStorageCage downItem = baseMapper.selectById(downStorageCageId);
+ log.info("姝e父" + downItem);
+ if (downStorageCageDetails != null) {
+ DownStorageCageDetails edgDItem = downStorageCageDetailsMapper.selectById(downStorageCageDetails.getId());
//娣诲姞
- if(edgDItem!=null){
+ if (edgDItem != null) {
//鍙紶鏍煎瓙 锛氱Щ闄ょ幓鐠�
- DownStorageCageDetails newresult=downStorageCageDetailsMapper.selectById(downStorageCageDetails.getId());
+ DownStorageCageDetails newresult = downStorageCageDetailsMapper.selectById(downStorageCageDetails.getId());
newresult.setSlot(downItem.getSlot());
downStorageCageDetailsMapper.updateById(newresult);
}
}
- if (downItem!=null){
+ if (downItem != null) {
//绉婚櫎
- DownStorageCageDetails result=downStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<DownStorageCageDetails>().eq(DownStorageCageDetails::getSlot,downStorageCageId));
- if (result!=null){
+ DownStorageCageDetails result = downStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<DownStorageCageDetails>().eq(DownStorageCageDetails::getSlot, downStorageCageId));
+ if (result != null) {
result.setSlot(0);
downStorageCageDetailsMapper.updateById(result);
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
index 6b0b547..d6f8f74 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
@@ -37,7 +37,7 @@
@GetMapping("/getone")
public ResponseEntity<?> getOneDownWorkstations() {
try {
- List<DownWorkstation> data = downWorkstationService.getoneDownWorkstations(1,5);
+ List<DownWorkstation> data = downWorkstationService.getoneDownWorkstations(1,6);
// 鏋勫缓绗﹀悎棰勬湡鏍煎紡鐨勫搷搴旀暟鎹�
Map<String, Object> responseData = new HashMap<>();
responseData.put("code", 200);
@@ -131,12 +131,12 @@
- @ApiOperation("鑾峰彇宸ヤ綅鏄剧ず鍥�")
+ @ApiOperation("鑾峰彇宸ヤ綅鏄剧ず鍥�1")
@GetMapping("/getwo")
public ResponseEntity<Map<String, Object>> getwo() {
Map<String, Object> responseData = new HashMap<>();
try {
- List<Map<String, Object>> data = downWorkstationService.getTotalGlassDimensionsByWorkstation();
+ List<Map<String, Object>> data = downWorkstationService.getTotalGlassDimensionsByWorkstation(1,3);
responseData.put("code", 200);
responseData.put("msg", "鎴愬姛");
responseData.put("data", data);
@@ -149,7 +149,23 @@
}
}
-
+ @ApiOperation("鑾峰彇宸ヤ綅鏄剧ず鍥�1")
+ @GetMapping("/getwo2")
+ public ResponseEntity<Map<String, Object>> getw2o() {
+ Map<String, Object> responseData = new HashMap<>();
+ try {
+ List<Map<String, Object>> data = downWorkstationService.getTotalGlassDimensionsByWorkstation(4,6);
+ responseData.put("code", 200);
+ responseData.put("msg", "鎴愬姛");
+ responseData.put("data", data);
+ return ResponseEntity.ok(responseData);
+ } catch (Exception e) {
+ responseData.put("code", 500);
+ responseData.put("msg", "澶辫触");
+ responseData.put("data", null);
+ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(responseData);
+ }
+ }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
index 29e8dfc..15cbb9f 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
@@ -59,4 +59,14 @@
* 鐜荤拑ID
*/
private String glassId;
+
+ /**
+ * 宸ヤ綅id
+ */
+ private String workstationid;
+
+ /**
+ * 鏈哄櫒浜�
+ */
+ private String Robot;
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
index 7a1348b..8a4ba9d 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
@@ -55,11 +55,19 @@
*/
int updateFlowCardIdAndCount(String flowCardId, int glassInfoCount, int workstationId);
- void insertdownglassinfo();
+
/**
* @return //
* 宸ヤ綅鏄剧ず
*/
- List<Map<String, Object>> getTotalGlassDimensionsByWorkstation();
+ List<Map<String, Object>> getTotalGlassDimensionsByWorkstation(int start,int end);
+
+
+ /**
+ * @param flowcardid
+ * 鏍规嵁娴佺▼鍗″彿鏌ヨ
+ * @return
+ */
+ DownWorkstation selectByFlowCardId(String flowcardid);
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java
index efb02ba..7b11958 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java
@@ -18,12 +18,12 @@
/**
* @param downGlassInfo 鎻掑叆浠诲姟
*/
- void insertdownWorkstationtask(DownGlassInfo downGlassInfo);
+ void insertdownWorkstationtask(DownGlassInfo downGlassInfo,String workstationid);
/**
* @param downWorkstationTask 鏇存柊浠诲姟鐘舵��
*/
- void updateTaskStateToZero(DownWorkstationTask downWorkstationTask);
+ void updateTaskState(DownWorkstationTask downWorkstationTask);
/**
* @return 鑾峰彇浠诲姟鐘舵�佷负1鐨勪俊鎭�
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
index 668caf6..a602f88 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
@@ -62,31 +62,43 @@
//宸ヤ綅鏄剧ず
@Override
- public List<Map<String, Object>> getTotalGlassDimensionsByWorkstation() {
+ public List<Map<String, Object>> getTotalGlassDimensionsByWorkstation(int start,int end) {
MPJQueryWrapper<DownWorkstation> queryWrapper = new MPJQueryWrapper<>();
queryWrapper.select("t.workstation_id", "t.flow_card_id", "COALESCE(SUM(b.width), 0) AS totalwidth", "COALESCE(SUM(b.height), 0) AS totalheight")
.leftJoin("down_glass_info b on t.flow_card_id = b.flow_card_id")
- .groupBy("t.workstation_id", "t.flow_card_id");
+ .groupBy("t.workstation_id", "t.flow_card_id")
+ .orderByAsc("t.workstation_id").between("t.workstation_id", start, end)
+
+ ;
List<DownWorkstionAndDownGlassinfo> workstationList = downWorkstationMapper.selectJoinList(DownWorkstionAndDownGlassinfo.class, queryWrapper);
// List<DownWorkstionAndDownGlassinfo> workstationList = null;
List<Map<String, Object>> result = new ArrayList<>();
for (DownWorkstionAndDownGlassinfo downWorkstionAndDownGlassinfo : workstationList) {
Map<String, Object> rack = new HashMap<>();
-
- // 鍒涘缓瀛愰」锛坕tem锛夊璞�
Map<String, Object> item = new HashMap<>();
- item.put("height", downWorkstionAndDownGlassinfo.getTotalheight()); // 璁剧疆瀛愰」楂樺害锛屾牴鎹疄闄呮儏鍐佃缃�
- item.put("width", downWorkstionAndDownGlassinfo.getTotalwidth()); // 璁剧疆瀛愰」瀹藉害锛屾牴鎹疄闄呮儏鍐佃缃�
- item.put("fillColor", "yellow"); // 璁剧疆瀛愰」棰滆壊
- item.put("content", downWorkstionAndDownGlassinfo.getFlowCardId()); // 浣跨敤娴佺▼鍗″彿浣滀负瀛愰」鍐呭
+ item.put("height", downWorkstionAndDownGlassinfo.getTotalheight());
+ item.put("width", downWorkstionAndDownGlassinfo.getTotalwidth());
+ item.put("fillColor", "yellow");
+ item.put("content", downWorkstionAndDownGlassinfo.getFlowCardId());
- rack.put("item", item); // 灏嗗瓙椤瑰璞℃斁鍏ヨ揣鏋跺璞′腑
+ // 鏌ヨ DownGlassInfo 骞舵坊鍔犲埌 item 涓�
+ MPJQueryWrapper<DownGlassInfo> glassInfoQueryWrapper = new MPJQueryWrapper<>();
+ glassInfoQueryWrapper.select("*"); // 鏌ヨ鎵�鏈夊垪
+ glassInfoQueryWrapper.eq("flow_card_id", downWorkstionAndDownGlassinfo.getFlowCardId());
+ List<DownGlassInfo> downGlassInfoList = downGlassInfoMapper.selectList(glassInfoQueryWrapper);
- result.add(rack); // 灏嗚揣鏋跺璞℃坊鍔犲埌缁撴灉鍒楄〃涓�
- //log.info("璐ф灦瀵硅薄: {}", rack);
+
+ if (!downGlassInfoList.isEmpty()) {
+
+ item.put("downGlassInfoList", downGlassInfoList);
+
+ }
+
+ rack.put("item", item);
+ result.add(rack);
}
-
+ log.info("result"+(result));
return result; // 杩斿洖鏈�缁堢粨鏋�
}
@@ -148,6 +160,7 @@
+ @Override
public DownWorkstation selectByFlowCardId(String flowcardid) {
QueryWrapper<DownWorkstation> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("flow_card_id", flowcardid);
@@ -167,74 +180,6 @@
}
- @Override
- public void insertdownglassinfo() {
-
-
- List<DownGlassTask> taskdownGlassInf = downGlassTaskService.getUnloadingTaskState();
-//
-
-
- if (taskdownGlassInf != null && !taskdownGlassInf.isEmpty()) {
-
-//
-
- for (DownGlassTask downGlassInfo : taskdownGlassInf) {
- // 鍒涘缓鏂扮殑 DownGlassInfo 瀵硅薄骞惰缃浉鍏冲睘鎬�
- DownGlassInfo newdownGlassInfo = new DownGlassInfo();
-// newdownGlassInfo.setId(downGlassInfo.getId());
- newdownGlassInfo.setFlowCardId(downGlassInfo.getFlowCardId());
- Integer maxSequence = downGlassInfoService.getMaxSequenceByFlowCardId(downGlassInfo.getFlowCardId());
- // 鍒濆鍖栭『搴忓瓧娈靛��
- int sequence = maxSequence != null ? maxSequence + 1 : 1;
-// newdownGlassInfo.setId(downGlassInfo.getId());
- newdownGlassInfo.setWidth(downGlassInfo.getWidth());
- newdownGlassInfo.setGlassId(downGlassInfo.getGlassId());
- newdownGlassInfo.setHeight(downGlassInfo.getHeight());
- newdownGlassInfo.setThickness(downGlassInfo.getThickness());
- newdownGlassInfo.setFilmsid(downGlassInfo.getFilmsid());
- // 璁剧疆椤哄簭瀛楁鍊�
- newdownGlassInfo.setSequence(sequence);
-
- // 鎻掑叆鏁版嵁鍒颁笅鐗囩幓鐠冧俊鎭〃
- downGlassInfoService.insertDownGlassInfo(newdownGlassInfo);
- //鎻掑叆鏁版嵁鍒版満姊版墜浠诲姟琛�
- downWorkstationTaskService.insertdownWorkstationtask(newdownGlassInfo);
- //鏇存柊涓嬬墖浠诲姟琛ㄧ姸鎬佷负0
- downGlassTaskService.updateTaskStateToZero(downGlassInfo.getGlassId());
- //鍒犻櫎涓嬬墖浠诲姟琛ㄤ腑鐨勮褰�
- downGlassTaskService.deleteTask(downGlassInfo.getGlassId());
-
- sequence++; // 閫掑椤哄簭瀛楁鍊�
-
-
- }
- }
-
-
- try {
- //鏌ヨ涓嬬墖宸ヤ綅琛ㄤ腑鏋跺瓙鏄惁缁戝畾浜嗘祦绋嬪崱鍙� 宸ヤ綅琛ㄥ拰浠诲姟琛ㄤ腑鐘舵�佷负1鐨勬祦绋嬪崱鍙峰拰宸茶惤鏋舵暟閲�
- List<DownWorkstationTask> taskdownWorkstation = downWorkstationTaskService.getTaskState();
- if (taskdownWorkstation != null && !taskdownWorkstation.isEmpty()) {
- //锛屽鏋滃凡缁忕粦瀹氬垯鏇存柊宸茶惤鏋舵暟閲�,骞朵笖鍒犻櫎涓嬬墖浠诲姟琛ㄤ腑鐨勮褰�
- for (DownWorkstationTask downWorkstation : taskdownWorkstation) {
- //鏇存柊涓嬬墖宸ヤ綅琛ㄤ腑宸茶惤鏋舵暟閲�
- DownWorkstation downWorkstation1 = selectByFlowCardId(downWorkstation.getFlowCardId());
- updateracksnumber(downWorkstation.getFlowCardId(), downWorkstation1.getRacksnumber() + 1);
- //鏇存柊鏈烘浠诲姟琛ㄤ腑鐘舵�佷负0
- downWorkstationTaskService.updateTaskStateToZero(downWorkstation);
- //鍒犻櫎鏈烘浠诲姟琛�
- downWorkstationTaskService.deleteTask(downWorkstation);
-
-
- }
- }
- } catch (Exception e) {
- // 鎵撳嵃寮傚父淇℃伅
- e.printStackTrace();
- // 鎴栬�呭彲浠ヨ繘琛屽叾浠栧紓甯稿鐞嗭紝姣斿璁板綍鏃ュ織鎴栬�呰繑鍥炵壒瀹氱殑閿欒淇℃伅
- }
- }
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java
index c54fa2b..813c149 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java
@@ -27,7 +27,7 @@
public class DownWorkstationTaskServiceImpl extends ServiceImpl<DownWorkstationTaskMapper, DownWorkstationTask> implements DownWorkstationTaskService {
- public void insertdownWorkstationtask(DownGlassInfo downGlassInfo) {
+ public void insertdownWorkstationtask(DownGlassInfo downGlassInfo,String workstationid) {
DownWorkstationTask entity = new DownWorkstationTask();
// 鏌ヨ褰撳墠鏈�澶х殑 id 鍊�
Long maxId = getMaxId();
@@ -38,6 +38,7 @@
BeanUtils.copyProperties(downGlassInfo,entity);
entity.setId(newId); // 璁剧疆鎵嬪姩閫掑鐨� id
entity.setState(1);
+ entity.setWorkstationid(workstationid);
baseMapper.insert(entity);
}
@@ -66,10 +67,10 @@
}
@Override
- public void updateTaskStateToZero(DownWorkstationTask downWorkstationTask) {
+ public void updateTaskState(DownWorkstationTask downWorkstationTask) {
LambdaUpdateWrapper<DownWorkstationTask> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
- lambdaUpdateWrapper.set(DownWorkstationTask::getState, 0)
+ lambdaUpdateWrapper.set(DownWorkstationTask::getState, 2)
.eq(DownWorkstationTask::getGlassId, downWorkstationTask.getGlassId());
baseMapper.update(new DownWorkstationTask(), lambdaUpdateWrapper);
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java
new file mode 100644
index 0000000..69b61b3
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java
@@ -0,0 +1,293 @@
+package com.mes.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.mes.common.S7object;
+import com.mes.common.config.Const;
+import com.mes.device.PlcParameterObject;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.mapper.DownGlassInfoMapper;
+import com.mes.downglassinfo.service.DownGlassInfoService;
+import com.mes.downstorage.entity.DownStorageCage;
+import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.service.DownStorageCageDetailsService;
+import com.mes.downstorage.service.DownStorageCageService;
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.entity.DownWorkstationTask;
+import com.mes.downworkstation.service.DownWorkstationService;
+import com.mes.downworkstation.service.DownWorkstationTaskService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.downglassinfo.entity.DownGlassTask;
+import com.mes.downglassinfo.service.DownGlassTaskService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/5/8 8:17
+ * @Description:
+ */
+@Component
+@Slf4j
+public class DownCacheGlassTask {
+
+
+ @Autowired
+ DownGlassTaskService downGlassTaskService;
+ @Autowired
+ GlassInfoService glassInfoService;
+ @Autowired
+ DownStorageCageDetailsService downStorageCageDetailsService;
+ @Autowired
+ DownStorageCageService downStorageCageService;
+ @Autowired
+ DownWorkstationService downWorkstationService;
+ @Autowired
+ DownGlassInfoService downGlassInfoService;
+
+
+
+
+ @Autowired
+ private DownWorkstationTaskService downWorkstationTaskService;
+
+// @Value("${mes.threshold}")
+ private int threshold;
+
+ //@Scheduled(fixedDelay = 1000)
+ public void plcdownGlassTask() {
+ // PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+// String taskRequestTypeValue = plcParameterObject.getPlcParameter("A06_request_word").getValue();
+// String glassIdeValue = plcParameterObject.getPlcParameter("A05_scanning_ID").getValue();
+// String confirmationWrodValue = plcParameterObject.getPlcParameter("MES_confirmation_word").getValue();
+// String outGlassstate = plcParameterObject.getPlcParameter("A09_glass_status").getValue();
+// String confirmationWrodAddress = plcParameterObject.getPlcParameter("MES_confirmation_word").getAddress();
+ // String G06RobotTaskRequestWord = plcParameterObject.getPlcParameter("G06RobotTaskRequestWord").getAddress();
+
+
+ String taskRequestTypeValue ="3";
+ String glassIdeValue ="NG24041101C002-2-6-1-6";
+ String confirmationWrodValue ="1";
+ String outGlassstate="1";
+ String confirmationWrodAddress="1";
+ String G11RobotTaskRequestWord ="1";
+ String G06RobotTaskRequestWord ="1";
+ String G13RobotTaskRequestWord ="1";
+
+ log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{}锛岃幏鍙栧埌鐨勭‘璁ゅ瓧涓猴細{}锛岃幏鍙栧埌鐨勫嚭鐗囩姸鎬佷负锛歿}",
+ taskRequestTypeValue, glassIdeValue, confirmationWrodValue, outGlassstate);
+
+// if ("0".equals(taskRequestTypeValue)) {
+// if ("0".equals(confirmationWrodValue)) {
+// log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓�0锛屼笖纭瀛椾负0锛屼笉鎵ц浠诲姟");
+// return;
+// }
+// log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓�0锛屽皢纭瀛楁敼涓�0");
+// S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 0);
+// return;
+// }
+// if (!"0".equals(confirmationWrodValue)) {
+// log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓嶄负0锛屽皢纭瀛楁敼涓�0");
+// S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 0);
+// return;
+// }
+
+ if ("1".equals(taskRequestTypeValue)) {
+ log.info("3銆佽繘鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�");
+ inTo(glassIdeValue, confirmationWrodAddress);
+ } else if ("2".equals(taskRequestTypeValue)) {
+
+ log.info("3銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�");
+ outTo( confirmationWrodAddress);
+
+ } else if ("3".equals(taskRequestTypeValue)) {
+ log.info("3銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟");
+ if (outTo(confirmationWrodAddress)) {
+ inTo(glassIdeValue, confirmationWrodAddress);
+
+
+ }
+ }
+
+ if (("1".equals(G11RobotTaskRequestWord) || "1".equals(G06RobotTaskRequestWord)) || "1".equals(G13RobotTaskRequestWord)) {
+ log.info("4銆佹湁鏈哄櫒浜轰笅鐗囪姹傦紝鎵ц涓嬬墖浠诲姟");
+ insertdownglassinfo();
+ }
+
+ //鑷姩缁戝畾鏋跺瓙锛屽鏋滃伐浣嶈〃娌℃湁缁戝畾鏋跺瓙锛岄粯璁ゅ皢绗煎瓙涓暟閲忔渶澶氱殑娴佺▼鍗″彿缁戝畾鏈哄櫒鎵�2鐨勭┖鏋跺瓙
+
+
+
+ }
+
+ /**
+ * 杩涚墖浠诲姟
+ * @param glassId
+ * @param confirmationWrodAddress
+ * @param
+ */
+ private void inTo(String glassId, String confirmationWrodAddress) {
+ log.info("1銆佹寜鐓х幓鐠僫d:{}鑾峰彇鐜荤拑灏忕墖淇℃伅", glassId);
+ GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
+ if (glassInfo == null) {
+ log.info("2銆佹鐜荤拑缂栧彿涓嶅瓨鍦�");
+ return;
+ }
+ log.info("2銆佽幏鍙栧埌鐨勭幓鐠冧俊鎭负{}", glassInfo);
+
+// if(glassInfo.getFlowCardId()=){
+//
+// }
+ //娣诲姞杩涚墖浠诲姟 鏌ユ壘绌烘牸
+ List<DownStorageCageDetails> list = downStorageCageService.selectCacheEmpty();
+ if(list.size()>0){
+ DownStorageCageDetails item = list.get(0);
+
+
+
+ log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", list);
+ log.info("4銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
+ DownStorageCageDetails details = new DownStorageCageDetails();
+ BeanUtils.copyProperties(glassInfo, details);
+ details.setState(1);
+ details.setGlassId(glassInfo.getGlassId());
+ details.setSlot(item.getSlot());
+ details.setDeviceId(item.getDeviceId());
+ downStorageCageDetailsService.save(details);
+ log.info("5銆佺幓鐠冧俊鎭凡瀛樺叆鐞嗙墖绗艰鎯呰〃锛岀幓鐠冧俊鎭负{}", details);
+
+ DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(glassInfo, "0", item.getSlot() + "", "1");
+ //娣诲姞杩涚墖浠诲姟
+ log.info("6銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃{}", downGlassTask);
+ downGlassTaskService.insertCacheTask(downGlassTask);
+ }
+ //S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 1);
+ log.info("7銆佸彂閫佺‘璁ゅ瓧瀹屾垚");
+
+
+ }
+
+ /**
+ * 鍑虹墖浠诲姟
+ *
+ * @param confirmationWrodAddress
+ *
+ */
+ private Boolean outTo( String confirmationWrodAddress) {
+ log.info("鍗曠墖鎯呭喌鏍规嵁浼犲叆鐨勬枡鏋跺彿 鏌ヨ绗﹀悎鎸夌収鐗堝浘id鍜岀墖搴忓嚭鐗�,骞朵笖浼樺厛鍑烘弧鏋剁殑灏忕墖");
+ List<DownStorageCageDetails> list = downStorageCageDetailsService.CacheOut1(1,3);
+
+ List<DownStorageCageDetails> list2 = downStorageCageDetailsService.CacheOut1(4,6);
+
+ List<DownStorageCageDetails> list3 = downStorageCageDetailsService.CacheOut1(1,6);
+ // 浼樺厛 瓒呭嚭灏哄浼樺厛浜哄伐鍑虹墖 浜哄伐澶勭悊
+ if (!list3.isEmpty()) {
+
+ DownStorageCageDetails item3 = list3.get(0);
+ if (item3.getHeight() >= 2500 && item3.getWidth() >= 2660) {
+ log.info("浜哄伐澶勭悊");
+ String endcell = "7";
+
+
+ DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(item3, "9", endcell, "2");
+ downGlassTaskService.insertCacheTask(downGlassTask);
+ // S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 2);
+
+ return true;
+ }
+ else if (!list2.isEmpty() && !list3.isEmpty()) {
+ log.info("鍓嶅悗绔兘绌洪棽 浼樺厛鍚庣鍑虹墖骞朵笖浼樺厛婊℃灦");
+ DownStorageCageDetails item4 = list2.get(0);
+
+ DownWorkstation downWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getFlowCardId, item4.getFlowCardId()));
+ String endcell = String.valueOf(downWorkstation.getWorkstationId());
+
+ DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(item4, "9", endcell, "2");
+ downGlassTaskService.insertCacheTask(downGlassTask);
+
+ //S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 2);
+
+ return true;
+
+ }
+ // 鎸夌収鐗堝浘id鍜岀墖搴忕鍚堝墠绔嚭鐗�
+ else if (!list.isEmpty()) {
+ log.info("鍓嶇鍑虹墖");
+ DownStorageCageDetails item = list.get(0);
+ DownWorkstation downWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getFlowCardId, item.getFlowCardId()));
+ String endcell = String.valueOf(downWorkstation.getWorkstationId());
+ // 鍑哄埌 G06
+ DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(item, "9", endcell, "2");
+ downGlassTaskService.insertCacheTask(downGlassTask);
+ // S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 2);
+
+
+ return true;
+ // 鎸夌収鐗堝浘id鍜岀墖搴忕鍚堝悗绔嚭鐗�
+ } else if (!list2.isEmpty()) {
+ log.info("鍚庣鍑虹墖");
+ DownStorageCageDetails item2 = list2.get(0);
+ DownWorkstation downWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getFlowCardId, item2.getFlowCardId()));
+ String endcell = String.valueOf(downWorkstation.getWorkstationId());
+ // 鍑哄埌 G11
+ DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(item2, "9", endcell, "2");
+ downGlassTaskService.insertCacheTask(downGlassTask);
+ // S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 2);
+ return true;
+ }
+ }
+ //濡傛灉鍚屾椂鍓嶅悗绔兘绌洪棽 浼樺厛鍚庣鍑虹墖骞朵笖浼樺厛婊℃灦
+
+ // 杩斿洖缁撴灉
+ return false;
+ }
+
+
+//
+ public void insertdownglassinfo() {
+ try {
+
+ List<DownGlassTask> taskdownGlassInf = downGlassTaskService.getUnloadingTaskState();
+ if (taskdownGlassInf != null && !taskdownGlassInf.isEmpty()) {
+
+ for (DownGlassTask downGlassInfo : taskdownGlassInf) {
+ // 鍒涘缓鏂扮殑 DownGlassInfo 瀵硅薄骞惰缃浉鍏冲睘鎬�
+ DownGlassInfo newdownGlassInfo = new DownGlassInfo();
+
+ Integer maxSequence = downGlassInfoService.getMaxSequenceByFlowCardId(downGlassInfo.getFlowCardId());
+ // 鍒濆鍖栭『搴忓瓧娈靛��
+ int sequence = maxSequence != null ? maxSequence + 1 : 1;
+ BeanUtils.copyProperties(downGlassInfo, newdownGlassInfo);
+ // 璁剧疆椤哄簭瀛楁鍊�
+ newdownGlassInfo.setSequence(sequence);
+ // 鎻掑叆鏁版嵁鍒颁笅鐗囩幓鐠冧俊鎭〃
+ downGlassInfoService.insertDownGlassInfo(newdownGlassInfo);
+ log.info("鎻掑叆鏁版嵁鍒颁笅鐗囩幓鐠冧俊鎭〃");
+ DownWorkstation downWorkstation1 = downWorkstationService.selectByFlowCardId(downGlassInfo.getFlowCardId());
+ downWorkstationService.updateracksnumber(downGlassInfo.getFlowCardId(), downWorkstation1.getRacksnumber() + 1);
+ log.info("鏇存柊钀芥灦鏁伴噺");
+ sequence++; // 閫掑椤哄簭瀛楁鍊�
+
+
+ }
+ }
+ } catch (Exception e) {
+ // 鎵撳嵃寮傚父淇℃伅
+ e.printStackTrace();
+ // 鎴栬�呭彲浠ヨ繘琛屽叾浠栧紓甯稿鐞嗭紝姣斿璁板綍鏃ュ織鎴栬�呰繑鍥炵壒瀹氱殑閿欒淇℃伅
+ }
+
+
+ }
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.json
index d44cf10..3880ffc 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.json
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.json
@@ -14,22 +14,22 @@
"addressLenght": "2"
},
{
- "codeId": "spare",
+ "codeId": "G06RobotTaskRequestWord",
"addressIndex": "4",
"addressLenght": "2"
},
{
- "codeId": "spare",
+ "codeId": "G06ID",
"addressIndex": "6",
"addressLenght": "2"
},
{
- "codeId": "spare",
+ "codeId": "G11RobotTaskRequestWord",
"addressIndex": "8",
"addressLenght": "2"
},
{
- "codeId": "spare",
+ "codeId": "G011ID",
"addressIndex": "10",
"addressLenght": "2"
},
@@ -69,12 +69,12 @@
"addressLenght": "2"
},
{
- "codeId": "鍑虹墖ID",
+ "codeId": "OutputID",
"addressIndex": "26",
"addressLenght": "2"
},
{
- "codeId": "鍓嶇鍚庣涓嬬墖",
+ "codeId": "FrontOrRearLowerSlice",
"addressIndex": "28",
"addressLenght": "2"
},
@@ -84,22 +84,22 @@
"addressLenght": "2"
},
{
- "codeId": "spare",
+ "codeId": "G06RobotTaskReply",
"addressIndex": "32",
"addressLenght": "2"
},
{
- "codeId": "spare",
+ "codeId": "G06Rack",
"addressIndex": "34",
"addressLenght": "2"
},
{
- "codeId": "spare",
+ "codeId": "G11RobotTaskReply",
"addressIndex": "36",
"addressLenght": "2"
},
{
- "codeId": "spare",
+ "codeId": "G11Rack",
"addressIndex": "38",
"addressLenght": "2"
},
@@ -144,7 +144,7 @@
"addressLenght": "2"
},
{
- "codeId": "MES浠诲姟鐘舵��",
+ "codeId": "MESTaskState",
"addressIndex": "56",
"addressLenght": "2"
},
@@ -154,37 +154,37 @@
"addressLenght": "2"
},
{
- "codeId": "鎶ヨ鐘舵��",
+ "codeId": "AlarmState",
"addressIndex": "60",
"addressLenght": "2"
},
{
- "codeId": "鎶ヨ瀛�1",
+ "codeId": "Alarm1",
"addressIndex": "62",
"addressLenght": "2"
},
{
- "codeId": "鎶ヨ瀛�2",
+ "codeId": "Alarm2",
"addressIndex": "64",
"addressLenght": "2"
},
{
- "codeId": "鎶ヨ瀛�3",
+ "codeId": "Alarm3",
"addressIndex": "66",
"addressLenght": "2"
},
{
- "codeId": "鎶ヨ瀛�4",
+ "codeId": "Alarm4",
"addressIndex": "68",
"addressLenght": "2"
},
{
- "codeId": "鍐呭",
+ "codeId": "neirong",
"addressIndex": "70",
"addressLenght": "2"
},
{
- "codeId": "璁惧鐘舵�佸瓧",
+ "codeId": "device",
"addressIndex": "72",
"addressLenght": "2"
},
@@ -199,37 +199,37 @@
"addressLenght": "2"
},
{
- "codeId": "杈撳叆杈撳嚭1",
+ "codeId": "InOut1",
"addressIndex": "78",
"addressLenght": "2"
},
{
- "codeId": "杈撳叆杈撳嚭2",
+ "codeId": "InOut2",
"addressIndex": "80",
"addressLenght": "2"
},
{
- "codeId": "杈撳叆杈撳嚭3",
+ "codeId": "InOut3",
"addressIndex": "82",
"addressLenght": "2"
},
{
- "codeId": "杈撳叆杈撳嚭4",
+ "codeId": "InOut4",
"addressIndex": "84",
"addressLenght": "2"
},
{
- "codeId": "杈撳叆杈撳嚭5",
+ "codeId": "InOut5",
"addressIndex": "86",
"addressLenght": "2"
},
{
- "codeId": "杈撳叆杈撳嚭6",
+ "codeId": "InOut6",
"addressIndex": "88",
"addressLenght": "2"
},
{
- "codeId": "杈撳叆杈撳嚭7",
+ "codeId": "InOut7",
"addressIndex": "90",
"addressLenght": "2"
},
@@ -259,97 +259,97 @@
"addressLenght": "2"
},
{
- "codeId": "G04鍔ㄤ綔鐘舵��",
+ "codeId": "G04ActionState",
"addressIndex": "102",
"addressLenght": "2"
},
{
- "codeId": "G05鍔ㄤ綔鐘舵��",
+ "codeId": "G05ActionState",
"addressIndex": "104",
"addressLenght": "2"
},
{
- "codeId": "G06鍔ㄤ綔鐘舵��",
+ "codeId": "G06ActionState",
"addressIndex": "106",
"addressLenght": "2"
},
{
- "codeId": "G07鍔ㄤ綔鐘舵��",
+ "codeId": "G07ActionState",
"addressIndex": "108",
"addressLenght": "2"
},
{
- "codeId": "G08鍔ㄤ綔鐘舵��",
+ "codeId": "G08ActionState",
"addressIndex": "110",
"addressLenght": "2"
},
{
- "codeId": "G09鍔ㄤ綔鐘舵��",
+ "codeId": "G09ActionState",
"addressIndex": "112",
"addressLenght": "2"
},
{
- "codeId": "G10鍔ㄤ綔鐘舵��",
+ "codeId": "G10ActionState",
"addressIndex": "114",
"addressLenght": "2"
},
{
- "codeId": "G11鍔ㄤ綔鐘舵��",
+ "codeId": "G11ActionState",
"addressIndex": "116",
"addressLenght": "2"
},
{
- "codeId": "G12鍔ㄤ綔鐘舵��",
+ "codeId": "G12ActionState",
"addressIndex": "118",
"addressLenght": "2"
},
{
- "codeId": "G13鍔ㄤ綔鐘舵��",
+ "codeId": "G13ActionState",
"addressIndex": "120",
"addressLenght": "2"
},
{
- "codeId": "G04ID",
+ "codeId": "G04IDS",
"addressIndex": "122",
"addressLenght": "2"
},
{
- "codeId": "G05ID",
+ "codeId": "G05IDS",
"addressIndex": "124",
"addressLenght": "2"
},
{
- "codeId": "G06ID",
+ "codeId": "G06IDS",
"addressIndex": "126",
"addressLenght": "2"
},
{
- "codeId": "G07ID",
+ "codeId": "G07IDS",
"addressIndex": "128",
"addressLenght": "2"
},
{
- "codeId": "G08ID",
+ "codeId": "G08IDS",
"addressIndex": "130",
"addressLenght": "2"
},
{
- "codeId": "G09ID",
+ "codeId": "G09IDS",
"addressIndex": "132",
"addressLenght": "2"
},
{
- "codeId": "G10ID",
+ "codeId": "G10IDS",
"addressIndex": "134",
"addressLenght": "2"
},
{
- "codeId": "G11ID",
+ "codeId": "G11IDS",
"addressIndex": "136",
"addressLenght": "2"
},
{
- "codeId": "G12ID",
+ "codeId": "G12IDS",
"addressIndex": "138",
"addressLenght": "2"
},
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.xlsx b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.xlsx
new file mode 100644
index 0000000..dd72649
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.xlsx
Binary files differ
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
index b46da5e..09de05d 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
@@ -109,15 +109,23 @@
@Test
public void CacheEmpty() {
log.info("娴嬭瘯鍑虹墖");
- downStorageCageDetailsService.CacheOut(1,10);
+ downStorageCageDetailsService.CacheOut(1,2);
}
+ @Test
+ public void CacheEmpty1() {
+ log.info("娴嬭瘯鍑虹墖");
+ downStorageCageDetailsServiceImpl.CacheOut1(1,6);
+
+ }
+
+
@Test
public void getTotalGlassDimensionsByWorkstation() {
log.info("宸ヤ綅鏄剧ず");
- downWorkstationService.getTotalGlassDimensionsByWorkstation();
+ downWorkstationService.getTotalGlassDimensionsByWorkstation(1,3);
}
@@ -133,7 +141,7 @@
public void updateTaskStateToZero() {
log.info("鏇存柊鐘舵��0");
- downGlassTaskServiceImpl.updateTaskStateToZero("3");
+ downGlassTaskServiceImpl.updateTaskState("3");
}
--
Gitblit v1.8.0