From 09a010c5dc11c68a866a6075a74bd1bbefb4a9a8 Mon Sep 17 00:00:00 2001 From: wu <731351411@qq.com> Date: 星期一, 24 六月 2024 16:38:23 +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 | 60 + hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml | 15 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java | 124 +++ hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java | 16 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java | 8 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java | 6 hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java | 12 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageOutTaskMapper.java | 6 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java | 4 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java | 2 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java | 3 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageFeedTaskService.java | 11 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml | 5 hangzhoumesParent/JsonFile/PlcCacheVerticalGlass.json | 66 + hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageFeedTaskMapper.java | 9 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java | 3 hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml | 16 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java | 15 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java | 11 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java | 2 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 282 +++++--- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java | 24 UI-Project/package.json | 4 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json | 66 + hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java | 4 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml | 46 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java | 22 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java | 18 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java | 99 +- hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/BigStorageCageBaseInfo.java | 32 + hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java | 6 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml | 5 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java | 8 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-prod.yml | 5 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java | 5 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java | 28 /dev/null | 18 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java | 63 + hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java | 5 UI-Project/src/views/GlassStorage/MaterialRackManagement.vue | 412 +++++++++++++ UI-Project/src/router/index.js | 13 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml | 14 hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java | 35 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java | 12 UI-Project/package-lock.json | 193 ++++++ hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java | 29 46 files changed, 1,429 insertions(+), 413 deletions(-) diff --git a/UI-Project/package-lock.json b/UI-Project/package-lock.json index ba2dc0c..d94acf9 100644 --- a/UI-Project/package-lock.json +++ b/UI-Project/package-lock.json @@ -11,6 +11,8 @@ "@element-plus/icons-vue": "^2.1.0", "@vue-macros/reactivity-transform": "^0.3.23", "axios": "^1.6.8", + "chart.js": "^4.4.3", + "echarts": "^5.5.0", "element-plus": "^2.4.0", "moment": "^2.30.1", "pinia": "^2.1.6", @@ -18,6 +20,7 @@ "sortablejs": "^1.15.1", "sweetalert2": "^11.10.7", "vue": "^3.3.4", + "vue-echarts": "^6.7.3", "vue-i18n": "^9.13.1", "vue-router": "^4.2.4", "vxe-table": "^4.5.15", @@ -28,6 +31,7 @@ "@types/sortablejs": "^1.15.7", "@vitejs/plugin-vue": "^4.3.4", "http-proxy-middleware": "^3.0.0", + "sass": "^1.77.6", "vite": "^4.4.9" } }, @@ -498,6 +502,11 @@ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, + "node_modules/@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" + }, "node_modules/@popperjs/core": { "name": "@sxzz/popperjs-es", "version": "2.11.7", @@ -917,6 +926,17 @@ "node": ">=0.8" } }, + "node_modules/chart.js": { + "version": "4.4.3", + "resolved": "https://registry.npmmirror.com/chart.js/-/chart.js-4.4.3.tgz", + "integrity": "sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==", + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": ">=8" + } + }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -1012,6 +1032,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/dom-zindex/-/dom-zindex-1.0.1.tgz", "integrity": "sha512-M/MERVDZ8hguvjl6MAlLWSLYLS7PzEyXaTb5gEeJ+SF+e9iUC0sdvlzqe91MMDHBoy+nqw7wKcUOrDSyvMCrRg==" + }, + "node_modules/echarts": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.0.tgz", + "integrity": "sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==", + "dependencies": { + "tslib": "2.3.0", + "zrender": "5.5.0" + } }, "node_modules/element-plus": { "version": "2.4.0", @@ -1190,6 +1219,12 @@ "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } + }, + "node_modules/immutable": { + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.6.tgz", + "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", + "dev": true }, "node_modules/is-binary-path": { "version": "2.1.0", @@ -1500,6 +1535,11 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, + "node_modules/resize-detector": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz", + "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==" + }, "node_modules/rollup": { "version": "3.29.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", @@ -1514,6 +1554,23 @@ }, "optionalDependencies": { "fsevents": "~2.3.2" + } + }, + "node_modules/sass": { + "version": "1.77.6", + "resolved": "https://registry.npmmirror.com/sass/-/sass-1.77.6.tgz", + "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" } }, "node_modules/sortablejs": { @@ -1563,6 +1620,11 @@ "engines": { "node": ">=8.0" } + }, + "node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" }, "node_modules/undici-types": { "version": "5.26.5", @@ -1646,6 +1708,55 @@ "@vue/runtime-dom": "3.3.4", "@vue/server-renderer": "3.3.4", "@vue/shared": "3.3.4" + } + }, + "node_modules/vue-echarts": { + "version": "6.7.3", + "resolved": "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-6.7.3.tgz", + "integrity": "sha512-vXLKpALFjbPphW9IfQPOVfb1KjGZ/f8qa/FZHi9lZIWzAnQC1DgnmEK3pJgEkyo6EP7UnX6Bv/V3Ke7p+qCNXA==", + "hasInstallScript": true, + "dependencies": { + "resize-detector": "^0.3.0", + "vue-demi": "^0.13.11" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.5", + "@vue/runtime-core": "^3.0.0", + "echarts": "^5.4.1", + "vue": "^2.6.12 || ^3.1.1" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "@vue/runtime-core": { + "optional": true + } + } + }, + "node_modules/vue-echarts/node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } } }, "node_modules/vue-i18n": { @@ -1743,6 +1854,14 @@ }, "engines": { "node": ">=0.8" + } + }, + "node_modules/zrender": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.5.0.tgz", + "integrity": "sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==", + "dependencies": { + "tslib": "2.3.0" } } }, @@ -1986,6 +2105,11 @@ "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" }, "@popperjs/core": { "version": "npm:@sxzz/popperjs-es@2.11.7", @@ -2297,6 +2421,14 @@ "crc-32": "~1.2.0" } }, + "chart.js": { + "version": "4.4.3", + "resolved": "https://registry.npmmirror.com/chart.js/-/chart.js-4.4.3.tgz", + "integrity": "sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==", + "requires": { + "@kurkle/color": "^0.3.0" + } + }, "chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -2358,6 +2490,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/dom-zindex/-/dom-zindex-1.0.1.tgz", "integrity": "sha512-M/MERVDZ8hguvjl6MAlLWSLYLS7PzEyXaTb5gEeJ+SF+e9iUC0sdvlzqe91MMDHBoy+nqw7wKcUOrDSyvMCrRg==" + }, + "echarts": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.0.tgz", + "integrity": "sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==", + "requires": { + "tslib": "2.3.0", + "zrender": "5.5.0" + } }, "element-plus": { "version": "2.4.0", @@ -2493,6 +2634,12 @@ "is-plain-obj": "^3.0.0", "micromatch": "^4.0.5" } + }, + "immutable": { + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.6.tgz", + "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", + "dev": true }, "is-binary-path": { "version": "2.1.0", @@ -2684,6 +2831,11 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, + "resize-detector": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz", + "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==" + }, "rollup": { "version": "3.29.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", @@ -2691,6 +2843,17 @@ "devOptional": true, "requires": { "fsevents": "~2.3.2" + } + }, + "sass": { + "version": "1.77.6", + "resolved": "https://registry.npmmirror.com/sass/-/sass-1.77.6.tgz", + "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" } }, "sortablejs": { @@ -2728,6 +2891,11 @@ "requires": { "is-number": "^7.0.0" } + }, + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" }, "undici-types": { "version": "5.26.5", @@ -2768,6 +2936,23 @@ "@vue/runtime-dom": "3.3.4", "@vue/server-renderer": "3.3.4", "@vue/shared": "3.3.4" + } + }, + "vue-echarts": { + "version": "6.7.3", + "resolved": "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-6.7.3.tgz", + "integrity": "sha512-vXLKpALFjbPphW9IfQPOVfb1KjGZ/f8qa/FZHi9lZIWzAnQC1DgnmEK3pJgEkyo6EP7UnX6Bv/V3Ke7p+qCNXA==", + "requires": { + "resize-detector": "^0.3.0", + "vue-demi": "^0.13.11" + }, + "dependencies": { + "vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "requires": {} + } } }, "vue-i18n": { @@ -2835,6 +3020,14 @@ "wmf": "~1.0.1", "word": "~0.3.0" } + }, + "zrender": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.5.0.tgz", + "integrity": "sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==", + "requires": { + "tslib": "2.3.0" + } } } } diff --git a/UI-Project/package.json b/UI-Project/package.json index 6cade56..15242fb 100644 --- a/UI-Project/package.json +++ b/UI-Project/package.json @@ -11,6 +11,8 @@ "@element-plus/icons-vue": "^2.1.0", "@vue-macros/reactivity-transform": "^0.3.23", "axios": "^1.6.8", + "chart.js": "^4.4.3", + "echarts": "^5.5.0", "element-plus": "^2.4.0", "moment": "^2.30.1", "pinia": "^2.1.6", @@ -18,6 +20,7 @@ "sortablejs": "^1.15.1", "sweetalert2": "^11.10.7", "vue": "^3.3.4", + "vue-echarts": "^6.7.3", "vue-i18n": "^9.13.1", "vue-router": "^4.2.4", "vxe-table": "^4.5.15", @@ -28,6 +31,7 @@ "@types/sortablejs": "^1.15.7", "@vitejs/plugin-vue": "^4.3.4", "http-proxy-middleware": "^3.0.0", + "sass": "^1.77.6", "vite": "^4.4.9" } } diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js index 33ec397..764db3a 100644 --- a/UI-Project/src/router/index.js +++ b/UI-Project/src/router/index.js @@ -187,6 +187,19 @@ ] }, + { + path: 'GlassStorage', + name: 'GlassStorage', + component: () => import('../views/GlassStorage/MaterialRackManagement.vue'), + children:[ + { + path: '/GlassStorage/MaterialRackManagement', + name: 'MaterialRackManagement', + component: () => import('../views/GlassStorage/MaterialRackManagement.vue') + } + ] + }, + /*----------- 鍙鍖栫郴缁� ----------------*/ { path: 'Visualization', diff --git a/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue b/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue new file mode 100644 index 0000000..23b2204 --- /dev/null +++ b/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue @@ -0,0 +1,412 @@ +<template> + <div > + <el-card style="flex: 1; margin-left: 10px; " :loading="loading"> + <div slot="header" class="clearfix" style="display: flex; align-items: center;"> + +<!-- 宸︿晶鎸夐挳缁� --> +<div > + <el-button type="success" size="mini" @click="handleInbound()">鍏ュ簱</el-button> + <el-button type="success" size="mini" @click="handleInbound()">鍚婅浣嶅叆搴�</el-button> + <el-button type="success" size="mini" @click="handleInbound()">娣诲姞鍘熺墖</el-button> +</div> + +<!-- 鍙充晶閫夋嫨妗� --> +<el-form-item style="margin-top: 15px; width: 150px;"> + <el-select v-model="formData2.dzw" placeholder="璇烽�夋嫨鍚婅浣�"> + <el-option label="鍚婅浣�1" value="鍚婅浣�1"></el-option> + <el-option label="鍚婅浣�2" value="鍚婅浣�2"></el-option> + <!-- 鏍规嵁瀹為檯鎯呭喌娣诲姞鏇村閫夐」 --> + </el-select> +</el-form-item> + +</div> + + <el-table + :data="tableData" + + style="width: 98%; height: 200px" + @selection-change="handleSelectionChange" + :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }" + ref="table" + + empty-text="No Data" + > + + <el-table-column prop="location" label="搴撲綅鍙�"></el-table-column> + <el-table-column prop="type" label="绫诲瀷"></el-table-column> + <el-table-column prop="length" label="闀垮害(mm)"></el-table-column> + <el-table-column prop="height" label="楂樺害(mm)"></el-table-column> + <el-table-column prop="thickness" label="鍘氬害(mm)"></el-table-column> + <el-table-column prop="quantity" label="鏁伴噺"></el-table-column> + <el-table-column prop="entry_time" label="鍏ュ簱鏃堕棿"></el-table-column> + <el-table-column prop="batchnumber" label="鎵规鍙�"></el-table-column> + + <el-table-column + align="center" + label="鏂欐灦鐘舵��" + min-width="80" + prop="shelf_status" +> + <template #default="scope"> + <el-tag :type="getTagType(scope.row.shelf_status)"> + {{ scope.row.shelf_status === 1 ? '鍚敤' : '鏈惎鐢�' }} + </el-tag> + </template> +</el-table-column> + + <!-- 鎿嶄綔鍒� --> + <el-table-column label="鎿嶄綔" width="300"> + <template #default="{ row }"> + <el-button type="primary" size="mini" @click="handleEdit(row)">淇敼</el-button> + <el-button type="danger" size="mini" @click="handleDelete(row)">鍒犻櫎</el-button> + <el-button type="warning" size="mini" @click="handleCheckout(row)">鍑哄簱</el-button> + + </template> + </el-table-column> + </el-table> + + <el-table + :data="tasktableData" + style="width: 98%; height: 150px" + @selection-change="handleSelectionChange" + :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }" + ref="table" + empty-text="No Data" + > + + + <template #header> + <div style="display: flex; align-items: center;"> + <span style="font-size: 16px; font-weight: bold; margin-right: 20px;">浠诲姟鍒楄〃</span> + + </div> + </template> + <el-table-column prop="Glassid" label="Glassid"></el-table-column> + <el-table-column prop="taskDescription" label="浠诲姟鎻忚堪" width="250"></el-table-column> + <el-table-column prop="glassThickness" label="鐜荤拑鍘氬害"></el-table-column> + <el-table-column prop="glassFilm" label="鐜荤拑鑶滅郴"></el-table-column> + <el-table-column prop="creationTime" label="鍒涘缓鏃堕棿"></el-table-column> + + <el-table-column + align="center" + label="浠诲姟鐘舵��" + min-width="80" + prop="taskStatus" + > + <template #default="scope"> + <el-tag :type="getTagType2(scope.row.taskStatus)"> + {{ scope.row.taskStatus == 'completed' ? '瀹屾垚' : '杩涜涓�' }} + </el-tag> + </template> + </el-table-column> + + <!-- 鎿嶄綔鍒� --> + <el-table-column label="鎿嶄綔" width="350"> + <template #default="{ row }"> + <el-button type="primary" size="mini" @click="handleRestart(row)">閲嶆柊寮�濮�</el-button> + <el-button type="danger" size="mini" @click="handleDelete(row)">鍒犻櫎浠诲姟</el-button> + <el-button type="success" size="mini" @click="handleComplete(row)">浠诲姟瀹屾垚</el-button> + </template> + </el-table-column> + </el-table> + + </el-card> + + <div ref="chart" id="chart" style="width: 100%; height: 250px;"></div> + + + <!-- 鍏ュ簱瀵硅瘽妗� --> + <el-dialog + title="鍏ュ簱" + v-model="dialogVisible" + width="30%" + :before-close="handleCloseDialog" + > + <el-form :model="formData" ref="form" label-width="80px"> + <el-form-item label="杩涘簱鏂欐灦"> + <el-select v-model="formData.shelf" placeholder="璇烽�夋嫨杩涘簱鏂欐灦"> + <el-option label="A1" value="A1"></el-option> + <el-option label="B2" value="B2"></el-option> + <!-- 鏍规嵁瀹為檯鎯呭喌娣诲姞鏇村閫夐」 --> + </el-select> + </el-form-item> + <el-form-item label="棰滆壊鑶滅郴"> + <el-select v-model="formData.color" placeholder="璇烽�夋嫨棰滆壊鑶滅郴"> + <el-option label="Red" value="Red"></el-option> + <el-option label="Blue" value="Blue"></el-option> + <!-- 鏍规嵁瀹為檯鎯呭喌娣诲姞鏇村閫夐」 --> + </el-select> + </el-form-item> + <el-form-item label="瀹藉害"> + <el-input v-model.number="formData.width" placeholder="璇疯緭鍏ュ搴�"></el-input> + </el-form-item> + <el-form-item label="楂樺害"> + <el-input v-model.number="formData.height" placeholder="璇疯緭鍏ラ珮搴�"></el-input> + </el-form-item> + <el-form-item label="鍘氬害"> + <el-input v-model.number="formData.thickness" placeholder="璇疯緭鍏ュ帤搴�"></el-input> + </el-form-item> + <el-form-item label="鏁伴噺"> + <el-input v-model.number="formData.quantity" placeholder="璇疯緭鍏ユ暟閲�"></el-input> + </el-form-item> + </el-form> + + <div slot="footer" class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="handleConfirmInbound">纭� 瀹�</el-button> + </div> + </el-dialog> + <div ref="chart" id="chart" style="width: 100%; height: 400px;"></div> + </div> +</template> + + + + +<script setup> +import { ref, onMounted, onBeforeUnmount } from 'vue'; // 瀵煎叆 Vue 3 鐨勬ā鍧� +import * as echarts from 'echarts'; + + + const loading = ref(false); + const tableData = ref([ + { + location: '1', + type: 'Type A', + length: '100', + height: '50', + thickness: '10', + quantity: '5', + entry_time: '2024-06-19', + batchnumber:"444", + shelf_status: 1 + }, + { + location: '2', + type: 'Type B', + length: '120', + height: '60', + thickness: '12', + quantity: '10', + entry_time: '2024-06-18', + batchnumber:"444", + shelf_status: 0 + }, + { + location: '3', + type: 'Type B', + length: '120', + height: '60', + thickness: '12', + quantity: '10', + entry_time: '2024-06-18', + batchnumber:"444", + shelf_status: 1 + }, + { + location: '4', + type: 'Type B', + length: '120', + height: '60', + thickness: '12', + quantity: '10', + entry_time: '2024-06-18', + batchnumber:"444", + shelf_status: 1 + }, + { + location: '5', + type: 'Type B', + length: '120', + height: '60', + thickness: '12', + quantity: '10', + entry_time: '2024-06-18', + batchnumber:"444", + shelf_status: 1 + } + // Add more data as needed + ]); + + const getTagType2 =(status) => { + switch (status) { + case 'completed': + return 'success'; + case 'in-progress': + return 'info'; + case 'warning': + return 'warning'; + case 'danger': + return 'danger'; + default: + return ''; + } + } + + const getTagType =(status) => { + return status === 1 ? 'success' : 'danger'; + // 鏍规嵁鐘舵�佸�煎喅瀹氭爣绛剧被鍨嬶紝杩欓噷鍋囪鐘舵�佷负1鏃朵负鎴愬姛锛堢豢鑹诧級锛屽惁鍒欎负澶辫触锛堢孩鑹诧級 + } + + const tasktableData=ref([ + + { + Glassid: 'G001', + taskDescription: '浠庡悐瑁呬綅銆�99銆戝埌浠撲綅銆�56銆�', + taskStatus: 'in-progress', + glassThickness: '5mm', + glassFilm: '鑶滅郴A', + creationTime: '2024-06-19 10:00:00' + }, + { + Glassid: 'G002', + taskDescription: '浠庡悐瑁呬綅銆�99銆戝埌浠撲綅銆�56銆�', + taskStatus: 'completed', + glassThickness: '10mm', + glassFilm: '鑶滅郴B', + creationTime: '2024-06-19 11:00:00' + } + ]); + + const dialogVisible = ref(false); + const formData = ref({ + shelf: '', + color: '', + width: '', + height: '', + thickness: '', + quantity: '' + }); + + const formData2 = ref({ + dzw: '', + + }); + + const handleEdit = (row) => { + // 澶勭悊淇敼鏁伴噺閫昏緫 + console.log('Edit Quantity:', row); + }; + + const handleDelete = (row) => { + // 澶勭悊鍒犻櫎閫昏緫 + console.log('Delete:', row); + }; + + const handleCheckout = (row) => { + // 澶勭悊鍑哄簱閫昏緫 + console.log('Checkout:', row); + }; + + const handleInbound = () => { + // 鎵撳紑鍏ュ簱瀵硅瘽妗� + dialogVisible.value = true; + }; + + const handleCloseDialog = () => { + // 鍏抽棴瀵硅瘽妗嗘椂閲嶇疆琛ㄥ崟鏁版嵁 + formData.value = { + shelf: '', + color: '', + width: '', + height: '', + thickness: '', + quantity: '' + }; + dialogVisible.value = false; + }; + + const handleConfirmInbound = () => { + // 澶勭悊纭鍏ュ簱閫昏緫锛屽彲浠ュ湪杩欓噷鎻愪氦琛ㄥ崟鎴栬�呮墽琛屽叾浠栨搷浣� + console.log('Confirm Inbound:', formData.value); + // 鍏抽棴瀵硅瘽妗� + dialogVisible.value = false; + }; + + + + let chartInstance = null; + +onMounted(() => { + // Initialize the chart + chartInstance = echarts.init(document.getElementById('chart')); + + // Simulated data for demonstration + const chartData = { + labels: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'], + datasets: [ + { name: '浣跨敤鎯呭喌缁熻', data: [{ remaining: 4, total: 5 }, { remaining: 9, total: 10 }, { remaining: 0, total: 30 }, { remaining: 0, total: 10 },{ remaining: 4, total: 5 }] } + ] + }; + + const options = { + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + } + }, + legend: { + data: ['浣跨敤鎯呭喌缁熻'] + }, + xAxis: { + type: 'category', + data: chartData.labels + }, + yAxis: { + type: 'value' + }, + series: chartData.datasets.map(item => ({ + name: item.name, + type: 'bar', + stack: '鎬婚噺', + label: { + show: true, + position: 'inside', + formatter: '{c}%' + }, + data: item.data.map(dataItem => ({ + value: (dataItem.remaining / dataItem.total * 100).toFixed(2), // 璁$畻鍓╀綑閲忓崰姣旓紝淇濈暀涓や綅灏忔暟 + remaining: dataItem.remaining, + total: dataItem.total, + itemStyle: { + color: getColorByRemaining(dataItem.remaining, dataItem.total) + } + })) + })) + }; + + function getColorByRemaining(remaining, total) { + // 鏍规嵁鍓╀綑閲忎笌鎬婚噺鐨勬瘮渚嬶紝璁剧疆涓嶅悓鐨勯鑹查�昏緫 + const percentage = remaining / total; + if (percentage >= 0.8) { + return '#FF6666'; // Red + } else if (percentage >= 0.5) { + return '#FFCC66'; // Yellow + } else { + return '#66CC66'; // Green + } + } + + // Set options and render chart + if (chartInstance) { + chartInstance.setOption(options); + } +}); + +onBeforeUnmount(() => { + if (chartInstance) { + chartInstance.dispose(); + chartInstance = null; + } +}); + +const handleSelectionChange = (selection) => { + console.log('Selection changed:', selection); +}; + +</script> + +<style> + +</style> diff --git a/hangzhoumesParent/JsonFile/PlcCacheVerticalGlass.json b/hangzhoumesParent/JsonFile/PlcCacheVerticalGlass.json index 5838dac..1b538cf 100644 --- a/hangzhoumesParent/JsonFile/PlcCacheVerticalGlass.json +++ b/hangzhoumesParent/JsonFile/PlcCacheVerticalGlass.json @@ -1,6 +1,6 @@ { - "plcAddressBegin":"DB.0", - "plcAddressLenght":"72", + "plcAddressBegin":"DB14.0", + "plcAddressLenght":"84", "dataType":"word", "parameteInfor":[ { @@ -19,7 +19,7 @@ }, { "codeId": "D04Request", - "addressIndex":"8", + "addressIndex":"34", "addressLenght":"2", "ratio":"1", "unit":"" @@ -27,28 +27,62 @@ { "codeId": "D04ID1", "addressIndex":"10", - "addressLenght":"6", + "addressLenght":"36", "ratio":"1", "unit":"" }, { - "codeId": "D02Go", - "addressIndex":"20", + "codeId": "E01Status", + "addressIndex":"2", + "addressLenght":"68", + "ratio":"1", + "unit":"" + }, + { + "codeId": "E02Status", + "addressIndex":"2", + "addressLenght":"70", + "ratio":"1", + "unit":"" + }, + { + "codeId": "MaxTaskNo", + "addressIndex":"2", + "addressLenght":"72", + "ratio":"1", + "unit":"" + }, + { + "codeId": "D02MaxWidth", + "addressIndex":"2", + "addressLenght":"74", + "ratio":"1", + "unit":"" + }, + { + "codeId": "D05MaxWidth", + "addressIndex":"2", + "addressLenght":"76", + "ratio":"1", + "unit":"" + }, + { + "codeId": "GlassGap", + "addressIndex":"2", + "addressLenght":"78", + "ratio":"1", + "unit":"" + }, + { + "codeId": "D02SitState", + "addressIndex":"80", "addressLenght":"2", "ratio":"1", "unit":"" }, { - "codeId": "D05Go", - "addressIndex":"22", - "addressLenght":"2", - "ratio":"1", - "unit":"" - } - , - { - "codeId": "DeviceStatus", - "addressIndex":"70", + "codeId": "D05SitState", + "addressIndex":"82", "addressLenght":"2", "ratio":"1", "unit":"" diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/BigStorageCageBaseInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/BigStorageCageBaseInfo.java new file mode 100644 index 0000000..c427061 --- /dev/null +++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/BigStorageCageBaseInfo.java @@ -0,0 +1,32 @@ +package com.mes.base.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author : zhoush + * @Date: 2024/6/21 9:40 + * @Description: + */ +@Data +public class BigStorageCageBaseInfo { + + /** + * 鐜荤拑id + */ + @ApiModelProperty(value = "鐜荤拑id") + private String glassId; + + /** + * 瀹� + */ + @ApiModelProperty(value = "瀹�") + private Double width; + + /** + * 鏍煎瓙鍙� + */ + @ApiModelProperty(value = "鐜荤拑id") + private Integer slot; + +} 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 0c6feb0..b18d95d 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 @@ -18,8 +18,8 @@ * 纾ㄨ竟娓呮礂鍓� */ /** - * A09鍑虹墖鐩爣浣嶇疆2001 - * A10鍑虹墖鐩爣浣嶇疆2002 + * A09鍑虹墖鐩爣浣嶇疆 d02鍗ц浆绔� 閽㈠寲鍑虹墖 2001 + * A10鍑虹墖鐩爣浣嶇疆 d05鍗ц浆绔� 浜哄伐鍑虹墖 2002 */ public static final Integer A09_OUT_TARGET_POSITION = 2001; public static final Integer A10_OUT_TARGET_POSITION = 2002; @@ -73,8 +73,22 @@ * 0 澶х悊鐗囩鏃犺姹� * 1 澶х悊鐗囩杩涚墖璇锋眰 */ - public static final Integer BIG_STORAGE_REQUEST = 0; - public static final Integer BIG_STORAGE_REQUEST_IN = 1; + public static final String BIG_STORAGE_REQUEST = "0"; + public static final String BIG_STORAGE_REQUEST_IN = "1"; + + /** + * 澶х悊鐗囩璇︽儏鐘舵�� + * 0 澶х悊鐗囩杩涚墖涓� + * 1 澶х悊鐗囩鍦ㄧ鍐� + * 2 澶х悊鐗囩鍑虹墖涓� + * 3 澶х悊鐗囩鍑虹墖瀹屾垚 + * 4 澶х悊鐗囩鎵嬪姩鍑虹墖 + */ + public static final Integer BIG_STORAGE_IN = 0; + public static final Integer BIG_STORAGE_INSIDE = 1; + public static final Integer BIG_STORAGE_OUT = 2; + public static final Integer BIG_STORAGE_OUTSIDE = 3; + public static final Integer BIG_STORAGE_MANUAL = 4; /** * 鍗ц浆绔嬭繘鐗囪姹� @@ -87,6 +101,7 @@ public static final Integer BIG_STORAGE_IN_UP = 2; public static final Integer BIG_STORAGE_IN_CAR = 3; public static final Integer BIG_STORAGE_IN_SLOT = 4; + public static final List<Integer> BIG_STORAGE_IN_UP_ALL = Arrays.asList(1, 2); /** * 鍗ц浆绔嬪嚭鐗囪姹� * 1 浠诲姟鐢熸垚 @@ -104,12 +119,6 @@ */ public static final Integer BIG_STORAGE_IN_WAIT = 1; public static final Integer BIG_STORAGE_IN_RUN = 2; - - /** - * 澶х悊鐗囩瀹藉害 鍙� 鐜荤拑闂磋窛 - */ - public static final Integer BIG_STORAGE_WIDTH = 5000; - public static final Integer BIG_STORAGE_GAP = 20; /** * 閽㈠寲灏忕墖琛� diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java index 4688c38..bdfb970 100644 --- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java +++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java @@ -2,16 +2,15 @@ import com.github.yulichang.base.MPJBaseMapper; import com.mes.glassinfo.entity.GlassInfo; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> - * Mapper 鎺ュ彛 + * Mapper 鎺ュ彛 * </p> * * @author wu * @since 2024-04-29 */ -public interface GlassInfoMapper extends BaseMapper<GlassInfo>, MPJBaseMapper<GlassInfo> { +public interface GlassInfoMapper extends MPJBaseMapper<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 5dd8f54..6e35509 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 @@ -4,25 +4,25 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.yulichang.base.MPJBaseServiceImpl; import com.github.yulichang.query.MPJQueryWrapper; -import com.github.yulichang.toolkit.JoinWrappers; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.entity.OptimizeGlassinfo; import com.mes.glassinfo.mapper.GlassInfoMapper; import com.mes.glassinfo.service.GlassInfoService; import com.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 java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * <p> - * 鏈嶅姟瀹炵幇绫� + * 鏈嶅姟瀹炵幇绫� * </p> * * @author wu @@ -33,10 +33,11 @@ public class GlassInfoServiceImpl extends MPJBaseServiceImpl<GlassInfoMapper, GlassInfo> implements GlassInfoService { @Autowired OptimizeProjectMapper optimizeProjectMapper; + @Override @DS("pp") public List<GlassInfo> selectGlassInfo(String engineeringId) { - List<OptimizeGlassinfo> optimizeGlassinfos=null; + List<OptimizeGlassinfo> optimizeGlassinfos = null; if (engineeringId != null) { optimizeGlassinfos = optimizeProjectMapper.selectJoinList(OptimizeGlassinfo.class, new MPJQueryWrapper<OptimizeProject>() .select("b.process_id,t.glass_type,b.o_width,b.o_height,t.glass_thickness,b.order_sort,b.p_width,b.p_height,b.layer, b.total_layer, b.stock_id,b.heat_layout_id,b.heat_layout_sort,c.x_axis,c.y_axis,b.project_no,b.glass_id,c.rotate_angle") @@ -49,7 +50,7 @@ // 鍒涘缓涓�涓� List 鐢ㄤ簬淇濆瓨鏄犲皠鍚庣殑瀹炰綋瀵硅薄 List<GlassInfo> resultList = new ArrayList<>(); - if(optimizeGlassinfos!=null){ + if (optimizeGlassinfos != null) { for (OptimizeGlassinfo map : optimizeGlassinfos) { // 鍒涘缓涓�涓柊鐨� OptimizeGlassinfo 瀵硅薄 GlassInfo glassInfo = new GlassInfo(); @@ -76,8 +77,8 @@ resultList.add(glassInfo); } } - log.info("鏌ヨ鍑篻lassinfo鐨勬暟鎹畕}:",resultList); - log.info("鏌ヨ鍑篻lassinfopro鐨勬暟鎹畕}:",optimizeGlassinfos); + log.info("鏌ヨ鍑篻lassinfo鐨勬暟鎹畕}:", resultList); + log.info("鏌ヨ鍑篻lassinfopro鐨勬暟鎹畕}:", optimizeGlassinfos); return resultList; } @@ -87,10 +88,6 @@ } - - - - @Override public int getGlassInfoCountByFlowCardId(String flowCardId) { return baseMapper.selectCount(new QueryWrapper<GlassInfo>().lambda() @@ -98,24 +95,37 @@ } - @Override public List<Map<String, Object>> getFlowCardId() { - return baseMapper.selectJoinMaps(JoinWrappers.lambda(GlassInfo.class) - .select(GlassInfo::getFlowCardId) - .leftJoin(UpPattenUsage.class, on -> on - .eq(OptimizeProject::getProjectNo, GlassInfo::getEngineerId) - .ne(OptimizeProject::getState, 300) - ) - .groupBy(GlassInfo::getFlowCardId) + // 绗簩涓煡璇細鏌ヨ OptimizeProject 琛紝鏍规嵁 GlassInfo 鐨� engineerId 鍜� state 杩涜绛涢�� + List<OptimizeProject> optimizeProjects = optimizeProjectMapper.selectList( + new QueryWrapper<OptimizeProject>() + .ne("state", 300) ); + // 鎻愬彇 engineerId 鍒楄〃 + List<String> engineerIds = optimizeProjects.stream() + .map(OptimizeProject::getProjectNo) + .collect(Collectors.toList()); + + // 绗竴涓煡璇細鏌ヨ GlassInfo 琛ㄥ苟鎸� flow_card_id 鍒嗙粍锛屽悓鏃剁瓫閫夊嚭鍦� engineerIds 鍒楄〃涓殑璁板綍 + List<GlassInfo> glassInfos = baseMapper.selectList( + new QueryWrapper<GlassInfo>() + .in("engineer_id", engineerIds) + .groupBy("flow_card_id") + ); + + // 杞崲涓� List<Map<String, Object>> + List<Map<String, Object>> result = glassInfos.stream() + .map(glassInfo -> { + Map<String, Object> map = new HashMap<>(); + map.put("flow_card_id", glassInfo.getFlowCardId()); + // 濡傛灉杩樻湁鍏朵粬瀛楁闇�瑕佹坊鍔犲埌 map 涓紝鍦ㄨ繖閲岀户缁坊鍔� + return map; + }) + .collect(Collectors.toList()); + log.info("result: {}", result); + return result; } - - - - - - } diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java index ac47c7b..2ebf5a8 100644 --- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java +++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import com.mes.base.entity.BigStorageCageBaseInfo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -13,88 +16,92 @@ * </p> * * @author zhoush - * @since 2024-04-07 + * @since 2024-03-27 */ +@ApiModel(description = "<p> 閽㈠寲灏忕墖淇℃伅琛� </p>") @Data @EqualsAndHashCode(callSuper = false) -public class TemperingGlassInfo implements Serializable { +public class TemperingGlassInfo extends BigStorageCageBaseInfo implements Serializable { private static final long serialVersionUID = 1L; /** * 閽㈠寲灏忕墖淇℃伅琛╥d */ + @ApiModelProperty(value = "閽㈠寲灏忕墖淇℃伅琛╥d", position = 2) @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 娴佺▼鍗� */ - private String flowcardId; + @ApiModelProperty(value = "娴佺▼鍗�", position = 4) + private String flowCardId; /** * 娴佺▼鍗$幓鐠冪被鍨� */ + @ApiModelProperty(value = "娴佺▼鍗$幓鐠冪被鍨�", position = 5) private Integer glassType; - - /** - * 瀹� - */ - private Double width; /** * 楂� */ + @ApiModelProperty(value = "楂�", position = 7) private Double height; /** * 鍘氬害 */ + @ApiModelProperty(value = "鍘氬害", position = 8) private Double thickness; /** * 鑶滅郴 */ - private Integer filmsid; + @ApiModelProperty(value = "鑶滅郴", position = 9) + private String filmsid; /** * 閽㈠寲鏄惁鎺ュ彈妯斁 */ + @ApiModelProperty(value = "閽㈠寲鏄惁鎺ュ彈妯斁", position = 10) private Integer ishorizontal; /** * 閽㈠寲鐗堝浘id */ + @ApiModelProperty(value = "閽㈠寲鐗堝浘id", position = 11) private Integer temperingLayoutId; /** * 閽㈠寲鐗堝浘鐗囧簭 */ + @ApiModelProperty(value = "閽㈠寲鐗堝浘鐗囧簭", position = 12) private Integer temperingFeedSequence; /** * x鍧愭爣 */ + @ApiModelProperty(value = "x鍧愭爣", position = 13) private Integer xCoordinate; /** * y鍧愭爣 */ + @ApiModelProperty(value = "y鍧愭爣", position = 14) private Integer yCoordinate; /** * 鏃嬭浆瑙掑害锛堥�嗘椂閽堬級 */ + @ApiModelProperty(value = "鏃嬭浆瑙掑害锛堥�嗘椂閽堬級", position = 15) private Integer angle; /** * 鐘舵�� */ + @ApiModelProperty(value = "鐘舵��", position = 16) private Integer state; - /** - * 鏍煎瓙鍙� - */ - private Integer slot; - } diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java index dc41a61..65122ab 100644 --- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java +++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java @@ -3,6 +3,9 @@ import com.baomidou.dynamic.datasource.annotation.DS; import com.github.yulichang.base.MPJBaseMapper; import com.mes.temperingglass.entity.TemperingGlassInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -15,4 +18,6 @@ @DS("salve_hangzhoumes") public interface TemperingGlassInfoMapper extends MPJBaseMapper<TemperingGlassInfo> { + boolean saveBatch(@Param(value = "list") List<TemperingGlassInfo> list); + } diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml new file mode 100644 index 0000000..c85d6d5 --- /dev/null +++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.mes.temperingglass.mapper.TemperingGlassInfoMapper"> + <insert id="saveBatch"> + INSERT INTO tempering_glass_info (glass_id, flow_card_id, glass_type, width, height, thickness, filmsid, + ishorizontal, tempering_layout_id, + tempering_feed_sequence, x_coordinate, y_coordinate, angle, state, slot ) VALUES + <foreach collection="list" item="item" separator=","> + (#{item.glassId}, #{item.flowCardId}, #{item.glassType}, #{item.width}, #{item.height}, #{item.thickness}, + #{item.filmsid},#{item.ishorizontal}, + #{item.temperingLayoutId}, #{item.temperingFeedSequence}, #{item.xCoordinate}, #{item.yCoordinate}, + #{item.angle}, #{item.state}, #{item.slot}) + </foreach> + </insert> + +</mapper> \ No newline at end of file diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-prod.yml index 74b6d6c..fe37e51 100644 --- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-prod.yml +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-prod.yml @@ -14,6 +14,11 @@ username: root password: beibo.123/ driver-class-name: com.mysql.cj.jdbc.Driver + salve_hangzhoumes: + url: jdbc:sqlserver://10.153.19.150:1433;databasename=hangzhoumes + username: sa + password: beibo.123/ + driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver cloud: nacos: discovery: diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java index a9b6525..0aad429 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java @@ -49,10 +49,10 @@ return Result.build(200,"鍒犻櫎鎴愬姛",1); } - @ApiOperation("鐞嗙墖绗间换鍔$牬鎹�") + @ApiOperation("鐞嗙墖绗间换鍔$牬鎹�0/鎷胯蛋1") @PostMapping("/damageBigStorageCageDetails") - public Result damageBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails) { - bigStorageCageDetailsService.damageBigStorageCageDetails(bigStorageCageDetails.getGlassId()); + public Result damageBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails,int status) { + bigStorageCageDetailsService.damageBigStorageCageDetails(bigStorageCageDetails.getGlassId(),status); return Result.build(200,"鐮存崯鎴愬姛",1); } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java index 490bbbf..635f2df 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.mes.base.entity.BigStorageCageBaseInfo; import com.mes.bigstoragetask.entity.BigStorageCageFeedTask; import com.mes.bigstoragetask.entity.BigStorageCageOutTask; import io.swagger.annotations.Api; @@ -23,15 +24,15 @@ @Api(description = "澶х悊鐗囩璇︽儏") @Data @EqualsAndHashCode(callSuper = false) -public class BigStorageCageDetails implements Serializable { +public class BigStorageCageDetails extends BigStorageCageBaseInfo implements Serializable { private static final long serialVersionUID = 1L; /** * 澶х悊鐗囩璇︽儏琛╥d */ - @ApiModelProperty(value = "澶х悊鐗囩璇︽儏琛╥d", position = 2) - @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty(value = "澶х悊鐗囩璇︽儏琛╥d", position = 2) + @TableId(value = "id", type = IdType.AUTO) private Long id; /** @@ -40,17 +41,6 @@ @ApiModelProperty(value = "璁惧id", position = 3) private Integer deviceId; - /** - * 鏍呮牸鍙� - */ - @ApiModelProperty(value = "鏍呮牸鍙�", position = 4) - private Integer slot; - - /** - * 鐜荤拑id - */ - @ApiModelProperty(value = "鐜荤拑id", position = 5) - private String glassId; /** * 灏忕墖鍦ㄦ牸鍐呯殑椤哄簭 @@ -69,12 +59,6 @@ */ @ApiModelProperty(value = "鐜荤拑绫诲瀷", position = 8) private Integer glassType; - - /** - * 瀹� - */ - @ApiModelProperty(value = "瀹�", position = 9) - private Double width; /** * 楂� diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java index 24ab69c..a2df9ab 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java @@ -9,6 +9,17 @@ */ @Data public class BigStorageDTO { + /** + * 鏍煎瓙鍙� + */ private Integer slot; + /** + * 鍓╀綑瀹藉害 + */ private Integer width; + + /** + * 鐜荤拑鏁伴噺 + */ + private Integer glassCount; } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java index d0d52d2..29fef8c 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java @@ -25,7 +25,7 @@ void deleteBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails); - void damageBigStorageCageDetails(String glassId); + void damageBigStorageCageDetails(String glassId,int status); BigStorageCageDetails selectBigStorageCageDetails(String glassId); diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java index 13e1d47..c3a9c9c 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java @@ -55,19 +55,33 @@ @Value("${mes.minCount}") private int minCount; + @Value("${mes.carWidth}") + private Integer carWidth; + + @Value("${mes.slotWidth}") + private Integer slotWidth; + + @Value("${mes.carMaxSize}") + private Integer carMaxSize; + + @Value("${mes.galssGap}") + private Integer galssGap; + /** * 鏌ヨ杩�/鍑虹墖浠诲姟 */ @Override public List<BigStorageCageDetails> selectTask(int taskType) { + if (taskType == 1) { //杩涚墖浠诲姟鏁版嵁 LambdaQueryWrapper<BigStorageCageDetails> feedWrapper = new LambdaQueryWrapper<>(); - feedWrapper.eq(BigStorageCageDetails::getState, 1) - .or() - .eq(BigStorageCageDetails::getState, 2); + feedWrapper.eq(BigStorageCageDetails::getState, Const.BIG_STORAGE_IN); List<BigStorageCageDetails> bigStorageCageDetailsList = baseMapper.selectList(feedWrapper); - List<BigStorageCageFeedTask> bigStorageCageFeedTaskList = bigStorageCageFeedTaskMapper.selectList(null); + + LambdaQueryWrapper<BigStorageCageFeedTask> feedTaskWrapper = new LambdaQueryWrapper<>(); + feedTaskWrapper.lt(BigStorageCageFeedTask::getTaskState,Const.BIG_STORAGE_IN_SLOT); + List<BigStorageCageFeedTask> bigStorageCageFeedTaskList = bigStorageCageFeedTaskMapper.selectList(feedTaskWrapper); Map<String, BigStorageCageFeedTask> listMap = bigStorageCageFeedTaskList.stream() .collect(Collectors.toMap(BigStorageCageFeedTask::getGlassId, task -> task)); @@ -80,11 +94,12 @@ } else { //鍑虹墖浠诲姟鏁版嵁 LambdaQueryWrapper<BigStorageCageDetails> outWrapper = new LambdaQueryWrapper<>(); - outWrapper.eq(BigStorageCageDetails::getState, 3) - .or() - .eq(BigStorageCageDetails::getState, 4); + outWrapper.eq(BigStorageCageDetails::getState, Const.BIG_STORAGE_OUT); List<BigStorageCageDetails> bigStorageCageDetailsList = baseMapper.selectList(outWrapper); - List<BigStorageCageOutTask> bigStorageCageOutTaskList = bigStorageCageOutTaskMapper.selectList(null); + + LambdaQueryWrapper<BigStorageCageOutTask> outTaskWrapper = new LambdaQueryWrapper<>(); + outTaskWrapper.lt(BigStorageCageOutTask::getTaskState,Const.BIG_STORAGE_OUT_SUCCESS); + List<BigStorageCageOutTask> bigStorageCageOutTaskList = bigStorageCageOutTaskMapper.selectList(outTaskWrapper); Map<String, BigStorageCageOutTask> listMap = bigStorageCageOutTaskList.stream() .collect(Collectors.toMap(BigStorageCageOutTask::getGlassId, task -> task)); @@ -94,7 +109,6 @@ } return bigStorageCageDetailsList; } - } /** @@ -122,7 +136,7 @@ for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList ) { if (bigStorageCageDetails.getBigStorageCageFeedTask().getTaskState() == 0) { - carWidth -= Integer.parseInt(bigStorageCageDetails.getWidth().toString()) + bigStorageCageDetails.getGap(); + carWidth -= Integer.parseInt(bigStorageCageDetails.getWidth().toString()) + galssGap; } } return carWidth; @@ -139,7 +153,8 @@ //鐞嗙墖绗艰鎯呯牬鎹� @Override - public void damageBigStorageCageDetails(String glassId) { + public void damageBigStorageCageDetails(String glassId,int status) { + LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoWrapper = new LambdaQueryWrapper<>(); temperingGlassInfoWrapper.eq(TemperingGlassInfo::getGlassId, glassId); TemperingGlassInfo temperingGlassInfo = temperingGlassInfoMapper.selectOne(temperingGlassInfoWrapper); @@ -148,10 +163,12 @@ bigStorageCageDetailsWrapper.eq(BigStorageCageDetails::getGlassId, glassId); BigStorageCageDetails bigStorageCageDetails = baseMapper.selectOne(bigStorageCageDetailsWrapper); - if (temperingGlassInfo.getState() == -2) { - temperingGlassInfoMapper.deleteById(temperingGlassInfo); - } else { - temperingGlassInfo.setState(5); + if(temperingGlassInfo!=null){ + if(status==0){ + temperingGlassInfo.setState(Const.TEMPERING_DAMAGE); + }else{ + temperingGlassInfo.setState(Const.TEMPERING_TAKE); + } temperingGlassInfoMapper.updateById(temperingGlassInfo); } baseMapper.deleteById(bigStorageCageDetails.getId()); @@ -169,7 +186,7 @@ BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails(); BeanUtils.copyProperties(glassInfo, bigStorageCageDetails); bigStorageCageDetails.setState(0); - bigStorageCageDetails.setGap(20); + bigStorageCageDetails.setGap(galssGap); return bigStorageCageDetails; } @@ -183,60 +200,46 @@ //鐞嗙墖绗艰鎯呭畬鎴� @Override public void finishBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails) { - if (bigStorageCageDetails.getState() == 1 || bigStorageCageDetails.getState() == 2) { - bigStorageCageDetails.setState(0); + if (bigStorageCageDetails.getBigStorageCageFeedTask()!=null) { + bigStorageCageDetails.setState(Const.BIG_STORAGE_INSIDE); baseMapper.updateById(bigStorageCageDetails); - bigStorageCageFeedTaskMapper.deleteById(bigStorageCageDetails.getBigStorageCageFeedTask().getId()); } else { - baseMapper.deleteById(bigStorageCageDetails.getId()); - bigStorageCageOutTaskMapper.deleteById(bigStorageCageDetails.getBigStorageCageOutTask().getId()); + bigStorageCageDetails.setState(Const.BIG_STORAGE_OUTSIDE); + baseMapper.updateById(bigStorageCageDetails); + bigStorageCageService.updateRemainWidth(bigStorageCageDetails.getSlot()); } - } //鎵嬪姩鍑虹墖 @Override public void outBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails) { - LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoWrapper = new LambdaQueryWrapper<>(); - temperingGlassInfoWrapper - .eq(TemperingGlassInfo::getGlassId, bigStorageCageDetails.getGlassId()); - TemperingGlassInfo temperingGlassInfo = temperingGlassInfoMapper.selectOne(temperingGlassInfoWrapper); - if (temperingGlassInfo.getGlassId() == null) { - LambdaQueryWrapper<GlassInfo> glassInfoWrapper = new LambdaQueryWrapper<>(); - glassInfoWrapper - .eq(GlassInfo::getGlassId, bigStorageCageDetails.getGlassId()); - GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoWrapper); - TemperingGlassInfo temperingGlassInfo1 = new TemperingGlassInfo(); - BeanUtils.copyProperties(glassInfo, temperingGlassInfo1); - - if (temperingGlassInfo.getTemperingLayoutId() != null) { - temperingGlassInfo1.setState(-1); - } else { - temperingGlassInfo1.setState(-2); - } - temperingGlassInfoMapper.insert(temperingGlassInfo1); - } + bigStorageCageDetails.setState(4); + baseMapper.updateById(bigStorageCageDetails); } @Override public BigStorageDTO queryTargetSlotByTempering(GlassInfo glassInfo) { BigStorageDTO bigStorageDTO = null; MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>(BigStorageCage.class) - .selectAsClass(BigStorageCage.class, BigStorageDTO.class) + .selectAll(BigStorageCage.class) .leftJoin(BigStorageCageDetails.class, BigStorageCageDetails::getSlot, BigStorageCage::getSlot) .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId()) + .gt(BigStorageCage::getRemainWidth, glassInfo.getWidth()) .last("limit 1"); if (glassInfo.getTemperingLayoutId() == 0) { wrapper.eq(BigStorageCageDetails::getWidth, glassInfo.getWidth()).eq(BigStorageCageDetails::getHeight, glassInfo.getHeight()); } else { wrapper.eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() + 1); } - bigStorageDTO = bigStorageCageService.selectJoinOne(BigStorageDTO.class, wrapper); - if (null != bigStorageDTO) { + BigStorageCage bigStorageCage = bigStorageCageService.selectJoinOne(BigStorageCage.class, wrapper); + if (null != bigStorageCage) { + bigStorageDTO = new BigStorageDTO(); + bigStorageDTO.setWidth(bigStorageCage.getRemainWidth()); + bigStorageDTO.setSlot(bigStorageCage.getSlot()); return bigStorageDTO; } - BigStorageCage bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() - .eq(BigStorageCage::getRemainWidth, Const.BIG_STORAGE_WIDTH) + bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() + .eq(BigStorageCage::getRemainWidth, slotWidth) .inSql(BigStorageCage::getDeviceId, "select distinct device_id from big_storage_cage_details where tempering_layout_id = " + glassInfo.getTemperingLayoutId()) .last("limit 1")); @@ -247,15 +250,13 @@ return bigStorageDTO; } bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() - .eq(BigStorageCage::getRemainWidth, Const.BIG_STORAGE_WIDTH) + .eq(BigStorageCage::getRemainWidth, slotWidth) .last("limit 1")); Assert.isTrue(null != bigStorageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�"); bigStorageDTO = new BigStorageDTO(); bigStorageDTO.setWidth(bigStorageCage.getRemainWidth()); bigStorageDTO.setSlot(bigStorageCage.getSlot()); return bigStorageDTO; - - } @Override diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java index a9bfa0c..e179fb1 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 @@ -12,6 +12,7 @@ import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper; import com.mes.bigstorage.mapper.BigStorageCageMapper; import com.mes.bigstorage.service.BigStorageCageService; +import com.mes.common.config.Const; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.service.GlassInfoService; import com.mes.temperingglass.entity.TemperingGlassInfo; @@ -217,17 +218,24 @@ @Override public void updateRemainWidth(int slot) { log.info("鑾峰彇璇ユ牸瀛愬唴鐜荤拑淇℃伅锛岃绠楁牸瀛愬墿浣欏搴�"); - Integer width = 5000; - List<BigStorageCageDetails> bigStorageCageDetailsList = Collections.singletonList(bigStorageCageDetailsMapper.selectById(slot)); + double width = 5000; + LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper=new LambdaQueryWrapper(); + bigStorageCageDetailsWrapper + .eq(BigStorageCageDetails::getSlot,slot) + .ne(BigStorageCageDetails::getState,Const.BIG_STORAGE_OUTSIDE); + + List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(bigStorageCageDetailsWrapper); for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList ) { - width -= Integer.parseInt(bigStorageCageDetails.getWidth().toString()) + bigStorageCageDetails.getGap(); + double widths=bigStorageCageDetails.getWidth(); + double gap=bigStorageCageDetails.getGap(); + width -= widths+gap; } //淇敼鏍煎瓙鍓╀綑瀹藉害 BigStorageCage bigStorageCage = new BigStorageCage(); - bigStorageCage.setRemainWidth(width); + bigStorageCage.setRemainWidth((int)width); UpdateWrapper<BigStorageCage> bigStorageCageWrapper = new UpdateWrapper<>(); - bigStorageCageWrapper.eq("remain_width", width); + bigStorageCageWrapper.eq("slot", slot); bigStorageCageMapper.update(bigStorageCage, bigStorageCageWrapper); } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java index 3ee5490..b439101 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java @@ -27,7 +27,7 @@ public BigStorageCageOutTask() { } - public BigStorageCageOutTask(String glassId, Integer startSlot, Integer endSlot, Integer trainNumber, Integer serialNumber, Integer taskState) { + public BigStorageCageOutTask(String glassId, Integer startSlot, Integer endSlot, Integer width, Integer trainNumber, Integer serialNumber, Integer taskState) { this.glassId = glassId; this.startSlot = startSlot; this.endSlot = endSlot; diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageFeedTaskMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageFeedTaskMapper.java index 3e0794e..ec83651 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageFeedTaskMapper.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageFeedTaskMapper.java @@ -2,7 +2,10 @@ import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mes.bigstorage.entity.BigStorageDTO; +import com.github.yulichang.base.MPJBaseMapper; import com.mes.bigstoragetask.entity.BigStorageCageFeedTask; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -15,7 +18,9 @@ * @since 2024-04-16 */ @DS("salve_hangzhoumes") -public interface BigStorageCageFeedTaskMapper extends BaseMapper<BigStorageCageFeedTask> { +public interface BigStorageCageFeedTaskMapper extends MPJBaseMapper<BigStorageCageFeedTask> { - List<String> querySitToUpGlass(); + List<Integer> querySitToUpGlass(); + + BigStorageDTO querySitToUpRemainWidth(@Param(value = "line") Integer line); } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageOutTaskMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageOutTaskMapper.java index 4140cfa..5fa29d3 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageOutTaskMapper.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageOutTaskMapper.java @@ -1,8 +1,11 @@ package com.mes.bigstoragetask.mapper; import com.baomidou.dynamic.datasource.annotation.DS; -import com.mes.bigstoragetask.entity.BigStorageCageOutTask; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mes.bigstoragetask.entity.BigStorageCageOutTask; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -15,4 +18,5 @@ @DS("salve_hangzhoumes") public interface BigStorageCageOutTaskMapper extends BaseMapper<BigStorageCageOutTask> { + boolean saveBatch(@Param(value = "list") List<BigStorageCageOutTask> list); } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageFeedTaskService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageFeedTaskService.java index 669023d..40e1827 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageFeedTaskService.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageFeedTaskService.java @@ -1,7 +1,9 @@ package com.mes.bigstoragetask.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.github.yulichang.base.MPJBaseService; import com.mes.bigstorage.entity.BigStorageCageDetails; +import com.mes.bigstorage.entity.BigStorageDTO; import com.mes.bigstoragetask.entity.BigStorageCageFeedTask; import java.util.List; @@ -14,7 +16,7 @@ * @author zhoush * @since 2024-04-16 */ -public interface BigStorageCageFeedTaskService extends IService<BigStorageCageFeedTask> { +public interface BigStorageCageFeedTaskService extends MPJBaseService<BigStorageCageFeedTask> { void addFeedTask(BigStorageCageDetails slotInfo, Integer plcFeedReqLine, int taskType); @@ -23,5 +25,10 @@ /** * 鏌ヨ鍗ц浆绔嬬幓鐠冩槸鍚﹁繘鐗囧畬鎴� */ - List<String> querySitToUpGlass(); + BigStorageDTO querySitToUpRemainWidth(Integer line); + + /** + * 鏌ヨ鍗ц浆绔嬬幓鐠冩槸鍚﹁繘鐗囧畬鎴� + */ + List<Integer> querySitToUpGlass(); } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java index 2c9a9e2..8987889 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java @@ -1,7 +1,7 @@ package com.mes.bigstoragetask.service; -import com.mes.bigstoragetask.entity.BigStorageCageOutTask; import com.baomidou.mybatisplus.extension.service.IService; +import com.mes.bigstoragetask.entity.BigStorageCageOutTask; import java.util.List; @@ -19,5 +19,7 @@ void updateOutTask(); + boolean saveBatch(List<BigStorageCageOutTask> list); + void deleteOutTask(String glassId); } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java index 716c92a..03110f0 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.bigstorage.entity.BigStorageCageDetails; +import com.mes.bigstorage.entity.BigStorageDTO; import com.mes.bigstoragetask.entity.BigStorageCageFeedTask; import com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper; import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService; @@ -39,7 +40,12 @@ } @Override - public List<String> querySitToUpGlass() { + public BigStorageDTO querySitToUpRemainWidth(Integer line) { + return baseMapper.querySitToUpRemainWidth(line); + } + + @Override + public List<Integer> querySitToUpGlass() { return baseMapper.querySitToUpGlass(); } } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java index 32938c2..54f9a88 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java @@ -1,13 +1,12 @@ package com.mes.bigstoragetask.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.bigstorage.entity.BigStorageCageDetails; import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper; import com.mes.bigstoragetask.entity.BigStorageCageOutTask; import com.mes.bigstoragetask.mapper.BigStorageCageOutTaskMapper; import com.mes.bigstoragetask.service.BigStorageCageOutTaskService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.temperingglass.entity.TemperingGlassInfo; import com.mes.temperingglass.mapper.TemperingGlassInfoMapper; import lombok.extern.slf4j.Slf4j; @@ -35,14 +34,19 @@ @Resource BigStorageCageDetailsMapper bigStorageCageDetailsMapper; + @Override + public boolean saveBatch(List<BigStorageCageOutTask> list) { + return baseMapper.saveBatch(list); + } + /** * 鏌ヨ浠诲姟淇℃伅 */ @Override - public List<BigStorageCageOutTask> querybigStorageCageOutTask(int taskState){ - log.info("鏍规嵁浼犲叆鐨勪换鍔$姸鎬佹煡璇换鍔′俊鎭細"+taskState); - LambdaQueryWrapper<BigStorageCageOutTask> getOutTaskWrapper=new LambdaQueryWrapper<>(); - getOutTaskWrapper.eq(BigStorageCageOutTask::getTaskState,taskState); + public List<BigStorageCageOutTask> querybigStorageCageOutTask(int taskState) { + log.info("鏍规嵁浼犲叆鐨勪换鍔$姸鎬佹煡璇换鍔′俊鎭細" + taskState); + LambdaQueryWrapper<BigStorageCageOutTask> getOutTaskWrapper = new LambdaQueryWrapper<>(); + getOutTaskWrapper.eq(BigStorageCageOutTask::getTaskState, taskState); return baseMapper.selectList(getOutTaskWrapper); } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java deleted file mode 100644 index 1eaae48..0000000 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.mes.glassinfo.controller; - - -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; - -/** - * <p> - * 鍓嶇鎺у埗鍣� - * </p> - * - * @author zhoush - * @since 2024-03-27 - */ -@RestController -@RequestMapping("/glassInfo") -public class GlassInfoController { - -} - diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java deleted file mode 100644 index f2595d8..0000000 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mes.glassinfo.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.mes.glassinfo.entity.GlassInfo; - -/** - * <p> - * Mapper 鎺ュ彛 - * </p> - * - * @author zhoush - * @since 2024-03-27 - */ -public interface GlassInfoMapper extends BaseMapper<GlassInfo> { - -} diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java deleted file mode 100644 index 981b2b7..0000000 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mes.glassinfo.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.mes.glassinfo.entity.GlassInfo; - -/** - * <p> - * 鏈嶅姟绫� - * </p> - * - * @author zhoush - * @since 2024-03-27 - */ -public interface GlassInfoService extends IService<GlassInfo> { - -} diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java deleted file mode 100644 index a30866a..0000000 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.mes.glassinfo.service.impl; - -import com.mes.glassinfo.entity.GlassInfo; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.mes.glassinfo.mapper.GlassInfoMapper; -import com.mes.glassinfo.service.GlassInfoService; -import org.springframework.stereotype.Service; - -/** - * <p> - * 鏈嶅姟瀹炵幇绫� - * </p> - * - * @author zhoush - * @since 2024-03-27 - */ -@Service -public class GlassInfoServiceImpl extends ServiceImpl<GlassInfoMapper, GlassInfo> implements GlassInfoService { - -} diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java index bc3d222..389dffe 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java @@ -66,9 +66,6 @@ List<TemperingGlassInfo> temperingGlassInfoList= temperingGlassInfoService.list(); jsonObject.append("temperingGlassInfoList", temperingGlassInfoList); - //鎶ヨ淇℃伅 - jsonObject.append("bigStorageCageFullAlarm", PlcStorageCageTask.bigStorageCageFullAlarm); - //鐞嗙墖绗艰〃鏍间俊鎭� jsonObject.append("bigStorageCageInfo", bigStorageCageService.querybigStorageCageDetail(0)); 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 3e689cb..aebf46d 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 @@ -2,13 +2,18 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.mes.base.entity.BigStorageCageBaseInfo; +import com.mes.bigstorage.entity.BigStorageCage; import com.mes.bigstorage.entity.BigStorageCageDetails; import com.mes.bigstorage.entity.BigStorageDTO; import com.mes.bigstorage.entity.dto.SlotSequenceDTO; import com.mes.bigstorage.entity.dto.TemperingLayoutDTO; 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; @@ -30,10 +35,7 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -43,6 +45,8 @@ @Slf4j public class PlcStorageCageTask { + @Resource + private BigStorageCageService bigStorageCageService; @Resource private BigStorageCageDetailsService bigStorageCageDetailsService; @Resource @@ -61,29 +65,45 @@ @Value("${mes.sequence.order}") private boolean sequenceOrder; + @Value("${mes.carWidth}") + private Integer carWidth; + @Value("${mes.slotWidth}") private Integer slotWidth; + + @Value("${mes.carMaxSize}") + private Integer carMaxSize; + + @Value("${mes.galssGap}") + private Integer galssGap; @Scheduled(fixedDelay = 5000) public void plcToHomeEdgScan() { PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; String d01Request = plcParameterObject.getPlcParameter("D01Request").getValue(); String d01Id = plcParameterObject.getPlcParameter("D01ID1").getValue(); + String d02SitState = plcParameterObject.getPlcParameter("D02SitState").getValue(); String d04Request = plcParameterObject.getPlcParameter("D04Request").getValue(); String d04Id = plcParameterObject.getPlcParameter("D04ID1").getValue(); + String d05SitState = plcParameterObject.getPlcParameter("D05SitState").getValue(); + log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧d01涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{};鑾峰彇鍒扮殑璇锋眰瀛梔04涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{};", d01Request, d01Id, d04Request, d04Id); if (!REQUEST_WORD.equals(d01Request) && !REQUEST_WORD.equals(d04Request)) { log.info("涓ゆ潯绾挎湭鏀跺埌杩涚墖浠诲姟锛岀粨鏉熸湰娆℃壂鎻忚繘鍗ц浆绔嬩换鍔�"); return; } + if (REQUEST_WORD.equals(d02SitState) && REQUEST_WORD.equals(d05SitState)) { + log.info("涓ゆ潯绾垮崸杞珛鍧囧湪鎵ц浠诲姟锛岀粨鏉熸湰娆℃壂鎻忚繘鍗ц浆绔嬩换鍔�"); + return; + } Boolean flag01 = Boolean.FALSE; Boolean flag04 = Boolean.FALSE; //鎸夌収绾胯矾鍙婄幓鐠僫d鑾峰彇鐩搁偦涓ゅ潡鐜荤拑 鍗ц浆绔嬩笂鐨勭幓鐠� - if (REQUEST_WORD.equals(d01Request)) { + if (REQUEST_WORD.equals(d01Request) && !REQUEST_WORD.equals(d02SitState)) { flag01 = judgeGlassTypeStatus(d01Id, Const.A09_OUT_TARGET_POSITION); } - if (REQUEST_WORD.equals(d04Request)) { + if (REQUEST_WORD.equals(d04Request) && !REQUEST_WORD.equals(d05SitState)) { flag04 = judgeGlassTypeStatus(d04Id, Const.A10_OUT_TARGET_POSITION); } if (flag01 && flag04) { @@ -103,9 +123,9 @@ @Scheduled(fixedDelay = 5000) public void plcToHomeEdgFreeCarTask() { PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; - String freeCar = plcParameterObject.getPlcParameter("freeCar").getValue(); - if (REQUEST_WORD.equals(freeCar)) { - log.info("澶ц溅闈炵┖闂�"); + String e01Status = plcParameterObject.getPlcParameter("E01Status").getValue(); + if (REQUEST_WORD.equals(e01Status)) { + log.info("杩涚墖澶ц溅闈炵┖闂�"); return; } String d01Request = plcParameterObject.getPlcParameter("D01Request").getValue(); @@ -116,23 +136,23 @@ d01Request, d01Id, d04Request, d04Id); //涓ゆ潯绾块兘鏈夎繘鍗ц浆绔嬩换鍔★紝鐩存帴缁撴潫 if (Const.BIG_STORAGE_REQUEST_IN.equals(d01Request) - && Const.BIG_STORAGE_REQUEST_IN.equals(d04Request) - && StringUtils.isNotBlank(d01Id) - && StringUtils.isNotBlank(d04Id)) { + && Const.BIG_STORAGE_REQUEST_IN.equals(d04Request)) { log.info("涓ゆ潯绾块兘瀛樺湪杩涚墖浠诲姟锛岀粨鏉熶换鍔�"); return; } //鑾峰彇涓ゆ潯绾垮崸杞珛鏄惁鏈夌幓鐠冿紝涓斾换鍔$姸鎬侀兘涓�2 - List<String> lineList = bigStorageCageFeedTaskService.querySitToUpGlass(); + List<Integer> lineList = bigStorageCageFeedTaskService.querySitToUpGlass(); if (CollectionUtils.isEmpty(lineList)) { log.info("涓ゆ潯绾垮崸杞珛涓虹┖鎴栬�呮湁杩涚墖浠诲姟鏈畬鎴愶紝缁撴潫浠诲姟"); return; } - String line1 = lineList.get(0); - String flagLine = line1.equals(Const.A09_OUT_TARGET_POSITION) ? d01Id : d04Id; + Integer lineFirst = lineList.get(0); + String lineGlassId = lineFirst.equals(Const.A09_OUT_TARGET_POSITION) ? d01Id : d04Id; if (lineList.size() == 1) { //璁$畻浠诲姟琛ㄨ繘鐗囨牸瀛� 鍙戦�佽繘鐗囦换鍔� - computeTargetByLine(Integer.parseInt(flagLine)); + if (StringUtils.isEmpty(lineGlassId)) { + computeTargetByLine(lineFirst); + } return; } if (StringUtils.isBlank(d01Id) && StringUtils.isBlank(d04Id)) { @@ -149,70 +169,44 @@ @Scheduled(fixedDelay = 5000) public void plcToHomeEdgOutTask() { - //浠诲姟鏁版嵁 鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲� 鐜荤拑闂撮殧 - List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>(); + + List<BigStorageCageOutTask> outingList = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>().eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_NEW)); + Assert.isTrue(CollectionUtils.isEmpty(outingList), "鏈夋鍦ㄦ墽琛屽嚭鐗囩殑浠诲姟锛岀粨鏉熷綋鍓嶅嚭鐗囩嚎绋�"); + //鏄惁鏈夋鍦ㄩ挗鍖栫殑鐜荤拑 - List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.list(new LambdaQueryWrapper<TemperingGlassInfo>() + List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.selectJoinList(TemperingGlassInfo.class, new MPJLambdaWrapper<TemperingGlassInfo>() + .selectAll(TemperingGlassInfo.class) + .leftJoin(BigStorageCageOutTask.class, BigStorageCageOutTask::getGlassId, TemperingGlassInfo::getGlassId) .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW) + .isNull(BigStorageCageOutTask::getGlassId) .orderBy(Boolean.TRUE, sequenceOrder, TemperingGlassInfo::getTemperingFeedSequence)); if (CollectionUtils.isNotEmpty(temperingGlassInfoList)) { log.info("鏈夋鍦ㄥ嚭鐗囩殑閽㈠寲浠诲姟"); - //鎵撹溅鍓╀綑灏哄 - Integer remainWidth = Const.BIG_STORAGE_WIDTH; - for (TemperingGlassInfo e : temperingGlassInfoList) { - if (bigStorageCageOutTaskList.size() > 5 || e.getWidth() > remainWidth) { - break; - } - remainWidth = remainWidth - e.getWidth().intValue() - Const.BIG_STORAGE_GAP; - bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getState(), Const.A09_OUT_TARGET_POSITION, - 0, 0, 1)); - } - bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList); + computeOutGlassInfo(temperingGlassInfoList); return; } - //todo:鏄惁鏈変汉宸ヤ笅鐗囦换鍔� 鏈夌洿鎺ュ嚭 - //绗煎唴鏄惁鏈変汉宸ヤ笅鐗囩幓鐠� 鏃� 缁撴潫 + //鏄惁鏈変汉宸ヤ笅鐗囦换鍔� 鏈夌洿鎺ュ嚭 List<BigStorageCageDetails> artificialList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>() .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL).orderByDesc(BigStorageCageDetails::getWidth)); - if (CollectionUtils.isEmpty(artificialList)) { - Integer remainWidth = Const.BIG_STORAGE_WIDTH; - for (BigStorageCageDetails e : artificialList) { - if (remainWidth < e.getWidth().intValue()) { - break; - } - bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), 0, 0, 0, 1)); - remainWidth = remainWidth - e.getWidth().intValue() - Const.BIG_STORAGE_GAP; - } - bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList); + if (CollectionUtils.isNotEmpty(artificialList)) { + computeOutGlassInfo(temperingGlassInfoList); return; } - //閽㈠寲浼樺厛锛氳幏鍙栫悊鐗囩 鐜荤拑灏忕墖 鐮存崯琛� 鏁伴噺 鍒ゆ柇绗煎唴鐗堝浘鏄惁鍒伴綈 TemperingLayoutDTO temperingLayoutDTO = bigStorageCageDetailsService.temperingIsAll(); if (null != temperingLayoutDTO) { //鐜荤拑鍒伴綈 //鍒伴綈锛屽皢鐜荤拑灏忕墖鏁版嵁瀛樺叆閽㈠寲灏忕墖琛紝閫昏緫鐢熸垚鍑虹墖浠诲姟 缁撴潫 - List<BigStorageCageDetails> bigStorageCageDetails = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>() - .eq(BigStorageCageDetails::getTemperingLayoutId, temperingLayoutDTO.getTemperingLayoutId()) - .eq(BigStorageCageDetails::getEngineerId, temperingLayoutDTO.getEngineerId())); - List<TemperingGlassInfo> temperingGlassInfos = bigStorageCageDetails.stream().map(e -> { - TemperingGlassInfo info = new TemperingGlassInfo(); - BeanUtils.copyProperties(e, info); - return info; - }).collect(Collectors.toList()); + List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class) + .selectAll(GlassInfo.class) + .select("-1 as state") + .selectAs(BigStorageCageDetails::getSlot, TemperingGlassInfo::getSlot) + .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId) + .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN) + .eq(GlassInfo::getTemperingLayoutId, temperingLayoutDTO.getTemperingLayoutId()) + .eq(GlassInfo::getEngineerId, temperingLayoutDTO.getEngineerId())); temperingGlassInfoService.saveBatch(temperingGlassInfos); - - //澶ц溅鍓╀綑灏哄 - Integer remainWidth = Const.BIG_STORAGE_WIDTH; - for (TemperingGlassInfo e : temperingGlassInfoList) { - if (bigStorageCageOutTaskList.size() > 5 || e.getWidth() > remainWidth) { - break; - } - remainWidth = remainWidth - e.getWidth().intValue() - Const.BIG_STORAGE_GAP; - bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getState(), Const.A09_OUT_TARGET_POSITION, - 0, 0, 1)); - } - bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList); + computeOutGlassInfo(temperingGlassInfoList); return; } //鏈埌榻� 鎵ц鍐呴儴璋冨害浠诲姟 @@ -222,12 +216,13 @@ for (int i = 0; i < slotSequenceList.size() - 1; i++) { SlotSequenceDTO first = slotSequenceList.get(i); SlotSequenceDTO second = slotSequenceList.get(i + 1); + int slotWidth = carWidth - first.getRemainWidth() - galssGap; if (first.getMinSequence() == second.getMaxSequence() + 1 - && second.getRemainWidth() > Const.BIG_STORAGE_WIDTH - first.getRemainWidth() - Const.BIG_STORAGE_GAP) { + && second.getRemainWidth() > slotWidth) { List<BigStorageCageDetails> list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>() .eq(BigStorageCageDetails::getSlot, first.getSlot()).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)); List<BigStorageCageOutTask> outTasks = list.stream().map(e -> new BigStorageCageOutTask(e.getGlassId(), first.getSlot(), second.getSlot(), - 0, 0, 1)).collect(Collectors.toList()); + slotWidth, 0, 0, 1)).collect(Collectors.toList()); bigStorageCageOutTaskService.saveBatch(outTasks); return; } @@ -247,25 +242,41 @@ .orderByAsc(EdgGlassTaskInfo::getTime)); Assert.isFalse(CollectionUtils.isEmpty(edgGlassTaskInfoList), "璇嗗埆鐜荤拑淇℃伅鏈嚭鐜板湪灏哄琛ㄤ腑,鑾峰彇鐩搁偦涓ゅ潡鐜荤拑澶辫触"); //2銆佽幏鍙栧崸杞珛鍓╀綑瀹藉害 - Map<String, Object> map = bigStorageCageFeedTaskService.getMap(new QueryWrapper<BigStorageCageFeedTask>() - .select("cast(" + Const.BIG_STORAGE_WIDTH + " - sum(width + " + Const.BIG_STORAGE_GAP + ") as INT) as remainWidth") - .eq("line", line).eq("task_state", Const.BIG_STORAGE_IN_UP)); - Integer remainWidth = null == map ? Const.BIG_STORAGE_WIDTH : Integer.parseInt(map.get("remainWidth") + ""); + BigStorageDTO sitToUpRemainWidth = bigStorageCageFeedTaskService.querySitToUpRemainWidth(line); + Integer remainWidth; + Integer glassCount; + if (0 == sitToUpRemainWidth.getGlassCount()) { + remainWidth = carWidth; + glassCount = 0; + } else { + remainWidth = sitToUpRemainWidth.getWidth(); + glassCount = sitToUpRemainWidth.getGlassCount(); + } //2銆佽幏鍙栧崸杞珛 Integer widthFirst = edgGlassTaskInfoList.get(0).getWidth(); if (edgGlassTaskInfoList.size() == 1) { if (remainWidth >= widthFirst) { - addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst); - return Boolean.FALSE; + if (glassCount <= 5) { + addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst); + return Boolean.FALSE; + } else { + addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst); + return Boolean.TRUE; + } } } else { Integer widthSecond = edgGlassTaskInfoList.get(1).getWidth(); if (remainWidth >= widthFirst) { - if (remainWidth - widthFirst - Const.BIG_STORAGE_GAP >= widthSecond) { - addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthSecond); - return Boolean.FALSE; + if (remainWidth - widthFirst - galssGap >= widthSecond) { + if (glassCount <= carMaxSize - 1) { + addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst); + return Boolean.FALSE; + } else { + addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst); + return Boolean.TRUE; + } } else { - addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthSecond); + addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst); } } } @@ -279,7 +290,7 @@ private Boolean addFeedTask(String glassId, Integer line, Integer taskType, Integer width) { BigStorageCageFeedTask bigStorageCageFeedTask = new BigStorageCageFeedTask(); bigStorageCageFeedTask.setGlassId(glassId); - bigStorageCageFeedTask.setTaskState(Const.BIG_STORAGE_REQUEST_IN); + bigStorageCageFeedTask.setTaskState(Const.BIG_STORAGE_IN_NEW); bigStorageCageFeedTask.setLine(line); bigStorageCageFeedTask.setTaskType(taskType); bigStorageCageFeedTask.setWidth(width); @@ -313,20 +324,12 @@ //1銆佽幏鍙栦换鍔¤〃涓殑鎵�鏈夌幓鐠冿紙鎸囧畾绾胯矾涓斿凡缁忚繘鍗ц浆绔嬪畬鎴愶級 List<BigStorageCageFeedTask> taskList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>() .eq(BigStorageCageFeedTask::getLine, line) - .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP) + .in(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP_ALL) .orderByAsc(BigStorageCageFeedTask::getId)); //2銆佸幓绗煎瓙鍐呮煡鎵炬槸鍚﹀彲浠ョ户缁瓨鏀剧殑绗煎瓙 List<String> glassIds = taskList.stream().map(BigStorageCageFeedTask::getGlassId).collect(Collectors.toList()); List<GlassInfo> glassInfos = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, glassIds)); - - List<BigStorageCageDetails> bigStorageCageDetailsList = new ArrayList<>(); - List<BigStorageCageDetails> temperingList = computeIsTemperingTargetByLine(glassInfos, taskList, Boolean.TRUE); - List<BigStorageCageDetails> noTemperingList = computeIsTemperingTargetByLine(glassInfos, taskList, Boolean.FALSE); - bigStorageCageDetailsList.addAll(temperingList); - bigStorageCageDetailsList.addAll(noTemperingList); - //4銆佸湪璇︽儏琛ㄤ腑鍔犲叆杩涚墖鐜荤拑淇℃伅 - bigStorageCageDetailsService.saveBatch(bigStorageCageDetailsList); - return Boolean.TRUE; + return computeIsTemperingTargetByLine(glassInfos, taskList, Boolean.TRUE) && computeIsTemperingTargetByLine(glassInfos, taskList, Boolean.FALSE); } /** @@ -336,22 +339,10 @@ * @param taskList 褰撴潯绾垮崸杞珛鎵�鏈変换鍔� * @param isTempering true 閽㈠寲 false 涓嶉挗鍖� */ - private List<BigStorageCageDetails> computeIsTemperingTargetByLine(List<GlassInfo> glassInfos, List<BigStorageCageFeedTask> taskList, Boolean isTempering) { - Map<String, GlassInfo> glassInfoMap; - if (isTempering) { - glassInfoMap = glassInfos.stream().filter(e -> e.getTemperingLayoutId() != 0) - .collect(Collectors.toMap(GlassInfo::getGlassId, p -> p)); - } else { - glassInfoMap = glassInfos.stream().filter(e -> e.getTemperingLayoutId() == 0) - .collect(Collectors.toMap(GlassInfo::getGlassId, p -> p)); - } - - //璁剧疆涓存椂鍙橀噺鎺ュ彈鐗堝浘id锛岀増搴忋�佹牸瀛愬彿鍙婂墿浣欏搴� - Integer temperingLayoutIdTemp = 0; - Integer temperingFeedSequenceTemp = 0; - BigStorageDTO bigStorageDTO = new BigStorageDTO(); - - List<BigStorageCageDetails> bigStorageCageDetailsList = new ArrayList<>(); + private boolean computeIsTemperingTargetByLine(List<GlassInfo> glassInfos, List<BigStorageCageFeedTask> taskList, Boolean isTempering) { + //1銆佸皢鐜荤拑淇℃伅闆嗗悎杞负glassid涓簁ey鐨刴ap + Map<String, GlassInfo> glassInfoMap = glassInfos.stream() + .collect(Collectors.toMap(GlassInfo::getGlassId, p -> p)); for (BigStorageCageFeedTask e : taskList) { GlassInfo info = glassInfoMap.get(e.getGlassId()); if (info == null) { @@ -359,26 +350,77 @@ } BigStorageCageDetails cageDetails = new BigStorageCageDetails(); BeanUtils.copyProperties(info, cageDetails); - if (temperingLayoutIdTemp.equals(info.getTemperingLayoutId()) - && temperingFeedSequenceTemp.equals(info.getTemperingFeedSequence() + 1) - && info.getWidth() <= bigStorageDTO.getWidth()) { - bigStorageDTO.setWidth(bigStorageDTO.getWidth() - info.getWidth().intValue() - Const.BIG_STORAGE_GAP); - } else { - bigStorageDTO = bigStorageCageDetailsService.queryTargetSlotByTempering(info); - } - - cageDetails.setSlot(bigStorageDTO.getSlot()); - cageDetails.setState(Const.GLASS_STATE_IN); - + //2銆佽幏鍙栫洰鏍囨牸瀛愪俊鎭� + BigStorageDTO bigStorageDTO = bigStorageCageDetailsService.queryTargetSlotByTempering(info); + //3銆佹洿鏂板ぇ鐞嗙墖绗艰〃鍓╀綑瀹藉害 + bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, bigStorageDTO.getWidth()) + .eq(BigStorageCage::getSlot, bigStorageDTO.getSlot())); + //4銆佹洿鏂拌繘鐗囦换鍔¤〃锛岀洰鏍囨牸瀛愬強鐘舵�侊紙鐘舵�佹敼涓�2 鐢垫皵鎵埌鑷澶勭悊锛� 閬囧埌闂锛氭棤娉曟壒閲忔洿鏂帮紝鎵归噺鏇存柊鏃犳硶璧版寚瀹氫粠搴� e.setTargetSlot(bigStorageDTO.getSlot()); e.setTaskType(Const.BIG_STORAGE_IN_RUN); - - temperingLayoutIdTemp = info.getTemperingLayoutId(); - temperingFeedSequenceTemp = info.getTemperingFeedSequence(); - //3銆佹洿鏂拌繘鐗囦换鍔¤〃 閬囧埌闂锛氭棤娉曟壒閲忔洿鏂帮紝鎵归噺鏇存柊鏃犳硶璧版寚瀹氫粠搴� bigStorageCageFeedTaskService.updateById(e); - bigStorageCageDetailsList.add(cageDetails); + + //5銆佸皢杩涚墖淇℃伅瀛樺叆澶х悊鐗囩璇︽儏琛� + cageDetails.setSlot(bigStorageDTO.getSlot()); + cageDetails.setState(Const.GLASS_STATE_IN); + bigStorageCageDetailsService.save(cageDetails); } - return bigStorageCageDetailsList; + return Boolean.TRUE; + } + + private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list) { + //浠诲姟鏁版嵁 鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲� 鐜荤拑闂撮殧 + List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>(); + //鎵撹溅鍓╀綑灏哄 + Integer remainWidth = carWidth; + for (T e : list) { + if (bigStorageCageOutTaskList.size() > carMaxSize || e.getWidth() > remainWidth) { + break; + } + remainWidth = remainWidth - e.getWidth().intValue() - galssGap; + bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.A09_OUT_TARGET_POSITION, + e.getWidth().intValue(), 0, 0, 1)); + } + Assert.isFalse(CollectionUtils.isEmpty(bigStorageCageOutTaskList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟"); + log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", bigStorageCageOutTaskList.size()); + bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList); + List<String> glassIds = bigStorageCageOutTaskList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList()); + log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄凡鍑虹墖", glassIds); + bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>() + .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT) + .in(BigStorageCageDetails::getGlassId, glassIds)); + //鏇存柊绗煎瓙鍐呮牸瀛愮殑鍓╀綑灏哄 + updateSlotRemain(list, glassIds); + return Boolean.TRUE; + } + + /** + * 鏇存柊绗煎瓙鍐呮牸瀛愮殑鍓╀綑灏哄 + * + * @param list + * @param taskGlassIds + * @param <T> + */ + public <T extends BigStorageCageBaseInfo> void updateSlotRemain(List<T> list, List<String> taskGlassIds) { + //鑾峰彇闇�瑕佸嚭鍘伙紙鍖呮嫭寰呭嚭鍘荤殑锛夌殑鎵�鏈夌幓鐠冩牸瀛愬彿 + List<Integer> slotList = list.stream().map(T::getSlot).distinct().collect(Collectors.toList()); + //鑾峰彇寰呭嚭鍘荤殑鐜荤拑淇℃伅锛堢瓑涓嬭溅鍑哄幓鐨勭幓鐠冿級 + Map<Integer, Double> slotRemainMap = list.stream().filter(e -> !taskGlassIds.contains(e.getGlassId())) + .collect(Collectors.groupingBy(T::getSlot, Collectors.summingDouble(item -> item.getWidth() + galssGap))); + if (CollectionUtils.isNotEmpty(slotRemainMap)) { + //鎸夌収鏍煎瓙鍙锋洿鏂板墿浣欏昂瀵� + slotRemainMap.forEach((e, v) -> { + bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth - v) + .eq(BigStorageCage::getSlot, e)); + }); + } + Set<Integer> remainSlotList = slotRemainMap.keySet(); + slotList.removeAll(remainSlotList); + if (CollectionUtils.isNotEmpty(slotList)) { + bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth) + .in(BigStorageCage::getSlot, slotList)); + } + + } } \ No newline at end of file diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java index ad8b70f..eb64e0d 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java @@ -39,14 +39,14 @@ @ApiOperation("鍑虹墖浠诲姟鍒犻櫎") @PostMapping("/deleteTemperingGlassInfo") public Result deleteTemperingGlassInfo(TemperingGlassInfo temperingGlassInfo) { - temperingGlassInfoService.removeById(temperingGlassInfo); + temperingGlassInfoService.removeById(temperingGlassInfo.getId()); return Result.build(200,"鍒犻櫎鎴愬姛",1); } - @ApiOperation("鍑虹墖浠诲姟鐮存崯") + @ApiOperation("鍑虹墖浠诲姟鐮存崯0/鎷胯蛋1") @PostMapping("/damageTemperingGlassInfo") - public Result damageTemperingGlassInfo(TemperingGlassInfo temperingGlassInfo) { - bigStorageCageDetailsService.damageBigStorageCageDetails(temperingGlassInfo.getGlassId()); + public Result damageTemperingGlassInfo(TemperingGlassInfo temperingGlassInfo,int status) { + bigStorageCageDetailsService.damageBigStorageCageDetails(temperingGlassInfo.getGlassId(),status); return Result.build(200,"鐮存崯鎴愬姛",1); } } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java deleted file mode 100644 index 40878b5..0000000 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.mes.temperingglass.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import java.io.Serializable; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * <p> - * - * </p> - * - * @author zhoush - * @since 2024-03-27 - */ -@ApiModel(description = "<p> 閽㈠寲灏忕墖淇℃伅琛� </p>") -@Data -@EqualsAndHashCode(callSuper = false) -public class TemperingGlassInfo implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * 閽㈠寲灏忕墖淇℃伅琛╥d - */ - @ApiModelProperty(value = "閽㈠寲灏忕墖淇℃伅琛╥d", position = 2) - @TableId(value = "id", type = IdType.AUTO) - private Long id; - - /** - * 鐜荤拑id - */ - @ApiModelProperty(value = "鐜荤拑id", position = 3) - private String glassId; - - /** - * 娴佺▼鍗� - */ - @ApiModelProperty(value = "娴佺▼鍗�", position = 4) - private String flowcardId; - - /** - * 娴佺▼鍗$幓鐠冪被鍨� - */ - @ApiModelProperty(value = "娴佺▼鍗$幓鐠冪被鍨�", position = 5) - private Integer glassType; - - /** - * 瀹� - */ - @ApiModelProperty(value = "瀹�", position = 6) - private Double width; - - /** - * 楂� - */ - @ApiModelProperty(value = "楂�", position = 7) - private Double height; - - /** - * 鍘氬害 - */ - @ApiModelProperty(value = "鍘氬害", position = 8) - private Double thickness; - - /** - * 鑶滅郴 - */ - @ApiModelProperty(value = "鑶滅郴", position = 9) - private Integer filmsid; - - /** - * 閽㈠寲鏄惁鎺ュ彈妯斁 - */ - @ApiModelProperty(value = "閽㈠寲鏄惁鎺ュ彈妯斁", position = 10) - private Integer ishorizontal; - - /** - * 閽㈠寲鐗堝浘id - */ - @ApiModelProperty(value = "閽㈠寲鐗堝浘id", position = 11) - private Integer temperingLayoutId; - - /** - * 閽㈠寲鐗堝浘鐗囧簭 - */ - @ApiModelProperty(value = "閽㈠寲鐗堝浘鐗囧簭", position = 12) - private Integer temperingFeedSequence; - - /** - * x鍧愭爣 - */ - @ApiModelProperty(value = "x鍧愭爣", position = 13) - private Integer xCoordinate; - - /** - * y鍧愭爣 - */ - @ApiModelProperty(value = "y鍧愭爣", position = 14) - private Integer yCoordinate; - - /** - * 鏃嬭浆瑙掑害锛堥�嗘椂閽堬級 - */ - @ApiModelProperty(value = "鏃嬭浆瑙掑害锛堥�嗘椂閽堬級", position = 15) - private Integer angle; - - /** - * 鐘舵�� - */ - @ApiModelProperty(value = "鐘舵��", position = 16) - private Integer state; - - -} diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java deleted file mode 100644 index bb591f5..0000000 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.mes.temperingglass.mapper; - -import com.baomidou.dynamic.datasource.annotation.DS; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.mes.temperingglass.entity.TemperingGlassInfo; - -/** - * <p> - * Mapper 鎺ュ彛 - * </p> - * - * @author zhoush - * @since 2024-03-27 - */ -@DS("salve_hangzhoumes") -public interface TemperingGlassInfoMapper extends BaseMapper<TemperingGlassInfo> { - -} diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java index 5f1a325..ab5372d 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java @@ -1,6 +1,6 @@ package com.mes.temperingglass.service; -import com.baomidou.mybatisplus.extension.service.IService; +import com.github.yulichang.base.MPJBaseService; import com.mes.temperingglass.entity.TemperingGlassInfo; import java.util.List; @@ -13,9 +13,11 @@ * @author zhoush * @since 2024-03-27 */ -public interface TemperingGlassInfoService extends IService<TemperingGlassInfo> { +public interface TemperingGlassInfoService extends MPJBaseService<TemperingGlassInfo> { public void addOutTask(List<TemperingGlassInfo> temperingGlassInfoList); + boolean saveBatch(List<TemperingGlassInfo> list); + void schedulingTask(); } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java index 5f802b5..82d885e 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java @@ -2,7 +2,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; @@ -11,7 +10,6 @@ import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper; import com.mes.bigstorage.mapper.BigStorageCageMapper; import com.mes.bigstoragetask.entity.BigStorageCageOutTask; -import com.mes.glassinfo.mapper.GlassInfoMapper; import com.mes.temperingglass.entity.TemperingGlassInfo; import com.mes.temperingglass.mapper.TemperingGlassInfoMapper; import com.mes.temperingglass.service.TemperingGlassInfoService; @@ -53,23 +51,28 @@ temperingGlassInfo.setState(-1); baseMapper.updateById(temperingGlassInfo); log.info("3銆佷慨鏀归挗鍖栧皬鐗囪〃浠诲姟鐘舵��"); - BigStorageCageOutTask bigStorageCageOutTask =new BigStorageCageOutTask(); + BigStorageCageOutTask bigStorageCageOutTask = new BigStorageCageOutTask(); bigStorageCageOutTask.setId(temperingGlassInfo.getId()); - }else{ + } else { break; } } } + @Override + public boolean saveBatch(List<TemperingGlassInfo> list) { + return baseMapper.saveBatch(list); + } + //璋冨害 @Override - public void schedulingTask(){ + public void schedulingTask() { QueryWrapper<BigStorageCageDetails> detailsWrapper1 = Wrappers.query(); detailsWrapper1.select("tempering_layout_id", "count(distinct slot)") .groupBy("tempering_layout_id"); List<Map<String, Object>> temperingLayoutIdList = bigStorageCageDetailsMapper.selectMaps(detailsWrapper1); - boolean key=false; + boolean key = false; for (Map<String, Object> row : temperingLayoutIdList) { for (Map.Entry<String, Object> entry : row.entrySet()) { String temperingId = entry.getKey(); diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json index 5838dac..1b538cf 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json @@ -1,6 +1,6 @@ { - "plcAddressBegin":"DB.0", - "plcAddressLenght":"72", + "plcAddressBegin":"DB14.0", + "plcAddressLenght":"84", "dataType":"word", "parameteInfor":[ { @@ -19,7 +19,7 @@ }, { "codeId": "D04Request", - "addressIndex":"8", + "addressIndex":"34", "addressLenght":"2", "ratio":"1", "unit":"" @@ -27,28 +27,62 @@ { "codeId": "D04ID1", "addressIndex":"10", - "addressLenght":"6", + "addressLenght":"36", "ratio":"1", "unit":"" }, { - "codeId": "D02Go", - "addressIndex":"20", + "codeId": "E01Status", + "addressIndex":"2", + "addressLenght":"68", + "ratio":"1", + "unit":"" + }, + { + "codeId": "E02Status", + "addressIndex":"2", + "addressLenght":"70", + "ratio":"1", + "unit":"" + }, + { + "codeId": "MaxTaskNo", + "addressIndex":"2", + "addressLenght":"72", + "ratio":"1", + "unit":"" + }, + { + "codeId": "D02MaxWidth", + "addressIndex":"2", + "addressLenght":"74", + "ratio":"1", + "unit":"" + }, + { + "codeId": "D05MaxWidth", + "addressIndex":"2", + "addressLenght":"76", + "ratio":"1", + "unit":"" + }, + { + "codeId": "GlassGap", + "addressIndex":"2", + "addressLenght":"78", + "ratio":"1", + "unit":"" + }, + { + "codeId": "D02SitState", + "addressIndex":"80", "addressLenght":"2", "ratio":"1", "unit":"" }, { - "codeId": "D05Go", - "addressIndex":"22", - "addressLenght":"2", - "ratio":"1", - "unit":"" - } - , - { - "codeId": "DeviceStatus", - "addressIndex":"70", + "codeId": "D05SitState", + "addressIndex":"82", "addressLenght":"2", "ratio":"1", "unit":"" diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml index 2a8d5ea..7f3890a 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml @@ -14,4 +14,7 @@ sequence: order: false minCount: 5 - slotWidth: 5000 \ No newline at end of file + carWidth: 5000 #澶ц溅瀹藉害 + slotWidth: 5000 #澶ц溅瀹藉害 + carMaxSize: 6 #澶ц溅鏈�澶у瓨鏀剧幓鐠冩暟閲� + galssGap: 20 #鐜荤拑闂磋窛 \ No newline at end of file diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml index c016951..f104fc3 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml @@ -19,30 +19,28 @@ </resultMap> <select id="temperingIsAll" resultMap="temperingLayoutDTO"> - SELECT T.ENGINEER_ID, - T.TEMPERING_LAYOUT_ID, - COUNT(T.TEMPERING_FEED_SEQUENCE) AS COUNT - FROM - GLASS_INFO T - LEFT JOIN DAMAGE T1 - ON T.ENGINEER_ID = T1.ENGINEER_ID - AND T.GLASS_ID = T1.GLASS_ID - LEFT JOIN BIG_STORAGE_CAGE_DETAILS T2 ON T.ENGINEER_ID = T2.ENGINEER_ID - AND T.GLASS_ID = T2.GLASS_ID - WHERE - T1.GLASS_ID IS NULL - AND T2.GLASS_ID IS NULL - AND ( T.ENGINEER_ID - , T.TEMPERING_LAYOUT_ID ) IN ( SELECT DISTINCT ENGINEER_ID - , TEMPERING_LAYOUT_ID FROM BIG_STORAGE_CAGE_DETAILS WHERE STATE = 100 ) - GROUP BY - T.ENGINEER_ID, - T.TEMPERING_LAYOUT_ID - HAVING - COUNT = 0 - ORDER BY - T.TEMPERING_LAYOUT_ID - LIMIT 1 + SELECT T2.* + FROM ( + SELECT T.ENGINEER_ID, + T.TEMPERING_LAYOUT_ID, + COUNT(T.TEMPERING_FEED_SEQUENCE) AS COUNT + FROM + GLASS_INFO T + LEFT JOIN DAMAGE T1 + ON T.ENGINEER_ID = T1.ENGINEER_ID + AND T.GLASS_ID = T1.GLASS_ID + WHERE + T1.GLASS_ID IS NULL + GROUP BY + T.ENGINEER_ID, + T.TEMPERING_LAYOUT_ID + ) T2 + INNER JOIN (SELECT ENGINEER_ID, TEMPERING_LAYOUT_ID, COUNT(TEMPERING_FEED_SEQUENCE) AS COUNT + FROM BIG_STORAGE_CAGE_DETAILS + WHERE STATE = 100 + GROUP BY ENGINEER_ID, TEMPERING_LAYOUT_ID) T3 ON T2.ENGINEER_ID = T3.ENGINEER_ID + AND T2.TEMPERING_LAYOUT_ID = T3.TEMPERING_LAYOUT_ID + AND T2.COUNT = T3.COUNT LIMIT 1 </select> <select id="queryTemperingOccupySlot" resultMap="temperingLayoutDTO"> diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml index 1ef2f3f..072185f 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml @@ -2,7 +2,12 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper"> - <select id="querySitToUpGlass" resultType="java.lang.String"> + <resultMap id="bigStorageDTO" type="com.mes.bigstorage.entity.BigStorageDTO"> + <result column="REMAIN_WIDTH" property="width"/> + <result column="GLASS_COUNT" property="glassCount"/> + </resultMap> + + <select id="querySitToUpGlass" resultType="java.lang.Integer"> select t.line from ( select line, @@ -10,9 +15,17 @@ SUM(case task_state when 2 then 1 else 0 end) as real_count from big_storage_cage_feed_task where task_state in (1, 2) + and target_slot is null group by line ) t where t.total_count = t.real_count </select> + <select id="querySitToUpRemainWidth" resultMap="bigStorageDTO"> + SELECT cast(5000 - sum(width + 20) as INT) as REMAIN_WIDTH, + count(glass_id) as GLASS_COUNT + FROM big_storage_cage_feed_task + WHERE line = #{line} + AND task_state in (1, 2) + </select> </mapper> diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml new file mode 100644 index 0000000..338e5e1 --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.mes.bigstoragetask.mapper.BigStorageCageOutTaskMapper"> + + <insert id="saveBatch"> + INSERT INTO big_storage_cage_out_task ( glass_id, start_slot, end_slot, train_number, serial_number, task_state + ) + values + <foreach collection="list" item="item" separator=","> + (#{item.glassId}, #{item.startSlot}, #{item.endSlot}, #{item.trainNumber}, #{item.serialNumber}, + #{item.taskState}) + </foreach> + </insert> +</mapper> diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java index 3dacdba..94991b1 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java @@ -38,27 +38,39 @@ } @Test + public void plcToHomeEdgOutTask() { + plcStorageCageTask.plcToHomeEdgOutTask(); + } + + @Test + public void plcToHomeEdgFreeCarTask() { + plcStorageCageTask.plcToHomeEdgFreeCarTask(); + } + + @Test + public void plcStorageCageTask() { + plcStorageCageTask.plcToHomeEdgScan(); + + } + + @Test public void computeTargetByLine() { -// log.info("鑾峰彇澶х悊鐗囩淇℃伅锛歿}",bigStorageCageService.querybigStorageCageDetail()); - plcStorageCageTask.computeTargetByLine(2001, "", ""); + plcStorageCageTask.computeTargetByLine(2001); } @Test public void judgeGlassTypeStatus() { -// log.info("鑾峰彇澶х悊鐗囩淇℃伅锛歿}",bigStorageCageService.querybigStorageCageDetail()); plcStorageCageTask.judgeGlassTypeStatus("P24060403|6|7", Const.A09_OUT_TARGET_POSITION); } @Test public void getStartLine() { -// log.info("鑾峰彇澶х悊鐗囩淇℃伅锛歿}",bigStorageCageService.querybigStorageCageDetail()); Integer startLine = plcStorageCageTask.getStartLine(); log.info("---------{}", startLine); } @Test public void selectBigStorageCageUsage() { -// bigStorageCageService.querybigStorageCageDetail(1); log.info("鑾峰彇澶х悊鐗囩淇℃伅锛歿}", bigStorageCageService.selectBigStorageCageUsage()); } diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java index ada2a7b..e7bdf13 100644 --- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java +++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java @@ -19,7 +19,6 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; -import java.util.Collections; import java.util.List; /** @@ -67,7 +66,7 @@ List<OptimizeUpPattenUsage> upPattenUsageList = null; if (engineeringId != null) { upPattenUsageList = optimizeProjectMapper.selectJoinList(OptimizeUpPattenUsage.class, new MPJQueryWrapper<OptimizeProject>() - .select("t.project_no,t.glass_type,b.realwidth as width,b.realheight as height ,REGEXP_REPLACE(t.glass_thickness,'\\D','')as glass_thickness,b.stock_id") + .select("t.project_no,t.glass_type,b.o_width as width,b.o_height as 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)); } diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java index d10f370..8ba6c01 100644 --- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java +++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java @@ -1,11 +1,13 @@ package com.mes.downglassinfo.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.yulichang.base.MPJBaseMapper; import com.mes.downglassinfo.entity.DownGlassInfo; +import com.mes.glassinfo.entity.GlassInfo; import org.springframework.stereotype.Repository; @Repository -public interface DownGlassInfoMapper extends BaseMapper<DownGlassInfo> { +public interface DownGlassInfoMapper extends BaseMapper<DownGlassInfo>, MPJBaseMapper<DownGlassInfo> { diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java index 611a9cb..c66855e 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 @@ -5,15 +5,21 @@ 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.downglassinfo.entity.DownGlassInfo; import com.mes.downglassinfo.entity.DownGlassTask; +import com.mes.downglassinfo.mapper.DownGlassInfoMapper; import com.mes.downglassinfo.mapper.DownGlassTaskMapper; +import com.mes.downglassinfo.service.DownGlassInfoService; import com.mes.downglassinfo.service.DownGlassTaskService; +import com.mes.downworkstation.entity.DownWorkstation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -27,15 +33,33 @@ @Service public class DownGlassTaskServiceImpl extends ServiceImpl<DownGlassTaskMapper, DownGlassTask> implements DownGlassTaskService { + @Autowired + private DownGlassInfoService downGlassInfoService; // MySQL Mapper + + @Autowired + private DownGlassTaskMapper downGlassTaskMapper; // SQL Server Mapper @Override public List<DownGlassTask> getUnloadingTaskState() { - log.info("鍑虹墖鎴栫洿閫氫换鍔$姸鎬佷负1 鐨勪换鍔�"); + log.info("鎺掗櫎宸茬粡涓嬬墖鐨勫嚭鐗囨垨鐩撮�氫换鍔$姸鎬佷负1鐨勪换鍔�"); + + // Step 1: 浠� MySQL 涓幏鍙栫幓鐠� ID 鍒楄〃 + + // Step 2: 浠� SQL Server 涓繃婊ゆ帀杩欎簺鐜荤拑 ID 骞舵煡璇换鍔� QueryWrapper<DownGlassTask> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("task_stauts", 1).eq("task_type", 2).or().eq("task_type", 3); + queryWrapper.eq("task_stauts", 1) + .and(qw -> qw.eq("task_type", 2).or().eq("task_type", 3)); + + List<DownGlassInfo> excludedGlassIds = downGlassInfoService.list(); + if (!excludedGlassIds.isEmpty()) { + queryWrapper.notIn("glass_id", excludedGlassIds.stream().map(DownGlassInfo::getGlassId).collect(Collectors.toList())); + } + log.info(String.valueOf(excludedGlassIds)); + return baseMapper.selectList(queryWrapper); } + @Override public void updateTaskState(String id) { UpdateWrapper<DownGlassTask> updateWrapper = new UpdateWrapper<>(); 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 38e5f48..fa22c2d 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 @@ -56,7 +56,17 @@ /** + * @param start + * @param end + * @return 鏍规嵁浼犲叆鐨勬枡鏋跺彿 鏌ヨ绗﹀悎鎸夌収娴佺▼鍗′腑椤哄簭鍑虹墖鐨勫皬鐗� + */ + List<DownStorageCageDetails> CacheOut2(int start, int end); +// /** +// * @return 鐩撮�氭煡璇� +// */ +// List<GlassInfo> DirectConnection(); + /** * @return 鐩撮�氭煡璇� */ - List<GlassInfo> DirectConnection(); + boolean DirectConnection(GlassInfo glassInfo); } 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 170a2b0..42c4c7a 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 @@ -162,23 +162,39 @@ // // } + // @Override +// public List<GlassInfo> DirectConnection(){ +// 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 琛� +// log.info("鐩撮�氭煡璇�"); +// return glassInfoMapper.selectList(queryWrapper2); +// +// }; + @Override - public List<GlassInfo> DirectConnection(){ - LambdaQueryWrapper<GlassInfo> queryWrapper2 = Wrappers.lambdaQuery(); - queryWrapper2.select(GlassInfo::getFlowCardId, - GlassInfo::getGlassId, - GlassInfo::getTemperingLayoutId, - GlassInfo::getTemperingFeedSequence) + public boolean DirectConnection(GlassInfo glassInfo) { + LambdaQueryWrapper<GlassInfo> queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(GlassInfo::getGlassId, glassInfo.getGlassId()) .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info") - .orderByAsc(GlassInfo::getTemperingLayoutId) - .orderByDesc(GlassInfo::getTemperingFeedSequence) + .orderByDesc(GlassInfo::getGlassType) + .groupBy(GlassInfo::getFlowCardId) .last("LIMIT 1"); - // 鏌ヨ GlassInfo 琛� - log.info("鐩撮�氭煡璇�"); - return glassInfoMapper.selectList(queryWrapper2); + // 鏌ヨ绗﹀悎鏉′欢鐨� GlassInfo 璁板綍鏁伴噺 + int count = glassInfoMapper.selectCount(queryWrapper); - }; + return count > 0; + } + @@ -188,12 +204,15 @@ public List<DownStorageCageDetails> CacheOut1(int start, int end) { - List<DownStorageCageDetails> cageDetails = downStorageCageDetailsMapper.selectList(null); + // 鍒涘缓涓�涓� LambdaQueryWrapper 瀹炰緥 + LambdaQueryWrapper<DownStorageCageDetails> lambdaQueryWrapper = new LambdaQueryWrapper<>(); +// 鏉′欢 state=100 + lambdaQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN); + List<DownStorageCageDetails> cageDetails = downStorageCageDetailsMapper.selectList(lambdaQueryWrapper); // 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) { @@ -217,12 +236,10 @@ // 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(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾 @@ -250,7 +267,6 @@ cageDetailsQueryWrapper.in(DownStorageCageDetails::getGlassId, glassIds); cageDetailsQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds); cageDetailsQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN); - log.info("鎸夌収娴佺▼鍗$殑鐗堝浘id 鐗堝浘鐗囧簭鍑�"); // Step 4: 鏌ヨ down_storage_cage_details 琛ㄥ苟杩斿洖缁撴灉 return downStorageCageDetailsMapper.selectList(cageDetailsQueryWrapper); @@ -260,4 +276,78 @@ } + + + @Override + public List<DownStorageCageDetails> CacheOut2(int start, int end) { + + + // 鍒涘缓涓�涓� LambdaQueryWrapper 瀹炰緥 + LambdaQueryWrapper<DownStorageCageDetails> lambdaQueryWrapper = new LambdaQueryWrapper<>(); +// 鏉′欢 state=100 + lambdaQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN); + List<DownStorageCageDetails> cageDetails = downStorageCageDetailsMapper.selectList(lambdaQueryWrapper); + // Step 5: 鍒ゆ柇 down_storage_cage_details 缁撴灉鏁伴噺鏄惁涓�9锛屽鏋滄槸锛屽垯鎵ц鍙﹀涓�涓煡璇� + if (cageDetails.size() == 9) { + log.info("1銆佺瀛愭弧浜嗙殑鏃跺�欙紝鎸夌収绗煎唴娴佺▼鍗¢『搴忓嚭 GlassType鐩墠鏄祦绋嬪崱涓殑椤哄簭"); + 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::getGlassType); + anotherQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds); + anotherQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN); + 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) + .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info") + .orderByAsc(GlassInfo::getGlassType) + .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); + cageDetailsQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN); + log.info("鎸夌収娴佺▼鍗$殑椤哄簭鍑�"); + // Step 4: 鏌ヨ down_storage_cage_details 琛ㄥ苟杩斿洖缁撴灉 + return downStorageCageDetailsMapper.selectList(cageDetailsQueryWrapper); + } + + + } + + } diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java index 11c224b..d6db167 100644 --- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java +++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java @@ -129,12 +129,12 @@ } } - if (("1".equals(G11RobotTaskRequestWord) || "1".equals(G06RobotTaskRequestWord)) || "1".equals(G13RobotTaskRequestWord)) { - log.info("4銆佹湁鏈哄櫒浜轰笅鐗囪姹傦紝鎵ц涓嬬墖浠诲姟"); + if (("0".equals(G11RobotTaskRequestWord) || "0".equals(G06RobotTaskRequestWord)) || "0".equals(G13RobotTaskRequestWord)) { + log.info("4銆佹湁涓嬬墖瀹屾垚淇″彿鏇存柊钀芥灦鏁伴噺"); insertdownglassinfo(); } - //鑷姩缁戝畾鏋跺瓙锛屽鏋滃伐浣嶈〃娌℃湁缁戝畾鏋跺瓙锛岄粯璁ゅ皢绗煎瓙涓暟閲忔渶澶氱殑娴佺▼鍗″彿缁戝畾鏈哄櫒鎵�2鐨勭┖鏋跺瓙 + } @@ -155,9 +155,10 @@ } log.info("2銆佽幏鍙栧埌鐨勭幓鐠冧俊鎭负{}", glassInfo); - if (glassInfo.getGlassId().equals(downStorageCageDetailsService.DirectConnection())) { + if (downStorageCageDetailsService.DirectConnection(glassInfo)) { //鐩撮�� - log.info("3銆佸鏋滃綋鍓嶇幓鐠冨睘浜庣増鍥緄d鍜岀墖搴忕殑椤哄簭鍒欑洿閫氾紝鎵ц涓嬬墖浠诲姟"); + //log.info("3銆佸鏋滃綋鍓嶇幓鐠冨睘浜庣増鍥緄d鍜岀墖搴忕殑椤哄簭鍒欑洿閫氾紝鎵ц涓嬬墖浠诲姟"); + log.info("3銆佸鏋滃綋鍓嶇幓鐠冨睘浜庢祦绋嬪崱涓殑鐗囧簭鐨勯『搴忓垯鐩撮�氾紝鎵ц涓嬬墖浠诲姟"); DownWorkstation downWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getFlowCardId, glassInfo.getFlowCardId())); int WorkstationId = downWorkstation.getWorkstationId(); DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(glassInfo, "0", String.valueOf(WorkstationId), "3"); @@ -165,7 +166,9 @@ } else { - log.info("4銆佸鏋滀笉灞炰簬鐗堝浘id鍜岀墖搴忕殑椤哄簭鎵ц杩涚墖浠诲姟"); + // log.info("4銆佸鏋滀笉灞炰簬鐗堝浘id鍜岀墖搴忕殑椤哄簭鎵ц杩涚墖浠诲姟"); + log.info("4銆佸鏋滀笉灞炰簬娴佺▼鍗′腑鐨勭墖搴忕殑椤哄簭鎵ц杩涚墖浠诲姟"); + //娣诲姞杩涚墖浠诲姟 鏌ユ壘绌烘牸 List<DownStorageCageDetails> list = downStorageCageService.selectCacheEmpty(); if (list.size() > 0) { @@ -201,11 +204,12 @@ * @param MESSendingWord */ private Boolean outTo(String MESSendingWord) { - log.info("鍗曠墖鎯呭喌鏍规嵁浼犲叆鐨勬枡鏋跺彿 鏌ヨ绗﹀悎鎸夌収鐗堝浘id鍜岀墖搴忓嚭鐗�,骞朵笖浼樺厛鍑烘弧鏋剁殑灏忕墖"); + // log.info("鍗曠墖鎯呭喌鏍规嵁浼犲叆鐨勬枡鏋跺彿 鏌ヨ绗﹀悎鎸夌収鐗堝浘id鍜岀墖搴忓嚭鐗�,骞朵笖浼樺厛鍑烘弧鏋剁殑灏忕墖"); + log.info("鍗曠墖鎯呭喌鏍规嵁浼犲叆鐨勬枡鏋跺彿 鏌ヨ绗﹀悎鎸夌収娴佺▼鍗′腑椤哄簭鍑虹墖,骞朵笖浼樺厛鍑烘弧鏋剁殑灏忕墖"); - List<DownStorageCageDetails> list1to3 = downStorageCageDetailsService.CacheOut1(1, 3); - List<DownStorageCageDetails> list4to6 = downStorageCageDetailsService.CacheOut1(4, 6); - List<DownStorageCageDetails> list1to6 = downStorageCageDetailsService.CacheOut1(1, 6); +// List<DownStorageCageDetails> list1to3 = downStorageCageDetailsService.CacheOut1(1, 3); +// List<DownStorageCageDetails> list4to6 = downStorageCageDetailsService.CacheOut1(4, 6); + List<DownStorageCageDetails> list1to6 = downStorageCageDetailsService.CacheOut2(1, 6); DownStorageCageDetails selectedItem = null; @@ -214,27 +218,28 @@ // 浼樺厛 瓒呭嚭灏哄浼樺厛浜哄伐鍑虹墖 浜哄伐澶勭悊 if (!list1to6.isEmpty()) { DownStorageCageDetails item3 = list1to6.get(0); + //鍚庢湡鏈夌敓浜ц鍒� if (item3.getHeight() >= 2500 && item3.getWidth() >= 2660) { log.info("浜哄伐澶勭悊"); selectedItem = item3; - endCell = "7"; - } else if (!list4to6.isEmpty() && !list1to6.isEmpty()) { - log.info("鍓嶅悗绔兘绌洪棽 浼樺厛鍚庣鍑虹墖骞朵笖浼樺厛婊℃灦"); - selectedItem = list4to6.get(0); + + } else if (!!list1to6.isEmpty()) { + log.info("鍓嶅悗绔兘绌洪棽浼樺厛婊℃灦"); + selectedItem = list1to6.get(0); } } // 鎸夌収鐗堝浘id鍜岀墖搴忕鍚堝墠绔嚭鐗� - if (selectedItem == null && !list1to3.isEmpty()) { - log.info("鍓嶇鍑虹墖"); - selectedItem = list1to3.get(0); - } - - // 鎸夌収鐗堝浘id鍜岀墖搴忕鍚堝悗绔嚭鐗� - if (selectedItem == null && !list4to6.isEmpty()) { - log.info("鍚庣鍑虹墖"); - selectedItem = list4to6.get(0); - } +// if (selectedItem == null && !list1to3.isEmpty()) { +// log.info("鍓嶇鍑虹墖"); +// selectedItem = list1to3.get(0); +// } +// +// // 鎸夌収鐗堝浘id鍜岀墖搴忕鍚堝悗绔嚭鐗� +// if (selectedItem == null && !list4to6.isEmpty()) { +// log.info("鍚庣鍑虹墖"); +// selectedItem = list4to6.get(0); +// } if (selectedItem != null) { DownWorkstation downWorkstation = downWorkstationService.getOne( @@ -286,11 +291,11 @@ DownWorkstation downWorkstation1 = downWorkstationService.selectByFlowCardId(downGlassInfo.getFlowCardId()); downWorkstationService.updateracksnumber(downGlassInfo.getFlowCardId(), downWorkstation1.getRacksnumber() + 1); log.info("鏇存柊钀芥灦鏁伴噺"); - LambdaQueryWrapper<DownGlassTask> wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(DownGlassTask::getGlassId, newdownGlassInfo.getGlassId()); - DownGlassTask updateDetail = new DownGlassTask(); - updateDetail.setTaskStauts(2); - downGlassTaskService.update(updateDetail, wrapper); +// LambdaQueryWrapper<DownGlassTask> wrapper = new LambdaQueryWrapper<>(); +// wrapper.eq(DownGlassTask::getGlassId, newdownGlassInfo.getGlassId()); +// DownGlassTask updateDetail = new DownGlassTask(); +// updateDetail.setTaskStauts(2); +// downGlassTaskService.update(updateDetail, wrapper); sequence++; // 閫掑椤哄簭瀛楁鍊� diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml index 2e6a12c..683a519 100644 --- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml +++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml @@ -14,6 +14,11 @@ username: sa password: beibo.123/ driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver + pp: + url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8 + username: root + password: beibo.123/ + driver-class-name: com.mysql.cj.jdbc.Driver cloud: nacos: discovery: diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java index e363838..13828db 100644 --- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java +++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java @@ -1,6 +1,7 @@ package mes; import com.mes.UnLoadGlassApplication; +import com.mes.downglassinfo.service.DownGlassTaskService; import com.mes.downglassinfo.service.impl.DownGlassInfoServiceImpl; import com.mes.downglassinfo.service.impl.DownGlassTaskServiceImpl; import com.mes.downstorage.entity.DownStorageCage; @@ -58,6 +59,8 @@ DownWorkstationService downWorkstationService; @Autowired DownStorageCageService downStorageCageService; + @Autowired + DownGlassTaskService downGlassTaskService; @@ -171,8 +174,15 @@ @Test public void getFlowCardId() { - glassInfoServiceImpl.getFlowCardId(); + + } + + @Test + public void getUnloadingTaskState() { + + + downGlassTaskService.getUnloadingTaskState(); } @Test -- Gitblit v1.8.0