From 26a14a7c6bc81b21d22072484dd304805d601c44 Mon Sep 17 00:00:00 2001 From: huangzj <826100833@qq.com> Date: Mon, 3 Jul 2023 08:58:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E7=9B=91=E6=B5=8B=E7=82=B9=E8=B6=8B?= =?UTF-8?q?=E5=8A=BF=E5=AF=B9=E6=AF=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CsTouristDataPOServiceImpl.java | 22 ++++++++++--- .../param/CommonStatisticalQueryParam.java | 4 ++- .../controller/StableDataController.java | 10 ++++++ .../csharmonic/service/StableDataService.java | 2 ++ .../service/impl/StableDataServiceImpl.java | 32 +++++++++++++++++-- 5 files changed, 62 insertions(+), 8 deletions(-) diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsTouristDataPOServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsTouristDataPOServiceImpl.java index a596978..973c43e 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsTouristDataPOServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsTouristDataPOServiceImpl.java @@ -4,8 +4,11 @@ import com.alibaba.nacos.client.naming.utils.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.csdevice.enums.AlgorithmResponseEnum; +import com.njcn.csdevice.mapper.CsLedgerMapper; import com.njcn.csdevice.pojo.param.CsTouristDataParm; +import com.njcn.csdevice.pojo.po.CsLedger; import com.njcn.csdevice.pojo.vo.CsTouristDataParmVO; +import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -29,23 +32,32 @@ import org.springframework.transaction.annotation.Transactional; * @version V1.0.0 */ @Service +@RequiredArgsConstructor public class CsTouristDataPOServiceImpl extends ServiceImpl implements CsTouristDataPOService{ - + private final CsLedgerMapper csLedgerMapper; @Override @Transactional(rollbackFor = {Exception.class}) public Boolean add(List csTouristDataParms) { QueryWrapper QueryWrapper = new QueryWrapper<>(); + QueryWrapper csLedgerQueryWrapper = new QueryWrapper<>(); + this.getBaseMapper().delete(null); List list = new ArrayList<>(); csTouristDataParms.forEach(temp->{ QueryWrapper.clear(); QueryWrapper.eq(CsTouristDataPO.COL_DEVICE_ID,temp.getDeviceId()); CsTouristDataPO csTouristDataPO = this.getBaseMapper().selectOne(QueryWrapper); - if(Objects.isNull(csTouristDataPO)){ + if(!Objects.isNull(csTouristDataPO)){ return; } - CsTouristDataPO csTouristDataPO1 = new CsTouristDataPO(); - BeanUtils.copyProperties(temp, csTouristDataPO1); - list.add(csTouristDataPO1); + csTouristDataPO = new CsTouristDataPO(); + csTouristDataPO.setDeviceId(temp.getDeviceId()); + csLedgerQueryWrapper.clear(); + csLedgerQueryWrapper.eq("id",temp.getDeviceId()); + CsLedger csLedger = csLedgerMapper.selectOne(csLedgerQueryWrapper); + String[] split = csLedger.getPids().split(","); + csTouristDataPO.setEnginerId(split[1]); + csTouristDataPO.setProjectId(split[2]); + list.add(csTouristDataPO); }); boolean b = this.saveBatch(list); diff --git a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/param/CommonStatisticalQueryParam.java b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/param/CommonStatisticalQueryParam.java index 6d6cc14..db16c02 100644 --- a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/param/CommonStatisticalQueryParam.java +++ b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/param/CommonStatisticalQueryParam.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; +import java.util.List; /** * Description: @@ -14,8 +15,9 @@ import javax.validation.constraints.NotBlank; */ @Data public class CommonStatisticalQueryParam { + @ApiModelProperty(value = "监测点集") + private List lineList; @ApiModelProperty(value = "设备id") - @NotBlank(message="设备id不能为空") private String DevId; @ApiModelProperty(value = "指标id") @NotBlank(message="指标id不能为空") diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/controller/StableDataController.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/controller/StableDataController.java index 2831b6d..733eb6f 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/controller/StableDataController.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/controller/StableDataController.java @@ -103,4 +103,14 @@ public class StableDataController extends BaseController { List result = stableDataService.queryCommonStatisticalByTime(commonStatisticalQueryParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/queryLineCommonStatistical") + @ApiOperation("多监测点数据比较") + public HttpResult> queryLineCommonStatistical(@RequestBody CommonStatisticalQueryParam commonStatisticalQueryParam) { + String methodDescribe = getMethodDescribe("queryFisrtCommonStatistical"); + List result = stableDataService.queryLineCommonStatistical(commonStatisticalQueryParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + } \ No newline at end of file diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/StableDataService.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/StableDataService.java index 161cb82..c575105 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/StableDataService.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/StableDataService.java @@ -34,4 +34,6 @@ public interface StableDataService { List queryFisrtCommonStatistical(CommonStatisticalQueryParam commonStatisticalQueryParam); List queryCommonStatisticalByTime(CommonStatisticalQueryParam commonStatisticalQueryParam); + + List queryLineCommonStatistical(CommonStatisticalQueryParam commonStatisticalQueryParam); } diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/StableDataServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/StableDataServiceImpl.java index 2d6e801..6dbbd36 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/StableDataServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/StableDataServiceImpl.java @@ -161,7 +161,7 @@ public class StableDataServiceImpl implements StableDataService { EleEpdPqd data = epdFeignClient.selectById(commonStatisticalQueryParam.getStatisticalId()).getData(); - Optional.ofNullable(csLinePOList).orElseThrow(()-> new BusinessException(AlgorithmResponseEnum.ELEEPDPQD_DATA_ERROR)); + Optional.ofNullable(data).orElseThrow(()-> new BusinessException(AlgorithmResponseEnum.ELEEPDPQD_DATA_ERROR)); String frequency = Optional.ofNullable(commonStatisticalQueryParam.getFrequency()).orElse(""); List deviceRtData = commonService.getDeviceRtData(collect, data.getClassId(), data.getName()+frequency, data.getPhase(), commonStatisticalQueryParam.getValueType()); @@ -189,7 +189,35 @@ public class StableDataServiceImpl implements StableDataService { EleEpdPqd data = epdFeignClient.selectById(commonStatisticalQueryParam.getStatisticalId()).getData(); - List csLinePOList1 = Optional.ofNullable(csLinePOList).orElseThrow(() -> new BusinessException(AlgorithmResponseEnum.ELEEPDPQD_DATA_ERROR)); + Optional.ofNullable(data).orElseThrow(()-> new BusinessException(AlgorithmResponseEnum.ELEEPDPQD_DATA_ERROR)); + + String frequency = Optional.ofNullable(commonStatisticalQueryParam.getFrequency()).orElse(""); + List deviceRtData = commonService.getDeviceRtDataByTime(collect, data.getClassId(), data.getName()+frequency, data.getPhase(), commonStatisticalQueryParam.getValueType(),commonStatisticalQueryParam.getStartTime(),commonStatisticalQueryParam.getEndTime()); + List collect1 = deviceRtData.stream().map(temp -> { + ThdDataVO vo = new ThdDataVO(); + vo.setLineId(temp.getLineId()); + vo.setPhase(temp.getPhaseType()); + String position = csLinePOList.stream().filter(csLinePO -> Objects.equals(csLinePO.getLineId(), vo.getLineId())).collect(Collectors.toList()).get(0).getPosition(); + vo.setPosition(position); + vo.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toLocalDateTime()); + vo.setStatMethod(temp.getValueType()); + vo.setStatisticalData(BigDecimal.valueOf(temp.getValue()).setScale(4, RoundingMode.UP).doubleValue()); + vo.setStatisticalIndex(data.getId()); + return vo; + }).collect(Collectors.toList()); + + return collect1; + } + + @Override + public List queryLineCommonStatistical(CommonStatisticalQueryParam commonStatisticalQueryParam) { + List csLinePOList = csLineFeignClient.queryLineById(commonStatisticalQueryParam.getLineList()).getData(); + Optional.ofNullable(csLinePOList).orElseThrow(()-> new BusinessException(AlgorithmResponseEnum.LINE_DATA_ERROR)); + List collect = csLinePOList.stream().map(CsLinePO::getLineId).collect(Collectors.toList()); + + + EleEpdPqd data = epdFeignClient.selectById(commonStatisticalQueryParam.getStatisticalId()).getData(); + Optional.ofNullable(data).orElseThrow(()-> new BusinessException(AlgorithmResponseEnum.ELEEPDPQD_DATA_ERROR)); String frequency = Optional.ofNullable(commonStatisticalQueryParam.getFrequency()).orElse(""); List deviceRtData = commonService.getDeviceRtDataByTime(collect, data.getClassId(), data.getName()+frequency, data.getPhase(), commonStatisticalQueryParam.getValueType(),commonStatisticalQueryParam.getStartTime(),commonStatisticalQueryParam.getEndTime());