From 791be3e1a5ccfd7f5e329f6d876b9f9dba4e05d4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= <2178503051@qq.com>
Date: Wed, 17 Jun 2026 11:01:47 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=A4=9A=E7=B1=BB?=
=?UTF-8?q?=E4=B8=9A=E5=8A=A1=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98=E5=8C=96?=
=?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=B1=95=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
1. 新增钢卷周期对比查询API,增加冷轧卷、花纹板物料类型
2. 优化库存积压统计逻辑,支持成品和原料数据合并计算
3. 新增告警统计功能,实现长度/厚度告警的数量和重量统计
4. 替换岗位管理页面为冷轧厂业务流程泳道图页面
---
klp-ui/public/冷轧厂业务流程泳道图(1).html | 430 +++++++++++++++++++++
klp-ui/src/api/wms/coil.js | 9 +
klp-ui/src/views/cost/coil.vue | 30 +-
klp-ui/src/views/wms/post/index.vue | 41 +-
klp-ui/src/views/wms/report/line.vue | 109 +++++-
5 files changed, 573 insertions(+), 46 deletions(-)
create mode 100644 klp-ui/public/冷轧厂业务流程泳道图(1).html
diff --git a/klp-ui/public/冷轧厂业务流程泳道图(1).html b/klp-ui/public/冷轧厂业务流程泳道图(1).html
new file mode 100644
index 00000000..c67105b1
--- /dev/null
+++ b/klp-ui/public/冷轧厂业务流程泳道图(1).html
@@ -0,0 +1,430 @@
+
+
+
+
+
+冷轧厂业务流程泳道图
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/klp-ui/src/api/wms/coil.js b/klp-ui/src/api/wms/coil.js
index d7ef2566..0c02d69b 100644
--- a/klp-ui/src/api/wms/coil.js
+++ b/klp-ui/src/api/wms/coil.js
@@ -529,4 +529,13 @@ export function getExportColumns() {
url: '/wms/materialCoil/exportColumns',
method: 'get',
})
+}
+
+export function listForPeriodComparison(data) {
+ return request({
+ url: '/wms/materialCoil/listForPeriodComparison',
+ method: 'post',
+ timeout: 600000,
+ data: data
+ })
}
\ No newline at end of file
diff --git a/klp-ui/src/views/cost/coil.vue b/klp-ui/src/views/cost/coil.vue
index 5e5f7bd5..506915cf 100644
--- a/klp-ui/src/views/cost/coil.vue
+++ b/klp-ui/src/views/cost/coil.vue
@@ -123,7 +123,7 @@ import * as echarts from 'echarts'
import { getCoilHoardingStats, listCoilHoardingDetail } from '@/api/cost/coil'
import WarehouseSelect from '@/components/KLPService/WarehouseSelect'
-const PRODUCT_NAMES = ['镀锌卷', '镀铬卷', '冷硬卷', '热轧卷板']
+const PRODUCT_NAMES = ['镀锌卷', '镀铬卷', '冷硬卷', '热轧卷板', '冷轧卷', '花纹板']
function parseFirstCreateTime(row) {
try {
@@ -237,17 +237,37 @@ export default {
fetchDimension() {
this.dimLoading = true
const base = this.buildQuery()
- const promises = PRODUCT_NAMES.map(v => {
- const body = { ...base, itemName: v }
- return getCoilHoardingStats(body).then(res => ({
+ const promises = PRODUCT_NAMES.flatMap(v => {
+ const baseBody = { ...base, itemName: v }
+ const productReq = getCoilHoardingStats({ ...baseBody, selectType: 'product' }).then(res => ({
label: v,
avgDays: parseFloat((res.data && res.data.avgHoardingDays) || 0),
avgCost: parseFloat((res.data && res.data.avgHoardingCost) || 0),
count: parseInt((res.data && res.data.totalCount) || 0)
}))
+ const rawReq = getCoilHoardingStats({ ...baseBody, selectType: 'raw_material' }).then(res => ({
+ label: v,
+ avgDays: parseFloat((res.data && res.data.avgHoardingDays) || 0),
+ avgCost: parseFloat((res.data && res.data.avgHoardingCost) || 0),
+ count: parseInt((res.data && res.data.totalCount) || 0)
+ }))
+ return [productReq, rawReq]
})
Promise.all(promises).then(data => {
- this.dimensionData = data.filter(d => d.count > 0)
+ const map = {}
+ data.forEach(d => {
+ if (!map[d.label]) {
+ map[d.label] = { label: d.label, avgDays: 0, avgCost: 0, count: 0 }
+ }
+ const prev = map[d.label]
+ const totalCount = prev.count + d.count
+ if (totalCount > 0) {
+ prev.avgDays = parseFloat(((prev.avgDays * prev.count + d.avgDays * d.count) / totalCount).toFixed(2))
+ prev.avgCost = parseFloat(((prev.avgCost * prev.count + d.avgCost * d.count) / totalCount).toFixed(2))
+ }
+ prev.count = totalCount
+ })
+ this.dimensionData = Object.values(map).filter(d => d.count > 0)
this.$nextTick(() => this.updateDimChart())
}).finally(() => { this.dimLoading = false })
},
diff --git a/klp-ui/src/views/wms/post/index.vue b/klp-ui/src/views/wms/post/index.vue
index ad36931f..40ca7666 100644
--- a/klp-ui/src/views/wms/post/index.vue
+++ b/klp-ui/src/views/wms/post/index.vue
@@ -1,6 +1,8 @@
-
-
@@ -42,24 +42,6 @@
-
@@ -79,7 +61,6 @@
-
@@ -88,17 +69,6 @@
-
-
@@ -109,7 +79,6 @@
-
-
+ -->