Browse Source

牧场添加

wwh 1 year ago
parent
commit
4fd046537c

+ 4 - 1
huimv-admin/src/main/java/com/huimv/admin/config/InterceptorConfig.java

@@ -34,6 +34,9 @@ public class InterceptorConfig implements WebMvcConfigurer {
                         ,"/huatongApi/energy-data/getData12"
                         ,"/huatongApi/energy-data/getData13"
                         ,"/huatongApi/energy-data/getData14"
-                        ,"/huatongApi/energy-data/getData15");
+                        ,"/huatongApi/energy-data/getData15"
+                        ,"/huatongApi/energy-data/getData16"
+                        ,"/huatongApi/energy-data/getData17"
+                        ,"/huatongApi/energy-data/getData18");
     }
 }

+ 63 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/EnergyDataController.java

@@ -415,6 +415,69 @@ public class EnergyDataController {
             iEnergyDataService.save(energyData);
         }
     }
+    @RequestMapping("/getData16")
+    public void getData16(@RequestBody Map<String, List<WaterAndElectricity>> paramsMap) {
+        List<WaterAndElectricity> result = (List) paramsMap.get("result");
+        System.out.println("接受到的数据格式:" + result);
+        for (WaterAndElectricity jsonObject : result) {
+            EnergyData energyData = new EnergyData();
+            energyData.setFeedValue("0.00");
+            energyData.setWaterValue(jsonObject.getWater());
+            energyData.setElectricityValue(jsonObject.getElectricity());
+            energyData.setGasValue("0.00");
+            energyData.setFarmId(39);
+            energyData.setCreateDate(new Date());
+            QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", 39).eq("device_code", jsonObject.getDeviceCode());
+            EnergyEnvDevice device = deviceService.getOne(queryWrapper);
+            if (ObjectUtil.isNotEmpty(device)) {
+                energyData.setUnitId(device.getUnitId());
+            }
+            iEnergyDataService.save(energyData);
+        }
+    }
+    @RequestMapping("/getData17")
+    public void getData17(@RequestBody Map<String, List<WaterAndElectricity>> paramsMap) {
+        List<WaterAndElectricity> result = (List) paramsMap.get("result");
+        System.out.println("接受到的数据格式:" + result);
+        for (WaterAndElectricity jsonObject : result) {
+            EnergyData energyData = new EnergyData();
+            energyData.setFeedValue("0.00");
+            energyData.setWaterValue(jsonObject.getWater());
+            energyData.setElectricityValue(jsonObject.getElectricity());
+            energyData.setGasValue("0.00");
+            energyData.setFarmId(42);
+            energyData.setCreateDate(new Date());
+            QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", 42).eq("device_code", jsonObject.getDeviceCode());
+            EnergyEnvDevice device = deviceService.getOne(queryWrapper);
+            if (ObjectUtil.isNotEmpty(device)) {
+                energyData.setUnitId(device.getUnitId());
+            }
+            iEnergyDataService.save(energyData);
+        }
+    }
+    @RequestMapping("/getData18")
+    public void getData18(@RequestBody Map<String, List<WaterAndElectricity>> paramsMap) {
+        List<WaterAndElectricity> result = (List) paramsMap.get("result");
+        System.out.println("接受到的数据格式:" + result);
+        for (WaterAndElectricity jsonObject : result) {
+            EnergyData energyData = new EnergyData();
+            energyData.setFeedValue("0.00");
+            energyData.setWaterValue(jsonObject.getWater());
+            energyData.setElectricityValue(jsonObject.getElectricity());
+            energyData.setGasValue("0.00");
+            energyData.setFarmId(24);
+            energyData.setCreateDate(new Date());
+            QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", 24).eq("device_code", jsonObject.getDeviceCode());
+            EnergyEnvDevice device = deviceService.getOne(queryWrapper);
+            if (ObjectUtil.isNotEmpty(device)) {
+                energyData.setUnitId(device.getUnitId());
+            }
+            iEnergyDataService.save(energyData);
+        }
+    }
     @PostMapping("/add")
     public Result add(@RequestBody EnergyData energyData) {
         iEnergyDataService.save(energyData);

+ 6 - 6
huimv-admin/src/main/java/com/huimv/admin/controller/EnergyEnvDeviceController.java

@@ -6,11 +6,8 @@ import com.huimv.admin.entity.EnergyEnvDevice;
 import com.huimv.admin.entity.EnvDevice;
 import com.huimv.admin.service.IEnergyEnvDeviceService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
@@ -71,5 +68,8 @@ public class EnergyEnvDeviceController {
     public Result listDevice(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
         return energyEnvDeviceService.listDevice(httpServletRequest,paramsMap);
     }
-
+    @PostMapping("/updateName")
+    public Result updateName(HttpServletRequest httpServletRequest, @RequestParam(name = "file") MultipartFile file) throws Exception {
+        return energyEnvDeviceService.updateName(httpServletRequest, file);
+    }
 }

+ 10 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/vo/EnergyUpdateVo.java

@@ -0,0 +1,10 @@
+package com.huimv.admin.entity.vo;
+
+import lombok.Data;
+
+@Data
+public class EnergyUpdateVo {
+    private String id;
+    private String name;
+    private String deviceCode;
+}

+ 3 - 0
huimv-admin/src/main/java/com/huimv/admin/service/IEnergyEnvDeviceService.java

@@ -4,6 +4,7 @@ import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.entity.EnergyEnvDevice;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.huimv.admin.entity.EnvDevice;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
@@ -31,4 +32,6 @@ public interface IEnergyEnvDeviceService extends IService<EnergyEnvDevice> {
     Result deviceCount(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
 
     Result listDevice(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
+    Result updateName(HttpServletRequest httpServletRequest, MultipartFile files) throws Exception;
 }

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

@@ -603,7 +603,7 @@ 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,23,36,37,38,27,40,41).ne("device_code","0102D472");
+            queryWrapper1.in("farm_id", 26, 29, 22, 28, 21, 33, 34, 35,23,36,37,38,27,40,41,39,42,24).ne("device_code","0102D472");
             if ("1".equals(type)) {
                 queryWrapper1.eq("remark", 1);
             } else {

+ 48 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/EnergyEnvDeviceServiceImpl.java

@@ -5,18 +5,26 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huimv.admin.common.utils.ExcelImportSheet;
 import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.common.utils.ResultCode;
 import com.huimv.admin.entity.EnergyEnvDevice;
 import com.huimv.admin.entity.EnvDevice;
+import com.huimv.admin.entity.vo.EnergyUpdateVo;
 import com.huimv.admin.mapper.EnergyEnvDeviceMapper;
 import com.huimv.admin.service.IEnergyEnvDeviceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
+import java.io.InputStream;
 import java.text.NumberFormat;
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -158,4 +166,44 @@ public class EnergyEnvDeviceServiceImpl extends ServiceImpl<EnergyEnvDeviceMappe
         queryWrapper.eq("farm_id", farmId).eq("remark",type);
         return new Result(ResultCode.SUCCESS,energyEnvDeviceMapper.selectList(queryWrapper));
     }
+    @Override
+    public Result updateName(HttpServletRequest httpServletRequest, MultipartFile files) throws Exception {
+        Map<String, String> map = new HashMap<>();
+        //表头与键值对的映射关系
+        map.put("序号", "id");
+        map.put("确认后区域名称", "name");
+        map.put("现场核对表号", "deviceCode");
+        try (
+                //这里面的对象会自动关闭
+                InputStream in = files.getInputStream();
+                Workbook workbook = ExcelImportSheet.getTypeFromExtends(in, files.getOriginalFilename())
+        ) {
+
+            //根据名称获取单张表对象 也可以使用getSheetAt(int index)获取单张表的对象 获取第一张表
+            Sheet sheet = workbook.getSheetAt(0);
+            List<EnergyUpdateVo> list = ExcelImportSheet.getListFromExcel(sheet, EnergyUpdateVo.class, map);
+            QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("remark", 0);
+            List<EnergyEnvDevice> envDevices = energyEnvDeviceMapper.selectList(queryWrapper);
+            for (EnergyUpdateVo energyUpdateVo : list) {
+                if (StringUtils.isNotBlank(energyUpdateVo.getDeviceCode())) {
+                    for (EnergyEnvDevice envDevice : envDevices) {
+                        if (envDevice.getDeviceCode().equals(energyUpdateVo.getDeviceCode())) {
+                            envDevice.setDeviceName(energyUpdateVo.getName());
+                            envDevice.setUnitName(energyUpdateVo.getName());
+                            energyEnvDeviceMapper.updateById(envDevice);
+                        }
+                    }
+                }
+            }
+
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            return new Result(10001, "数据格式异常!", false);
+        } finally {
+            //写着好看的
+        }
+        return new Result(10000, "保存成功!", true);
+    }
 }

+ 2 - 1
huimv-admin/src/main/java/com/huimv/admin/timer/EnergyTimer.java

@@ -41,7 +41,8 @@ public class EnergyTimer {
                 .ne("farm_id",29).ne("farm_id",21).ne("farm_id",28).ne("farm_id",27).
                         ne("farm_id",35).ne("farm_id",33).ne("farm_id",22).ne("farm_id",23)
                 .ne("farm_id",34) .ne("farm_id",36) .ne("farm_id",37).ne("farm_id",38)
-                .ne("farm_id",40).ne("farm_id",41));
+                .ne("farm_id",40).ne("farm_id",41).ne("farm_id",39).ne("farm_id",42)
+                .ne("farm_id",24));
 
         for (EnergyEnvDevice energyEnvDevice : energyEnvDevices) {
             QueryWrapper<BasePigpen> basePigpenQueryWrapper = new QueryWrapper<>();

+ 434 - 0
huimv-admin/src/main/java/com/huimv/admin/timer/WaterAndElcTimer.java

@@ -2211,6 +2211,440 @@ public class WaterAndElcTimer {
 
         }
     }
