wwh пре 1 година
родитељ
комит
133b86e097

+ 9 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/dto/ListRankVo.java

@@ -0,0 +1,9 @@
+package com.huimv.admin.entity.dto;
+
+import lombok.Data;
+
+@Data
+public class ListRankVo {
+    private String value;
+    private Integer unitId;
+}

+ 5 - 1
huimv-admin/src/main/java/com/huimv/admin/entity/vo/EnvDataVo.java

@@ -4,6 +4,10 @@ import com.huimv.admin.entity.EnvData;
 import lombok.Data;
 
 @Data
-public class EnvDataVo extends EnvData {
+public class EnvDataVo {
     private String buildName;
+    private String hum;
+    private String temp;
+    private String aq;
+    private String unitId;
 }

+ 6 - 0
huimv-admin/src/main/java/com/huimv/admin/mapper/EnergyDataMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.huimv.admin.entity.EnergyData;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.entity.dto.ListRankVo;
 import com.huimv.admin.entity.vo.*;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
@@ -85,4 +86,9 @@ public interface EnergyDataMapper extends BaseMapper<EnergyData> {
     Double getTodayElectricity(Integer unitId, String displayType);
 
     Double getTodayWater(Integer unitId, String displayType);
+
+    List<ListRankVo> listRankWater(@Param(Constants.WRAPPER) QueryWrapper<EnergyData> queryWrapper);
+    List<ListRankVo> listRankElectricity(@Param(Constants.WRAPPER) QueryWrapper<EnergyData> queryWrapper);
+    List<ListRankVo> listRankGas(@Param(Constants.WRAPPER) QueryWrapper<EnergyData> queryWrapper);
+    List<ListRankVo> listRankFeed(@Param(Constants.WRAPPER) QueryWrapper<EnergyData> queryWrapper);
 }

+ 84 - 114
huimv-admin/src/main/java/com/huimv/admin/service/impl/EnergyDataServiceImpl.java

@@ -16,6 +16,7 @@ import com.huimv.admin.common.utils.DataUill;
 import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.common.utils.ResultCode;
 import com.huimv.admin.entity.*;
+import com.huimv.admin.entity.dto.ListRankVo;
 import com.huimv.admin.entity.vo.*;
 import com.huimv.admin.mapper.*;
 import com.huimv.admin.service.IEnergyDataService;
@@ -64,17 +65,17 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
         QueryWrapper<EnergyData> electricityqueryWrapper = new QueryWrapper<>();
         QueryWrapper<EnergyData> feedqueryWrapper = new QueryWrapper<>();
         QueryWrapper<EnergyData> gasqueryWrapper = new QueryWrapper<>();
-        if (ObjectUtil.isNotEmpty(waterDisplayType)){
-            waterqueryWrapper.eq("display_type",waterDisplayType);
+        if (ObjectUtil.isNotEmpty(waterDisplayType)) {
+            waterqueryWrapper.eq("display_type", waterDisplayType);
         }
-        if (ObjectUtil.isNotEmpty(electricityDisplayType)){
-            electricityqueryWrapper.eq("display_type",electricityDisplayType);
+        if (ObjectUtil.isNotEmpty(electricityDisplayType)) {
+            electricityqueryWrapper.eq("display_type", electricityDisplayType);
         }
-        if (ObjectUtil.isNotEmpty(feedDisplayType)){
-            feedqueryWrapper.eq("display_type",feedDisplayType);
+        if (ObjectUtil.isNotEmpty(feedDisplayType)) {
+            feedqueryWrapper.eq("display_type", feedDisplayType);
         }
-        if (ObjectUtil.isNotEmpty(gasDisplayType)){
-            gasqueryWrapper.eq("display_type",gasDisplayType);
+        if (ObjectUtil.isNotEmpty(gasDisplayType)) {
+            gasqueryWrapper.eq("display_type", gasDisplayType);
         }
         Date monthmorning = DataUill.getTimesMonthmorning();
         waterqueryWrapper.eq("farm_id", farmId).ge("create_date", monthmorning);
@@ -115,8 +116,8 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
 
         QueryWrapper<EnergyData> dataQueryWrapper = new QueryWrapper<>();
         dataQueryWrapper.eq("farm_id", farmId);
-        if (ObjectUtil.isNotEmpty(displayType)){
-            dataQueryWrapper.eq("display_type",displayType);
+        if (ObjectUtil.isNotEmpty(displayType)) {
+            dataQueryWrapper.eq("display_type", displayType);
         }
         //用水
         if ("1".equals(dataType)) {
@@ -266,7 +267,7 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
         JSONArray jsonArray = new JSONArray();
 
         QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("farm_id", farmId).eq("f_type", 2).eq("other3",1);
+        queryWrapper.eq("farm_id", farmId).eq("f_type", 2).eq("other3", 1);
         List<BasePigpen> pigpens = basePigpenMapper.selectList(queryWrapper);//得到所有的楼层
         for (BasePigpen pigpen : pigpens) {
             Float value = 0.00f;
@@ -321,17 +322,17 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
                 }
 
 
-                if (ObjectUtil.isNotEmpty(displayType)){
-                    waterWrapper.eq("display_type",displayType);
+                if (ObjectUtil.isNotEmpty(displayType)) {
+                    waterWrapper.eq("display_type", displayType);
                 }
-                if (ObjectUtil.isNotEmpty(displayType)){
-                    gasWrapper.eq("display_type",displayType);
+                if (ObjectUtil.isNotEmpty(displayType)) {
+                    gasWrapper.eq("display_type", displayType);
                 }
-                if (ObjectUtil.isNotEmpty(displayType)){
-                    electricityWrapper.eq("display_type",displayType);
+                if (ObjectUtil.isNotEmpty(displayType)) {
+                    electricityWrapper.eq("display_type", displayType);
                 }
-                if (ObjectUtil.isNotEmpty(displayType)){
-                    feedWrapper.eq("display_type",displayType);
+                if (ObjectUtil.isNotEmpty(displayType)) {
+                    feedWrapper.eq("display_type", displayType);
                 }
 
                 waterWrapper.select(" IFNULL(SUM(water_value),0) waterValue ");
@@ -376,23 +377,23 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
         String gasDisplayType = paramsMap.get("gasDisplayType");
         QueryWrapper<EnergyData> queryWrapper1 = new QueryWrapper<>();
         queryWrapper1.eq("farm_id", farmId);
-        if (ObjectUtil.isNotEmpty(gasDisplayType)){
-            queryWrapper1.eq("display_type",gasDisplayType);
+        if (ObjectUtil.isNotEmpty(gasDisplayType)) {
+            queryWrapper1.eq("display_type", gasDisplayType);
         }
         QueryWrapper<EnergyData> queryWrapper2 = new QueryWrapper<>();
         queryWrapper2.eq("farm_id", farmId);
-        if (ObjectUtil.isNotEmpty(feedDisplayType)){
-            queryWrapper2.eq("display_type",feedDisplayType);
+        if (ObjectUtil.isNotEmpty(feedDisplayType)) {
+            queryWrapper2.eq("display_type", feedDisplayType);
         }
         QueryWrapper<EnergyData> queryWrapper3 = new QueryWrapper<>();
         queryWrapper3.eq("farm_id", farmId);
-        if (ObjectUtil.isNotEmpty(waterDisplayType)){
-            queryWrapper3.eq("display_type",waterDisplayType);
+        if (ObjectUtil.isNotEmpty(waterDisplayType)) {
+            queryWrapper3.eq("display_type", waterDisplayType);
         }
         QueryWrapper<EnergyData> queryWrapper4 = new QueryWrapper<>();
         queryWrapper4.eq("farm_id", farmId);
-        if (ObjectUtil.isNotEmpty(electricityDisplayType)){
-            queryWrapper4.eq("display_type",electricityDisplayType);
+        if (ObjectUtil.isNotEmpty(electricityDisplayType)) {
+            queryWrapper4.eq("display_type", electricityDisplayType);
         }
         List<EnergyAllDataVo> energyGasDataVos = dataMapper.listDayGas(queryWrapper1.isNotNull("gas_value"));
         List<EnergyAllDataVo> energyFeedDataVos = dataMapper.listDayFeed(queryWrapper2.isNotNull("feed_value"));
@@ -410,7 +411,7 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
             for (EnergyAllDataVo energyFeedDataVo : energyFeedDataVos) {
                 Double feed = Double.valueOf(energyFeedDataVo.getValue());
                 DecimalFormat def = new DecimalFormat("0.00");
-                energyFeedDataVo.setValue(def.format(feed/1000));
+                energyFeedDataVo.setValue(def.format(feed / 1000));
             }
         }
         jsonObject.put("feed", energyFeedDataVos);
@@ -430,86 +431,55 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
             dataType = "1";
         }
         JSONArray jsonArray = new JSONArray();
+        QueryWrapper<EnergyData> waterWrapper = new QueryWrapper<>();
+        QueryWrapper<EnergyData> gasWrapper = new QueryWrapper<>();
+        QueryWrapper<EnergyData> electricityWrapper = new QueryWrapper<>();
+        QueryWrapper<EnergyData> feedWrapper = new QueryWrapper<>();
+        Date timesMonthmorning = DataUill.getTimesMonthmorning();
 
-        QueryWrapper<BasePigpen> basePigpenQueryWrapper = new QueryWrapper<>();
-        basePigpenQueryWrapper.eq("farm_id", farmId).eq("f_type", 2).eq("other3",1);
-        List<BasePigpen> basePigpenList = basePigpenMapper.selectList(basePigpenQueryWrapper);//得到所有的楼层
-        Float value = 0.00f;
-        for (BasePigpen basePigpen : basePigpenList) {
-            QueryWrapper<BasePigpen> queryWrapper1 = new QueryWrapper<>();
-            queryWrapper1.like("other2", basePigpen.getId()).eq("farm_id", farmId).ne("id", basePigpen.getId());
-            List<BasePigpen> basePigpens1 = basePigpenMapper.selectList(queryWrapper1);
-            List<Integer> idList = new ArrayList<>();
-            basePigpens1.forEach(item -> {
-                idList.add(item.getId());
-            });//某一层所有单元的id
-
-            QueryWrapper<EnergyData> waterWrapper = new QueryWrapper<>();
-            QueryWrapper<EnergyData> gasWrapper = new QueryWrapper<>();
-            QueryWrapper<EnergyData> electricityWrapper = new QueryWrapper<>();
-            QueryWrapper<EnergyData> feedWrapper = new QueryWrapper<>();
-            Date timesMonthmorning = DataUill.getTimesMonthmorning();
+        waterWrapper.eq("farm_id", farmId).ge("create_date", timesMonthmorning);
+        gasWrapper.eq("farm_id", farmId).ge("create_date", timesMonthmorning);
+        feedWrapper.eq("farm_id", farmId).ge("create_date", timesMonthmorning);
+        electricityWrapper.eq("farm_id", farmId).ge("create_date", timesMonthmorning);
+        if (ObjectUtil.isNotEmpty(waterDisplayType)) {
+            waterWrapper.eq("display_type", waterDisplayType);
+        }
+        if (ObjectUtil.isNotEmpty(gasDisplayType)) {
+            gasWrapper.eq("display_type", gasDisplayType);
+        }
+        if (ObjectUtil.isNotEmpty(electricityDisplayType)) {
+            electricityWrapper.eq("display_type", electricityDisplayType);
+        }
+        if (ObjectUtil.isNotEmpty(feedDisplayType)) {
+            feedWrapper.eq("display_type", feedDisplayType);
+        }
+        List<ListRankVo> lists = new ArrayList<>();
+        if ("1".equals(dataType)) {
+            lists = dataMapper.listRankWater(waterWrapper);
+        }
+        if ("2".equals(dataType)) {
+            lists = dataMapper.listRankElectricity(waterWrapper);
+        }
+        if ("3".equals(dataType)) {
+            lists = dataMapper.listRankFeed(waterWrapper);
+        }
+        if ("4".equals(dataType)) {
+            lists = dataMapper.listRankGas(waterWrapper);
+        }
 
+        for (ListRankVo list : lists) {
             JSONObject jsonObject = new JSONObject();
-            if (idList.size() != 0) {
-                waterWrapper.eq("farm_id", farmId).in("unit_id", idList);
-                waterWrapper.ge("create_date", timesMonthmorning);
-                gasWrapper.eq("farm_id", farmId).in("unit_id", idList);
-                gasWrapper.ge("create_date", timesMonthmorning);
-                feedWrapper.eq("farm_id", farmId).in("unit_id", idList);
-                feedWrapper.ge("create_date", timesMonthmorning);
-                electricityWrapper.eq("farm_id", farmId).in("unit_id", idList);
-                electricityWrapper.ge("create_date", timesMonthmorning);
+            QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", farmId).eq("unit_id", list.getUnitId());
+            EnergyEnvDevice envDevice = envDeviceMapper.selectOne(queryWrapper);
+            jsonObject.put("value", list.getValue());
+            jsonObject.put("buildName", envDevice.getUnitName());
+            jsonArray.add(jsonObject);
+        }
 
-                if (ObjectUtil.isNotEmpty(waterDisplayType)){
-                    waterWrapper.eq("display_type",waterDisplayType);
-                }
-                if (ObjectUtil.isNotEmpty(gasDisplayType)){
-                    gasWrapper.eq("display_type",gasDisplayType);
-                }
-                if (ObjectUtil.isNotEmpty(electricityDisplayType)){
-                    electricityWrapper.eq("display_type",electricityDisplayType);
-                }
-                if (ObjectUtil.isNotEmpty(feedDisplayType)){
-                    feedWrapper.eq("display_type",feedDisplayType);
-                }
 
-                waterWrapper.select(" IFNULL(SUM(water_value),0) waterValue ");
-                gasWrapper.select(" IFNULL(SUM(gas_value),0) gasValue ");
-                electricityWrapper.select(" IFNULL(SUM(electricity_value),0) electricityValue ");
-                feedWrapper.select(" IFNULL(SUM(feed_value),0) feedValue ");
+        return new Result(ResultCode.SUCCESS, jsonArray);
 
-                if ("1".equals(dataType)) {
-                    value = Float.parseFloat(dataMapper.selectOne(waterWrapper).getWaterValue());
-                }
-                if ("2".equals(dataType)) {
-                    value = Float.parseFloat(dataMapper.selectOne(electricityWrapper).getElectricityValue());
-                }
-                if ("3".equals(dataType)) {
-                    value = Float.parseFloat(dataMapper.selectOne(feedWrapper).getFeedValue());
-                }
-                if ("4".equals(dataType)) {
-                    value = Float.parseFloat(dataMapper.selectOne(gasWrapper).getGasValue());
-                }
-                jsonObject.put("value", value);
-                jsonObject.put("buildName", basePigpen.getBuildName());
-                value = 0.00f;
-            } else {
-                jsonObject.put("value", 0);
-                jsonObject.put("buildName", basePigpen.getBuildName());
-            }
-            jsonArray.add(jsonObject);
-        }
-        JSONArray arraySort = jsonArraySort1(jsonArray, "value", true);
-        JSONArray array = new JSONArray();
-        if (arraySort.size() < 5) {
-            return new Result(ResultCode.SUCCESS, arraySort);
-        } else {
-            for (int i = 0; i < 5; i++) {
-                array.add(arraySort.get(i));
-            }
-            return new Result(ResultCode.SUCCESS, array);
-        }
 
     }
 
@@ -628,14 +598,14 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
         List<String> list = new ArrayList<>();
         if ("".equals(deviceCode) || null == deviceCode) {
             QueryWrapper<EnergyEnvDevice> queryWrapper1 = new QueryWrapper<>();
-            queryWrapper1.in("farm_id", 26,29,22,28,21,33,34,35);
+            queryWrapper1.in("farm_id", 26, 29, 22, 28, 21, 33, 34, 35);
             if ("1".equals(type)) {
                 queryWrapper1.eq("remark", 1);
             } else {
                 queryWrapper1.eq("remark", 0);
             }
             List<EnergyEnvDevice> envDevices = envDeviceMapper.selectList(queryWrapper1);
-            envDevices.forEach(item->{
+            envDevices.forEach(item -> {
                 list.add(item.getDeviceCode());
             });
             jsonObject1.put("deviceCode", list);
@@ -678,7 +648,7 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
             jsonObject.put("originalValue", jsonArray.getJSONObject(i).get("other3"));
             array.add(jsonObject);
         }
-        return new Result(ResultCode.SUCCESS,array);
+        return new Result(ResultCode.SUCCESS, array);
     }
 
     @Override
@@ -686,35 +656,35 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
         String farmId = paramsMap.get("farmId");
         String dataType = paramsMap.get("dataType");
         List<EnergyData> energyData = new ArrayList<>();
-        if ("1".equals(dataType)){
+        if ("1".equals(dataType)) {
             energyData = dataMapper.selectList(new QueryWrapper<EnergyData>().lambda()
-                    .eq(EnergyData::getFarmId,farmId)
+                    .eq(EnergyData::getFarmId, farmId)
                     .eq(EnergyData::getDisplayType, 1)
                     .isNotNull(EnergyData::getWaterValue)
                     .orderByDesc(EnergyData::getCreateDate));
         }
-        if ("2".equals(dataType)){
+        if ("2".equals(dataType)) {
             energyData = dataMapper.selectList(new QueryWrapper<EnergyData>().lambda()
-                    .eq(EnergyData::getFarmId,farmId)
+                    .eq(EnergyData::getFarmId, farmId)
                     .eq(EnergyData::getDisplayType, 1)
                     .isNotNull(EnergyData::getElectricityValue)
                     .orderByDesc(EnergyData::getCreateDate));
         }
-        if ("3".equals(dataType)){
+        if ("3".equals(dataType)) {
             energyData = dataMapper.selectList(new QueryWrapper<EnergyData>().lambda()
-                    .eq(EnergyData::getFarmId,farmId)
+                    .eq(EnergyData::getFarmId, farmId)
                     .eq(EnergyData::getDisplayType, 1)
                     .isNotNull(EnergyData::getFeedValue)
                     .orderByDesc(EnergyData::getCreateDate));
         }
-        if ("4".equals(dataType)){
+        if ("4".equals(dataType)) {
             energyData = dataMapper.selectList(new QueryWrapper<EnergyData>().lambda()
-                    .eq(EnergyData::getFarmId,farmId)
+                    .eq(EnergyData::getFarmId, farmId)
                     .eq(EnergyData::getDisplayType, 1)
                     .isNotNull(EnergyData::getGasValue)
                     .orderByDesc(EnergyData::getCreateDate));
         }
-        return new Result(ResultCode.SUCCESS,energyData);
+        return new Result(ResultCode.SUCCESS, energyData);
     }
 
 

+ 12 - 32
huimv-admin/src/main/java/com/huimv/admin/service/impl/EnvDeviceServiceImpl.java

@@ -120,10 +120,10 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
         if (envDeviceMapper.selectCount(new QueryWrapper<EnvDevice>().eq("device_name", envDevice.getDeviceName()).eq("farm_id", envDevice.getFarmId())) != 0) {
             return new Result(ResultCode.FAIL, "设备名称已存在");
         }
-        if (envDeviceMapper.selectCount(new QueryWrapper<EnvDevice>().eq("device_code",envDevice.getDeviceCode())) != 0) {
+        if (envDeviceMapper.selectCount(new QueryWrapper<EnvDevice>().eq("device_code", envDevice.getDeviceCode())) != 0) {
             return new Result(ResultCode.FAIL, "设备编码已存在");
         }
-        if (envDeviceMapper.selectCount(new QueryWrapper<EnvDevice>().eq("unit_id",envDevice.getUnitId()).eq("farm_id",envDevice.getFarmId())) != 0) {
+        if (envDeviceMapper.selectCount(new QueryWrapper<EnvDevice>().eq("unit_id", envDevice.getUnitId()).eq("farm_id", envDevice.getFarmId())) != 0) {
             return new Result(ResultCode.FAIL, "该单元已有设备");
         }
         envDeviceMapper.insert(envDevice);
@@ -479,38 +479,18 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
         }
         List objects = new ArrayList<>();
         if ("0".equals(displayType)) {
-            QueryWrapper<BasePigpen> queryWrapper1 = new QueryWrapper<>();
-            queryWrapper1.eq("farm_id", farmId).eq("f_type", 3).eq("other3",0);
-            List<BasePigpen> basePigpens = basePigpenMapper.selectList(queryWrapper1);
-            for (BasePigpen basePigpen : basePigpens) {
+            List<EnvDataVo> envDataVos = dataMapper.listPigpenAll(farmId);
+            for (EnvDataVo envDataVo : envDataVos) {
                 JSONObject jsonObject = new JSONObject();
-                QueryWrapper<EnvData> queryWrapper = new QueryWrapper<>();
-                queryWrapper.eq("farm_id", farmId).eq("unit_id", basePigpen.getId())
-                        .orderByDesc("create_time").last(" limit 1");
-                EnvData envData = dataMapper.selectOne(queryWrapper);
-                if (ObjectUtil.isNotEmpty(envData)) {
-                    jsonObject.put("temp", envData.getEnvTemp());//温度
-                    jsonObject.put("hum", envData.getEnvHum());//湿度
-                    jsonObject.put("location", basePigpen.getBuildName());
-                    QueryWrapper<EnvNh3n> queryWrapper2 = new QueryWrapper<>();
-                    queryWrapper2.eq("farm_id", farmId).eq("unit_id", envData.getUnitId())
-                            .orderByDesc("create_date").last(" limit 1");
-                    EnvNh3n envNh3n = nh3nMapper.selectOne(queryWrapper2);
-                    if (ObjectUtil.isNotEmpty(envNh3n)) {
-                        jsonObject.put("aq", envNh3n.getNh3N());
-                    } else {
-                        jsonObject.put("aq", 0);
-                    }
-                    jsonObject.put("unit_id", basePigpen.getId());//单元id
-                } else {
-                    jsonObject.put("temp", 0);//温度
-                    jsonObject.put("hum", 0);//湿度
-                    jsonObject.put("location", basePigpen.getBuildName());
-                    jsonObject.put("unit_id", basePigpen.getId());//单元id
-                    jsonObject.put("aq", 0);
-                }
+                jsonObject.put("temp", envDataVo.getTemp());//温度
+                jsonObject.put("hum", envDataVo.getHum());//湿度
+                jsonObject.put("location", envDataVo.getBuildName());
+                jsonObject.put("aq", envDataVo.getAq());
+                jsonObject.put("unit_id", envDataVo.getUnitId());//单元id
                 objects.add(jsonObject);
             }
+
+            return new Result(ResultCode.SUCCESS, objects);
         } else {
             QueryWrapper<BasePigpen> queryWrapper1 = new QueryWrapper<>();
             queryWrapper1.eq("farm_id", farmId).eq("f_type", 3);
@@ -624,7 +604,7 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
                 jsonObject.put("deviceCode", envDevice.getDeviceCode());
                 jsonObject.put("buildName", envDevice.getUnitName());
                 jsonObject.put("aq", "");
-                jsonObject.put("hum","");
+                jsonObject.put("hum", "");
                 jsonObject.put("temp", "");
                 jsonObject.put("status", envDevice.getDeviceStatus());
                 jsonArray.add(jsonObject);

+ 29 - 0
huimv-admin/src/main/resources/com/huimv/admin/mapper/EnergyDataMapper.xml

@@ -323,4 +323,33 @@ FROM `energy_data` WHERE unit_id = ${unitId} AND farm_id =${farmId}
         FROM `energy_data`
         WHERE unit_id = #{unitId} AND display_type = #{displayType} and Date(create_date) = CURDATE()
     </select>
+
+    <select id="listRankWater" resultType="com.huimv.admin.entity.dto.ListRankVo">
+        select ROUND(IFNUll(SUM(water_value),0),2) value,unit_id unitId from energy_data
+         ${ew.customSqlSegment}
+        GROUP BY unit_id
+        ORDER BY value DESC
+        limit 5
+    </select>
+    <select id="listRankElectricity" resultType="com.huimv.admin.entity.dto.ListRankVo">
+        select ROUND(IFNUll(SUM(electricity_value),0),2) value,unit_id unitId from energy_data
+         ${ew.customSqlSegment}
+        GROUP BY unit_id
+        ORDER BY value DESC
+         limit 5
+    </select>
+    <select id="listRankGas" resultType="com.huimv.admin.entity.dto.ListRankVo">
+        select ROUND(IFNUll(SUM(gas_value),0),2) value,unit_id unitId from energy_data
+         ${ew.customSqlSegment}
+        GROUP BY unit_id
+        ORDER BY value DESC
+           limit 5
+    </select>
+    <select id="listRankFeed" resultType="com.huimv.admin.entity.dto.ListRankVo">
+        select ROUND(IFNUll(SUM(feed_value),0),2) value,unit_id unitId from energy_data
+         ${ew.customSqlSegment}
+        GROUP BY unit_id
+        ORDER BY value DESC
+           limit 5
+    </select>
 </mapper>

+ 47 - 13
huimv-admin/src/main/resources/com/huimv/admin/mapper/EnvDataMapper.xml

@@ -38,18 +38,52 @@
     </select>
 
     <select id="listPigpenAll" resultType="com.huimv.admin.entity.vo.EnvDataVo">
-        SELECT t1.id,t1.build_name,t4.env_temp,t4.env_hum,t4.create_time
-        FROM `base_pigpen` t1
-        INNER JOIN
-        (
-            SELECT t2.id,t2.unit_id,t2.env_temp,t2.env_hum,t2.create_time FROM `env_data` t2 INNER JOIN (
-             (
-                SELECT MAX(ed.id),ed.unit_id,MAX(ed.create_time)  AS create_time
-                FROM `env_data` ed
-                GROUP BY ed.unit_id
-                ORDER BY ed.id
-            )t3
-            ) ON t2.unit_id = t3.unit_id WHERE t2.create_time = t3.create_time) t4
-              ON t1.id = t4.unit_id AND t1.farm_id = #{farmId} AND t1.f_type = 3
+ SELECT
+    bp.build_name buildName,
+    COALESCE(ed.env_temp,0) temp,
+     COALESCE(ed.env_hum,0) hum,
+     COALESCE(ed.unit_id,0) unitId,
+     COALESCE(en.nh3_n,0) aq
+FROM
+    `base_pigpen` bp
+LEFT JOIN (
+    SELECT
+        ed1.*
+    FROM
+        `env_data` ed1
+    INNER JOIN (
+        SELECT
+            unit_id,
+            MAX(id) AS max_id
+        FROM
+            `env_data`
+        GROUP BY
+            unit_id
+    ) ed2 ON ed1.unit_id = ed2.unit_id AND ed1.id = ed2.max_id
+) ed ON ed.unit_id = bp.id
+
+
+LEFT JOIN (
+    SELECT
+        en1.*
+    FROM
+        `env_nh3n` en1
+    INNER JOIN (
+        SELECT
+            unit_id,
+            MAX(id) AS max_id
+        FROM
+            `env_nh3n`
+        GROUP BY
+            unit_id
+    ) en2 ON en1.unit_id = en2.unit_id AND en1.id = en2.max_id
+) en ON en.unit_id = bp.id
+
+
+
+WHERE
+    bp.farm_id = #{farmId}
+    AND bp.f_type = 3
+    AND bp.other3 = 0;
     </select>
 </mapper>