From 3e87d42c87331e2e9237d61c3d73553fd0ee8917 Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期四, 20 六月 2024 15:29:21 +0800
Subject: [PATCH] 增加原片仓储前端页面 常州项目不启用
---
hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java | 36 ++
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java | 3
UI-Project/src/views/GlassStorage/MaterialRackManagement.vue | 405 +++++++++++++++++++++++++++++++++
UI-Project/src/router/index.js | 13 +
UI-Project/package-lock.json | 193 ++++++++++++++++
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml | 5
UI-Project/package.json | 4
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/WebSocketConfig.java | 8
8 files changed, 655 insertions(+), 12 deletions(-)
diff --git a/UI-Project/package-lock.json b/UI-Project/package-lock.json
index ba2dc0c..d94acf9 100644
--- a/UI-Project/package-lock.json
+++ b/UI-Project/package-lock.json
@@ -11,6 +11,8 @@
"@element-plus/icons-vue": "^2.1.0",
"@vue-macros/reactivity-transform": "^0.3.23",
"axios": "^1.6.8",
+ "chart.js": "^4.4.3",
+ "echarts": "^5.5.0",
"element-plus": "^2.4.0",
"moment": "^2.30.1",
"pinia": "^2.1.6",
@@ -18,6 +20,7 @@
"sortablejs": "^1.15.1",
"sweetalert2": "^11.10.7",
"vue": "^3.3.4",
+ "vue-echarts": "^6.7.3",
"vue-i18n": "^9.13.1",
"vue-router": "^4.2.4",
"vxe-table": "^4.5.15",
@@ -28,6 +31,7 @@
"@types/sortablejs": "^1.15.7",
"@vitejs/plugin-vue": "^4.3.4",
"http-proxy-middleware": "^3.0.0",
+ "sass": "^1.77.6",
"vite": "^4.4.9"
}
},
@@ -498,6 +502,11 @@
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
},
+ "node_modules/@kurkle/color": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/@kurkle/color/-/color-0.3.2.tgz",
+ "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw=="
+ },
"node_modules/@popperjs/core": {
"name": "@sxzz/popperjs-es",
"version": "2.11.7",
@@ -917,6 +926,17 @@
"node": ">=0.8"
}
},
+ "node_modules/chart.js": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmmirror.com/chart.js/-/chart.js-4.4.3.tgz",
+ "integrity": "sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==",
+ "dependencies": {
+ "@kurkle/color": "^0.3.0"
+ },
+ "engines": {
+ "pnpm": ">=8"
+ }
+ },
"node_modules/chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@@ -1012,6 +1032,15 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dom-zindex/-/dom-zindex-1.0.1.tgz",
"integrity": "sha512-M/MERVDZ8hguvjl6MAlLWSLYLS7PzEyXaTb5gEeJ+SF+e9iUC0sdvlzqe91MMDHBoy+nqw7wKcUOrDSyvMCrRg=="
+ },
+ "node_modules/echarts": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.0.tgz",
+ "integrity": "sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==",
+ "dependencies": {
+ "tslib": "2.3.0",
+ "zrender": "5.5.0"
+ }
},
"node_modules/element-plus": {
"version": "2.4.0",
@@ -1190,6 +1219,12 @@
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
+ },
+ "node_modules/immutable": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.6.tgz",
+ "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==",
+ "dev": true
},
"node_modules/is-binary-path": {
"version": "2.1.0",
@@ -1500,6 +1535,11 @@
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
"dev": true
},
+ "node_modules/resize-detector": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz",
+ "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ=="
+ },
"node_modules/rollup": {
"version": "3.29.4",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
@@ -1514,6 +1554,23 @@
},
"optionalDependencies": {
"fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/sass": {
+ "version": "1.77.6",
+ "resolved": "https://registry.npmmirror.com/sass/-/sass-1.77.6.tgz",
+ "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==",
+ "dev": true,
+ "dependencies": {
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
}
},
"node_modules/sortablejs": {
@@ -1563,6 +1620,11 @@
"engines": {
"node": ">=8.0"
}
+ },
+ "node_modules/tslib": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
+ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
},
"node_modules/undici-types": {
"version": "5.26.5",
@@ -1646,6 +1708,55 @@
"@vue/runtime-dom": "3.3.4",
"@vue/server-renderer": "3.3.4",
"@vue/shared": "3.3.4"
+ }
+ },
+ "node_modules/vue-echarts": {
+ "version": "6.7.3",
+ "resolved": "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-6.7.3.tgz",
+ "integrity": "sha512-vXLKpALFjbPphW9IfQPOVfb1KjGZ/f8qa/FZHi9lZIWzAnQC1DgnmEK3pJgEkyo6EP7UnX6Bv/V3Ke7p+qCNXA==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "resize-detector": "^0.3.0",
+ "vue-demi": "^0.13.11"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.5",
+ "@vue/runtime-core": "^3.0.0",
+ "echarts": "^5.4.1",
+ "vue": "^2.6.12 || ^3.1.1"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ },
+ "@vue/runtime-core": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vue-echarts/node_modules/vue-demi": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
+ "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
+ "hasInstallScript": true,
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
}
},
"node_modules/vue-i18n": {
@@ -1743,6 +1854,14 @@
},
"engines": {
"node": ">=0.8"
+ }
+ },
+ "node_modules/zrender": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.5.0.tgz",
+ "integrity": "sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==",
+ "dependencies": {
+ "tslib": "2.3.0"
}
}
},
@@ -1986,6 +2105,11 @@
"version": "1.4.15",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+ },
+ "@kurkle/color": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/@kurkle/color/-/color-0.3.2.tgz",
+ "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw=="
},
"@popperjs/core": {
"version": "npm:@sxzz/popperjs-es@2.11.7",
@@ -2297,6 +2421,14 @@
"crc-32": "~1.2.0"
}
},
+ "chart.js": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmmirror.com/chart.js/-/chart.js-4.4.3.tgz",
+ "integrity": "sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==",
+ "requires": {
+ "@kurkle/color": "^0.3.0"
+ }
+ },
"chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@@ -2358,6 +2490,15 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dom-zindex/-/dom-zindex-1.0.1.tgz",
"integrity": "sha512-M/MERVDZ8hguvjl6MAlLWSLYLS7PzEyXaTb5gEeJ+SF+e9iUC0sdvlzqe91MMDHBoy+nqw7wKcUOrDSyvMCrRg=="
+ },
+ "echarts": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.0.tgz",
+ "integrity": "sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==",
+ "requires": {
+ "tslib": "2.3.0",
+ "zrender": "5.5.0"
+ }
},
"element-plus": {
"version": "2.4.0",
@@ -2493,6 +2634,12 @@
"is-plain-obj": "^3.0.0",
"micromatch": "^4.0.5"
}
+ },
+ "immutable": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.6.tgz",
+ "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==",
+ "dev": true
},
"is-binary-path": {
"version": "2.1.0",
@@ -2684,6 +2831,11 @@
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
"dev": true
},
+ "resize-detector": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz",
+ "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ=="
+ },
"rollup": {
"version": "3.29.4",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
@@ -2691,6 +2843,17 @@
"devOptional": true,
"requires": {
"fsevents": "~2.3.2"
+ }
+ },
+ "sass": {
+ "version": "1.77.6",
+ "resolved": "https://registry.npmmirror.com/sass/-/sass-1.77.6.tgz",
+ "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==",
+ "dev": true,
+ "requires": {
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
}
},
"sortablejs": {
@@ -2728,6 +2891,11 @@
"requires": {
"is-number": "^7.0.0"
}
+ },
+ "tslib": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
+ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
},
"undici-types": {
"version": "5.26.5",
@@ -2768,6 +2936,23 @@
"@vue/runtime-dom": "3.3.4",
"@vue/server-renderer": "3.3.4",
"@vue/shared": "3.3.4"
+ }
+ },
+ "vue-echarts": {
+ "version": "6.7.3",
+ "resolved": "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-6.7.3.tgz",
+ "integrity": "sha512-vXLKpALFjbPphW9IfQPOVfb1KjGZ/f8qa/FZHi9lZIWzAnQC1DgnmEK3pJgEkyo6EP7UnX6Bv/V3Ke7p+qCNXA==",
+ "requires": {
+ "resize-detector": "^0.3.0",
+ "vue-demi": "^0.13.11"
+ },
+ "dependencies": {
+ "vue-demi": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
+ "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
+ "requires": {}
+ }
}
},
"vue-i18n": {
@@ -2835,6 +3020,14 @@
"wmf": "~1.0.1",
"word": "~0.3.0"
}
+ },
+ "zrender": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.5.0.tgz",
+ "integrity": "sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==",
+ "requires": {
+ "tslib": "2.3.0"
+ }
}
}
}
diff --git a/UI-Project/package.json b/UI-Project/package.json
index 6cade56..15242fb 100644
--- a/UI-Project/package.json
+++ b/UI-Project/package.json
@@ -11,6 +11,8 @@
"@element-plus/icons-vue": "^2.1.0",
"@vue-macros/reactivity-transform": "^0.3.23",
"axios": "^1.6.8",
+ "chart.js": "^4.4.3",
+ "echarts": "^5.5.0",
"element-plus": "^2.4.0",
"moment": "^2.30.1",
"pinia": "^2.1.6",
@@ -18,6 +20,7 @@
"sortablejs": "^1.15.1",
"sweetalert2": "^11.10.7",
"vue": "^3.3.4",
+ "vue-echarts": "^6.7.3",
"vue-i18n": "^9.13.1",
"vue-router": "^4.2.4",
"vxe-table": "^4.5.15",
@@ -28,6 +31,7 @@
"@types/sortablejs": "^1.15.7",
"@vitejs/plugin-vue": "^4.3.4",
"http-proxy-middleware": "^3.0.0",
+ "sass": "^1.77.6",
"vite": "^4.4.9"
}
}
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
index 33ec397..764db3a 100644
--- a/UI-Project/src/router/index.js
+++ b/UI-Project/src/router/index.js
@@ -187,6 +187,19 @@
]
},
+ {
+ path: 'GlassStorage',
+ name: 'GlassStorage',
+ component: () => import('../views/GlassStorage/MaterialRackManagement.vue'),
+ children:[
+ {
+ path: '/GlassStorage/MaterialRackManagement',
+ name: 'MaterialRackManagement',
+ component: () => import('../views/GlassStorage/MaterialRackManagement.vue')
+ }
+ ]
+ },
+
/*----------- 鍙鍖栫郴缁� ----------------*/
{
path: 'Visualization',
diff --git a/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue b/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue
new file mode 100644
index 0000000..2b7b9cc
--- /dev/null
+++ b/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue
@@ -0,0 +1,405 @@
+<template>
+ <div >
+ <el-card style="flex: 1; margin-left: 10px; " :loading="loading">
+ <div slot="header" class="clearfix" style="display: flex; align-items: center;">
+
+<!-- 宸︿晶鎸夐挳缁� -->
+<div >
+ <el-button type="success" size="mini" @click="handleInbound()">鍏ュ簱</el-button>
+ <el-button type="success" size="mini" @click="handleInbound()">鍚婅浣嶅叆搴�</el-button>
+ <el-button type="success" size="mini" @click="handleInbound()">娣诲姞鍘熺墖</el-button>
+</div>
+
+<!-- 鍙充晶閫夋嫨妗� -->
+<el-form-item style="margin-top: 15px; width: 150px;">
+ <el-select v-model="formData2.dzw" placeholder="璇烽�夋嫨鍚婅浣�">
+ <el-option label="鍚婅浣�1" value="鍚婅浣�1"></el-option>
+ <el-option label="鍚婅浣�2" value="鍚婅浣�2"></el-option>
+ <!-- 鏍规嵁瀹為檯鎯呭喌娣诲姞鏇村閫夐」 -->
+ </el-select>
+</el-form-item>
+
+</div>
+
+ <el-table
+ :data="tableData"
+
+ style="width: 98%; height: 200px"
+ @selection-change="handleSelectionChange"
+ :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
+ ref="table"
+
+ empty-text="No Data"
+ >
+
+ <el-table-column prop="location" label="搴撲綅鍙�"></el-table-column>
+ <el-table-column prop="type" label="绫诲瀷"></el-table-column>
+ <el-table-column prop="length" label="闀垮害(mm)"></el-table-column>
+ <el-table-column prop="height" label="楂樺害(mm)"></el-table-column>
+ <el-table-column prop="thickness" label="鍘氬害(mm)"></el-table-column>
+ <el-table-column prop="quantity" label="鏁伴噺"></el-table-column>
+ <el-table-column prop="entry_time" label="鍏ュ簱鏃堕棿"></el-table-column>
+ <el-table-column prop="batchnumber" label="鎵规鍙�"></el-table-column>
+
+ <el-table-column
+ align="center"
+ label="鏂欐灦鐘舵��"
+ min-width="80"
+ prop="shelf_status"
+>
+ <template #default="scope">
+ <el-tag :type="getTagType(scope.row.shelf_status)">
+ {{ scope.row.shelf_status === 1 ? '鍚敤' : '鏈惎鐢�' }}
+ </el-tag>
+ </template>
+</el-table-column>
+
+ <!-- 鎿嶄綔鍒� -->
+ <el-table-column label="鎿嶄綔" width="300">
+ <template #default="{ row }">
+ <el-button type="primary" size="mini" @click="handleEdit(row)">淇敼</el-button>
+ <el-button type="danger" size="mini" @click="handleDelete(row)">鍒犻櫎</el-button>
+ <el-button type="warning" size="mini" @click="handleCheckout(row)">鍑哄簱</el-button>
+
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-table
+ :data="tasktableData"
+ style="width: 98%; height: 150px"
+ @selection-change="handleSelectionChange"
+ :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
+ ref="table"
+ empty-text="No Data"
+ >
+ <el-table-column prop="Glassid" label="Glassid"></el-table-column>
+ <el-table-column prop="taskDescription" label="浠诲姟鎻忚堪" width="250"></el-table-column>
+ <el-table-column prop="taskStatus" label="浠诲姟鐘舵��"></el-table-column>
+ <el-table-column prop="glassThickness" label="鐜荤拑鍘氬害"></el-table-column>
+ <el-table-column prop="glassFilm" label="鐜荤拑鑶滅郴"></el-table-column>
+ <el-table-column prop="creationTime" label="鍒涘缓鏃堕棿"></el-table-column>
+
+ <el-table-column
+ align="center"
+ label="浠诲姟鐘舵��"
+ min-width="80"
+ prop="taskStatus"
+ >
+ <template #default="scope">
+ <el-tag :type="getTagType2(scope.row.taskStatus)">
+ {{ scope.row.taskStatus == 'completed' ? '瀹屾垚' : '杩涜涓�' }}
+ </el-tag>
+ </template>
+ </el-table-column>
+
+ <!-- 鎿嶄綔鍒� -->
+ <el-table-column label="鎿嶄綔" width="350">
+ <template #default="{ row }">
+ <el-button type="primary" size="mini" @click="handleRestart(row)">閲嶆柊寮�濮�</el-button>
+ <el-button type="danger" size="mini" @click="handleDelete(row)">鍒犻櫎浠诲姟</el-button>
+ <el-button type="success" size="mini" @click="handleComplete(row)">浠诲姟瀹屾垚</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ </el-card>
+
+ <div ref="chart" id="chart" style="width: 100%; height: 250px;"></div>
+
+
+ <!-- 鍏ュ簱瀵硅瘽妗� -->
+ <el-dialog
+ title="鍏ュ簱"
+ v-model="dialogVisible"
+ width="30%"
+ :before-close="handleCloseDialog"
+ >
+ <el-form :model="formData" ref="form" label-width="80px">
+ <el-form-item label="杩涘簱鏂欐灦">
+ <el-select v-model="formData.shelf" placeholder="璇烽�夋嫨杩涘簱鏂欐灦">
+ <el-option label="A1" value="A1"></el-option>
+ <el-option label="B2" value="B2"></el-option>
+ <!-- 鏍规嵁瀹為檯鎯呭喌娣诲姞鏇村閫夐」 -->
+ </el-select>
+ </el-form-item>
+ <el-form-item label="棰滆壊鑶滅郴">
+ <el-select v-model="formData.color" placeholder="璇烽�夋嫨棰滆壊鑶滅郴">
+ <el-option label="Red" value="Red"></el-option>
+ <el-option label="Blue" value="Blue"></el-option>
+ <!-- 鏍规嵁瀹為檯鎯呭喌娣诲姞鏇村閫夐」 -->
+ </el-select>
+ </el-form-item>
+ <el-form-item label="瀹藉害">
+ <el-input v-model.number="formData.width" placeholder="璇疯緭鍏ュ搴�"></el-input>
+ </el-form-item>
+ <el-form-item label="楂樺害">
+ <el-input v-model.number="formData.height" placeholder="璇疯緭鍏ラ珮搴�"></el-input>
+ </el-form-item>
+ <el-form-item label="鍘氬害">
+ <el-input v-model.number="formData.thickness" placeholder="璇疯緭鍏ュ帤搴�"></el-input>
+ </el-form-item>
+ <el-form-item label="鏁伴噺">
+ <el-input v-model.number="formData.quantity" placeholder="璇疯緭鍏ユ暟閲�"></el-input>
+ </el-form-item>
+ </el-form>
+
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="handleConfirmInbound">纭� 瀹�</el-button>
+ </div>
+ </el-dialog>
+ <div ref="chart" id="chart" style="width: 100%; height: 400px;"></div>
+ </div>
+</template>
+
+
+
+
+<script setup>
+import { ref, onMounted, onBeforeUnmount } from 'vue'; // 瀵煎叆 Vue 3 鐨勬ā鍧�
+import * as echarts from 'echarts';
+
+
+ const loading = ref(false);
+ const tableData = ref([
+ {
+ location: '1',
+ type: 'Type A',
+ length: '100',
+ height: '50',
+ thickness: '10',
+ quantity: '5',
+ entry_time: '2024-06-19',
+ batchnumber:"444",
+ shelf_status: 1
+ },
+ {
+ location: '2',
+ type: 'Type B',
+ length: '120',
+ height: '60',
+ thickness: '12',
+ quantity: '10',
+ entry_time: '2024-06-18',
+ batchnumber:"444",
+ shelf_status: 0
+ },
+ {
+ location: '3',
+ type: 'Type B',
+ length: '120',
+ height: '60',
+ thickness: '12',
+ quantity: '10',
+ entry_time: '2024-06-18',
+ batchnumber:"444",
+ shelf_status: 1
+ },
+ {
+ location: '4',
+ type: 'Type B',
+ length: '120',
+ height: '60',
+ thickness: '12',
+ quantity: '10',
+ entry_time: '2024-06-18',
+ batchnumber:"444",
+ shelf_status: 1
+ },
+ {
+ location: '5',
+ type: 'Type B',
+ length: '120',
+ height: '60',
+ thickness: '12',
+ quantity: '10',
+ entry_time: '2024-06-18',
+ batchnumber:"444",
+ shelf_status: 1
+ }
+ // Add more data as needed
+ ]);
+
+ const getTagType2 =(status) => {
+ switch (status) {
+ case 'completed':
+ return 'success';
+ case 'in-progress':
+ return 'info';
+ case 'warning':
+ return 'warning';
+ case 'danger':
+ return 'danger';
+ default:
+ return '';
+ }
+ }
+
+ const getTagType =(status) => {
+ return status === 1 ? 'success' : 'danger';
+ // 鏍规嵁鐘舵�佸�煎喅瀹氭爣绛剧被鍨嬶紝杩欓噷鍋囪鐘舵�佷负1鏃朵负鎴愬姛锛堢豢鑹诧級锛屽惁鍒欎负澶辫触锛堢孩鑹诧級
+ }
+
+ const tasktableData=ref([
+
+ {
+ Glassid: 'G001',
+ taskDescription: '浠庡悐瑁呬綅銆�99銆戝埌浠撲綅銆�56銆�',
+ taskStatus: 'in-progress',
+ glassThickness: '5mm',
+ glassFilm: '鑶滅郴A',
+ creationTime: '2024-06-19 10:00:00'
+ },
+ {
+ Glassid: 'G002',
+ taskDescription: '浠庡悐瑁呬綅銆�99銆戝埌浠撲綅銆�56銆�',
+ taskStatus: 'completed',
+ glassThickness: '10mm',
+ glassFilm: '鑶滅郴B',
+ creationTime: '2024-06-19 11:00:00'
+ }
+ ]);
+
+ const dialogVisible = ref(false);
+ const formData = ref({
+ shelf: '',
+ color: '',
+ width: '',
+ height: '',
+ thickness: '',
+ quantity: ''
+ });
+
+ const formData2 = ref({
+ dzw: '',
+
+ });
+
+ const handleEdit = (row) => {
+ // 澶勭悊淇敼鏁伴噺閫昏緫
+ console.log('Edit Quantity:', row);
+ };
+
+ const handleDelete = (row) => {
+ // 澶勭悊鍒犻櫎閫昏緫
+ console.log('Delete:', row);
+ };
+
+ const handleCheckout = (row) => {
+ // 澶勭悊鍑哄簱閫昏緫
+ console.log('Checkout:', row);
+ };
+
+ const handleInbound = () => {
+ // 鎵撳紑鍏ュ簱瀵硅瘽妗�
+ dialogVisible.value = true;
+ };
+
+ const handleCloseDialog = () => {
+ // 鍏抽棴瀵硅瘽妗嗘椂閲嶇疆琛ㄥ崟鏁版嵁
+ formData.value = {
+ shelf: '',
+ color: '',
+ width: '',
+ height: '',
+ thickness: '',
+ quantity: ''
+ };
+ dialogVisible.value = false;
+ };
+
+ const handleConfirmInbound = () => {
+ // 澶勭悊纭鍏ュ簱閫昏緫锛屽彲浠ュ湪杩欓噷鎻愪氦琛ㄥ崟鎴栬�呮墽琛屽叾浠栨搷浣�
+ console.log('Confirm Inbound:', formData.value);
+ // 鍏抽棴瀵硅瘽妗�
+ dialogVisible.value = false;
+ };
+
+
+
+ let chartInstance = null;
+
+onMounted(() => {
+ // Initialize the chart
+ chartInstance = echarts.init(document.getElementById('chart'));
+
+ // Simulated data for demonstration
+ const chartData = {
+ labels: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'],
+ datasets: [
+ { name: '浣跨敤鎯呭喌缁熻', data: [{ remaining: 4, total: 5 }, { remaining: 9, total: 10 }, { remaining: 0, total: 30 }, { remaining: 0, total: 10 },{ remaining: 4, total: 5 }] }
+ ]
+ };
+
+ const options = {
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ type: 'shadow'
+ }
+ },
+ legend: {
+ data: ['浣跨敤鎯呭喌缁熻']
+ },
+ xAxis: {
+ type: 'category',
+ data: chartData.labels
+ },
+ yAxis: {
+ type: 'value'
+ },
+ series: chartData.datasets.map(item => ({
+ name: item.name,
+ type: 'bar',
+ stack: '鎬婚噺',
+ label: {
+ show: true,
+ position: 'inside',
+ formatter: '{c}%'
+ },
+ data: item.data.map(dataItem => ({
+ value: (dataItem.remaining / dataItem.total * 100).toFixed(2), // 璁$畻鍓╀綑閲忓崰姣旓紝淇濈暀涓や綅灏忔暟
+ remaining: dataItem.remaining,
+ total: dataItem.total,
+ itemStyle: {
+ color: getColorByRemaining(dataItem.remaining, dataItem.total)
+ }
+ }))
+ }))
+ };
+
+ function getColorByRemaining(remaining, total) {
+ // 鏍规嵁鍓╀綑閲忎笌鎬婚噺鐨勬瘮渚嬶紝璁剧疆涓嶅悓鐨勯鑹查�昏緫
+ const percentage = remaining / total;
+ if (percentage >= 0.8) {
+ return '#FF6666'; // Red
+ } else if (percentage >= 0.5) {
+ return '#FFCC66'; // Yellow
+ } else {
+ return '#66CC66'; // Green
+ }
+ }
+
+ // Set options and render chart
+ if (chartInstance) {
+ chartInstance.setOption(options);
+ }
+});
+
+onBeforeUnmount(() => {
+ if (chartInstance) {
+ chartInstance.dispose();
+ chartInstance = null;
+ }
+});
+
+const handleSelectionChange = (selection) => {
+ console.log('Selection changed:', selection);
+};
+
+</script>
+
+<style>
+
+</style>
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/WebSocketConfig.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/WebSocketConfig.java
index f5d16bf..b200c7b 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/WebSocketConfig.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/WebSocketConfig.java
@@ -13,9 +13,9 @@
* bean娉ㄥ唽锛氫細鑷姩鎵弿甯︽湁@ServerEndpoint娉ㄨВ澹版槑鐨刉ebsocket Endpoint(绔偣)锛屾敞鍐屾垚涓篧ebsocket bean銆�
* 瑕佹敞鎰忥紝濡傛灉椤圭洰浣跨敤澶栫疆鐨剆ervlet瀹瑰櫒锛岃�屼笉鏄洿鎺ヤ娇鐢╯pringboot鍐呯疆瀹瑰櫒鐨勮瘽锛屽氨涓嶈娉ㄥ叆ServerEndpointExporter锛屽洜涓哄畠灏嗙敱瀹瑰櫒鑷繁鎻愪緵鍜岀鐞嗐��
*/
- @Bean
- public ServerEndpointExporter serverEndpointExporter() {
- return new ServerEndpointExporter();
- }
+// @Bean
+// public ServerEndpointExporter serverEndpointExporter() {
+// return new ServerEndpointExporter();
+// }
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
index 8ba557f..3b8e098 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
@@ -17,8 +17,10 @@
import org.springframework.stereotype.Service;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
* <p>
@@ -100,14 +102,34 @@
@Override
public List<Map<String, Object>> getFlowCardId() {
- return baseMapper.selectJoinMaps(JoinWrappers.lambda(GlassInfo.class)
- .select(GlassInfo::getFlowCardId)
- .leftJoin(UpPattenUsage.class, on -> on
- .eq(OptimizeProject::getProjectNo, GlassInfo::getEngineerId)
- .ne(OptimizeProject::getState, 300)
- )
- .groupBy(GlassInfo::getFlowCardId)
+ // 绗簩涓煡璇細鏌ヨ OptimizeProject 琛紝鏍规嵁 GlassInfo 鐨� engineerId 鍜� state 杩涜绛涢��
+ List<OptimizeProject> optimizeProjects = optimizeProjectMapper.selectList(
+ new QueryWrapper<OptimizeProject>()
+ .ne("state", 300)
);
+ // 鎻愬彇 engineerId 鍒楄〃
+ List<String> engineerIds = optimizeProjects.stream()
+ .map(OptimizeProject::getProjectNo)
+ .collect(Collectors.toList());
+
+ // 绗竴涓煡璇細鏌ヨ GlassInfo 琛ㄥ苟鎸� flow_card_id 鍒嗙粍锛屽悓鏃剁瓫閫夊嚭鍦� engineerIds 鍒楄〃涓殑璁板綍
+ List<GlassInfo> glassInfos = baseMapper.selectList(
+ new QueryWrapper<GlassInfo>()
+ .in("engineer_id", engineerIds)
+ .groupBy("flow_card_id")
+ );
+
+ // 杞崲涓� List<Map<String, Object>>
+ List<Map<String, Object>> result = glassInfos.stream()
+ .map(glassInfo -> {
+ Map<String, Object> map = new HashMap<>();
+ map.put("flow_card_id", glassInfo.getFlowCardId());
+ // 濡傛灉杩樻湁鍏朵粬瀛楁闇�瑕佹坊鍔犲埌 map 涓紝鍦ㄨ繖閲岀户缁坊鍔�
+ return map;
+ })
+ .collect(Collectors.toList());
+log.info("result: {}", result);
+ return result;
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java
index 0e10fb2..0fd3b0c 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java
@@ -214,12 +214,13 @@
// 浼樺厛 瓒呭嚭灏哄浼樺厛浜哄伐鍑虹墖 浜哄伐澶勭悊
if (!list1to6.isEmpty()) {
DownStorageCageDetails item3 = list1to6.get(0);
+ //鍚庢湡鏈夌敓浜ц鍒�
if (item3.getHeight() >= 2500 && item3.getWidth() >= 2660) {
log.info("浜哄伐澶勭悊");
selectedItem = item3;
} else if (!!list1to6.isEmpty()) {
- log.info("鍓嶅悗绔兘绌洪棽 浼樺厛鍚庣鍑虹墖骞朵笖浼樺厛婊℃灦");
+ log.info("鍓嶅悗绔兘绌洪棽浼樺厛婊℃灦");
selectedItem = list1to6.get(0);
}
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml
index 2e6a12c..683a519 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml
@@ -14,6 +14,11 @@
username: sa
password: beibo.123/
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+ pp:
+ url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+ username: root
+ password: beibo.123/
+ driver-class-name: com.mysql.cj.jdbc.Driver
cloud:
nacos:
discovery:
--
Gitblit v1.8.0