123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677 |
- package com.huimv.admin.timer;
- import cn.hutool.core.date.DateTime;
- import cn.hutool.core.date.DateUtil;
- import cn.hutool.core.util.ObjectUtil;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.huimv.admin.common.utils.DataUill;
- import com.huimv.admin.entity.BillIsolate;
- import com.huimv.admin.entity.EnergyEnvDevice;
- import com.huimv.admin.entity.EnergyScreen;
- import com.huimv.admin.entity.vo.EnergyDataScreenVo;
- import com.huimv.admin.mapper.EnergyDataMapper;
- import com.huimv.admin.mapper.EnergyEnvDeviceMapper;
- import com.huimv.admin.mapper.EnergyScreenMapper;
- import com.huimv.admin.mapper.EnvDeviceMapper;
- import com.huimv.admin.service.IBillIsolateService;
- import com.huimv.admin.service.IBillPcrService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.scheduling.annotation.EnableScheduling;
- import org.springframework.scheduling.annotation.Scheduled;
- import java.text.DecimalFormat;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.List;
- @Configuration
- @EnableScheduling
- public class WaterAndElcTimer {
- @Autowired
- private EnergyEnvDeviceMapper envDeviceMapper;
- @Autowired
- private EnergyDataMapper dataMapper;
- @Autowired
- private EnergyScreenMapper screenMapper;
- @Scheduled(cron = "0 59 * * * ? ")
- private void getShenChan() throws Exception {
- QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("farm_id", 26);
- 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(), "26");
- QueryWrapper<EnergyScreen> queryWrapper1 = new QueryWrapper<>();
- queryWrapper1.eq("farm_id", 26).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(26);
- 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(26);
- screen.setBuildName(envDevice.getUnitName());
- screen.setDeviceCode(envDevice.getDeviceCode());
- screen.setType(2);
- screen.setFarmName("华统股份横路智慧牧场");
- }
- screenMapper.insert(screen);
- }
- }
- }
- @Scheduled(cron = "0 59 * * * ? ")
- private void getShenChan2() throws Exception {
- QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("farm_id", 29);
- 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(), "29");
- QueryWrapper<EnergyScreen> queryWrapper1 = new QueryWrapper<>();
- queryWrapper1.eq("farm_id", 29).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(29);
- 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(29);
- screen.setBuildName(envDevice.getUnitName());
- screen.setDeviceCode(envDevice.getDeviceCode());
- screen.setType(2);
- screen.setFarmName("华统股份张村智慧牧场");
- }
- screenMapper.insert(screen);
- }
- }
- }
- @Scheduled(cron = "0 59 * * * ? ")
- private void getShenChan3() throws Exception {
- QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("farm_id", 22);
- 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(), "22");
- QueryWrapper<EnergyScreen> queryWrapper1 = new QueryWrapper<>();
- queryWrapper1.eq("farm_id", 22).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(22);
- 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(22);
- screen.setBuildName(envDevice.getUnitName());
- screen.setDeviceCode(envDevice.getDeviceCode());
- screen.setType(2);
- screen.setFarmName("华统股份下水碓智慧牧场");
- }
- screenMapper.insert(screen);
- }
- }
- }
- @Scheduled(cron = "0 59 * * * ? ")
- private void getShenChan4() throws Exception {
- QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("farm_id", 28);
- 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(), "28");
- QueryWrapper<EnergyScreen> queryWrapper1 = new QueryWrapper<>();
- queryWrapper1.eq("farm_id", 28).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(28);
- 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(28);
- screen.setBuildName(envDevice.getUnitName());
- screen.setDeviceCode(envDevice.getDeviceCode());
- screen.setType(2);
- screen.setFarmName("华统股份平望智慧牧场");
- }
- screenMapper.insert(screen);
- }
- }
- }
- /**
- * 获取上周开始时间和结束时间
- */
- 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;
- }
- }
|