Newspaper 2 lat temu
rodzic
commit
fe4079669b

+ 5 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/EnergyWaterPressureController.java

@@ -33,4 +33,9 @@ public class EnergyWaterPressureController {
         return energyWaterPressureService.listWaterPressure(paramsMap);
     }
 
+    @PostMapping("/listWaterLinePressure")
+    public Result listWaterLinePressure(@RequestBody Map<String, String> paramsMap){
+        return energyWaterPressureService.listWaterLinePressure(paramsMap);
+    }
+
 }

+ 8 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/mapper/EnergyWaterPressureMapper.java

@@ -22,4 +22,12 @@ public interface EnergyWaterPressureMapper extends BaseMapper<EnergyWaterPressur
     List<WaterLinePressureVo> listDayWaterPressure(String farmId, List<String> chipCodeList, String chipCodes);
 
     List<WaterLinePressureVo> listMonthWaterPressure(String farmId, List<String> chipCodeList, String chipCodes);
+
+    List<WaterLinePressureVo> listWaterLineDayDetail(String farmId, List<String> chipCodeList, String chipCodes);
+
+    List<WaterLinePressureVo> listWaterLineWeekDetail(String farmId, List<String> chipCodeList, String chipCodes);
+
+    List<WaterLinePressureVo> listWaterLineMonthDetail(String farmId, List<String> chipCodeList, String chipCodes);
+
+    List<WaterLinePressureVo> listWaterLineCustomDetail(String farmId, List<String> chipCodeList, String chipCodes, String startDate, String endDate);
 }

+ 2 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/IEnergyWaterPressureService.java

@@ -19,4 +19,6 @@ public interface IEnergyWaterPressureService extends IService<EnergyWaterPressur
     Result getWaterPressure(Map<String, String> paramsMap);
 
     Result listWaterPressure(Map<String, String> paramsMap);
+
+    Result listWaterLinePressure(Map<String, String> paramsMap);
 }

+ 38 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnergyWaterPressureServiceImpl.java

@@ -1,6 +1,7 @@
 package com.huimv.guowei.admin.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.druid.util.StringUtils;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.guowei.admin.common.utils.Result;
 import com.huimv.guowei.admin.common.utils.ResultCode;
@@ -82,4 +83,41 @@ public class EnergyWaterPressureServiceImpl extends ServiceImpl<EnergyWaterPress
 
         return new Result(ResultCode.SUCCESS,waterLinePressureVo);
     }
+
+    @Override
+    public Result listWaterLinePressure(Map<String, String> paramsMap) {
+        String type = paramsMap.get("type");
+        String farmId = paramsMap.get("farmId");
+        String unitId = paramsMap.get("unitId");
+        if (StringUtils.isEmpty(unitId)){
+            unitId = "232";
+        }
+        String startDate = paramsMap.get("startDate");
+        String endDate = paramsMap.get("endDate")+" 23:59:59";
+        List<WaterLinePressureVo> waterLineList = new ArrayList<>();
+        List<EnvDeviceChip> deviceChipList = envDeviceChipMapper.selectList(new QueryWrapper<EnvDeviceChip>().eq("unit_id",unitId).eq("chip_type", 5));
+        if (ObjectUtil.isEmpty(deviceChipList)){
+            return new Result(ResultCode.SUCCESS,waterLineList);
+        }
+        List<String> chipCodeList = new ArrayList<>();
+        for (EnvDeviceChip envDeviceChip : deviceChipList) {
+            chipCodeList.add(envDeviceChip.getChipCode());
+        }
+        String chipCodes = String.join(",", chipCodeList);
+
+        chipCodes = "("+chipCodes+")";
+        if ("1".equals(type)){
+            waterLineList = energyWaterPressureMapper.listWaterLineDayDetail(farmId,chipCodeList,chipCodes);
+        }
+        if ("2".equals(type)){
+            waterLineList = energyWaterPressureMapper.listWaterLineWeekDetail(farmId,chipCodeList,chipCodes);
+        }
+        if ("3".equals(type)){
+            waterLineList = energyWaterPressureMapper.listWaterLineMonthDetail(farmId,chipCodeList,chipCodes);
+        }
+        if ("4".equals(type)){
+            waterLineList = energyWaterPressureMapper.listWaterLineCustomDetail(farmId,chipCodeList,chipCodes,startDate,endDate);
+        }
+        return new Result(ResultCode.SUCCESS,waterLineList);
+    }
 }

+ 4 - 4
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(SUM(CASE WHEN chip_code = ${code} THEN water_value END),2) 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 TO_DAYS(create_date) = TO_DAYS(NOW()) AND farm_id = #{farmId}
@@ -75,7 +75,7 @@
     <select id="listWaterLineWeekDetail" resultType="com.huimv.guowei.admin.entity.vo.WaterLineVo">
         SELECT create_date,
         <foreach collection="chipCodeList" item="code" index="index" separator=",">
