From 171c413e6a3d1e4c24fae4fa54fcb7982a1a822d Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期六, 28 三月 2026 15:35:31 +0800
Subject: [PATCH] 销售看板统计的汇总
---
src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 150 insertions(+), 6 deletions(-)
diff --git a/src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml b/src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml
index cbbbd18..4540963 100644
--- a/src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml
+++ b/src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml
@@ -66,8 +66,9 @@
</if>
group by e.energy_tyep
</select>
- <select id="energyCostDtos" resultType="com.ruoyi.energy.dto.EnergyCostDto">
- select z.meter_reading_date,
+ <select id="energyCostDtos1" resultType="com.ruoyi.energy.dto.EnergyCostDto">
+ select distinct
+ z.meter_reading_date,
COALESCE(A.waterConsumption, 0) waterConsumption,
COALESCE(A.waterCost, 0) waterCost,
COALESCE(B.electricityConsumption, 0) electricityConsumption,
@@ -118,9 +119,115 @@
on z.meter_reading_date=C.meter_reading_date
order by z.meter_reading_date
</select>
- <select id="energyConsumptionDetailDtos"
- resultType="com.ruoyi.energy.dto.EnergyConsumptionDetailDto">
- select ecd.meter_reading_date,
+ <select id="energyCostDtos2" resultType="com.ruoyi.energy.dto.EnergyCostDto">
+ select distinct
+ DATE_FORMAT(z.meter_reading_date, '%Y-%m') AS meterReadingDate ,
+ 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 DATE_FORMAT(ecd.meter_reading_date, '%Y-%m') AS meterReadingDate ,
+ sum(ecd.dosage) waterConsumption,
+ sum(ecd.dosage * e1.unit_price) waterCost
+ from energy_consumption_detail ecd
+ left join energy e1 on ecd.energy_id = e1.id
+ where ecd.meter_reading_date between #{c.startDate} and #{c.endDate}
+ and e1.energy_tyep='姘�'
+ <if test="c.type != null and c.type != ''">
+ and ecd.type =#{c.type}
+ </if>
+ group by DATE_FORMAT(ecd.meter_reading_date, '%Y-%m'))A
+ on DATE_FORMAT(z.meter_reading_date, '%Y-%m')=A.meterReadingDate
+ left join
+ (select DATE_FORMAT(ecd.meter_reading_date, '%Y-%m') AS meterReadingDate,
+ sum(ecd.dosage) electricityConsumption,
+ sum(ecd.dosage * e2.unit_price) electricityCost
+ from energy_consumption_detail ecd
+ left join energy e2 on ecd.energy_id = e2.id
+ where ecd.meter_reading_date between #{c.startDate} and #{c.endDate}
+ and e2.energy_tyep='鐢�'
+ <if test="c.type != null and c.type != ''">
+ and ecd.type =#{c.type}
+ </if>
+ group by DATE_FORMAT(ecd.meter_reading_date, '%Y-%m'))B
+ on DATE_FORMAT(z.meter_reading_date, '%Y-%m')=B.meterReadingDate
+ left join
+ (select DATE_FORMAT(ecd.meter_reading_date, '%Y-%m') AS meterReadingDate,
+ sum(ecd.dosage) gasConsumption,
+ sum(ecd.dosage * e3.unit_price) gasCost
+ from energy_consumption_detail ecd
+ left join energy e3 on ecd.energy_id = e3.id
+ where ecd.meter_reading_date between #{c.startDate} and #{c.endDate}
+ and e3.energy_tyep='姘�'
+ <if test="c.type != null and c.type != ''">
+ and ecd.type =#{c.type}
+ </if>
+ group by DATE_FORMAT(ecd.meter_reading_date, '%Y-%m'))C
+ on DATE_FORMAT(z.meter_reading_date, '%Y-%m')=C.meterReadingDate
+ order by DATE_FORMAT(z.meter_reading_date, '%Y-%m')
+ </select>
+ <select id="energyCostDtos3" resultType="com.ruoyi.energy.dto.EnergyCostDto">
+ select distinct
+ DATE_FORMAT(z.meter_reading_date, '%Y') AS meterReadingDate,
+ 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 DATE_FORMAT(ecd.meter_reading_date, '%Y') AS meterReadingDate,
+ sum(ecd.dosage) waterConsumption,
+ sum(ecd.dosage * e1.unit_price) waterCost
+ from energy_consumption_detail ecd
+ left join energy e1 on ecd.energy_id = e1.id
+ where ecd.meter_reading_date between #{c.startDate} and #{c.endDate}
+ and e1.energy_tyep='姘�'
+ <if test="c.type != null and c.type != ''">
+ and ecd.type =#{c.type}
+ </if>
+ group by DATE_FORMAT(ecd.meter_reading_date, '%Y'))A
+ on DATE_FORMAT(z.meter_reading_date, '%Y')=A.meterReadingDate
+ left join
+ (select DATE_FORMAT(ecd.meter_reading_date, '%Y') AS meterReadingDate,
+ sum(ecd.dosage) electricityConsumption,
+ sum(ecd.dosage * e2.unit_price) electricityCost
+ from energy_consumption_detail ecd
+ left join energy e2 on ecd.energy_id = e2.id
+ where ecd.meter_reading_date between #{c.startDate} and #{c.endDate}
+ and e2.energy_tyep='鐢�'
+ <if test="c.type != null and c.type != ''">
+ and ecd.type =#{c.type}
+ </if>
+ group by DATE_FORMAT(ecd.meter_reading_date, '%Y'))B
+ on DATE_FORMAT(z.meter_reading_date, '%Y')=B.meterReadingDate
+ left join
+ (select DATE_FORMAT(ecd.meter_reading_date, '%Y') AS meterReadingDate,
+ sum(ecd.dosage) gasConsumption,
+ sum(ecd.dosage * e3.unit_price) gasCost
+ from energy_consumption_detail ecd
+ left join energy e3 on ecd.energy_id = e3.id
+ where ecd.meter_reading_date between #{c.startDate} and #{c.endDate}
+ and e3.energy_tyep='姘�'
+ <if test="c.type != null and c.type != ''">
+ and ecd.type =#{c.type}
+ </if>
+ group by DATE_FORMAT(ecd.meter_reading_date, '%Y'))C
+ on DATE_FORMAT(z.meter_reading_date, '%Y')=C.meterReadingDate
+ order by DATE_FORMAT(z.meter_reading_date, '%Y')
+ </select>
+ <select id="energyConsumptionDetailDtos1" resultType="com.ruoyi.energy.dto.EnergyDetailDto">
+ select distinct
+ ecd.meter_reading_date,
e.energy_tyep,
ecd.type,
e.unit,
@@ -137,5 +244,42 @@
e.unit_price
order by ecd.meter_reading_date
</select>
-
+ <select id="energyConsumptionDetailDtos2" resultType="com.ruoyi.energy.dto.EnergyDetailDto">
+ select distinct
+ DATE_FORMAT(ecd.meter_reading_date, '%Y-%m') AS meterReadingDate ,
+ e.energy_tyep,
+ ecd.type,
+ e.unit,
+ e.unit_price,
+ sum(ecd.dosage) dosage,
+ sum(ecd.dosage * e.unit_price) cost
+ 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}
+ group by DATE_FORMAT(ecd.meter_reading_date, '%Y-%m'),
+ e.energy_tyep,
+ ecd.type,
+ e.unit,
+ e.unit_price
+ order by DATE_FORMAT(ecd.meter_reading_date, '%Y-%m')
+ </select>
+ <select id="energyConsumptionDetailDtos3" resultType="com.ruoyi.energy.dto.EnergyDetailDto">
+ select distinct
+ DATE_FORMAT(ecd.meter_reading_date, '%Y') AS meterReadingDate,
+ e.energy_tyep,
+ ecd.type,
+ e.unit,
+ e.unit_price,
+ sum(ecd.dosage) dosage,
+ sum(ecd.dosage * e.unit_price) cost
+ 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}
+ group by DATE_FORMAT(ecd.meter_reading_date, '%Y'),
+ e.energy_tyep,
+ ecd.type,
+ e.unit,
+ e.unit_price
+ order by DATE_FORMAT(ecd.meter_reading_date, '%Y')
+ </select>
</mapper>
--
Gitblit v1.9.3