From a1f8b0c60b4dae1cb848389fbe2f029d9e826bbf Mon Sep 17 00:00:00 2001 From: 86156 <823267011@qq.com> Date: Tue, 27 Jan 2026 16:54:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=88=90=E6=9C=AC=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/EnergyCostReportServiceImpl.java | 2 +- .../mapper/WmsEnergyCoilDailyMapper.xml | 235 +++++++----------- klp-ui/src/api/wms/cost.js | 8 +- klp-ui/src/views/ems/cost/cost.vue | 3 +- klp-ui/src/views/wms/cost/stockpile/index.vue | 83 +++---- .../WmsCostCoilDailyController.java | 16 ++ .../klp/service/IWmsCostCoilDailyService.java | 9 + .../impl/WmsCostCoilDailyServiceImpl.java | 89 +++++++ .../mapper/klp/WmsCostCoilDailyMapper.xml | 28 ++- 9 files changed, 268 insertions(+), 205 deletions(-) diff --git a/klp-ems/src/main/java/com/klp/ems/service/impl/EnergyCostReportServiceImpl.java b/klp-ems/src/main/java/com/klp/ems/service/impl/EnergyCostReportServiceImpl.java index edf9aa82..4cd1a08d 100644 --- a/klp-ems/src/main/java/com/klp/ems/service/impl/EnergyCostReportServiceImpl.java +++ b/klp-ems/src/main/java/com/klp/ems/service/impl/EnergyCostReportServiceImpl.java @@ -133,7 +133,7 @@ public class EnergyCostReportServiceImpl implements IEnergyCostReportService { long offset = (pageNum - 1) * pageSize; // 手工 count 与数据分页,避免复杂 SQL 自动 count 解析 Long total = coilDailyMapper.selectCoilTotalMergedCount(bo); - java.util.List rows = coilDailyMapper.selectCoilTotalMerged(bo, offset, pageSize); + List rows = coilDailyMapper.selectCoilTotalMerged(bo, offset, pageSize); Page page = new Page<>(pageNum, pageSize); page.setTotal(total == null ? 0L : total); page.setRecords(rows); diff --git a/klp-ems/src/main/resources/mapper/WmsEnergyCoilDailyMapper.xml b/klp-ems/src/main/resources/mapper/WmsEnergyCoilDailyMapper.xml index 3ad15dac..2ada5207 100644 --- a/klp-ems/src/main/resources/mapper/WmsEnergyCoilDailyMapper.xml +++ b/klp-ems/src/main/resources/mapper/WmsEnergyCoilDailyMapper.xml @@ -29,6 +29,73 @@ SELECT * FROM wms_energy_coil_daily WHERE task_id = #{taskId} + + + + + + + AND enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%') + + + AND current_coil_no LIKE CONCAT('%', #{bo.currentCoilNo}, '%') + + + + + + AND create_time =]]> CONCAT(#{bo.startDate}, ' 00:00:00') + + + AND create_time CONCAT(#{bo.endDate}, ' 23:59:59') + + + + + + AND c.enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%') + + + AND pa.current_coil_no LIKE CONCAT('%', #{bo.currentCoilNo}, '%') + + + + + + AND pa.create_time =]]> CONCAT(#{bo.startDate}, ' 00:00:00') + + + AND pa.create_time CONCAT(#{bo.endDate}, ' 23:59:59') + + + + + + AND pa_all.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00') + + + AND pa_all.create_time <= CONCAT(#{bo.endDate}, ' 23:59:59') + + + + + + AND change_time >= CONCAT(#{bo.startDate}, ' 00:00:00') + + + AND change_time <= CONCAT(#{bo.endDate}, ' 23:59:59') + + + + + + CASE + WHEN pa.create_time COALESCE(pa.complete_time, wmt.warehouse_end_time, NOW()) + THEN TIMESTAMPDIFF(MINUTE, pa.create_time, COALESCE(pa.complete_time, wmt.warehouse_end_time, NOW())) + ELSE 0 + END + + @@ -367,18 +370,8 @@ WHERE data_type IN (0,1) AND del_flag = 0 AND status = 0 - - AND enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%') - - - AND current_coil_no LIKE CONCAT('%', #{bo.currentCoilNo}, '%') - - - AND create_time =]]> CONCAT(#{bo.startDate}, ' 00:00:00') - - - AND create_time CONCAT(#{bo.endDate}, ' 23:59:59') - + + GROUP BY current_coil_no ) m LEFT JOIN ( @@ -386,14 +379,10 @@ pa.current_coil_no, COUNT(DISTINCT pa.coil_id) AS coil_count, SUM( - CASE - WHEN pa.create_time COALESCE(pa.complete_time, wmt.warehouse_end_time, NOW()) - THEN CAST(TIMESTAMPDIFF(MINUTE, - pa.create_time, - COALESCE(pa.complete_time, wmt.warehouse_end_time, NOW()) - ) AS DECIMAL(20,6)) / 60.0 - ELSE 0 - END + CAST( + + AS DECIMAL(20,6) + ) / 60.0 ) AS total_duration, SUM( CASE @@ -402,14 +391,7 @@ AND wd_prod.total_prod_minutes > 0 THEN wd.total_warehouse_consumption * (CAST( - CASE - WHEN pa.create_time COALESCE(pa.complete_time, wmt.warehouse_end_time, NOW()) - THEN TIMESTAMPDIFF(MINUTE, - pa.create_time, - COALESCE(pa.complete_time, wmt.warehouse_end_time, NOW()) - ) - ELSE 0 - END AS DECIMAL(20,6) + AS DECIMAL(20,6) ) / wd_prod.total_prod_minutes) ELSE 0 END @@ -421,14 +403,7 @@ AND wd_prod.total_prod_minutes > 0 THEN wd.total_warehouse_cost * (CAST( - CASE - WHEN pa.create_time COALESCE(pa.complete_time, wmt.warehouse_end_time, NOW()) - THEN TIMESTAMPDIFF(MINUTE, - pa.create_time, - COALESCE(pa.complete_time, wmt.warehouse_end_time, NOW()) - ) - ELSE 0 - END AS DECIMAL(20,6) + AS DECIMAL(20,6) ) / wd_prod.total_prod_minutes) ELSE 0 END @@ -472,6 +447,8 @@ ) wd_prod ON pa.warehouse_id = wd_prod.warehouse_id WHERE pa.action_status IN (0, 1, 2) AND pa.warehouse_id IS NOT NULL + + GROUP BY c.enter_coil_no ) e ON m.enter_coil_no = e.enter_coil_no LEFT JOIN ( @@ -541,21 +518,11 @@ ) AS total_minutes FROM wms_coil_pending_action pa_all WHERE pa_all.action_status IN (0,1,2) - - AND pa_all.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00') - - - AND pa_all.create_time <= CONCAT(#{bo.endDate}, ' 23:59:59') - + GROUP BY DATE(pa_all.create_time) ) td ON td.day_key = DATE(pa.create_time) WHERE pa.action_status IN (0,1,2) - - AND pa.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00') - - - AND pa.create_time <= CONCAT(#{bo.endDate}, ' 23:59:59') - + GROUP BY DATE(pa.create_time), c.enter_coil_no, td.total_minutes ) dm LEFT JOIN ( @@ -565,12 +532,7 @@ FROM eqp_auxiliary_material_change WHERE del_flag = '0' AND change_type = '减少' - - AND change_time >= CONCAT(#{bo.startDate}, ' 00:00:00') - - - AND change_time <= CONCAT(#{bo.endDate}, ' 23:59:59') - + GROUP BY DATE(change_time) ) a ON dm.day_key = a.day_key LEFT JOIN ( @@ -580,12 +542,7 @@ FROM eqp_spare_parts_change WHERE del_flag = '0' AND change_type = '减少' - - AND change_time >= CONCAT(#{bo.startDate}, ' 00:00:00') - - - AND change_time <= CONCAT(#{bo.endDate}, ' 23:59:59') - + GROUP BY DATE(change_time) ) p ON dm.day_key = p.day_key GROUP BY dm.enter_coil_no diff --git a/klp-ui/src/api/wms/cost.js b/klp-ui/src/api/wms/cost.js index 2b5eafe0..4438a824 100644 --- a/klp-ui/src/api/wms/cost.js +++ b/klp-ui/src/api/wms/cost.js @@ -89,13 +89,13 @@ export function batchCalculateCost(calcDate) { }) } -// 按入场钢卷号维度计算成本 -export function calculateCostByEnterCoilNo(enterCoilNo, calcDate) { +// 按当前钢卷号维度计算成本(单卷详情) +export function calculateCostByCurrentCoilNo(currentCoilNo, calcDate) { return request({ - url: '/wms/cost/coil/calculateByEnterCoilNo', + url: '/wms/cost/coil/calculateByCurrentCoilNo', method: 'post', params: { - enterCoilNo, + currentCoilNo, calcDate } }) diff --git a/klp-ui/src/views/ems/cost/cost.vue b/klp-ui/src/views/ems/cost/cost.vue index 4e83c03e..789fb8f8 100644 --- a/klp-ui/src/views/ems/cost/cost.vue +++ b/klp-ui/src/views/ems/cost/cost.vue @@ -54,7 +54,7 @@
- 成本汇总(按入场卷号) + 成本汇总
@@ -257,6 +257,7 @@ export default { } fetchCoilTotalMerged(params).then(res => { this.mergedRows = res.rows || [] + console.log(res) this.mergedTotal = res.total || 0 const rows = this.mergedRows || [] diff --git a/klp-ui/src/views/wms/cost/stockpile/index.vue b/klp-ui/src/views/wms/cost/stockpile/index.vue index b918df3e..9682e6cb 100644 --- a/klp-ui/src/views/wms/cost/stockpile/index.vue +++ b/klp-ui/src/views/wms/cost/stockpile/index.vue @@ -81,7 +81,7 @@ style="width: 100%" @sort-change="handleSortChange" > - +