-            ROUND(SUM(CASE WHEN chip_code = ${code} THEN water_value END), 2) 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 BETWEEN (SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY)) AND NOW()
@@ -85,7 +85,7 @@
     <select id="listWaterLineMonthDetail" resultType="com.huimv.guowei.admin.entity.vo.WaterLineVo">
         SELECT create_date,
         <foreach collection="chipCodeList" item="code" index="index" separator=",">
-            ROUND(SUM(CASE WHEN chip_code = ${code} THEN water_value END), 2) 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 BETWEEN (SELECT DATE_ADD(CURDATE(), INTERVAL -DAY(CURDATE())+1 DAY)) AND NOW()
@@ -96,7 +96,7 @@
     <select id="listWaterLineCustomDetail" resultType="com.huimv.guowei.admin.entity.vo.WaterLineVo">
     SELECT create_date,
         <foreach collection="chipCodeList" item="code" index="index" separator=",">
-            ROUND(SUM(CASE WHEN chip_code = ${code} THEN water_value END),2) 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 BETWEEN '${startDate}' AND '${endDate}'

+ 0 - 5
huimv-admin/src/main/resources/mapper/BaseDuckInfoMapper.xml

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.huimv.guowei.admin.mapper.BaseDuckInfoMapper">
-
-</mapper>

+ 43 - 2
huimv-admin/src/main/resources/mapper/EnergyWaterPressureMapper.xml

@@ -28,7 +28,7 @@
     <select id="listDayWaterPressure" resultType="com.huimv.guowei.admin.entity.vo.WaterLinePressureVo">
         SELECT create_date,
         <foreach collection="chipCodeList" item="code" index="index" separator=",">
-            COALESCE(ROUND(MAX(CASE WHEN chip_code = ${code} THEN water_value END),2),0) AS 'value${index+1}'
+            COALESCE(ROUND(MAX (CASE WHEN chip_code = ${code} THEN water_value END),2),0) AS 'value${index+1}'
         </foreach>
         FROM `energy_water_pressure`
         WHERE chip_code IN ${chipCodes} AND farm_id = #{farmId} AND TO_DAYS(create_date) = TO_DAYS(NOW())
@@ -38,10 +38,51 @@
     <select id="listMonthWaterPressure" resultType="com.huimv.guowei.admin.entity.vo.WaterLinePressureVo">
         SELECT create_date,
         <foreach collection="chipCodeList" item="code" index="index" separator=",">
-            COALESCE(ROUND(MAX(CASE WHEN chip_code = ${code} THEN water_value END),2),0) AS 'value${index+1}'
+            IFNULL(ROUND(AVG(CASE WHEN chip_code = ${code} THEN water_value END),2), 0) AS 'value${index+1}'
         </foreach>
         FROM `energy_water_pressure`
         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="listWaterLineDayDetail" resultType="com.huimv.guowei.admin.entity.vo.WaterLinePressureVo">
+        SELECT create_date,
+        <foreach collection="chipCodeList" item="code" index="index" separator=",">
+            IFNULL(ROUND(SUM(CASE WHEN chip_code = ${code} THEN water_value END),2), 0) AS 'value${index+1}'
+        </foreach>
+        FROM `energy_water_pressure`
+        WHERE chip_code IN ${chipCodes} AND TO_DAYS(create_date) = TO_DAYS(NOW()) AND farm_id = #{farmId}
+        GROUP BY create_date
+    </select>
+
+    <select id="listWaterLineWeekDetail" resultType="com.huimv.guowei.admin.entity.vo.WaterLinePressureVo">
+        SELECT create_date,
+        <foreach collection="chipCodeList" item="code" index="index" separator=",">
+            IFNULL(ROUND(AVG(CASE WHEN chip_code = ${code} THEN water_value END),2), 0) AS 'value${index+1}'
+        </foreach>
+        FROM `energy_water_pressure`
+        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.WaterLinePressureVo">
+        SELECT create_date,
+        <foreach collection="chipCodeList" item="code" index="index" separator=",">
+            IFNULL(ROUND(AVG(CASE WHEN chip_code = ${code} THEN water_value END),2), 0) AS 'value${index+1}'
+        </foreach>
+        FROM `energy_water_pressure`
+        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.WaterLinePressureVo">
+        SELECT create_date,
+        <foreach collection="chipCodeList" item="code" index="index" separator=",">
+            IFNULL(ROUND(AVG (CASE WHEN chip_code = ${code} THEN water_value END),2), 0) AS 'value${index+1}'
+        </foreach>
+        FROM `energy_water_pressure`
+        WHERE chip_code IN ${chipCodes} AND farm_id = #{farmId} AND create_date BETWEEN '${startDate}' AND '${endDate}'
+        GROUP BY DATE_FORMAT(create_date,"%Y-%m-%d")
+    </select>
 </mapper>