diff --git a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/controller/BigScreenController.java b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/controller/BigScreenController.java index 9c3f4d3..33e8826 100644 --- a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/controller/BigScreenController.java +++ b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/controller/BigScreenController.java @@ -15,16 +15,21 @@ import org.jeecg.common.constant.PollutionConstants; import org.jeecg.common.constant.enums.ScreenIndexSummaryEnum; import org.jeecg.common.entity.*; import org.jeecg.common.constant.enums.PollutionEnum; +import org.jeecg.common.iot.common.VOSurvIntegrateOrientDetail; +import org.jeecg.common.iot.common.VOSurvIntegrateResult; +import org.jeecg.common.iot.common.VOWaterSurvIntegrateParam; import org.jeecg.common.util.R; import org.jeecg.common.util.oConvertUtils; import org.jeecg.common.vo.*; 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.impl.IotCommonServiceImpl; import org.jeecg.modules.appmana.utils.Iotutils; import org.jeecg.modules.appmana.utils.YSUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.http.*; import org.springframework.util.LinkedMultiValueMap; @@ -37,7 +42,10 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import java.time.temporal.TemporalAdjusters; import java.util.*; +import java.util.stream.Collectors; @Api(tags="大屏接口") @RestController @@ -110,6 +118,9 @@ public class BigScreenController { @Autowired private ISurvConfigService survConfigService; + @Autowired + @Lazy + private IotCommonServiceImpl commonService; @ApiOperation("获取萤石云token") @PostMapping(value = "/getYsToken") @@ -560,6 +571,36 @@ public class BigScreenController { wholeTime=tempWholeTime; } + //默认日数据 + if(StringUtils.isBlank(screenSummaryVo.getSummrayMode())){ + screenSummaryVo.setSummrayMode(IotConstants.day_hours); + } + LocalDateTime nowDay = LocalDateTime.now(); + String startTime = screenSummaryVo.getStartTime(); + String endTime = screenSummaryVo.getEndTime(); + LocalDateTime startDay = null; + + if(StringUtils.isBlank(screenSummaryVo.getStartTime())){ + if(IotConstants.day_hours.equals(screenSummaryVo.getSummrayMode())){//默认日 + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + startDay = LocalDateTime.of(nowDay.toLocalDate(),LocalTime.MIN); + startTime = startDay.format(dtf); + endTime = LocalDateTime.of(nowDay.toLocalDate(),LocalTime.MAX).withNano(999999000).format(dtf); + }else if(IotConstants.month_days.equals(screenSummaryVo.getSummrayMode())){ + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM"); + startDay = nowDay.with(TemporalAdjusters.firstDayOfMonth()).with(LocalTime.MIN); + startTime = startDay.format(dtf); + endTime = nowDay.with(TemporalAdjusters.lastDayOfMonth()).with(LocalTime.MAX).withNano(999999000).format(dtf); + }else if(IotConstants.year_months.equals(screenSummaryVo.getSummrayMode())){ + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy"); + startDay = nowDay.with(TemporalAdjusters.firstDayOfYear()).with(LocalTime.MIN); + startTime = startDay.format(dtf); + endTime = nowDay.with(TemporalAdjusters.lastDayOfYear()).with(LocalTime.MAX).withNano(999999000).format(dtf); + } + }else{ + curYear = screenSummaryVo.getStartTime(); + } + if(stationList!=null&&stationList.size()>0){ // Map> deviceMap = new HashMap<>(); for (SurvStationInfo survStationInfo : stationList) { @@ -570,6 +611,8 @@ public class BigScreenController { List soilList = new ArrayList<>(); List orientList = new ArrayList<>(); List liveList = new ArrayList<>(); + List orientIdList = new ArrayList<>(); + List liveIdList = new ArrayList<>(); for (SurvDeviceDeploy survDeviceDeploy : survStationInfo.getDeviceList()) { if(PollutionConstants.SOIL_SURV.equals(survDeviceDeploy.getDeployType())){//土壤设备 soilList.add(survDeviceDeploy.getDeployCode()); @@ -577,8 +620,10 @@ public class BigScreenController { airList.add(survDeviceDeploy.getDeployCode()); }else if(PollutionConstants.WATER_ORIENT.equals(survDeviceDeploy.getDeployType())) {//面源 orientList.add(survDeviceDeploy.getDeployCode()); + orientIdList.add(survDeviceDeploy.getId()); }else if(PollutionConstants.WATER_LIVE.equals(survDeviceDeploy.getDeployType())) {//畜禽 liveList.add(survDeviceDeploy.getDeployCode()); + liveIdList.add(survDeviceDeploy.getId()); }else if(PollutionConstants.CAMERA.equals(survDeviceDeploy.getDeployType())) {//摄像头 //只保留摄像头的数据 // remainList.add(survDeviceDeploy); @@ -603,6 +648,57 @@ public class BigScreenController { List avgNH = new ArrayList<>();//填充数据用 List avgCOD = new ArrayList<>();//填充数据用 + if(IotConstants.day_hours.equals(screenSummaryVo.getSummrayMode()) || IotConstants.month_days.equals(screenSummaryVo.getSummrayMode())) {//小时、日 + VOWaterSurvIntegrateParam voSurvIntegrateParam = new VOWaterSurvIntegrateParam(); + voSurvIntegrateParam.setDeployIds(orientIdList); + voSurvIntegrateParam.setSummrayMode(screenSummaryVo.getSummrayMode()); + voSurvIntegrateParam.setStartTime(startTime); + voSurvIntegrateParam.setEndTime(endTime); + VOSurvIntegrateResult survIntegrateResult = commonService.WaterIntegrateStatistic(voSurvIntegrateParam); + //数据 + LinkedHashMap> maps = new LinkedHashMap<>(); + LinkedHashMap> survResult = survIntegrateResult.getSurvResult(); + List tnDatas = survResult.get(PollutionEnum.dataWaterTn.getCode()); + List tpDatas = survResult.get(PollutionEnum.dataWaterTp.getCode()); + List noDatas =survResult.get(PollutionEnum.dataWaterNo.getCode()); + List codDatas =survResult.get(PollutionEnum.dataWaterCod.getCode()); + List 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())){ + screenIndexSummaryDetailVo.setDateStr(wholeTime); if(curMonth>0) {//如果本年是一月份,则只需要查询去年的 List orientSummry = hisdataOrientwaterService.getMonthSummry(orientList,curYear); for (int i= 0;i> maps = new LinkedHashMap<>(); maps.put(ScreenIndexSummaryEnum.TNSummry.getDesc(),avgTN); @@ -653,13 +751,13 @@ public class BigScreenController { maps.put(ScreenIndexSummaryEnum.NHSummry.getDesc(),avgNH); screenIndexSummaryDetailVo.setDatas(maps); - screenIndexSummaryDetailVo.setDateStr(wholeTime); + screenIndexSummaryDetailVo.setGroupId(survStationInfo.getGroupId()); screenIndexSummaryDetailVo.setGroupName(survStationInfo.getGroupName()); screenIndexSummaryDetailVo.setStationName(survStationInfo.getStationName()); results.add(screenIndexSummaryDetailVo); } - if(liveList.size()>0){ + if(liveList.size()>0) { List avgTN = new ArrayList<>(); List avgTP = new ArrayList<>(); @@ -667,47 +765,99 @@ public class BigScreenController { List avgCOD = new ArrayList<>(); List avgNO = new ArrayList<>(); //填充数据用 - if(curMonth>0) {//如果本年是一月份,则只需要查询去年的 - List liveSummry = hisdataLivestockwaterService.getMonthSummry(liveList,curYear); - for (int i= 0;i> maps = new LinkedHashMap<>(); + LinkedHashMap> survResult = survIntegrateResult.getSurvResult(); + List tnDatas = survResult.get(PollutionEnum.dataWaterTn.getCode()); + List tpDatas = survResult.get(PollutionEnum.dataWaterTp.getCode()); + List noDatas =survResult.get(PollutionEnum.dataWaterNo.getCode()); + List codDatas =survResult.get(PollutionEnum.dataWaterCod.getCode()); + List nhDatas = survResult.get(PollutionEnum.dataWaterNh.getCode()); + if(tnDatas!=null) { + avgTN = tnDatas.stream() + .map(Double::parseDouble) + .collect(Collectors.toList()); } - } - - if(isNeedLastYear){ - List lastYearSummry = hisdataLivestockwaterService.getMonthSummry(liveList,lastYear); - List lastavgTN = new ArrayList<>(); - List lastavgTP = new ArrayList<>(); - List lastavgNH = new ArrayList<>(); - List lastavgCOD = new ArrayList<>(); - - List lastavgNO = new ArrayList<>(); //填充数据用 - int startMonth = 12-lastYearMonth; - for (int j= startMonth;j<12;j++) { - lastavgTN.add(lastYearSummry.get(j).getAvgTN()); - lastavgTP.add(lastYearSummry.get(j).getAvgTP()); - lastavgNH.add(lastYearSummry.get(j).getAvgNH()); - lastavgCOD.add(lastYearSummry.get(j).getAvgCOD()); - - lastavgNO.add(0D); + if(tpDatas!=null) { + avgTP = tpDatas.stream() + .map(Double::parseDouble) + .collect(Collectors.toList()); } - lastavgTN.addAll(avgTN); - lastavgTP.addAll(avgTP); - lastavgNH.addAll(avgNH); - lastavgCOD.addAll(avgCOD); + 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); - lastavgNO.addAll(avgNO); + screenIndexSummaryDetailVo.setDatas(maps); + //时间 + screenIndexSummaryDetailVo.setDateStr(survIntegrateResult.getIndexs()); + }else if(IotConstants.year_months.equals(screenSummaryVo.getSummrayMode())) { + screenIndexSummaryDetailVo.setDateStr(wholeTime); + if (curMonth > 0) {//如果本年是一月份,则只需要查询去年的 + List liveSummry = hisdataLivestockwaterService.getMonthSummry(liveList, curYear); + for (int i = 0; i < curMonth; i++) { + avgTN.add(liveSummry.get(i).getAvgTN()); + avgTP.add(liveSummry.get(i).getAvgTP()); + avgNH.add(liveSummry.get(i).getAvgNH()); + avgCOD.add(liveSummry.get(i).getAvgCOD()); - avgTN = lastavgTN; - avgTP = lastavgTP; - avgNH = lastavgNH; - avgCOD = lastavgCOD; - avgNO = lastavgNO; + avgNO.add(0D); + } + } + + if (isNeedLastYear) { + List lastYearSummry = hisdataLivestockwaterService.getMonthSummry(liveList, lastYear); + List lastavgTN = new ArrayList<>(); + List lastavgTP = new ArrayList<>(); + List lastavgNH = new ArrayList<>(); + List lastavgCOD = new ArrayList<>(); + + List lastavgNO = new ArrayList<>(); //填充数据用 + int startMonth = 12 - lastYearMonth; + for (int j = startMonth; j < 12; j++) { + lastavgTN.add(lastYearSummry.get(j).getAvgTN()); + lastavgTP.add(lastYearSummry.get(j).getAvgTP()); + lastavgNH.add(lastYearSummry.get(j).getAvgNH()); + lastavgCOD.add(lastYearSummry.get(j).getAvgCOD()); + + lastavgNO.add(0D); + } + lastavgTN.addAll(avgTN); + lastavgTP.addAll(avgTP); + lastavgNH.addAll(avgNH); + lastavgCOD.addAll(avgCOD); + + lastavgNO.addAll(avgNO); + + avgTN = lastavgTN; + avgTP = lastavgTP; + avgNH = lastavgNH; + avgCOD = lastavgCOD; + avgNO = lastavgNO; + } } LinkedHashMap> maps = new LinkedHashMap<>(); @@ -718,7 +868,7 @@ public class BigScreenController { maps.put(ScreenIndexSummaryEnum.NHSummry.getDesc(),avgNH); screenIndexSummaryDetailVo.setDatas(maps); - screenIndexSummaryDetailVo.setDateStr(wholeTime); + screenIndexSummaryDetailVo.setGroupId(survStationInfo.getGroupId()); screenIndexSummaryDetailVo.setGroupName(survStationInfo.getGroupName()); screenIndexSummaryDetailVo.setStationName(survStationInfo.getStationName()); diff --git a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/controller/BigScreenControllerP2.java b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/controller/BigScreenControllerP2.java index c49554c..342f4fe 100644 --- a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/controller/BigScreenControllerP2.java +++ b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/controller/BigScreenControllerP2.java @@ -59,7 +59,7 @@ public class BigScreenControllerP2 { isSearch=Boolean.TRUE; } else { //默认今天 - startDateTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN).withNano(999999000); + startDateTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN); endDateTime = LocalDateTime.of(LocalDate.now(), LocalTime.MAX).withNano(999999000); } List dataList = new ArrayList<>(); diff --git a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/mapper/IOTStatisticMapper.java b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/mapper/IOTStatisticMapper.java new file mode 100644 index 0000000..c5b3b26 --- /dev/null +++ b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/mapper/IOTStatisticMapper.java @@ -0,0 +1,34 @@ +package org.jeecg.modules.appmana.mapper; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.common.vo.VOHisFormResult; +import org.jeecg.common.vo.statistic.DTOIotCusSummray; +import org.jeecg.common.vo.statistic.DTOIotSummray; +import org.jeecg.common.vo.statistic.StringFormResultVo; +import org.jeecg.common.vo.statistic.VOHisDateFormResult; + +import java.time.LocalDateTime; +import java.util.List; + +public interface IOTStatisticMapper { + List summaryDayHours(@Param("deployCode") String deployCode, @Param("tables") String tables, @Param("survItem") String survItem, @Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate); + + List summaryByDays(@Param("query") DTOIotSummray dtoIotSummray); + + List summaryYearMonth(@Param("deployCode") String deployCode, @Param("tables") String tables, @Param("survItem") String survItem, @Param("years") String years); + + //公共月每日统计,可跨年 + List summaryByCusDays(@Param("query") DTOIotCusSummray dtoIotCusSummray); + + //公共年月份统计,可跨年 + List summaryYearMonthCusMonth(@Param("query") DTOIotCusSummray dtoIotSummray); + + //公共年度统计,可跨年 + List summaryYearCusMonth(@Param("query")DTOIotCusSummray dtoIotCusSummray); + + List summaryMaxDayHours(@Param("deployCode") String deployCode, @Param("tables") String tables, @Param("survItem") String survItem, @Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate); + + List summaryMaxByDays(@Param("query") DTOIotSummray dtoIotSummray); + + List summaryMaxYearMonth(@Param("deployCode") String deployCode, @Param("tables") String tables, @Param("survItem") String survItem, @Param("years") String years); +} diff --git a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/mapper/xml/IOTStatisticMapper.xml b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/mapper/xml/IOTStatisticMapper.xml new file mode 100644 index 0000000..531f64e --- /dev/null +++ b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/mapper/xml/IOTStatisticMapper.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/ISurvDeviceDeployService.java b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/ISurvDeviceDeployService.java index 860cf3c..bbe99d6 100644 --- a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/ISurvDeviceDeployService.java +++ b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/ISurvDeviceDeployService.java @@ -34,5 +34,5 @@ public interface ISurvDeviceDeployService extends IService { List getByIdsWithZhiBiao(List deployId); - List getAllDevice(List deployTypes); + List getAllDevice(String stationCode,List deployTypes); } diff --git a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/CommonServiceImpl.java b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/CommonServiceImpl.java index fab90ed..2a45b66 100644 --- a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/CommonServiceImpl.java +++ b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/CommonServiceImpl.java @@ -85,7 +85,7 @@ public class CommonServiceImpl { SurvHisdataOrientwater survHisdataOrientwater = hisdataOrientwaterService.getRecentDate(deploy.getDeployCode()); String timeStr = sdf.format(survHisdataOrientwater.getDataDateTime()); LocalDateTime dates = LocalDateTime.parse(timeStr,dateTimeFormatter3); - startDateTime = LocalDateTime.of(dates.toLocalDate(), LocalTime.MIN).withNano(999999000); + startDateTime = LocalDateTime.of(dates.toLocalDate(), LocalTime.MIN); endDateTime = LocalDateTime.of(dates.toLocalDate(),LocalTime.MAX).withNano(999999000); } @@ -103,7 +103,7 @@ public class CommonServiceImpl { SurvHisdataLivestockwater survHisdataLivestockwater = hisdataLivestockwaterService.getRecentDate(deploy.getDeployCode()); String timeStr = sdf.format(survHisdataLivestockwater.getDataDateTime()); LocalDateTime dates = LocalDateTime.parse(timeStr,dateTimeFormatter3); - startDateTime = LocalDateTime.of(dates.toLocalDate(), LocalTime.MIN).withNano(999999000); + startDateTime = LocalDateTime.of(dates.toLocalDate(), LocalTime.MIN); endDateTime = LocalDateTime.of(dates.toLocalDate(),LocalTime.MAX).withNano(999999000); } List liveList = hisdataLivestockwaterService.listByParams(deploy.getDeployCode(),startDateTime,endDateTime); diff --git a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/IotCommonP2ServiceImpl.java b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/IotCommonP2ServiceImpl.java new file mode 100644 index 0000000..229b913 --- /dev/null +++ b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/IotCommonP2ServiceImpl.java @@ -0,0 +1,56 @@ +package org.jeecg.modules.appmana.service.impl; + +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.vo.VOHisFormResult; +import org.jeecg.common.vo.VOHisResult; +import org.jeecg.modules.appmana.mapper.IOTStatisticMapper; +import org.jeecg.modules.appmana.utils.Iotutils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + +@Service +@Slf4j +public class IotCommonP2ServiceImpl { + + @Resource + private IOTStatisticMapper iotStatisticMapper; + + public VOHisResult summaryDayHours(String deployCode, String tableName, String survItem, String dateStr) { + DateTimeFormatter sdf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDate orgDate = LocalDate.parse(dateStr, sdf); + + LocalDateTime startDate = LocalDateTime.of(orgDate, LocalTime.MIN); + LocalDateTime endDate = LocalDateTime.of(orgDate, LocalTime.MAX).withNano(999999000); + VOHisResult voHisResult = new VOHisResult(); + //如果查询累计类型的监测项,则取最高 + if (Iotutils.isAccumulate(survItem)) { + voHisResult = constructVo(iotStatisticMapper.summaryMaxDayHours(deployCode, tableName, survItem, startDate, endDate)); + }else{ + voHisResult = constructVo(iotStatisticMapper.summaryDayHours(deployCode, tableName, survItem, startDate, endDate)); + } + return voHisResult; + } + + + public VOHisResult constructVo(List voHisFormResultList) { + VOHisResult voHisResult = new VOHisResult(); + if (!voHisFormResultList.isEmpty()) { + List dateList = new ArrayList<>(); + List valueList = new ArrayList<>(); + for (VOHisFormResult voHisFormResult : voHisFormResultList) { + dateList.add(voHisFormResult.getDate()); + valueList.add(voHisFormResult.getName()); + } + voHisResult.setDataList(valueList); + voHisResult.setTimeList(dateList); + } + return voHisResult; + } +} diff --git a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/IotCommonServiceImpl.java b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/IotCommonServiceImpl.java index 399f4d4..2519668 100644 --- a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/IotCommonServiceImpl.java +++ b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/IotCommonServiceImpl.java @@ -59,7 +59,7 @@ public class IotCommonServiceImpl { List deployTypes = new ArrayList<>(); deployTypes.add(PollutionConstants.AIR_SURV); deployTypes.add(PollutionConstants.SOIL_SURV); - List deploys = fDeviceDeployService.getAllDevice(deployTypes); + List deploys = fDeviceDeployService.getAllDevice(voSurvIntegrateParam.getStationCode(),deployTypes); VOIntegrateStatistic voIntegrateStatistic = new VOIntegrateStatistic(); if(!deploys.isEmpty()){ voSurvIntegrateParam.setDeployIds(deploys.stream().map(SurvDeviceDeploy::getId).collect(Collectors.toList())); @@ -82,7 +82,7 @@ public class IotCommonServiceImpl { List deployTypes = new ArrayList<>(); deployTypes.add(PollutionConstants.WATER_ORIENT); deployTypes.add(PollutionConstants.WATER_LIVE); - List deploys = fDeviceDeployService.getAllDevice(deployTypes); + List deploys = fDeviceDeployService.getAllDevice(voSurvIntegrateParam.getStationCode(),deployTypes); VOIntegrateStatistic voIntegrateStatistic = new VOIntegrateStatistic(); if(!deploys.isEmpty()) { voSurvIntegrateParam.setDeployIds(deploys.stream().map(SurvDeviceDeploy::getId).collect(Collectors.toList())); diff --git a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/SurvDeviceDeployServiceImpl.java b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/SurvDeviceDeployServiceImpl.java index 8563e29..3c171f7 100644 --- a/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/SurvDeviceDeployServiceImpl.java +++ b/zh-module-applet/zh-applet-admin/src/main/java/org/jeecg/modules/appmana/service/impl/SurvDeviceDeployServiceImpl.java @@ -399,8 +399,9 @@ public class SurvDeviceDeployServiceImpl extends ServiceImpl getAllDevice(List deployTypes) { + public List getAllDevice(String stationCode,List deployTypes) { List deploys = lambdaQuery() + .eq(StringUtils.isNotBlank(stationCode),SurvDeviceDeploy::getStationCode,stationCode) .in(SurvDeviceDeploy::getDeployType,deployTypes) .eq(SurvDeviceDeploy::getIsDel,0) .eq(SurvDeviceDeploy::getRunStatus,0) diff --git a/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/iot/common/VOSurvIntegrateParam.java b/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/iot/common/VOSurvIntegrateParam.java index c6f7fb2..ee25579 100644 --- a/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/iot/common/VOSurvIntegrateParam.java +++ b/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/iot/common/VOSurvIntegrateParam.java @@ -7,6 +7,8 @@ import java.util.List; @Data public class VOSurvIntegrateParam { + @ApiModelProperty("站点编号") + private String stationCode; @ApiModelProperty("设备部署id") private List deployIds; @ApiModelProperty("开始时间") diff --git a/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/iot/common/VOWaterSurvIntegrateParam.java b/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/iot/common/VOWaterSurvIntegrateParam.java index 2fef321..adb8012 100644 --- a/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/iot/common/VOWaterSurvIntegrateParam.java +++ b/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/iot/common/VOWaterSurvIntegrateParam.java @@ -7,6 +7,8 @@ import java.util.List; @Data public class VOWaterSurvIntegrateParam { + @ApiModelProperty("站点编号") + private String stationCode; @ApiModelProperty("设备部署id") private List deployIds; @ApiModelProperty("开始时间") diff --git a/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/vo/statistic/DTOIotCusSummray.java b/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/vo/statistic/DTOIotCusSummray.java new file mode 100644 index 0000000..b1df477 --- /dev/null +++ b/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/vo/statistic/DTOIotCusSummray.java @@ -0,0 +1,45 @@ +package org.jeecg.common.vo.statistic; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class DTOIotCusSummray { + /** + * 被统计字段 + */ + @ApiModelProperty("被统计字段") + private String dataColum; + /** + * 被统计字段 + */ + @ApiModelProperty("表名") + private String tableName; + /** + * 被统计字段 + */ + @ApiModelProperty("时间字段") + private String timeColum; + /** + * java代为处理所有需统计的月份集合,按照需要的排序传入 + */ + @ApiModelProperty("待统计月份集合") + private List timeList; + /** + * 开始时间 + */ + @ApiModelProperty("开始时间") + private String startTime; + /** + * 结束时间 + */ + @ApiModelProperty("结束时间") + private String endTime; + /** + * 其他查询条件 + */ + @ApiModelProperty("其他查询条件") + private String condition; +} diff --git a/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/vo/statistic/DTOIotSummray.java b/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/vo/statistic/DTOIotSummray.java new file mode 100644 index 0000000..452518a --- /dev/null +++ b/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/vo/statistic/DTOIotSummray.java @@ -0,0 +1,20 @@ +package org.jeecg.common.vo.statistic; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DTOIotSummray { + @ApiModelProperty("设备部署编码") + private String deployCode; + @ApiModelProperty("农场ID") + private String farmId; + @ApiModelProperty("检测项的变量名") + private String survItem; + @ApiModelProperty("表名") + private String tableName; + @ApiModelProperty("开始时间") + private String startTime; + @ApiModelProperty("结束时间") + private String endTime; +} diff --git a/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/vo/statistic/StringFormResultVo.java b/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/vo/statistic/StringFormResultVo.java new file mode 100644 index 0000000..df770f0 --- /dev/null +++ b/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/vo/statistic/StringFormResultVo.java @@ -0,0 +1,10 @@ +package org.jeecg.common.vo.statistic; + +import lombok.Data; + +@Data +public class StringFormResultVo { + private String summaryTime; + private String summaryData; + private String summaryCounts; +} diff --git a/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/vo/statistic/VOHisDateFormResult.java b/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/vo/statistic/VOHisDateFormResult.java new file mode 100644 index 0000000..b6a3ffb --- /dev/null +++ b/zh-module-applet/zh-applet-common/src/main/java/org/jeecg/common/vo/statistic/VOHisDateFormResult.java @@ -0,0 +1,16 @@ +package org.jeecg.common.vo.statistic; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +public class VOHisDateFormResult { + @JsonFormat(timezone = "GMT+8", pattern = "M月d日") + @DateTimeFormat(pattern = "M月d日") + private Date date; + private String name; + +}