Bläddra i källkod

能耗数据接口

wwh 1 år sedan
förälder
incheckning
2355548dea

+ 69 - 26
huimv-admin/pom.xml

@@ -145,11 +145,12 @@
             <groupId>com.hkvs</groupId>
             <artifactId>HttpClientSSLUtils</artifactId>
             <version>1.0</version>
-        </dependency>  <dependency>
-        <groupId>com.hkvs</groupId>
-        <artifactId>httpcore</artifactId>
-        <version>4.4.3</version>
-    </dependency>
+        </dependency>
+        <dependency>
+            <groupId>com.hkvs</groupId>
+            <artifactId>httpcore</artifactId>
+            <version>4.4.3</version>
+        </dependency>
 
         <dependency>
             <groupId>org.jxls</groupId>
@@ -163,26 +164,68 @@
         </dependency>
 
 
-</dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-<!--                <configuration>-->
-<!--                    <includeSystemScope>true</includeSystemScope>-->
-<!--                    <skip>true</skip>-->
-<!--                    <mainClass>HuimvAdminApplication</mainClass>-->
-<!--                </configuration>-->
-            </plugin>
-            <!--在这里修改版本-->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-resources-plugin</artifactId>
-                <version>2.4.3</version>
-            </plugin>
-            <!---->
-        </plugins>
+    </dependencies>
+        <build>
+            <plugins>
+                <plugin>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-maven-plugin</artifactId>
+                    <!--                <configuration>-->
+                    <!--                    <includeSystemScope>true</includeSystemScope>-->
+                    <!--                    <skip>true</skip>-->
+                    <!--                    <mainClass>HuimvAdminApplication</mainClass>-->
+                    <!--                </configuration>-->
+                </plugin>
+                <!--在这里修改版本-->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-resources-plugin</artifactId>
+                    <version>2.4.3</version>
+                </plugin>
+                <!---->
+
+
+                <!--  代码混淆proguard maven插件  -->
+<!--                <plugin>-->
+<!--                    <groupId>com.github.wvengen</groupId>-->
+<!--                    <artifactId>proguard-maven-plugin</artifactId>-->
+<!--                    <version>2.6.0</version>-->
+<!--                    <executions>-->
+<!--                        &lt;!&ndash;   package时执行proguard   &ndash;&gt;-->
+<!--                        <execution>-->
+<!--                            <phase>package</phase>-->
+<!--                            <goals>-->
+<!--                                <goal>proguard</goal>-->
+<!--                            </goals>-->
+<!--                        </execution>-->
+<!--                    </executions>-->
+<!--                    <configuration>-->
+<!--                        <putLibraryJarsInTempDir>true</putLibraryJarsInTempDir>-->
+<!--                        &lt;!&ndash;  输入的jar包  &ndash;&gt;-->
+<!--                        <injar>${project.build.finalName}.jar</injar>-->
+<!--                        &lt;!&ndash;  输出的jar包  &ndash;&gt;-->
+<!--                        <outjar>${project.build.finalName}.jar</outjar>-->
+<!--                        &lt;!&ndash;  是否进行混淆,默认为true  &ndash;&gt;-->
+<!--                        <obfuscate>true</obfuscate>-->
+<!--                        &lt;!&ndash;  配置文件,通常为proguard.cfg,主要对options选项进行配置,所有的options选项都可以进行配置  &ndash;&gt;-->
+<!--                        <proguardInclude>${project.basedir}/proguard.cfg</proguardInclude>-->
+<!--                        &lt;!&ndash;  额外的jar,项目编译所需的jar  &ndash;&gt;-->
+<!--                        <libs>-->
+<!--                            <lib>${java.home}/lib/rt.jar</lib>-->
+<!--                            &lt;!&ndash;<lib>${java.home}/lib/jce.jar</lib>&ndash;&gt;-->
+<!--                            <lib>${java.home}/lib/jsse.jar</lib>-->
+<!--                        </libs>-->
+<!--                        &lt;!&ndash;  对输入jar进行过滤,如对META-INFO文件不处理  &ndash;&gt;-->
+<!--                        <inLibsFilter>!META-INF/**,!META-INF/versions/**</inLibsFilter>-->
+<!--                        &lt;!&ndash;  输出路径配置,必须包含injar标签中填写的jar  &ndash;&gt;-->
+<!--                        <outputDirectory>${project.build.directory}</outputDirectory>-->
+<!--                        &lt;!&ndash;  上面使用了conf配置文件,options无需配置  &ndash;&gt;-->
+<!--                        &lt;!&ndash;<options></options>&ndash;&gt;-->
+<!--                    </configuration>-->
+<!--                </plugin>-->
+
+            </plugins>
+
+        </build>
 
-    </build>
 </project>

+ 59 - 0
huimv-admin/src/main/java/com/huimv/admin/common/utils/DataUill.java

@@ -1,5 +1,7 @@
 package com.huimv.admin.common.utils;
   
+import com.alibaba.fastjson.JSONObject;
+
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
@@ -152,5 +154,62 @@ public class DataUill {
         date = calendar.getTime();
         return date;
     }
+    /**
+     * 获取上周开始时间和结束时间
+     */
+    public static JSONObject getLastWeekRange() {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+        calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+        calendar.add(Calendar.DAY_OF_WEEK, -7);
+        Date startTime = calendar.getTime();
+        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);
+        calendar.add(Calendar.DAY_OF_WEEK, 6);
+        Date stopTime = calendar.getTime();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("startTime", startTime);
+        jsonObject.put("stopTime", stopTime);
+        return jsonObject;
+    }
+
+    /**
+     * 获取上月开始时间和结束时间
+     */
+    public static JSONObject getLastMonthRange() {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+        calendar.add(Calendar.MONTH, -1);
+        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
+        Date startTime = calendar.getTime();
+        calendar.add(Calendar.DAY_OF_WEEK, 7);
+        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+        //calendar.set(Calendar.HOUR_OF_DAY, 24);
+        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);
+        Date stopTime = calendar.getTime();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("startTime", startTime);
+        jsonObject.put("stopTime", stopTime);
+        return jsonObject;
+    }
 
+    /**
+     * 获取昨天开始时间和结束时间
+     */
+    public static JSONObject getYesterdayRange() {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.MILLISECOND, 0);
+        calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.HOUR_OF_DAY, -24);
+        Date startTime = calendar.getTime();
+        calendar.set(Calendar.MILLISECOND, 0);
+        calendar.set(Calendar.SECOND, 59);
+        calendar.set(Calendar.MINUTE, 59);
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
+        Date stopTime = calendar.getTime();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("startTime", startTime);
+        jsonObject.put("stopTime", stopTime);
+        return jsonObject;
+    }
 }

+ 17 - 5
huimv-admin/src/main/java/com/huimv/admin/controller/EnergyDataController.java

@@ -2,13 +2,19 @@ package com.huimv.admin.controller;
 
 
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.http.HttpRequest;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.admin.common.token.TokenSign;
 import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.entity.BaseFarm;
 import com.huimv.admin.entity.EnergyData;
 import com.huimv.admin.entity.EnergyEnvDevice;
 import com.huimv.admin.entity.vo.WaterAndElectricity;
+import com.huimv.admin.service.IBaseFarmService;
 import com.huimv.admin.service.IEnergyDataService;
 import com.huimv.admin.service.IEnergyEnvDeviceService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -19,10 +25,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * <p>
@@ -41,6 +46,8 @@ public class EnergyDataController {
     private IEnergyDataService iEnergyDataService;
     @Autowired
     private IEnergyEnvDeviceService deviceService;
+    @Autowired
+    private IBaseFarmService farmService;
 
     @RequestMapping("/listCount")
     public Result listCount(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
@@ -75,9 +82,14 @@ public class EnergyDataController {
 
     //为了展示给别人好看一点
     @RequestMapping("/listDataWaterAndElc")
-    public Result listDataAll2(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+    public Result listDataAll2(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) throws ParseException {
         return iEnergyDataService.listDataAll2(httpServletRequest, paramsMap);
     }
+    //给别人的接口,展示水电的实时数据
+    @RequestMapping("/listDataTail")
+    public Result listDataTail(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) throws ParseException {
+        return iEnergyDataService.listDataTail(httpServletRequest, paramsMap);
+    }
 
     @RequestMapping("/getData")
     public void getData(@RequestBody Map<String, List<WaterAndElectricity>> paramsMap) {

+ 4 - 1
huimv-admin/src/main/java/com/huimv/admin/service/IEnergyDataService.java

@@ -5,6 +5,7 @@ import com.huimv.admin.entity.EnergyData;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
 import java.util.Map;
 
 /**
@@ -31,6 +32,8 @@ public interface IEnergyDataService extends IService<EnergyData> {
     Result listDataAll(HttpServletRequest httpServletRequest,Map<String,String> paramsMap);
 
     //仅仅是为了暴露出去展示的字段好看一点而写
-    Result listDataAll2(HttpServletRequest httpServletRequest,Map<String,String> paramsMap);
+    Result listDataAll2(HttpServletRequest httpServletRequest,Map<String,String> paramsMap) throws ParseException;
+
+    Result listDataTail(HttpServletRequest httpServletRequest,Map<String,String> paramsMap) throws ParseException;
 
 }

+ 137 - 208
huimv-admin/src/main/java/com/huimv/admin/service/impl/EnergyDataServiceImpl.java

@@ -4,6 +4,8 @@ import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.lang.Pair;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.http.HttpRequest;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONException;
 import com.alibaba.fastjson.JSONObject;
@@ -13,15 +15,9 @@ import com.huimv.admin.common.token.TokenSign;
 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.BasePigpen;
-import com.huimv.admin.entity.EnergyData;
-import com.huimv.admin.entity.EnergyEnvDevice;
-import com.huimv.admin.entity.EnergyWarningInfo;
+import com.huimv.admin.entity.*;
 import com.huimv.admin.entity.vo.*;
-import com.huimv.admin.mapper.BasePigpenMapper;
-import com.huimv.admin.mapper.EnergyDataMapper;
-import com.huimv.admin.mapper.EnergyEnvDeviceMapper;
-import com.huimv.admin.mapper.EnergyWarningInfoMapper;
+import com.huimv.admin.mapper.*;
 import com.huimv.admin.service.IEnergyDataService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,6 +25,7 @@ import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletRequest;
 import java.text.DecimalFormat;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -51,6 +48,10 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
     private EnergyWarningInfoMapper warningInfoMapper;
     @Autowired
     private EnergyEnvDeviceMapper envDeviceMapper;
+    @Autowired
+    private EnergyScreenMapper screenMapper;
+    @Autowired
+    private BaseFarmMapper farmMapper;
 
     @Override
     public Result listCount(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
@@ -389,240 +390,168 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
     @Override
     public Result listDataAll(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
 
-        String farmId = TokenSign.getFarmIds(httpServletRequest);
-        if (farmId.length() > 2) {
-            farmId = paramsMap.get("farmId");
-        }
+        String farmId = paramsMap.get("farmId");
         String type = paramsMap.get("type");// 1水 2电
-        QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("farm_id", farmId);
-        List<EnergyEnvDevice> envDevices = envDeviceMapper.selectList(queryWrapper);
-
-        Date timesmorning = DataUill.getTimesmorning();
-        DateTime dateTime = DateUtil.beginOfWeek(new Date());//本周
-        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");
+        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
 
+        String time = paramsMap.get("time");
+        if ("".equals(time) || null == time) {
+            Date timesmorning = DataUill.getTimesmorning();
+            time = sdf1.format(timesmorning);
+        }
+        String start = time + " 00:00:00";
+        String end = time + " 23:59:59";
+        QueryWrapper<EnergyScreen> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).between("create_date", start, end).eq("type", type);
+        List<EnergyScreen> energyScreens = screenMapper.selectList(queryWrapper);
 
         JSONArray jsonArray = new JSONArray();
-        for (EnergyEnvDevice envDevice : envDevices) {
-            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())) {
-                JSONObject jsonObject = new JSONObject();
-                jsonObject.put("deviceCode", envDevice.getDeviceCode());
-                jsonObject.put("buildName", envDevice.getUnitName());
-                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");
-                String day4 = def.format(day2 - day3);
-                String week3 = def.format(week1 - week2);
-                String month3 = def.format(month1 - month2);
-                jsonObject.put("day4", day4);
-                jsonObject.put("week3", week3);
-                jsonObject.put("month3", month3);
-                jsonArray.add(jsonObject);
-            }
-            if ("2".equals(type) && "0".equals(envDevice.getRemark())) {
+        if (energyScreens.size() != 0) {
+            for (EnergyScreen energyScreen : energyScreens) {
                 JSONObject jsonObject = new JSONObject();
-                jsonObject.put("deviceCode", envDevice.getDeviceCode());
-                jsonObject.put("buildName", envDevice.getUnitName());
-                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");
-                String day4 = def.format(day2 - day3);
-                String week3 = def.format(week1 - week2);
-                String month3 = def.format(month1 - month2);
-                jsonObject.put("day4", day4);
-                jsonObject.put("week3", week3);
-                jsonObject.put("month3", month3);
+                jsonObject.put("deviceCode", energyScreen.getDeviceCode());
+                jsonObject.put("buildName", energyScreen.getBuildName());
+                jsonObject.put("day1", energyScreen.getTodayRead());
+                jsonObject.put("day2", energyScreen.getTodayConsume());
+                jsonObject.put("day3", energyScreen.getYesterdayConsume());
+                jsonObject.put("week1", energyScreen.getWeekConsume());
+                jsonObject.put("week2", energyScreen.getLastWeekConsume());
+                jsonObject.put("month1", energyScreen.getMonthConsume());
+                jsonObject.put("month2", energyScreen.getLastMonthConsume());
+                jsonObject.put("day4", energyScreen.getDayDifference());
+                jsonObject.put("week3", energyScreen.getWeekDifference());
+                jsonObject.put("month3", energyScreen.getMonthDifference());
                 jsonArray.add(jsonObject);
             }
-
         }
+
+
         return new Result(ResultCode.SUCCESS, jsonArray);
     }
 
 
     @Override
-    public Result listDataAll2(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+    public Result listDataAll2(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
 
         String farmId = TokenSign.getFarmIds(httpServletRequest);
         if (farmId.length() > 2) {
             farmId = paramsMap.get("farmId");
         }
+
         String type = paramsMap.get("type");// 1水 2电
-        QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("farm_id", farmId);
-        List<EnergyEnvDevice> envDevices = envDeviceMapper.selectList(queryWrapper);
 
-        Date timesmorning = DataUill.getTimesmorning();
-        DateTime dateTime = DateUtil.beginOfWeek(new Date());//本周
-        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");
+        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
 
+        String time = paramsMap.get("time");
+        if ("".equals(time) || null == time) {
+            Date timesmorning = DataUill.getTimesmorning();
+            time = sdf1.format(timesmorning);
+        }
+        String start = time + " 00:00:00";
+        String end = time + " 23:59:59";
+        QueryWrapper<EnergyScreen> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).between("create_date", start, end).eq("type", type);
+        List<EnergyScreen> energyScreens = screenMapper.selectList(queryWrapper);
 
         JSONArray jsonArray = new JSONArray();
-        for (EnergyEnvDevice envDevice : envDevices) {
-            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 (energyScreens.size() != 0) {
+            for (EnergyScreen energyScreen : energyScreens) {
                 JSONObject jsonObject = new JSONObject();
-                jsonObject.put("deviceCode", envDevice.getDeviceCode());
-                jsonObject.put("buildName", envDevice.getUnitName());
-                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");
-                String day4 = def.format(day2 - day3);
-                String week3 = def.format(week1 - week2);
-                String month3 = def.format(month1 - month2);
-                jsonObject.put("dayDifference", day4);
-                jsonObject.put("weekDifference", week3);
-                jsonObject.put("monthDifference", month3);
+                jsonObject.put("deviceCode", energyScreen.getDeviceCode());
+                jsonObject.put("buildName", energyScreen.getBuildName());
+                jsonObject.put("todayRead", energyScreen.getTodayRead());
+                jsonObject.put("todayConsume", energyScreen.getTodayConsume());
+                jsonObject.put("yesterdayConsume", energyScreen.getYesterdayConsume());
+                jsonObject.put("weekConsume", energyScreen.getWeekConsume());
+                jsonObject.put("lastWeekConsume", energyScreen.getLastWeekConsume());
+                jsonObject.put("monthConsume", energyScreen.getMonthConsume());
+                jsonObject.put("lastMonthConsume", energyScreen.getLastMonthConsume());
+                jsonObject.put("dayDifference", energyScreen.getDayDifference());
+                jsonObject.put("weekDifference", energyScreen.getWeekDifference());
+                jsonObject.put("monthDifference", energyScreen.getMonthDifference());
+                jsonObject.put("farmName", energyScreen.getFarmName());
                 jsonArray.add(jsonObject);
             }
-            if ("2".equals(type) && "0".equals(envDevice.getRemark())) {
-                JSONObject jsonObject = new JSONObject();
-                jsonObject.put("deviceCode", envDevice.getDeviceCode());
-                jsonObject.put("buildName", envDevice.getUnitName());
-                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");
-                String day4 = def.format(day2 - day3);
-                String week3 = def.format(week1 - week2);
-                String month3 = def.format(month1 - month2);
-                jsonObject.put("dayDifference", day4);
-                jsonObject.put("weekDifference", week3);
-                jsonObject.put("monthDifference", month3);
-                jsonArray.add(jsonObject);
-            }
-
         }
+
         return new Result(ResultCode.SUCCESS, jsonArray);
     }
 
-    /**
-     * 获取上周开始时间和结束时间
-     */
-    public static JSONObject getLastWeekRange() {
-        Calendar calendar = Calendar.getInstance();
-        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
-        calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
-        calendar.add(Calendar.DAY_OF_WEEK, -7);
-        Date startTime = calendar.getTime();
-        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);
-        calendar.add(Calendar.DAY_OF_WEEK, 6);
-        Date stopTime = calendar.getTime();
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("startTime", startTime);
-        jsonObject.put("stopTime", stopTime);
-        return jsonObject;
-    }
+    @Override
+    public Result listDataTail(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
+        String deviceCode = paramsMap.get("deviceCode");
+        String type = paramsMap.get("type");
 
-    /**
-     * 获取上月开始时间和结束时间
-     */
-    public static JSONObject getLastMonthRange() {
-        Calendar calendar = Calendar.getInstance();
-        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
-        calendar.add(Calendar.MONTH, -1);
-        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
-        Date startTime = calendar.getTime();
-        calendar.add(Calendar.DAY_OF_WEEK, 7);
-        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
-        //calendar.set(Calendar.HOUR_OF_DAY, 24);
-        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);
-        Date stopTime = calendar.getTime();
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("startTime", startTime);
-        jsonObject.put("stopTime", stopTime);
-        return jsonObject;
-    }
+        if ("".equals(type) || null == type) {
+            type = "1";
+        }
+        String startDate = paramsMap.get("startDate");
+        String endDate = paramsMap.get("endDate");
+        if ("".equals(startDate) || null == startDate) {
+            Date date1 = new Date();
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            startDate = sdf.format(date1);
+            endDate = sdf.format(date1);
+        }
+        HashMap<String, String> map = new HashMap<>();
+        JSONObject jsonObject1 = new JSONObject();
+        jsonObject1.put("type", type);
+        jsonObject1.put("startDate", startDate);
+        jsonObject1.put("endDate", endDate);
+        List<String> list = new ArrayList<>();
+        if ("".equals(deviceCode) || null == deviceCode) {
+            QueryWrapper<EnergyEnvDevice> queryWrapper1 = new QueryWrapper<>();
+            if ("1".equals(type)) {
+                queryWrapper1.eq("remark", 1);
+            } else {
+                queryWrapper1.eq("remark", 0);
+            }
+            List<EnergyEnvDevice> envDevices = envDeviceMapper.selectList(queryWrapper1);
+            envDevices.forEach(item->{
+                list.add(item.getDeviceCode());
+            });
+            jsonObject1.put("deviceCode", list);
+        } else {
+            list.add(deviceCode);
+            jsonObject1.put("deviceCode", list);
+        }
 
-    /**
-     * 获取昨天开始时间和结束时间
-     */
-    public static JSONObject getYesterdayRange() {
-        Calendar calendar = Calendar.getInstance();
-        calendar.set(Calendar.MILLISECOND, 0);
-        calendar.set(Calendar.SECOND, 0);
-        calendar.set(Calendar.MINUTE, 0);
-        calendar.set(Calendar.HOUR_OF_DAY, -24);
-        Date startTime = calendar.getTime();
-        calendar.set(Calendar.MILLISECOND, 0);
-        calendar.set(Calendar.SECOND, 59);
-        calendar.set(Calendar.MINUTE, 59);
-        calendar.set(Calendar.HOUR_OF_DAY, 23);
-        Date stopTime = calendar.getTime();
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("startTime", startTime);
-        jsonObject.put("stopTime", stopTime);
-        return jsonObject;
+        map.put("Content-Type", "application/json;charset=utf-8");
+        String post = HttpRequest.post("http://huimv.ifarmcloud.com/huimvAdmin/energy-electricity/sendData")//http://huimv.ifarmcloud.com/
+                .headerMap(map, false).body(jsonObject1.toJSONString()).timeout(30 * 1000).execute().body();
+        System.out.println(post);
+
+        JSONArray jsonArray = JSON.parseArray(post);
+        System.out.println(jsonArray);
+        JSONArray array = new JSONArray();
+        for (int i = 0; i < jsonArray.size(); i++) {
+            JSONObject jsonObject = new JSONObject();
+            if (ObjectUtil.isEmpty(jsonArray.getJSONObject(i).get("other2"))) {
+                jsonObject.put("farmName", "");
+            } else {
+                jsonObject.put("farmName", jsonArray.getJSONObject(i).get("other2"));
+            }
+
+            if (ObjectUtil.isEmpty(jsonArray.getJSONObject(i).get("other1"))) {
+                jsonObject.put("buildName", "");
+            } else {
+                jsonObject.put("buildName", jsonArray.getJSONObject(i).get("other1"));
+            }
+
+            jsonObject.put("deviceCode", jsonArray.getJSONObject(i).get("chipCode"));
+            jsonObject.put("createTime", jsonArray.getJSONObject(i).get("createDate"));
+
+            if ("1".equals(type)) {
+                jsonObject.put("value", jsonArray.getJSONObject(i).get("waterValue"));
+            } else {
+                jsonObject.put("value", jsonArray.getJSONObject(i).get("electricityValue"));
+            }
+            array.add(jsonObject);
+        }
+        return new Result(ResultCode.SUCCESS,array);
     }
 
+
     /*数组排序*/
     public static JSONArray jsonArraySort(JSONArray jsonArr, String sortKey, boolean is_desc) {
         //存放排序结果json数组