From 7d45b1aa345be565648f9ae01cd200631eb008a2 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期三, 18 三月 2026 13:30:53 +0800
Subject: [PATCH] 生产计划的下发状态逻辑调整+能耗统计查询sql优化
---
src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java | 4 ++--
src/main/java/com/ruoyi/energy/service/impl/EnergyConsumptionDetailServiceImpl.java | 1 +
src/main/resources/mapper/productionPlan/ProductionPlanMapper.xml | 5 ++++-
src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml | 7 +++++--
4 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/ruoyi/energy/service/impl/EnergyConsumptionDetailServiceImpl.java b/src/main/java/com/ruoyi/energy/service/impl/EnergyConsumptionDetailServiceImpl.java
index fd0e5e2..d7dd4a2 100644
--- a/src/main/java/com/ruoyi/energy/service/impl/EnergyConsumptionDetailServiceImpl.java
+++ b/src/main/java/com/ruoyi/energy/service/impl/EnergyConsumptionDetailServiceImpl.java
@@ -102,6 +102,7 @@
EnergyStatisticsDto energyStatisticsDto = new EnergyStatisticsDto();
//璁$畻鎬昏�楃敤閲�+鎬昏兘鑰楄垂鐢�
Map<String, BigDecimal> map=energyConsumptionDetailMapper.calculateEnergy(energyStatisticsVo);
+
energyStatisticsDto.setTotalEnergyConsumption(map.get("totalEnergyConsumption"));
energyStatisticsDto.setTotalEnergyCost(map.get("totalEnergyCost"));
//骞冲潎鐢ㄩ噺
diff --git a/src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java b/src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java
index 6bc06ff..28cba27 100644
--- a/src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java
+++ b/src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java
@@ -164,10 +164,10 @@
// 鏈�鍚庝竴涓鍒掞紝鍒嗛厤鍓╀綑鏂规暟
BigDecimal lastRemainingVolume = productionPlanDto.getTotalAssignedQuantity().subtract(assignedVolume);
plan.setStatus(1);
- if (lastRemainingVolume.compareTo(BigDecimal.ZERO) <= 0) {
+ plan.setAssignedQuantity(plan.getAssignedQuantity().add(lastRemainingVolume));
+ if (plan.getAssignedQuantity().compareTo(plan.getVolume()) >= 0) {
plan.setStatus(2);
}
- plan.setAssignedQuantity(plan.getAssignedQuantity().add(lastRemainingVolume));
productOrderPlan.setAssignedQuantity(lastRemainingVolume);
productionPlanMapper.updateById(plan);
productOrderPlanMapper.insert(productOrderPlan);
diff --git a/src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml b/src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml
index 4307123..50f4e2f 100644
--- a/src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml
+++ b/src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml
@@ -41,14 +41,17 @@
</where>
</select>
<select id="calculateEnergy" resultType="java.util.Map">
- select SUM(COALESCE(ecd.dosage,0)) totalEnergyConsumption,
- SUM(COALESCE(ecd.dosage,0) * COALESCE(e.unit_price,0)) totalEnergyCost
+ select COALESCE(t.totalEnergyConsumption, 0) AS totalEnergyConsumption,
+ COALESCE(t.totalEnergyCost, 0) AS totalEnergyCost
+ from (select SUM(ecd.dosage) totalEnergyConsumption,
+ SUM(ecd.dosage * e.unit_price) totalEnergyCost
from energy_consumption_detail ecd
left join energy e on ecd.energy_id = e.id
where ecd.meter_reading_date between #{c.startDate} and #{c.endDate}
<if test="c.type != null and c.type != ''">
and ecd.type =#{c.type}
</if>
+ )t
</select>
<select id="energyConsumptionTypeProportion"
resultType="com.ruoyi.energy.dto.EnergyConsumptionTypeDto">
diff --git a/src/main/resources/mapper/productionPlan/ProductionPlanMapper.xml b/src/main/resources/mapper/productionPlan/ProductionPlanMapper.xml
index 4205a15..91a587e 100644
--- a/src/main/resources/mapper/productionPlan/ProductionPlanMapper.xml
+++ b/src/main/resources/mapper/productionPlan/ProductionPlanMapper.xml
@@ -58,6 +58,9 @@
<if test="c.model != null and c.model != '' ">
AND pms.model LIKE CONCAT('%',#{c.model},'%')
</if>
+ <if test="c.status != null">
+ AND pp.status =#{c.status}
+ </if>
<if test="c.applyNo != null and c.applyNo != '' ">
AND pp.apply_no LIKE CONCAT('%',#{c.applyNo},'%')
</if>
@@ -125,4 +128,4 @@
</foreach>
ORDER BY pp.id ASC
</select>
-</mapper>
\ No newline at end of file
+</mapper>
--
Gitblit v1.9.3