+
+    //乐清39
+    @Scheduled(cron = "0 59 * * * ? ")
+    private void getShenChan16() throws Exception {
+        QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", 39);
+        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");
+
+
+        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(), "39");
+
+            QueryWrapper<EnergyScreen> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("farm_id", 39).ge("create_date", timesMonthmorning).eq("device_code", envDevice.getDeviceCode());
+            EnergyScreen energyScreen = screenMapper.selectOne(queryWrapper1);
+
+            if (ObjectUtil.isNotEmpty(energyScreen)) {
+                //说明今天的数据已经存在 后续只需要更新即可
+                if ("1".equals(envDevice.getRemark())) {
+                    //用水
+                    energyScreen.setCreateDate(new Date());
+                    energyScreen.setTodayRead(dataScreenVo.getWaterValueToday());
+                    energyScreen.setTodayConsume(dataScreenVo.getWaterValueTodayUsage());
+                    energyScreen.setYesterdayConsume(dataScreenVo.getWaterValueYesterdayUsage());
+                    energyScreen.setWeekConsume(dataScreenVo.getWaterValueThisWeekUsage());
+                    energyScreen.setLastWeekConsume(dataScreenVo.getWaterValueLastWeekUsage());
+                    energyScreen.setMonthConsume(dataScreenVo.getWaterValueThisMonthUsage());
+                    energyScreen.setLastMonthConsume(dataScreenVo.getWaterValueLastMonthUsage());
+                    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.getWaterValueThisMonthUsage());
+                    double month2 = Double.parseDouble(dataScreenVo.getWaterValueLastMonthUsage());
+                    DecimalFormat def = new DecimalFormat("0.00");
+                    String day4 = def.format(day2 - day3);
+                    String week3 = def.format(week1 - week2);
+                    String month3 = def.format(month1 - month2);
+                    energyScreen.setDayDifference(day4);
+                    energyScreen.setWeekDifference(week3);
+                    energyScreen.setMonthDifference(month3);
+                } else {
+                    //用电
+                    energyScreen.setCreateDate(new Date());
+                    energyScreen.setTodayRead(dataScreenVo.getElectricityValueToday());
+                    energyScreen.setTodayConsume(dataScreenVo.getElectricityValueTodayUsage());
+                    energyScreen.setYesterdayConsume(dataScreenVo.getElectricityValueYesterdayUsage());
+                    energyScreen.setWeekConsume(dataScreenVo.getElectricityValueThisWeekUsage());
+                    energyScreen.setLastWeekConsume(dataScreenVo.getElectricityValueLastWeekUsage());
+                    energyScreen.setMonthConsume(dataScreenVo.getElectricityValueThisMonthUsage());
+                    energyScreen.setLastMonthConsume(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);
+                    energyScreen.setDayDifference(day4);
+                    energyScreen.setWeekDifference(week3);
+                    energyScreen.setMonthDifference(month3);
+                }
+                screenMapper.updateById(energyScreen);
+            }else {
+                //添加一天的第一条数据
+                EnergyScreen screen = new EnergyScreen();
+                if ("1".equals(envDevice.getRemark())) {
+                    //添加用水
+                    screen.setCreateDate(new Date());
+                    screen.setTodayRead(dataScreenVo.getWaterValueToday());
+                    screen.setTodayConsume(dataScreenVo.getWaterValueTodayUsage());
+                    screen.setYesterdayConsume(dataScreenVo.getWaterValueYesterdayUsage());
+                    screen.setWeekConsume(dataScreenVo.getWaterValueThisWeekUsage());
+                    screen.setLastWeekConsume(dataScreenVo.getWaterValueLastWeekUsage());
+                    screen.setMonthConsume(dataScreenVo.getWaterValueThisMonthUsage());
+                    screen.setLastMonthConsume(dataScreenVo.getWaterValueLastMonthUsage());
+                    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.getWaterValueThisMonthUsage());
+                    double month2 = Double.parseDouble(dataScreenVo.getWaterValueLastMonthUsage());
+                    DecimalFormat def = new DecimalFormat("0.00");
+                    String day4 = def.format(day2 - day3);
+                    String week3 = def.format(week1 - week2);
+                    String month3 = def.format(month1 - month2);
+                    screen.setDayDifference(day4);
+                    screen.setWeekDifference(week3);
+                    screen.setMonthDifference(month3);
+                    screen.setFarmId(39);
+                    screen.setBuildName(envDevice.getUnitName());
+                    screen.setDeviceCode(envDevice.getDeviceCode());
+                    screen.setType(1);
+                    screen.setFarmName("华统股份乐清智慧牧场");
+                } else {
+                    screen.setCreateDate(new Date());
+                    screen.setTodayRead(dataScreenVo.getElectricityValueToday());
+                    screen.setTodayConsume(dataScreenVo.getElectricityValueTodayUsage());
+                    screen.setYesterdayConsume(dataScreenVo.getElectricityValueYesterdayUsage());
+                    screen.setWeekConsume(dataScreenVo.getElectricityValueThisWeekUsage());
+                    screen.setLastWeekConsume(dataScreenVo.getElectricityValueLastWeekUsage());
+                    screen.setMonthConsume(dataScreenVo.getElectricityValueThisMonthUsage());
+                    screen.setLastMonthConsume(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);
+                    screen.setDayDifference(day4);
+                    screen.setWeekDifference(week3);
+                    screen.setMonthDifference(month3);
+                    screen.setFarmId(39);
+                    screen.setBuildName(envDevice.getUnitName());
+                    screen.setDeviceCode(envDevice.getDeviceCode());
+                    screen.setType(2);
+                    screen.setFarmName("华统股份乐清智慧牧场");
+                }
+                screenMapper.insert(screen);
+            }
+
+        }
+    }
+
+    //三亩田42
+    @Scheduled(cron = "0 59 * * * ? ")
+    private void getShenChan17() throws Exception {
+        QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", 42);
+        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");
+
+
+        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(), "42");
+
+            QueryWrapper<EnergyScreen> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("farm_id", 42).ge("create_date", timesMonthmorning).eq("device_code", envDevice.getDeviceCode());
+            EnergyScreen energyScreen = screenMapper.selectOne(queryWrapper1);
+
+            if (ObjectUtil.isNotEmpty(energyScreen)) {
+                //说明今天的数据已经存在 后续只需要更新即可
+                if ("1".equals(envDevice.getRemark())) {
+                    //用水
+                    energyScreen.setCreateDate(new Date());
+                    energyScreen.setTodayRead(dataScreenVo.getWaterValueToday());
+                    energyScreen.setTodayConsume(dataScreenVo.getWaterValueTodayUsage());
+                    energyScreen.setYesterdayConsume(dataScreenVo.getWaterValueYesterdayUsage());
+                    energyScreen.setWeekConsume(dataScreenVo.getWaterValueThisWeekUsage());
+                    energyScreen.setLastWeekConsume(dataScreenVo.getWaterValueLastWeekUsage());
+                    energyScreen.setMonthConsume(dataScreenVo.getWaterValueThisMonthUsage());
+                    energyScreen.setLastMonthConsume(dataScreenVo.getWaterValueLastMonthUsage());
+                    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.getWaterValueThisMonthUsage());
+                    double month2 = Double.parseDouble(dataScreenVo.getWaterValueLastMonthUsage());
+                    DecimalFormat def = new DecimalFormat("0.00");
+                    String day4 = def.format(day2 - day3);
+                    String week3 = def.format(week1 - week2);
+                    String month3 = def.format(month1 - month2);
+                    energyScreen.setDayDifference(day4);
+                    energyScreen.setWeekDifference(week3);
+                    energyScreen.setMonthDifference(month3);
+                } else {
+                    //用电
+                    energyScreen.setCreateDate(new Date());
+                    energyScreen.setTodayRead(dataScreenVo.getElectricityValueToday());
+                    energyScreen.setTodayConsume(dataScreenVo.getElectricityValueTodayUsage());
+                    energyScreen.setYesterdayConsume(dataScreenVo.getElectricityValueYesterdayUsage());
+                    energyScreen.setWeekConsume(dataScreenVo.getElectricityValueThisWeekUsage());
+                    energyScreen.setLastWeekConsume(dataScreenVo.getElectricityValueLastWeekUsage());
+                    energyScreen.setMonthConsume(dataScreenVo.getElectricityValueThisMonthUsage());
+                    energyScreen.setLastMonthConsume(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);
+                    energyScreen.setDayDifference(day4);
+                    energyScreen.setWeekDifference(week3);
+                    energyScreen.setMonthDifference(month3);
+                }
+                screenMapper.updateById(energyScreen);
+            }else {
+                //添加一天的第一条数据
+                EnergyScreen screen = new EnergyScreen();
+                if ("1".equals(envDevice.getRemark())) {
+                    //添加用水
+                    screen.setCreateDate(new Date());
+                    screen.setTodayRead(dataScreenVo.getWaterValueToday());
+                    screen.setTodayConsume(dataScreenVo.getWaterValueTodayUsage());
+                    screen.setYesterdayConsume(dataScreenVo.getWaterValueYesterdayUsage());
+                    screen.setWeekConsume(dataScreenVo.getWaterValueThisWeekUsage());
+                    screen.setLastWeekConsume(dataScreenVo.getWaterValueLastWeekUsage());
+                    screen.setMonthConsume(dataScreenVo.getWaterValueThisMonthUsage());
+                    screen.setLastMonthConsume(dataScreenVo.getWaterValueLastMonthUsage());
+                    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.getWaterValueThisMonthUsage());
+                    double month2 = Double.parseDouble(dataScreenVo.getWaterValueLastMonthUsage());
+                    DecimalFormat def = new DecimalFormat("0.00");
+                    String day4 = def.format(day2 - day3);
+                    String week3 = def.format(week1 - week2);
+                    String month3 = def.format(month1 - month2);
+                    screen.setDayDifference(day4);
+                    screen.setWeekDifference(week3);
+                    screen.setMonthDifference(month3);
+                    screen.setFarmId(42);
+                    screen.setBuildName(envDevice.getUnitName());
+                    screen.setDeviceCode(envDevice.getDeviceCode());
+                    screen.setType(1);
+                    screen.setFarmName("华统股份三亩田智慧牧场");
+                } else {
+                    screen.setCreateDate(new Date());
+                    screen.setTodayRead(dataScreenVo.getElectricityValueToday());
+                    screen.setTodayConsume(dataScreenVo.getElectricityValueTodayUsage());
+                    screen.setYesterdayConsume(dataScreenVo.getElectricityValueYesterdayUsage());
+                    screen.setWeekConsume(dataScreenVo.getElectricityValueThisWeekUsage());
+                    screen.setLastWeekConsume(dataScreenVo.getElectricityValueLastWeekUsage());
+                    screen.setMonthConsume(dataScreenVo.getElectricityValueThisMonthUsage());
+                    screen.setLastMonthConsume(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);
+                    screen.setDayDifference(day4);
+                    screen.setWeekDifference(week3);
+                    screen.setMonthDifference(month3);
+                    screen.setFarmId(42);
+                    screen.setBuildName(envDevice.getUnitName());
+                    screen.setDeviceCode(envDevice.getDeviceCode());
+                    screen.setType(2);
+                    screen.setFarmName("华统股份三亩田智慧牧场");
+                }
+                screenMapper.insert(screen);
+            }
+
+        }
+    }
+    //东阳24
+    @Scheduled(cron = "0 59 * * * ? ")
+    private void getShenChan18() throws Exception {
+        QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", 24);
+        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");
+
+
+        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(), "24");
+
+            QueryWrapper<EnergyScreen> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("farm_id", 24).ge("create_date", timesMonthmorning).eq("device_code", envDevice.getDeviceCode());
+            EnergyScreen energyScreen = screenMapper.selectOne(queryWrapper1);
+
+            if (ObjectUtil.isNotEmpty(energyScreen)) {
+                //说明今天的数据已经存在 后续只需要更新即可
+                if ("1".equals(envDevice.getRemark())) {
+                    //用水
+                    energyScreen.setCreateDate(new Date());
+                    energyScreen.setTodayRead(dataScreenVo.getWaterValueToday());
+                    energyScreen.setTodayConsume(dataScreenVo.getWaterValueTodayUsage());
+                    energyScreen.setYesterdayConsume(dataScreenVo.getWaterValueYesterdayUsage());
+                    energyScreen.setWeekConsume(dataScreenVo.getWaterValueThisWeekUsage());
+                    energyScreen.setLastWeekConsume(dataScreenVo.getWaterValueLastWeekUsage());
+                    energyScreen.setMonthConsume(dataScreenVo.getWaterValueThisMonthUsage());
+                    energyScreen.setLastMonthConsume(dataScreenVo.getWaterValueLastMonthUsage());
+                    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.getWaterValueThisMonthUsage());
+                    double month2 = Double.parseDouble(dataScreenVo.getWaterValueLastMonthUsage());
+                    DecimalFormat def = new DecimalFormat("0.00");
+                    String day4 = def.format(day2 - day3);
+                    String week3 = def.format(week1 - week2);
+                    String month3 = def.format(month1 - month2);
+                    energyScreen.setDayDifference(day4);
+                    energyScreen.setWeekDifference(week3);
+                    energyScreen.setMonthDifference(month3);
+                } else {
+                    //用电
+                    energyScreen.setCreateDate(new Date());
+                    energyScreen.setTodayRead(dataScreenVo.getElectricityValueToday());
+                    energyScreen.setTodayConsume(dataScreenVo.getElectricityValueTodayUsage());
+                    energyScreen.setYesterdayConsume(dataScreenVo.getElectricityValueYesterdayUsage());
+                    energyScreen.setWeekConsume(dataScreenVo.getElectricityValueThisWeekUsage());
+                    energyScreen.setLastWeekConsume(dataScreenVo.getElectricityValueLastWeekUsage());
+                    energyScreen.setMonthConsume(dataScreenVo.getElectricityValueThisMonthUsage());
+                    energyScreen.setLastMonthConsume(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);
+                    energyScreen.setDayDifference(day4);
+                    energyScreen.setWeekDifference(week3);
+                    energyScreen.setMonthDifference(month3);
+                }
+                screenMapper.updateById(energyScreen);
+            }else {
+                //添加一天的第一条数据
+                EnergyScreen screen = new EnergyScreen();
+                if ("1".equals(envDevice.getRemark())) {
+                    //添加用水
+                    screen.setCreateDate(new Date());
+                    screen.setTodayRead(dataScreenVo.getWaterValueToday());
+                    screen.setTodayConsume(dataScreenVo.getWaterValueTodayUsage());
+                    screen.setYesterdayConsume(dataScreenVo.getWaterValueYesterdayUsage());
+                    screen.setWeekConsume(dataScreenVo.getWaterValueThisWeekUsage());
+                    screen.setLastWeekConsume(dataScreenVo.getWaterValueLastWeekUsage());
+                    screen.setMonthConsume(dataScreenVo.getWaterValueThisMonthUsage());
+                    screen.setLastMonthConsume(dataScreenVo.getWaterValueLastMonthUsage());
+                    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.getWaterValueThisMonthUsage());
+                    double month2 = Double.parseDouble(dataScreenVo.getWaterValueLastMonthUsage());
+                    DecimalFormat def = new DecimalFormat("0.00");
+                    String day4 = def.format(day2 - day3);
+                    String week3 = def.format(week1 - week2);
+                    String month3 = def.format(month1 - month2);
+                    screen.setDayDifference(day4);
+                    screen.setWeekDifference(week3);
+                    screen.setMonthDifference(month3);
+                    screen.setFarmId(24);
+                    screen.setBuildName(envDevice.getUnitName());
+                    screen.setDeviceCode(envDevice.getDeviceCode());
+                    screen.setType(1);
+                    screen.setFarmName("华统股份东阳智慧牧场");
+                } else {
+                    screen.setCreateDate(new Date());
+                    screen.setTodayRead(dataScreenVo.getElectricityValueToday());
+                    screen.setTodayConsume(dataScreenVo.getElectricityValueTodayUsage());
+                    screen.setYesterdayConsume(dataScreenVo.getElectricityValueYesterdayUsage());
+                    screen.setWeekConsume(dataScreenVo.getElectricityValueThisWeekUsage());
+                    screen.setLastWeekConsume(dataScreenVo.getElectricityValueLastWeekUsage());
+                    screen.setMonthConsume(dataScreenVo.getElectricityValueThisMonthUsage());
+                    screen.setLastMonthConsume(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);
+                    screen.setDayDifference(day4);
+                    screen.setWeekDifference(week3);
+                    screen.setMonthDifference(month3);
+                    screen.setFarmId(24);
+                    screen.setBuildName(envDevice.getUnitName());
+                    screen.setDeviceCode(envDevice.getDeviceCode());
+                    screen.setType(2);
+                    screen.setFarmName("华统股份东阳智慧牧场");
+                }
+                screenMapper.insert(screen);
+            }
+
+        }
+    }
     /**
      * 获取上周开始时间和结束时间
      */