浏览代码

华统大屏能耗修改

wwh 1 年之前
父节点
当前提交
ae9fb6b3fb

+ 4 - 1
huimv-admin/src/main/java/com/huimv/admin/mapper/EnergyDataMapper.java

@@ -1,5 +1,6 @@
 package com.huimv.admin.mapper;
 package com.huimv.admin.mapper;
 
 
+import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.huimv.admin.entity.EnergyData;
 import com.huimv.admin.entity.EnergyData;
@@ -8,6 +9,7 @@ import com.huimv.admin.entity.vo.*;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Repository;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -60,5 +62,6 @@ public interface EnergyDataMapper extends BaseMapper<EnergyData> {
     EnergyData listDataCount(@Param(Constants.WRAPPER) QueryWrapper<EnergyData> queryWrapper);
     EnergyData listDataCount(@Param(Constants.WRAPPER) QueryWrapper<EnergyData> queryWrapper);
 
 
     //大屏能耗弹窗
     //大屏能耗弹窗
-    EnergyDataScreenVo listDataAll(@Param(Constants.WRAPPER) QueryWrapper<EnergyData> queryWrapper);
+    EnergyDataScreenVo listDataAll(String today, String week,String month,String yesterdayStart,String yesterdayEnd
+            ,String weekStart,String weekEnd,String monthStart,String monthEnd,Integer unitId,String farmId);
 }
 }

+ 78 - 141
huimv-admin/src/main/java/com/huimv/admin/service/impl/EnergyDataServiceImpl.java

@@ -401,71 +401,39 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
         Date timesmorning = DataUill.getTimesmorning();
         Date timesmorning = DataUill.getTimesmorning();
         DateTime dateTime = DateUtil.beginOfWeek(new Date());//本周
         DateTime dateTime = DateUtil.beginOfWeek(new Date());//本周
         Date timesMonthmorning = DataUill.getTimesMonthmorning();//本月
         Date timesMonthmorning = DataUill.getTimesMonthmorning();//本月
