|
@@ -2,21 +2,25 @@ package com.huimv.admin.service.impl;
|
|
|
|
|
|
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 com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONException;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
+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.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.service.IEnergyDataService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -25,6 +29,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.text.DecimalFormat;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
@@ -44,6 +49,8 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
|
|
|
private BasePigpenMapper basePigpenMapper;
|
|
|
@Autowired
|
|
|
private EnergyWarningInfoMapper warningInfoMapper;
|
|
|
+ @Autowired
|
|
|
+ private EnergyEnvDeviceMapper envDeviceMapper;
|
|
|
|
|
|
@Override
|
|
|
public Result listCount(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
@@ -221,32 +228,24 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
|
|
|
if (timeType == null || timeType == "") {
|
|
|
timeType = "3";
|
|
|
}
|
|
|
- QueryWrapper<BasePigpen> basePigpenQueryWrapper = new QueryWrapper<>();
|
|
|
- basePigpenQueryWrapper.eq("farm_id", farmId);
|
|
|
JSONArray jsonArray = new JSONArray();
|
|
|
- basePigpenQueryWrapper.eq("parent_id", 0);
|
|
|
- List<BasePigpen> basePigpens = basePigpenMapper.selectList(basePigpenQueryWrapper);//得到所有的栋舍
|
|
|
- for (BasePigpen basePigpen : basePigpens) {
|
|
|
- QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.eq("farm_id", farmId).eq("parent_id", basePigpen.getId()).eq("f_type", 2);
|
|
|
- List<BasePigpen> pigpens = basePigpenMapper.selectList(queryWrapper);//得到所有的楼层
|
|
|
- Float value = 0.00f;
|
|
|
- for (BasePigpen pigpen : pigpens) {
|
|
|
- QueryWrapper<BasePigpen> queryWrapper1 = new QueryWrapper<>();
|
|
|
- queryWrapper1.like("other2", pigpen.getId()).eq("farm_id", farmId);
|
|
|
- List<BasePigpen> basePigpens1 = basePigpenMapper.selectList(queryWrapper1);
|
|
|
- List<Integer> idList = new ArrayList<>();
|
|
|
- basePigpens1.forEach(item -> {
|
|
|
- idList.add(item.getId());
|
|
|
- });//某一层所有单元的id
|
|
|
- QueryWrapper<EnergyData> dataQueryWrapper = new QueryWrapper<>();
|
|
|
- if (ObjectUtil.isNotEmpty(idList)) {
|
|
|
- dataQueryWrapper.eq("farm_id", farmId).in("unit_id", idList);
|
|
|
- } else {
|
|
|
- dataQueryWrapper.eq("farm_id", farmId);
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
+ QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("farm_id", farmId).eq("f_type", 2);
|
|
|
+ List<BasePigpen> pigpens = basePigpenMapper.selectList(queryWrapper);//得到所有的楼层
|
|
|
+ for (BasePigpen pigpen : pigpens) {
|
|
|
+ Float value = 0.00f;
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ QueryWrapper<BasePigpen> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.like("other2", pigpen.getId()).eq("farm_id", farmId).ne("id", pigpen.getId());
|
|
|
+ List<BasePigpen> basePigpens1 = basePigpenMapper.selectList(queryWrapper1);
|
|
|
+ List<Integer> idList = new ArrayList<>();
|
|
|
+ basePigpens1.forEach(item -> {
|
|
|
+ idList.add(item.getId());
|
|
|
+ });//某一层所有单元的id
|
|
|
+ QueryWrapper<EnergyData> dataQueryWrapper = new QueryWrapper<>();
|
|
|
+ if (idList.size() != 0) {
|
|
|
+ dataQueryWrapper.eq("farm_id", farmId).in("unit_id", idList);
|
|
|
if ("4".equals(timeType)) {
|
|
|
//自定义
|
|
|
startTime = startTime + " 00:00:00";
|
|
@@ -266,53 +265,36 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
|
|
|
calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 7);
|
|
|
dataQueryWrapper.ge("create_date", calendar.getTime());
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
dataQueryWrapper.select(
|
|
|
- "IFNULL(SUM(water_value),0) waterValue,IFNULL(SUM(gas_value),0) gasValue" +
|
|
|
+ " IFNULL(SUM(water_value),0) waterValue,IFNULL(SUM(gas_value),0) gasValue" +
|
|
|
",IFNULL(SUM(electricity_value),0) electricityValue" +
|
|
|
",IFNULL(SUM(feed_value),0) feedValue "
|
|
|
);
|
|
|
EnergyData energyData = dataMapper.selectOne(dataQueryWrapper);
|
|
|
- JSONObject jsonObject = new JSONObject();
|
|
|
-
|
|
|
-
|
|
|
if ("1".equals(dataType)) {
|
|
|
- if (Float.parseFloat(energyData.getWaterValue()) != 0.0f) {
|
|
|
- value = value + Float.parseFloat(energyData.getWaterValue());
|
|
|
- jsonObject.put("value", value);
|
|
|
- } else {
|
|
|
- jsonObject.put("value", 0);
|
|
|
- }
|
|
|
+ value = Float.parseFloat(energyData.getWaterValue());
|
|
|
+ jsonObject.put("value", value);
|
|
|
}
|
|
|
if ("2".equals(dataType)) {
|
|
|
- if (Float.parseFloat(energyData.getElectricityValue()) != 0.0f) {
|
|
|
- value = value + Float.parseFloat(energyData.getElectricityValue());
|
|
|
- jsonObject.put("value", value);
|
|
|
- } else {
|
|
|
- jsonObject.put("value", 0);
|
|
|
- }
|
|
|
+ value = Float.parseFloat(energyData.getElectricityValue());
|
|
|
+ jsonObject.put("value", value);
|
|
|
}
|
|
|
if ("3".equals(dataType)) {
|
|
|
- if (Float.parseFloat(energyData.getFeedValue()) != 0.0f) {
|
|
|
- value = value + Float.parseFloat(energyData.getFeedValue());
|
|
|
- jsonObject.put("value", value);
|
|
|
- } else {
|
|
|
- jsonObject.put("value", 0);
|
|
|
- }
|
|
|
+ value = Float.parseFloat(energyData.getFeedValue());
|
|
|
+ jsonObject.put("value", value);
|
|
|
+
|
|
|
}
|
|
|
if ("4".equals(dataType)) {
|
|
|
- if (Float.parseFloat(energyData.getGasValue()) != 0.0f) {
|
|
|
- value = value + Float.parseFloat(energyData.getGasValue());
|
|
|
- jsonObject.put("value", value);
|
|
|
- } else {
|
|
|
- jsonObject.put("value", 0);
|
|
|
- }
|
|
|
+ value = Float.parseFloat(energyData.getGasValue());
|
|
|
+ jsonObject.put("value", value);
|
|
|
}
|
|
|
jsonObject.put("buildName", pigpen.getBuildName());
|
|
|
- jsonArray.add(jsonObject);
|
|
|
- value = 0.00f;
|
|
|
+
|
|
|
+ } else {
|
|
|
+ jsonObject.put("value", 0);
|
|
|
+ jsonObject.put("buildName", pigpen.getBuildName());
|
|
|
}
|
|
|
+ jsonArray.add(jsonObject);
|
|
|
}
|
|
|
|
|
|
JSONArray arraySort = jsonArraySort(jsonArray, "value", true);
|
|
@@ -343,75 +325,53 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
|
|
|
if (dataType == null || dataType == "") {
|
|
|
dataType = "1";
|
|
|
}
|
|
|
- QueryWrapper<BasePigpen> basePigpenQueryWrapper = new QueryWrapper<>();
|
|
|
- basePigpenQueryWrapper.eq("farm_id", farmId);
|
|
|
JSONArray jsonArray = new JSONArray();
|
|
|
- basePigpenQueryWrapper.eq("parent_id", 0);
|
|
|
- List<BasePigpen> basePigpens = basePigpenMapper.selectList(basePigpenQueryWrapper);//得到所有的栋舍
|
|
|
- for (BasePigpen basePigpen : basePigpens) {
|
|
|
- QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.eq("farm_id", farmId).eq("parent_id", basePigpen.getId()).eq("f_type", 2);
|
|
|
- List<BasePigpen> pigpens = basePigpenMapper.selectList(queryWrapper);//得到所有的楼层
|
|
|
- Float value = 0.00f;
|
|
|
- for (BasePigpen pigpen : pigpens) {
|
|
|
- QueryWrapper<BasePigpen> queryWrapper1 = new QueryWrapper<>();
|
|
|
- queryWrapper1.like("other2", pigpen.getId()).eq("farm_id", farmId);
|
|
|
- List<BasePigpen> basePigpens1 = basePigpenMapper.selectList(queryWrapper1);
|
|
|
- List<Integer> idList = new ArrayList<>();
|
|
|
- basePigpens1.forEach(item -> {
|
|
|
- idList.add(item.getId());
|
|
|
- });//某一层所有单元的id
|
|
|
- QueryWrapper<EnergyData> dataQueryWrapper = new QueryWrapper<>();
|
|
|
- if (ObjectUtil.isNotEmpty(idList)) {
|
|
|
- dataQueryWrapper.eq("farm_id", farmId).in(("unit_id"), idList);
|
|
|
- } else {
|
|
|
- dataQueryWrapper.eq("farm_id", farmId);
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
+ QueryWrapper<BasePigpen> basePigpenQueryWrapper = new QueryWrapper<>();
|
|
|
+ basePigpenQueryWrapper.eq("farm_id", farmId).eq("f_type", 2);
|
|
|
+ List<BasePigpen> basePigpenList = basePigpenMapper.selectList(basePigpenQueryWrapper);//得到所有的楼层
|
|
|
+ Float value = 0.00f;
|
|
|
+ for (BasePigpen basePigpen : basePigpenList) {
|
|
|
+ QueryWrapper<BasePigpen> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.like("other2", basePigpen.getId()).eq("farm_id", farmId).ne("id", basePigpen.getId());
|
|
|
+ List<BasePigpen> basePigpens1 = basePigpenMapper.selectList(queryWrapper1);
|
|
|
+ List<Integer> idList = new ArrayList<>();
|
|
|
+ basePigpens1.forEach(item -> {
|
|
|
+ idList.add(item.getId());
|
|
|
+ });//某一层所有单元的id
|
|
|
+
|
|
|
+ QueryWrapper<EnergyData> dataQueryWrapper = new QueryWrapper<>();
|
|
|
+ Date timesMonthmorning = DataUill.getTimesMonthmorning();
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ if (idList.size() != 0) {
|
|
|
+ dataQueryWrapper.eq("farm_id", farmId).in("unit_id", idList);
|
|
|
+ dataQueryWrapper.ge("create_date", timesMonthmorning);
|
|
|
dataQueryWrapper.select(
|
|
|
"IFNULL(SUM(water_value),0) waterValue,IFNULL(SUM(gas_value),0) gasValue" +
|
|
|
",IFNULL(SUM(electricity_value),0) electricityValue" +
|
|
|
",IFNULL(SUM(feed_value),0) feedValue "
|
|
|
);
|
|
|
EnergyData energyData = dataMapper.selectOne(dataQueryWrapper);
|
|
|
- JSONObject jsonObject = new JSONObject();
|
|
|
if ("1".equals(dataType)) {
|
|
|
- if (Float.parseFloat(energyData.getWaterValue()) != 0.0f) {
|
|
|
- value = value + Float.parseFloat(energyData.getWaterValue());
|
|
|
- jsonObject.put("value", value);
|
|
|
- } else {
|
|
|
- jsonObject.put("value", 0);
|
|
|
- }
|
|
|
+ value = Float.parseFloat(energyData.getWaterValue());
|
|
|
}
|
|
|
if ("2".equals(dataType)) {
|
|
|
- if (Float.parseFloat(energyData.getElectricityValue()) != 0.0f) {
|
|
|
- value = value + Float.parseFloat(energyData.getElectricityValue());
|
|
|
- jsonObject.put("value", value);
|
|
|
- } else {
|
|
|
- jsonObject.put("value", 0);
|
|
|
- }
|
|
|
+ value = Float.parseFloat(energyData.getElectricityValue());
|
|
|
}
|
|
|
if ("3".equals(dataType)) {
|
|
|
- if (Float.parseFloat(energyData.getFeedValue()) != 0.0f) {
|
|
|
- value = value + Float.parseFloat(energyData.getFeedValue());
|
|
|
- jsonObject.put("value", value);
|
|
|
- } else {
|
|
|
- jsonObject.put("value", 0);
|
|
|
- }
|
|
|
+ value = Float.parseFloat(energyData.getFeedValue());
|
|
|
}
|
|
|
if ("4".equals(dataType)) {
|
|
|
- if (Float.parseFloat(energyData.getGasValue()) != 0.0f) {
|
|
|
- value = value + Float.parseFloat(energyData.getGasValue());
|
|
|
- jsonObject.put("value", value);
|
|
|
- } else {
|
|
|
- jsonObject.put("value", 0);
|
|
|
- }
|
|
|
+ value = Float.parseFloat(energyData.getGasValue());
|
|
|
}
|
|
|
- jsonObject.put("buildName", pigpen.getBuildName());
|
|
|
- jsonArray.add(jsonObject);
|
|
|
+ jsonObject.put("value", value);
|
|
|
+ jsonObject.put("buildName", basePigpen.getBuildName());
|
|
|
value = 0.00f;
|
|
|
+ } else {
|
|
|
+ jsonObject.put("value", 0);
|
|
|
+ jsonObject.put("buildName", basePigpen.getBuildName());
|
|
|
}
|
|
|
+ jsonArray.add(jsonObject);
|
|
|
}
|
|
|
JSONArray arraySort = jsonArraySort1(jsonArray, "value", true);
|
|
|
JSONArray array = new JSONArray();
|
|
@@ -423,9 +383,309 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
|
|
|
}
|
|
|
return new Result(ResultCode.SUCCESS, array);
|
|
|
}
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result listDataAll(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
+
|
|
|
+ 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();//本月
|
|
|
+
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
+ for (EnergyEnvDevice envDevice : envDevices) {
|
|
|
+ QueryWrapper<EnergyData> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("unit_id", envDevice.getUnitId());
|
|
|
+ queryWrapper1.eq("farm_id", farmId);
|
|
|
+ queryWrapper1.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
|
|
|
+ EnergyData data = dataMapper.selectOne(queryWrapper1);//当日读数
|
|
|
+
|
|
|
+ queryWrapper1.ge("create_date", timesmorning);
|
|
|
+ EnergyData energyData = dataMapper.selectOne(queryWrapper1);//当日用量
|
|
|
+
|
|
|
+ QueryWrapper<EnergyData> queryWrapper2 = new QueryWrapper<>();
|
|
|
+ queryWrapper2.eq("unit_id", envDevice.getUnitId());
|
|
|
+ queryWrapper2.eq("farm_id", farmId);
|
|
|
+ queryWrapper2.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
|
|
|
+ queryWrapper2.between("create_date", getYesterdayRange().get("startTime"), getYesterdayRange().get("stopTime"));
|
|
|
+ EnergyData data1 = dataMapper.selectOne(queryWrapper1);//昨日用量
|
|
|
+
|
|
|
+ QueryWrapper<EnergyData> queryWrapper4 = new QueryWrapper<>();
|
|
|
+ queryWrapper4.eq("unit_id", envDevice.getUnitId());
|
|
|
+ queryWrapper4.eq("farm_id", farmId);
|
|
|
+ queryWrapper4.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
|
|
|
+ queryWrapper4.ge("create_date", dateTime);
|
|
|
+ EnergyData data4 = dataMapper.selectOne(queryWrapper4);//本周用量
|
|
|
+
|
|
|
+ QueryWrapper<EnergyData> queryWrapper3 = new QueryWrapper<>();
|
|
|
+ queryWrapper3.eq("unit_id", envDevice.getUnitId());
|
|
|
+ queryWrapper3.eq("farm_id", farmId);
|
|
|
+ queryWrapper3.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
|
|
|
+ queryWrapper3.between("create_date", getLastWeekRange().get("startTime"), getLastWeekRange().get("stopTime"));
|
|
|
+ EnergyData data3 = dataMapper.selectOne(queryWrapper3);//上周用量
|
|
|
+
|
|
|
+ QueryWrapper<EnergyData> queryWrapper5 = new QueryWrapper<>();
|
|
|
+ queryWrapper5.eq("unit_id", envDevice.getUnitId());
|
|
|
+ queryWrapper5.eq("farm_id", farmId);
|
|
|
+ queryWrapper5.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
|
|
|
+ queryWrapper5.ge("create_date", timesMonthmorning);
|
|
|
+ EnergyData data5 = dataMapper.selectOne(queryWrapper5);//本月用量
|
|
|
+
|
|
|
+ QueryWrapper<EnergyData> queryWrapper6 = new QueryWrapper<>();
|
|
|
+ queryWrapper6.eq("unit_id", envDevice.getUnitId());
|
|
|
+ queryWrapper6.eq("farm_id", farmId);
|
|
|
+ queryWrapper6.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
|
|
|
+ queryWrapper6.between("create_date", getLastMonthRange().get("startTime"), getLastMonthRange().get("stopTime"));
|
|
|
+ EnergyData data6 = dataMapper.selectOne(queryWrapper6);//上月用量
|
|
|
+
|
|
|
+
|
|
|
+ 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", data.getWaterValue());
|
|
|
+ jsonObject.put("day2", energyData.getWaterValue());
|
|
|
+ jsonObject.put("day3", data1.getWaterValue());
|
|
|
+ jsonObject.put("week1", data4.getWaterValue());
|
|
|
+ jsonObject.put("week2", data3.getWaterValue());
|
|
|
+ jsonObject.put("month1", data5.getWaterValue());
|
|
|
+ jsonObject.put("month2", data6.getWaterValue());
|
|
|
+ double day2 = Double.parseDouble(energyData.getWaterValue());
|
|
|
+ double day3 = Double.parseDouble(data1.getWaterValue());
|
|
|
+ double week1 = Double.parseDouble(data4.getWaterValue());
|
|
|
+ double week2 = Double.parseDouble(data3.getWaterValue());
|
|
|
+ double month1 = Double.parseDouble(data5.getWaterValue());
|
|
|
+ double month2 = Double.parseDouble(data6.getWaterValue());
|
|
|
+ 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())) {
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ jsonObject.put("deviceCode", envDevice.getDeviceCode());
|
|
|
+ jsonObject.put("buildName", envDevice.getUnitName());
|
|
|
+ jsonObject.put("day1", data.getElectricityValue());
|
|
|
+ jsonObject.put("day2", energyData.getElectricityValue());
|
|
|
+ jsonObject.put("day3", data1.getElectricityValue());
|
|
|
+ jsonObject.put("week1", data4.getElectricityValue());
|
|
|
+ jsonObject.put("week2", data3.getElectricityValue());
|
|
|
+ jsonObject.put("month1", data5.getElectricityValue());
|
|
|
+ jsonObject.put("month2", data6.getElectricityValue());
|
|
|
+ double day2 = Double.parseDouble(energyData.getElectricityValue());
|
|
|
+ double day3 = Double.parseDouble(data1.getElectricityValue());
|
|
|
+ double week1 = Double.parseDouble(data4.getElectricityValue());
|
|
|
+ double week2 = Double.parseDouble(data3.getElectricityValue());
|
|
|
+ double month1 = Double.parseDouble(data5.getElectricityValue());
|
|
|
+ double month2 = Double.parseDouble(data6.getElectricityValue());
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return new Result(ResultCode.SUCCESS, jsonArray);
|
|
|
}
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
+ public Result listDataAll2(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
+
|
|
|
+ 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();//本月
|
|
|
+
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
+ for (EnergyEnvDevice envDevice : envDevices) {
|
|
|
+ QueryWrapper<EnergyData> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("unit_id", envDevice.getUnitId());
|
|
|
+ queryWrapper1.eq("farm_id", farmId);
|
|
|
+ queryWrapper1.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
|
|
|
+ EnergyData data = dataMapper.selectOne(queryWrapper1);//当日读数
|
|
|
+
|
|
|
+ queryWrapper1.ge("create_date", timesmorning);
|
|
|
+ EnergyData energyData = dataMapper.selectOne(queryWrapper1);//当日用量
|
|
|
+
|
|
|
+ QueryWrapper<EnergyData> queryWrapper2 = new QueryWrapper<>();
|
|
|
+ queryWrapper2.eq("unit_id", envDevice.getUnitId());
|
|
|
+ queryWrapper2.eq("farm_id", farmId);
|
|
|
+ queryWrapper2.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
|
|
|
+ queryWrapper2.between("create_date", getYesterdayRange().get("startTime"), getYesterdayRange().get("stopTime"));
|
|
|
+ EnergyData data1 = dataMapper.selectOne(queryWrapper1);//昨日用量
|
|
|
+
|
|
|
+ QueryWrapper<EnergyData> queryWrapper4 = new QueryWrapper<>();
|
|
|
+ queryWrapper4.eq("unit_id", envDevice.getUnitId());
|
|
|
+ queryWrapper4.eq("farm_id", farmId);
|
|
|
+ queryWrapper4.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
|
|
|
+ queryWrapper4.ge("create_date", dateTime);
|
|
|
+ EnergyData data4 = dataMapper.selectOne(queryWrapper4);//本周用量
|
|
|
+
|
|
|
+ QueryWrapper<EnergyData> queryWrapper3 = new QueryWrapper<>();
|
|
|
+ queryWrapper3.eq("unit_id", envDevice.getUnitId());
|
|
|
+ queryWrapper3.eq("farm_id", farmId);
|
|
|
+ queryWrapper3.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
|
|
|
+ queryWrapper3.between("create_date", getLastWeekRange().get("startTime"), getLastWeekRange().get("stopTime"));
|
|
|
+ EnergyData data3 = dataMapper.selectOne(queryWrapper3);//上周用量
|
|
|
+
|
|
|
+ QueryWrapper<EnergyData> queryWrapper5 = new QueryWrapper<>();
|
|
|
+ queryWrapper5.eq("unit_id", envDevice.getUnitId());
|
|
|
+ queryWrapper5.eq("farm_id", farmId);
|
|
|
+ queryWrapper5.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
|
|
|
+ queryWrapper5.ge("create_date", timesMonthmorning);
|
|
|
+ EnergyData data5 = dataMapper.selectOne(queryWrapper5);//本月用量
|
|
|
+
|
|
|
+ QueryWrapper<EnergyData> queryWrapper6 = new QueryWrapper<>();
|
|
|
+ queryWrapper6.eq("unit_id", envDevice.getUnitId());
|
|
|
+ queryWrapper6.eq("farm_id", farmId);
|
|
|
+ queryWrapper6.select("Convert((IFNUll(sum(water_value),'0')),DECIMAL(10,2)) waterValue,Convert((IFNUll(sum(electricity_value),'0')),DECIMAL(10,2)) electricityValue");
|
|
|
+ queryWrapper6.between("create_date", getLastMonthRange().get("startTime"), getLastMonthRange().get("stopTime"));
|
|
|
+ EnergyData data6 = dataMapper.selectOne(queryWrapper6);//上月用量
|
|
|
+
|
|
|
+
|
|
|
+ if ("1".equals(type) && "1".equals(envDevice.getRemark())) {
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ jsonObject.put("deviceCode", envDevice.getDeviceCode());
|
|
|
+ jsonObject.put("buildName", envDevice.getUnitName());
|
|
|
+ jsonObject.put("todayRead", data.getWaterValue());
|
|
|
+ jsonObject.put("todayConsume", energyData.getWaterValue());
|
|
|
+ jsonObject.put("yesterdayConsume", data1.getWaterValue());
|
|
|
+ jsonObject.put("weekConsume", data4.getWaterValue());
|
|
|
+ jsonObject.put("lastWeekConsume", data3.getWaterValue());
|
|
|
+ jsonObject.put("monthConsume", data5.getWaterValue());
|
|
|
+ jsonObject.put("lastMonthConsume", data6.getWaterValue());
|
|
|
+ double day2 = Double.parseDouble(energyData.getWaterValue());
|
|
|
+ double day3 = Double.parseDouble(data1.getWaterValue());
|
|
|
+ double week1 = Double.parseDouble(data4.getWaterValue());
|
|
|
+ double week2 = Double.parseDouble(data3.getWaterValue());
|
|
|
+ double month1 = Double.parseDouble(data5.getWaterValue());
|
|
|
+ double month2 = Double.parseDouble(data6.getWaterValue());
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ 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", data.getElectricityValue());
|
|
|
+ jsonObject.put("todayConsume", energyData.getElectricityValue());
|
|
|
+ jsonObject.put("yesterdayConsume", data1.getElectricityValue());
|
|
|
+ jsonObject.put("weekConsume", data4.getElectricityValue());
|
|
|
+ jsonObject.put("lastWeekConsume", data3.getElectricityValue());
|
|
|
+ jsonObject.put("monthConsume", data5.getElectricityValue());
|
|
|
+ jsonObject.put("lastMonthConsume", data6.getElectricityValue());
|
|
|
+ double day2 = Double.parseDouble(energyData.getElectricityValue());
|
|
|
+ double day3 = Double.parseDouble(data1.getElectricityValue());
|
|
|
+ double week1 = Double.parseDouble(data4.getElectricityValue());
|
|
|
+ double week2 = Double.parseDouble(data3.getElectricityValue());
|
|
|
+ double month1 = Double.parseDouble(data5.getElectricityValue());
|
|
|
+ double month2 = Double.parseDouble(data6.getElectricityValue());
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取上月开始时间和结束时间
|
|
|
+ */
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+
|
|
|
/*数组排序*/
|
|
|
public static JSONArray jsonArraySort(JSONArray jsonArr, String sortKey, boolean is_desc) {
|
|
|
//存放排序结果json数组
|
|
@@ -470,7 +730,7 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
|
|
|
sortedJsonArray.add(jsonValues.get(i));
|
|
|
}
|
|
|
} else {
|
|
|
- for (int i = 0; i < 8; i++) {
|
|
|
+ for (int i = 0; i < jsonArr.size(); i++) {
|
|
|
jsonValues.add(jsonArr.getJSONObject(i));
|
|
|
}
|
|
|
//快速排序,重写compare方法,完成按指定字段比较,完成排序
|