| | |
| | | import com.fengdu.gas.common.enums.*; |
| | | import com.fengdu.gas.common.model.Tuple; |
| | | import com.fengdu.gas.common.util.*; |
| | | import com.fengdu.gas.entity.request.datauploadrecord.ReqGetDataUploadRecord; |
| | | import com.fengdu.gas.repository.impl.*; |
| | | import com.fengdu.gas.repository.mapper.DataUploadRecordHourMapper; |
| | | import com.fengdu.gas.repository.po.*; |
| | | import com.fengdu.gas.repository.vo.DataUploadRecordDayVO; |
| | | import com.google.gson.JsonElement; |
| | | import com.google.gson.JsonObject; |
| | | import com.google.gson.JsonParser; |
| | |
| | | import com.fengdu.gas.entity.search.SearchDataUploadRecord; |
| | | import com.fengdu.gas.repository.vo.DataUploadRecordVO; |
| | | import com.fengdu.gas.service.convert.DataUploadRecordConvert; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | |
| | | /** |
| | | * 数据上报记录 |
| | |
| | | private WaterFacilityParameterMapperImpl waterFacilityParameterMapper; |
| | | private static final Logger DEBUG_LOGGER = LoggerUtil.get(ELogger.DEBUG); |
| | | private static final Logger ERROR_LOGGER = LoggerUtil.get(ELogger.SYS_ERROR); |
| | | |
| | | public ExecutedResult<Long> create(ReqCreateDataUploadRecord request) { |
| | | // 转换po |
| | | DataUploadRecordPO item = DataUploadRecordConvert.INSTANCE.toCreate(request); |
| | |
| | | // } |
| | | // return ExecutedResult.success(); |
| | | // } |
| | | |
| | | /** |
| | | * mqtt收到消息 |
| | | * @param topic 主题 |
| | |
| | | //报文解析 |
| | | //添加参数报警记录 |
| | | List<WaterFacilityPO> facilityPOList = waterFacilityMapper.getList(); |
| | | FacilityAlarmRecordPO recordPO=new FacilityAlarmRecordPO(); |
| | | FacilityAlarmRecordPO recordPO = new FacilityAlarmRecordPO(); |
| | | |
| | | } |
| | | |
| | | public ExecutedResult<String> dataUpload(Long startTime, Long endTime, Integer type) { |
| | | List<WaterFacilityPO> facilityPOList = waterFacilityMapper.getList(); |
| | | //获取所有设备参数 |
| | |
| | | case 1: |
| | | //按小时统计插入数据 |
| | | List<DataUploadRecordPO> recordPOList = mapper.getByTime(startTime, endTime); |
| | | if(ListUtil.isNotNullOrEmpty(recordPOList)){ |
| | | if (ListUtil.isNotNullOrEmpty(recordPOList)) { |
| | | for (WaterFacilityParameterPO parameterPO : parameterPOList) { |
| | | WaterFacilityPO waterFacilityPO = facilityPOList.stream().filter(item -> item.getId().equals(parameterPO.getFacilityId())).findFirst().orElse(null); |
| | | //根据设备参数筛选数据集合 |
| | |
| | | break; |
| | | case 2://按天统计插入数据 |
| | | List<DataUploadRecordHourPO> hourPOList = dataUploadRecordHourMapper.getByTime(startTime, endTime); |
| | | if(ListUtil.isNotNullOrEmpty(hourPOList)){ |
| | | if (ListUtil.isNotNullOrEmpty(hourPOList)) { |
| | | for (WaterFacilityParameterPO parameterPO : parameterPOList) { |
| | | WaterFacilityPO waterFacilityPO = facilityPOList.stream().filter(item -> item.getId().equals(parameterPO.getFacilityId())).findFirst().orElse(null); |
| | | List<DataUploadRecordHourPO> dataList = hourPOList.stream().filter(item -> item.getFacilityId().equals(parameterPO.getFacilityId()) && item.getColumnsCode().equals(parameterPO.getColumnsCode())).collect(Collectors.toList()); |
| | |
| | | break; |
| | | case 3://按月统计插入数据 |
| | | List<DataUploadRecordDayPO> dayPOList = dataUploadRecordDayMapper.getByTime(startTime, endTime); |
| | | if(ListUtil.isNotNullOrEmpty(dayPOList)){ |
| | | if (ListUtil.isNotNullOrEmpty(dayPOList)) { |
| | | for (WaterFacilityParameterPO parameterPO : parameterPOList) { |
| | | WaterFacilityPO waterFacilityPO = facilityPOList.stream().filter(item -> item.getId().equals(parameterPO.getFacilityId())).findFirst().orElse(null); |
| | | List<DataUploadRecordDayPO> dataList = dayPOList.stream().filter(item -> item.getFacilityId().equals(parameterPO.getFacilityId()) && item.getColumnsCode().equals(parameterPO.getColumnsCode())).collect(Collectors.toList()); |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | return ExecutedResult.success(); |
| | | } |
| | | |
| | | public ExecutedResult<List<DataUploadRecordDayVO>> getLineChart(ReqGetDataUploadRecord record) { |
| | | Long beginTime = 0L; |
| | | Long endTime = 0L; |
| | | List<DataUploadRecordDayVO> data = new ArrayList<>(); |
| | | List<DataUploadRecordDayVO> result = new ArrayList<>(); |
| | | switch (record.getDateType()) { |
| | | case 1: |
| | | beginTime = LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.todayStartTime()).getTime(); |
| | | endTime = LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.todayEndTime()).getTime(); |
| | | if (beginTime > 0 && endTime > 0) { |
| | | List<DataUploadRecordHourPO> lineChart = dataUploadRecordHourMapper.getLineChart(record.getPointId(), record.getColumnsCode(), beginTime, endTime); |
| | | if(ListUtil.isNotNullOrEmpty(lineChart)){ |
| | | data = CopierUtil.mapTo(lineChart, DataUploadRecordDayVO.class); |
| | | } |
| | | |
| | | } |
| | | break; |
| | | case 2: |
| | | beginTime = LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.weekStartTime()).getTime(); |
| | | endTime = LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.weekEndTime()).getTime(); |
| | | if (beginTime > 0 && endTime > 0) { |
| | | List<DataUploadRecordDayPO> lineChart = dataUploadRecordDayMapper.getLineChart(record.getPointId(), record.getColumnsCode(), beginTime, endTime); |
| | | if(ListUtil.isNotNullOrEmpty(lineChart)){ |
| | | data = CopierUtil.mapTo(lineChart, DataUploadRecordDayVO.class); |
| | | } |
| | | } |
| | | break; |
| | | case 3: |
| | | beginTime = LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.monthStartTime()).getTime(); |
| | | endTime = LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.monthEndTime()).getTime(); |
| | | if (beginTime > 0 && endTime > 0) { |
| | | List<DataUploadRecordMonthPO> lineChart = dataUploadRecordMonthMapper.getLineChart(record.getPointId(), record.getColumnsCode(), beginTime, endTime); |
| | | if(ListUtil.isNotNullOrEmpty(lineChart)){ |
| | | data = CopierUtil.mapTo(lineChart, DataUploadRecordDayVO.class); |
| | | } |
| | | } |
| | | break; |
| | | case 4: |
| | | beginTime = LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.yearStartTime()).getTime(); |
| | | endTime = LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.yearEndTime()).getTime(); |
| | | if (beginTime > 0 && endTime > 0) { |
| | | List<DataUploadRecordMonthPO> lineChart = dataUploadRecordMonthMapper.getLineChart(record.getPointId(), record.getColumnsCode(), beginTime, endTime); |
| | | if(ListUtil.isNotNullOrEmpty(lineChart)){ |
| | | data = CopierUtil.mapTo(lineChart, DataUploadRecordDayVO.class); |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | //查询监控点下是否存在多个设备的数据,存在则计算最小、最大、平均值 |
| | | if (ListUtil.isNotNullOrEmpty(data)) { |
| | | Map<String, List<DataUploadRecordDayVO>> collect = data.stream().collect(Collectors.groupingBy(DataUploadRecordDayVO::getUploadDate)); |
| | | for (Map.Entry<String, List<DataUploadRecordDayVO>> map : collect.entrySet()) { |
| | | List<DataUploadRecordDayVO> value = map.getValue(); |
| | | DataUploadRecordDayVO dayVO = new DataUploadRecordDayVO(); |
| | | dayVO.setUploadDate(map.getKey()); |
| | | BigDecimal maxValue = BigDecimal.ZERO; |
| | | BigDecimal minValue = BigDecimal.ZERO; |
| | | BigDecimal avgValue = BigDecimal.ZERO; |
| | | if (value.size() > 1) { |
| | | maxValue = Collections.max(value, Comparator.comparing(DataUploadRecordDayVO::getMaxValue)).getMaxValue(); |
| | | minValue = Collections.min(value, Comparator.comparing(DataUploadRecordDayVO::getMinValue)).getMinValue(); |
| | | BigDecimal sum = maxValue.add(minValue); |
| | | avgValue=sum.divide(new BigDecimal(2)).setScale(2,RoundingMode.DOWN); |
| | | }else { |
| | | maxValue=value.get(0).getMaxValue(); |
| | | minValue=value.get(0).getMinValue(); |
| | | avgValue=value.get(0).getAvgValue(); |
| | | } |
| | | dayVO.setMaxValue(maxValue); |
| | | dayVO.setMinValue(minValue); |
| | | dayVO.setAvgValue(avgValue); |
| | | result.add(dayVO); |
| | | } |
| | | result.sort(Comparator.comparingInt(o -> Integer.parseInt(o.getUploadDate()))); |
| | | } |
| | | return ExecutedResult.success(result); |
| | | } |
| | | |
| | | public ExecutedResult<List<DataUploadRecordVO>> getList(List<Long> listId) { |
| | | List<DataUploadRecordVO> result = new ArrayList<>(); |
| | | |