+        Date dayStart = (Date) getYesterdayRange().get("startTime");
+        Date dayEnd = (Date) getYesterdayRange().get("stopTime");
+        Date weekStart = (Date) getLastWeekRange().get("startTime");
+        Date weekEnd = (Date) getLastWeekRange().get("stopTime");
+        Date monthStart = (Date) getLastMonthRange().get("startTime");
+        Date monthEnd = (Date) getLastMonthRange().get("stopTime");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
 
 
         JSONArray jsonArray = new JSONArray();
         JSONArray jsonArray = new JSONArray();
         for (EnergyEnvDevice envDevice : envDevices) {
         for (EnergyEnvDevice envDevice : envDevices) {
-            QueryWrapper<EnergyData> queryWrapper1 = new QueryWrapper<>();
-            queryWrapper1.eq("unit_id", envDevice.getUnitId());
-            queryWrapper1.eq("farm_id", farmId);
-            queryWrapper1.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
-            EnergyData data = dataMapper.selectOne(queryWrapper1);//当日读数
-
-            queryWrapper1.ge("create_date", timesmorning);
-            EnergyData energyData = dataMapper.selectOne(queryWrapper1);//当日用量
-
-            QueryWrapper<EnergyData> queryWrapper2 = new QueryWrapper<>();
-            queryWrapper2.eq("unit_id", envDevice.getUnitId());
-            queryWrapper2.eq("farm_id", farmId);
-            queryWrapper2.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
-            queryWrapper2.between("create_date", getYesterdayRange().get("startTime"), getYesterdayRange().get("stopTime"));
-            EnergyData data1 = dataMapper.selectOne(queryWrapper1);//昨日用量
-
-            QueryWrapper<EnergyData> queryWrapper4 = new QueryWrapper<>();
-            queryWrapper4.eq("unit_id", envDevice.getUnitId());
-            queryWrapper4.eq("farm_id", farmId);
-            queryWrapper4.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
-            queryWrapper4.ge("create_date", dateTime);
-            EnergyData data4 = dataMapper.selectOne(queryWrapper4);//本周用量
-
-            QueryWrapper<EnergyData> queryWrapper3 = new QueryWrapper<>();
-            queryWrapper3.eq("unit_id", envDevice.getUnitId());
-            queryWrapper3.eq("farm_id", farmId);
-            queryWrapper3.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
-            queryWrapper3.between("create_date", getLastWeekRange().get("startTime"), getLastWeekRange().get("stopTime"));
-            EnergyData data3 = dataMapper.selectOne(queryWrapper3);//上周用量
-
-            QueryWrapper<EnergyData> queryWrapper5 = new QueryWrapper<>();
-            queryWrapper5.eq("unit_id", envDevice.getUnitId());
-            queryWrapper5.eq("farm_id", farmId);
-            queryWrapper5.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
-            queryWrapper5.ge("create_date", timesMonthmorning);
-            EnergyData data5 = dataMapper.selectOne(queryWrapper5);//本月用量
-
-            QueryWrapper<EnergyData> queryWrapper6 = new QueryWrapper<>();
-            queryWrapper6.eq("unit_id", envDevice.getUnitId());
-            queryWrapper6.eq("farm_id", farmId);
-            queryWrapper6.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
-            queryWrapper6.between("create_date", getLastMonthRange().get("startTime"), getLastMonthRange().get("stopTime"));
-            EnergyData data6 = dataMapper.selectOne(queryWrapper6);//上月用量
-
-
+            EnergyDataScreenVo dataScreenVo = dataMapper.listDataAll(sdf.format(timesmorning), sdf.format(dateTime), sdf.format(timesMonthmorning),
+                    sdf.format(dayStart), sdf.format(dayEnd)
+                    , sdf.format(weekStart), sdf.format(weekEnd)
+                    , sdf.format(monthStart), sdf.format(monthEnd)
+                    , envDevice.getUnitId(), farmId);
             if ("1".equals(type) && "1".equals(envDevice.getRemark())) {
             if ("1".equals(type) && "1".equals(envDevice.getRemark())) {
                 JSONObject jsonObject = new JSONObject();
                 JSONObject jsonObject = new JSONObject();
                 jsonObject.put("deviceCode", envDevice.getDeviceCode());
                 jsonObject.put("deviceCode", envDevice.getDeviceCode());
                 jsonObject.put("buildName", envDevice.getUnitName());
                 jsonObject.put("buildName", envDevice.getUnitName());
-                jsonObject.put("day1", data.getWaterValue());
-                jsonObject.put("day2", energyData.getWaterValue());
-                jsonObject.put("day3", data1.getWaterValue());
-                jsonObject.put("week1", data4.getWaterValue());
-                jsonObject.put("week2", data3.getWaterValue());
-                jsonObject.put("month1", data5.getWaterValue());
-                jsonObject.put("month2", data6.getWaterValue());
-                double day2 = Double.parseDouble(energyData.getWaterValue());
-                double day3 = Double.parseDouble(data1.getWaterValue());
-                double week1 = Double.parseDouble(data4.getWaterValue());
-                double week2 = Double.parseDouble(data3.getWaterValue());
-                double month1 = Double.parseDouble(data5.getWaterValue());
-                double month2 = Double.parseDouble(data6.getWaterValue());
+                jsonObject.put("day1", dataScreenVo.getWaterValueToday());
+                jsonObject.put("day2", dataScreenVo.getWaterValueTodayUsage());
+                jsonObject.put("day3", dataScreenVo.getWaterValueYesterdayUsage());
+                jsonObject.put("week1", dataScreenVo.getWaterValueThisWeekUsage());
+                jsonObject.put("week2", dataScreenVo.getWaterValueLastWeekUsage());
+                jsonObject.put("month1", dataScreenVo.getElectricityValueThisMonthUsage());
+                jsonObject.put("month2", dataScreenVo.getElectricityValueLastMonthUsage());
+                double day2 = Double.parseDouble(dataScreenVo.getWaterValueTodayUsage());
+                double day3 = Double.parseDouble(dataScreenVo.getWaterValueYesterdayUsage());
+                double week1 = Double.parseDouble(dataScreenVo.getWaterValueThisWeekUsage());
+                double week2 = Double.parseDouble(dataScreenVo.getWaterValueLastWeekUsage());
+                double month1 = Double.parseDouble(dataScreenVo.getElectricityValueThisMonthUsage());
+                double month2 = Double.parseDouble(dataScreenVo.getElectricityValueLastMonthUsage());
                 DecimalFormat def = new DecimalFormat("0.00");
                 DecimalFormat def = new DecimalFormat("0.00");
                 String day4 = def.format(day2 - day3);
                 String day4 = def.format(day2 - day3);
                 String week3 = def.format(week1 - week2);
                 String week3 = def.format(week1 - week2);
@@ -479,19 +447,19 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
                 JSONObject jsonObject = new JSONObject();
                 JSONObject jsonObject = new JSONObject();
                 jsonObject.put("deviceCode", envDevice.getDeviceCode());
                 jsonObject.put("deviceCode", envDevice.getDeviceCode());
                 jsonObject.put("buildName", envDevice.getUnitName());
                 jsonObject.put("buildName", envDevice.getUnitName());
-                jsonObject.put("day1", data.getElectricityValue());
-                jsonObject.put("day2", energyData.getElectricityValue());
-                jsonObject.put("day3", data1.getElectricityValue());
-                jsonObject.put("week1", data4.getElectricityValue());
-                jsonObject.put("week2", data3.getElectricityValue());
-                jsonObject.put("month1", data5.getElectricityValue());
-                jsonObject.put("month2", data6.getElectricityValue());
-                double day2 = Double.parseDouble(energyData.getElectricityValue());
-                double day3 = Double.parseDouble(data1.getElectricityValue());
-                double week1 = Double.parseDouble(data4.getElectricityValue());
-                double week2 = Double.parseDouble(data3.getElectricityValue());
-                double month1 = Double.parseDouble(data5.getElectricityValue());
-                double month2 = Double.parseDouble(data6.getElectricityValue());
+                jsonObject.put("day1", dataScreenVo.getElectricityValueToday());
+                jsonObject.put("day2", dataScreenVo.getElectricityValueTodayUsage());
+                jsonObject.put("day3", dataScreenVo.getElectricityValueYesterdayUsage());
+                jsonObject.put("week1", dataScreenVo.getElectricityValueThisWeekUsage());
+                jsonObject.put("week2", dataScreenVo.getElectricityValueLastWeekUsage());
+                jsonObject.put("month1", dataScreenVo.getElectricityValueThisMonthUsage());
+                jsonObject.put("month2", dataScreenVo.getElectricityValueLastMonthUsage());
+                double day2 = Double.parseDouble(dataScreenVo.getElectricityValueTodayUsage());
+                double day3 = Double.parseDouble(dataScreenVo.getElectricityValueYesterdayUsage());
+                double week1 = Double.parseDouble(dataScreenVo.getElectricityValueThisWeekUsage());
+                double week2 = Double.parseDouble(dataScreenVo.getElectricityValueLastWeekUsage());
+                double month1 = Double.parseDouble(dataScreenVo.getElectricityValueThisMonthUsage());
+                double month2 = Double.parseDouble(dataScreenVo.getElectricityValueLastMonthUsage());
                 DecimalFormat def = new DecimalFormat("0.00");
                 DecimalFormat def = new DecimalFormat("0.00");
                 String day4 = def.format(day2 - day3);
                 String day4 = def.format(day2 - day3);
                 String week3 = def.format(week1 - week2);
                 String week3 = def.format(week1 - week2);
@@ -522,71 +490,40 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
         Date timesmorning = DataUill.getTimesmorning();
         Date timesmorning = DataUill.getTimesmorning();
         DateTime dateTime = DateUtil.beginOfWeek(new Date());//本周
         DateTime dateTime = DateUtil.beginOfWeek(new Date());//本周
         Date timesMonthmorning = DataUill.getTimesMonthmorning();//本月
         Date timesMonthmorning = DataUill.getTimesMonthmorning();//本月
+        Date dayStart = (Date) getYesterdayRange().get("startTime");
+        Date dayEnd = (Date) getYesterdayRange().get("stopTime");
+        Date weekStart = (Date) getLastWeekRange().get("startTime");
+        Date weekEnd = (Date) getLastWeekRange().get("stopTime");
+        Date monthStart = (Date) getLastMonthRange().get("startTime");
+        Date monthEnd = (Date) getLastMonthRange().get("stopTime");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
 
 
         JSONArray jsonArray = new JSONArray();
         JSONArray jsonArray = new JSONArray();
         for (EnergyEnvDevice envDevice : envDevices) {
         for (EnergyEnvDevice envDevice : envDevices) {
-            QueryWrapper<EnergyData> queryWrapper1 = new QueryWrapper<>();
-            queryWrapper1.eq("unit_id", envDevice.getUnitId());
-            queryWrapper1.eq("farm_id", farmId);
-            queryWrapper1.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
-            EnergyData data = dataMapper.selectOne(queryWrapper1);//当日读数
-
-            queryWrapper1.ge("create_date", timesmorning);
-            EnergyData energyData = dataMapper.selectOne(queryWrapper1);//当日用量
-
-            QueryWrapper<EnergyData> queryWrapper2 = new QueryWrapper<>();
-            queryWrapper2.eq("unit_id", envDevice.getUnitId());
-            queryWrapper2.eq("farm_id", farmId);
-            queryWrapper2.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
-            queryWrapper2.between("create_date", getYesterdayRange().get("startTime"), getYesterdayRange().get("stopTime"));
-            EnergyData data1 = dataMapper.selectOne(queryWrapper1);//昨日用量
-
-            QueryWrapper<EnergyData> queryWrapper4 = new QueryWrapper<>();
-            queryWrapper4.eq("unit_id", envDevice.getUnitId());
-            queryWrapper4.eq("farm_id", farmId);
-            queryWrapper4.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
-            queryWrapper4.ge("create_date", dateTime);
-            EnergyData data4 = dataMapper.selectOne(queryWrapper4);//本周用量
-
-            QueryWrapper<EnergyData> queryWrapper3 = new QueryWrapper<>();
-            queryWrapper3.eq("unit_id", envDevice.getUnitId());
-            queryWrapper3.eq("farm_id", farmId);
-            queryWrapper3.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
-            queryWrapper3.between("create_date", getLastWeekRange().get("startTime"), getLastWeekRange().get("stopTime"));
-            EnergyData data3 = dataMapper.selectOne(queryWrapper3);//上周用量
-
-            QueryWrapper<EnergyData> queryWrapper5 = new QueryWrapper<>();
-            queryWrapper5.eq("unit_id", envDevice.getUnitId());
-            queryWrapper5.eq("farm_id", farmId);
-            queryWrapper5.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
-            queryWrapper5.ge("create_date", timesMonthmorning);
-            EnergyData data5 = dataMapper.selectOne(queryWrapper5);//本月用量
-
-            QueryWrapper<EnergyData> queryWrapper6 = new QueryWrapper<>();
-            queryWrapper6.eq("unit_id", envDevice.getUnitId());
-            queryWrapper6.eq("farm_id", farmId);
-            queryWrapper6.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
-            queryWrapper6.between("create_date", getLastMonthRange().get("startTime"), getLastMonthRange().get("stopTime"));
-            EnergyData data6 = dataMapper.selectOne(queryWrapper6);//上月用量
-
+            EnergyDataScreenVo dataScreenVo = dataMapper.listDataAll(sdf.format(timesmorning), sdf.format(dateTime), sdf.format(timesMonthmorning),
+                    sdf.format(dayStart), sdf.format(dayEnd)
+                    , sdf.format(weekStart), sdf.format(weekEnd)
+                    , sdf.format(monthStart), sdf.format(monthEnd)
+                    , envDevice.getUnitId(), farmId);
 
 
             if ("1".equals(type) && "1".equals(envDevice.getRemark())) {
             if ("1".equals(type) && "1".equals(envDevice.getRemark())) {
                 JSONObject jsonObject = new JSONObject();
                 JSONObject jsonObject = new JSONObject();
                 jsonObject.put("deviceCode", envDevice.getDeviceCode());
                 jsonObject.put("deviceCode", envDevice.getDeviceCode());
                 jsonObject.put("buildName", envDevice.getUnitName());
                 jsonObject.put("buildName", envDevice.getUnitName());
-                jsonObject.put("todayRead", data.getWaterValue());
-                jsonObject.put("todayConsume", energyData.getWaterValue());
-                jsonObject.put("yesterdayConsume", data1.getWaterValue());
-                jsonObject.put("weekConsume", data4.getWaterValue());
-                jsonObject.put("lastWeekConsume", data3.getWaterValue());
-                jsonObject.put("monthConsume", data5.getWaterValue());
-                jsonObject.put("lastMonthConsume", data6.getWaterValue());
-                double day2 = Double.parseDouble(energyData.getWaterValue());
-                double day3 = Double.parseDouble(data1.getWaterValue());
-                double week1 = Double.parseDouble(data4.getWaterValue());
-                double week2 = Double.parseDouble(data3.getWaterValue());
-                double month1 = Double.parseDouble(data5.getWaterValue());
-                double month2 = Double.parseDouble(data6.getWaterValue());
+                jsonObject.put("todayRead", dataScreenVo.getWaterValueToday());
+                jsonObject.put("todayConsume", dataScreenVo.getWaterValueTodayUsage());
+                jsonObject.put("yesterdayConsume", dataScreenVo.getWaterValueYesterdayUsage());
+                jsonObject.put("weekConsume", dataScreenVo.getWaterValueThisWeekUsage());
+                jsonObject.put("lastWeekConsume", dataScreenVo.getWaterValueLastWeekUsage());
+                jsonObject.put("monthConsume", dataScreenVo.getElectricityValueThisMonthUsage());
+                jsonObject.put("lastMonthConsume", dataScreenVo.getElectricityValueLastMonthUsage());
+                double day2 = Double.parseDouble(dataScreenVo.getWaterValueTodayUsage());
+                double day3 = Double.parseDouble(dataScreenVo.getWaterValueYesterdayUsage());
+                double week1 = Double.parseDouble(dataScreenVo.getWaterValueThisWeekUsage());
+                double week2 = Double.parseDouble(dataScreenVo.getWaterValueLastWeekUsage());
+                double month1 = Double.parseDouble(dataScreenVo.getElectricityValueThisMonthUsage());
+                double month2 = Double.parseDouble(dataScreenVo.getElectricityValueLastMonthUsage());
                 DecimalFormat def = new DecimalFormat("0.00");
                 DecimalFormat def = new DecimalFormat("0.00");
                 String day4 = def.format(day2 - day3);
                 String day4 = def.format(day2 - day3);
                 String week3 = def.format(week1 - week2);
                 String week3 = def.format(week1 - week2);
@@ -600,19 +537,19 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
                 JSONObject jsonObject = new JSONObject();
                 JSONObject jsonObject = new JSONObject();
                 jsonObject.put("deviceCode", envDevice.getDeviceCode());
                 jsonObject.put("deviceCode", envDevice.getDeviceCode());
                 jsonObject.put("buildName", envDevice.getUnitName());
                 jsonObject.put("buildName", envDevice.getUnitName());
-                jsonObject.put("todayRead", data.getElectricityValue());
-                jsonObject.put("todayConsume", energyData.getElectricityValue());
-                jsonObject.put("yesterdayConsume", data1.getElectricityValue());
-                jsonObject.put("weekConsume", data4.getElectricityValue());
-                jsonObject.put("lastWeekConsume", data3.getElectricityValue());
-                jsonObject.put("monthConsume", data5.getElectricityValue());
-                jsonObject.put("lastMonthConsume", data6.getElectricityValue());
-                double day2 = Double.parseDouble(energyData.getElectricityValue());
-                double day3 = Double.parseDouble(data1.getElectricityValue());
-                double week1 = Double.parseDouble(data4.getElectricityValue());
-                double week2 = Double.parseDouble(data3.getElectricityValue());
-                double month1 = Double.parseDouble(data5.getElectricityValue());
-                double month2 = Double.parseDouble(data6.getElectricityValue());
+                jsonObject.put("todayRead", dataScreenVo.getElectricityValueToday());
+                jsonObject.put("todayConsume", dataScreenVo.getElectricityValueTodayUsage());
+                jsonObject.put("yesterdayConsume", dataScreenVo.getElectricityValueYesterdayUsage());
+                jsonObject.put("weekConsume", dataScreenVo.getElectricityValueThisWeekUsage());
+                jsonObject.put("lastWeekConsume", dataScreenVo.getElectricityValueLastWeekUsage());
+                jsonObject.put("monthConsume", dataScreenVo.getElectricityValueThisMonthUsage());
+                jsonObject.put("lastMonthConsume", dataScreenVo.getElectricityValueLastMonthUsage());
+                double day2 = Double.parseDouble(dataScreenVo.getElectricityValueTodayUsage());
+                double day3 = Double.parseDouble(dataScreenVo.getElectricityValueYesterdayUsage());
+                double week1 = Double.parseDouble(dataScreenVo.getElectricityValueThisWeekUsage());
+                double week2 = Double.parseDouble(dataScreenVo.getElectricityValueLastWeekUsage());
+                double month1 = Double.parseDouble(dataScreenVo.getElectricityValueThisMonthUsage());
+                double month2 = Double.parseDouble(dataScreenVo.getElectricityValueLastMonthUsage());
                 DecimalFormat def = new DecimalFormat("0.00");
                 DecimalFormat def = new DecimalFormat("0.00");
                 String day4 = def.format(day2 - day3);
                 String day4 = def.format(day2 - day3);
                 String week3 = def.format(week1 - week2);
                 String week3 = def.format(week1 - week2);

+ 30 - 4
huimv-admin/src/main/resources/com/huimv/admin/mapper/EnergyDataMapper.xml

@@ -140,8 +140,34 @@ Convert(IFNULL(SUM(feed_value),0),DECIMAL(10,2)) 'feedValue',Convert(IFNULL(SUM(
     </select>
     </select>
 
 
     <select id="listDataAll" resultType="com.huimv.admin.entity.vo.EnergyDataScreenVo">
     <select id="listDataAll" resultType="com.huimv.admin.entity.vo.EnergyDataScreenVo">
-        select a.water_value waterValue,a.gas_value gasValue,a.electricity_value electricityValue,a.feed_value feedValue,a.create_date createDate,b.build_name buildName
-	from energy_data a INNER JOIN base_pigpen b ON  a.unit_id=b.id
-	 ${ew.customSqlSegment}
-    </select>
+SELECT
+    -- 当日读数
+    CONVERT(IFNULL(SUM(CASE WHEN 1 = 1 THEN water_value ELSE 0 END), '0'), DECIMAL(10, 2)) AS waterValueToday,
+    CONVERT(IFNULL(SUM(CASE WHEN 1 = 1 THEN electricity_value ELSE 0 END), '0'), DECIMAL(10, 2)) AS electricityValueToday,
+
+    -- 当日用量
+    CONVERT(IFNULL(SUM(CASE WHEN create_date &gt;= #{today} THEN water_value ELSE 0 END), '0'), DECIMAL(10, 2)) AS waterValueTodayUsage,
+    CONVERT(IFNULL(SUM(CASE WHEN create_date &gt;= #{today} THEN electricity_value ELSE 0 END), '0'), DECIMAL(10, 2)) AS electricityValueTodayUsage,
+
+    -- 昨日用量
+    CONVERT(IFNULL(SUM(CASE WHEN create_date BETWEEN #{yesterdayStart} AND #{yesterdayEnd} THEN water_value ELSE 0 END), '0'), DECIMAL(10, 2)) AS waterValueYesterdayUsage,
+    CONVERT(IFNULL(SUM(CASE WHEN create_date BETWEEN #{yesterdayStart} AND #{yesterdayEnd} THEN electricity_value ELSE 0 END), '0'), DECIMAL(10, 2)) AS electricityValueYesterdayUsage,
+
+    -- 本周用量
+    CONVERT(IFNULL(SUM(CASE WHEN create_date &gt;= #{week} THEN water_value ELSE 0 END), '0'), DECIMAL(10, 2)) AS waterValueThisWeekUsage,
+    CONVERT(IFNULL(SUM(CASE WHEN create_date &gt;= #{week} THEN electricity_value ELSE 0 END), '0'), DECIMAL(10, 2)) AS electricityValueThisWeekUsage,
+
+    -- 上周用量
+    CONVERT(IFNULL(SUM(CASE WHEN create_date BETWEEN #{weekStart} AND #{weekEnd} THEN water_value ELSE 0 END), '0'), DECIMAL(10, 2)) AS waterValueLastWeekUsage,
+    CONVERT(IFNULL(SUM(CASE WHEN create_date BETWEEN #{weekStart} AND #{weekEnd} THEN electricity_value ELSE 0 END), '0'), DECIMAL(10, 2)) AS electricityValueLastWeekUsage,
+
+    -- 本月用量
+    CONVERT(IFNULL(SUM(CASE WHEN create_date &gt;= #{month} THEN water_value ELSE 0 END), '0'), DECIMAL(10, 2)) AS waterValueThisMonthUsage,
+    CONVERT(IFNULL(SUM(CASE WHEN create_date &gt;= #{month} THEN electricity_value ELSE 0 END), '0'), DECIMAL(10, 2)) AS electricityValueThisMonthUsage,
+
+    -- 上月用量
+    CONVERT(IFNULL(SUM(CASE WHEN create_date BETWEEN #{monthStart} AND #{monthEnd} THEN water_value ELSE 0 END), '0'), DECIMAL(10, 2)) AS waterValueLastMonthUsage,
+    CONVERT(IFNULL(SUM(CASE WHEN create_date BETWEEN #{monthStart} AND #{monthEnd} THEN electricity_value ELSE 0 END), '0'), DECIMAL(10, 2)) AS electricityValueLastMonthUsage
+FROM `energy_data` WHERE unit_id = ${unitId} AND farm_id =${farmId}
+ </select>
 </mapper>
 </mapper>