From de46cb80b7c4d1fb74a4b72d8fc4406e7e3144e7 Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期一, 19 八月 2024 08:49:41 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes
---
UI-Project/src/views/Returns/returns.vue | 4
hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java | 9
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java | 10
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java | 29
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java | 3
UI-Project/src/views/LoginView.vue | 4
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml | 27
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml | 20
UI-Project/src/lang/companyInfo.js | 85 +
UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue | 26
UI-Project/package.json | 5
UI-Project/src/views/UnLoadGlass/PrintFlow.vue | 444 ++++++
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java | 10
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java | 4
UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue | 42
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java | 4
hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java | 6
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java | 4
UI-Project/src/views/PurchaseReturn/purchaseStorage.vue | 29
UI-Project/src/assets/dpxsa.png | 0
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml | 8
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java | 23
UI-Project/src/utils/WebSocketService.js | 13
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml | 2
UI-Project/src/layout/MainErpView.vue | 46
UI-Project/src/views/Identify/identify.vue | 245 +--
UI-Project/src/views/Caching/cachingbefore.vue | 2
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java | 4
UI-Project/src/views/UnLoadGlass/loadmachinerack.vue | 494 +++++--
UI-Project/src/views/Caching/cachingun.vue | 275 ++--
hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml | 4
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java | 27
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java | 4
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java | 5
UI-Project/src/views/largescreen/largescreen.vue | 511 ++++++-
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml | 3
UI-Project/config.js | 3
UI-Project/src/views/StockBasicData/stockBasicData.vue | 119 +
UI-Project/src/views/UnLoadGlass/Landingindication.vue | 55
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-cz.yml | 5
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java | 2
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/TaskCacheMapper.xml | 1
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml | 3
UI-Project/src/lang/zh.js | 14
UI-Project/src/views/ReportWork/reportWork.vue | 6
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java | 57
UI-Project/src/utils/constants.js | 3
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml | 12
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml | 12
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java | 4
UI-Project/src/views/Slicecage/slicecage.vue | 81
/dev/null | 144 --
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java | 2
UI-Project/src/views/GlassStorage/MaterialRackManagement.vue | 5
JsonFile/PlcdownGlass.json | 7
UI-Project/src/main.js | 4
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java | 6
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java | 9
UI-Project/package-lock.json | 670 +++++++++
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue | 136 -
60 files changed, 2,777 insertions(+), 1,014 deletions(-)
diff --git a/JsonFile/PlcdownGlass.json b/JsonFile/PlcdownGlass.json
index 98366a9..a5698c2 100644
--- a/JsonFile/PlcdownGlass.json
+++ b/JsonFile/PlcdownGlass.json
@@ -1,6 +1,6 @@
{
"plcAddressBegin": "DB11.0",
- "plcAddressLenght": "92",
+ "plcAddressLenght": "94",
"dataType": "word",
"parameteInfor": [
@@ -138,6 +138,11 @@
"codeId": "task_type",
"addressIndex": "90",
"addressLenght": "2"
+ },
+ {
+ "codeId": "alarm_signal",
+ "addressIndex": "92",
+ "addressLenght": "2"
}
]
diff --git a/UI-Project/config.js b/UI-Project/config.js
index b15a1a5..9a4f798 100644
--- a/UI-Project/config.js
+++ b/UI-Project/config.js
@@ -1,7 +1,10 @@
export default {
serverUrl: "10.153.19.150:88/api",
// serverUrl: "192.168.1.199:88/api",
+// serverUrl: "127.0.0.1:88/api",
serverUrl2: "10.153.19.150:88"
// serverUrl2: "192.168.1.199:88"
+ // serverUrl2: "127.0.0.1:88"
+
//serverUrl:"res.abeim.cn"
}
\ No newline at end of file
diff --git a/UI-Project/package-lock.json b/UI-Project/package-lock.json
index d8cc8aa..d59de38 100644
--- a/UI-Project/package-lock.json
+++ b/UI-Project/package-lock.json
@@ -8,7 +8,7 @@
"name": "northglass-mes",
"version": "0.0.0",
"dependencies": {
- "@element-plus/icons-vue": "^2.1.0",
+ "@element-plus/icons-vue": "^2.3.1",
"@vue-macros/reactivity-transform": "^0.3.23",
"axios": "^1.6.8",
"chart.js": "^4.4.3",
@@ -17,13 +17,16 @@
"moment": "^2.30.1",
"pinia": "^2.1.6",
"pinia-plugin-persistedstate": "^3.2.0",
+ "qrcode": "^1.5.4",
"sortablejs": "^1.15.1",
"sweetalert2": "^11.10.7",
"vue": "^3.3.4",
"vue-draggable-plus": "^0.5.0",
"vue-echarts": "^6.7.3",
"vue-i18n": "^9.10.1",
+ "vue-print-nb": "^1.7.5",
"vue-router": "^4.2.4",
+ "vue3-print-nb": "^0.1.4",
"vxe-table": "^4.5.15",
"xe-utils": "^3.5.14",
"xlsx": "^0.18.5"
@@ -46,25 +49,28 @@
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+ "version": "7.24.8",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
+ "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
- "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "version": "7.24.7",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+ "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/parser": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
- "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
+ "version": "7.25.3",
+ "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.3.tgz",
+ "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==",
+ "dependencies": {
+ "@babel/types": "^7.25.2"
+ },
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -73,12 +79,12 @@
}
},
"node_modules/@babel/types": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
- "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
+ "version": "7.25.2",
+ "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.2.tgz",
+ "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==",
"dependencies": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.20",
+ "@babel/helper-string-parser": "^7.24.8",
+ "@babel/helper-validator-identifier": "^7.24.7",
"to-fast-properties": "^2.0.0"
},
"engines": {
@@ -94,9 +100,9 @@
}
},
"node_modules/@element-plus/icons-vue": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.1.0.tgz",
- "integrity": "sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz",
+ "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==",
"peerDependencies": {
"vue": "^3.2.0"
}
@@ -558,6 +564,28 @@
"node": ">=0.8"
}
},
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
"node_modules/anymatch": {
"version": "3.1.3",
"resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz",
@@ -640,6 +668,14 @@
"node": ">=8"
}
},
+ "node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/cfb": {
"version": "1.2.2",
"resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
@@ -686,6 +722,16 @@
"fsevents": "~2.3.2"
}
},
+ "node_modules/cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
"node_modules/codepage": {
"version": "1.15.0",
"resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
@@ -693,6 +739,22 @@
"engines": {
"node": ">=0.8"
}
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/combined-stream": {
"version": "1.0.8",
@@ -749,6 +811,14 @@
}
}
},
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -756,6 +826,11 @@
"engines": {
"node": ">=0.4.0"
}
+ },
+ "node_modules/dijkstrajs": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
+ "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="
},
"node_modules/dom-zindex": {
"version": "1.0.1",
@@ -795,6 +870,11 @@
"peerDependencies": {
"vue": "^3.2.0"
}
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"node_modules/esbuild": {
"version": "0.18.20",
@@ -897,6 +977,18 @@
"node": ">=8"
}
},
+ "node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/follow-redirects": {
"version": "1.15.6",
"resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz",
@@ -929,6 +1021,14 @@
"integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==",
"engines": {
"node": ">=0.8"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
}
},
"node_modules/glob-parent": {
@@ -992,6 +1092,14 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
@@ -1035,6 +1143,17 @@
},
"funding": {
"url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
"node_modules/lodash": {
@@ -1193,6 +1312,47 @@
"resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
"integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
},
+ "node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/pathe": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz",
@@ -1283,6 +1443,14 @@
"pathe": "^1.1.2"
}
},
+ "node_modules/pngjs": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-5.0.0.tgz",
+ "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
"node_modules/postcss": {
"version": "8.4.31",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
@@ -1310,10 +1478,41 @@
"node": "^10 || ^12 || >=14"
}
},
+ "node_modules/prettier": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz",
+ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+ "optional": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
+ "node_modules/qrcode": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.4.tgz",
+ "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==",
+ "dependencies": {
+ "dijkstrajs": "^1.0.1",
+ "pngjs": "^5.0.0",
+ "yargs": "^15.3.1"
+ },
+ "bin": {
+ "qrcode": "bin/qrcode"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
},
"node_modules/queue-microtask": {
"version": "1.2.3",
@@ -1345,6 +1544,19 @@
"engines": {
"node": ">=8.10.0"
}
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
"node_modules/requires-port": {
"version": "1.0.0",
@@ -1412,10 +1624,23 @@
"integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==",
"dev": true
},
+ "node_modules/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
+ },
"node_modules/sortablejs": {
"version": "1.15.1",
"resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.1.tgz",
"integrity": "sha512-P5Cjvb0UG1ZVNiDPj/n4V+DinttXG6K8n7vM/HQf0C25K3YKQTQY6fsr/sEGsJGpQ9exmPxluHxKBc0mLKU1lQ=="
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
"node_modules/source-map-js": {
"version": "1.0.2",
@@ -1434,6 +1659,30 @@
},
"engines": {
"node": ">=0.8"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
}
},
"node_modules/strip-literal": {
@@ -1750,6 +1999,37 @@
"vue": "^3.0.0"
}
},
+ "node_modules/vue-print-nb": {
+ "version": "1.7.5",
+ "resolved": "https://registry.npmmirror.com/vue-print-nb/-/vue-print-nb-1.7.5.tgz",
+ "integrity": "sha512-iNbNyUVRWz0Ha1UTiCKxMPtHLUDGgNI8e8xmD3xqm9RlXIUeX9bT7DgNAfY8vPzqyFRHqGjxLI1rycKH366ziQ==",
+ "dependencies": {
+ "vue": "^2.6.11"
+ }
+ },
+ "node_modules/vue-print-nb/node_modules/@vue/compiler-sfc": {
+ "version": "2.7.16",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
+ "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==",
+ "dependencies": {
+ "@babel/parser": "^7.23.5",
+ "postcss": "^8.4.14",
+ "source-map": "^0.6.1"
+ },
+ "optionalDependencies": {
+ "prettier": "^1.18.2 || ^2.0.0"
+ }
+ },
+ "node_modules/vue-print-nb/node_modules/vue": {
+ "version": "2.7.16",
+ "resolved": "https://registry.npmmirror.com/vue/-/vue-2.7.16.tgz",
+ "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
+ "deprecated": "Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.",
+ "dependencies": {
+ "@vue/compiler-sfc": "2.7.16",
+ "csstype": "^3.1.0"
+ }
+ },
"node_modules/vue-router": {
"version": "4.2.5",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz",
@@ -1762,6 +2042,14 @@
},
"peerDependencies": {
"vue": "^3.2.0"
+ }
+ },
+ "node_modules/vue3-print-nb": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmmirror.com/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz",
+ "integrity": "sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==",
+ "dependencies": {
+ "vue": "^3.0.5"
}
},
"node_modules/vxe-table": {
@@ -1790,6 +2078,11 @@
"resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
"integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ=="
},
+ "node_modules/which-module": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
+ },
"node_modules/wmf": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
@@ -1804,6 +2097,19 @@
"integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==",
"engines": {
"node": ">=0.8"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
"node_modules/xe-utils": {
@@ -1831,6 +2137,44 @@
"node": ">=0.8"
}
},
+ "node_modules/y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ },
+ "node_modules/yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "dependencies": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/zrender": {
"version": "5.6.0",
"resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.6.0.tgz",
@@ -1848,27 +2192,30 @@
"dev": true
},
"@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw=="
+ "version": "7.24.8",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
+ "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ=="
},
"@babel/helper-validator-identifier": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
- "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A=="
+ "version": "7.24.7",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+ "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w=="
},
"@babel/parser": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
- "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw=="
+ "version": "7.25.3",
+ "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.3.tgz",
+ "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==",
+ "requires": {
+ "@babel/types": "^7.25.2"
+ }
},
"@babel/types": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
- "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
+ "version": "7.25.2",
+ "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.2.tgz",
+ "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==",
"requires": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.20",
+ "@babel/helper-string-parser": "^7.24.8",
+ "@babel/helper-validator-identifier": "^7.24.7",
"to-fast-properties": "^2.0.0"
}
},
@@ -1878,9 +2225,9 @@
"integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA=="
},
"@element-plus/icons-vue": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.1.0.tgz",
- "integrity": "sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz",
+ "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==",
"requires": {}
},
"@esbuild/win32-ia32": {
@@ -2219,6 +2566,19 @@
"resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
"integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
},
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
"anymatch": {
"version": "3.1.3",
"resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz",
@@ -2286,6 +2646,11 @@
"fill-range": "^7.0.1"
}
},
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ },
"cfb": {
"version": "1.2.2",
"resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
@@ -2318,10 +2683,33 @@
"readdirp": "~3.6.0"
}
},
+ "cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
"codepage": {
"version": "1.15.0",
"resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
"integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"combined-stream": {
"version": "1.0.8",
@@ -2361,10 +2749,20 @@
"ms": "2.1.2"
}
},
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="
+ },
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+ },
+ "dijkstrajs": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
+ "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="
},
"dom-zindex": {
"version": "1.0.1",
@@ -2401,6 +2799,11 @@
"memoize-one": "^6.0.0",
"normalize-wheel-es": "^1.2.0"
}
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"esbuild": {
"version": "0.18.20",
@@ -2484,6 +2887,15 @@
"to-regex-range": "^5.0.1"
}
},
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
"follow-redirects": {
"version": "1.15.6",
"resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz",
@@ -2503,6 +2915,11 @@
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
"integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
},
"glob-parent": {
"version": "5.1.2",
@@ -2550,6 +2967,11 @@
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
},
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ },
"is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
@@ -2579,6 +3001,14 @@
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
"integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g=="
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
},
"lodash": {
"version": "4.17.21",
@@ -2693,6 +3123,32 @@
"resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
"integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
},
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+ },
"pathe": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz",
@@ -2742,6 +3198,11 @@
"pathe": "^1.1.2"
}
},
+ "pngjs": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-5.0.0.tgz",
+ "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="
+ },
"postcss": {
"version": "8.4.31",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
@@ -2752,10 +3213,26 @@
"source-map-js": "^1.0.2"
}
},
+ "prettier": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz",
+ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+ "optional": true
+ },
"proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
+ "qrcode": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.4.tgz",
+ "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==",
+ "requires": {
+ "dijkstrajs": "^1.0.1",
+ "pngjs": "^5.0.0",
+ "yargs": "^15.3.1"
+ }
},
"queue-microtask": {
"version": "1.2.3",
@@ -2770,6 +3247,16 @@
"requires": {
"picomatch": "^2.2.1"
}
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
"requires-port": {
"version": "1.0.0",
@@ -2812,10 +3299,20 @@
"integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==",
"dev": true
},
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
+ },
"sortablejs": {
"version": "1.15.1",
"resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.1.tgz",
"integrity": "sha512-P5Cjvb0UG1ZVNiDPj/n4V+DinttXG6K8n7vM/HQf0C25K3YKQTQY6fsr/sEGsJGpQ9exmPxluHxKBc0mLKU1lQ=="
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
},
"source-map-js": {
"version": "1.0.2",
@@ -2828,6 +3325,24 @@
"integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
"requires": {
"frac": "~1.1.2"
+ }
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
}
},
"strip-literal": {
@@ -3014,12 +3529,50 @@
"@vue/devtools-api": "^6.5.0"
}
},
+ "vue-print-nb": {
+ "version": "1.7.5",
+ "resolved": "https://registry.npmmirror.com/vue-print-nb/-/vue-print-nb-1.7.5.tgz",
+ "integrity": "sha512-iNbNyUVRWz0Ha1UTiCKxMPtHLUDGgNI8e8xmD3xqm9RlXIUeX9bT7DgNAfY8vPzqyFRHqGjxLI1rycKH366ziQ==",
+ "requires": {
+ "vue": "^2.6.11"
+ },
+ "dependencies": {
+ "@vue/compiler-sfc": {
+ "version": "2.7.16",
+ "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
+ "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==",
+ "requires": {
+ "@babel/parser": "^7.23.5",
+ "postcss": "^8.4.14",
+ "prettier": "^1.18.2 || ^2.0.0",
+ "source-map": "^0.6.1"
+ }
+ },
+ "vue": {
+ "version": "2.7.16",
+ "resolved": "https://registry.npmmirror.com/vue/-/vue-2.7.16.tgz",
+ "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
+ "requires": {
+ "@vue/compiler-sfc": "2.7.16",
+ "csstype": "^3.1.0"
+ }
+ }
+ }
+ },
"vue-router": {
"version": "4.2.5",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz",
"integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==",
"requires": {
"@vue/devtools-api": "^6.5.0"
+ }
+ },
+ "vue3-print-nb": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmmirror.com/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz",
+ "integrity": "sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==",
+ "requires": {
+ "vue": "^3.0.5"
}
},
"vxe-table": {
@@ -3041,6 +3594,11 @@
"resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
"integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ=="
},
+ "which-module": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
+ },
"wmf": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
@@ -3050,6 +3608,16 @@
"version": "0.3.0",
"resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
"integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
},
"xe-utils": {
"version": "3.5.14",
@@ -3070,6 +3638,38 @@
"word": "~0.3.0"
}
},
+ "y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ },
+ "yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "requires": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ },
"zrender": {
"version": "5.6.0",
"resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.6.0.tgz",
diff --git a/UI-Project/package.json b/UI-Project/package.json
index 3a98cb7..feeda10 100644
--- a/UI-Project/package.json
+++ b/UI-Project/package.json
@@ -8,7 +8,7 @@
"preview": "vite preview"
},
"dependencies": {
- "@element-plus/icons-vue": "^2.1.0",
+ "@element-plus/icons-vue": "^2.3.1",
"@vue-macros/reactivity-transform": "^0.3.23",
"axios": "^1.6.8",
"chart.js": "^4.4.3",
@@ -17,13 +17,16 @@
"moment": "^2.30.1",
"pinia": "^2.1.6",
"pinia-plugin-persistedstate": "^3.2.0",
+ "qrcode": "^1.5.4",
"sortablejs": "^1.15.1",
"sweetalert2": "^11.10.7",
"vue": "^3.3.4",
"vue-draggable-plus": "^0.5.0",
"vue-echarts": "^6.7.3",
"vue-i18n": "^9.10.1",
+ "vue-print-nb": "^1.7.5",
"vue-router": "^4.2.4",
+ "vue3-print-nb": "^0.1.4",
"vxe-table": "^4.5.15",
"xe-utils": "^3.5.14",
"xlsx": "^0.18.5"
diff --git a/UI-Project/src/assets/dpxsa.png b/UI-Project/src/assets/dpxsa.png
new file mode 100644
index 0000000..c444062
--- /dev/null
+++ b/UI-Project/src/assets/dpxsa.png
Binary files differ
diff --git a/UI-Project/src/lang/companyInfo.js b/UI-Project/src/lang/companyInfo.js
new file mode 100644
index 0000000..1fc09b3
--- /dev/null
+++ b/UI-Project/src/lang/companyInfo.js
@@ -0,0 +1,85 @@
+import {defineStore} from "pinia";
+
+export default defineStore('companyInfo', {
+
+ state: () => ({
+ companyName: '甯稿窞甯傚悏鍒╃幓鐠冩湁闄愬叕鍙�',
+ address:'甯稿窞甯傚ぉ瀹佸尯閮戦檰闀囧ぇ鏄庡崡璺�8鍙�',
+ telephone:'022-59280088',
+ fax:'022-59280066',
+ widHeiLength:{//璁㈠崟瀹介珮闀垮害
+ regexp:/^(\d{1,4})$/,//姝e垯鍥涗綅鏁存暟
+ //regexp:/^(0|[1-9][0-9]{0,3}([.][0-9]{1,2})?)$/,//姝e垯0.00-9999.99
+ msg:'basicData.msg.range9999Dec'
+ },
+ orderIdType:'month',//鍚庣鐢熸垚璁㈠崟鍙风被鍨嬶紝day:姣忓ぉ鐢熸垚锛宮onth:姣忔湀鐢熸垚
+ deliveryIdType:'month',//鍚庣鐢熸垚鍙戣揣鍗曞彿绫诲瀷锛宒ay:姣忓ぉ鐢熸垚锛宮onth:姣忔湀鐢熸垚
+ columnName:'寮傚舰鍙傛暟',
+ selectOrderReviewShow:false, //璁㈠崟棣栭〉鍔犲伐鍗曞鏍告寜閽槸鍚︽樉绀�
+ productName:"product_abbreviation", //浜у搧鍒涘缓鏌ラ噸瀛楁
+ decValue:2,//璁㈠崟淇濆瓨闈㈢Н浣嶆暟
+ label:2,//鏍囩绫诲瀷
+ calculateType:2,//璁㈠崟璁$畻鏂瑰紡
+
+ //澶╂触
+ printLabel: {
+ custom: (item1) => {
+ return `<div class="row3" style="text-align: center;font-weight: bolder;">
+ <label style="font-weight: bolder;font-size: 22px;margin-top: 28px;">W:${item1.width}</label>
+
+ <label style="font-weight: bolder;font-size: 22px;margin-top: 28px;">H:${item1.height}</label>
+ </div>`
+ },
+ customSemi: (item1) => {
+ return `<div class="row3" style="text-align: center;font-weight: bolder;">
+ <label style="font-weight: bolder;font-size: 10px;margin-top: 28px;">W:${item1.width}</label>
+
+ <label style="font-weight: bolder;font-size: 10px;margin-top: 28px;">H:${item1.height}</label>
+ </div>`
+ },
+ labelType: '鎴愬搧鏍囩2',
+ labelValue:2,
+ labelType3: '鎴愬搧鏍囩3',
+ labelValue3:3,
+ printFlowCard: {
+ patch:'姝e搧',
+ lackOf:'娆″搧',
+ processingNote: (itemtextarea) => {
+ return `${itemtextarea.processing_note}`
+ },
+ },
+ hideButton:'false',
+ getSelectFlowCard:2,//鎵撳嵃娴佺▼鍗℃煡璇㈢姸鎬�
+ className:{
+ custom:{
+ printFlowCardName: () => {
+ return `printFlowCard_finished`
+ },
+ entiretyName: () => {
+ return `entirety_finished`
+ },
+ contentRowName: () => {
+ return `contentRow`
+ }
+ },
+ semi:{
+ printFlowCardName: () => {
+ return `printFlowCard_semi`
+ },
+ entiretyName: () => {
+ return `entirety_semi`
+ },
+ contentRowName: () => {
+ return `contentRow`
+ }
+ }
+
+ }
+ }
+
+
+ }),
+ actions: {
+ //
+ }
+})
\ No newline at end of file
diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
index d2c352b..ff52e1c 100644
--- a/UI-Project/src/lang/zh.js
+++ b/UI-Project/src/lang/zh.js
@@ -218,8 +218,10 @@
process:'宸ュ簭',
team:'鐝粍',
basic:'璁惧',
- add:'纭淇濆瓨',
+ makesure:'纭淇濆瓨',
cancel:'鍙栨秷',
+ temperingtotal:'閽㈠寲鐐夋暟锛�',
+ glasstotal:'鐜荤拑鎬绘暟锛�',
},
workOrder:{
glassID:'鐜荤拑ID',
@@ -237,6 +239,9 @@
takemessage:'鏄惁鎷胯蛋璇ユ潯淇℃伅锛�',
breakage:'鐮存崯',
takeout:'鎷胯蛋',
+ glasstype:'鐜荤拑绫诲瀷',
+ line:'绾胯矾',
+ status:'鐘舵��',
},
processCard:{
intofurnace:'杩涚倝涓�',
@@ -427,6 +432,13 @@
allstatus: '鍏ㄩ儴鍏ュ簱鐘舵��',
completedquantity: '瀹屾垚鏁伴噺',
scrapquantity: '鎶ュ簾鏁伴噺',
+ number: '鏁伴噺',
+ method: '鍔犲伐鏂瑰紡',
+ innumber: '宸插叆鏁伴噺',
+ productstatus: '鐢熶骇鐘舵��',
+ projectnumber: '宸ョ▼鍙�',
+ right: '姝e父',
+ stop: '缁堟',
},
reportmanage:{
productiontime :'鐢熶骇鏃堕棿',
diff --git a/UI-Project/src/layout/MainErpView.vue b/UI-Project/src/layout/MainErpView.vue
index 88c07a1..8fdf761 100644
--- a/UI-Project/src/layout/MainErpView.vue
+++ b/UI-Project/src/layout/MainErpView.vue
@@ -10,11 +10,11 @@
const { t } = useI18n()
let language = ref(localStorage.getItem('lang') || 'zh')
const store = userInfo()
-
+const isCollapse = ref(false);
// const { $i18n } = useI18n(); // 鑾峰彇 i18n 瀹炰緥
const router = useRouter()
const userStore = useUserInfoStore()
-const user = userStore.user.userName
+// const user = userStore.user.userName
let userInfoStr = window.localStorage.getItem('userInfo')
console.log(userInfoStr);
@@ -158,6 +158,9 @@
openFlag = menuID
}
}
+function toggleCollapse() {
+ isCollapse.value = !isCollapse.value;
+}
</script>
<template>
@@ -169,10 +172,6 @@
alt=""
style="max-width: 100%;max-height: 100%">
<h3 style="margin: 1rem ;font-weight: bold;width: 33vw;"> {{ $t('main.titleFirst') }}{{ userName }}{{ $t('main.titleLast') }}</h3>
- <!-- <div class="header-left">
- <el-button :icon="isCollapse ? 'el-icon-s-unfold' : 'el-icon-s-fold'" @click="toggleCollapse"
- style="height:30px;"></el-button>
- </div> -->
<span style="height: 70%;width: 78vw;margin-top: 1rem;">
<!-- <el-button class="sys-quit"
@click="quit"
@@ -188,33 +187,23 @@
<SwitchButton size=""/>{{ $t('main.quit') }}
</el-icon>
</el-button>
+ <div class="header-left">
+ <el-button @click="toggleCollapse"
+ style="height:30px;">鈽�</el-button>
+ <!-- <el-button :icon="isCollapse ? 'el-icon-s-unfold' : 'el-icon-s-fold'" @click="toggleCollapse"
+ style="height:30px;"></el-button> -->
+ </div>
</span>
</div>
</el-header>
<div id="line"></div>
<el-container>
- <!-- <el-aside width="160px"
- style="height: 99%; background-color: #fff;">
- <div class="menu">
- <div v-for="items in menuList">
- <div class='menu_title'
- @click="openMenu(items.id)">
- <span>鈽�</span>
- {{ items.menuName }}
- </div>
- <ul class='enter-x-left'
- v-show="openFlag==items.id">
- <li v-for="menuItem in items.children"
- style="margin-bottom:2px">
- <router-link :to="{path:menuItem.url}">
- {{ menuItem.menuName }}
- </router-link>
- </el-aside> -->
+ <el-aside :width="isCollapse ? '30px' : '200px'" style="background-color: #fff;">
<el-row :span="20">
- <el-menu :default-active="activePath" class="el-menu-vertical-demo" background-color="#fff">
+ <el-menu :default-active="activePath" class="el-menu-vertical-demo" >
<div class="menu">
<div v-for="items in menuList">
- <div class='menu_title'
+ <div class='menu_title' v-show="!isCollapse"
@click="openMenu(items.id)">
<span>鈽�</span>
{{ items.menuName }}
@@ -232,12 +221,12 @@
</div>
</el-menu>
</el-row>
- <el-main>
+</el-aside>
+<el-main>
<div id="main">
<router-view></router-view>
</div>
</el-main>
-
</el-container>
</el-container>
</div>
@@ -463,4 +452,7 @@
transform: translateX(0);
}
}
+.header-left{
+ margin-left: -350px;
+}
</style>
\ No newline at end of file
diff --git a/UI-Project/src/main.js b/UI-Project/src/main.js
index 7f48d13..30b5a74 100644
--- a/UI-Project/src/main.js
+++ b/UI-Project/src/main.js
@@ -15,7 +15,6 @@
import * as echarts from "echarts"
// echarts.registerMap('china', china)
// Vue.prototype.$echarts = echarts
-
// app.component("v-chart", Echarts)
// app.config.globalProperties.$echarts = echarts
const app = createApp(App)
@@ -29,5 +28,4 @@
locale: zhCn,
})
app.use(i18n)
-
-app.mount('#app')
\ No newline at end of file
+app.mount('#app')
diff --git a/UI-Project/src/utils/WebSocketService.js b/UI-Project/src/utils/WebSocketService.js
index 0c2d76f..695f679 100644
--- a/UI-Project/src/utils/WebSocketService.js
+++ b/UI-Project/src/utils/WebSocketService.js
@@ -1,4 +1,5 @@
// WebSocketService.js
+
let socket = null;
export const initializeWebSocket = (socketUrl, messageHandler) => {
let messages='' ;
@@ -6,10 +7,13 @@
console.log("Your browser does not support WebSocket");
return null;
}
+
const socket = new WebSocket(socketUrl);
+
socket.onopen = function () {
console.log("WebSocket is now open");
};
+
socket.onmessage = (msg) => {
if (!msg.data) {
return;
@@ -21,14 +25,23 @@
messages= messages.replace('<END>', '');
const obj = JSON.parse(messages);
messages='';
+
// 璋冪敤娑堟伅澶勭悊鍑芥暟锛屽皢鏁版嵁浼犻�掔粰 Vue 缁勪欢
if (messageHandler) {
messageHandler(obj);
}
}
+
+
+
+
+
};
+
return socket;
};
+
+
export const closeWebSocket = (socket) => {
if (socket && socket.readyState === WebSocket.OPEN) {
socket.close();
diff --git a/UI-Project/src/utils/constants.js b/UI-Project/src/utils/constants.js
index 67d36d2..b551cfb 100644
--- a/UI-Project/src/utils/constants.js
+++ b/UI-Project/src/utils/constants.js
@@ -1,3 +1,4 @@
-// export const WebSocketHost = "192.168.1.199";
+// export const WebSocketHost = "192.168.1.199";
export const WebSocketHost = "10.153.19.150";
+// export const WebSocketHost = "127.0.0.1";
export const host = "88";
\ No newline at end of file
diff --git a/UI-Project/src/views/Caching/cachingbefore.vue b/UI-Project/src/views/Caching/cachingbefore.vue
index e4c67f3..36a24cc 100644
--- a/UI-Project/src/views/Caching/cachingbefore.vue
+++ b/UI-Project/src/views/Caching/cachingbefore.vue
@@ -110,7 +110,7 @@
<div style="height: 500px;">
<el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
<div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
- <el-table height="240" ref="table"
+ <el-table height="340" ref="table"
@selection-change="handleSelectionChange"
:data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
<el-table-column prop="slot" align="center" :label="$t('sorter.gridnumber')" min-width="80" />
diff --git a/UI-Project/src/views/Caching/cachingun.vue b/UI-Project/src/views/Caching/cachingun.vue
index 7b55968..8e0a488 100644
--- a/UI-Project/src/views/Caching/cachingun.vue
+++ b/UI-Project/src/views/Caching/cachingun.vue
@@ -2,159 +2,152 @@
<div style="height: 500px;">
<el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
<div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
- <el-table height="240" ref="table"
- @selection-change="handleSelectionChange"
- :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table height="340" ref="table" @selection-change="handleSelectionChange" :data="tableData"
+ :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
<el-table-column prop="slot" align="center" :label="$t('sorter.gridnumber')" min-width="80" />
<el-table-column prop="glass_id" align="center" :label="$t('sorter.glassnumber')" min-width="80" />
<el-table-column prop="width" align="center" :label="$t('sorter.width')" min-width="120" />
<el-table-column prop="height" align="center" :label="$t('sorter.height')" min-width="120" />
- <el-table-column
- align="center"
- :label="$t('sorter.startstatus')"
- min-width="80"
- prop="enable_state"
- >
- <template #default="scope">
- <el-tag
- :type="scope.row.enable_state === 1 ? 'success' : 'danger'"
- @click="toggleEnableState(scope.row)"
- >
- {{ scope.row.enable_state === 1 ? $t('sorter.start') : $t('sorter.disable') }}
- </el-tag>
- </template>
- <!-- <template #default="scope">
+ <el-table-column align="center" :label="$t('sorter.startstatus')" min-width="80" prop="enable_state">
+ <template #default="scope">
+ <el-tag :type="scope.row.enable_state === 1 ? 'success' : 'danger'" @click="toggleEnableState(scope.row)">
+ {{ scope.row.enable_state === 1 ? $t('sorter.start') : $t('sorter.disable') }}
+ </el-tag>
+ </template>
+ <!-- <template #default="scope">
<el-tag type="success" >{{ scope.row.enable_state==1?"鍚敤":"鏈惎鐢�" }}</el-tag>
</template> -->
</el-table-column>
<el-table-column fixed="right" :label="$t('sorter.operate')" align="center" width="200">
<template #default="scope">
- <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('sorter.deficiencieste') }}</el-button>
- <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('sorter.updown') }}</el-button>
+ <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('sorter.deficiencieste')
+ }}</el-button>
+ <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('sorter.updown') }}</el-button>
</template>
- </el-table-column>
+ </el-table-column>
</el-table>
</div>
</el-card>
- <div class="awatch">
- <img src="../../assets/woshihuancun.png" alt="" style="width: 70%;height: 90%;margin-left: 200px;margin-top: 20px;position: relative;">
- <div style="position: relative; width: 500px;height: 95px;margin-top: -165px;margin-left: 450px;">
- <div
- v-for="(rect, index) in adjustedRects"
- :key="rect"
- :style="{ position: 'absolute',
- top: `${rect.id}px`, left: `10px`, width: `${rect.width}px`, height: `5px`,
+ <div class="awatch">
+ <img src="../../assets/woshihuancun.png" alt=""
+ style="width: 70%;height: 90%;margin-left: 200px;margin-top: 20px;position: relative;">
+ <div style="position: relative; width: 500px;height: 95px;margin-top: -165px;margin-left: 450px;">
+ <div v-for="(rect, index) in adjustedRects" :key="rect" :style="{
+ position: 'absolute',
+ top: `${rect.id}px`, left: `10px`, width: `${rect.width}px`, height: `5px`,
backgroundColor: '#409EFF'
- }"
- >
+ }">
+ </div>
+ </div>
</div>
</div>
-</div>
-</div>
</template>
<script setup>
-import {Search,Lock,Avatar} from "@element-plus/icons-vue";
-import {reactive} from "vue";
-import {useRouter} from "vue-router"
+import { Search, Lock, Avatar } from "@element-plus/icons-vue";
+import { reactive } from "vue";
+import { useRouter } from "vue-router"
const router = useRouter()
const adda = ref(false)
-import { WebSocketHost ,host} from '@/utils/constants'
+import { WebSocketHost, host } from '@/utils/constants'
import request from "@/utils/request"
-import { ref, onMounted , onBeforeUnmount,onUnmounted} from "vue";
+import { ref, onMounted, onBeforeUnmount, onUnmounted } from "vue";
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
// import { ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
// import LanguageMixin from './lang/LanguageMixin'
-
+
import { useI18n } from 'vue-i18n'
- const { t } = useI18n()
+const { t } = useI18n()
// import i18n from '@/i18n';
-const tableData = ref([])
+const tableData = reactive([]);
const slot = ref('')
const adjustedRects = ref([]);
-
-onMounted(async () => {
- try {
- const response = await request.get('/unLoadGlass/downStorage/selectStorageCage'); // 鏇挎崲涓轰綘鐨凙PI绔偣
- if (response.code === 200) {
- const rawRects = response.data; // 璁剧疆鐭╁舰鏁版嵁
- tableData.value = response.data
- console.log(response.data);
- adjustedRects.value = rawRects.map(rect => ({
- ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�
- width: rect.width * 0.5 ,
- id: rect.id * 10,
- }));
- console.log(adjustedRects.value);
- } else {
- ElMessage.warning(res.msg)
- }
- } catch (error) {
- // console.error('Error fetching rects :', error);
- }
-});
-const open = async(row) => {
+
+onMounted(async () => {
try {
- const confirmResult = await ElMessageBox.confirm(
- t('sorter.information'),
- t('sorter.prompt'),
- {
- confirmButtonText: t('sorter.yes'),
+ const response = await request.get('/unLoadGlass/downStorage/selectStorageCage'); // 鏇挎崲涓轰綘鐨凙PI绔偣
+ if (response.code === 200) {
+ const rawRects = response.data; // 璁剧疆鐭╁舰鏁版嵁
+ tableData.value = response.data
+ console.log(response.data);
+ adjustedRects.value = rawRects.map(rect => ({
+ ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�
+ width: rect.width * 0.5,
+ id: rect.id * 10,
+ }));
+ console.log(adjustedRects.value);
+ } else {
+ ElMessage.warning(res.msg)
+ }
+ } catch (error) {
+ // console.error('Error fetching rects :', error);
+ }
+});
+const open = async (row) => {
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t('sorter.information'),
+ t('sorter.prompt'),
+ {
+ confirmButtonText: t('sorter.yes'),
cancelButtonText: t('sorter.cancel'),
- type: 'warning',
- }
- );
- if (confirmResult === 'confirm') {
+ type: 'warning',
+ }
+ );
+ if (confirmResult === 'confirm') {
// 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
- var url="/unLoadGlass/downStorage/deleteDownStorageCage?downStorageCageId="+row.id;
+ var url = "/unLoadGlass/downStorage/deleteDownStorageCage";
console.log(url);
const response = await request.post(url, {
- esdId: row.esdId
+ glassId: row.glass_id,
+ state: 9,
+ line: 1001,
+ workingProcedure: '纾ㄨ竟鍓嶇悊鐗囩',
})
if (response.code === 200) {
ElMessage.success(response.message);
- } else {
- // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛
+ } else {
+ // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛
ElMessage.error(response.message);
- // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
- }
- }
- }
- catch (error) {
- // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
- console.error('鍙戠敓閿欒:', error);
+ // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
+ }
}
-};
+ }
+ catch (error) {
+ // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
+ console.error('鍙戠敓閿欒:', error);
+}
+};
// 浜哄伐涓嬬墖
-const opena = async(row) => {
+const opena = async (row) => {
try {
- const confirmResult = await ElMessageBox.confirm(
- t('sorter.infor'),
- t('sorter.prompt'),
- {
- confirmButtonText: t('sorter.yes'),
+ const confirmResult = await ElMessageBox.confirm(
+ t('sorter.infor'),
+ t('sorter.prompt'),
+ {
+ confirmButtonText: t('sorter.yes'),
cancelButtonText: t('sorter.cancel'),
- type: 'warning',
- }
- );
+ type: 'warning',
+ }
+ );
if (confirmResult === 'confirm') {
const response = await request.post("/unLoadGlass/downGlassTask/generateOutGlassTask", {
glassId: row.glass_id
})
- if (response.code === 200) {
- ElMessage.success(response.message);
- } else {
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
// 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛
- ElMessage.error(response.message);
+ ElMessage.error(response.message);
// alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
- }
- }
- }
- catch (error) {
+ }
+ }
+ }
+ catch (error) {
// 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
- console.error('鍙戠敓閿欒:', error);
- }
-};
+ console.error('鍙戠敓閿欒:', error);
+ }
+};
// const open = async(row) => {
// const { t } = useI18n();
// try {
@@ -184,23 +177,23 @@
// }
// }
// }
-
-
+
+
// catch (error) {
// // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
// console.error('鍙戠敓閿欒:', error);
// }
// };
-const toggleEnableState = async (row) => {
- const newState = row.enable_state === 1 ? 0 : 1;
+const toggleEnableState = async (row) => {
+ const newState = row.enable_state === 1 ? 0 : 1;
// 鍙戦�佽姹傚埌鍚庣鏇存柊鐘舵�侊紙杩欓噷鐪佺暐浜嗗疄闄呯殑璇锋眰閫昏緫锛�
- const response = await request.post('/unLoadGlass/downStorage/updateDownStorageCage', { id: row.id, enableState: newState });
+ const response = await request.post('/unLoadGlass/downStorage/updateDownStorageCage', { id: row.id, enableState: newState });
if (response.code === 200) {
- ElMessage.success(response.message);
- } else {
- ElMessage.error(response.message);
- }
- row.enable_state = newState;
+ ElMessage.success(response.message);
+ } else {
+ ElMessage.error(response.message);
+ }
+ row.enable_state = newState;
};
@@ -210,48 +203,60 @@
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
const handleMessage = (data) => {
// 鏇存柊 tableData 鐨勬暟鎹�
- tableData.value = data.params2[0]
- // tableData.splice(0, tableData.length, ...data.params2[0]);
+ tableData.splice(0, tableData.length, ...data.params2[0]);
// tableData.value = data.params[0]
// adjustedRects.value = data.EdgStorageCageinfos[0]
- adjustedRects.value = data.params2[0].map(rect => ({
- ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�
- width: rect.width * 0.5 ,
- id: rect.id * 10,
- }));
+ adjustedRects.value = data.params2[0].map(rect => ({
+ ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�
+ width: rect.width * 0.5,
+ id: rect.id * 10,
+ }));
};
onMounted(() => {
socket = initializeWebSocket(socketUrl, handleMessage);
});
- onUnmounted(() => {
- if (socket) {
+onUnmounted(() => {
+ if (socket) {
closeWebSocket(socket);
- }
- });
+ }
+});
onBeforeUnmount(() => {
console.log("鍏抽棴浜�")
closeWebSocket();
});
</script>
<style scoped>
-
-#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
-#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
-#dialog-footer{
+#dt {
+ display: block;
+ float: left;
+ line-height: 20px;
+ margin-left: 100px;
+}
+
+#dta {
+ display: block;
+ float: left;
+ line-height: 20px;
+ margin-left: 80%;
+}
+
+#dialog-footer {
text-align: center;
margin-top: -15px;
}
-#message{
+
+#message {
text-align: center;
align-items: center;
color: black;
- width: 200px;
- height: 100px;
- background-color: #337ecc;
- margin-left: 28%;
+ width: 200px;
+ height: 100px;
+ background-color: #337ecc;
+ margin-left: 28%;
}
-.awatch{
+
+.awatch {
height: 460px;
width: 1500px;
max-width: 100%;
diff --git a/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue b/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue
index c41ce56..7a0d18c 100644
--- a/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue
+++ b/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue
@@ -4,7 +4,7 @@
<div
slot="header"
class="clearfix"
- style="display: flex; align-items: center"
+ style="display: flex; align-items: center;margin-top: -20px;"
>
<!-- 宸︿晶鎸夐挳缁� -->
<div>
@@ -16,9 +16,8 @@
>
<el-button type="success" size="mini">鍚婅浣嶅叆搴�</el-button>
</div>
-
<!-- 鍙充晶閫夋嫨妗� -->
- <el-form-item style="margin-top: 15px; width: 150px">
+ <el-form-item style="margin-top: 15px; width: 150px;margin-left: 10px;">
<el-select v-model="formData2.dzw" placeholder="璇烽�夋嫨鍚婅浣�">
<el-option label="鍚婅浣�1" value="鍚婅浣�1"></el-option>
<el-option label="鍚婅浣�2" value="鍚婅浣�2"></el-option>
diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue
index 59982e5..d973668 100644
--- a/UI-Project/src/views/Identify/identify.vue
+++ b/UI-Project/src/views/Identify/identify.vue
@@ -2,23 +2,18 @@
<div style="display: flex;">
<el-input v-model="inputValue" style="margin-left: 15px;margin-top: 10px;width: 240px" placeholder="璇疯緭鍏ュ伐绋嬪彿" @blur="handleBlur"/>
<el-pagination
- v-model:current-page="currentPage3"
- v-model:page-size="pageSize3"
+ v-model:current-page="currentPage"
+ :page-size="pageSize"
:size="size"
:disabled="disabled"
- :background="background"
layout="prev, pager, next, jumper"
- :total="1000"
- @size-change="handleSizeChange"
+ :total="totalPages"
@current-change="handleCurrentChange"
/>
</div>
- <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
- <el-scrollbar height="550px" >
- <div id="app" style="margin-top: 20px;">
- <!-- <div
- :style="{ width: `${olWidth}px`, height: `${olHeight}px`,position: 'relative',}"
- > -->
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading">
+ <el-scrollbar height="550px" width="1200px" style="background-color: #e9e9eb;">
+ <div style="position: relative;">
<div
v-for="(rect, index) in adjustedRects"
:key="rect.glass_id"
@@ -32,13 +27,13 @@
<!-- 绠ご -->
<!-- <div id="arrow"></div>
<div id="line"></div> -->
- <!-- <div class="centered-text" >NG24030401B01</div> -->
<div class="centered-text">
- <div>{{ rect.process_id }}</div>
- <div style="margin-top: 50px;margin-left: -85px;">{{ rect.widtha }}*{{ rect.heighta }}</div>
+ <div>{{ rect.glass_id }}</div>
+ <div>{{ rect.widtha }}*{{ rect.heighta }}</div>
</div>
</div>
- <!-- 鐐瑰嚮寮瑰嚭 -->
+ </div>
+ </el-scrollbar>
<el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;">
<el-button type="warning" plain :icon="Delete" @click="handleDamage(currentGlassId)" style="width: 140px;margin-left: 10px;">
{{ $t('order.dilapidation') }}
@@ -47,15 +42,12 @@
<el-icon class="el-icon--right"><Upload /></el-icon>
{{ $t('order.Takeaway') }}</el-button>
</el-dialog>
- </div>
- <!-- </div> -->
- </el-scrollbar>
</el-card>
</template>
<script setup lang="ts">
import { Delete, Upload } from '@element-plus/icons-vue'
import { ElMessage, ElMessageBox } from 'element-plus'
-import { ref, onMounted, onBeforeUnmount,onUnmounted,watchEffect } from 'vue';
+import { ref, onMounted, onBeforeUnmount,onUnmounted, computed } from 'vue';
import request from "@/utils/request"
import { WebSocketHost ,host} from '@/utils/constants'
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
@@ -65,11 +57,18 @@
const blind = ref(false)
const olWidth = ref();
const olHeight = ref();
-const process_id = ref(); // 鐢ㄤ簬瀛樺偍process_id鐨勫搷搴斿紡寮曠敤
const glass_id = ref();
const inputValue = ref('');
const currentGlassId = ref(null); // 瀛樺偍褰撳墠鐐瑰嚮鐭╁舰鐨� glass_id
const adjustedRects = ref([]);
+const raw = ref([]);
+let webSocket: WebSocket | null = null;
+const totalPages = ref(0);
+const pageSize = ref(1);
+const currentPage = ref(1);
+const disabled = false;
+const size = 'small';
+const rawData = ref([]);
// const handleBind = (row) => {
// blind.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
// };
@@ -78,42 +77,6 @@
currentGlassId.value = glassId;
blind.value = true;
}
-// onMounted(async () => {
-// try {
-// const response = await request.post('/cacheGlass/taskCache/currentCutTerritory'); // 鏇挎崲涓轰綘鐨凙PI绔偣
-// if (response.code === 200) {
-// // const process_id = response.data[0].process_id
-// const rawRects = response.data; // 璁剧疆鐭╁舰鏁版嵁
-// console.log(response.data);
-// const { olWidth: newolWidth, olHeight: newolHeight, process_id: newprocess_id ,glass_id:newglass_id } = response.data; // 鑾峰彇灏哄
-// olWidth.value = newolWidth; // 璁剧疆瀹瑰櫒瀹藉害
-// olHeight.value = newolHeight; // 璁剧疆瀹瑰櫒楂樺害
-// process_id.value = newprocess_id;
-// glass_id.value = newglass_id;
-
-// adjustedRects.value = rawRects.map(rect => ({
-// ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�
-// x_axis: (rect.x_axis*100) * 0.003, // 灏唜鍊奸櫎浠�3
-// y_axis: (rect.y_axis*100) * 0.003,
-// width: (rect.width*100) * 0.002 ,
-// widtha: rect.width ,
-// heighta: rect.height ,
-// height:( rect.height*100) * 0.002 ,
-// glass_state: rect.glass_state
-// }));
-// console.log(adjustedRects.value);
-
-
-// // console.log( (rect.width*100) / 300 );
-// } else {
-// // console.error('Failed to fetch rectangles from API.');
-// console.error('Failed to fetch rects from API.');
-// }
-// } catch (error) {
-// // console.error('Error fetching rectangles :', error);
-// console.error('Error fetching rects :', error);
-// }
-// });
// 鐮存崯
const handleDamage = async () => {
try {
@@ -121,16 +84,16 @@
// console.log(url);
// const response = await request.post(url)
const response = await request.post('/cacheGlass/taskCache/identControls', {
- identId: currentGlassId.value,
- controlsId: 201,
+ glassId: currentGlassId.value,
+ state: 8,
line: 1001,
- machine: '璇嗗埆',
+ workingProcedure: '璇嗗埆',
})
if (response.code == 200) {
ElMessage.success(response.message);
// window.location.reload()
blind.value = false;
- updateRectStatus(currentGlassId.value, 201);
+ updateRectStatus(currentGlassId.value, 8);
} else {
// 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
ElMessage.error(response.msg);
@@ -148,17 +111,17 @@
// console.log(url);
// const response = await request.post(url)
const response = await request.post('/cacheGlass/taskCache/identControls', {
- identId: currentGlassId.value,
- controlsId: 200,
+ glassId: currentGlassId.value,
+ state: 9,
line: 1001,
- machine: '璇嗗埆',
+ workingProcedure: '璇嗗埆',
})
if (response.code == 200) {
// 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
ElMessage.success(response.message);
// window.location.reload()
blind.value = false;
- updateRectStatus(currentGlassId.value, 200);
+ updateRectStatus(currentGlassId.value, 9);
} else {
// 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
ElMessage.error(response.msg);
@@ -170,41 +133,53 @@
}
}
const handleBlur = async () => {
- if (inputValue.value !== '') {
- try {
- var url="/cacheGlass/taskCache/cutTerritory?current="+inputValue.value;
- const response = await request.post(url)
- if (response.data && response.data.currentCutTerritory) {
- // 鍋囪杩斿洖鐨勬暟鎹渶瑕佽皟鏁村潗鏍囧拰灏哄
- adjustedRects.value = response.data.currentCutTerritory.map(rect => ({
- ...rect,
- x_axis: 1360 - (rect.x_axis + rect.width) * 0.37,
- y_axis: (rect.y_axis * 100) * 0.003,
- width: (rect.width * 100) * 0.002,
- height: (rect.height * 100) * 0.002,
- widtha: rect.width ,
- heighta: rect.height ,
- glass_state: rect.glass_state
- }));
+ if (inputValue.value) {
+ var url="/cacheGlass/taskCache/cutTerritory?current="+inputValue.value;
+ const response = await request.post(url)
+ if (response.code === 200) {
+ console.log(response.data);
+
+ const rawRects = response.data[0];
+ rawData.value = response.data;
+ totalPages.value = rawData.value.length;
+ const scaleFactor = 1621.78/6000;
+ adjustedRects.value = rawRects.map(rect => ({
+ ...rect,
+ x_axis: (6000 -(rect.x_axis + rect.width)) * scaleFactor,
+ y_axis: rect.y_axis * 0.17,
+ width: rect.width * scaleFactor ,
+ widtha: rect.width ,
+ heighta: rect.height ,
+ height: rect.height * 0.165 ,
+ glass_state: rect.glass_state
+ }));
+ // 濡傛灉WebSocket宸茶繛鎺ワ紝鍒欏叧闂�
+ if (webSocket) {
+ webSocket.close();
+ webSocket = null;
}
- } catch (error) {
- console.error('璇锋眰鏁版嵁澶辫触:', error);
+ currentPage.value = 1;
}
- }
-};
-// const handleBlur = async () => {
-// if (inputValue.value !=''){
-// try {
-// var url="/cacheGlass/taskCache/cutTerritory?current="+inputValue.value;
-// const response = await request.post(url)
-// console.log(response.data.length);
-// if (response.code == 200) {
-// adjustedRects.value = response.data
-// ElMessage.success(response.message);
-// } else {
-// ElMessage.error(response.msg);
-// }
-// }
+ } else{
+ connectWebSocket();
+ }
+};
+const handleCurrentChange = (val: number) => {
+ currentPage.value = val;
+ const page = currentPage.value - 1
+ const scaleFactor = 1621.78/6000;
+ adjustedRects.value = rawData.value[page]?.map(rect => ({
+ // adjustedRects.value = rawRects.map(rect => ({
+ ...rect,
+ x_axis: (6000 -(rect.x_axis + rect.width)) * scaleFactor,
+ y_axis: rect.y_axis * 0.17,
+ width: rect.width * scaleFactor ,
+ widtha: rect.width ,
+ heighta: rect.height ,
+ height: rect.height * 0.165 ,
+ glass_state: rect.glass_state
+ }));
+};
function getRectColor(state: number): string {
switch (state) {
case 0:
@@ -215,12 +190,12 @@
return '#b3e19d';
case 120:
return '#f89898';
- case 200:
- return 'lightblue';
- case 201:
+ case 8:
+ return '#911005';
+ case 9:
return '#f3d19e';
- default:
- return '#911005'; // 榛樿棰滆壊
+ // default:
+ // return '#911005'; // 榛樿棰滆壊
}
}
// 鏇存柊鐭╁舰鐘舵��
@@ -231,38 +206,45 @@
}
});
}
-let socket = null;
+const connectWebSocket = () => {
+ if (!webSocket) {
const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlass`;
-const handleMessage = (data) => {
- // adjustedRects.value = data.currentCutTerritory[0]
- adjustedRects.value = data.currentCutTerritory[0].map(rect => ({
+ webSocket = new WebSocket(socketUrl);
+ webSocket.onmessage = (event) => {
+ const data = JSON.parse(event.data);
+ const scaleFactor = 1621.78/6000;
+ adjustedRects.value = data.currentCutTerritory[0].map(rect => ({
...rect,
- x_axis: 1360 -(rect.x_axis + rect.width) * 0.37,
- // x_axis: (rect.x_axis*100) * 0.003,
- y_axis: (rect.y_axis*100) * 0.003,
- width: (rect.width*100) * 0.002 ,
+ x_axis: (6000 -(rect.x_axis + rect.width)) * scaleFactor,
+ y_axis: rect.y_axis * 0.17,
+ width: rect.width * scaleFactor ,
widtha: rect.width ,
heighta: rect.height ,
- height:( rect.height*100) * 0.002 ,
+ height: rect.height * 0.165 ,
glass_state: rect.glass_state
- }));
-};
-onMounted(() => {
- socket = initializeWebSocket(socketUrl, handleMessage);
-});
- onUnmounted(() => {
- if (socket) {
- closeWebSocket(socket);
- }
- });
- watchEffect(() => {
- if (inputValue.value === '') {
- handleMessage();
+ }));
+ };
+ webSocket.onerror = (error) => {
+ console.error('WebSocket Error:', error);
+ };
+ webSocket.onclose = () => {
+ console.log('WebSocket Connection Closed');
+ // 鍙互閫夋嫨閲嶆柊杩炴帴
+ };
}
-});
-onBeforeUnmount(() => {
- console.log("鍏抽棴浜�")
- closeWebSocket();
+};
+
+onMounted(() => {
+ // 鍒濆鏃讹紝濡傛灉杈撳叆妗嗕负绌猴紝鍒欒繛鎺ebSocket
+ if (!inputValue.value) {
+ connectWebSocket();
+ }
+});
+
+onUnmounted(() => {
+ if (webSocket) {
+ webSocket.close();
+ }
});
</script>
@@ -273,11 +255,12 @@
}
.centered-text {
/* 璁剧疆鏂囧瓧灞呬腑鏍峰紡 */
- display: flex;
+ /* display: flex; */
justify-content: center;
- align-items: center;
+ align-items: center;
height: 100%; /* 纭繚div鍗犳嵁鏁翠釜鐭╁舰鐨勯珮搴� */
-}
+ font-size: small;
+}
#rect {
position: relative; /* 纭繚绠ご鍙互鐩稿浜庣煩褰㈠畾浣� */
/* 鍏朵粬鏍峰紡 */
diff --git a/UI-Project/src/views/LoginView.vue b/UI-Project/src/views/LoginView.vue
index 7f7bb7d..6431f47 100644
--- a/UI-Project/src/views/LoginView.vue
+++ b/UI-Project/src/views/LoginView.vue
@@ -61,12 +61,10 @@
.then((res) => {
if (res['code'] == 200) {
store.$patch({user: res.data})
- console.log(res.data)
-
router.push('/main')
ElMessage.success(t('login.loginSuccessful'))
} else {
- ElMessage.error(res['msg'])
+ // ElMessage.error(res['msg'])
store.$patch({
user: null,
})
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index f0b25de..1b332f2 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -3,7 +3,7 @@
import {reactive} from "vue";
import {useRouter} from "vue-router"
import request from "@/utils/request"
-import { ref, onMounted, onBeforeUnmount,onUnmounted } from 'vue';
+import { ref, onMounted, onBeforeUnmount } from 'vue';
import { WebSocketHost ,host} from '@/utils/constants'
import { ElMessage, ElMessageBox } from 'element-plus'
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
@@ -22,13 +22,12 @@
const adjustedRectsb = ref([]);
const currentGlassId = ref(null);
const currenttemperingFeedSequence = ref(null);
-let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`;
const handleMessage = (data) => {
// 杩涚倝涓�
if(data.intoGlass!=null){
adjustedRects1.value = data.intoGlass[0].map(rect => {
- console.log( adjustedRects1.value);
+ const scaleFactor = 794.67/5087;
let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
let newX = rect.yCoordinate;
if (rect.width < rect.height) {
@@ -39,39 +38,26 @@
heighta = rect.height;
}
if (rect.angle === 0) {
- adjustedWidth = widtha * 0.12;
+ adjustedWidth = widtha * scaleFactor;
adjustedHeight = heighta * 0.1;
- adjustedWidtha = widtha;
- adjustedHeighta = heighta;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
newX = 5087 - (rect.yCoordinate + widtha);
} else {
- adjustedWidth = heighta * 0.12;
+ adjustedWidth = heighta * scaleFactor;
adjustedHeight = widtha * 0.1;
- adjustedWidtha = heighta;
- adjustedHeighta = widtha;
- newX = 5087 - (rect.yCoordinate + heighta);
- }
- // if (rect.angle === 0) {
- // adjustedWidth = heighta * 0.12;
- // adjustedHeight = widtha * 0.1;
- // adjustedWidtha = heighta;
- // adjustedHeighta = widtha;
- // newX = 5087 - (rect.xCoordinate + heighta);
- // } else {
- // adjustedWidth = widtha * 0.12;
- // adjustedHeight = heighta * 0.1;
- // adjustedWidtha = widtha;
- // adjustedHeighta = heighta;
- // newX = 5087 - (rect.xCoordinate + widtha);
- // }
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
+ newX = 5087 - (rect.yCoordinate + heighta);
+ }
return {
...rect,
- xcoordinate: newX * 0.12,
+ xcoordinate: newX * scaleFactor,
ycoordinate: rect.xCoordinate * 0.1,
width: adjustedWidth,
height: adjustedHeight,
- widtha: adjustedWidtha,
- heighta: adjustedHeighta,
+ widtha: rect.width,
+ heighta: rect.height,
};
});
}else{
@@ -79,7 +65,7 @@
}
if(data.intoGlass2!=null){
adjustedRects2.value = data.intoGlass2[0].map(rect => {
- console.log( adjustedRects2.value);
+ const scaleFactor = 794.67/5087;
let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
let newX = rect.yCoordinate;
if (rect.width < rect.height) {
@@ -90,39 +76,26 @@
heighta = rect.height;
}
if (rect.angle === 0) {
- adjustedWidth = widtha * 0.12;
+ adjustedWidth = widtha * scaleFactor;
adjustedHeight = heighta * 0.1;
- adjustedWidtha = widtha;
- adjustedHeighta = heighta;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
newX = 5087 - (rect.yCoordinate + widtha);
} else {
- adjustedWidth = heighta * 0.12;
+ adjustedWidth = heighta * scaleFactor;
adjustedHeight = widtha * 0.1;
- adjustedWidtha = heighta;
- adjustedHeighta = widtha;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
newX = 5087 - (rect.yCoordinate + heighta);
- }
- // if (rect.angle === 0) {
- // adjustedWidth = heighta * 0.12;
- // adjustedHeight = widtha * 0.1;
- // adjustedWidtha = heighta;
- // adjustedHeighta = widtha;
- // newX = 5087 - (rect.xCoordinate + heighta);
- // } else {
- // adjustedWidth = widtha * 0.12;
- // adjustedHeight = heighta * 0.1;
- // adjustedWidtha = widtha;
- // adjustedHeighta = heighta;
- // newX = 5087 - (rect.xCoordinate + widtha);
- // }
+ }
return {
...rect,
- xcoordinate: newX * 0.12,
+ xcoordinate: newX * scaleFactor,
ycoordinate: rect.xCoordinate * 0.1,
width: adjustedWidth,
height: adjustedHeight,
- widtha: adjustedWidtha,
- heighta: adjustedHeighta,
+ widtha: rect.width,
+ heighta: rect.height,
};
});
}else{
@@ -131,6 +104,7 @@
// 杩涚倝鍓�
if(data.waitingGlass!=null){
adjustedRectsa.value = data.waitingGlass[0].map(rect => {
+ const scaleFactor = 1621.78/5190;
let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
let newX = rect.yCoordinate;
if (rect.width < rect.height) {
@@ -141,26 +115,26 @@
heighta = rect.height;
}
if (rect.angle === 0) {
- adjustedWidth = widtha * 0.24;
+ adjustedWidth = widtha * scaleFactor;
adjustedHeight = heighta * 0.16;
- adjustedWidtha = widtha;
- adjustedHeighta = heighta;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
newX = 5190 - (rect.yCoordinate + widtha);
} else {
- adjustedWidth = heighta * 0.24;
+ adjustedWidth = heighta * scaleFactor;
adjustedHeight = widtha * 0.16;
- adjustedWidtha = heighta;
- adjustedHeighta = widtha;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
newX = 5190 - (rect.yCoordinate + heighta);
}
return {
...rect,
- x: newX * 0.24,
+ x: newX * scaleFactor,
y: rect.xCoordinate * 0.16,
width: adjustedWidth,
height: adjustedHeight,
- widtha: adjustedWidtha,
- heighta: adjustedHeighta,
+ widtha: rect.width,
+ heighta: rect.height,
};
});
}else{
@@ -169,7 +143,8 @@
// 宸插嚭鐐�
if(data.outGlass!=null){
adjustedRectsb.value = data.outGlass[0].map(rect => {
- let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
+ const scaleFactor = 1621.78/5190;
+ let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
let newX = rect.yCoordinate;
if (rect.width < rect.height) {
widtha = rect.height;
@@ -179,26 +154,26 @@
heighta = rect.height;
}
if (rect.angle === 0) {
- adjustedWidth = widtha * 0.24;
+ adjustedWidth = widtha * scaleFactor;
adjustedHeight = heighta * 0.16;
- adjustedWidtha = widtha;
- adjustedHeighta = heighta;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
// newX = 5190 - (rect.yCoordinate + widtha);
} else {
- adjustedWidth = heighta * 0.24;
+ adjustedWidth = heighta * scaleFactor;
adjustedHeight = widtha * 0.16;
- adjustedWidtha = heighta;
- adjustedHeighta = widtha;
+ // adjustedWidtha = heighta;
+ // adjustedHeighta = widtha;
// newX = 5190 - (rect.yCoordinate + heighta);
}
return {
...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�
- x: newX * 0.24,
+ x: newX * scaleFactor,
y: rect.xCoordinate * 0.16,
width: adjustedWidth,
height: adjustedHeight,
- widtha: adjustedWidtha,
- heighta: adjustedHeighta,
+ widtha: rect.width,
+ heighta: rect.height,
};
});
}else{
@@ -206,13 +181,8 @@
}
};
onMounted(() => {
- socket = initializeWebSocket(socketUrl, handleMessage);
+ initializeWebSocket(socketUrl, handleMessage);
});
- onUnmounted(() => {
- if (socket) {
- closeWebSocket(socket);
- }
- });
function updateRectColors() {
adjustedRectsa.value.forEach(rect => {
if (rect.glassId === glassId) {
@@ -408,7 +378,7 @@
</div>
</el-card>
</div>
-
+
<el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;">
<el-button type="warning" plain :icon="Delete" @click="handleDamage" style="width: 140px;margin-left: 10px;">
{{ $t('order.dilapidation') }}
@@ -422,8 +392,8 @@
background-color: #529b2e;
text-align: center;
display: inline-block;
- /* align-items:center; */
- /* justify-content:center; */
+ /* align-items:center; */
+ /* justify-content:center; */
margin-left: 20px;
}
#boxb{
@@ -432,16 +402,16 @@
/* display:flex; */
text-align: center;
display: inline-block;
- align-items:center;
- justify-content:center;
+ align-items:center;
+ justify-content:center;
margin-left: 20px;
}
#box{
border: 1px solid black;
background-color: #337ecc;
display:flex;
- align-items:center;
- justify-content:center;
+ align-items:center;
+ justify-content:center;
}
#home-card {
width: 100%;
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
index 5164c6a..8f28ec9 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
@@ -36,7 +36,8 @@
// 鏇存柊 tableData 鐨勬暟鎹�
if(data.overGlass!=null){
adjustedRects.value = data.overGlass[0].map(rect => {
- let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;
+ const scaleFactor = 1621.78/5190;
+ let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;
let newX = rect.yCoordinate;
if (rect.width < rect.height) {
widtha = rect.height;
@@ -46,34 +47,34 @@
heighta = rect.height;
}
if (rect.angle === 0) {
- adjustedWidth = widtha * 0.24;
+ adjustedWidth = widtha * scaleFactor;
adjustedHeight = heighta * 0.16;
- adjustedWidtha = widtha;
- adjustedHeighta = heighta;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
// newX = 5190 - (rect.yCoordinate + rect.width);
} else {
- adjustedWidth = heighta * 0.24;
+ adjustedWidth = heighta * scaleFactor;
adjustedHeight = widtha * 0.16;
- adjustedWidtha = heighta;
- adjustedHeighta = widtha;
+ // adjustedWidtha = heighta;
+ // adjustedHeighta = widtha;
// newX = 5190 - (rect.yCoordinate + rect.height);
}
return {
...rect,
- xcoordinate: newX * 0.24,
+ xcoordinate: newX * scaleFactor,
ycoordinate: rect.xCoordinate * 0.16,
width: adjustedWidth,
height: adjustedHeight,
- widtha: adjustedWidtha,
- heighta: adjustedHeighta,
+ widtha: rect.width,
+ heighta: rect.height,
};
});
}
};
function updateRectColors() {
- adjustedRectsa.value.forEach(rect => {
+ adjustedRects.value.forEach(rect => {
if (rect.glassId === glassId) {
- rect.state = 5;
+ rect.state = 8;
}
});
}
@@ -83,7 +84,7 @@
return '#eebe77';
case 4:
return '#CD6090';
- case 5:
+ case 8:
return '#911005';
}
}
@@ -99,7 +100,7 @@
glassId: currentGlassId.value,
// temperingFeedSequence: currenttemperingFeedSequence.value,
line: 4001,
- status: 2,
+ status: 8,
workingProcedure: '閽㈠寲',
})
if (response.code == 200) {
diff --git a/UI-Project/src/views/ReportWork/reportWork.vue b/UI-Project/src/views/ReportWork/reportWork.vue
index 67b04ab..7b6a6e9 100644
--- a/UI-Project/src/views/ReportWork/reportWork.vue
+++ b/UI-Project/src/views/ReportWork/reportWork.vue
@@ -18,9 +18,9 @@
</el-select>
<el-select v-model="report.workingProcedure" :placeholder="$t('reportmanage.cprocess')" style="margin-left: 10px;" >
<el-option :label="$t('reportmanage.all')" value="0"></el-option>
- <el-option :label="$t('reportmanage.incise')" value="1"></el-option>
- <el-option :label="$t('reportmanage.edging')" value="2"></el-option>
- <el-option :label="$t('reportmanage.steel')" value="3"></el-option>
+ <el-option :label="$t('reportmanage.incise')" value="鍒囧壊"></el-option>
+ <el-option :label="$t('reportmanage.edging')" value="纾ㄨ竟"></el-option>
+ <el-option :label="$t('reportmanage.steel')" value="閽㈠寲"></el-option>
</el-select>
<el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('reportmanage.inquire') }}</el-button>
<el-button type="success" style="margin-left: 10px;" @click="handleConfirm">{{ $t('reportmanage.signingwork') }}</el-button>
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index bcbbd2e..ad2298d 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -710,7 +710,7 @@
</div>
<el-button :disabled="!canSelectProject" style="margin-top: 5px;margin-left: 15px;" type="primary" @click="dialogFormVisible = true">{{ $t('basicData.selectproject') }}</el-button>
- <el-button :style="{ backgroundColor: canStartLoading ? 'green' : 'initial',color: canStartLoading ? 'white' : 'black', }" style="margin-top: 5px;margin-left: 20px;" @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
+ <el-button :disabled="!canSelectProject" :style="{ backgroundColor: canStartLoading ? 'green' : 'initial',color: canStartLoading ? 'white' : 'black', }" style="margin-top: 5px;margin-left: 20px;" @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
<el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
<el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button>
<!-- <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="danger" @click="handleBindb">鍋滄浠诲姟</el-button> -->
@@ -718,7 +718,7 @@
<el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading">
<div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
<el-table
- height="150"
+ height="350"
ref="table"
:header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
:data="tableData"
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 9837905..75c4a83 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -40,7 +40,6 @@
const adjustedRectsh = ref([]);
const currentRow = reactive({}); // 褰撳墠琛岀殑鏁版嵁
const inputValuesa = reactive({});
-
const add = ref(false)
const flowCardId = ref('');
const gap = ref('');
@@ -76,7 +75,8 @@
const cell8=ref(true);
const cell9=ref(true);
const selectedRow = ref(null); // 瀛樺偍閫変腑鐨勮鏁版嵁
-
+const temperingtotal = ref(0);
+const glasstotal = ref(0);
// 褰撳墠椤电爜鍜屾瘡椤垫樉绀虹殑鏉℃暟
const currentPage = ref(1);
const itemsPerPage = computed(() => {
@@ -271,7 +271,7 @@
}
);
if (confirmResult === 'confirm') {
- const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/damageBigStorageCageDetails?status="+0, row)
+ const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/damageBigStorageCageDetails?status="+8, row)
if (response.code === 200) {
tableData.value = response.data;
ElMessage.success(response.message);
@@ -296,7 +296,7 @@
}
);
if (confirmResult === 'confirm') {
- const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/damageBigStorageCageDetails?status="+1, row)
+ const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/damageBigStorageCageDetails?status="+9, row)
if (response.code === 200) {
tableData.value = response.data;
ElMessage.success(response.message);
@@ -346,7 +346,7 @@
}
);
if (confirmResult === 'confirm') {
- const response = await request.post("/cacheVerticalGlass/temperingGlassInfo/damageTemperingGlassInfo?status="+0, row)
+ const response = await request.post("/cacheVerticalGlass/temperingGlassInfo/damageTemperingGlassInfo?status="+8, row)
if (response.code === 200) {
ElMessage.success(response.message);
} else {
@@ -397,7 +397,7 @@
}
);
if (confirmResult === 'confirm') {
- const response = await request.post("/cacheVerticalGlass/temperingGlassInfo/damageTemperingGlassInfo?status="+1, row)
+ const response = await request.post("/cacheVerticalGlass/temperingGlassInfo/damageTemperingGlassInfo?status="+9, row)
if (response.code === 200) {
ElMessage.success(response.message);
} else {
@@ -525,6 +525,12 @@
if (response.code == 200) {
ElMessage.success(response.message);
tableDatagh.value = response.data
+ temperingtotal.value = response.data.length
+ let totalCount = 0;
+ response.data.forEach(item => {
+ totalCount += item.count || 0;
+ });
+ glasstotal.value = totalCount;
} else {
ElMessage.error(response.message);
}
@@ -594,7 +600,10 @@
// 鏇存柊 tableData 鐨勬暟鎹�
if(data.bigStorageCageDetailsOutTask!=null){
tableDatac.value = data.bigStorageCageDetailsOutTask[0]
+ console.log(data.bigStorageCageDetailsOutTask[0])
adjusta.value = data.bigStorageCageDetailsOutTask[0].filter(rect => rect.slot !== null && rect.slot !== undefined);
+ // console.log(data.bigStorageCageDetailsOutTask[0]);
+
} else {
tableDatac.value = '',
adjusta.value = ''
@@ -620,6 +629,7 @@
}
if(data.temperingGlassInfoList!=null){
tableDatab.value = data.temperingGlassInfoList[0]
+ console.log(tableDatab.value)
}else{
tableDatab.value = ''
}
@@ -770,7 +780,7 @@
<div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
<el-table height="100px" ref="table"
:data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="bigStorageCageOutTask.glassId" align="center" :label="$t('searchOrder.outputglassID')" min-width="120" />
+ <el-table-column prop="bigStorageCageOutTask.glassId" align="center" :label="$t('searchOrder.outputglassID')" min-width="140" />
<el-table-column prop="bigStorageCageOutTask.startSlot" align="center" :label="$t('searchOrder.startposition')" min-width="120" />
<el-table-column prop="bigStorageCageOutTask.endSlot" align="center" :label="$t('searchOrder.targetlocation')" min-width="120" />
<el-table-column prop="bigStorageCageOutTask.trainNumber" align="center" :label="$t('searchOrder.trips')" min-width="120" />
@@ -780,10 +790,10 @@
<el-tag type="success" >{{ scope.row.bigStorageCageOutTask.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}</el-tag>
</template>
</el-table-column>
- <el-table-column prop="id" align="center" :label="$t('searchOrder.tabid')" min-width="150"/>
+ <!-- <el-table-column prop="id" align="center" :label="$t('searchOrder.tabid')" min-width="150"/> -->
<el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="100"/>
<el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="100"/>
- <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="120"/>
+ <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="140"/>
<el-table-column prop="sequence" align="center" :label="$t('searchOrder.pieceingrid')" min-width="150"/>
<el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="140"/>
<el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="100"/>
@@ -793,11 +803,11 @@
<el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="100"/>
<el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="120"/>
<el-table-column prop="gap" align="center" :label="$t('searchOrder.glassgaps')" min-width="100"/>
- <el-table-column fixed="right" :label="$t('searchOrder.endtask')" align="center" width="150">
+ <!-- <el-table-column fixed="right" :label="$t('searchOrder.endtask')" align="center" width="150">
<template #default="scope">
<el-button size="mini" type="text" plain @click="finish(scope.row)">{{ $t('searchOrder.completetask') }}</el-button>
</template>
- </el-table-column>
+ </el-table-column> -->
</el-table>
</div>
</el-card>
@@ -806,7 +816,7 @@
<el-table height="100px" ref="table"
@selection-change="handleSelectionChange"
:data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="bigStorageCageFeedTask.glassId" align="center" :label="$t('searchOrder.intoglassid')" min-width="120" />
+ <el-table-column prop="bigStorageCageFeedTask.glassId" align="center" :label="$t('searchOrder.intoglassid')" min-width="140" />
<el-table-column prop="bigStorageCageFeedTask.targetSlot" align="center" :label="$t('searchOrder.targetlocation')" min-width="120" />
<!-- <el-table-column prop="task_type" align="center" label="浠诲姟绫诲瀷" min-width="120" />娌℃湁杩斿洖瀛楁 -->
<el-table-column prop="bigStorageCageFeedTask.taskState" align="center" :label="$t('searchOrder.taskstatus')" min-width="120">
@@ -815,10 +825,10 @@
</template>
</el-table-column>
<el-table-column prop="bigStorageCageFeedTask.line" align="center" :label="$t('searchOrder.line')" min-width="120" />
- <el-table-column prop="id" align="center" :label="$t('searchOrder.tabid')" min-width="150"/>
+ <!-- <el-table-column prop="id" align="center" :label="$t('searchOrder.tabid')" min-width="150"/> -->
<el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="100"/>
<el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="100"/>
- <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="120"/>
+ <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="140"/>
<el-table-column prop="sequence" align="center" :label="$t('searchOrder.pieceingrid')" min-width="150"/>
<el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="140"/>
<el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="100"/>
@@ -828,11 +838,11 @@
<el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="100"/>
<el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="120"/>
<el-table-column prop="gap" align="center" :label="$t('searchOrder.glassgaps')" min-width="100"/>
- <el-table-column fixed="right" :label="$t('searchOrder.endtask')" align="center" width="150">
+ <!-- <el-table-column fixed="right" :label="$t('searchOrder.endtask')" align="center" width="150">
<template #default="scope">
<el-button size="mini" type="text" plain @click="finish(scope.row)">{{ $t('searchOrder.completetask') }}</el-button>
</template>
- </el-table-column>
+ </el-table-column> -->
</el-table>
</div>
</el-card>
@@ -840,7 +850,7 @@
<div v-for="(item, index) in tableDatae" :key="index" id="occupy">
<el-col style="text-align:left;font-weight: bold;">#{{ item.device_id }}</el-col>
<el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
- <span>{{ $t('searchOrder.Usage') }}</span><span>{{ item.percentage }}</span>
+ <span>{{ $t('searchOrder.Usage') }}</span><span>{{ item.percentage }}%</span>
</el-col>
<hr style="width:80%;margin: 0 auto;" />
<el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
@@ -1247,7 +1257,7 @@
>
<!-- <el-table-column prop="menuName" label="浜岀骇鑿滃崟鏍�" align="center" min-width="140" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"/> -->
<el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center" min-width="130"/>
- <el-table-column prop="sequence" align="center" :label="$t('searchOrder.pieceingrid')" min-width="130" />
+ <!-- <el-table-column prop="sequence" align="center" :label="$t('searchOrder.pieceingrid')" min-width="130" /> -->
<el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="130" />
<el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="80" />
<el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="80" />
@@ -1343,9 +1353,12 @@
</div> -->
<el-table ref="table" style="margin-top: 20px;height: 500px;"
:data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="id" fixed align="center" :label="$t('searchOrder.sheetID')" min-width="150"/>
- <el-table-column prop="flowcardId" fixed align="center" :label="$t('searchOrder.processcards')" min-width="120" />
- <el-table-column prop="glassType" align="center" :label="$t('searchOrder.processcardtype')" min-width="150" />
+ <!-- <el-table-column prop="id" fixed align="center" :label="$t('searchOrder.sheetID')" min-width="150"/>
+ -->
+ <el-table-column prop="glassId" fixed align="center" :label="$t('searchOrder.glassID')" min-width="150"/>
+
+ <el-table-column prop="flowCardId" fixed align="center" :label="$t('searchOrder.processcards')" min-width="120" />
+ <!-- <el-table-column prop="glassType" align="center" :label="$t('searchOrder.processcardtype')" min-width="150" /> -->
<el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="80" />
<el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="80" />
<el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="80" />
@@ -1379,16 +1392,36 @@
</el-tag>
</template>
</el-table-column>
- <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" width="150">
+ <!-- <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" width="150">
<template #default="scope">
<el-button size="mini" type="text" plain @click="brokea(scope.row)">{{ $t('searchOrder.breakage') }}</el-button>
<el-button size="mini" type="text" plain @click="brokeb(scope.row)">{{ $t('searchOrder.takeout') }}</el-button>
<el-button size="mini" type="text" plain @click="deletea(scope.row)">{{ $t('searchOrder.delete') }}</el-button>
</template>
- </el-table-column>
+ </el-table-column> -->
</el-table>
</el-dialog>
<el-dialog v-model="dialogFormVisiblec" top="5vh" width="85%" :title="$t('searchOrder.temperingqueries')">
+ <div style="margin-bottom: 20px">
+ <el-form>
+ <el-row style="margin-top: -15px;margin-bottom: -2px;">
+ <el-col :span="4">
+ <div id="dt" style="font-size: 15px;">
+ <el-form-item :label="$t('searchOrder.temperingtotal')" style="width: 14vw">
+ {{ temperingtotal }}
+ </el-form-item>
+ </div>
+ </el-col>
+ <el-col :span="5">
+ <div id="dta" style="font-size: 15px;">
+ <el-form-item :label="$t('searchOrder.glasstotal')" style="width: 14vw">
+ {{ glasstotal }}
+ </el-form-item>
+ </div>
+ </el-col>
+ </el-row>
+ </el-form>
+ </div>
<el-table ref="table" style="margin-top: 20px;height: 500px;"
:data="tableDatagh" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
<el-table-column prop="engineer_id" fixed align="center" :label="$t('searchOrder.projectnumber')" min-width="150"/>
@@ -1420,7 +1453,7 @@
<template #footer>
<div id="dialog-footer">
<el-button type="primary" @click="handleConfirm">
- {{ $t('searchOrder.add') }}
+ {{ $t('searchOrder.makesure') }}
</el-button>
<el-button @click="dialoglea = false">{{ $t('searchOrder.cancel') }}</el-button>
</div>
diff --git a/UI-Project/src/views/StockBasicData/stockBasicData.vue b/UI-Project/src/views/StockBasicData/stockBasicData.vue
index 5135e96..2e08076 100644
--- a/UI-Project/src/views/StockBasicData/stockBasicData.vue
+++ b/UI-Project/src/views/StockBasicData/stockBasicData.vue
@@ -20,20 +20,52 @@
const requestData = {
line: 2001
};
-request.post("/cacheGlass/taskCache/selectEdgTask",{
- ...requestData,
+const timeRange = ref([])
+const selectValuesa = reactive([]);
+// request.post("/cacheGlass/taskCache/selectEdgTask",{
+// ...requestData,
-}).then((res) => {
- if (res.code == 200) {
+// }).then((res) => {
+// if (res.code == 200) {
- console.log(res.data);
- tableData.value = res.data
- console.log(res.data[0].slot);
- } else {
- ElMessage.warning(res.msg)
+// console.log(res.data);
+// tableData.value = res.data
+// console.log(res.data[0].slot);
+// } else {
+// ElMessage.warning(res.msg)
- }
- });
+// }
+// });
+
+// 纾ㄨ竟浠诲姟鏌ヨ
+const setEdgGlassInfoRequest = async () => {
+ let celllist=[]
+ let stateList=[]
+ if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+ if(selectValuesa[0]!=""){
+ celllist=[selectValuesa[0]];
+ }
+ }
+ if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+ if(selectValuesa[1]!=""){
+ stateList=[selectValuesa[1]];
+ }
+ }
+console.log(timeRange.value[0],timeRange.value[1]);
+ const response = await request.post("/cacheGlass/edgGlassTaskInfo/setEdgGlassInfoRequest", {
+ cellList: celllist,
+ stateList: stateList,
+ beginDate: timeRange.value[0],
+ endDate: timeRange.value[1],
+ })
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ ElMessage.error(response.message);
+ }
+
+}
+
// 鐮存崯
const open = async(row) => {
try {
@@ -49,10 +81,10 @@
if (confirmResult === 'confirm') {
// 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", {
- glassId: row.GlassId,
- controlsId: 300,
- line: 2001,
- machine: '鍐峰姞宸�',
+ glassId: row.glassId,
+ state: 8,
+ line: row.line,
+ workingProcedure: '鍐峰姞宸�',
})
if (response.code === 200) {
ElMessage.success(response.message);
@@ -62,9 +94,9 @@
// alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
}
}
- } catch (error) {
- // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
- console.error('鍙戠敓閿欒:', error);
+ } catch (error) {
+ // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
+ console.error('鍙戠敓閿欒:', error);
}
};
// 鎷胯蛋
@@ -82,10 +114,10 @@
if (confirmResult === 'confirm') {
// 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", {
- glassId: row.GlassId,
- controlsId: 301,
- line: 2001,
- machine: '鍐峰姞宸�',
+ glassId: row.glassId,
+ state: 9,
+ line: row.line,
+ workingProcedure: '鍐峰姞宸�',
})
if (response.code === 200) {
ElMessage.success(response.message);
@@ -105,7 +137,7 @@
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
const handleMessage = (data) => {
// 鏇存柊 tableData 鐨勬暟鎹�
- tableData.value = data.EdgTasks1[0]
+ tableData.value = data.edgTasks[0]
};
onMounted(() => {
socket = initializeWebSocket(socketUrl, handleMessage);
@@ -123,17 +155,42 @@
<template>
<div>
<el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+ <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('璇烽�夋嫨绾胯矾')" clearable style="margin-left: 20px;margin-bottom: 10px;">
+ <el-option label="纾ㄨ竟涓�绾�" value="2001"></el-option>
+ <el-option label="纾ㄨ竟浜岀嚎" value="2002"></el-option>
+ </el-select>
+
+ <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('璇烽�夋嫨鐘舵��')" clearable style="margin-left: 20px;margin-bottom: 10px;" >
+ <el-option label="鏈(杈�" value="0"></el-option>
+ <el-option label="纾ㄨ竟涓�" value="1"></el-option>
+ <el-option label="宸茬(杈�" value="2"></el-option>
+ </el-select>
+ <span class="demonstration" style="margin-left: 20px;margin-bottom: 10px;">鏃堕棿娈�</span>
+ <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" style="margin-left: 20px;margin-bottom: 10px;" value-format = "YYYY-MM-DD hh:mm:ss"
+
+ end-placeholder="缁撴潫鏃ユ湡">
+ </el-date-picker>
+ <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="setEdgGlassInfoRequest()">{{
+ $t('reportmanage.inquire')
+ }}</el-button>
+
<div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
- <el-table height="240" ref="table"
+ <el-table height="750" ref="table"
@selection-change="handleSelectionChange"
:data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="GlassId" align="center" :label="$t('workOrder.glassID')" min-width="180" />
- <el-table-column prop="Height" align="center" :label="$t('workOrder.height')" min-width="80" />
- <el-table-column prop="Width" align="center" :label="$t('workOrder.width')" min-width="120" />
- <el-table-column prop="Thickness" align="center" :label="$t('workOrder.thickness')" min-width="120" />
- <el-table-column prop="FilmsId" align="center" :label="$t('workOrder.coatingtypes')" min-width="120" />
- <el-table-column prop="SerialNumber" align="center" :label="$t('workOrder.productionsequence')" min-width="120" />
- <el-table-column prop="FlowCardId" align="center" :label="$t('workOrder.cardnumber')" min-width="120" />
+ <el-table-column prop="glassId" align="center" :label="$t('workOrder.glassID')" min-width="180" />
+ <el-table-column prop="width" align="center" :label="$t('workOrder.width')" min-width="120" />
+ <el-table-column prop="height" align="center" :label="$t('workOrder.height')" min-width="80" />
+ <el-table-column prop="thickness" align="center" :label="$t('workOrder.thickness')" min-width="120" />
+ <el-table-column prop="glassType" align="center" :label="$t('workOrder.glasstype')" min-width="120" />
+ <el-table-column prop="line" align="center" :label="$t('workOrder.line')" min-width="120" />
+ <el-table-column prop="status" :label="$t('workOrder.status')" align="center" width="200">
+ <template #default="scope">
+ {{ scope.row.status==0?"鏈(杈�":scope.row.status==1?"纾ㄨ竟涓�":"宸茬(杈�" }}
+ </template>
+ </el-table-column>
+
+
<el-table-column fixed="right" :label="$t('workOrder.operate')" align="center" width="200">
<template #default="scope">
<el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('workOrder.breakage') }}</el-button>
diff --git a/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue b/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue
index 57e6567..aef4c24 100644
--- a/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue
+++ b/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue
@@ -20,20 +20,20 @@
const requestData = {
line: 2002
};
-request.post("/cacheGlass/taskCache/selectEdgTask",{
- ...requestData,
+// request.post("/cacheGlass/taskCache/selectEdgTask",{
+// ...requestData,
-}).then((res) => {
- if (res.code == 200) {
+// }).then((res) => {
+// if (res.code == 200) {
- console.log(res.data);
- tableData.value = res.data
- console.log(res.data[0].slot);
- } else {
- ElMessage.warning(res.msg)
+// console.log(res.data);
+// tableData.value = res.data
+// console.log(res.data[0].slot);
+// } else {
+// ElMessage.warning(res.msg)
- }
- });
+// }
+// });
// 鐮存崯
const open = async(row) => {
try {
@@ -49,8 +49,8 @@
if (confirmResult === 'confirm') {
// 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", {
- glassId: row.GlassId,
- controlsId: 300,
+ glassId: row.glass_id,
+ controlsId: 8,
line: 2002,
machine: '鍐峰姞宸�',
})
@@ -82,8 +82,8 @@
if (confirmResult === 'confirm') {
// 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", {
- glassId: row.GlassId,
- controlsId: 301,
+ glassId: row.glass_id,
+ controlsId: 9,
line: 2002,
machine: '鍐峰姞宸�',
})
@@ -128,13 +128,11 @@
<el-table height="240" ref="table"
@selection-change="handleSelectionChange"
:data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="GlassId" align="center" :label="$t('workOrder.glassID')" min-width="180" />
- <el-table-column prop="Height" align="center" :label="$t('workOrder.height')" min-width="80" />
- <el-table-column prop="Width" align="center" :label="$t('workOrder.width')" min-width="120" />
- <el-table-column prop="Thickness" align="center" :label="$t('workOrder.thickness')" min-width="120" />
- <el-table-column prop="FilmsId" align="center" :label="$t('workOrder.coatingtypes')" min-width="120" />
- <el-table-column prop="SerialNumber" align="center" :label="$t('workOrder.productionsequence')" min-width="120" />
- <el-table-column prop="FlowCardId" align="center" :label="$t('workOrder.cardnumber')" min-width="120" />
+ <el-table-column prop="glass_id" align="center" :label="$t('workOrder.glassID')" min-width="180" />
+ <el-table-column prop="width" align="center" :label="$t('workOrder.width')" min-width="120" />
+ <el-table-column prop="height" align="center" :label="$t('workOrder.height')" min-width="80" />
+ <el-table-column prop="thickness" align="center" :label="$t('workOrder.thickness')" min-width="120" />
+ <el-table-column prop="glass_type" align="center" :label="$t('workOrder.glasstype')" min-width="120" />
<el-table-column fixed="right" :label="$t('workOrder.operate')" align="center" width="200">
<template #default="scope">
<el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('workOrder.breakage') }}</el-button>
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindication.vue b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
index 06aa4d0..e3d52c3 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindication.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
@@ -30,10 +30,8 @@
</div>
</div>
</template>
-
<script setup>
import { ref, watchEffect ,onMounted,onUnmounted} from 'vue';
-
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
let language = ref(localStorage.getItem('lang') || 'zh')
@@ -44,71 +42,58 @@
const racks = ref([
{ x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456',downGlassInfoList:"" } },
+ { x: 140, y: 280, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' ,downGlassInfoList:""} },
+
{ x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG12345678',downGlassInfoList:"" } },
-
- { x: 140, y: 280, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' ,downGlassInfoList:""} }
+
]);
-
watchEffect(() => {
// 瑙﹀彂鏁版嵁鍙樺寲鏃堕噸鏂版覆鏌�
});
-
-
const calculateItemXPosition = (rack, item, index) => {
if (index === 0 ) {
return rack.x;
} else if (index === 1 ) {
- return rack.x + rack.width - item.width;
- } else {
return rack.x + (rack.width - item.width) / 2;
+ } else {
+ return rack.x + rack.width - item.width;
}
};
-
const calculateItemYPosition = (rack, item, index) => {
if (index === 0 ) {
return rack.y + (rack.height - item.height) / 2;
} else if (index === 1) {
- return rack.y + (rack.height - item.height) / 2;
- } else {
return rack.y + rack.height - item.height;
+ } else {
+ return rack.y + (rack.height - item.height) / 2;
}
};
-
-
const fetchFlowCardId = async () => {
try {
const response = await request.get('unLoadGlass/downWorkStation/getwo');
-
if (response.code === 200) {
console.log(response);
// 閬嶅巻鍝嶅簲鏁版嵁骞舵浛鎹acks鏁扮粍涓殑item灞炴��
response.data.forEach((itemData, index) => {
if (index < racks.value.length) {
const rack = racks.value[index];
- const newItem = {
+ rack.fillColor = itemData.item.fullCardColor === 'red' ? '#911005' : '#6a6da9';
+ const newItem = {
content: itemData.item.content,
fillColor: itemData.item.fillColor,
width: itemData.item.width === 0 ? "" : 10,
height: itemData.item.height === 0 ? "" : 90,
downGlassInfoList:itemData.item.downGlassInfoList
};
-
- if (index === 2 && itemData.item.width > 0) {
+ if (index === 1 && itemData.item.width > 0) {
newItem.width = 100;
newItem.height = 20;
}
-
rack.item = newItem;
-
console.log(racks.value); // 鎵撳嵃鏇存柊鍚庣殑 racks 鍊�
}
});
-
-
-
-
-
} else {
ElMessage.error(response.msg);
}
@@ -121,28 +106,23 @@
//const socketUrl = `ws://${WebSocketHost}:88/api/unLoadGlass/api/talk/unloadglass2`;
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
const handleMessage = (data) => {
-
// 鏇存柊 tableData 鐨勬暟鎹�
-
data.glassinfo[0].forEach((itemData, index) => {
if (index < racks.value.length) {
const rack = racks.value[index];
- const newItem = {
+ rack.fillColor = itemData.item.fullCardColor === 'red' ? '#911005' : '#6a6da9';
+ const newItem = {
content: itemData.item.content,
fillColor: itemData.item.fillColor,
width: itemData.item.width === 0 ? "" : 10,
height: itemData.item.height === 0 ? "" : 90,
downGlassInfoList:itemData.item.downGlassInfoList
};
-
- if (index === 2 && itemData.item.width > 0) {
+ if (index === 1 && itemData.item.width > 0) {
newItem.width = 100;
newItem.height = 20;
}
-
rack.item = newItem;
-
-
// console.log("鏄剧ず鍥�1",racks.value); // 鎵撳嵃鏇存柊鍚庣殑 racks 鍊�
}
});
@@ -169,9 +149,7 @@
<td>${info.height}</td>
</tr>`;
});
-
tableContent += '</table>';
-
Swal.fire({
// title: '鐜荤拑淇℃伅',
title: t('reportWork.glassinformation'),
@@ -181,8 +159,6 @@
}
});
};
-
-
const showRectInfo = (rack) => {
const content = rack.item.content;
console.log(rack.item.downGlassInfoList[0].flowCardId)
@@ -191,14 +167,9 @@
const downGlassInfoList = rack.item.downGlassInfoList;
console.log(downGlassInfoList)
showCustomAlert(downGlassInfoList);
-
}
-
};
-
-
</script>
-
<style scoped>
.glass-rack {
/* margin-left: 10px; */
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
index 9d4fb7a..1817bb6 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
@@ -30,10 +30,8 @@
</div>
</div>
</template>
-
<script setup>
import { ref, watchEffect ,onMounted,onUnmounted} from 'vue';
-
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
let language = ref(localStorage.getItem('lang') || 'zh')
@@ -44,9 +42,9 @@
const racks = ref([
{ x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456' } },
+ { x: 140, y: 280, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' } },
+
{ x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG12345678' } },
-
- { x: 140, y: 280, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }
]);
@@ -58,9 +56,9 @@
if (index === 0) {
return rack.x;
} else if (index === 1) {
- return rack.x + rack.width - item.width;
- } else {
return rack.x + (rack.width - item.width) / 2;
+ } else {
+ return rack.x + rack.width - item.width;
}
};
@@ -68,9 +66,9 @@
if (index === 0) {
return rack.y + (rack.height - item.height) / 2;
} else if (index === 1) {
- return rack.y + (rack.height - item.height) / 2;
- } else {
return rack.y + rack.height - item.height;
+ } else {
+ return rack.y + (rack.height - item.height) / 2;
}
};
@@ -85,14 +83,16 @@
response.data.forEach((itemData, index) => {
if (index < racks.value.length) {
const rack = racks.value[index];
- const newItem = {
+ rack.fillColor = itemData.item.fullCardColor === 'red' ? '#911005' : '#6a6da9';
+ const newItem = {
content: itemData.item.content,
fillColor: itemData.item.fillColor,
width: itemData.item.width === 0 ? "" : 10,
height: itemData.item.height === 0 ? "" : 90
};
+ console.log(itemData.item.fullCardColor);
- if (index === 2 && itemData.item.width > 0) {
+ if (index === 1 && itemData.item.width > 0) {
newItem.width = 100;
newItem.height = 20;
}
@@ -125,7 +125,8 @@
data.glassinfo2[0].forEach((itemData, index) => {
if (index < racks.value.length) {
const rack = racks.value[index];
- const newItem = {
+ rack.fillColor = itemData.item.fullCardColor === 'red' ? '#911005' : '#6a6da9';
+ const newItem = {
content: itemData.item.content,
fillColor: itemData.item.fillColor,
width: itemData.item.width === 0 ? "" : 10,
@@ -133,7 +134,7 @@
downGlassInfoList:itemData.item.downGlassInfoList
};
- if (index === 2 && itemData.item.width > 0) {
+ if (index === 1 && itemData.item.width > 0) {
newItem.width = 100;
newItem.height = 20;
}
@@ -178,7 +179,6 @@
}
});
};
-
const showRectInfo = (rack) => {
const content = rack.item.content;
diff --git a/UI-Project/src/views/UnLoadGlass/PrintFlow.vue b/UI-Project/src/views/UnLoadGlass/PrintFlow.vue
new file mode 100644
index 0000000..235e147
--- /dev/null
+++ b/UI-Project/src/views/UnLoadGlass/PrintFlow.vue
@@ -0,0 +1,444 @@
+<script setup>
+import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
+import {Search} from "@element-plus/icons-vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+import request from "@/utils/request"
+import { WebSocketHost ,host} from '@/utils/constants'
+import { ref, onMounted , onBeforeUnmount, reactive, computed,onUnmounted } from "vue";
+import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
+import { ElMessage, ElMessageBox } from 'element-plus'
+import companyInfo from "@/lang/companyInfo";
+import QRCode from "qrcode";
+
+
+const company = companyInfo()
+const printMerge = null
+let props = defineProps({
+ printFlowCardId: null,
+ printLayer: null,
+})
+let produceList = ref([])
+const handleGetQRCode = async () => {
+ for (let i = 0; i < produceList.value.length; i++) {
+ const technologyNumber = produceList.value[i].detail[0].technologyNumber.toString(); // 杞崲涓哄瓧绗︿覆浠ヤ究澶勭悊姣忎釜瀛楃
+ produceList.value[i].detail[0]["qrcodeList"] = []; // 鍒濆鍖栦竴涓┖鏁扮粍鐢ㄦ潵瀛樺偍 QR Code
+
+ for (let j = 0; j < technologyNumber.length; j++) {
+ const processId = produceList.value[i].detail[0].process_id;
+ const url = `${processId}/${technologyNumber[j]}`;
+
+ // 鐢熸垚 QR Code 骞跺瓨鍌ㄥ埌鏁扮粍涓�
+ const qrcodeData = await QRCode.toDataURL(url);
+ produceList.value[i].detail[0]["qrcodeList"].push({
+ qrcode: qrcodeData,
+ technologyNumber: technologyNumber[j]
+ });
+
+ }
+ }
+};
+
+
+//鏍规嵁杈撳叆鐨勬暟閲忛噸鏂版眹鎬�
+const handleSummary = () => {
+ for (let i = 0; i < produceList.value.length; i++) {
+ //鏁伴噺
+ let totalQuantity = 0;
+ //闈㈢Н
+ let totalArea = 0;
+ //閲嶉噺
+ let totalWeight = 0;
+ // 瀵规瘡涓泦鍚堜腑鐨� detailList 杩涜璁$畻
+ produceList.value[i].detailList.forEach(collection => {
+ totalQuantity += collection.quantity * 1;
+ //姣忎釜搴忓彿闈㈢Н
+ collection.total_area = parseFloat((collection.width * collection.height * collection.quantity / 1000000).toFixed(2))
+ totalArea += collection.total_area * 1;
+ totalWeight += collection.width * collection.height * collection.quantity / 1000000 * collection.separation * 2.5 * 1;
+ //姣忎釜搴忓彿鍛ㄩ暱
+ collection.perimeter = parseFloat(((collection.width * 2 + collection.height * 2) * collection.quantity / 1000).toFixed(3))
+ });
+ // 杈撳嚭姣忎釜闆嗗悎涓殑鎬绘暟閲�
+ produceList.value[i].detail[0].quantity = totalQuantity
+ produceList.value[i].detail[0].gross_area = totalArea
+ produceList.value[i].detail[0].weight = totalWeight
+ }
+}
+
+
+// const printFlowCard = () => {
+// // 闇�瑕佹墦鍗扮殑灞�閮ㄥ尯鍩熻祴浜�"print-wrap"鐨刬d
+// let el = document.getElementById("printFlowCard");
+// let doc = document;
+// let body = doc.body || doc.getElementsByTagName("body")[0];
+// let printId = "print-" + Date.now();
+
+// // 鍒涘缓鏃犲壇浣滅敤鐨勬墦鍗板鍣�(鍥犱笉纭畾椤甸潰鐨勬墦鍗板厓绱犳湁鏃犲叾瀹冩牱寮�)
+// let content = doc.createElement("div");
+// content.id = printId;
+
+// // 鏍峰紡鎺у埗涓庢墦鍗版棤鍏崇殑鍏冪礌闅愯棌
+// let style = doc.createElement("style");
+// style.innerHTML =
+// "body>#" +
+// printId +
+// "{display:none}@media print{" +
+// "@page {" +
+// " size: auto; " +
+// " margin: 5mm 5mm 5mm 5mm; " +
+// " }body>:not(#" +
+// printId +
+// "){display:none !important}body>#" +
+// printId +
+// "{display:block;padding-top:1px}}";
+// //
+// content.innerHTML = el.outerHTML;
+// // // console.log("el.outerHTML", el.outerHTML);
+// body.appendChild(style);
+
+// // 涓巗tyle鍏冪礌璁剧疆鐨勬牱寮忕浉閰嶅悎
+// // 鎶婃墦鍗板唴瀹圭殑鍏冪礌娣诲姞鍒癰ody(浣滀负body鐨勫瓙鍏冪礌锛屽彲鐢╞ody鐨勫瓙閫夋嫨鍣� '>' 鎺у埗鎵撳嵃鏍峰紡)
+// body.appendChild(content);
+// setTimeout(() => {
+// window.print();
+// body.removeChild(content);
+// body.removeChild(style);
+// }, 20);
+// }
+
+onMounted(async () => {
+ console.log(props.printFlowCardId,props.printLayer)
+ try {
+
+ const response = await request.post('/unLoadGlass/downGlassInfo/downGlassPrint',{
+ flowCardId:props.printFlowCardId,
+ layer:props.printLayer
+ });
+ if (response.code == 200) {
+
+ // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+ produceList.value = response.data;
+ ElMessage.success(response.message);
+ for (let j = 0; j < produceList.value.length; j++) {
+ let sumWeight = 0
+ produceList.value[j].detailList.forEach((item, index) => {
+ // 瑙f瀽 separation 瀛楁鐨� JSON 瀛楃涓�
+ let separationObj = JSON.parse(item.separation);
+
+ // 鑾峰彇 thickness 鐨勫師濮嬪��
+ let thicknessValue = separationObj.thickness;
+
+ // 鍘婚櫎 'mm' 鍗曚綅
+ let thicknessWithoutUnit = thicknessValue.replace('mm', '');
+
+ item.separation = thicknessWithoutUnit
+
+ sumWeight += item.width * item.height * item.quantity / 1000000 * item.separation * 2.5 * 1;
+
+ });
+ produceList.value[j].detail[0].weight = sumWeight
+ }
+ handleGetQRCode()
+ handleSummary()
+ // printFlowCard();
+
+
+
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+ } catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+});
+</script>
+<template>
+ <div id="printFlowCard">
+ <table v-for="(item,id) in produceList" id="contentTable" :key="id">
+ <thead>
+ <tr v-for="(itemFlow,index) in item.detail" :key="index">
+ <td v-if="like='1'" colspan="26">
+ <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px;margin: 5px "/></div>
+ <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div>
+ <div>{{ company.companyName }}</div>
+ <div>鐢熶骇娴佺▼鍗�</div>
+ <div v-if="itemFlow.technologyNumber!=''" style="text-align: right;font-weight: bolder">娴佺▼鍗″彿锛� {{
+ itemFlow.process_id
+ }}/{{ itemFlow.technologyNumber }}
+ </div>
+ <div v-else style="text-align: right;font-weight: bolder">娴佺▼鍗″彿锛� {{
+ itemFlow.process_id
+ }}/{{ itemFlow.technologyNumber }}
+ </div>
+ </td>
+ <td v-else colspan="24">
+ <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px "/></div>
+ <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div>
+ <div>{{ company.companyName }}</div>
+ <div>鐢熶骇娴佺▼鍗�</div>
+ <div v-if="itemFlow.technologyNumber!=''" style="text-align: right;font-weight: bolder">娴佺▼鍗″彿锛� {{
+ itemFlow.process_id
+ }}/{{ itemFlow.technologyNumber }} 鍏� {{ flowCardCount }} 鏋�
+ </div>
+ <div v-else style="text-align: right;font-weight: bolder">娴佺▼鍗″彿锛� {{
+ itemFlow.process_id
+ }}/{{ itemFlow.technologyNumber }} 鍏� {{ flowCardCount }} 鏋�
+ </div>
+ </td>
+ </tr>
+ <tr v-for="(items,index) in item.detail" :key="index">
+ <td class="tdNowrap">瀹㈡埛鍚嶇О锛�</td>
+ <td colspan="2">{{ items.customer_name }}</td>
+ <td class="tdNowrap">椤圭洰鍚嶇О锛�</td>
+ <td colspan="2">{{ items.project }}</td>
+ <td class="tdNowrap">宸ヨ壓娴佺▼锛�</td>
+ <td colspan="19" v-if="like='1'" style="width: 500px">{{ items.process }}</td>
+ <td colspan="17" v-else style="width: 500px">{{ items.process }}</td>
+ </tr>
+ <tr v-for="(itemTr,index) in item.detail" :key="index">
+ <td class="tdNowrap">纾ㄨ竟绫诲瀷锛�</td>
+ <td colspan="2">{{ itemTr.edging_type }}</td>
+ <td class="tdNowrap">鍗曠墖鍚嶇О锛�</td>
+ <td colspan="2">{{ itemTr.glass_child }}</td>
+ <td class="tdNowrap">浜у搧鍚嶇О锛�</td>
+ <td v-if="like=='1'" colspan="19">{{ itemTr.product_name }}</td>
+ <td v-else colspan="17">{{ itemTr.product_name }}</td>
+ </tr>
+ <tr>
+ <td rowspan='2'>搴忓彿</td>
+ <td rowspan='2'>缂栧彿</td>
+ <td v-if="like!=null" rowspan="2">灏忕墖椤哄簭</td>
+ <td v-else style="display: none;" rowspan="2">灏忕墖椤哄簭</td>
+ <td rowspan='2'>瀹�*楂�</td>
+ <td rowspan='2'>鏁伴噺</td>
+ <td rowspan='2'>闈㈢Н</td>
+ <td rowspan='2'>鍛ㄩ暱</td>
+ <td rowspan='2'>鍗婂緞</td>
+ <td rowspan='2'>澶囨敞</td>
+ <td v-for="(itemPr,index) in item.processList" :key="index" colspan="2">{{ itemPr.process }}</td>
+ </tr>
+ <tr>
+
+ <td>{{ company.printLabel.printFlowCard.patch }}</td>
+ <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+ <td>{{ company.printLabel.printFlowCard.patch }}</td>
+ <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+ <td>{{ company.printLabel.printFlowCard.patch }}</td>
+ <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+ <td>{{ company.printLabel.printFlowCard.patch }}</td>
+ <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+ <td>{{ company.printLabel.printFlowCard.patch }}</td>
+ <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+ <td>{{ company.printLabel.printFlowCard.patch }}</td>
+ <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+ <td>{{ company.printLabel.printFlowCard.patch }}</td>
+ <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+ <td>{{ company.printLabel.printFlowCard.patch }}</td>
+ <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+ </tr>
+ </thead>
+ <tbody>
+
+ <tr v-for="(itemDatile,index) in item.detailList" :key="index">
+ <td>{{ itemDatile.order_number }}</td>
+ <td>{{ itemDatile.s01Value }}</td>
+ <td v-if="like=='1'">{{ itemDatile.technology_number }}</td>
+ <td v-else style="display: none"></td>
+ <td>{{ itemDatile.child_width }}</td>
+ <td class="item" style="width: 5%;height: 100%;">
+ <!-- <el-input v-model="itemDatile.quantity" style="border: none" @keyup="handleSummary()"></el-input> -->
+ {{ itemDatile.quantity }}
+ </td>
+ <!-- <td class="item" style="width: 5%;height: 100%;">
+ {{ itemDatile.quantity1 }}
+ </td> -->
+ <td>{{ itemDatile.total_area }}</td>
+ <td>{{ itemDatile.perimeter }}</td>
+ <td>{{ itemDatile.bend_radius }}</td>
+ <td>{{ itemDatile.remarks }}</td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr style="height: 14px">
+ <td v-for="(itemsum,index) in item.detail" :key="index" colspan="26">
+ 鏁伴噺锛�
+ <label>{{ itemsum.quantity }}</label>
+ 闈㈢Н锛�
+ <label>{{ parseFloat(itemsum.gross_area.toFixed(2)) }}</label>
+ 閲嶉噺锛�
+ <label>{{ parseFloat(itemsum.weight.toFixed(2)) }}</label>
+ </td>
+ </tr>
+ <tr v-for="(itemtextarea,index) in item.detail" :key="index">
+ <td v-if="like='1'" colspan="4" rowspan="6" style="width: 480px;height: 100px ">
+ <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 11px">{{itemtextarea.otherRemarks}}</textarea>
+ </div>
+ </td>
+ <td v-else colspan="6" rowspan="2" style="width: 480px;height: 100px ">
+ <!-- <div style="width: 100%;height: 100%"><textarea style="height: 99%;width: 99%;font-size: 11px">{{ itemtextarea.processing_note }}</textarea>-->
+ <!-- </div>-->
+ <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 11px">{{itemtextarea.otherRemarks}}</textarea>
+ </div>
+ </td>
+ <td colspan="2">瀹屽伐绛惧悕</td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <td colspan="2">鐢熶骇鏃ユ湡</td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <td colspan="2">璐ㄦ绛惧悕</td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ <td colspan="2"></td>
+ </tr>
+ <tr v-for="(qrCodeItem,index) in item.detail" :key="index">
+ <td colspan="23">
+ <span style="display: flex;">
+ <span v-for="(qrCodeItems,index) in qrCodeItem.qrcodeList" :key="index" style="display: flex;width: 35%">
+ <div class='qrCode' style="width: 80px;height: 80px;">
+ <img :src=qrCodeItems.qrcode>
+ </div>
+ <span style="float: left;font-weight: bolder">{{
+ qrCodeItem.process_id + "/" + qrCodeItems.technologyNumber
+ }}</span>
+ </span>
+ </span>
+ </td>
+
+ </tr>
+ </tfoot>
+ </table>
+ </div>
+</template>
+<style scoped>
+* {
+ margin: 0;
+ padding: 0;
+ text-align: center;
+}
+
+
+#printFlowCard {
+ text-align: center;
+font-weight: bolder;
+ height: 600px;
+}
+
+#contentTable {
+ border-collapse: collapse;
+ border: 1px solid black;
+ width: 100%;
+}
+
+#contentTable thead {
+ font-size: 13px;
+ font-weight: bolder;
+}
+
+#contentTable thead div {
+ font-size: 15px;
+ font-weight: bolder;
+}
+
+#contentTable tr td {
+ border: 1px solid black;
+ height: 18px;
+ font-weight: bolder;
+}
+
+#contentTable tbody {
+ white-space: nowrap;
+
+}
+
+.tdNowrap {
+ white-space: nowrap;
+
+}
+
+#contentTable tfoot {
+ font-size: 12px;
+ font-weight: bolder;
+}
+
+input{
+ font-weight: bolder;
+}
+
+
+@page {
+ size: auto; /* auto is the initial value */
+ margin: 10mm 2mm 10mm 1mm; /* this affects the margin in the printer settings */
+
+}
+
+@media print {
+ table {
+ page-break-before: always;
+ page-break-inside: auto;
+ }
+
+ #contentTable thead {
+ display: table-header-group;
+ }
+
+ tfoot {
+ display: table-footer-group;
+ page-break-inside: avoid;
+ }
+}
+
+.qrCode img {
+ width: 100%;
+ height: 100%;
+}
+
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index c0fbde6..7b035df 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -1,40 +1,82 @@
<script setup>
-import {Search} from "@element-plus/icons-vue";
-import {reactive, onMounted, onBeforeUnmount,onUnmounted} from "vue";
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
import {useRouter} from "vue-router"
-const router = useRouter()
-import { useI18n } from 'vue-i18n'
- const { t } = useI18n()
- let language = ref(localStorage.getItem('lang') || 'zh')
-import { ref } from 'vue'
-import { ElMessage, ElMessageBox } from 'element-plus'
+import {useI18n} from 'vue-i18n'
+import {ElMessage} from 'element-plus'
+import request from "@/utils/request";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {host, WebSocketHost} from '@/utils/constants'
+import PrintFlow from "@/views/UnLoadGlass/PrintFlow.vue";
import Landingindication from "./Landingindication.vue";
import Landingindicationtwo from "./Landingindicationtwo.vue";
-import request from "@/utils/request";
-import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
-import { WebSocketHost ,host} from '@/utils/constants'
+
+const router = useRouter()
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const printLoading = ref(true)
+const fullFlowCard = ref('')
+const autoPrint = ref(false)
+
const dialogFormVisiblea = ref(false)
const dialogFormVisiblea2 = ref(false)
+const dialogFormVisibleaDownGlass = ref(false)
// 鏁版嵁
const loading = ref(false);
// 寮规鏄剧ず鎺у埗
const dialogFormVisible = ref(false);
// 琛ㄥ崟鏁版嵁
const workstationId = ref('');
-const selectedProjectNoa = ref(null); // 褰撳墠閫変腑鐨勮鑹�
+const workFlowCard = ref('');
+const selectedProjectNoa = ref(null); // 褰撳墠閫変腑鐨勮鑹�
const flowCardId = ref('');
const flowCardOptions = ref('[]');
const tableData = reactive([]);
+const downGlass = ref([]);
+
+const selectValuesa = reactive({});
+const selectOptionsa = ref([]);
+const dialogTableVisible = ref(false)
+const printFlowCardId = ref('')
+const printLayer = ref('')
+const now = new Date();
+const timeRange = ref([])
+
+const handleChange = async () => {
+ console.log("瑙﹀彂寮�鍏�")
+ try {
+ const body = {
+ flag: autoPrint.value, // 浣跨敤 ganghua.value 鑾峰彇褰撳墠寮�鍏崇殑鐘舵��
+ };
+
+ var url = "/unLoadGlass/downWorkStation/autoPrint?flag=" + autoPrint.value;
+ const response = await request.post(url)
+ if (response.code == 200) {
+ // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+ ElMessage.success(response.message);
+ autoPrint.value = response.data
+ } else {
+ ElMessage.error(response.message);
+ }
+ } catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+
+
+const handleInputChangea = (value, rowId) => {
+ // 鏇存柊瀵瑰簲琛岀殑 select 鍊�
+ selectValuesa[rowId] = value;
+};
// 鏂规硶
const handleSelectionChange = () => {
// 澶勭悊琛ㄦ牸琛岄�夋嫨浜嬩欢
};
const handleBindRack = (row) => {
workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
- console.log(row.flowCardId);
flowCardId.value = row.flowCardId;
// 鍙戣捣鎺ュ彛璇锋眰鑾峰彇娴佺▼鍗″彿
- fetchFlowCardId();
+ fetchFlowCardId();
dialogFormVisiblea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
};
//鑾峰彇娴佺▼鍗″彿
@@ -43,12 +85,12 @@
const response = await request.get('unLoadGlass/downWorkStation/getflowCardId');
console.log(response)
if (response.code === 200) {
-
- flowCardOptions.value = response.data.filter(item => item !== null)
-.map(item => ({ flowcard_id: item.flow_card_id }));
- console.log(flowCardOptions.value);
-}
- else {
+
+ flowCardOptions.value = response.data.filter(item => item !== null)
+ .map(item => ({flowcard_id: item.flow_card_id}));
+ console.log(flowCardOptions.value);
+ }
+ else {
ElMessage.error(response.msg);
}
} catch (error) {
@@ -58,18 +100,18 @@
//纭
const handleConfirm = async () => {
try {
- const firstPart = flowCardId.value.split('|')[0].trim(); //
-const twoPart = flowCardId.value.split('|')[1].trim(); //
+ const firstPart = flowCardId.value.split('|')[0].trim(); //
+ const twoPart = flowCardId.value.split('|')[1].trim(); //
const response = await request.post('unLoadGlass/downWorkStation/updateFlowCardId', {
workstationId: workstationId.value,
flowCardId: firstPart,
- layer:twoPart
- });
+ layer: twoPart
+ });
console.log(response)
if (response.code == 200) {
// 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
console.log('缁戝畾鎴愬姛');
-
+
ElMessage.success(response.message);
updatePageData();
dialogFormVisiblea.value = false;
@@ -91,33 +133,36 @@
const handleBindRack2 = (row) => {
workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
dialogFormVisiblea2.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+ workFlowCard.value=row.flowCardId;
};
//娓呴櫎鍐呭
const handleclear = async () => {
- try {
- const response = await request.post('unLoadGlass/downWorkStation/clear', {
- workstationId: workstationId.value,
- });
+ try {
+ const response = await request.post('unLoadGlass/downWorkStation/clear', {
+ workstationId: workstationId.value,
+ });
- console.log(response);
- if (response.code === 200) {
- // 娓呴櫎鎴愬姛鐨勯�昏緫
- console.log('娓呴櫎鎴愬姛');
- ElMessage.success(response.message);
- dialogFormVisiblea2.value = false;
- } else if (response.code === 500) {
- // 娓呴櫎澶辫触鐨勯�昏緫
- console.log('娓呴櫎澶辫触');
- console.log(response.message); // 鎵撳嵃鏈嶅姟鍣ㄨ繑鍥炵殑閿欒淇℃伅
- ElMessage.error(response.message);
- dialogFormVisiblea2.value = false;
- }
- } catch (error) {
- // console.log(error);
- ElMessage.error("娓呴櫎澶辫触");
- dialogFormVisiblea2.value = false;
+ if (response.code === 200) {
+ // 娓呴櫎鎴愬姛鐨勯�昏緫
+ console.log('娓呴櫎鎴愬姛');
+ ElMessage.success(response.message);
+ dialogFormVisiblea2.value = false;
+ if(fullFlowCard.value==workFlowCard.value){
+ fullFlowCard.value="";
+ }
+ } else if (response.code === 500) {
+ // 娓呴櫎澶辫触鐨勯�昏緫
+ console.log('娓呴櫎澶辫触');
+ console.log(response.message); // 鎵撳嵃鏈嶅姟鍣ㄨ繑鍥炵殑閿欒淇℃伅
+ ElMessage.error(response.message);
+ dialogFormVisiblea2.value = false;
}
+ } catch (error) {
+ // console.log(error);
+ ElMessage.error("娓呴櫎澶辫触");
+ dialogFormVisiblea2.value = false;
+ }
};
// 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰
const fetchTableData = async () => {
@@ -143,9 +188,38 @@
const socketUrl = `ws://${WebSocketHost}:${host}/api/unLoadGlass/api/talk/unloadglass`;
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
const handleMessage = (data) => {
+
// 鏇存柊 tableData 鐨勬暟鎹�
- tableData.splice(0, tableData.length, ...data.params[0]);
-// console.log("鏇存柊鍚庢暟鎹�", data.params[0]);
+ if (data.downGlassInfos != null) {
+ downGlass.value = data.downGlassInfos[0][1];
+ }
+ if (data.engineerIdList != null) {
+ selectOptionsa.value = data.engineerIdList[0]
+ }
+ if (data.autoPrint != null) {
+ autoPrint.value = data.autoPrint[0];
+ }
+
+
+ if (fullFlowCard.value == ""&&autoPrint.value==true) {
+ for (let i = 0; i < tableData.length; i++) {
+ if (tableData[i].totalQuantity != 0) {
+ if (tableData[i].totalQuantity == tableData[i].racksNumber + tableData[i].otherNumber && fullFlowCard.value != tableData[i].flowCardId) {
+ // printFlowCardId.value = tableData[i].flowCardId;
+ fullFlowCard.value = tableData[i].flowCardId;
+ open(tableData[i]);
+ break;
+ }
+ } else {
+ console.log("娌℃湁flowCardId")
+ }
+ }
+ }
+ if(data.params!=null){
+ tableData.splice(0, tableData.length, ...data.params[0]);
+ }
+
+ // console.log("鏇存柊鍚庢暟鎹�", data.params[0]);
};
// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
onMounted(() => {
@@ -153,40 +227,40 @@
fetchTableData(); // 鑾峰彇鏁版嵁
socket = initializeWebSocket(socketUrl, handleMessage);
});
- onUnmounted(() => {
- if (socket) {
+onUnmounted(() => {
+ if (socket) {
closeWebSocket(socket);
- }
- });
+ }
+});
onBeforeUnmount(() => {
console.log("鍏抽棴浜�")
closeWebSocket();
});
-const getTagType =(status) => {
- return status === 1 ? 'success' : 'danger';
- // 鏍规嵁鐘舵�佸�煎喅瀹氭爣绛剧被鍨嬶紝杩欓噷鍋囪鐘舵�佷负1鏃朵负鎴愬姛锛堢豢鑹诧級锛屽惁鍒欎负澶辫触锛堢孩鑹诧級
- }
-
- const toggleStatus = (row) => {
- // 鍒囨崲鏂欐灦鐘舵�佺殑閫昏緫
- row.enableState = 1 - row.enableState; // Toggle between 0 and 1
- // 姝ゅ鍙互娣诲姞淇濆瓨鐘舵�佺殑閫昏緫锛屾瘮濡傝皟鐢� API 鏇存柊鏁版嵁
- updateRowStatus(row);
- };
-
- const updateRowStatus = async (row) => {
+const getTagType = (status) => {
+ return status === 1 ? 'success' : 'danger';
+ // 鏍规嵁鐘舵�佸�煎喅瀹氭爣绛剧被鍨嬶紝杩欓噷鍋囪鐘舵�佷负1鏃朵负鎴愬姛锛堢豢鑹诧級锛屽惁鍒欎负澶辫触锛堢孩鑹诧級
+}
+
+const toggleStatus = (row) => {
+ // 鍒囨崲鏂欐灦鐘舵�佺殑閫昏緫
+ row.enableState = 1 - row.enableState; // Toggle between 0 and 1
+ // 姝ゅ鍙互娣诲姞淇濆瓨鐘舵�佺殑閫昏緫锛屾瘮濡傝皟鐢� API 鏇存柊鏁版嵁
+ updateRowStatus(row);
+};
+
+const updateRowStatus = async (row) => {
try {
// 鍋囪浣犵殑鍚庣 API 鎺ユ敹 PUT 璇锋眰锛屽苟涓旈渶瑕佷紶閫� row.id 鍜� row.enableState 鍙傛暟
-
-
+
+
const response = await request.post('unLoadGlass/downWorkStation/updateDownWorkstation', {
enableState: row.enableState,
id: row.id
-
- });
+
+ });
console.log('Updated row status:', response.data);
// 鍙互鏍规嵁鍚庣杩斿洖鐨勬暟鎹繘琛岃繘涓�姝ュ鐞嗭紝姣斿鏇存柊鏈湴鐘舵�佺瓑
} catch (error) {
@@ -194,11 +268,77 @@
// 澶勭悊閿欒鎯呭喌锛屾瘮濡傛彁绀虹敤鎴锋洿鏂板け璐�
}
};
-
+
+// 鏌ヨ鏁版嵁
+const selectDownGlassData = async () => {
+
+ const response = await request.post("/unLoadGlass/downGlassInfo/setDownGlassInfoRequest", {
+ workStationId: selectValuesa[0],
+ engineerId: selectValuesa[1],
+ beginDate: timeRange.value[0],
+ endDate: timeRange.value[1],
+ })
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ ElMessage.error(response.message);
+ }
+
+}
+const open = async (row) => {
+ printFlowCardId.value = row.flowCardId;
+ printLayer.value = row.layer
+ dialogTableVisible.value = true;
+ setTimeout(() => {
+ printFlowCard(); // 鏇挎崲鎴愪綘瑕佹墽琛岀殑鍑芥暟鍚�
+ dialogTableVisible.value = false;
+ }, 1000);
+ ;
+}
+
+const printFlowCard = () => {
+ // 闇�瑕佹墦鍗扮殑灞�閮ㄥ尯鍩熻祴浜�"print-wrap"鐨刬d
+ let el = document.getElementById("child");
+ let doc = document;
+ let body = doc.body || doc.getElementsByTagName("body")[0];
+ let printId = "print-" + Date.now();
+
+ // 鍒涘缓鏃犲壇浣滅敤鐨勬墦鍗板鍣�(鍥犱笉纭畾椤甸潰鐨勬墦鍗板厓绱犳湁鏃犲叾瀹冩牱寮�)
+ let content = doc.createElement("div");
+ content.id = printId;
+
+ // 鏍峰紡鎺у埗涓庢墦鍗版棤鍏崇殑鍏冪礌闅愯棌
+ let style = doc.createElement("style");
+ style.innerHTML =
+ "body>#" +
+ printId +
+ "{display:none}@media print{" +
+ "@page {" +
+ " size: auto; " +
+ " margin: 10mm 2mm 10mm 1mm; " +
+ " }body>:not(#" +
+ printId +
+ "){display:none !important}body>#" +
+ printId +
+ "{display:block;padding-top:1px}}";
+ //
+ content.innerHTML = el.outerHTML;
+ // // console.log("el.outerHTML", el.outerHTML);
+ body.appendChild(style);
+
+ // 涓巗tyle鍏冪礌璁剧疆鐨勬牱寮忕浉閰嶅悎
+ // 鎶婃墦鍗板唴瀹圭殑鍏冪礌娣诲姞鍒癰ody(浣滀负body鐨勫瓙鍏冪礌锛屽彲鐢╞ody鐨勫瓙閫夋嫨鍣� '>' 鎺у埗鎵撳嵃鏍峰紡)
+ body.appendChild(content);
+ setTimeout(() => {
+ window.print();
+ body.removeChild(content);
+ body.removeChild(style);
+ }, 20);
+}
// beforeUnmount(() => {
@@ -208,77 +348,132 @@
</script>
<template>
<div>
+ <el-button style="margin-top: 10px;margin-left: 10px;margin-bottom: 10px;" id="searchButton" type="primary"
+ @click="dialogFormVisibleaDownGlass = true">钀芥灦璇︽儏
+ </el-button>
+ <el-switch style="margin-top: 10px;margin-left: 15px;margin-bottom: 10px;" v-model="autoPrint" class="mb-2" :inactive-text="$t('鑷姩鎵撳嵃')"
+ @change="handleChange"/>
<el-card style="flex: 1;" v-loading="loading">
<el-card style="flex: 1;margin-left: 4px;margin-top: 1px;" v-loading="loading">
- <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
- <el-table height="200px" ref="table"
- @selection-change="handleSelectionChange"
- :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="workstationId" align="center" :label="$t('reportWork.lowerbit')" min-width="80" />
- <el-table-column prop="workstationId" align="center" :label="$t('reportWork.shelfnumber')" min-width="120" />
- <el-table-column prop="flowCardId" align="center" :label="$t('reportWork.cardnumber')" min-width="150" />
- <el-table-column prop="totalQuantity" align="center" :label="$t('reportWork.totalquantity')" min-width="120" />
- <el-table-column prop="racksNumber" align="center" :label="$t('reportWork.beendropped')" min-width="120" />
- <el-table-column prop="layer" align="center" label="灞傛暟" min-width="120" />
- <el-table-column prop="otherNumber" align="center" label="浜哄伐涓嬬墖鏁�" min-width="120" />
- <!-- <el-table-column prop="work_state" align="center" :label="$t('reportWork.state')" min-width="120" /> -->
- <el-table-column prop="deviceId" align="center" :label="$t('reportWork.devicenumber')" min-width="120" />
- <el-table-column
- align="center"
- :label="$t('reportWork.startstatus')"
- min-width="80"
- prop="enableState"
- >
- <template #default="scope">
-
- <el-tag :type="getTagType(scope.row.enableState)" @click="toggleStatus(scope.row)">
- {{ scope.row.enableState === 1 ? $t('reportWork.enable') : $t('reportWork.unenable') }}
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column fixed="right" :label="$t('reportWork.operate')" align="center" width="200">
- <template #default="scope">
- <el-button size="mini" type="text" plain v-show="scope.row.enableState !== '宸插惎鐢�' " @click="handleBindRack(scope.row)">{{ $t('reportWork.bindingshelves') }}</el-button>
- <el-button size="mini" type="text" plain @click="handleBindRack2(scope.row)">{{ $t('reportWork.clear') }}</el-button>
- </template>
- </el-table-column>
- </el-table>
- </div>
- </el-card>
- <!-- workstationId: '1',
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+ <el-table height="200px" ref="table" @selection-change="handleSelectionChange" :data="tableData"
+ :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+ <el-table-column prop="workstationId" align="center" :label="$t('reportWork.lowerbit')" min-width="80"/>
+ <el-table-column prop="workstationId" align="center" :label="$t('reportWork.shelfnumber')"
+ min-width="120"/>
+ <el-table-column prop="flowCardId" align="center" :label="$t('reportWork.cardnumber')" min-width="150"/>
+ <el-table-column prop="totalQuantity" align="center" :label="$t('reportWork.totalquantity')"
+ min-width="120"/>
+ <el-table-column prop="racksNumber" align="center" :label="$t('reportWork.beendropped')" min-width="120"/>
+ <el-table-column prop="layer" align="center" label="灞傛暟" min-width="120"/>
+ <el-table-column prop="otherNumber" align="center" label="浜哄伐涓嬬墖鏁�" min-width="120"/>
+ <!-- <el-table-column prop="work_state" align="center" :label="$t('reportWork.state')" min-width="120" /> -->
+ <el-table-column prop="deviceId" align="center" :label="$t('reportWork.devicenumber')" min-width="120" />
+ <el-table-column align="center" :label="$t('reportWork.startstatus')" min-width="80" prop="enableState">
+ <template #default="scope">
+ <el-tag :type="getTagType(scope.row.enableState)" @click="toggleStatus(scope.row)">
+ {{ scope.row.enableState === 1 ? $t('reportWork.enable') : $t('reportWork.unenable') }}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column fixed="right" :label="$t('reportWork.operate')" align="center" width="200">
+ <template #default="scope">
+ <el-button size="mini" type="text" plain v-show="scope.row.enableState !== '宸插惎鐢�'"
+ @click="handleBindRack(scope.row)">{{ $t('reportWork.bindingshelves') }}
+ </el-button>
+ <el-button size="mini" type="text" plain @click="handleBindRack2(scope.row)">{{ $t('reportWork.clear')
+ }}</el-button>
+ <el-button @click="open(scope.row)" :disabled="scope.row.flowCardId == null">鎵撳嵃</el-button>
+ </template>
+
+ </el-table-column>
+ </el-table>
+
+ </div>
+ <el-dialog v-model="dialogFormVisibleaDownGlass" top="2vh" width="97%"
+ :title="$t('searchOrder.cageinformation')">
+ <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('璇烽�夋嫨宸ヤ綅')" clearable>
+ <el-option label="鍏ㄩ儴" value="0"></el-option>
+ <el-option label="1" value="1"></el-option>
+ <el-option label="2" value="2"></el-option>
+ <el-option label="3" value="3"></el-option>
+ <el-option label="4" value="4"></el-option>
+ <el-option label="5" value="5"></el-option>
+ <el-option label="6" value="6"></el-option>
+ <el-option label="7" value="7"></el-option>
+ <el-option label="8" value="8"></el-option>
+ <el-option label="9" value="9"></el-option>
+ <el-option label="10" value="10"></el-option>
+ </el-select>
+
+ <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('basicData.plselectproject')" clearable
+ @input="handleInputChangea($event, row.id)">
+ <el-option v-for="item in selectOptionsa" :key="item" :label="item" :value="item"/>
+ </el-select>
+
+ <span class="demonstration">鏃堕棿娈�</span>
+ <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" value-format = "YYYY-MM-DD hh:mm:ss"
+ end-placeholder="缁撴潫鏃ユ湡">
+ </el-date-picker>
+
+ <el-button type="primary" style="margin-left: 10px;" @click="selectDownGlassData()">{{
+ $t('reportmanage.inquire')
+ }}
+ </el-button>
+ <el-table height="200px" ref="table" @selection-change="handleSelectionChange" :data="downGlass"
+ :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+ <el-table-column prop="workStationId" align="center" :label="$t('宸ヤ綅鍙�')" min-width="80"/>
+ <el-table-column prop="engineerId" align="center" :label="$t('宸ョ▼鍙�')" min-width="80"/>
+ <el-table-column prop="flowCardId" align="center" :label="$t('娴佺▼鍗″彿')" min-width="80"/>
+ <el-table-column prop="layer" align="center" :label="$t('灞�')" min-width="120"/>
+ <el-table-column prop="sequence" align="center" :label="$t('椤哄簭')" min-width="150"/>
+ <el-table-column prop="width" align="center" :label="$t('瀹�')" min-width="120"/>
+ <el-table-column prop="height" align="center" :label="$t('楂�')" min-width="120"/>
+ <el-table-column prop="Filmsid" align="center" :label="$t('鑶滅郴')" min-width="120"/>
+ <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="120"/>
+ <el-table-column prop="glassId" align="center" :label="$t('鐜荤拑id')" min-width="120"/>
+
+ </el-table>
+ </el-dialog>
+
+ </el-card>
+ <!-- workstationId: '1',
workstationId: '1005',
flowCardId: '183.6',
totalquantity: '1991',
racksnumber:"1",
work_state: '寰呰瘑鍒�', -->
- <div style="display: flex;" class="awatch">
- <div id="main-body">
- <Landingindication></Landingindication>
- </div>
- <div id="main-bodya">
- <Landingindicationtwo></Landingindicationtwo>
- </div>
- </div>
+ <div style="display: flex;" class="awatch">
+ <div id="main-body">
+ <Landingindication></Landingindication>
+ </div>
+ <div id="main-bodya">
+ <Landingindicationtwo></Landingindicationtwo>
+ </div>
+ </div>
</el-card>
+
</div>
- <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" :title="$t('reportWork.bindingshelves')">
+ <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" :title="$t('reportWork.bindingshelves')">
<div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
- <el-form size="mini" label-width="100px">
- <el-form label-width="210px" label-position="right">
+ <el-form size="mini" label-width="100px">
+ <el-form label-width="210px" label-position="right">
<el-form-item :label="$t('reportWork.shelfnumbera')" :required="true" style="width: 25vw">
- <el-input v-model="workstationId" autocomplete="off"/>
+ <el-input v-model="workstationId" autocomplete="off" />
</el-form-item>
<el-form-item :label="$t('reportWork.cardnumbera')" :required="true" style="width: 25vw;">
- <el-select v-model="flowCardId" :placeholder="$t('reportWork.incardnumber')">
- <el-option v-for="item in flowCardOptions" :key="item.flowcard_id" :label="item.flowcard_id" :value="item.flowcard_id" />
- </el-select>
- </el-form-item>
- </el-form>
+ <el-select v-model="flowCardId" :placeholder="$t('reportWork.incardnumber')">
+ <el-option v-for="item in flowCardOptions" :key="item.flowcard_id" :label="item.flowcard_id"
+ :value="item.flowcard_id"/>
+ </el-select>
+ </el-form-item>
+ </el-form>
</el-form>
</div>
<template #footer>
<div id="dialog-footer">
+
<el-button type="primary" @click="handleConfirm">
{{ $t('reportWork.sure') }}
</el-button>
@@ -296,32 +491,63 @@
</div>
</template>
</el-dialog>
+
+ <el-dialog id="sizePrintCalrd" v-model="dialogTableVisible" destroy-on-close style="width: 75%;height:75% ">
+ <!-- <template #header="{ close, titleId, titleClass }">
+ <el-button @click="printFlowCard" >鎵撳嵃</el-button>
+ </template> -->
+ <print-flow id="child" :printFlowCardId="printFlowCardId" :printLayer="printLayer"
+ style="width: 100%;height: 100%"/>
+ </el-dialog>
+
</template>
<style scoped>
-#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
-#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
-#dialog-footer{
+#dt {
+ display: block;
+ float: left;
+ line-height: 20px;
+ margin-left: 100px;
+}
+
+#dta {
+ display: block;
+ float: left;
+ line-height: 20px;
+ margin-left: 80%;
+}
+
+#dialog-footer {
text-align: center;
margin-top: -15px;
}
-#message{
+
+#message {
text-align: center;
align-items: center;
color: black;
- width: 200px;
- height: 100px;
- background-color: #337ecc;
- margin-left: 28%;
+ width: 200px;
+ height: 100px;
+ background-color: #337ecc;
+ margin-left: 28%;
}
-.awatch{
+
+.awatch {
max-width: 100%;
}
-#main-body{
+
+#main-body {
margin-top: -40px;
margin-left: 150px;
}
-#main-bodya{
+
+#main-bodya {
margin-top: -40px;
margin-left: 100px;
}
+
+:deep(#sizePrintCalrd .el-dialog__body) {
+ height: 85%;
+ width: 100%;
+ overflow-y: auto;
+}
</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/largescreen/largescreen.vue b/UI-Project/src/views/largescreen/largescreen.vue
index fb2ab1a..0ac8dc0 100644
--- a/UI-Project/src/views/largescreen/largescreen.vue
+++ b/UI-Project/src/views/largescreen/largescreen.vue
@@ -1,5 +1,5 @@
<template>
- <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
+ <el-card style="flex: 1;margin-left: 1px;margin-top: 10px;margin-right: 1px;" v-loading="loading">
<el-scrollbar height="600px">
<div id="top" style="height: 150px;display: flex;">
<div class="echarts-container">
@@ -9,7 +9,7 @@
</div>
</div>
<div style="display: flex;">
-<div id="centerleft" style="margin-top: 10px;height: 240px;width: 340px;background-color: #911005;">
+<!-- <div id="centerleft" style="margin-top: 10px;height: 240px;width: 340px;background-color: #911005;">
<el-table height="240" ref="table" width="340px"
@selection-change="handleSelectionChange"
:data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
@@ -24,18 +24,51 @@
</template>
</el-table-column>
</el-table>
-</div>
-<div id="center" style="margin-top: 10px;margin-left: 10px; height: 240px;width: 750px;">
- <img src="../../assets/d1a.png" alt="" style="margin-left: -10px; width: 100%;height: 100%;position: relative;">
+</div> -->
+<div class="parter" style="margin-top: 10px;margin-left: 150px; height: 240px;width: 1000px;">
+ <img src="../../assets/dpxsa.png" style="margin-left: -10px; width: 100%;height: 100%;" alt="Your Image">
+ <div class="moving-rect lipiana" v-show="woshia"></div>
+ <div class="moving-rect lipianb" v-show="woshia"></div>
+ <div class="moving-rect lipianc" v-show="woshic"></div>
+ <div class="moving-rect lipiand" v-show="woshic"></div>
+ <div class="moving-rect overlaya" v-show="flake"></div>
+ <div class="moving-rect overlayb" v-show="flakeb"></div>
+ <div class="moving-rect overlayc" v-show="flakec"></div>
+ <div class="moving-rect overlayd" v-show="flaked"></div>
+ <div class="moving-rect longa" v-show="dalipiana"></div>
+ <div class="moving-rect longb" v-show="dalipianb"></div>
+ <div class="moving-rect shangpianji" v-show="shangpian"></div>
+ <div class="moving-rect xiapianji" v-show="xiapian"></div>
+ <div class="moving-rect xiapianji1" v-show="xiapian1"></div>
+ <div class="moving-rect xiapianji2" v-show="xiapian2"></div>
+ <div class="moving-rect xiapianji3" v-show="xiapian3"></div>
+ <div class="moving-rect xiapianji4" v-show="xiapian4"></div>
+ <div class="moving-rect xiapianji5" v-show="xiapian5"></div>
+ <div class="moving-rect xiapianji6" v-show="xiapian6"></div>
</div>
-<div id="centerright" style="margin-top: 10px;margin-left: 10px; height: 240px;width: 240px;background-color: #911005;">
+<!-- <div class="parter" style="margin-top: 10px;margin-left: 150px; height: 240px;width: 1000px;">
+ <img src="../../assets/dpxsa.png" style="margin-left: -10px; width: 100%;height: 100%;" alt="Your Image">
+ <div class="moving-rect vertical"></div>
+ <div class="moving-rect all"></div>
+ <div class="moving-rect horizontal"></div>
+ <div class="moving-rect xiao"></div>
+ <div class="moving-rect zhan"></div>
+ <div class="moving-rect tu"></div>
+ <div class="moving-rect zi"></div>
+ <div class="moving-rect xia"></div>
+ <div class="moving-rect zan"></div>
+ <div class="moving-rect fa"></div>
+ <div class="moving-rect hua"></div>
+ <div class="moving-rect shui"></div>
+</div> -->
+<!-- <div id="centerright" style="margin-top: 10px;margin-left: 10px; height: 240px;width: 240px;background-color: #911005;">
<el-table height="240" ref="table" width="340px"
@selection-change="handleSelectionChange"
:data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
<el-table-column prop="projectNo" align="center" :label="$t('large.projectnumber')" min-width="50" />
<el-table-column prop="projectName" align="center" :label="$t('large.projectname')" min-width="50" />
</el-table>
-</div>
+</div> -->
</div>
<div id="bottom" style="margin-top: 10px;height: 190px;background-color: #911005;">
<el-table height="190" ref="table"
@@ -58,41 +91,50 @@
</el-tag>
</template>
</el-table-column>
- <el-table-column prop="deliveryDate" align="center" :label="$t('large.deliveryDate')" min-width="50" />
+ <el-table-column prop="deliveryDate" align="center" :label="$t('large.deliveryDate')" min-width="100" />
+ <el-table-column fixed="right" :label="$t('large.operate')" align="center" width="100">
+ <template #default="scope">
+ <el-button size="mini" type="text" plain @click="handleBinda(scope.row)">{{ $t('large.mes') }}</el-button>
+ </template>
+ </el-table-column>
</el-table>
</div>
</el-scrollbar>
</el-card>
-<el-dialog v-model="blinda" top="5vh" width="80%" :title="$t('large.brokeno')">
+<el-dialog v-model="blinda" top="5vh" width="85%">
<el-table height="400" ref="table"
@selection-change="handleSelectionChange"
:data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="reportingWorkTime" fixed align="center" :label="$t('large.time')" min-width="110" />
- <el-table-column prop="orderId" fixed align="center" :label="$t('large.number')" min-width="110" />
- <el-table-column prop="reportingWorkId" align="center" :label="$t('large.jobnumber')" min-width="120" />
- <el-table-column prop="productionId" align="center" :label="$t('large.productionnumber')" min-width="130" />
- <el-table-column prop="processId" align="center" :label="$t('large.cardnumber')" min-width="140" />
- <el-table-column prop="project" align="center" :label="$t('large.projectname')" min-width="110" />
- <el-table-column prop="batch" align="center" :label="$t('large.batch')" min-width="110" />
- <el-table-column prop="reviewer" align="center" :label="$t('large.detailID')" min-width="110" />
- <el-table-column prop="orderSort" align="center" :label="$t('large.serialnumber')" min-width="110" />
- <el-table-column prop="productName" align="center" :label="$t('large.productname')" :show-overflow-tooltip="true" min-width="220" />
- <el-table-column prop="technologyNumber" align="center" :label="$t('large.serial')" min-width="110" />
- <el-table-column prop="glassAddress" align="center" :label="$t('large.slicemarker')" min-width="130" />
- <el-table-column prop="patchNum" align="center" :label="$t('large.numberpatches')" min-width="110" />
- <el-table-column prop="width" align="center" :label="$t('large.width')" min-width="110" />
- <el-table-column prop="height" align="center" :label="$t('large.height')" min-width="110" />
- <el-table-column prop="shape" align="center" :label="$t('large.shape')" min-width="110" />
- <el-table-column prop="responsibleProcess" align="center" :label="$t('large.responsibleprocess')" min-width="110" />
- <el-table-column prop="patchProcesses" align="center" :label="$t('large.process')" min-width="110" />
- <el-table-column prop="breakageQuantity" align="center" :label="$t('large.numberfractions')" min-width="110" />
- <el-table-column prop="patchReason" align="center" :label="$t('large.breakreason')" min-width="110" />
- <el-table-column prop="patchType" align="center" :label="$t('large.breaktype')" min-width="110" />
- <el-table-column prop="responsiblePersonnel" align="center" :label="$t('large.responsiblepersonnel')" min-width="110" />
- <el-table-column prop="responsibleEquipment" align="center" :label="$t('large.responsiblequipment')" min-width="110" />
- <el-table-column prop="responsibleTeam" align="center" :label="$t('large.responsibleteam')" min-width="110" />
- <el-table-column prop="patchArea" align="center" :label="$t('large.area')" min-width="110" />
- <el-table-column prop="qualityInspector" align="center" :label="$t('large.inspector')" min-width="110" />
+ <el-table-column prop="orderId" fixed align="center" :label="$t('large.orderId')" min-width="110" />
+ <el-table-column prop="project" align="center" :label="$t('large.project')" min-width="110" />
+ <el-table-column prop="processId" align="center" :label="$t('large.cardnumber')" min-width="110" />
+ <el-table-column prop="orderNumber" align="center" :label="$t('large.serialnumber')" min-width="110" />
+ <el-table-column prop="productName" align="center" :label="$t('large.productname')" min-width="110" />
+ <el-table-column prop="width" align="center" :label="$t('large.width')" min-width="100" />
+ <el-table-column prop="height" align="center" :label="$t('large.height')" min-width="100" />
+ <el-table-column prop="area" align="center" :label="$t('large.are')" min-width="100" />
+ <el-table-column prop="quantity" align="center" :label="$t('large.number')" min-width="110" />
+ <el-table-column prop="numberPatches" align="center" :label="$t('large.numberpatches')" min-width="110" />
+ <el-table-column prop="receivedQuantity" align="center" :label="$t('large.innumber')" min-width="110" />
+ <el-table-column prop="terminationStatus" align="center" :label="$t('large.productstatus')" min-width="110" />
+ <el-table-column
+ align="center"
+ :label="$t('large.productstatus')"
+ min-width="80"
+ prop="terminationStatus"
+ >
+ <template #default="scope">
+ <el-tag
+ :type="scope.row.terminationStatus === 0 ? 'success' : 'danger'"
+ >
+ {{ scope.row.terminationStatus === 0 ? $t('large.right') : $t('large.stop') }}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column prop="packType" align="center" :label="$t('large.quantity')" min-width="110" />
+ <el-table-column prop="projectNo" align="center" :label="$t('large.projectnumber')" min-width="110" />
+ <!-- <el-table-column prop="processingNote" fixed align="center" :label="$t('large.method')" min-width="110" /> -->
+ <!-- <el-table-column prop="deliveryDate" fixed align="center" :label="$t('large.deliveryDate')" min-width="130" /> -->
</el-table>
<template #footer>
<div id="dialog-footer" style="text-align: center;">
@@ -116,17 +158,51 @@
const tableDatac = ref([])
const adjustedRects = ref([]);
const chartRefs = ref([]);
+const flake = ref(false)
+const flakeb = ref(false)
+const flakec = ref(false)
+const flaked = ref(false)
+const woshia = ref(false)
+const woshic = ref(false)
+const dalipiana = ref(false)
+const dalipianb = ref(false)
+const shangpian = ref(false)
+const xiapian = ref(false)
+const xiapian1 = ref(false)
+const xiapian2 = ref(false)
+const xiapian3 = ref(false)
+const xiapian4 = ref(false)
+const xiapian5 = ref(false)
+const xiapian6 = ref(false)
+
const thisProcess = ref(); // 鐢ㄤ簬瀛樺偍process_id鐨勫搷搴斿紡寮曠敤
// 瀹氫箟涓�涓搷搴斿紡寮曠敤鏉ュ瓨鍌ㄥ浘琛ㄥ疄渚�
const chartDom = ref(null);
let chartInstance = null;
const blinda = ref(false)
-const handleBinda = (row) => {
-blinda.value = true;
-};
-const processesData = ref([
-
-]);
+const handleBinda = async (row) => {
+ blinda.value = true;
+ await fetchFlowCardId(row.orderId);
+};
+const processesData = ref([]);
+const fetchFlowCardId = async (orderId) => {
+ try {
+ const response = await request.post('/loadGlass/order/order/selectOrderdetail',{
+ orderId: orderId
+ })
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ tableData.value = response.data;
+ console.log(tableData.value);
+ } else {
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
function getStatusType(warehousing) {
switch (warehousing) {
case 0:
@@ -148,30 +224,17 @@
}
}
let socket = null;
+let socket2 = null;
+let socket3 = null;
+let socket4 = null;
+let socket5 = null;
+let socket6 = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/screen`;
const handleMessage = (data) => {
-tableData.value = data.awaitingRepairs[0]
+// tableData.value = data.awaitingRepairs[0]
tableDatab.value = data.DoingTask[0]
tableDatac.value = data.orders[0]
-// adjustedRects.value = data.device[0].map(rect => ({
-// ...rect,
-// completed: rect.completedQuantity,
-// breakage: rect.breakageQuantity,
-// thisProcess: rect.thisProcess,
-// }));
-};
-// let socket;
-// 璁剧疆鍥捐〃 DOM 寮曠敤
-function setChartDom(index, el) {
-if (!chartRefs.value[index]) {
- chartRefs.value[index] = { dom: el, chart: null };
-} else {
- chartRefs.value[index].dom = el;
-}
-}
-onMounted(() => {
-socket = new WebSocket(socketUrl);
-socket.onmessage = (event) => {
+ socket.onmessage = (event) => {
const data = JSON.parse(event.data);
processesData.value = data.device[0].map(rect => ({
...rect,
@@ -180,12 +243,61 @@
thisProcess: rect.thisProcess,
}));
renderPieCharts();
- console.log(processesData.value);
- // updateCharts();
+}
};
+function setChartDom(index, el) {
+if (!chartRefs.value[index]) {
+ chartRefs.value[index] = { dom: el, chart: null };
+} else {
+ chartRefs.value[index].dom = el;
+}
+}
+const socketUrl2 = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingIsRun`;
+const handleMessage2 = (data) => {
+ const tasks = data.temperingTaskType[0];
+ flake.value = tasks.some(task => task.state == 1);
+ flakeb.value = tasks.some(task => task.state == 2);
+ flakec.value = tasks.some(task => task.state == 3);
+ flaked.value = tasks.some(task => task.state == 4);
+};
+// 鍗у紡鐞嗙墖
+const socketUrl3 = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlassIsRun`;
+const handleMessage3 = (data) => {
+ const tasks = data.taskCaches[0];
+ woshia.value = tasks.some(task => task.line == 2001);
+ woshic.value = tasks.some(task => task.line == 2002);
+ console.log(tasks);
-// };
-});
+};
+// 澶х悊鐗囩
+const socketUrl4 = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/isRun`;
+const handleMessage4 = (data) => {
+ const tasks = data.bigStorageCageDetailsOutTask[0];
+ const taskss = data.bigStorageCageDetailsFeedTask[0];
+ dalipiana.value = tasks.some(task => task.slot !== null && task.slot !== undefined);
+dalipianb.value = taskss.some(task => task.slot !== null && task.slot !== undefined);
+};
+// 涓婄墖
+const socketUrl5 = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlassIsRun`;
+const handleMessage5 = (data) => {
+ if(data.engineering.length !==0 ){
+ shangpian.value = true;
+}
+};
+// 涓嬬墖
+const socketUrl6 = `ws://${WebSocketHost}:${host}/api/unLoadGlass/api/talk/unLoadGlassIsRun`;
+const handleMessage6 = (data) => {
+ const tasks = data.downWorkstation[0];
+ if (tasks && tasks.length >= 6) {
+ xiapian.value = tasks.some(task => task.racksNumber!== 0);
+ xiapian1.value = tasks[0].racksNumber !== 0;
+ xiapian2.value = tasks[1].racksNumber !== 0;
+ xiapian3.value = tasks[2].racksNumber !== 0;
+ xiapian4.value = tasks[3].racksNumber !== 0;
+ xiapian5.value = tasks[4].racksNumber !== 0;
+ xiapian6.value = tasks[5].racksNumber !== 0;
+ }
+};
const renderPieCharts = () => {
processesData.value.forEach((data, index) => {
const chart = echarts.init(document.getElementById('pieChart_' + index));
@@ -228,43 +340,290 @@
chart.setOption(options);
});
};
-
-
-onUnmounted(() => {
-socket.close();
-});
onMounted(() => {
socket = initializeWebSocket(socketUrl, handleMessage);
+ socket2 = initializeWebSocket(socketUrl2, handleMessage2);
+ socket3 = initializeWebSocket(socketUrl3, handleMessage3);
+ socket4 = initializeWebSocket(socketUrl4, handleMessage4);
+ socket5 = initializeWebSocket(socketUrl5, handleMessage5);
+ socket6 = initializeWebSocket(socketUrl6, handleMessage6);
});
onUnmounted(() => {
if (socket) {
closeWebSocket(socket);
}
+ if (socket2) {
+ closeWebSocket2(socket2);
+ }
+ if (socket3) {
+ closeWebSocket3(socket3);
+ }
+ if (socket4) {
+ closeWebSocket4(socket4);
+ }
+ if (socket5) {
+ closeWebSocket5(socket5);
+ }
+ if (socket6) {
+ closeWebSocket6(socket6);
+ }
});
onBeforeUnmount(() => {
console.log("鍏抽棴浜�")
closeWebSocket();
+closeWebSocket2();
+closeWebSocket3();
+closeWebSocket4();
+closeWebSocket5();
+closeWebSocket6();
});
</script>
<style scoped>
-
-
-
.echarts-container {
display: flex;
flex-wrap: wrap;
gap: 20px;
}
-
.echarts-item {
-width: 150px;
+width: 120px;
height: 150px;
margin: 20px;
}
-
.pie-chart {
width: 100%;
height: 100%;
}
+.parter {
+ position: relative;
+ display: inline-block; /* 浣垮鍣ㄥぇ灏忛�傚簲鍥剧墖澶у皬 */
+ width: 1500px;
+ margin-left: -300px
+}
+img {
+ display: block; /* 璁╁浘鐗囦互鍧楃骇鍏冪礌鏄剧ず */
+ max-width: 100%; /* 纭繚鍥剧墖涓嶈秴鍑哄鍣� */
+}
+.moving-rect {
+ width: 100px;
+ height: 50px;
+ position: absolute;
+}
+.longa{
+ z-index: 1;
+ width: 33px;
+ height: 5px;
+ background-color: #529b2e;
+ margin-top: -15px;
+ margin-left: 130px;
+}
+.longb{
+ z-index: 1;
+ width: 33px;
+ height: 5px;
+ background-color: #529b2e;
+ margin-top: -15px;
+ margin-left: 235px;
+}
+.xiapianji1{
+ z-index: 1;
+ width: 12px;
+ height: 7px;
+ background-color: #529b2e;
+ margin-top: -206px;
+ margin-left: 173px;
+}
+.xiapianji2{
+ z-index: 1;
+ width: 12px;
+ height: 7px;
+ background-color: #529b2e;
+ margin-top: -206px;
+ margin-left: 217px;
+}
+.xiapianji3{
+ z-index: 1;
+ width: 12px;
+ height: 7px;
+ background-color: #529b2e;
+ margin-top: -195px;
+ margin-left: 196px;
+}
+.xiapianji4{
+ z-index: 1;
+ width: 12px;
+ height: 7px;
+ background-color: #529b2e;
+ margin-top: -206px;
+ margin-left: 270px;
+}
+.xiapianji5{
+ z-index: 1;
+ width: 12px;
+ height: 7px;
+ background-color: #529b2e;
+ margin-top: -206px;
+ margin-left: 314px;
+}
+.xiapianji6{
+ z-index: 1;
+ width: 12px;
+ height: 7px;
+ background-color: #529b2e;
+ margin-top: -195px;
+ margin-left: 293px;
+}
+.xiapianji {
+ width: 20px;
+ height: 10px;
+ background-color: #529b2e;
+ top: 9px;
+ left: 200px;
+ transform: translateX(-50%);
+ animation: move-xiapianji 6s infinite;
+}
+@keyframes move-xiapianji {
+ 0% {
+ left: 200px;
+ }
+ 100% {
+ left: calc(100% - 700px);
+ }
+}
+.lipiana {
+ width: 15px;
+ height: 9px;
+ background-color: #529b2e;
+ top: 190px;
+ right: 530px;
+ transform: translateX(-50%);
+ animation: move-lipiana 6s infinite;
+}
+@keyframes move-lipiana {
+ 0% {
+ right: 530px;
+ }
+ 100% {
+ right: calc(100% - 350px);
+ }
+}
+.lipianb {
+ width: 18px;
+ height: 10px;
+ background-color: #529b2e;
+ top: 160px;
+ left: 502px;
+ transform: translateX(-50%);
+ animation: move-lipianb 6s infinite;
+}
+@keyframes move-lipianb {
+ 0% {
+ top: 160px;
+ }
+ 100% {
+ top: calc(100% - 55px);
+ }
+}
+.lipianc {
+ width: 15px;
+ height: 9px;
+ background-color: #529b2e;
+ top: 215px;
+ right: 490px;
+ transform: translateX(-50%);
+ animation: move-lipianc 6s infinite;
+}
+@keyframes move-lipianc {
+ 0% {
+ right: 490px;
+ }
+ 100% {
+ right: calc(100% - 350px);
+ }
+}
+.lipiand {
+ width: 25px;
+ height: 10px;
+ background-color: #529b2e;
+ top: 160px;
+ left: 555px;
+ transform: translateX(-50%);
+ animation: move-lipiand 6s infinite;
+}
+@keyframes move-lipiand {
+ 0% {
+ top: 160px;
+ }
+ 100% {
+ top: calc(100% - 40px);
+ }
+}
+.overlaya {
+ width: 15px;
+ height: 9px;
+ background-color: #529b2e;
+ top: 213px;
+ right: 800px;
+ transform: translateX(-50%);
+ animation: move-overlaya 6s infinite;
+}
+@keyframes move-overlaya {
+ 0% {
+ right: 880px;
+ }
+ 100% {
+ right: calc(100% - 15px);
+ }
+}
+.overlayb {
+ width: 20px;
+ height: 10px;
+ background-color: #529b2e;
+ top: 110px;
+ left: 13px;
+ transform: translateX(-50%);
+ animation: move-overlayb 6s infinite;
+}
+@keyframes move-overlayb {
+ 0% {
+ top: 160px;
+ }
+ 100% {
+ top: calc(100% - 190px);
+ }
+}
+.overlayc {
+ width: 20px;
+ height: 10px;
+ background-color: #529b2e;
+ top: 7px;
+ left: 13px;
+ transform: translateX(-50%);
+ animation: move-overlayc 6s infinite;
+}
+@keyframes move-overlayc {
+ 0% {
+ left: 20px;
+ }
+ 100% {
+ left: calc(100% - 900px);
+ }
+}
+.shangpianji {
+ width: 20px;
+ height: 10px;
+ background-color: #529b2e;
+ top: 157px;
+ right: 90px;
+ transform: translateX(-50%);
+ animation: move-shangpianji 6s infinite;
+}
+@keyframes move-shangpianji {
+ 0% {
+ right: 90px;
+ }
+ 100% {
+ right: calc(100% - 770px);
+ }
+}
</style>
\ No newline at end of file
diff --git a/hangzhoumesParent/JsonFile/PlcdownGlass.json b/hangzhoumesParent/JsonFile/PlcdownGlass.json
deleted file mode 100644
index 979dc66..0000000
--- a/hangzhoumesParent/JsonFile/PlcdownGlass.json
+++ /dev/null
@@ -1,144 +0,0 @@
-{
- "plcAddressBegin": "DB11.0",
- "plcAddressLenght": "100",
- "dataType": "word",
- "parameteInfor": [
-
- {
- "codeId": "requestWord",
- "addressIndex": "0",
- "addressLenght": "2"
- },
- {
- "codeId": "requestID",
- "addressIndex": "2",
- "addressLenght": "30"
- },
- {
- "codeId": "currentCell",
- "addressIndex": "32",
- "addressLenght": "2"
- },
- {
- "codeId": "glassStatus08",
- "addressIndex": "36",
- "addressLenght": "2"
- },
- {
- "codeId": "G06_glass_status",
- "addressIndex": "40",
- "addressLenght": "2"
- },
- {
- "codeId": "G11_glass_status",
- "addressIndex": "42",
- "addressLenght": "2"
- },
- {
- "codeId": "G13_glass_status",
- "addressIndex": "44",
- "addressLenght": "2"
- },
- {
- "codeId": "G04_error_status",
- "addressIndex": "48",
- "addressLenght": "2"
- },
- {
- "codeId": "G05_error_status",
- "addressIndex": "50",
- "addressLenght": "2"
- },
- {
- "codeId": "G06_error_status",
- "addressIndex": "52",
- "addressLenght": "2"
- },
- {
- "codeId": "robot_error_status",
- "addressIndex": "54",
- "addressLenght": "2"
- },
- {
- "codeId": "G08_error_status",
- "addressIndex": "56",
- "addressLenght": "2"
- },
- {
- "codeId": "G09_error_status",
- "addressIndex": "58",
- "addressLenght": "2"
- },
- {
- "codeId": "G10_error_status",
- "addressIndex": "60",
- "addressLenght": "2"
- },
- {
- "codeId": "G11_error_status",
- "addressIndex": "62",
- "addressLenght": "2"
- },
- {
- "codeId": "robot_error_status",
- "addressIndex": "64",
- "addressLenght": "2"
- },
- {
- "codeId": "G13_error_status",
- "addressIndex": "66",
- "addressLenght": "2"
- },
- {
- "codeId": "confirmationWord",
- "addressIndex": "72",
- "addressLenght": "2"
- },
- {
- "codeId": "G06_prohibit_film_production",
- "addressIndex": "74",
- "addressLenght": "2"
- },
- {
- "codeId": "G11_prohibit_film_production",
- "addressIndex": "76",
- "addressLenght": "2"
- },
- {
- "codeId": "G13_prohibit_film_production",
- "addressIndex": "78",
- "addressLenght": "2"
- },
- {
- "codeId": "Glass_width",
- "addressIndex": "82",
- "addressLenght": "4"
- },
- {
- "codeId": "Glass_height",
- "addressIndex": "86",
- "addressLenght": "4"
- },
- {
- "codeId": "Glass_thickness",
- "addressIndex": "90",
- "addressLenght": "4"
- },
- {
- "codeId": "Start_cell",
- "addressIndex": "94",
- "addressLenght": "2"
- },
- {
- "codeId": "End_cell",
- "addressIndex": "96",
- "addressLenght": "2"
- },
- {
- "codeId": "task_type",
- "addressIndex": "98",
- "addressLenght": "2"
- }
-
- ]
-}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/DamageDetailsService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/DamageDetailsService.java
deleted file mode 100644
index a3b3e5a..0000000
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/DamageDetailsService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.mes.pp.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.mes.pp.entity.DamageDetails;
-
-/**
- * <p>
- * 鏈嶅姟绫�
- * </p>
- *
- * @author wu
- * @since 2024-07-26
- */
-public interface DamageDetailsService extends IService<DamageDetails> {
-
-}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkDetailService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkDetailService.java
deleted file mode 100644
index 0b53228..0000000
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkDetailService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.mes.pp.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.mes.pp.entity.ReportingWorkDetail;
-
-/**
- * <p>
- * 鏈嶅姟绫�
- * </p>
- *
- * @author wu
- * @since 2024-07-25
- */
-public interface ReportingWorkDetailService extends IService<ReportingWorkDetail> {
-
-}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
index 006c8f9..a323a39 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
@@ -31,7 +31,7 @@
// 3銆佹暟鎹簮閰嶇疆
DataSourceConfig dsc = new DataSourceConfig();
- dsc.setUrl("jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8");
+ dsc.setUrl("jdbc:mysql://localhost:3306/pp?serverTimezone=GMT%2b8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("beibo.123/");
@@ -41,7 +41,7 @@
// 4銆佸寘閰嶇疆
PackageConfig pc = new PackageConfig();
pc.setParent("com.mes");
- pc.setModuleName("work_assignment"); //妯″潡鍚�
+ pc.setModuleName("flow_card"); //妯″潡鍚�
pc.setController("controller");
pc.setService("service");
pc.setMapper("mapper");
@@ -50,7 +50,7 @@
// 5銆佺瓥鐣ラ厤缃�
StrategyConfig strategy = new StrategyConfig();
- strategy.setInclude("work_assignment");
+ strategy.setInclude("flow_card");
strategy.setNaming(NamingStrategy.underline_to_camel);//鏁版嵁搴撹〃鏄犲皠鍒板疄浣撶殑鍛藉悕绛栫暐
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml
index 92cbb79..48ea8cc 100644
--- a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml
@@ -4,12 +4,12 @@
<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, engineer_id) VALUES
+ tempering_feed_sequence, x_coordinate, y_coordinate, angle, state, slot, engineer_id, deleted) 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}, #{item.engineerId})
+ #{item.angle}, #{item.state}, #{item.slot}, #{item.engineerId}, 0)
</foreach>
</insert>
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
index d2b47b8..3dcf2d7 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -88,7 +88,7 @@
public static String engineerId = "";
- @Scheduled(fixedDelay = 1000)
+// @Scheduled(fixedDelay = 1000)
public void plcHomeEdgTask() {
Date startDate = new Date();
log.info("鏈浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/TaskCacheMapper.xml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/TaskCacheMapper.xml
index e19d670..8ddf253 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/TaskCacheMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/TaskCacheMapper.xml
@@ -13,6 +13,7 @@
FROM task_cache
<where>
end_cell = #{line}
+ and deleted = 0
AND task_type in
<foreach collection="taskTypes" item="item" open='(' close=')' separator=','>
#{item}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java
index b6f1cbd..99d6bb8 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java
@@ -17,6 +17,6 @@
public interface BigStorageCageMapper extends MPJBaseMapper<BigStorageCage> {
List<Integer> queryFreeDeviceByUsed(@Param(value = "thickness") double thickness);
-
- List<Integer> queryFreeDeviceByNotUsed(@Param(value = "thickness") double thickness);
+//
+// List<Integer> queryFreeDeviceByNotUsed(@Param(value = "thickness") double thickness);
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
index 9ba368b..14eb11a 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
@@ -34,5 +34,5 @@
List<Integer> queryFreeDeviceByUsed(double thickness);
- List<Integer> queryFreeDeviceByNotUsed(double thickness);
+// List<Integer> queryFreeDeviceByNotUsed(double thickness);
}
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 7138c20..a7531d2 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
@@ -186,28 +186,32 @@
TemperingGlassInfo temperingGlassInfo = temperingGlassInfoMapper.selectOne(temperingGlassInfoWrapper);
LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper = new LambdaQueryWrapper<>();
- bigStorageCageDetailsWrapper.eq(BigStorageCageDetails::getGlassId, glassId);
+ bigStorageCageDetailsWrapper
+ .eq(BigStorageCageDetails::getGlassId, glassId)
+ .eq(BigStorageCageDetails::getState,Const.GLASS_STATE_IN);
BigStorageCageDetails bigStorageCageDetails = baseMapper.selectOne(bigStorageCageDetailsWrapper);
if (temperingGlassInfo != null) {
if (status == 0) {
- temperingGlassInfo.setState(Const.TEMPERING_DAMAGE);
+ temperingGlassInfo.setState(Const.GLASS_STATE_DAMAGE);
} else {
- temperingGlassInfo.setState(Const.TEMPERING_TAKE);
+ temperingGlassInfo.setState(Const.GLASS_STATE_TAKE);
}
temperingGlassInfoMapper.updateById(temperingGlassInfo);
}
+ Damage damage = new Damage();
if (status == 0) {
bigStorageCageDetails.setState(Const.GLASS_STATE_DAMAGE);
+ damage.setType(Const.GLASS_STATE_DAMAGE);
} else {
bigStorageCageDetails.setState(Const.GLASS_STATE_TAKE);
+ damage.setType(Const.GLASS_STATE_TAKE);
}
baseMapper.updateById(bigStorageCageDetails);
bigStorageCageService.updateRemainWidth(bigStorageCageDetails.getSlot());
- //todo:鎻掑叆鐮存崯鏁版嵁
- Damage damage = new Damage();
damage.setGlassId(bigStorageCageDetails.getGlassId());
damage.setWorkingProcedure("鍐峰姞宸�");
+ damage.setLine(3001);
damage.setRemark("澶х悊鐗囩鐮存崯");
damage.setStatus(2);
damageService.insertDamage(damage);
@@ -217,6 +221,7 @@
@Override
public List<BigStorageCageDetails> selectBigStorageCageDetails(String glassId) {
LambdaQueryWrapper<GlassInfo> glassInfoWrapper = new LambdaQueryWrapper<>();
+ List<BigStorageCageDetails> bigStorageCageDetailsList=new ArrayList<>();
glassInfoWrapper.eq(GlassInfo::getGlassId, glassId);
GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoWrapper);
BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails();
@@ -224,13 +229,10 @@
BeanUtils.copyProperties(glassInfo, bigStorageCageDetails);
bigStorageCageDetails.setState(1);
bigStorageCageDetails.setGap(glassGap);
- List<BigStorageCageDetails> bigStorageCageDetailsList = new ArrayList<>();
+ bigStorageCageDetailsList = new ArrayList<>();
bigStorageCageDetailsList.add(bigStorageCageDetails);
- return bigStorageCageDetailsList;
- } else {
- return null;
}
-
+ return bigStorageCageDetailsList;
}
//鐞嗙墖绗艰鎯呮坊鍔�
@@ -274,6 +276,9 @@
.gt(BigStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight()))
.last("limit 1");
if (glassInfo.getTemperingLayoutId() == 0) {
+ //todo:鍚屾祦绋嬭繘鍚屼竴鏍�
+// wrapper.eq(BigStorageCageDetails::getFlowCardId,glassInfo.getFlowCardId())
+// .eq(BigStorageCageDetails::get)
wrapper.eq(BigStorageCageDetails::getWidth, glassInfo.getWidth()).eq(BigStorageCageDetails::getHeight, glassInfo.getHeight());
} else {
wrapper.eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() + 1);
@@ -322,22 +327,22 @@
}
//鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨
- List<Integer> deviceNotUsedList = bigStorageCageService.queryFreeDeviceByNotUsed(glassInfo.getThickness());
- for (Integer item : deviceNotUsedList) {
- bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
- .eq(BigStorageCage::getRemainWidth, slotWidth)
- .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
- .eq(BigStorageCage::getDeviceId, item)
- .last("limit 1"));
- if (null != bigStorageCage) {
- log.info("鎸夌収瀛樼鐜荤拑鏍煎瓙鏁板墿浣欐渶澶氬緱鏂瑰紡鑾峰彇淇℃伅鐗堝浘id:{},鏍煎瓙锛歿},鐜荤拑id锛歿}", glassInfo.getTemperingLayoutId(), bigStorageCage.getSlot(), glassInfo.getGlassId());
- bigStorageDTO = new BigStorageDTO();
- bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
- bigStorageDTO.setSlot(bigStorageCage.getSlot());
- bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
- return bigStorageDTO;
- }
- }
+// List<Integer> deviceNotUsedList = bigStorageCageService.queryFreeDeviceByNotUsed(glassInfo.getThickness());
+// for (Integer item : deviceNotUsedList) {
+// bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+// .eq(BigStorageCage::getRemainWidth, slotWidth)
+// .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+// .eq(BigStorageCage::getDeviceId, item)
+// .last("limit 1"));
+// if (null != bigStorageCage) {
+// log.info("鎸夌収瀛樼鐜荤拑鏍煎瓙鏁板墿浣欐渶澶氬緱鏂瑰紡鑾峰彇淇℃伅鐗堝浘id:{},鏍煎瓙锛歿},鐜荤拑id锛歿}", glassInfo.getTemperingLayoutId(), bigStorageCage.getSlot(), glassInfo.getGlassId());
+// bigStorageDTO = new BigStorageDTO();
+// bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+// bigStorageDTO.setSlot(bigStorageCage.getSlot());
+// bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+// return bigStorageDTO;
+// }
+// }
Assert.isTrue(null != bigStorageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
return bigStorageDTO;
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java
index d539f7c..e783646 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -77,5 +78,8 @@
@ApiModelProperty(value = "鍒涘缓鏃堕棿", position = 8)
private Date createTime;
+ @TableLogic
+ private int deleted;
+
}
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 e5279a4..c4caf74 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
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -91,4 +92,7 @@
@ApiModelProperty(value = "浠诲姟鐘舵��", position = 8)
private Integer taskState;
+ @TableLogic
+ private int deleted;
+
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
index c007100..000519d 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
@@ -1,5 +1,6 @@
package com.mes.edgglasstask.entity;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -74,4 +75,7 @@
@ApiModelProperty(value = "鏃堕棿", position = 9)
private Date time;
+ @TableLogic
+ private int deleted;
+
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
index d902299..7d8c5da 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -3,20 +3,20 @@
spring:
profiles:
- active: prod
+ active: cz
application:
name: cacheVerticalGlass
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
- configuration:
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+# configuration:
+# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mes:
sequence:
order: false
- minCount: 5
+ minCount: 20
carWidth: 5000 #澶ц溅瀹藉害
slotWidth: 5000 #澶ц溅瀹藉害
- inCarMaxSize: 2 #杩涚墖澶ц溅鏈�澶у瓨鏀剧幓鐠冩暟閲�
+ inCarMaxSize: 3 #杩涚墖澶ц溅鏈�澶у瓨鏀剧幓鐠冩暟閲�
outCarMaxSize: 3 #鍑虹墖澶ц溅鏈�澶у瓨鏀剧幓鐠冩暟閲�
- glassGap: 1000 #鐜荤拑闂磋窛
+ glassGap: 350 #鐜荤拑闂磋窛
xMaxSize: 2850
\ 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 be947ce..79dcea8 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -41,7 +41,8 @@
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
- ORDER BY T2.ENGINEER_ID, T2.TEMPERING_LAYOUT_ID
+ INNER JOIN ENGINEERING T4 ON T2.ENGINEER_ID=T4.ENGINEER_ID
+ ORDER BY T4.ID, T2.TEMPERING_LAYOUT_ID
</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 c4affcd..954de19 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml
@@ -15,6 +15,7 @@
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 deleted = 0
and (target_slot = 0 or target_slot is null)
group by line
) t
@@ -36,6 +37,7 @@
WHERE LINE = #{line}
AND (target_slot = 0 or target_slot is null)
AND TASK_STATE IN (1, 2)
+ and deleted = 0
) T
</select>
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml
index d9b1ce4..e8cc8c2 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml
@@ -6,24 +6,25 @@
<select id="queryFreeDeviceByUsed" resultType="java.lang.Integer">
SELECT T.DEVICE_ID
FROM BIG_STORAGE_CAGE T
- LEFT JOIN (SELECT * FROM BIG_STORAGE_CAGE_DETAILS WHERE STATE NOT IN (101, 200, 201)) T1
+ LEFT JOIN (SELECT * FROM BIG_STORAGE_CAGE_DETAILS WHERE STATE NOT IN (101, 8, 9)) T1
ON T.SLOT = T1.SLOT
WHERE T.MAX_THICKNESS >= #{thickness}
AND T.ENABLE_STATE = 1
GROUP BY T.DEVICE_ID
- ORDER BY COUNT(DISTINCT T1.TEMPERING_LAYOUT_ID),
+ ORDER BY COUNT(DISTINCT T1.ENGINEER_ID), COUNT(DISTINCT T1.TEMPERING_LAYOUT_ID),
COUNT(DISTINCT T1.SLOT)
</select>
- <select id="queryFreeDeviceByNotUsed" resultType="java.lang.Integer">
- SELECT T.DEVICE_ID
- FROM BIG_STORAGE_CAGE T
- LEFT JOIN (SELECT * FROM BIG_STORAGE_CAGE_DETAILS WHERE STATE NOT IN (101, 200, 201)) T1
- ON T.SLOT = T1.SLOT
- WHERE T.MAX_THICKNESS >= #{thickness}
- AND T.ENABLE_STATE = 1
- GROUP BY T.DEVICE_ID
- ORDER BY COUNT(DISTINCT T1.TEMPERING_LAYOUT_ID),
- COUNT(DISTINCT T.SLOT) - COUNT(DISTINCT T1.SLOT) DESC
- </select>
+ <!-- <select id="queryFreeDeviceByNotUsed" resultType="java.lang.Integer">-->
+ <!-- SELECT T.DEVICE_ID-->
+ <!-- FROM BIG_STORAGE_CAGE T-->
+ <!-- LEFT JOIN (SELECT * FROM BIG_STORAGE_CAGE_DETAILS WHERE STATE NOT IN (101, 8, 9)) T1-->
+ <!-- ON T.SLOT = T1.SLOT-->
+ <!-- WHERE T.MAX_THICKNESS >= #{thickness}-->
+ <!-- AND T.ENABLE_STATE = 1-->
+ <!-- GROUP BY T.DEVICE_ID-->
+ <!-- ORDER BY COUNT(DISTINCT T1.ENGINEER_ID)-->
+ <!-- COUNT(DISTINCT T1.TEMPERING_LAYOUT_ID),-->
+ <!-- COUNT(DISTINCT T.SLOT) - COUNT(DISTINCT T1.SLOT) DESC-->
+ <!-- </select>-->
</mapper>
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml
index 338e5e1..7e9084d 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml
@@ -3,12 +3,14 @@
<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
- )
+ INSERT INTO big_storage_cage_out_task ( glass_id, start_slot, end_slot, train_number, serial_number, width,
+ height, task_state,
+ deleted )
values
<foreach collection="list" item="item" separator=",">
(#{item.glassId}, #{item.startSlot}, #{item.endSlot}, #{item.trainNumber}, #{item.serialNumber},
- #{item.taskState})
+ #{item.width}, #{item.height},
+ #{item.taskState},0)
</foreach>
</insert>
</mapper>
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
index 73cc34b..4d0abc8 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
@@ -53,10 +53,7 @@
public Result <Integer> updateTemperingState(@RequestBody Damage damage) {
damageService.insertDamage(damage);
TemperingGlassInfo temperingGlassInfo=new TemperingGlassInfo();
- if(damage.getStatus()==2){
- temperingGlassInfo.setState(5);
-
- }
+ temperingGlassInfo.setState(damage.getStatus());
temperingGlassInfo.setGlassId(damage.getGlassId());
int result=temperingGlassInfoService.updateTemperingState(temperingGlassInfo);
return Result.build(200, "鐮存崯鎴愬姛", result);
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
index ae0d119..246a786 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
@@ -4,18 +4,8 @@
primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
datasource:
-# hangzhoumes:
-# url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8
-# username: root
-# password: beibo.123/
-# driver-class-name: com.mysql.cj.jdbc.Driver
-# salve_hangzhoumes:
-# url: jdbc:sqlserver://127.0.0.1:1433;databasename=hangzhoumes
-# username: sa
-# password: beibo.123/
-# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
hangzhoumes:
- url: jdbc:mysql:127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8
+ url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8
username: root
password: beibo.123/
driver-class-name: com.mysql.cj.jdbc.Driver
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
index c9a17a1..d3a8e05 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
@@ -1,5 +1,13 @@
package com.mes.downglassinfo.controller;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.entity.request.DownGlassInfoRequest;
+import com.mes.downglassinfo.service.DownGlassInfoService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -7,5 +15,26 @@
@RequestMapping("/downGlassInfo")
public class DownGlassInfoController {
+ @Autowired
+ DownGlassInfoService downGlassInfoService;
+
+ /**
+ * 璁剧疆鏌ヨ鍙傛暟
+ *
+ * @param request
+ * @return
+ */
+ @PostMapping("/setDownGlassInfoRequest")
+ @ApiOperation(value = "璁剧疆钀芥灦鐜荤拑鏌ヨ鍙傛暟", notes = "璁剧疆钀芥灦鐜荤拑鏌ヨ鍙傛暟")
+ public Result<String> setDownGlassInfoRequest(@RequestBody DownGlassInfoRequest request) {
+ Result.success(downGlassInfoService.setDownGlassInfoRequest(request));
+ return Result.build(200, "鏌ヨ鎴愬姛", "1");
+
+ }
+
+ @PostMapping("/downGlassPrint")
+ public Result downGlassPrint(@RequestBody DownGlassInfo downGlassInfo) {
+ return Result.build(200, "鏌ヨ鎴愬姛", downGlassInfoService.downGlassPrint(downGlassInfo));
+ }
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
index add927c..55a4ee9 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
@@ -7,6 +7,7 @@
import org.springframework.stereotype.Component;
import java.io.Serializable;
+import java.util.Date;
/**
* <p>
@@ -79,5 +80,14 @@
*/
private String glassId;
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private Date gmtCreate;
+
+ /**
+ * 鐜荤拑绫诲瀷
+ */
+ private Integer glassType;
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java
index e2da1a1..e82e684 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -87,4 +88,7 @@
* 鍒涘缓鏃堕棿
*/
private Date CreateTime;
+
+ @TableLogic
+ private int deleted;
}
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 1a6ba68..da649b8 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
@@ -33,5 +33,13 @@
* @param isDownload 鏄惁鑾峰彇鏈惤鏋剁幓鐠冧俊鎭� True 宸茶惤鏋� false 鏈惤鏋�
* @return
*/
- List<DownGlassInfoDTO> queryWorkStationIsIn(@Param(value = "isDownload") Boolean isDownload);
+ List<DownGlassInfoDTO> queryWorkStationIsIn(@Param(value = "workList") List<Integer> workList, @Param(value = "isDownload") Boolean isDownload);
+
+ /**
+ * 鑾峰彇
+ *
+ * @param workList
+ * @return
+ */
+ List<DownGlassInfoDTO> queryWorkStationFlowCard(@Param(value = "workList") List<Integer> workList);
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
index 0830e6b..6e9c45d 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
@@ -2,9 +2,12 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.entity.request.DownGlassInfoRequest;
+import com.mes.downworkstation.entity.DownWorkstation;
import com.mes.downworkstation.entity.dto.DownGlassInfoDTO;
import java.util.List;
+import java.util.Map;
public interface DownGlassInfoService extends IService<DownGlassInfo> {
@@ -31,7 +34,15 @@
* @param isDownload true/false
* @return
*/
- List<DownGlassInfoDTO> queryWorkStationIsIn(Boolean isDownload);
+ List<DownGlassInfoDTO> queryWorkStationIsIn(List<Integer> workList, Boolean isDownload);
+
+ /**
+ * 鑾峰彇鎸囧畾鏋跺瓙宸茬粦瀹氭祦绋嬪崱鐨勬灦瀛愭湭钀界幓鐠冪殑鏁版嵁淇℃伅
+ *
+ * @param workList 鎸囧畾鐨勬灦瀛愬彿
+ * @return
+ */
+ List<DownGlassInfoDTO> queryWorkStationFlowCard(List<Integer> workList);
/**
* 鐢熸垚鍑虹墖浠诲姟
@@ -40,4 +51,18 @@
* @return
*/
boolean generateOutGlassTask(String glassId);
+
+ /**
+ * 璁剧疆鏋跺瓙瀹氭椂浠诲姟鏌ヨ鏉′欢
+ *
+ * @param request
+ * @return
+ */
+ String setDownGlassInfoRequest(DownGlassInfoRequest request);
+
+ List<Map<String, List<Map<String, Object>>>> downGlassPrint(DownGlassInfo downGlassInfo);
+
+ List<DownWorkstation> queryWorkStationIsFull();
+
+
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java
index e7feaef..3a9e7f3 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java
@@ -2,6 +2,7 @@
import com.mes.downstorage.entity.DownStorageCage;
import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.entity.request.CacheWornRequest;
import com.mes.downstorage.service.DownStorageCageDetailsService;
import com.mes.downstorage.service.DownStorageCageService;
import com.mes.utils.Result;
@@ -61,8 +62,9 @@
@ApiOperation("鍒犻櫎缂撳瓨鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愭竻闄ゃ��")
@PostMapping("/deleteDownStorageCage")
@ResponseBody
- public Result deleteDownStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails,int downStorageCageId) {
- boolean isSucess=downStorageCageService.updateDownStorageCageDetails(downStorageCageId,downStorageCageDetails);
+ public Result deleteDownStorageCage(@RequestBody CacheWornRequest cacheWornRequest) {
+ downStorageCageService.deleteDownStorageCage(cacheWornRequest);
+// boolean isSucess=downStorageCageService.updateDownStorageCageDetails(downStorageCageId,downStorageCageDetails);
return Result.build(200,"鍒犻櫎鎴愬姛",1);
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
index 54966ee..5d2a5d5 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
@@ -71,12 +71,19 @@
*/
boolean DirectConnection(GlassInfo glassInfo);
+ /**
+ * 鑾峰彇褰撳墠闈炴湰鏋跺瓙鍙惤鏋剁殑鐜荤拑淇℃伅
+ *
+ * @param glassId
+ * @param workList G06/G11:浼犲叆G06瀹為檯鑾峰彇鐨勪负鍙惤鏋禛11鐨勭幓鐠� 鍙嶄箣鍚岀悊
+ * @return
+ */
String getGlassInfoMaxCount(String glassId, List<Integer> workList);
/**
* @param glassId
* @param ControlsId
- * @return 鐮存崯
+ * @return 鐮存崯
*/
boolean identWorn(String glassId, int ControlsId);
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
index 5281217..09ff9fc 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
@@ -4,6 +4,7 @@
import com.mes.downglassinfo.entity.DownGlassTask;
import com.mes.downstorage.entity.DownStorageCage;
import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.entity.request.CacheWornRequest;
import com.mes.glassinfo.entity.GlassInfo;
import java.util.List;
@@ -53,6 +54,8 @@
List<Map<String, Object>> selectDownStorageCages();
List<DownStorageCageDetails> selectCacheMax();
+
+ void deleteDownStorageCage(CacheWornRequest cacheWornRequest);
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
index f6a69e4..3c547af 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
@@ -1,6 +1,7 @@
package com.mes.downworkstation.controller;
+import com.mes.common.utils.RedisUtil;
import com.mes.downworkstation.entity.DownWorkstation;
import com.mes.downworkstation.entity.request.DownWorkRequest;
import com.mes.downworkstation.service.DownWorkstationService;
@@ -11,6 +12,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@@ -32,6 +34,8 @@
private DownWorkstationService downWorkstationService;
@Autowired
private GlassInfoService glassInfoService;
+ @Resource
+ private RedisUtil redisUtil;
@ApiOperation("鑾峰彇宸ヤ綅淇℃伅")
@GetMapping("/getone")
@@ -77,9 +81,8 @@
// 璋冪敤 DownWorkstationService 涓殑鏂规硶娓呴櫎鎸囧畾宸ヤ綅ID鐨勪俊鎭�
int workstationId = (int) requestData.get("workstationId");
- downWorkstationService.clearFlowCardId(workstationId);
- return Result.build(200, "娓呴櫎宸ヤ綅淇℃伅鎴愬姛", 1);
-
+ downWorkstationService.clearFlowCardId(workstationId);
+ return Result.build(200, "娓呴櫎宸ヤ綅淇℃伅鎴愬姛", 1);
// 鏋勫缓鍝嶅簲鏁版嵁
@@ -120,6 +123,20 @@
return Result.build(200, "鏇存崲鎴愬姛", isSucess);
}
+ @ApiOperation("鍏抽棴宸ヤ綅宸叉弧璀︽姤")
+ @PostMapping("/closeAlarmSignal")
+ @ResponseBody
+ public Result<String> closeAlarmSignal() {
+ return Result.build(200, "鏇存崲鎴愬姛", downWorkstationService.closeAlarmSignal());
+ }
+
+ @ApiOperation("鏄惁鑷姩鎵撳嵃")
+ @PostMapping("/autoPrint")
+ public Result autoPrint(Boolean flag) {
+ downWorkstationService.autoPrint(flag);
+ return Result.build(200, "淇敼鎴愬姛", redisUtil.getCacheObject("autoPrint"));
+ }
+
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
index a101328..461935d 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
@@ -77,4 +77,8 @@
* @returnq 鍚敤绂佺敤
*/
boolean updateDownWorkstationstate(DownWorkstation downWorkstation);
+
+ String closeAlarmSignal();
+
+ void autoPrint(Boolean flag);
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.json
deleted file mode 100644
index de826b1..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.json
+++ /dev/null
@@ -1,144 +0,0 @@
-{
- "plcAddressBegin": "DB11.0",
- "plcAddressLenght": "100",
- "dataType": "word",
- "parameteInfor": [
-
- {
- "codeId": "requestWord",
- "addressIndex": "0",
- "addressLenght": "2"
- },
- {
- "codeId": "requestID",
- "addressIndex": "2",
- "addressLenght": "20"
- },
- {
- "codeId": "currentCell",
- "addressIndex": "32",
- "addressLenght": "2"
- },
- {
- "codeId": "glassStatus08",
- "addressIndex": "36",
- "addressLenght": "2"
- },
- {
- "codeId": "G06_glass_status",
- "addressIndex": "40",
- "addressLenght": "2"
- },
- {
- "codeId": "G11_glass_status",
- "addressIndex": "42",
- "addressLenght": "2"
- },
- {
- "codeId": "G13_glass_status",
- "addressIndex": "44",
- "addressLenght": "2"
- },
- {
- "codeId": "G04_error_status",
- "addressIndex": "48",
- "addressLenght": "2"
- },
- {
- "codeId": "G05_error_status",
- "addressIndex": "50",
- "addressLenght": "2"
- },
- {
- "codeId": "G06_error_status",
- "addressIndex": "52",
- "addressLenght": "2"
- },
- {
- "codeId": "robot_error_status",
- "addressIndex": "54",
- "addressLenght": "2"
- },
- {
- "codeId": "G08_error_status",
- "addressIndex": "56",
- "addressLenght": "2"
- },
- {
- "codeId": "G09_error_status",
- "addressIndex": "58",
- "addressLenght": "2"
- },
- {
- "codeId": "G10_error_status",
- "addressIndex": "60",
- "addressLenght": "2"
- },
- {
- "codeId": "G11_error_status",
- "addressIndex": "62",
- "addressLenght": "2"
- },
- {
- "codeId": "robot_error_status",
- "addressIndex": "64",
- "addressLenght": "2"
- },
- {
- "codeId": "G13_error_status",
- "addressIndex": "66",
- "addressLenght": "2"
- },
- {
- "codeId": "confirmationWord",
- "addressIndex": "72",
- "addressLenght": "2"
- },
- {
- "codeId": "G06_prohibit_film_production",
- "addressIndex": "74",
- "addressLenght": "2"
- },
- {
- "codeId": "G11_prohibit_film_production",
- "addressIndex": "76",
- "addressLenght": "2"
- },
- {
- "codeId": "G13_prohibit_film_production",
- "addressIndex": "78",
- "addressLenght": "2"
- },
- {
- "codeId": "Glass_width",
- "addressIndex": "82",
- "addressLenght": "4"
- },
- {
- "codeId": "Glass_height",
- "addressIndex": "86",
- "addressLenght": "4"
- },
- {
- "codeId": "Glass_thickness",
- "addressIndex": "90",
- "addressLenght": "4"
- },
- {
- "codeId": "Start_cell",
- "addressIndex": "94",
- "addressLenght": "2"
- },
- {
- "codeId": "End_cell",
- "addressIndex": "96",
- "addressLenght": "2"
- },
- {
- "codeId": "task_type",
- "addressIndex": "98",
- "addressLenght": "2"
- }
-
- ]
-}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-cz.yml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-cz.yml
index c4c456e..0a84425 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-cz.yml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-cz.yml
@@ -14,6 +14,11 @@
username: sa
password: beibo.123/
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+ pp:
+ url: jdbc:mysql://192.168.1.199: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/main/resources/mapper/DownGlassInfoMapper.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
index f13a7b4..c633e7d 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
@@ -58,16 +58,36 @@
AND T.LAYER = T1.LAYER
LEFT JOIN DOWN_GLASS_INFO T2 ON T1.GLASS_ID = T2.GLASS_ID
<where>
+ t.workstation_id in
+ <foreach collection="workList" item="item" open='(' close=')' separator=','>
+ #{item}
+ </foreach>
<if test="!isDownload">
AND T2.GLASS_ID IS NULL
</if>
<if test="isDownload">
AND T2.GLASS_ID IS not NULL
</if>
+
</where>
ORDER BY
T.RACKS_NUMBER DESC,
T1.TEMPERING_LAYOUT_ID,
T1.TEMPERING_FEED_SEQUENCE DESC
</select>
+ <select id="queryWorkStationFlowCard" resultMap="downGlassInfo">
+ SELECT
+ T.FLOW_CARD_ID,
+ T.LAYER,
+ T.RACKS_NUMBER
+ FROM
+ DOWN_WORKSTATION T
+ where
+ (t.flow_card_id is not null and t.flow_card_id != '')
+ and t.workstation_id in
+ <foreach collection="workList" item="item" open='(' close=')' separator=','>
+ #{item}
+ </foreach>
+ ORDER BY T.RACKS_NUMBER DESC
+ </select>
</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml
index ee9090e..5d6f3ef 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml
@@ -28,12 +28,11 @@
FROM DOWN_STORAGE_CAGE_DETAILS
WHERE STATE = 100
and (FLOW_CARD_ID, LAYER) not in (
- select FLOW_CARD_ID, LAYER from down_workstation where flow_card_id is not null and workstation_id not in
+ select FLOW_CARD_ID, LAYER from down_workstation where flow_card_id is not null and workstation_id in
<foreach collection="workList" item="item" open='(' close=')' separator=','>
#{item}
</foreach>
)
-
GROUP BY FLOW_CARD_ID, LAYER
ORDER BY COUNT(FLOW_CARD_ID) DESC
LIMIT 1 )
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
index 4029a6e..4c38ae0 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.entity.DownGlassInfo;
import com.mes.downglassinfo.service.DownGlassInfoService;
import com.mes.downglassinfo.service.DownGlassTaskService;
import com.mes.downglassinfo.service.impl.DownGlassInfoServiceImpl;
@@ -224,7 +225,13 @@
}*/
-
+ @Test
+ public void downGlassPrint() {
+ DownGlassInfo downGlassInfo=new DownGlassInfo();
+ downGlassInfo.setFlowCardId("NG24070506A001");
+ downGlassInfo.setLayer(1);
+ downGlassInfoService.downGlassPrint(downGlassInfo);
+ }
--
Gitblit v1.8.0