diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java index 09b434509..4e4f4bd6e 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java @@ -201,4 +201,9 @@ public class Monitor extends BaseEntity { */ private Float ct2; + /** + * 监测点接线相别(0,单相,1,三相,默认三相) + */ + private String ptPhaseType; + } diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/DimGlobalDataParam.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/DimGlobalDataParam.java index 2e5024c84..304c6fe2d 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/DimGlobalDataParam.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/DimGlobalDataParam.java @@ -15,8 +15,7 @@ import javax.validation.constraints.NotNull; * @date 2023/11/27 */ @Data -@EqualsAndHashCode(callSuper = true) -public class DimGlobalDataParam extends BaseParam { +public class DimGlobalDataParam{ @ApiModelProperty(name = "type",value = "大类型,与文档对应") @NotNull(message = "大类型,与文档对应不可为空") @@ -33,7 +32,7 @@ public class DimGlobalDataParam extends BaseParam { @ApiModelProperty(name = "secondType",value = "稳态指标类型id/暂态指标类型id/",required = true) private String targetType; - @ApiModelProperty(name = "dateType",value = "日期类型 1.年 3.月 5.天",required = true) + @ApiModelProperty(name = "dateType",value = "日期类型 1.年 3.月 5.天",required = true,example = "5") @NotNull(message = "日期类型不可为空") private Integer dateType; diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/DimGlobalDataStandVO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/DimGlobalDataStandVO.java new file mode 100644 index 000000000..d8cc17a16 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/DimGlobalDataStandVO.java @@ -0,0 +1,261 @@ +package com.njcn.harmonic.pojo.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * pqs + * + * @author cdf + * @date 2023/11/27 + */ +@Data +public class DimGlobalDataStandVO { + + @ApiModelProperty(name = "orgId",value = "单位code") + private String orgId; + + @ApiModelProperty(name = "orgName",value = "单位名称") + private String orgName; + + @ApiModelProperty(name = "type",value = "一类大类型,电压等级/源荷") + private String type; + + @ApiModelProperty(name = "secondType",value = "二类类型,稳态指标/暂态指标/") + private String secondType; + + @ApiModelProperty(name = "value",value = "单位code") + private BigDecimal value; + + + /** + * 电压(日平均值) + */ + private Double v; + + /** + * 三相电压不平衡(日95%概率大值) + */ + private Double vUnbalance; + + /** + * 长时间闪变(日最大值) + */ + private Double pst; + + /** + * 电压总谐波畸变率(日95%概率大值) + */ + private Double vThd; + + @TableField(value = "v_1") + private Double v1; + + @TableField(value = "v_2") + private Double v2; + + @TableField(value = "v_3") + private Double v3; + + @TableField(value = "v_4") + private Double v4; + + @TableField(value = "v_5") + private Double v5; + + @TableField(value = "v_6") + private Double v6; + + @TableField(value = "v_7") + private Double v7; + + @TableField(value = "v_8") + private Double v8; + + @TableField(value = "v_9") + private Double v9; + + @TableField(value = "v_10") + private Double v10; + + @TableField(value = "v_11") + private Double v11; + + @TableField(value = "v_12") + private Double v12; + + @TableField(value = "v_13") + private Double v13; + + @TableField(value = "v_14") + private Double v14; + + @TableField(value = "v_15") + private Double v15; + + @TableField(value = "v_16") + private Double v16; + + @TableField(value = "v_17") + private Double v17; + + @TableField(value = "v_18") + private Double v18; + + @TableField(value = "v_19") + private Double v19; + + @TableField(value = "v_20") + private Double v20; + + @TableField(value = "v_21") + private Double v21; + + @TableField(value = "v_22") + private Double v22; + + @TableField(value = "v_23") + private Double v23; + + @TableField(value = "v_24") + private Double v24; + + @TableField(value = "v_25") + private Double v25; + + @TableField(value = "v_26") + private Double v26; + + @TableField(value = "v_27") + private Double v27; + + @TableField(value = "v_28") + private Double v28; + + @TableField(value = "v_29") + private Double v29; + + @TableField(value = "v_30") + private Double v30; + + @TableField(value = "v_31") + private Double v31; + + @TableField(value = "v_32") + private Double v32; + + @TableField(value = "v_33") + private Double v33; + + @TableField(value = "v_34") + private Double v34; + + @TableField(value = "v_35") + private Double v35; + + @TableField(value = "v_36") + private Double v36; + + @TableField(value = "v_37") + private Double v37; + + @TableField(value = "v_38") + private Double v38; + + @TableField(value = "v_39") + private Double v39; + + @TableField(value = "v_40") + private Double v40; + + @TableField(value = "v_41") + private Double v41; + + @TableField(value = "v_42") + private Double v42; + + @TableField(value = "v_43") + private Double v43; + + @TableField(value = "v_44") + private Double v44; + + @TableField(value = "v_45") + private Double v45; + + @TableField(value = "v_46") + private Double v46; + + @TableField(value = "v_47") + private Double v47; + + @TableField(value = "v_48") + private Double v48; + + @TableField(value = "v_49") + private Double v49; + + @TableField(value = "v_50") + private Double v50; + + + public DimGlobalDataStandVO() { + this.v = 3.14159; + this.vUnbalance = 3.14159; + this.pst = 3.14159; + this.vThd = 3.14159; + this.v1 = 3.14159; + this.v2 = 3.14159; + this.v3 = 3.14159; + this.v4 = 3.14159; + this.v5 = 3.14159; + this.v6 = 3.14159; + this.v7 = 3.14159; + this.v8 = 3.14159; + this.v9 = 3.14159; + this.v10 = 3.14159; + this.v11 = 3.14159; + this.v12 = 3.14159; + this.v13 = 3.14159; + this.v14 = 3.14159; + this.v15 = 3.14159; + this.v16 = 3.14159; + this.v17 = 3.14159; + this.v18 = 3.14159; + this.v19 = 3.14159; + this.v20 = 3.14159; + this.v21 = 3.14159; + this.v22 = 3.14159; + this.v23 = 3.14159; + this.v24 = 3.14159; + this.v25 = 3.14159; + this.v26 = 3.14159; + this.v27 = 3.14159; + this.v28 = 3.14159; + this.v29 = 3.14159; + this.v30 = 3.14159; + this.v31 = 3.14159; + this.v32 = 3.14159; + this.v33 = 3.14159; + this.v34 = 3.14159; + this.v35 = 3.14159; + this.v36 = 3.14159; + this.v37 = 3.14159; + this.v38 = 3.14159; + this.v39 = 3.14159; + this.v40 = 3.14159; + this.v41 = 3.14159; + this.v42 = 3.14159; + this.v43 = 3.14159; + this.v44 = 3.14159; + this.v45 = 3.14159; + this.v46 = 3.14159; + this.v47 = 3.14159; + this.v48 = 3.14159; + this.v49 = 3.14159; + this.v50 = 3.14159; + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/dim/DimGlobalDealController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/dim/DimGlobalDealController.java index 9fc40f738..395b060a7 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/dim/DimGlobalDealController.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/dim/DimGlobalDealController.java @@ -7,6 +7,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.harmonic.pojo.param.DimGlobalDataParam; +import com.njcn.harmonic.pojo.vo.DimGlobalDataStandVO; import com.njcn.harmonic.pojo.vo.DimGlobalDataVO; import com.njcn.harmonic.service.dim.DimGlobalDealService; import com.njcn.web.controller.BaseController; @@ -52,4 +53,20 @@ public class DimGlobalDealController extends BaseController { List result = dimGlobalDealService.dealGlobalData(dimGlobalDataParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + + + /** + * **电压等级**指标标准差 + * @author cdf + * @date 2023/12/1 + */ + @PostMapping("/standardDeviation") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("**电压等级**指标标准差") + @ApiImplicitParam(name = "dimGlobalDataParam", value = "条件参数", required = true) + public HttpResult> standardDeviation(@RequestBody @Validated DimGlobalDataParam dimGlobalDataParam){ + String methodDescribe = getMethodDescribe("dealGlobalData"); + List result = dimGlobalDealService.standardDeviation(dimGlobalDataParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/dim/DimGlobalDealService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/dim/DimGlobalDealService.java index 29e210fa1..62f9325f3 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/dim/DimGlobalDealService.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/dim/DimGlobalDealService.java @@ -2,6 +2,8 @@ package com.njcn.harmonic.service.dim; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.harmonic.pojo.param.DimGlobalDataParam; +import com.njcn.harmonic.pojo.po.dim.RDimVoltageD; +import com.njcn.harmonic.pojo.vo.DimGlobalDataStandVO; import com.njcn.harmonic.pojo.vo.DimGlobalDataVO; import java.util.List; @@ -21,4 +23,7 @@ public interface DimGlobalDealService { * @date 2023/11/27 */ List dealGlobalData(DimGlobalDataParam dimGlobalDataParam); + + List standardDeviation(DimGlobalDataParam dimGlobalDataParam); + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/dim/impl/DimGlobalDealServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/dim/impl/DimGlobalDealServiceImpl.java index 794ba526f..8a2c57598 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/dim/impl/DimGlobalDealServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/dim/impl/DimGlobalDealServiceImpl.java @@ -1,11 +1,14 @@ package com.njcn.harmonic.service.dim.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.common.pojo.exception.BusinessException; import com.njcn.harmonic.mapper.dim.*; import com.njcn.harmonic.pojo.param.DimGlobalDataParam; import com.njcn.harmonic.pojo.po.dim.*; +import com.njcn.harmonic.pojo.vo.DimGlobalDataStandVO; import com.njcn.harmonic.pojo.vo.DimGlobalDataVO; import com.njcn.harmonic.service.dim.DimGlobalDealService; import com.njcn.system.api.DicDataFeignClient; @@ -3223,4 +3226,171 @@ public class DimGlobalDealServiceImpl implements DimGlobalDealService { return resultList; } + + @Override + public List standardDeviation(DimGlobalDataParam dimGlobalDataParam) { + List resultList = new ArrayList<>(); + Dept dept = deptFeignClient.getDeptByCode(dimGlobalDataParam.getOrgId()).getData(); + List deptList = deptFeignClient.getDepSonDetailByDeptId(dept.getId()).getData(); + List deptCodeIds = deptList.stream().map(DeptDTO::getCode).collect(Collectors.toList()); + List dicList = new ArrayList<>(); + List secondDicList = new ArrayList<>(); + + if (StrUtil.isNotBlank(dimGlobalDataParam.getMainType())) { + DictData dictData = dicDataFeignClient.getDicDataById(dimGlobalDataParam.getMainType()).getData(); + dicList.add(dictData); + } else { + //查询全部指标 + dicList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + dicList = dicList.stream().filter(item -> item.getCode().equals(DicDataEnum.DY_DC_500kV.getCode()) || item.getCode().equals(DicDataEnum.DY_220KV.getCode()) || item.getCode().equals(DicDataEnum.DY_110KV.getCode()) || item.getCode().equals(DicDataEnum.DY_35KV.getCode())).collect(Collectors.toList()); + } + + if(StrUtil.isNotBlank(dimGlobalDataParam.getTargetType())){ + if(dimGlobalDataParam.getTargetType().equals("avg")){ + secondDicList.add("平均值"); + }else { + secondDicList.add("标准差"); + } + + }else { + secondDicList.add("平均值"); + secondDicList.add("标准差"); + } + + switch (dimGlobalDataParam.getDateType()) { + case 1: + LambdaQueryWrapper lambdaQueryWrapperY = new LambdaQueryWrapper<>(); + lambdaQueryWrapperY.eq(RDimVoltageY::getStatisDate, dimGlobalDataParam.getQueryDate()) + .in(RDimVoltageY::getOrgId, deptCodeIds). + eq(StrUtil.isNotEmpty(dimGlobalDataParam.getMainType()),RDimVoltageY::getVoltageType,dimGlobalDataParam.getMainType()) + .eq(StrUtil.isNotEmpty(dimGlobalDataParam.getTargetType()),RDimVoltageY::getDataType,dimGlobalDataParam.getTargetType()); + List yList = rDimVoltageYMapper.selectList(lambdaQueryWrapperY); + + if (CollectionUtil.isNotEmpty(yList)) { + Map mapY = yList.stream().collect(Collectors.toMap(item->item.getOrgId()+item.getVoltageType()+item.getDataType(), Function.identity())); + for (DeptDTO d : deptList) { + for (DictData dictData : dicList) { + for (String tart : secondDicList) { + DimGlobalDataStandVO dimGlobalDataVO = new DimGlobalDataStandVO(); + + String mapKey = d.getCode()+dictData.getId()+tart; + if (mapY.containsKey(mapKey)) { + BeanUtil.copyProperties(mapY.get(d.getCode()),dimGlobalDataVO); + } + dimGlobalDataVO.setType(dictData.getId()); + dimGlobalDataVO.setSecondType(tart); + dimGlobalDataVO.setOrgName(d.getName()); + dimGlobalDataVO.setOrgId(d.getCode()); + resultList.add(dimGlobalDataVO); + } + } + + } + } else { + for (DeptDTO d : deptList) { + for (DictData dictData : dicList) { + for (String tart : secondDicList) { + DimGlobalDataStandVO dimGlobalDataVO = new DimGlobalDataStandVO(); + dimGlobalDataVO.setType(dictData.getId()); + dimGlobalDataVO.setSecondType(tart); + dimGlobalDataVO.setOrgName(d.getName()); + dimGlobalDataVO.setOrgId(d.getCode()); + resultList.add(dimGlobalDataVO); + } + } + } + } + break; + case 3: + LambdaQueryWrapper lambdaQueryWrapperM = new LambdaQueryWrapper<>(); + lambdaQueryWrapperM.eq(RDimVoltageM::getStatisDate, dimGlobalDataParam.getQueryDate()) + .in(RDimVoltageM::getOrgId, deptCodeIds). + eq(StrUtil.isNotEmpty(dimGlobalDataParam.getMainType()),RDimVoltageM::getVoltageType,dimGlobalDataParam.getMainType()) + .eq(StrUtil.isNotEmpty(dimGlobalDataParam.getTargetType()),RDimVoltageM::getDataType,dimGlobalDataParam.getTargetType()); + List mList = rDimVoltageMMapper.selectList(lambdaQueryWrapperM); + + if (CollectionUtil.isNotEmpty(mList)) { + Map mapM = mList.stream().collect(Collectors.toMap(item->item.getOrgId()+item.getVoltageType()+item.getDataType(), Function.identity())); + for (DeptDTO d : deptList) { + for (DictData dictData : dicList) { + for (String tart : secondDicList) { + DimGlobalDataStandVO dimGlobalDataVO = new DimGlobalDataStandVO(); + + String mapKey = d.getCode()+dictData.getId()+tart; + if (mapM.containsKey(mapKey)) { + BeanUtil.copyProperties(mapM.get(d.getCode()),dimGlobalDataVO); + } + dimGlobalDataVO.setType(dictData.getId()); + dimGlobalDataVO.setSecondType(tart); + dimGlobalDataVO.setOrgName(d.getName()); + dimGlobalDataVO.setOrgId(d.getCode()); + resultList.add(dimGlobalDataVO); + } + } + + } + } else { + for (DeptDTO d : deptList) { + for (DictData dictData : dicList) { + for (String tart : secondDicList) { + DimGlobalDataStandVO dimGlobalDataVO = new DimGlobalDataStandVO(); + dimGlobalDataVO.setOrgName(d.getName()); + dimGlobalDataVO.setType(dictData.getId()); + dimGlobalDataVO.setSecondType(tart); + dimGlobalDataVO.setOrgId(d.getCode()); + resultList.add(dimGlobalDataVO); + } + } + } + } + break; + case 5: + LambdaQueryWrapper lambdaQueryWrapperD = new LambdaQueryWrapper<>(); + lambdaQueryWrapperD.eq(RDimVoltageD::getStatisDate, dimGlobalDataParam.getQueryDate()) + .in(RDimVoltageD::getOrgId, deptCodeIds). + eq(StrUtil.isNotEmpty(dimGlobalDataParam.getMainType()),RDimVoltageD::getVoltageType,dimGlobalDataParam.getMainType()); + + List dList = rDimVoltageDMapper.selectList(lambdaQueryWrapperD); + + if (CollectionUtil.isNotEmpty(dList)) { + Map mapD = dList.stream().collect(Collectors.toMap(item->item.getOrgId()+item.getVoltageType(), Function.identity())); + for (DeptDTO d : deptList) { + for (DictData dictData : dicList) { + for (String tart : secondDicList) { + DimGlobalDataStandVO dimGlobalDataVO = new DimGlobalDataStandVO(); + + String mapKey = d.getCode()+dictData.getId()+tart; + if (mapD.containsKey(mapKey)) { + BeanUtil.copyProperties(mapD.get(d.getCode()),dimGlobalDataVO); + } + dimGlobalDataVO.setType(dictData.getId()); + dimGlobalDataVO.setSecondType(tart); + dimGlobalDataVO.setOrgName(d.getName()); + dimGlobalDataVO.setOrgId(d.getCode()); + resultList.add(dimGlobalDataVO); + } + } + + } + } else { + for (DeptDTO d : deptList) { + for (DictData dictData : dicList) { + for (String tart : secondDicList) { + DimGlobalDataStandVO dimGlobalDataVO = new DimGlobalDataStandVO(); + dimGlobalDataVO.setType(dictData.getId()); + dimGlobalDataVO.setSecondType(tart); + dimGlobalDataVO.setOrgName(d.getName()); + dimGlobalDataVO.setOrgId(d.getCode()); + resultList.add(dimGlobalDataVO); + } + } + } + } + break; + default: + throw new BusinessException("参数校验异常!"); + } + + return resultList; + } }