| | |
| | | </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 |
| | |
| | | <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} |
| | |
| | | </if> |
| | | 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 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, |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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> |
| | | |
| | | <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, |
| | | 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 ecd.meter_reading_date, |
| | | e.energy_tyep, |
| | | ecd.type, |
| | | e.unit, |
| | | 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> |