diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/DataVCvtServiceImpl.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/DataVCvtServiceImpl.java index 733205d..edaa73b 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/DataVCvtServiceImpl.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/DataVCvtServiceImpl.java @@ -2,12 +2,12 @@ package com.njcn.algorithm.serviceimpl.line; import com.njcn.algorithm.pojo.bo.CalculatedParam; import com.njcn.algorithm.service.line.IDataVCvtService; -import com.njcn.dataProcess.api.DataVCvtFeignClient; -import com.njcn.dataProcess.api.DataVFeignClient; +import com.njcn.dataProcess.api.DataHarmRateVCvtFeignClient; +import com.njcn.dataProcess.api.DataHarmRateVFeignClient; import com.njcn.dataProcess.constant.InfluxDBTableConstant; import com.njcn.dataProcess.param.LineCountEvaluateParam; -import com.njcn.dataProcess.po.influx.DataVCvt; -import com.njcn.dataProcess.pojo.dto.DataVCvtDto; +import com.njcn.dataProcess.pojo.dto.DataHarmRateVCvtDto; +import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto; import com.njcn.dataProcess.util.TimeUtils; import com.njcn.device.pq.api.CvtRelationFeignClient; import com.njcn.device.pq.pojo.dto.CvtHarmonicCorrectionFactorsDTO; @@ -38,9 +38,10 @@ public class DataVCvtServiceImpl implements IDataVCvtService { @Resource private CvtRelationFeignClient cvtRelationFeignClient; @Resource - private DataVCvtFeignClient dataVCvtFeignClient; + private DataHarmRateVCvtFeignClient dataHarmRateVCvtFeignClient; @Resource - private DataVFeignClient dataVFeignClient; + private DataHarmRateVFeignClient dataHarmRateVFeignClient; + @Override public void dataVCvtHandler(CalculatedParam calculatedParam) { LineCountEvaluateParam lineParam = new LineCountEvaluateParam(); @@ -51,23 +52,30 @@ public class DataVCvtServiceImpl implements IDataVCvtService { lineCountEvaluateParam.setLineId(calculatedParam.getIdList()); lineCountEvaluateParam.setEndTime(calculatedParam.getDataDate()+ InfluxDBTableConstant.END_TIME); lineCountEvaluateParam.setStartTime(calculatedParam.getDataDate()+ InfluxDBTableConstant.START_TIME); - List data = dataVCvtFeignClient.getRawData(lineCountEvaluateParam).getData(); - Map> collect = data.stream().collect(Collectors.groupingBy(DataVCvtDto::getLineId)); - List result = new ArrayList<>(); + + List data = dataHarmRateVCvtFeignClient.getRawData(lineCountEvaluateParam).getData(); + + Map> collect = data.stream().collect(Collectors.groupingBy(DataHarmRateVCvtDto::getLineId)); + List result = new ArrayList<>(); collect.forEach((k,v)->{ CvtHarmonicCorrectionFactorsDTO cvtHarmonicCorrectionFactorsDTO = cvtRelationFeignClient.queryByLineId(k).getData(); if(Objects.nonNull(cvtHarmonicCorrectionFactorsDTO)&& StringUtils.isNotEmpty(cvtHarmonicCorrectionFactorsDTO.getId())){ v = cvtChange(v,cvtHarmonicCorrectionFactorsDTO); } + List dataVCvtDtoList = v.stream().map(temp -> { + DataHarmRateVDto dataHarmRateVDto = new DataHarmRateVDto(); + BeanUtils.copyProperties(temp, dataHarmRateVDto); + return dataHarmRateVDto; + }).collect(Collectors.toList()); - result.addAll(v); + result.addAll(dataVCvtDtoList); }); - dataVFeignClient.batchInsertionCvtDTO(result); + dataHarmRateVFeignClient.addList(result); } - private List cvtChange(List v, CvtHarmonicCorrectionFactorsDTO cvtHarmonicCorrectionFactorsDTO) { + private List cvtChange(List v, CvtHarmonicCorrectionFactorsDTO cvtHarmonicCorrectionFactorsDTO) { v.stream().forEach(temp->{ //目前知道的只有v2到v50乘以系数 // temp.setLineId(); diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataHarmRateVCvtController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataHarmRateVCvtController.java new file mode 100644 index 0000000..dbd893b --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataHarmRateVCvtController.java @@ -0,0 +1,92 @@ +package com.njcn.dataProcess.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.dataProcess.annotation.InsertBean; +import com.njcn.dataProcess.annotation.QueryBean; +import com.njcn.dataProcess.dao.imapper.DataHarmRateVCvtMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.po.influx.DataHarmRateVCvt; +import com.njcn.dataProcess.po.influx.DataV; +import com.njcn.dataProcess.pojo.dto.DataHarmRateVCvtDto; +import com.njcn.dataProcess.pojo.dto.DataVCvtDto; +import com.njcn.dataProcess.service.IDataHarmRateVCvt; +import com.njcn.dataProcess.service.IDataVCvt; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Controller; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author hongawen + * @version 1.0 + * @data 2024/11/6 19:48 + */ +@Validated +@Slf4j +@Controller +@RestController +@RequestMapping("/dataHarmRateVCvt") +@Api(tags = "电压好含有率数(cvt表)据获取") +public class DataHarmRateVCvtController extends BaseController { + + @QueryBean + private IDataHarmRateVCvt dataHarmRateVCvtQuery; + + @InsertBean + private IDataHarmRateVCvt dataHarmRateVCvtInsert; + private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault()); + + @QueryBean + private IDataVCvt dataVCvtQuery; + @Resource + private DataHarmRateVCvtMapper dataHarmRateVCvtMapper; + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY) + @PostMapping("/getRawData") + @ApiOperation("获取原始数据") + public HttpResult> getRawData(@RequestBody LineCountEvaluateParam lineParam) { + String methodDescribe = getMethodDescribe("getRawData"); + List data = dataHarmRateVCvtInsert.getRawData(lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY) + @PostMapping("/createData") + @ApiOperation("获取原始数据") + public HttpResult createData(@RequestBody LineCountEvaluateParam lineParam) { + String methodDescribe = getMethodDescribe("createData"); + List rawData = dataVCvtQuery.getRawData(lineParam); + + List collect = rawData.stream().map(temp -> + { + DataHarmRateVCvt dataV = new DataHarmRateVCvt(); + BeanUtils.copyProperties(temp, dataV); + dataV.setTime(LocalDateTime.parse(temp.getMinTime(), DATE_TIME_FORMATTER).atZone(ZoneId.systemDefault()).toInstant()); + + return dataV; + + }).collect(Collectors.toList()); + + dataHarmRateVCvtMapper.insertBatch(collect); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/imapper/DataHarmRateVCvtMapper.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/imapper/DataHarmRateVCvtMapper.java new file mode 100644 index 0000000..1bcdb08 --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/imapper/DataHarmRateVCvtMapper.java @@ -0,0 +1,11 @@ +package com.njcn.dataProcess.dao.imapper; + +import com.njcn.dataProcess.po.influx.DataHarmRateVCvt; +import com.njcn.influx.base.InfluxDbBaseMapper; + +/** + * @author xy + */ +public interface DataHarmRateVCvtMapper extends InfluxDbBaseMapper { + +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataHarmRateVCvt.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataHarmRateVCvt.java new file mode 100644 index 0000000..deb2e2f --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataHarmRateVCvt.java @@ -0,0 +1,27 @@ +package com.njcn.dataProcess.service; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.dataProcess.dto.DataHarmrateVDTO; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.CommonMinuteDto; +import com.njcn.dataProcess.pojo.dto.DataHarmDto; +import com.njcn.dataProcess.pojo.dto.DataHarmRateVCvtDto; +import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto; +import com.njcn.dataProcess.pojo.po.RStatDataHarmRateVD; + +import java.util.List; + +/** + * @author xy + */ +public interface IDataHarmRateVCvt { + + /** + * 获取原始数据 + * @param lineParam + * @return + */ + List getRawData(LineCountEvaluateParam lineParam); + + +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataHarmRateVCvtImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataHarmRateVCvtImpl.java new file mode 100644 index 0000000..d9eb81a --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataHarmRateVCvtImpl.java @@ -0,0 +1,50 @@ +package com.njcn.dataProcess.service.impl.influxdb; + +import com.njcn.dataProcess.dao.imapper.DataHarmRateVCvtMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.po.influx.DataHarmRateVCvt; +import com.njcn.dataProcess.pojo.dto.DataHarmRateVCvtDto; +import com.njcn.dataProcess.service.IDataHarmRateVCvt; +import com.njcn.influx.query.InfluxQueryWrapper; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + +/** + * Description: + * Date: 2025/03/03 下午 6:27【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service("InfluxdbDataHarmRateVCvtImpl") +@RequiredArgsConstructor +public class InfluxdbDataHarmRateVCvtImpl implements IDataHarmRateVCvt { + private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault()); + + private final DataHarmRateVCvtMapper dataHarmRateVCvtMapper; + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmRateVCvt.class); + + influxQueryWrapper.regular(DataHarmRateVCvt::getLineId,lineParam.getLineId()).between(DataHarmRateVCvt::getTime, lineParam.getStartTime(), lineParam.getEndTime()); + + List dataVCvts = dataHarmRateVCvtMapper.selectByQueryWrapper(influxQueryWrapper); + + List result = new ArrayList<>(); + + dataVCvts.forEach(item->{ + DataHarmRateVCvtDto dto = new DataHarmRateVCvtDto(); + BeanUtils.copyProperties(item,dto); + dto.setMinTime(DATE_TIME_FORMATTER.format(item.getTime())); + result.add(dto); + }); + + return result; + } +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataHarmRateVImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataHarmRateVImpl.java index 3e0050d..695ef4a 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataHarmRateVImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataHarmRateVImpl.java @@ -8,6 +8,7 @@ import com.njcn.dataProcess.dao.relation.mapper.RStatDataHarmRateVRelationMapper import com.njcn.dataProcess.dto.DataHarmrateVDTO; import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.po.influx.DataHarmrateV; +import com.njcn.dataProcess.po.influx.DataV; import com.njcn.dataProcess.pojo.dto.CommonMinuteDto; import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto; @@ -21,6 +22,7 @@ import org.apache.commons.collections4.ListUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.ArrayList; @@ -170,7 +172,14 @@ public class InfluxdbDataHarmRateVImpl extends MppServiceImpl list) { - + List result = new ArrayList<>(); + list.forEach(item->{ + DataHarmrateV dataV = new DataHarmrateV(); + BeanUtils.copyProperties(item, dataV); + dataV.setTime(LocalDateTime.parse(item.getMinTime(), DATE_TIME_FORMATTER).atZone(ZoneId.systemDefault()).toInstant()); + result.add(dataV); + }); + dataHarmRateVMapper.insertBatch(result); } /** diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataVCvtImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataVCvtImpl.java index fd6aa66..57237b6 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataVCvtImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataVCvtImpl.java @@ -49,7 +49,7 @@ public class InfluxdbDataVCvtImpl implements IDataVCvt { InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataVCvt.class); - influxQueryWrapper.regular(DataV::getLineId,lineParam.getLineId()).between(DataV::getTime, lineParam.getStartTime(), lineParam.getEndTime()); + influxQueryWrapper.regular(DataV::getLineId,lineParam.getLineId()).between(DataVCvt::getTime, lineParam.getStartTime(), lineParam.getEndTime()); List dataVCvts = dataVCvtMapper.selectByQueryWrapper(influxQueryWrapper); diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataHarmRateVCvtImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataHarmRateVCvtImpl.java new file mode 100644 index 0000000..8fce304 --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataHarmRateVCvtImpl.java @@ -0,0 +1,24 @@ +package com.njcn.dataProcess.service.impl.relation; + +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataHarmDto; +import com.njcn.dataProcess.pojo.dto.DataHarmRateVCvtDto; +import com.njcn.dataProcess.service.IDataHarmRateVCvt; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * Description: + * Date: 2025/03/03 下午 6:27【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RelationDataHarmRateVCvtImpl implements IDataHarmRateVCvt { + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + return null; + } +}