Newspaper 1 gadu atpakaļ
vecāks
revīzija
5a788c7ae6

+ 6 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnergyElectricityServiceImpl.java

@@ -98,6 +98,9 @@ public class EnergyElectricityServiceImpl extends ServiceImpl<EnergyElectricityM
         //日环比
         if (lastDayElectricity.toString().equals("0.0")){
             dayGap = BigDecimal.valueOf(100);
+            if (dayElectricity.toString().equals("0.0")){
+                dayGap = BigDecimal.valueOf(0);
+            }
         }else {
             dayGap = dayElectricity.subtract(lastDayElectricity).divide(lastDayElectricity,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.UP);
         }
@@ -117,6 +120,9 @@ public class EnergyElectricityServiceImpl extends ServiceImpl<EnergyElectricityM
         System.out.println(lastMonthElectricity);
         if (lastMonthElectricity.toString().equals("0.0")){
             monthGap = BigDecimal.valueOf(100);
+            if (monthElectricity.toString().equals("0.0")){
+                monthGap = BigDecimal.valueOf(0);
+            }
         }else {
             monthGap = monthElectricity.subtract(lastMonthElectricity).divide(lastMonthElectricity,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.UP);
         }

+ 6 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnergyWaterServiceImpl.java

@@ -141,6 +141,9 @@ public class EnergyWaterServiceImpl extends ServiceImpl<EnergyWaterMapper, Energ
         //日环比
         if (lastDayWater.toString().equals("0.0")){
             dayGap = BigDecimal.valueOf(100);
+            if (dayWater.toString().equals("0.0")){
+                dayGap = BigDecimal.valueOf(0);
+            }
         }else {
             dayGap = dayWater.subtract(lastDayWater).divide(lastDayWater).multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.UP);
         }
@@ -157,6 +160,9 @@ public class EnergyWaterServiceImpl extends ServiceImpl<EnergyWaterMapper, Energ
         //月环比
         if (lastMonthWater.toString().equals("0.0")){
             monthGap = BigDecimal.valueOf(100);
+            if (monthWater.toString().equals("0.0")){
+                monthGap = BigDecimal.valueOf(0);
+            }
         }else {
             monthGap = monthWater.subtract(lastMonthWater).divide(lastMonthWater,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.UP);
         }

+ 6 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnvRegularCallFeedingServiceImpl.java

@@ -148,6 +148,9 @@ public class EnvRegularCallFeedingServiceImpl extends ServiceImpl<EnvRegularCall
         //日环比
         if (lastDayFeed.toString().equals("0.00")){
             dayGap = BigDecimal.valueOf(100);
+            if (dayFeed.toString().equals("0.00")){
+                dayGap = BigDecimal.valueOf(0);
+            }
         }else {
             dayGap = dayFeed.subtract(lastDayFeed).divide(lastDayFeed,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.UP);
         }
@@ -164,6 +167,9 @@ public class EnvRegularCallFeedingServiceImpl extends ServiceImpl<EnvRegularCall
         //月环比
         if (lastMonthFeed.toString().equals("0.00")){
             monthGap = BigDecimal.valueOf(100);
+            if (monthFeed.toString().equals("0.00")){
+                monthGap = BigDecimal.valueOf(0);
+            }
         }else {
             monthGap = monthFeed.subtract(lastMonthFeed).divide(lastMonthFeed,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.UP);
         }

+ 18 - 17
huimv-admin/src/main/resources/com/huimv/guowei/admin/mapper/EnergyWaterMapper.xml

@@ -65,7 +65,7 @@
     <select id="listWaterLineDayDetail" resultType="com.huimv.guowei.admin.entity.vo.WaterLineVo">
     SELECT create_date,
     <foreach collection="chipCodeList" item="code" index="index" separator=",">
-        ROUND(MAX(CASE WHEN chip_code = ${code} THEN water_value END),2) AS 'value${index+1}'
+        ROUND(SUM(CASE WHEN chip_code = ${code} THEN water_value END),2) AS 'value${index+1}'
     </foreach>
     FROM `energy_water`
     WHERE chip_code IN ${chipCodes} AND TO_DAYS(create_date) = TO_DAYS(NOW()) AND farm_id = #{farmId}
@@ -73,29 +73,30 @@
     </select>
 
     <select id="listWaterLineWeekDetail" resultType="com.huimv.guowei.admin.entity.vo.WaterLineVo">
-    SELECT create_date,
+        SELECT create_date,
         <foreach collection="chipCodeList" item="code" index="index" separator=",">
-            ROUND(MAX(CASE WHEN chip_code = ${code} THEN water_value END),2) AS 'value${index+1}'
+            ROUND(SUM(CASE WHEN chip_code = ${code} THEN water_value END), 2) AS 'value${index+1}'
         </foreach>
-    FROM `energy_water`
-    WHERE chip_code IN ${chipCodes} AND farm_id = #{farmId} AND create_date BETWEEN (SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) DAY)) AND NOW()
-    GROUP BY DATE_FORMAT(create_date,"%Y-%m-%d")
+        FROM `energy_water`
+        WHERE chip_code IN ${chipCodes} AND farm_id = #{farmId} AND create_date BETWEEN (SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY)) AND NOW()
+        GROUP BY DATE_FORMAT(create_date, "%Y-%m-%d")
     </select>
 
     <select id="listWaterLineMonthDetail" resultType="com.huimv.guowei.admin.entity.vo.WaterLineVo">
-    SELECT create_date,
+        SELECT create_date,
         <foreach collection="chipCodeList" item="code" index="index" separator=",">
-            ROUND(MAX(CASE WHEN chip_code = ${code} THEN water_value END),2) AS 'value${index+1}'
+            ROUND(SUM(CASE WHEN chip_code = ${code} THEN water_value END), 2) AS 'value${index+1}'
         </foreach>
-    FROM `energy_water`
-    WHERE chip_code IN ${chipCodes} AND farm_id = #{farmId} AND create_date BETWEEN (SELECT DATE_ADD(CURDATE(),INTERVAL -DAY(CURDATE())+1 DAY)) AND NOW()
-    GROUP BY DATE_FORMAT(create_date,"%Y-%m-%d")
+        FROM `energy_water`
+        WHERE chip_code IN ${chipCodes} AND farm_id = #{farmId} AND create_date BETWEEN (SELECT DATE_ADD(CURDATE(), INTERVAL -DAY(CURDATE())+1 DAY)) AND NOW()
+        GROUP BY DATE_FORMAT(create_date, "%Y-%m-%d")
+
     </select>
 
     <select id="listWaterLineCustomDetail" resultType="com.huimv.guowei.admin.entity.vo.WaterLineVo">
     SELECT create_date,
         <foreach collection="chipCodeList" item="code" index="index" separator=",">
-            ROUND(MAX(CASE WHEN chip_code = ${code} THEN water_value END),2) AS 'value${index+1}'
+            ROUND(SUM(CASE WHEN chip_code = ${code} THEN water_value END),2) AS 'value${index+1}'
         </foreach>
     FROM `energy_water`
     WHERE chip_code IN ${chipCodes} AND farm_id = #{farmId} AND create_date BETWEEN '${startDate}' AND '${endDate}'
@@ -105,7 +106,7 @@
     <select id="listSixMonthWaterLine" resultType="com.huimv.guowei.admin.entity.vo.WaterLineVo">
         SELECT create_date,
         <foreach collection="chipCodeList" item="code" index="index" separator=",">
-            IFNULL(ROUND(MAX(CASE WHEN chip_code = ${code} THEN water_value END),2), 0) AS 'value${index+1}'
+            IFNULL(ROUND(SUM(CASE WHEN chip_code = ${code} THEN water_value END),2), 0) AS 'value${index+1}'
         </foreach>
     FROM `energy_water`
     WHERE chip_code IN ${chipCodes} AND farm_id = #{farmId} AND create_date &gt;= DATE_SUB(NOW(), INTERVAL 6 MONTH)
@@ -115,11 +116,11 @@
     <select id="listSevenDayWaterLine" resultType="com.huimv.guowei.admin.entity.vo.WaterLineVo">
         SELECT create_date,
         <foreach collection="chipCodeList" item="code" index="index" separator=",">
-            IFNULL(ROUND(MAX(CASE WHEN chip_code = ${code} THEN water_value END),2), 0) AS 'value${index+1}'
+            IFNULL(ROUND(SUM(CASE WHEN chip_code = ${code} THEN water_value END), 2), 0) AS 'value${index+1}'
         </foreach>
-    FROM `energy_water`
-    WHERE chip_code IN ${chipCodes} AND farm_id = #{farmId} AND create_date &gt;= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
-    GROUP BY DATE_FORMAT(create_date,"%Y-%m-%d")
+        FROM `energy_water`
+        WHERE chip_code IN ${chipCodes} AND farm_id = #{farmId} AND create_date >= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
+        GROUP BY DATE_FORMAT(create_date, "%Y-%m-%d")
     </select>