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