From 285fa628a51ccc480ee946d2a1ee5bd13e9ae65a Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 18 三月 2026 13:51:58 +0800
Subject: [PATCH] fix: 工艺路线子集SQL去除产品查询
---
src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml | 41 +++++++++++++++++++++++------------------
1 files changed, 23 insertions(+), 18 deletions(-)
diff --git a/src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml b/src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml
index b2cf830..50f4e2f 100644
--- a/src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml
+++ b/src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml
@@ -41,7 +41,9 @@
</where>
</select>
<select id="calculateEnergy" resultType="java.util.Map">
- select SUM(ecd.dosage) totalEnergyConsumption,
+ 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
@@ -49,12 +51,13 @@
<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">
select e.energy_tyep,
- SUM(ecd.dosage) energyConsumption,
- SUM(ecd.dosage * e.unit_price) energyCost
+ SUM(COALESCE(ecd.dosage, 0)) energyConsumption,
+ SUM(COALESCE(ecd.dosage, 0) * e.unit_price) energyCost
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}
@@ -64,16 +67,17 @@
group by e.energy_tyep
</select>
<select id="energyCostDtos" resultType="com.ruoyi.energy.dto.EnergyCostDto">
- select A.meter_reading_date,
- A.waterConsumption,
- A.waterCost,
- B.electricityConsumption,
- B.electricityCost,
- C.gasConsumption,
- C.gasCost,
- sum(A.waterConsumption+B.electricityConsumption+C.gasConsumption) totalConsumption,
- sum(A.waterCost+B.electricityCost+C.gasCost) totalCost
- from
+ select z.meter_reading_date,
+ COALESCE(A.waterConsumption, 0) waterConsumption,
+ COALESCE(A.waterCost, 0) waterCost,
+ COALESCE(B.electricityConsumption, 0) electricityConsumption,
+ COALESCE(B.electricityCost, 0) electricityCost,
+ COALESCE(C.gasConsumption, 0) gasConsumption,
+ COALESCE(C.gasCost, 0) gasCost,
+ COALESCE(A.waterConsumption, 0)+ COALESCE(B.electricityConsumption, 0)+ COALESCE(C.gasConsumption, 0) totalConsumption,
+ COALESCE(A.waterCost, 0)+ COALESCE(B.electricityCost, 0)+ COALESCE(C.gasCost, 0) totalCost
+ from energy_consumption_detail z
+ left join
(select ecd.meter_reading_date,
sum(ecd.dosage) waterConsumption,
sum(ecd.dosage * e1.unit_price) waterCost
@@ -85,7 +89,8 @@
and ecd.type =#{c.type}
</if>
group by ecd.meter_reading_date)A
- join
+ on z.meter_reading_date=A.meter_reading_date
+ left join
(select ecd.meter_reading_date,
sum(ecd.dosage) electricityConsumption,
sum(ecd.dosage * e2.unit_price) electricityCost
@@ -97,8 +102,8 @@
and ecd.type =#{c.type}
</if>
group by ecd.meter_reading_date)B
- on A.meter_reading_date=B.meter_reading_date
- join
+ on z.meter_reading_date=B.meter_reading_date
+ left join
(select ecd.meter_reading_date,
sum(ecd.dosage) gasConsumption,
sum(ecd.dosage * e3.unit_price) gasCost
@@ -110,8 +115,8 @@
and ecd.type =#{c.type}
</if>
group by ecd.meter_reading_date)C
- on A.meter_reading_date=C.meter_reading_date
-
+ on z.meter_reading_date=C.meter_reading_date
+ order by z.meter_reading_date
</select>
</mapper>
--
Gitblit v1.9.3