调整大屏统计代码
This commit is contained in:
parent
fb4c2f4cab
commit
e7656ebb37
|
|
@ -544,8 +544,7 @@ public class BigScreenController {
|
||||||
public Result<List<ScreenIndexSummaryDetailVo>> getIndexSummry (@RequestBody ScreenSummaryVo screenSummaryVo){
|
public Result<List<ScreenIndexSummaryDetailVo>> getIndexSummry (@RequestBody ScreenSummaryVo screenSummaryVo){
|
||||||
List<ScreenIndexSummaryDetailVo> results = new ArrayList<>();
|
List<ScreenIndexSummaryDetailVo> results = new ArrayList<>();
|
||||||
List<SurvStationInfo> stationList = survStationInfoService.getAllStationAndDevice(screenSummaryVo.getStationCode(),"","token");
|
List<SurvStationInfo> stationList = survStationInfoService.getAllStationAndDevice(screenSummaryVo.getStationCode(),"","token");
|
||||||
//补充最新数据进入
|
|
||||||
// JSONArray returnArrs= new JSONArray();
|
|
||||||
Integer intYear = LocalDateTime.now().getYear();
|
Integer intYear = LocalDateTime.now().getYear();
|
||||||
String curYear = String.valueOf(intYear);
|
String curYear = String.valueOf(intYear);
|
||||||
String lastYear = String.valueOf(intYear-1);
|
String lastYear = String.valueOf(intYear-1);
|
||||||
|
|
@ -558,7 +557,7 @@ public class BigScreenController {
|
||||||
for (Integer i = 1; i <= curMonth; i++) {
|
for (Integer i = 1; i <= curMonth; i++) {
|
||||||
wholeTime.add(curYear+"-"+String.format("%02d", i));
|
wholeTime.add(curYear+"-"+String.format("%02d", i));
|
||||||
}
|
}
|
||||||
Integer lastYearMonth = 12 -curMonth;
|
Integer lastYearMonth = 12 - curMonth;
|
||||||
Boolean isNeedLastYear = Boolean.FALSE;
|
Boolean isNeedLastYear = Boolean.FALSE;
|
||||||
if(lastYearMonth>0){
|
if(lastYearMonth>0){
|
||||||
isNeedLastYear = Boolean.TRUE;
|
isNeedLastYear = Boolean.TRUE;
|
||||||
|
|
@ -579,26 +578,45 @@ public class BigScreenController {
|
||||||
String startTime = screenSummaryVo.getStartTime();
|
String startTime = screenSummaryVo.getStartTime();
|
||||||
String endTime = screenSummaryVo.getEndTime();
|
String endTime = screenSummaryVo.getEndTime();
|
||||||
LocalDateTime startDay = null;
|
LocalDateTime startDay = null;
|
||||||
|
DateTimeFormatter daydtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||||
|
DateTimeFormatter monthdtf = DateTimeFormatter.ofPattern("yyyy-MM");
|
||||||
|
DateTimeFormatter yeardtf = DateTimeFormatter.ofPattern("yyyy");
|
||||||
|
|
||||||
if(StringUtils.isBlank(screenSummaryVo.getStartTime())){
|
if(StringUtils.isBlank(screenSummaryVo.getStartTime())){
|
||||||
if(IotConstants.day_hours.equals(screenSummaryVo.getSummrayMode())){//默认日
|
if(IotConstants.day_hours.equals(screenSummaryVo.getSummrayMode())){//默认日
|
||||||
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
||||||
startDay = LocalDateTime.of(nowDay.toLocalDate(),LocalTime.MIN);
|
startDay = LocalDateTime.of(nowDay.toLocalDate(),LocalTime.MIN);
|
||||||
startTime = startDay.format(dtf);
|
startTime = startDay.format(daydtf);
|
||||||
endTime = LocalDateTime.of(nowDay.toLocalDate(),LocalTime.MAX).withNano(999999000).format(dtf);
|
endTime = LocalDateTime.of(nowDay.toLocalDate(),LocalTime.MAX).withNano(999999000).format(daydtf);
|
||||||
}else if(IotConstants.month_days.equals(screenSummaryVo.getSummrayMode())){
|
}else if(IotConstants.month_days.equals(screenSummaryVo.getSummrayMode())){
|
||||||
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM");
|
|
||||||
startDay = nowDay.with(TemporalAdjusters.firstDayOfMonth()).with(LocalTime.MIN);
|
startDay = nowDay.with(TemporalAdjusters.firstDayOfMonth()).with(LocalTime.MIN);
|
||||||
startTime = startDay.format(dtf);
|
startTime = startDay.format(monthdtf);
|
||||||
endTime = nowDay.with(TemporalAdjusters.lastDayOfMonth()).with(LocalTime.MAX).withNano(999999000).format(dtf);
|
endTime = nowDay.with(TemporalAdjusters.lastDayOfMonth()).with(LocalTime.MAX).withNano(999999000).format(monthdtf);
|
||||||
}else if(IotConstants.year_months.equals(screenSummaryVo.getSummrayMode())){
|
}else if(IotConstants.year_months.equals(screenSummaryVo.getSummrayMode())){
|
||||||
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy");
|
|
||||||
startDay = nowDay.with(TemporalAdjusters.firstDayOfYear()).with(LocalTime.MIN);
|
startDay = nowDay.with(TemporalAdjusters.firstDayOfYear()).with(LocalTime.MIN);
|
||||||
startTime = startDay.format(dtf);
|
startTime = startDay.format(yeardtf);
|
||||||
endTime = nowDay.with(TemporalAdjusters.lastDayOfYear()).with(LocalTime.MAX).withNano(999999000).format(dtf);
|
endTime = nowDay.with(TemporalAdjusters.lastDayOfYear()).with(LocalTime.MAX).withNano(999999000).format(yeardtf);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
curYear = screenSummaryVo.getStartTime();
|
curYear = screenSummaryVo.getStartTime();
|
||||||
|
if(IotConstants.year_months.equals(screenSummaryVo.getSummrayMode())){//如果传入时间非本年,重新计算年数据
|
||||||
|
if(!curYear.equals(nowDay.format(yeardtf))){
|
||||||
|
wholeTime = new ArrayList<>();
|
||||||
|
for (Integer i = 1; i <= 12; i++) {
|
||||||
|
wholeTime.add(curYear+"-"+String.format("%02d", i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//使用数据的数量,默认
|
||||||
|
int todayDataCounts = 0;
|
||||||
|
//需要拼接的数量
|
||||||
|
int yesterDataCounts = 0;
|
||||||
|
if(IotConstants.day_hours.equals(screenSummaryVo.getSummrayMode())) {//日需要24数据
|
||||||
|
todayDataCounts =24;
|
||||||
|
}else if(IotConstants.month_days.equals(screenSummaryVo.getSummrayMode())){//月需要数据量
|
||||||
|
LocalDate curDateMark = LocalDate.parse(startTime+"-01",daydtf);
|
||||||
|
todayDataCounts = curDateMark.with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(stationList!=null&&stationList.size()>0){
|
if(stationList!=null&&stationList.size()>0){
|
||||||
|
|
@ -649,57 +667,9 @@ public class BigScreenController {
|
||||||
List<Double> avgNH = new ArrayList<>();//填充数据用
|
List<Double> avgNH = new ArrayList<>();//填充数据用
|
||||||
List<Double> avgCOD = new ArrayList<>();//填充数据用
|
List<Double> avgCOD = new ArrayList<>();//填充数据用
|
||||||
if(IotConstants.day_hours.equals(screenSummaryVo.getSummrayMode()) || IotConstants.month_days.equals(screenSummaryVo.getSummrayMode())) {//小时、日
|
if(IotConstants.day_hours.equals(screenSummaryVo.getSummrayMode()) || IotConstants.month_days.equals(screenSummaryVo.getSummrayMode())) {//小时、日
|
||||||
VOWaterSurvIntegrateParam voSurvIntegrateParam = new VOWaterSurvIntegrateParam();
|
screenIndexSummaryDetailVo = commonService.processWaterDataSummary(screenSummaryVo,orientIdList,startTime,endTime);
|
||||||
voSurvIntegrateParam.setDeployIds(orientIdList);
|
|
||||||
voSurvIntegrateParam.setSummrayMode(screenSummaryVo.getSummrayMode());
|
|
||||||
voSurvIntegrateParam.setStartTime(startTime);
|
|
||||||
voSurvIntegrateParam.setEndTime(endTime);
|
|
||||||
VOSurvIntegrateResult survIntegrateResult = commonService.WaterIntegrateStatistic(voSurvIntegrateParam);
|
|
||||||
//数据
|
|
||||||
LinkedHashMap<String, List<Double>> maps = new LinkedHashMap<>();
|
|
||||||
LinkedHashMap<String,List<String>> survResult = survIntegrateResult.getSurvResult();
|
|
||||||
List<String> tnDatas = survResult.get(PollutionEnum.dataWaterTn.getCode());
|
|
||||||
List<String> tpDatas = survResult.get(PollutionEnum.dataWaterTp.getCode());
|
|
||||||
List<String> noDatas =survResult.get(PollutionEnum.dataWaterNo.getCode());
|
|
||||||
List<String> codDatas =survResult.get(PollutionEnum.dataWaterCod.getCode());
|
|
||||||
List<String> nhDatas = survResult.get(PollutionEnum.dataWaterNh.getCode());
|
|
||||||
if(tnDatas!=null) {
|
|
||||||
avgTN = tnDatas.stream()
|
|
||||||
.map(Double::parseDouble)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
if(tpDatas!=null) {
|
|
||||||
avgTP = tpDatas.stream()
|
|
||||||
.map(Double::parseDouble)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
if(noDatas!=null) {
|
|
||||||
avgNO = noDatas.stream()
|
|
||||||
.map(Double::parseDouble)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
if(codDatas!=null) {
|
|
||||||
avgCOD = codDatas.stream()
|
|
||||||
.map(Double::parseDouble)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
if(nhDatas!=null) {
|
|
||||||
avgNH = nhDatas.stream()
|
|
||||||
.map(Double::parseDouble)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
maps.put(ScreenIndexSummaryEnum.TNSummry.getDesc(),avgTN);
|
|
||||||
maps.put(ScreenIndexSummaryEnum.TPSummry.getDesc(),avgTP);
|
|
||||||
maps.put(ScreenIndexSummaryEnum.NOSummry.getDesc(),avgNO);
|
|
||||||
maps.put(ScreenIndexSummaryEnum.CODSummry.getDesc(),avgCOD);
|
|
||||||
maps.put(ScreenIndexSummaryEnum.NHSummry.getDesc(),avgNH);
|
|
||||||
|
|
||||||
screenIndexSummaryDetailVo.setDatas(maps);
|
|
||||||
//时间
|
|
||||||
screenIndexSummaryDetailVo.setDateStr(survIntegrateResult.getIndexs());
|
|
||||||
}else if(IotConstants.year_months.equals(screenSummaryVo.getSummrayMode())){
|
}else if(IotConstants.year_months.equals(screenSummaryVo.getSummrayMode())){
|
||||||
screenIndexSummaryDetailVo.setDateStr(wholeTime);
|
screenIndexSummaryDetailVo.setDateStr(wholeTime);
|
||||||
if(curMonth>0) {//如果本年是一月份,则只需要查询去年的
|
|
||||||
List<OrientDataTrans> orientSummry = hisdataOrientwaterService.getMonthSummry(orientList,curYear);
|
List<OrientDataTrans> orientSummry = hisdataOrientwaterService.getMonthSummry(orientList,curYear);
|
||||||
for (int i= 0;i<curMonth;i++) {
|
for (int i= 0;i<curMonth;i++) {
|
||||||
avgTN.add(orientSummry.get(i).getAvgTN());
|
avgTN.add(orientSummry.get(i).getAvgTN());
|
||||||
|
|
@ -709,7 +679,6 @@ public class BigScreenController {
|
||||||
avgNH.add(0D);
|
avgNH.add(0D);
|
||||||
avgCOD.add(0D);
|
avgCOD.add(0D);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if(isNeedLastYear){
|
if(isNeedLastYear){
|
||||||
List<OrientDataTrans> lastYearOrientSummry = hisdataOrientwaterService.getMonthSummry(orientList,lastYear);
|
List<OrientDataTrans> lastYearOrientSummry = hisdataOrientwaterService.getMonthSummry(orientList,lastYear);
|
||||||
List<Double> lastavgTN = new ArrayList<>();
|
List<Double> lastavgTN = new ArrayList<>();
|
||||||
|
|
@ -740,9 +709,7 @@ public class BigScreenController {
|
||||||
avgNH = lastavgNH;
|
avgNH = lastavgNH;
|
||||||
avgCOD = lastavgCOD;
|
avgCOD = lastavgCOD;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// StationSummry stationSummry =new StationSummry();
|
|
||||||
LinkedHashMap<String, List<Double>> maps = new LinkedHashMap<>();
|
LinkedHashMap<String, List<Double>> maps = new LinkedHashMap<>();
|
||||||
maps.put(ScreenIndexSummaryEnum.TNSummry.getDesc(),avgTN);
|
maps.put(ScreenIndexSummaryEnum.TNSummry.getDesc(),avgTN);
|
||||||
maps.put(ScreenIndexSummaryEnum.TPSummry.getDesc(),avgTP);
|
maps.put(ScreenIndexSummaryEnum.TPSummry.getDesc(),avgTP);
|
||||||
|
|
@ -751,6 +718,8 @@ public class BigScreenController {
|
||||||
maps.put(ScreenIndexSummaryEnum.NHSummry.getDesc(),avgNH);
|
maps.put(ScreenIndexSummaryEnum.NHSummry.getDesc(),avgNH);
|
||||||
|
|
||||||
screenIndexSummaryDetailVo.setDatas(maps);
|
screenIndexSummaryDetailVo.setDatas(maps);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
screenIndexSummaryDetailVo.setGroupId(survStationInfo.getGroupId());
|
screenIndexSummaryDetailVo.setGroupId(survStationInfo.getGroupId());
|
||||||
screenIndexSummaryDetailVo.setGroupName(survStationInfo.getGroupName());
|
screenIndexSummaryDetailVo.setGroupName(survStationInfo.getGroupName());
|
||||||
|
|
@ -766,57 +735,9 @@ public class BigScreenController {
|
||||||
|
|
||||||
List<Double> avgNO = new ArrayList<>(); //填充数据用
|
List<Double> avgNO = new ArrayList<>(); //填充数据用
|
||||||
if(IotConstants.day_hours.equals(screenSummaryVo.getSummrayMode()) || IotConstants.month_days.equals(screenSummaryVo.getSummrayMode())) {//小时、日
|
if(IotConstants.day_hours.equals(screenSummaryVo.getSummrayMode()) || IotConstants.month_days.equals(screenSummaryVo.getSummrayMode())) {//小时、日
|
||||||
VOWaterSurvIntegrateParam voSurvIntegrateParam = new VOWaterSurvIntegrateParam();
|
screenIndexSummaryDetailVo = commonService.processWaterDataSummary(screenSummaryVo,liveIdList,startTime,endTime);
|
||||||
voSurvIntegrateParam.setDeployIds(liveIdList);
|
|
||||||
voSurvIntegrateParam.setSummrayMode(screenSummaryVo.getSummrayMode());
|
|
||||||
voSurvIntegrateParam.setStartTime(startTime);
|
|
||||||
voSurvIntegrateParam.setEndTime(endTime);
|
|
||||||
VOSurvIntegrateResult survIntegrateResult = commonService.WaterIntegrateStatistic(voSurvIntegrateParam);
|
|
||||||
//数据
|
|
||||||
LinkedHashMap<String, List<Double>> maps = new LinkedHashMap<>();
|
|
||||||
LinkedHashMap<String,List<String>> survResult = survIntegrateResult.getSurvResult();
|
|
||||||
List<String> tnDatas = survResult.get(PollutionEnum.dataWaterTn.getCode());
|
|
||||||
List<String> tpDatas = survResult.get(PollutionEnum.dataWaterTp.getCode());
|
|
||||||
List<String> noDatas =survResult.get(PollutionEnum.dataWaterNo.getCode());
|
|
||||||
List<String> codDatas =survResult.get(PollutionEnum.dataWaterCod.getCode());
|
|
||||||
List<String> nhDatas = survResult.get(PollutionEnum.dataWaterNh.getCode());
|
|
||||||
if(tnDatas!=null) {
|
|
||||||
avgTN = tnDatas.stream()
|
|
||||||
.map(Double::parseDouble)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
if(tpDatas!=null) {
|
|
||||||
avgTP = tpDatas.stream()
|
|
||||||
.map(Double::parseDouble)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
if(noDatas!=null) {
|
|
||||||
avgNO = noDatas.stream()
|
|
||||||
.map(Double::parseDouble)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
if(codDatas!=null) {
|
|
||||||
avgCOD = codDatas.stream()
|
|
||||||
.map(Double::parseDouble)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
if(nhDatas!=null) {
|
|
||||||
avgNH = nhDatas.stream()
|
|
||||||
.map(Double::parseDouble)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
maps.put(ScreenIndexSummaryEnum.TNSummry.getDesc(),avgTN);
|
|
||||||
maps.put(ScreenIndexSummaryEnum.TPSummry.getDesc(),avgTP);
|
|
||||||
maps.put(ScreenIndexSummaryEnum.NOSummry.getDesc(),avgNO);
|
|
||||||
maps.put(ScreenIndexSummaryEnum.CODSummry.getDesc(),avgCOD);
|
|
||||||
maps.put(ScreenIndexSummaryEnum.NHSummry.getDesc(),avgNH);
|
|
||||||
|
|
||||||
screenIndexSummaryDetailVo.setDatas(maps);
|
|
||||||
//时间
|
|
||||||
screenIndexSummaryDetailVo.setDateStr(survIntegrateResult.getIndexs());
|
|
||||||
}else if(IotConstants.year_months.equals(screenSummaryVo.getSummrayMode())) {
|
}else if(IotConstants.year_months.equals(screenSummaryVo.getSummrayMode())) {
|
||||||
screenIndexSummaryDetailVo.setDateStr(wholeTime);
|
screenIndexSummaryDetailVo.setDateStr(wholeTime);
|
||||||
if (curMonth > 0) {//如果本年是一月份,则只需要查询去年的
|
|
||||||
List<LiveDataTrans> liveSummry = hisdataLivestockwaterService.getMonthSummry(liveList, curYear);
|
List<LiveDataTrans> liveSummry = hisdataLivestockwaterService.getMonthSummry(liveList, curYear);
|
||||||
for (int i = 0; i < curMonth; i++) {
|
for (int i = 0; i < curMonth; i++) {
|
||||||
avgTN.add(liveSummry.get(i).getAvgTN());
|
avgTN.add(liveSummry.get(i).getAvgTN());
|
||||||
|
|
@ -826,7 +747,6 @@ public class BigScreenController {
|
||||||
|
|
||||||
avgNO.add(0D);
|
avgNO.add(0D);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (isNeedLastYear) {
|
if (isNeedLastYear) {
|
||||||
List<LiveDataTrans> lastYearSummry = hisdataLivestockwaterService.getMonthSummry(liveList, lastYear);
|
List<LiveDataTrans> lastYearSummry = hisdataLivestockwaterService.getMonthSummry(liveList, lastYear);
|
||||||
|
|
@ -858,7 +778,7 @@ public class BigScreenController {
|
||||||
avgCOD = lastavgCOD;
|
avgCOD = lastavgCOD;
|
||||||
avgNO = lastavgNO;
|
avgNO = lastavgNO;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
LinkedHashMap<String, List<Double>> maps = new LinkedHashMap<>();
|
LinkedHashMap<String, List<Double>> maps = new LinkedHashMap<>();
|
||||||
|
|
||||||
maps.put(ScreenIndexSummaryEnum.TNSummry.getDesc(),avgTN);
|
maps.put(ScreenIndexSummaryEnum.TNSummry.getDesc(),avgTN);
|
||||||
|
|
@ -868,6 +788,8 @@ public class BigScreenController {
|
||||||
maps.put(ScreenIndexSummaryEnum.NHSummry.getDesc(),avgNH);
|
maps.put(ScreenIndexSummaryEnum.NHSummry.getDesc(),avgNH);
|
||||||
|
|
||||||
screenIndexSummaryDetailVo.setDatas(maps);
|
screenIndexSummaryDetailVo.setDatas(maps);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
screenIndexSummaryDetailVo.setGroupId(survStationInfo.getGroupId());
|
screenIndexSummaryDetailVo.setGroupId(survStationInfo.getGroupId());
|
||||||
screenIndexSummaryDetailVo.setGroupName(survStationInfo.getGroupName());
|
screenIndexSummaryDetailVo.setGroupName(survStationInfo.getGroupName());
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import org.apache.commons.lang3.StringUtils;
|
||||||
import org.jeecg.common.constant.IotConstants;
|
import org.jeecg.common.constant.IotConstants;
|
||||||
import org.jeecg.common.constant.PollutionConstants;
|
import org.jeecg.common.constant.PollutionConstants;
|
||||||
import org.jeecg.common.constant.enums.PollutionEnum;
|
import org.jeecg.common.constant.enums.PollutionEnum;
|
||||||
|
import org.jeecg.common.constant.enums.ScreenIndexSummaryEnum;
|
||||||
import org.jeecg.common.entity.ScEquZhibiao;
|
import org.jeecg.common.entity.ScEquZhibiao;
|
||||||
import org.jeecg.common.entity.SurvConfig;
|
import org.jeecg.common.entity.SurvConfig;
|
||||||
import org.jeecg.common.entity.SurvDeviceDeploy;
|
import org.jeecg.common.entity.SurvDeviceDeploy;
|
||||||
|
|
@ -14,6 +15,8 @@ import org.jeecg.common.iot.common.*;
|
||||||
import org.jeecg.common.util.DateTimeRangeUtils;
|
import org.jeecg.common.util.DateTimeRangeUtils;
|
||||||
import org.jeecg.common.util.ReflectionUtils;
|
import org.jeecg.common.util.ReflectionUtils;
|
||||||
import org.jeecg.common.vo.CommonDataTrans;
|
import org.jeecg.common.vo.CommonDataTrans;
|
||||||
|
import org.jeecg.common.vo.statistic.ScreenIndexSummaryDetailVo;
|
||||||
|
import org.jeecg.common.vo.statistic.ScreenSummaryVo;
|
||||||
import org.jeecg.modules.appmana.service.*;
|
import org.jeecg.modules.appmana.service.*;
|
||||||
import org.jeecg.modules.appmana.utils.CommonUtils;
|
import org.jeecg.modules.appmana.utils.CommonUtils;
|
||||||
import org.jeecg.modules.appmana.utils.Iotutils;
|
import org.jeecg.modules.appmana.utils.Iotutils;
|
||||||
|
|
@ -23,6 +26,8 @@ import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
|
|
@ -1123,6 +1128,200 @@ public class IotCommonServiceImpl {
|
||||||
result.setLiveData(commonDataTransList);
|
result.setLiveData(commonDataTransList);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
public ScreenIndexSummaryDetailVo processWaterDataSummary(ScreenSummaryVo screenSummaryVo,List<String> deviceList,String startTime,String endTime){
|
||||||
|
ScreenIndexSummaryDetailVo screenIndexSummaryDetailVo = new ScreenIndexSummaryDetailVo();
|
||||||
|
List<Double> avgTN = new ArrayList<>();
|
||||||
|
List<Double> avgTP = new ArrayList<>();
|
||||||
|
List<Double> avgNO = new ArrayList<>();
|
||||||
|
|
||||||
|
List<Double> avgNH = new ArrayList<>();//填充数据用
|
||||||
|
List<Double> avgCOD = new ArrayList<>();//填充数据用
|
||||||
|
|
||||||
|
VOWaterSurvIntegrateParam voSurvIntegrateParam = new VOWaterSurvIntegrateParam();
|
||||||
|
voSurvIntegrateParam.setDeployIds(deviceList);
|
||||||
|
voSurvIntegrateParam.setSummrayMode(screenSummaryVo.getSummrayMode());
|
||||||
|
voSurvIntegrateParam.setStartTime(startTime);
|
||||||
|
voSurvIntegrateParam.setEndTime(endTime);
|
||||||
|
VOSurvIntegrateResult survIntegrateResult = WaterIntegrateStatistic(voSurvIntegrateParam);
|
||||||
|
if(IotConstants.day_hours.equals(screenSummaryVo.getSummrayMode())) {
|
||||||
|
//处理时间格式
|
||||||
|
survIntegrateResult.setIndexs(processTime(survIntegrateResult.getIndexs(),"yyyy-MM-dd HH","H时"));
|
||||||
|
}
|
||||||
|
|
||||||
|
//数据
|
||||||
|
LinkedHashMap<String, List<Double>> maps = new LinkedHashMap<>();
|
||||||
|
LinkedHashMap<String,List<String>> survResult = survIntegrateResult.getSurvResult();
|
||||||
|
List<String> tnDatas = new ArrayList<>();
|
||||||
|
List<String> tpDatas = new ArrayList<>();
|
||||||
|
List<String> noDatas = new ArrayList<>();
|
||||||
|
List<String> codDatas = new ArrayList<>();
|
||||||
|
List<String> nhDatas = new ArrayList<>();
|
||||||
|
List<String> timeList = new ArrayList<>();
|
||||||
|
LocalDateTime nowDay = LocalDateTime.now();
|
||||||
|
DateTimeFormatter daydtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||||
|
DateTimeFormatter monthdtf = DateTimeFormatter.ofPattern("yyyy-MM");
|
||||||
|
DateTimeFormatter yeardtf = DateTimeFormatter.ofPattern("yyyy");
|
||||||
|
|
||||||
|
//使用数据的数量,默认
|
||||||
|
int todayDataCounts = 0;
|
||||||
|
//需要拼接的数量
|
||||||
|
int yesterDataCounts = 0;
|
||||||
|
if(IotConstants.day_hours.equals(screenSummaryVo.getSummrayMode())) {//日需要24数据
|
||||||
|
todayDataCounts =24;
|
||||||
|
}else if(IotConstants.month_days.equals(screenSummaryVo.getSummrayMode())){//月需要数据量
|
||||||
|
LocalDate curDateMark = LocalDate.parse(startTime+"-01",daydtf);
|
||||||
|
todayDataCounts = curDateMark.with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(IotConstants.day_hours.equals(screenSummaryVo.getSummrayMode())){//检查是否是今天
|
||||||
|
if(nowDay.format(daydtf).equals(startTime)){//如果查询是今天,再查询一次昨天,拼接为24小时
|
||||||
|
LocalDateTime yesterday = nowDay.minusDays(1);
|
||||||
|
|
||||||
|
todayDataCounts = nowDay.getHour()+1;//0点开始,故+1
|
||||||
|
yesterDataCounts = todayDataCounts;
|
||||||
|
String newTimes = yesterday.format(daydtf);
|
||||||
|
voSurvIntegrateParam.setStartTime(newTimes);
|
||||||
|
voSurvIntegrateParam.setEndTime(newTimes);
|
||||||
|
VOSurvIntegrateResult yesterData = WaterIntegrateStatistic(voSurvIntegrateParam);
|
||||||
|
LinkedHashMap<String,List<String>> yesterResult = yesterData.getSurvResult();
|
||||||
|
//处理时间格式
|
||||||
|
yesterData.setIndexs(processTime(yesterData.getIndexs(),"yyyy-MM-dd HH","H时"));
|
||||||
|
List<String> y1 = yesterResult.get(PollutionEnum.dataWaterTn.getCode());
|
||||||
|
if(y1!=null){
|
||||||
|
tnDatas.addAll(y1.subList(yesterDataCounts,y1.size()));
|
||||||
|
}
|
||||||
|
List<String> y2= yesterResult.get(PollutionEnum.dataWaterTp.getCode());
|
||||||
|
if(y2!=null){
|
||||||
|
tpDatas.addAll(y2.subList(yesterDataCounts,y2.size()));
|
||||||
|
}
|
||||||
|
List<String> y3 = yesterResult.get(PollutionEnum.dataWaterNo.getCode());
|
||||||
|
if(y3!=null){
|
||||||
|
noDatas.addAll(y3.subList(yesterDataCounts,y3.size()));
|
||||||
|
}
|
||||||
|
List<String> y4 = yesterResult.get(PollutionEnum.dataWaterCod.getCode());
|
||||||
|
if(y4!=null) {
|
||||||
|
codDatas.addAll(y4.subList(yesterDataCounts,y4.size()));
|
||||||
|
}
|
||||||
|
List<String> y5 = yesterResult.get(PollutionEnum.dataWaterNh.getCode());
|
||||||
|
if(y5!=null){
|
||||||
|
nhDatas.addAll(y5.subList(yesterDataCounts,y5.size()));
|
||||||
|
}
|
||||||
|
timeList.addAll(yesterData.getIndexs().subList(yesterDataCounts,yesterData.getIndexs().size()));
|
||||||
|
}
|
||||||
|
} else if (IotConstants.month_days.equals(screenSummaryVo.getSummrayMode())){//检查是否是本月
|
||||||
|
if(nowDay.format(monthdtf).equals(startTime)){//如果查询是今天,再查询一次昨天,拼接为24小时
|
||||||
|
LocalDateTime yesterMonth = nowDay.minusMonths(1);
|
||||||
|
|
||||||
|
todayDataCounts = nowDay.getDayOfMonth();
|
||||||
|
yesterDataCounts = todayDataCounts;
|
||||||
|
String newTimes = yesterMonth.format(monthdtf);
|
||||||
|
voSurvIntegrateParam.setStartTime(newTimes);
|
||||||
|
voSurvIntegrateParam.setEndTime(newTimes);
|
||||||
|
VOSurvIntegrateResult yesterData = WaterIntegrateStatistic(voSurvIntegrateParam);
|
||||||
|
LinkedHashMap<String,List<String>> yesterResult = yesterData.getSurvResult();
|
||||||
|
List<String> y1 = yesterResult.get(PollutionEnum.dataWaterTn.getCode());
|
||||||
|
if(y1!=null){
|
||||||
|
tnDatas.addAll(y1.subList(yesterDataCounts,y1.size()));
|
||||||
|
}
|
||||||
|
List<String> y2= yesterResult.get(PollutionEnum.dataWaterTp.getCode());
|
||||||
|
if(y2!=null){
|
||||||
|
tpDatas.addAll(y2.subList(yesterDataCounts,y2.size()));
|
||||||
|
}
|
||||||
|
List<String> y3 = yesterResult.get(PollutionEnum.dataWaterNo.getCode());
|
||||||
|
if(y3!=null){
|
||||||
|
noDatas.addAll(y3.subList(yesterDataCounts,y3.size()));
|
||||||
|
}
|
||||||
|
List<String> y4 = yesterResult.get(PollutionEnum.dataWaterCod.getCode());
|
||||||
|
if(y4!=null) {
|
||||||
|
codDatas.addAll(y4.subList(yesterDataCounts,y4.size()));
|
||||||
|
}
|
||||||
|
List<String> y5 = yesterResult.get(PollutionEnum.dataWaterNh.getCode());
|
||||||
|
if(y5!=null){
|
||||||
|
nhDatas.addAll(y5.subList(yesterDataCounts,y5.size()));
|
||||||
|
}
|
||||||
|
timeList.addAll(yesterData.getIndexs().subList(yesterDataCounts,yesterData.getIndexs().size()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
timeList.addAll(survIntegrateResult.getIndexs().subList(0,todayDataCounts));
|
||||||
|
List<String> t1 = survResult.get(PollutionEnum.dataWaterTn.getCode());
|
||||||
|
if(t1!=null){
|
||||||
|
tnDatas.addAll(t1.subList(0,todayDataCounts)) ;
|
||||||
|
}
|
||||||
|
List<String> t2= survResult.get(PollutionEnum.dataWaterTp.getCode());
|
||||||
|
if(t2!=null){
|
||||||
|
tpDatas.addAll(t2.subList(0,todayDataCounts));
|
||||||
|
}
|
||||||
|
List<String> t3 = survResult.get(PollutionEnum.dataWaterNo.getCode());
|
||||||
|
if(t3!=null){
|
||||||
|
noDatas.addAll(t3.subList(0,todayDataCounts));
|
||||||
|
}
|
||||||
|
List<String> t4 = survResult.get(PollutionEnum.dataWaterCod.getCode());
|
||||||
|
if(t4!=null) {
|
||||||
|
codDatas.addAll(t4.subList(0,todayDataCounts));
|
||||||
|
}
|
||||||
|
List<String> t5 = survResult.get(PollutionEnum.dataWaterNh.getCode());
|
||||||
|
if(t5!=null){
|
||||||
|
nhDatas.addAll(t5.subList(0,todayDataCounts));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!tnDatas.isEmpty()) {
|
||||||
|
avgTN = tnDatas.stream()
|
||||||
|
.map(Double::parseDouble)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
if(!tpDatas.isEmpty()) {
|
||||||
|
avgTP = tpDatas.stream()
|
||||||
|
.map(Double::parseDouble)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
if(!noDatas.isEmpty()) {
|
||||||
|
avgNO = noDatas.stream()
|
||||||
|
.map(Double::parseDouble)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
if(!codDatas.isEmpty()) {
|
||||||
|
avgCOD = codDatas.stream()
|
||||||
|
.map(Double::parseDouble)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
if(!nhDatas.isEmpty()) {
|
||||||
|
avgNH = nhDatas.stream()
|
||||||
|
.map(Double::parseDouble)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
maps.put(ScreenIndexSummaryEnum.TNSummry.getDesc(),avgTN);
|
||||||
|
maps.put(ScreenIndexSummaryEnum.TPSummry.getDesc(),avgTP);
|
||||||
|
maps.put(ScreenIndexSummaryEnum.NOSummry.getDesc(),avgNO);
|
||||||
|
maps.put(ScreenIndexSummaryEnum.CODSummry.getDesc(),avgCOD);
|
||||||
|
maps.put(ScreenIndexSummaryEnum.NHSummry.getDesc(),avgNH);
|
||||||
|
|
||||||
|
screenIndexSummaryDetailVo.setDatas(maps);
|
||||||
|
//时间
|
||||||
|
screenIndexSummaryDetailVo.setDateStr(timeList);
|
||||||
|
|
||||||
|
return screenIndexSummaryDetailVo;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 统一处理时间格式
|
||||||
|
*/
|
||||||
|
List<String> processTime(List<String> timeList,String timeformat,String transtoformat){
|
||||||
|
List<String> result = new ArrayList<>();
|
||||||
|
if(timeList!=null && !timeList.isEmpty()){
|
||||||
|
SimpleDateFormat s1= new SimpleDateFormat(timeformat);
|
||||||
|
SimpleDateFormat s2= new SimpleDateFormat(transtoformat);
|
||||||
|
for (String s : timeList) {
|
||||||
|
try{
|
||||||
|
String newTime = s2.format(s1.parse(s));
|
||||||
|
result.add(newTime);
|
||||||
|
}catch (ParseException e){
|
||||||
|
e.printStackTrace();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,12 +35,12 @@ public class test {
|
||||||
s1.add("3");
|
s1.add("3");
|
||||||
s1.add("4");
|
s1.add("4");
|
||||||
s1.add("5");
|
s1.add("5");
|
||||||
List<String> s2 = new ArrayList<>();
|
// List<String> s2 = new ArrayList<>();
|
||||||
s2.add("1");
|
// s2.add("1");
|
||||||
s2.add("2");
|
// s2.add("2");
|
||||||
s2.addAll(s1);
|
// s2.addAll(s1);
|
||||||
s1 = s2;
|
// s1 = s2;
|
||||||
System.out.println( s1);
|
System.out.println( s1.subList(1,s1.size()));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue