河北pms接口慢问题解决

This commit is contained in:
2023-09-14 09:00:02 +08:00
parent 28de2aa63d
commit 84e3825bbc
46 changed files with 686 additions and 248 deletions

View File

@@ -5,9 +5,12 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.device.pms.api.fallback.PmsGeneralDeviceInfoClientFallbackFactory;
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@@ -39,4 +42,8 @@ public interface PmsGeneralDeviceInfoClient {
*/
@PostMapping("/getPwPmsDeviceInfoWithOrgId")
HttpResult<List<PmsGeneralDeviceDTO>> getPwPmsDeviceInfoWithOrgId(@RequestBody PmsDeviceInfoParam pmsDeviceInfoParam);
@PostMapping("/getPwPmsMonitorIds")
HttpResult<List<String>> getPwPmsMonitorIds(@RequestBody PwPmsMonitorParam pwPmsMonitorParam);
}

View File

@@ -7,10 +7,12 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
import com.njcn.device.pms.utils.PmsDeviceEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@@ -46,6 +48,12 @@ public class PmsGeneralDeviceInfoClientFallbackFactory implements FallbackFactor
log.error("{}异常,降级处理,异常为:{}", "获取指定组织下配网台账综合信息", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<String>> getPwPmsMonitorIds(PwPmsMonitorParam pwPmsMonitorParam) {
log.error("{}异常,降级处理,异常为:{}", "获取指定组织下配网监测点索引", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -1,9 +1,12 @@
package com.njcn.device.pms.pojo.param;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Title RMpMonitorAlarmCountMParam
* @Package com.njcn.device.pms.pojo.param
@@ -12,7 +15,7 @@ import lombok.Data;
* @Version V1.0
*/
@Data
public class RMpMonitorAlarmCountMParam extends StatisticsBizBaseParam {
public class RMpMonitorAlarmCountMParam extends BaseParam {
@ApiModelProperty(name = "voltage_Level", value = "电压等级id")
private String voltageLevel; //电压等级
@@ -23,4 +26,33 @@ public class RMpMonitorAlarmCountMParam extends StatisticsBizBaseParam {
@ApiModelProperty(name = "measurementPointName", value = "监测点名称")
private String measurementPointName;
private List<String> monitorSort;
/**
* 按台账统计id为台账索引
* 按单位统计id为单位索引
*/
@ApiModelProperty(name="id",value="按台账统计id为台账索引按单位统计id为单位索引")
private String id;
/**
* 统计类型
*/
@ApiModelProperty(name="type",value="类型1年 2季度 3月份 4周 5日")
private Integer type;
/**
* 统计起始日期
*/
@ApiModelProperty(name="startTime",value="统计起始日期yyyy-MM-dd")
private String startTime;
/**
* 统计截止日期
*/
@ApiModelProperty(name="endTime",value="统计截止日期yyyy-MM-dd")
private String endTime;
}

View File

@@ -36,6 +36,8 @@ public class DistributionMonitor extends BaseEntity {
@MppMultiId
private String monitorId;
private String orgId;
/**
* 电压等级(字典)
*/

View File

@@ -1,5 +1,6 @@
package com.njcn.device.pms.controller.distribution;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
@@ -45,9 +46,9 @@ public class PwRMpMonitorAlarmCountMController extends BaseController {
@PostMapping("/getPwRMpMonitorAlarmCountMList")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("查询监测点告警统计(月)(配网)")
public HttpResult<List<PwRMpMonitorAlarmCountMVO>> getPwRMpMonitorAlarmCountMList(@RequestBody RMpMonitorAlarmCountMParam rMpMonitorAlarmCountMParam) {
public HttpResult<Page<PwRMpMonitorAlarmCountMVO>> getPwRMpMonitorAlarmCountMList(@RequestBody RMpMonitorAlarmCountMParam rMpMonitorAlarmCountMParam) {
String methodDescribe = getMethodDescribe("getPwRMpMonitorAlarmCountMList");
List<PwRMpMonitorAlarmCountMVO> list = rMpMonitorAlarmCountMService.getPwRMpMonitorAlarmCountMList(rMpMonitorAlarmCountMParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
Page<PwRMpMonitorAlarmCountMVO> page = rMpMonitorAlarmCountMService.getPwRMpMonitorAlarmCountMList(rMpMonitorAlarmCountMParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe);
}
}

View File

@@ -262,7 +262,7 @@ public class PmsDistributionMonitorController extends BaseController {
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/pwMonitorAreaDetailInfo")
@ApiOperation("修改配网监测点数据状态")
@ApiOperation("根据监测点获取配网监测点的详细信息")
@ApiImplicitParam(name = "monitorIds", value = "配网监测点实体", required = true)
public HttpResult<List<PwPmsMonitorDTO>> pwMonitorAreaDetailInfo(@RequestBody List<String> monitorIds) {
String methodDescribe = getMethodDescribe("pwMonitorAreaDetailInfo");

View File

@@ -9,6 +9,7 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
import com.njcn.device.pms.service.majornetwork.IPmsGeneralDeviceService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
@@ -18,10 +19,8 @@ import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
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 org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
@@ -99,6 +98,25 @@ public class PmsGeneralDeviceController extends BaseController {
}
/**
* 根据单位获取单位的配网监测点集合
* @author cdf
* @date 2023/9/4
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getPwPmsMonitorIds")
@ApiOperation("获取指定单位下配网监测点")
@ApiImplicitParam(name = "deptId", value = "查询台账条件", required = true)
@ApiIgnore
public HttpResult<List<String>> getPwPmsMonitorIds(@RequestBody PwPmsMonitorParam pwPmsMonitorParam) {
String methodDescribe = getMethodDescribe("getPwPmsMonitorIds");
List<String> deptDeviceInfos = generalPmsDeviceService.getPwPmsMonitorIds(pwPmsMonitorParam.getOrgId(),pwPmsMonitorParam.getMonitorSort());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, deptDeviceInfos, methodDescribe);
}

View File

@@ -35,4 +35,9 @@ public interface PwMonitorMapper {
*/
List<PwPmsMonitorDTO> getPwPhotovoltaicMonitorList(@Param("deptIdList") List<String> deptIdList,
@Param("pwPmsMonitorParam") PwPmsMonitorParam pwPmsMonitorParam);
List<PwPmsMonitorDTO> getPwBaseMonitorInfo(@Param("pwMonitorIds") List<String> pwMonitorIds,
@Param("pwPmsMonitorParam") PwPmsMonitorParam pwPmsMonitorParam);
}

View File

@@ -224,4 +224,9 @@
</if>
</select>
<select id="getPwBaseMonitorInfo">
</select>
</mapper>

View File

@@ -9,6 +9,7 @@ import com.njcn.device.pms.pojo.dto.PmsMonitorBaseDTO;
import com.njcn.device.pms.pojo.dto.PmsSimpleDTO;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
import com.njcn.device.pms.pojo.param.TaiZhangParam;
import com.njcn.device.pms.pojo.po.DistributionMonitor;
import com.njcn.device.pms.pojo.po.Monitor;
@@ -87,4 +88,6 @@ public interface DistributionMonitorMapper extends MppBaseMapper<DistributionMon
* 根据配网监测点id获取配网台账信息
*/
List<PwPmsMonitorDTO> pwMonitorAreaDetailInfo(@Param("monitorIds") List<String> monitorIds);
List<String> getBaseDisMonitorIds(@Param("list")List<String> list,@Param("monitorSortIds")List<String> monitorSortIds);
}

View File

@@ -383,9 +383,21 @@
<foreach collection="monitorIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="getBaseDisMonitorIds" resultType="string">
select Monitor_Id from pms_distribution_monitor
where org_id in
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
<if test="monitorSortIds!=null and monitorSortIds.size!=0">
and Monitor_Sort in
<foreach collection="monitorSortIds" item="it" open="(" separator="," close=")">
#{it}
</foreach>
</if>
</select>
</mapper>

View File

@@ -1,5 +1,6 @@
package com.njcn.device.pms.service.distribution;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.pms.pojo.param.RMpMonitorAlarmCountMParam;
import com.njcn.device.pms.pojo.po.RMpMonitorAlarmCountM;
@@ -21,5 +22,5 @@ public interface PwRMpMonitorAlarmCountMService extends IService<RMpMonitorAlarm
* @param rMpMonitorAlarmCountMParam
* @return java.util.List<com.njcn.device.pms.pojo.vo.RMpMonitorAlarmCountMVO>
*/
List<PwRMpMonitorAlarmCountMVO> getPwRMpMonitorAlarmCountMList(RMpMonitorAlarmCountMParam rMpMonitorAlarmCountMParam);
Page<PwRMpMonitorAlarmCountMVO> getPwRMpMonitorAlarmCountMList(RMpMonitorAlarmCountMParam rMpMonitorAlarmCountMParam);
}

View File

@@ -2,6 +2,7 @@ package com.njcn.device.pms.service.distribution.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
@@ -11,11 +12,15 @@ import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PmsMonitorParam;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
import com.njcn.device.pms.pojo.param.RMpMonitorAlarmCountMParam;
import com.njcn.device.pms.pojo.po.DistributionMonitor;
import com.njcn.device.pms.pojo.po.RMpMonitorAlarmCountM;
import com.njcn.device.pms.pojo.po.RStatAreaAlarmCountM;
import com.njcn.device.pms.pojo.vo.DistributionMonitorVO;
import com.njcn.device.pms.pojo.vo.PwRMpMonitorAlarmCountMVO;
import com.njcn.device.pms.service.distribution.PwRMpMonitorAlarmCountMService;
import com.njcn.device.pms.service.majornetwork.IDistributionMonitorService;
import com.njcn.device.pms.service.majornetwork.IMonitorService;
import com.njcn.device.pms.service.majornetwork.IPmsGeneralDeviceService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
@@ -23,6 +28,7 @@ import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.dto.DeptDTO;
import com.njcn.web.factory.PageFactory;
import com.njcn.web.utils.WebUtil;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils;
@@ -56,6 +62,10 @@ implements PwRMpMonitorAlarmCountMService {
private final IPwMonitorServiceImpl iPwMonitorService; //【配网监测点】服务类
private final IPmsGeneralDeviceService iPmsGeneralDeviceService;
private final IDistributionMonitorService iDistributionMonitorService;
/***
* 根据条件查询监测点告警统计(月)(配网)
* @author jianghaifei
@@ -64,7 +74,9 @@ implements PwRMpMonitorAlarmCountMService {
* @return java.util.List<com.njcn.device.pms.pojo.vo.PwRMpMonitorAlarmCountMVO>
*/
@Override
public List<PwRMpMonitorAlarmCountMVO> getPwRMpMonitorAlarmCountMList(RMpMonitorAlarmCountMParam rMpMonitorAlarmCountMParam) {
public Page<PwRMpMonitorAlarmCountMVO> getPwRMpMonitorAlarmCountMList(RMpMonitorAlarmCountMParam rMpMonitorAlarmCountMParam) {
Page<PwRMpMonitorAlarmCountMVO> pageResult = new Page<>(PageFactory.getPageNum(rMpMonitorAlarmCountMParam),PageFactory.getPageSize(rMpMonitorAlarmCountMParam));
//提取查询条件
String id = rMpMonitorAlarmCountMParam.getId(); //单位id
if (StringUtils.isBlank(id)) {
@@ -72,14 +84,12 @@ implements PwRMpMonitorAlarmCountMService {
}
String startTime = rMpMonitorAlarmCountMParam.getStartTime(); //开始时间
String endTime = rMpMonitorAlarmCountMParam.getEndTime(); //结束时间
// String monitorObjectType = rMpMonitorAlarmCountMParam.getMonitorObjectType(); //监测点对象类型id
// List<String> voltageLevelParamList = StringUtils.isNotBlank(rMpMonitorAlarmCountMParam.getVoltageLevel()) ? Arrays.asList(rMpMonitorAlarmCountMParam.getVoltageLevel().split(",")) : null; //电压等级
String monitorName = rMpMonitorAlarmCountMParam.getMeasurementPointName(); //监测点名称
/*获取下级子部门信息*/
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes (id, WebUtil.filterDeptType()).getData ();
if (CollUtil.isEmpty(deptDTOList)) {
return Collections.emptyList();
return new Page<>();
}
List<String> orgCodeList = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
Map<String, DeptDTO> deptDTOMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getCode, deptDTO -> deptDTO));
@@ -91,28 +101,25 @@ implements PwRMpMonitorAlarmCountMService {
Map<String, String> lineSortIdMap = lineSortDict.stream().collect(Collectors.toMap(DictData::getCode, DictData::getId));
//根据条件查询单位下面的所有配网监测点
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(id); //单位id
pwPmsMonitorParam.setMonitorName(monitorName); //监测点名称
List<PwPmsMonitorDTO> pwMonitorList = iPwMonitorService.getPwMonitorList(pwPmsMonitorParam);
//监测点id集合
List<String> monitorIdList = pwMonitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
if (CollUtil.isEmpty(monitorIdList)) {
return new ArrayList<>();
}
//监测点map key:监测点id value:监测点实体
Map<String, PwPmsMonitorDTO> monitorMap = pwMonitorList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(),(key1,kye2)->key1));
List<String> pwMonitorIds = iPmsGeneralDeviceService.getPwPmsMonitorIds(id,rMpMonitorAlarmCountMParam.getMonitorSort());
//根据监测点idList等条件查询【监测点告警月统计】表数据
LambdaQueryWrapper<RMpMonitorAlarmCountM> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(CollUtil.isNotEmpty(orgCodeList), RMpMonitorAlarmCountM::getOrgNo, orgCodeList)
.in(RMpMonitorAlarmCountM::getMeasurementPointId, monitorIdList)
lambdaQueryWrapper
.in(RMpMonitorAlarmCountM::getMeasurementPointId, pwMonitorIds)
.ge(RMpMonitorAlarmCountM::getDataDate, startTime)
.le(RMpMonitorAlarmCountM::getDataDate, endTime)
.eq(RMpMonitorAlarmCountM::getDataType, dataType);
List<RMpMonitorAlarmCountM> alarmCountMList = this.list(lambdaQueryWrapper);
Page<RMpMonitorAlarmCountM> page = this.page(new Page<>(PageFactory.getPageNum(rMpMonitorAlarmCountMParam),PageFactory.getPageSize(rMpMonitorAlarmCountMParam)),lambdaQueryWrapper);
List<RMpMonitorAlarmCountM> alarmCountMList = page.getRecords();
List<PwRMpMonitorAlarmCountMVO> resultList;
if (CollUtil.isNotEmpty(alarmCountMList)) {
//监测点id集合
List<String> monitorIdList = alarmCountMList.stream().map(RMpMonitorAlarmCountM::getMeasurementPointId).distinct().collect(Collectors.toList());
List<PwPmsMonitorDTO> pwMonitorList = iDistributionMonitorService.pwMonitorAreaDetailInfo(monitorIdList);
//监测点map key:监测点id value:监测点实体
Map<String, PwPmsMonitorDTO> monitorMap = pwMonitorList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(),(key1,kye2)->key1));
//封装前端展示的数据
resultList = alarmCountMList.stream().map(item -> {
PwRMpMonitorAlarmCountMVO pwRMpMonitorAlarmCountMVO = new PwRMpMonitorAlarmCountMVO();
@@ -166,10 +173,10 @@ implements PwRMpMonitorAlarmCountMService {
}
return pwRMpMonitorAlarmCountMVO;
}).collect(Collectors.toList());
pageResult.setRecords(resultList);
} else {
resultList = new ArrayList<>();
return new Page<>();
}
return resultList;
return pageResult;
}
}

View File

@@ -6,7 +6,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.mapper.distribution.PwMonitorMapper;
import com.njcn.device.pms.mapper.distribution.RStatPwAlarmCountWMapper;
import com.njcn.device.pms.mapper.majornetwork.DistributionMonitorMapper;
import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PmsMonitorParam;
@@ -21,6 +24,7 @@ import com.njcn.device.pms.service.distribution.IPwMonitorService;
import com.njcn.device.pms.service.distribution.RMpPwAlarmDetailDService;
import com.njcn.device.pms.service.distribution.RStatPwAlarmCountWService;
import com.njcn.device.pms.service.majornetwork.IMonitorService;
import com.njcn.device.pms.service.majornetwork.IPmsGeneralDeviceService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
@@ -54,10 +58,14 @@ public class RStatPwAlarmCountWServiceImpl extends ServiceImpl<RStatPwAlarmCount
private final IPwMonitorService iPwMonitorService;
private final IMonitorService iMonitorService;
private final PwMonitorMapper pwMonitorMapper;
private final RMpPwAlarmDetailDService rMpPwAlarmDetailDService;
private final DistributionMonitorMapper distributionMonitorMapper;
private final IPmsGeneralDeviceService iPmsGeneralDeviceService;
/***
* 查询各单位告警监测点总数、占比、占比同比信息
* @author jianghaifei
@@ -75,15 +83,7 @@ public class RStatPwAlarmCountWServiceImpl extends ServiceImpl<RStatPwAlarmCount
String startTime = rStatPwAlarmCountWParam.getStartTime(); //开始时间
String endTime = rStatPwAlarmCountWParam.getEndTime(); //结束时间
// //获取所有子部门信息
// List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(id, WebUtil.filterDeptType()).getData();
// if (CollUtil.isEmpty(deptDTOList)) {
// throw new BusinessException(CommonResponseEnum.NO_DATA, "部门不存在");
// }
// //单位code集合
// List<String> orgCodeList = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
// //将单位信息转为map集合 key: 单位id value: 单位实体
// Map<String, String> deptNameMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getCode, DeptDTO::getName));
/*获取下级子部门信息*/
List<DeptDTO> deptDTOList = deptFeignClient.getDepSonDetailByDeptId (id).getData ( );
if (CollUtil.isEmpty(deptDTOList)) {
@@ -140,24 +140,34 @@ public class RStatPwAlarmCountWServiceImpl extends ServiceImpl<RStatPwAlarmCount
pwPmsMonitorParam.setOrgId(id); //单位id
pwPmsMonitorParam.setMonitorName(monitorName); //监测点名称
pwPmsMonitorParam.setMonitorSort(monitorSortList); //监测点类别
List<PwPmsMonitorDTO> pwMonitorList = iPwMonitorService.getPwMonitorList(pwPmsMonitorParam);
List<String> pwMonitorIds= iPmsGeneralDeviceService.getPwPmsMonitorIds(id,pwPmsMonitorParam.getMonitorSort());
//配网监测点id集合
List<String> monitorIdList = pwMonitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
if (CollUtil.isEmpty(monitorIdList)) {
if(CollUtil.isEmpty(pwMonitorIds)){
return new Page<>();
}
//监测点map key:监测点id value:监测点实体
Map<String, PwPmsMonitorDTO> monitorMap = pwMonitorList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(),(key1,key2)->key1));
//查询监测点的告警明细
LambdaQueryWrapper<RMpPwAlarmDetailD> alarmDetailWrapper = new LambdaQueryWrapper<>();
alarmDetailWrapper.in(RMpPwAlarmDetailD::getMeasurementPointId, monitorIdList)
alarmDetailWrapper.in(RMpPwAlarmDetailD::getMeasurementPointId, pwMonitorIds)
.in(CollUtil.isNotEmpty(alarmTypeList), RMpPwAlarmDetailD::getAlarmType, alarmTypeList)
.ge(StringUtils.isNotBlank(startTime), RMpPwAlarmDetailD::getDataDate, startTime)
.le(StringUtils.isNotBlank(endTime), RMpPwAlarmDetailD::getDataDate, endTime);
Page<RMpPwAlarmDetailD> alarmDetailListPage = rMpPwAlarmDetailDService.page(new Page<>(pageNum, pageSize), alarmDetailWrapper);
List<RMpPwAlarmDetailD> temList = alarmDetailListPage.getRecords();
List<String> monitorIds = new ArrayList<>();
if(CollUtil.isEmpty(temList)){
return new Page<>();
}
monitorIds = temList.stream().map(RMpPwAlarmDetailD::getMeasurementPointId).distinct().collect(Collectors.toList());
//配网监测点id集合
List<PwPmsMonitorDTO> pwMonitorDataList = distributionMonitorMapper.pwMonitorAreaDetailInfo(monitorIds);
//监测点map key:监测点id value:监测点实体
Map<String, PwPmsMonitorDTO> monitorMap = pwMonitorDataList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(),(key1,key2)->key1));
List<RStatPwAlarmDetailVO> resultList = alarmDetailListPage.getRecords().stream().map(item -> {
RStatPwAlarmDetailVO rStatPwAlarmDetailVO = new RStatPwAlarmDetailVO();
rStatPwAlarmDetailVO.setAlarmType(item.getAlarmType()); //告警类型

View File

@@ -100,6 +100,13 @@ public interface IDistributionMonitorService extends IMppService<DistributionMon
List<PwPmsMonitorDTO> pwMonitorAreaDetailInfo(List<String> monitorIds);
/**
* 根据单位获取配网监测点id集合
* @author cdf
* @date 2023/9/11
*/
List<String> getBaseDisMonitorIds(List<String> orgIds,List<String> monitorSortIds);
/**
* 批量同步台区到配网表

View File

@@ -32,4 +32,7 @@ public interface IPmsGeneralDeviceService {
List<PmsGeneralDeviceDTO> getPmsDeviceInfoByOrgId(PmsDeviceInfoParam pmsDeviceInfoParam);
List<String> getPwPmsMonitorIds(String deptId,List<String> monitorSortIds);
}

View File

@@ -93,7 +93,6 @@ public class DistributionMonitorServiceImpl extends MppServiceImpl<DistributionM
LambdaQueryWrapper<DistributionMonitor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(DistributionMonitor::getStatus, DataStateEnum.ENABLE.getCode())
.eq(DistributionMonitor::getMonitorId, distributionMonitorParam.getMonitorId());
/*.eq(DistributionMonitor::getMonitorSort,dictData.getId());*/
int count = this.count(lambdaQueryWrapper);
if (count > 0) {
throw new BusinessException(PmsDeviceResponseEnum.DIS_ADD_REPEAT);
@@ -370,7 +369,6 @@ public class DistributionMonitorServiceImpl extends MppServiceImpl<DistributionM
*/
@Override
public PmsDistributionMonitorDTO distributionMonitorDetail(String monitorId, String monitorSort, Integer ifPowerUser) {
DictData dictData = dicDataFeignClient.getDicDataById(monitorSort).getData();
if (Objects.isNull(dictData)) {
throw new BusinessException(PmsDeviceResponseEnum.NO_LINE_SORT);
@@ -442,6 +440,11 @@ public class DistributionMonitorServiceImpl extends MppServiceImpl<DistributionM
return distributionMonitorMapper.pwMonitorAreaDetailInfo(monitorIds);
}
@Override
public List<String> getBaseDisMonitorIds(List<String> orgIds,List<String> monitorSortIds) {
return distributionMonitorMapper.getBaseDisMonitorIds(orgIds,monitorSortIds);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean batchOpDistributionArea() {
@@ -459,7 +462,7 @@ public class DistributionMonitorServiceImpl extends MppServiceImpl<DistributionM
new LambdaQueryWrapper<PowerDistributionarea>()
.select(PowerDistributionarea::getId,
PowerDistributionarea::getState,
PowerDistributionarea::getVoltageLevel)
PowerDistributionarea::getVoltageLevel,PowerDistributionarea::getOrgId)
.last(true, "limit " + page+ ",10000"));
List<DistributionMonitor> poList= new ArrayList<>();
@@ -467,6 +470,7 @@ public class DistributionMonitorServiceImpl extends MppServiceImpl<DistributionM
DistributionMonitor distributionMonitor = new DistributionMonitor();
distributionMonitor.setMonitorSort(dictData.getId());
distributionMonitor.setMonitorId(powerDistributionarea.getId());
distributionMonitor.setOrgId(powerDistributionarea.getOrgId());
distributionMonitor.setStatus(DataStateEnum.ENABLE.getCode());
distributionMonitor.setMonitorState(powerDistributionarea.getState());
distributionMonitor.setVoltageLevel(powerDistributionarea.getVoltageLevel());

View File

@@ -105,6 +105,12 @@ public class PmsGeneralDeviceServiceImpl implements IPmsGeneralDeviceService {
return deviceInfos;
}
@Override
public List<String> getPwPmsMonitorIds(String deptId,List<String> monitorSortIds) {
List<String> deptIds = deptFeignClient.getDepSonSelfCodetByDeptId(deptId).getData();
return iDistributionMonitorService.getBaseDisMonitorIds(deptIds,monitorSortIds);
}
/**
* 查询当前部门pms台账信息
* @param deptDTO 部门信息

View File

@@ -23,4 +23,8 @@ public class PwUniversalFrontEndParam extends StatisticsBizBaseParam implements
*/
@ApiModelProperty(name = "monitorSort", value = "监测点类别")
private List<String> monitorSort;
private Integer pageNum;
private Integer pageSize;
}

View File

@@ -52,4 +52,8 @@ public class UniversalFrontEndParam extends StatisticsBizBaseParam implements Se
private String monitorName;
private Integer pageNum;
private Integer pageSize;
}

View File

@@ -1,5 +1,6 @@
package com.njcn.event.controller.distribution;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
@@ -44,9 +45,9 @@ public class PwRmpEventDetailController extends BaseController {
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取暂态事件明细")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<PwRmpEventDetailVO>> getPwRmpEventDetail(@RequestBody UniversalFrontEndParam param) {
public HttpResult<Page<PwRmpEventDetailVO>> getPwRmpEventDetail(@RequestBody UniversalFrontEndParam param) {
String methodDescribe = getMethodDescribe("getPwRmpEventDetail");
List<PwRmpEventDetailVO> list = pwRmpEventDetailService.getPwRmpEventDetail(param);
Page<PwRmpEventDetailVO> list = pwRmpEventDetailService.getPwRmpEventDetail(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -28,7 +28,7 @@ public interface PwRmpEventDetailMapper extends BaseMapper<RmpEventDetailPO> {
* @author yzh
* @date 2022/10/31
*/
List<RmpEventDetailPO> getPwRmpEventDetail(@Param("param") UniversalFrontEndParam param,
Page<RmpEventDetailPO> getPwRmpEventDetail(@Param("page")Page<RmpEventDetailPO> page,@Param("param") UniversalFrontEndParam param,
@Param("monitorIdList") List<String> monitorIdList);
/**

View File

@@ -208,6 +208,7 @@
feature_amplitude AS featureAmplitude
FROM
`r_mp_event_detail`
where start_time between #{startTime} and #{endTime}
</select>
</mapper>

View File

@@ -70,24 +70,20 @@ public class PwEventCategoryDetailsServiceImpl implements PwEventCategoryDetails
@Override
public List<EventDistributionStatisticsTableVO> getPwEventCategoryDetails(StatisticsBizBaseParam param) {
// 获取单位下的监测点id集合
List<PwPmsMonitorDTO> pwPmsMonitorDTOList = getPwMonitorList(param);
if (CollectionUtil.isEmpty(pwPmsMonitorDTOList)) {
return Collections.emptyList();
}
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(param.getId());
List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
// 创建集合,返回数据
List<EventDistributionStatisticsTableVO> vos = new ArrayList<>();
// 将监测点id取出
List<String> monitorIdList = pwPmsMonitorDTOList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
if (CollectionUtil.isEmpty(monitorIdList)) {
if (CollectionUtil.isEmpty(monitorIds)) {
return Collections.emptyList();
}
// 获取暂态指标分布统计
EventDistributionStatisticsPO po = pwEventCategoryDetailsMapper.getPwEventCategoryDetailsMapper(
monitorIdList,
monitorIds,
param.getStartTime(),
param.getEndTime());
@@ -177,23 +173,19 @@ public class PwEventCategoryDetailsServiceImpl implements PwEventCategoryDetails
*/
@Override
public List<SimpleVO> getPwDurationLineChart(StatisticsBizBaseParam param) {
// 获取单位下的监测点id集合
List<PwPmsMonitorDTO> pwPmsMonitorDTOList = getPwMonitorList(param);
if (CollectionUtil.isEmpty(pwPmsMonitorDTOList)) {
return Collections.emptyList();
}
// 创建集合返回数据
List<SimpleVO> result = new ArrayList<>();
// 监测点id取出
List<String> monitorIdList = pwPmsMonitorDTOList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
// 获取单位下的监测点id集合
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(param.getId());
List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
if (CollectionUtil.isEmpty(monitorIdList)) {
if (CollectionUtil.isEmpty(monitorIds)) {
return Collections.emptyList();
}
// 获取持续时间折线图
EventDurationLineChartPO po = pwEventCategoryDetailsMapper.getPwEventDurationLineChart(
monitorIdList,
monitorIds,
param.getStartTime(),
param.getEndTime());
if (ObjectUtil.isEmpty(po)) {
@@ -236,22 +228,19 @@ public class PwEventCategoryDetailsServiceImpl implements PwEventCategoryDetails
*/
@Override
public List<SimpleVO> getPwFeatureAmplitudeLineChart(StatisticsBizBaseParam param) {
// 获取单位下的监测点id集合
List<PwPmsMonitorDTO> pwPmsMonitorDTOList = getPwMonitorList(param);
if (CollectionUtil.isEmpty(pwPmsMonitorDTOList)) {
return Collections.emptyList();
}
// 创建集合返回数据
List<SimpleVO> result = new ArrayList<>();
// 将监测点id取出
List<String> monitorIdList = pwPmsMonitorDTOList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
if (CollectionUtil.isEmpty(monitorIdList)) {
// 获取单位下的监测点id集合
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(param.getId());
List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
if (CollectionUtil.isEmpty(monitorIds)) {
return Collections.emptyList();
}
// 获取特征幅值折线图
EventFeatureAmplitudeLineChartPO po = pwEventCategoryDetailsMapper.getPwEventFeatureAmplitudeLineChart(monitorIdList,
EventFeatureAmplitudeLineChartPO po = pwEventCategoryDetailsMapper.getPwEventFeatureAmplitudeLineChart(monitorIds,
param.getStartTime(),
param.getEndTime());
@@ -312,23 +301,16 @@ public class PwEventCategoryDetailsServiceImpl implements PwEventCategoryDetails
@Override
public EventFeatureAmplitudeCurveVO getPwEventFeatureAmplitudeCurve(StatisticsBizBaseParam param) {
// 获取单位下的监测点id集合
List<PwPmsMonitorDTO> pwPmsMonitorDTOList = getPwMonitorList(param);
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(param.getId());
List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
if (CollectionUtil.isEmpty(pwPmsMonitorDTOList)) {
return EventFeatureAmplitudeCurveVO.empty();
}
// 创建集合返回数据
List<SimpleVO> result = new ArrayList<>();
// 将监测点id取出
List<String> monitorIdList = pwPmsMonitorDTOList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
if (CollectionUtil.isEmpty(monitorIdList)) {
if (CollectionUtil.isEmpty(monitorIds)) {
return EventFeatureAmplitudeCurveVO.empty();
}
// 获取监测点暂态事件明细数据
List<RmpEventDetailPO> rmpEventDetailList = pwEventCategoryDetailsMapper.getPwRmpEventDetail(monitorIdList, param.getStartTime(), param.getEndTime());
List<RmpEventDetailPO> rmpEventDetailList = pwEventCategoryDetailsMapper.getPwRmpEventDetail(monitorIds, param.getStartTime(), param.getEndTime());
if (CollUtil.isEmpty(rmpEventDetailList)) {
return EventFeatureAmplitudeCurveVO.empty();
}
@@ -345,7 +327,6 @@ public class PwEventCategoryDetailsServiceImpl implements PwEventCategoryDetails
return eventFeatureAmplitudeCurve;
})
//.sorted(VoltageToleranceCurveDataList.sortAscTime())
.collect(Collectors.toCollection(() -> Collections.synchronizedList(new ArrayList<>())));
return EventFeatureAmplitudeCurveVO.buildVO(rmpEventDetailList.size(), curveDataList);

View File

@@ -2,6 +2,7 @@ package com.njcn.event.service.distribution.Impl;
import cn.hutool.core.collection.CollUtil;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.api.PwMonitorClient;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
@@ -41,6 +42,8 @@ public class PwEventMonitorReportServiceImpl implements PwEventMonitorReportServ
private final PwEventDistributionStatisticsMapper eventDistributionStatisticsMapper;
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
/***
* 监测点暂态事件发生次数
@@ -52,8 +55,7 @@ public class PwEventMonitorReportServiceImpl implements PwEventMonitorReportServ
@Override
public List<EventMonitorReportVO> getMonitorEventCount(EventMonitorReportParam eventMonitorReportParam) {
//提取查询参数
// String monitorName = eventMonitorReportParam.getMonitorName(); //监测点名称
// String id = eventMonitorReportParam.getId(); //单位id
String startTime = eventMonitorReportParam.getStartTime(); //开始时间
String endTime = eventMonitorReportParam.getEndTime(); //结束时间
Integer type = eventMonitorReportParam.getType(); //时间类型(日/月)
@@ -61,6 +63,7 @@ public class PwEventMonitorReportServiceImpl implements PwEventMonitorReportServ
//查询监测点信息
List<PwPmsMonitorDTO> monitorList = this.getMonitorList(eventMonitorReportParam);
List<String> monitorIdList = monitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList()); //监测点id信息
Map<String, PwPmsMonitorDTO> monitorMap = monitorList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(),(kye1,key2)->kye1));
//获取电压等级的字典
@@ -137,16 +140,15 @@ public class PwEventMonitorReportServiceImpl implements PwEventMonitorReportServ
@Override
public List<EventDipShortDistributionTableVO> getEventDipShortDistributionByCond(EventMonitorReportParam eventMonitorReportParam) {
//提取参数
// String monitorName = eventMonitorReportParam.getMonitorName(); //监测点名称
// String id = eventMonitorReportParam.getId(); //单位id
String startTime = eventMonitorReportParam.getStartTime(); //开始时间
String endTime = eventMonitorReportParam.getEndTime(); //结束时间
Integer type = eventMonitorReportParam.getType(); //时间类型(日/月)
//查询监测点信息
List<PwPmsMonitorDTO> monitorList = this.getMonitorList(eventMonitorReportParam);
List<String> monitorIdList = monitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList()); //监测点id集合
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(eventMonitorReportParam.getId());
List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
//获取暂态指标的字典
List<DictData> eventStatisList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
//将暂态指标信息转成mapkeycode value实体
@@ -154,7 +156,7 @@ public class PwEventMonitorReportServiceImpl implements PwEventMonitorReportServ
//短时中断、暂降分布情况
Map<String, Object> condMap = new HashMap<>();
condMap.put("monitorIdList", monitorIdList);
condMap.put("monitorIdList", monitorIds);
condMap.put("startTime", startTime);
condMap.put("endTime", endTime);
condMap.put("eventTypeList", Arrays.asList(eventStatisMapByCode.get(DicDataEnum.VOLTAGE_DIP.getCode()).getId(), eventStatisMapByCode.get(DicDataEnum.SHORT_INTERRUPTIONS.getCode()).getId()));
@@ -292,23 +294,21 @@ public class PwEventMonitorReportServiceImpl implements PwEventMonitorReportServ
@Override
public List<EventRiseDistributionTableVO> getEventRiseDistributionByCond(EventMonitorReportParam eventMonitorReportParam) {
//提取参数
// String monitorName = eventMonitorReportParam.getMonitorName(); //监测点名称
// String id = eventMonitorReportParam.getId(); //单位id
String startTime = eventMonitorReportParam.getStartTime(); //开始时间
String endTime = eventMonitorReportParam.getEndTime(); //结束时间
Integer type = eventMonitorReportParam.getType(); //时间类型(日/月)
//查询监测点信息
List<PwPmsMonitorDTO> monitorList = this.getMonitorList(eventMonitorReportParam);
List<String> monitorIdList = monitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList()); //监测点id集合
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(eventMonitorReportParam.getId());
List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
//获取暂态指标的字典
List<DictData> eventStatisList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
//将暂态指标信息转成mapkeycode value实体
Map<String, DictData> eventStatisMapByCode = eventStatisList.stream().collect(Collectors.toMap(DictData::getCode, data -> data));
//暂升分布情况
Map<String, Object> riseCondMap = new HashMap<>();
riseCondMap.put("monitorIdList", monitorIdList);
riseCondMap.put("monitorIdList", monitorIds);
riseCondMap.put("startTime", startTime);
riseCondMap.put("endTime", endTime);
riseCondMap.put("eventTypeList", Collections.singletonList(eventStatisMapByCode.get(DicDataEnum.VOLTAGE_RISE.getCode()).getId()));

View File

@@ -1,6 +1,7 @@
package com.njcn.event.service.distribution.Impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.device.pms.api.PwMonitorClient;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
@@ -17,6 +18,8 @@ import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.dto.DeptDTO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
@@ -27,6 +30,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@@ -49,6 +53,8 @@ public class PwRStatOrgServiceImpl implements PwRStatOrgService {
private final PwRStatOrgClassifiedMapper pwRStatOrgClassifiedMapper;
private final DeptFeignClient deptFeignClient;
private final DecimalFormat df = new DecimalFormat("###.00");
/**
@@ -60,16 +66,15 @@ public class PwRStatOrgServiceImpl implements PwRStatOrgService {
@Override
public List<RStatOrgVO> getPwRStatOrg(PwUniversalFrontEndParam param) {
// 获取单位下的监测点id集合
List<PwPmsMonitorDTO> pwPmsMonitorDTOList = getPwMonitorList(param);
if (CollUtil.isEmpty(pwPmsMonitorDTOList)) {
return Collections.emptyList();
}
List<DeptDTO> deptDTOList = deptFeignClient.getDepSonDetailByDeptId(param.getId()).getData();
Map<String,DeptDTO> map = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getCode, Function.identity()));
// 查询字典表
List<DictData> dictDataList = dicDataFeignClient
.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode())
.getData();
// 取出单位id
List<String> deptIdList = pwPmsMonitorDTOList.stream().map(PwPmsMonitorDTO::getOrgId).collect(Collectors.toList());
List<String> deptIdList = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
// 获取配网id
String distributionPoint = getDistributionPoint();
// 创建集合封装查询数据
@@ -110,25 +115,26 @@ public class PwRStatOrgServiceImpl implements PwRStatOrgService {
return rStatOrgPO.stream().map(po -> {
RStatOrgVO vo = new RStatOrgVO();
BeanUtils.copyProperties(po, vo);
for (PwPmsMonitorDTO dto : pwPmsMonitorDTOList) {
if (dto.getOrgId().equals(po.getOrgNo())) {
vo.setOrgName(dto.getOrgName());
for (DictData dictData : dictDataList) {
if (po.getMeasurementTypeClass().equals(dictData.getId())) {
vo.setMonitorSort(dictData.getName());
if (dictData.getCode().equals(DicDataEnum.ONE_LINE.getCode())) {
vo.setEventMeasurementRatioAverage(df.format(((po.getEventMeasurementAverage() * 1.0) / (po.getEffectiveMeasurementAverage() * 1.0)) * 100));
vo.setEventMeasurementRatioAccrued(df.format(((po.getEventMeasurementAccrued() * 1.0) / (po.getEffectiveMeasurementAccrued() * 1.0)) * 100));
vo.setEventFreq(po.getEventFreq().toString());
} else {
vo.setEventMeasurementRatioAverage("/");
vo.setEventMeasurementRatioAccrued("/");
vo.setEventFreq("/");
}
if(map.containsKey(po.getOrgNo())){
DeptDTO dto = map.get(po.getOrgNo());
vo.setOrgName(dto.getName());
for (DictData dictData : dictDataList) {
if (po.getMeasurementTypeClass().equals(dictData.getId())) {
vo.setMonitorSort(dictData.getName());
if (dictData.getCode().equals(DicDataEnum.ONE_LINE.getCode())) {
vo.setEventMeasurementRatioAverage(df.format(((po.getEventMeasurementAverage() * 1.0) / (po.getEffectiveMeasurementAverage() * 1.0)) * 100));
vo.setEventMeasurementRatioAccrued(df.format(((po.getEventMeasurementAccrued() * 1.0) / (po.getEffectiveMeasurementAccrued() * 1.0)) * 100));
vo.setEventFreq(po.getEventFreq().toString());
} else {
vo.setEventMeasurementRatioAverage("/");
vo.setEventMeasurementRatioAccrued("/");
vo.setEventFreq("/");
}
}
}
}
return vo;
}).collect(Collectors.toList());
}
@@ -141,14 +147,12 @@ public class PwRStatOrgServiceImpl implements PwRStatOrgService {
*/
@Override
public List<PwRStatEventOrgVO> getPwRStatOrgClassified(PwUniversalFrontEndParam param) {
List<PwPmsMonitorDTO> pwPmsMonitorDTOList = getPwMonitorList(param);
if (CollUtil.isEmpty(pwPmsMonitorDTOList)) {
return Collections.emptyList();
}
List<DeptDTO> deptDTOList = deptFeignClient.getDepSonDetailByDeptId(param.getId()).getData();
// 创建集合封装返回数据
List<PwRStatEventOrgVO> result = new ArrayList<>();
// 取出单位id
List<String> deptIdList = pwPmsMonitorDTOList.stream().map(PwPmsMonitorDTO::getOrgId).collect(Collectors.toList());
List<String> deptIdList = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
// 创建集合封装查询数据
List<RStatEventOrgPO> rStatEventOrgVOList = new ArrayList<>();
// 获取配网id
@@ -199,16 +203,15 @@ public class PwRStatOrgServiceImpl implements PwRStatOrgService {
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getId, DictData -> DictData));
// 根据暂态指标code转换成map
Map<String, DictData> eventStatisMap = eventStatisList.stream().collect(Collectors.toMap(DictData::getId, DictData -> DictData));
// 蒋配网监测点信息根据单位转换成map
Map<String, List<PwPmsMonitorDTO>> pwPmsMonitorDTOMap =
pwPmsMonitorDTOList.stream().collect(Collectors.groupingBy(PwPmsMonitorDTO::getOrgId));
// 数据处理
Map<String,DeptDTO> map = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getCode, Function.identity()));
rStatEventOrgVOMap.forEach((orgOn, pos) -> {
PwRStatEventOrgVO vo = new PwRStatEventOrgVO();
// 基础属性赋值
if (vo.getOrgNo() == null) {
vo.setOrgNo(pos.get(0).getOrgNo());
vo.setOrgName(pwPmsMonitorDTOMap.get(pos.get(0).getOrgNo()).get(0).getOrgName());
vo.setOrgName(map.get(orgOn).getName());
vo.setDataDate(pos.get(0).getDataDate());
vo.setMeasurementTypeClass(pos.get(0).getMeasurementTypeClass());
vo.setEffectiveMeasurementAverage(pos.get(0).getEffectiveMeasurementAverage());

View File

@@ -1,7 +1,10 @@
package com.njcn.event.service.distribution.Impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.device.pms.api.DistributionMonitorClient;
import com.njcn.device.pms.api.MonitorClient;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.api.PwMonitorClient;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
@@ -19,6 +22,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -44,6 +48,10 @@ public class PwRmpEventDetailServiceImpl implements PwRmpEventDetailService {
private final MonitorClient monitorClient;
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
private final DistributionMonitorClient distributionMonitorClient;
/**
* 获取配网暂态事件明细
*
@@ -53,31 +61,38 @@ public class PwRmpEventDetailServiceImpl implements PwRmpEventDetailService {
* @date 2022/10/31
*/
@Override
public List<PwRmpEventDetailVO> getPwRmpEventDetail(UniversalFrontEndParam param) {
public Page<PwRmpEventDetailVO> getPwRmpEventDetail(UniversalFrontEndParam param) {
Page<PwRmpEventDetailVO> pageResult = new Page<>(param.getPageNum(),param.getPageSize());
// 获取单位下的监测点id集合
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(param.getId());
pwPmsMonitorParam.setMonitorName(param.getMonitorName());
List<PwPmsMonitorDTO> pwPmsMonitorDTOList = pwMonitorClient
.getPwMonitorList(pwPmsMonitorParam)
.getData();
List<String> pwPmsMonitorDTOList = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
if (CollectionUtil.isEmpty(pwPmsMonitorDTOList)) {
return Collections.emptyList();
return pageResult;
}
// 获取配网暂态事件明细
List<RmpEventDetailPO> rmpEventDetailsPO = pwRmpEventDetailMapper.getPwRmpEventDetail(param,
pwPmsMonitorDTOList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList()));
if (CollectionUtil.isEmpty(rmpEventDetailsPO)) {
return Collections.emptyList();
Page<RmpEventDetailPO> rmpEventDetailsPO = pwRmpEventDetailMapper.getPwRmpEventDetail(new Page<>(param.getPageNum(),param.getPageSize()),param,
pwPmsMonitorDTOList);
List<RmpEventDetailPO> temList = rmpEventDetailsPO.getRecords();
if (CollectionUtil.isEmpty(temList)) {
return pageResult;
}
List<String> ids = temList.stream().map(RmpEventDetailPO::getMeasurementPointId).distinct().collect(Collectors.toList());
List<PwPmsMonitorDTO> pList = distributionMonitorClient.pwMonitorAreaDetailInfo(ids).getData();
Map<String,PwPmsMonitorDTO> pwPmsMonitorDTOMap = pList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId,Function.identity()));
// 查询检测点类型字典
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
// 将单位信息转为map集合 key: 单位id value: 单位实体
Map<String, PwPmsMonitorDTO> pwPmsMonitorDTOMap = pwPmsMonitorDTOList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, PwPmsMonitorDTO -> PwPmsMonitorDTO, (oldValue, newValue) -> oldValue));
// 属性赋值
return rmpEventDetailsPO.stream().map(po -> {
List<PwRmpEventDetailVO> t = new ArrayList<>();
temList.forEach(po -> {
PwRmpEventDetailVO vo = new PwRmpEventDetailVO();
BeanUtils.copyProperties(po, vo);
vo.setMonitorId(po.getMeasurementPointId());
@@ -109,8 +124,10 @@ public class PwRmpEventDetailServiceImpl implements PwRmpEventDetailService {
}
}
}
return vo;
}).collect(Collectors.toList());
t.add(vo);
});
pageResult.setRecords(t);
return pageResult;
}
}

View File

@@ -1,5 +1,6 @@
package com.njcn.event.service.distribution;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.event.pojo.param.PwUniversalFrontEndParam;
import com.njcn.event.pojo.vo.PwRStatEventOrgVO;
import com.njcn.event.pojo.vo.RStatOrgVO;

View File

@@ -1,5 +1,6 @@
package com.njcn.event.service.distribution;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.event.pojo.param.UniversalFrontEndParam;
import com.njcn.event.pojo.vo.PwRmpEventDetailVO;
@@ -22,5 +23,5 @@ public interface PwRmpEventDetailService {
* @author yzh
* @date 2022/10/31
*/
List<PwRmpEventDetailVO> getPwRmpEventDetail(UniversalFrontEndParam param);
Page<PwRmpEventDetailVO> getPwRmpEventDetail(UniversalFrontEndParam param);
}

View File

@@ -30,7 +30,10 @@ public class RStatOrgParam extends StatisticsBizBaseParam {
@ApiModelProperty(name = "monitorSort", value = "监测点类别")
private List<String> monitorSort;
// @ApiModelProperty(name = "voltageLevels", value = "电压等级")
// private List<String> voltageLevels;
private Integer pageNum;
private Integer pageSize;
}
}

View File

@@ -2,6 +2,7 @@ package com.njcn.harmonic.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDate;
@@ -215,6 +216,7 @@ public class RMpPartHarmonicDetailVO {
private Integer flickerOverDay;
@Data
@EqualsAndHashCode(callSuper = true)
public static class PwRMpPartHarmonicDetailDVO extends RMpPartHarmonicDetailVO {
/**
* 监测点类别

View File

@@ -1,6 +1,7 @@
package com.njcn.harmonic.controller.distribution;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
@@ -77,9 +78,9 @@ public class PwRStatOrgController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("稳态指标超标明细表")
@ApiImplicitParam(name = "param", value = "超标明细参数", required = true)
public HttpResult<List<RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO>> getPwRMpPartHarmonicDetail(@RequestBody RStatOrgParam.PwRStatOrgParam param) {
public HttpResult<Page<RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO>> getPwRMpPartHarmonicDetail(@RequestBody RStatOrgParam.PwRStatOrgParam param) {
String methodDescribe = getMethodDescribe("getPwRMpPartHarmonicDetail");
List<RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO> rMpPartHarmonicDetail = pwRStatOrgService.getRMpPartHarmonicDetail(param);
Page<RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO> rMpPartHarmonicDetail = pwRStatOrgService.getRMpPartHarmonicDetail(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rMpPartHarmonicDetail, methodDescribe);
}
@@ -123,11 +124,11 @@ public class PwRStatOrgController extends BaseController {
*/
@PostMapping("/getPwRMpPassRateInfo")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("稳态指标合格率明细表")
@ApiOperation("配网稳态指标合格率明细表")
@ApiImplicitParam(name = "param", value = "超标合格率明细参数", required = true)
public HttpResult<List<PwRStatOrgVO.PwRStatOrgDetailVO>> getPwRMpPassRateInfo(@RequestBody RStatOrgParam.PwRStatOrgParam param) {
public HttpResult<Page<PwRStatOrgVO.PwRStatOrgDetailVO>> getPwRMpPassRateInfo(@RequestBody RStatOrgParam.PwRStatOrgParam param) {
String methodDescribe = getMethodDescribe("getPwRMpPassRateInfo");
List<PwRStatOrgVO.PwRStatOrgDetailVO> rStatOrg = pwRStatOrgService.getRMpPassRateInfo(param);
Page<PwRStatOrgVO.PwRStatOrgDetailVO> rStatOrg = pwRStatOrgService.getRMpPassRateInfo(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatOrg, methodDescribe);
}

View File

@@ -1,5 +1,6 @@
package com.njcn.harmonic.mapper.majornetwork;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
import com.njcn.harmonic.pojo.po.RMpPassRateM;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -24,4 +25,6 @@ public interface RMpPassRateMMapper extends BaseMapper<RMpPassRateM> {
* @return
*/
List<RStatOrgIndexVO> getMonthPassRate(@Param("param") StatSubstationBizBaseParam baseParam);
Page<RStatOrgIndexVO> getPwMonthPassRate(@Param("page") Page<RStatOrgIndexVO> page, @Param("param") StatSubstationBizBaseParam baseParam);
}

View File

@@ -1,5 +1,6 @@
package com.njcn.harmonic.mapper.majornetwork;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
import com.njcn.harmonic.pojo.po.RMpPassRateQ;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -24,4 +25,6 @@ public interface RMpPassRateQMapper extends BaseMapper<RMpPassRateQ> {
* @return
*/
List<RStatOrgIndexVO> getQuarterPassRate(@Param("param") StatSubstationBizBaseParam baseParam);
Page<RStatOrgIndexVO> getPwQuarterPassRate(@Param("page")Page<RStatOrgIndexVO> page,@Param("param") StatSubstationBizBaseParam baseParam);
}

View File

@@ -1,5 +1,6 @@
package com.njcn.harmonic.mapper.majornetwork;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
import com.njcn.harmonic.pojo.po.RMpPassRateY;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -24,4 +25,6 @@ public interface RMpPassRateYMapper extends BaseMapper<RMpPassRateY> {
* @return
*/
List<RStatOrgIndexVO> getYearPassRate(@Param("param") StatSubstationBizBaseParam baseParam);
Page<RStatOrgIndexVO> getPageYearPassRate(Page<RStatOrgIndexVO> page, @Param("param") StatSubstationBizBaseParam baseParam);
}

View File

@@ -1,5 +1,6 @@
package com.njcn.harmonic.mapper.majornetwork;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailM;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -24,4 +25,8 @@ public interface RMpSurplusHarmonicDetailMMapper extends BaseMapper<RMpSurplusHa
* @return
*/
List<RMpPartHarmonicDetailVO> getRMpPartHarmonicDetail(@Param("param") StatSubstationBizBaseParam param);
Page<RMpPartHarmonicDetailVO> getPwRMpPartHarmonicDetail(Page<RMpPartHarmonicDetailVO> page,@Param("param") StatSubstationBizBaseParam param);
}

View File

@@ -35,4 +35,28 @@
</where>
</select>
<select id="getPwMonthPassRate" resultType="com.njcn.harmonic.pojo.vo.RStatOrgIndexVO">
SELECT
measurement_point_id,
data_date,
freq_pass_rate,
v_dev_pass_rate,
flicker_pass_rate
FROM
r_mp_pass_rate_m
<where>
<if test="param != null and param.ids != null and param.ids.size > 0">
AND measurement_point_id IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test="param!=null and param.startTime != null and param.startTime !=''">
AND data_date >= #{param.startTime}
</if>
<if test="param!=null and param.endTime != null and param.endTime != ''">
AND data_date &lt;= #{param.endTime}
</if>
</where>
</select>
</mapper>

View File

@@ -35,4 +35,30 @@
</where>
</select>
<select id="getPwQuarterPassRate" resultType="com.njcn.harmonic.pojo.vo.RStatOrgIndexVO">
SELECT
measurement_point_id,
data_date,
freq_pass_rate,
v_dev_pass_rate,
flicker_pass_rate
FROM
r_mp_pass_rate_q
<where>
<if test="param != null and param.ids != null and param.ids.size > 0">
AND measurement_point_id IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test="param!=null and param.startTime != null and param.startTime !=''">
AND data_date >= #{param.startTime}
</if>
<if test="param!=null and param.endTime != null and param.endTime != ''">
AND data_date &lt;= #{param.endTime}
</if>
</where>
</select>
</mapper>

View File

@@ -35,4 +35,30 @@
</where>
</select>
<select id="getPageYearPassRate" resultType="com.njcn.harmonic.pojo.vo.RStatOrgIndexVO">
SELECT
measurement_point_id,
data_date,
freq_pass_rate,
v_dev_pass_rate,
flicker_pass_rate
FROM
r_mp_pass_rate_y
<where>
<if test="param != null and param.ids != null and param.ids.size > 0">
AND measurement_point_id IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test="param!=null and param.startTime != null and param.startTime !=''">
AND data_date >= #{param.startTime}
</if>
<if test="param!=null and param.endTime != null and param.endTime != ''">
AND data_date &lt;= #{param.endTime}
</if>
</where>
</select>
</mapper>

View File

@@ -167,4 +167,114 @@
</where>
</select>
<select id="getPwRMpPartHarmonicDetail" resultType="com.njcn.harmonic.pojo.vo.RMpPartHarmonicDetailVO">
select
rms.measurement_point_id,
rmphdm.data_date,
rms.inuharm_over_day,
rms.inuharm_1_over_day,
rms.inuharm_2_over_day,
rms.inuharm_3_over_day,
rms.inuharm_4_over_day,
rms.inuharm_5_over_day,
rms.inuharm_6_over_day,
rms.inuharm_7_over_day,
rms.inuharm_8_over_day,
rms.inuharm_9_over_day,
rms.inuharm_10_over_day,
rms.inuharm_11_over_day,
rms.inuharm_12_over_day,
rms.inuharm_13_over_day,
rms.inuharm_14_over_day,
rms.inuharm_15_over_day,
rms.inuharm_16_over_day,
rms.inuharm_17_over_day,
rms.inuharm_18_over_day,
rms.inuharm_19_over_day,
rms.inuharm_20_over_day,
rms.inuharm_21_over_day,
rms.inuharm_22_over_day,
rms.inuharm_23_over_day,
rms.inuharm_24_over_day,
rms.flicker_over_day,
rmphdm.measurement_point_id,
rmphdm.measurement_over_day,
rmphdm.freq_over_day,
rmphdm.v_dev_up_over_day,
rmphdm.v_dev_low_over_day,
rmphdm.v_dev_over_day,
rmphdm.v_thd_over_day,
rmphdm.v_over_day,
rmphdm.i_over_day,
rmphdm.v_2_over_day,
rmphdm.v_3_over_day,
rmphdm.v_4_over_day,
rmphdm.v_5_over_day,
rmphdm.v_6_over_day,
rmphdm.v_7_over_day,
rmphdm.v_8_over_day,
rmphdm.v_9_over_day,
rmphdm.v_10_over_day,
rmphdm.v_11_over_day,
rmphdm.v_12_over_day,
rmphdm.v_13_over_day,
rmphdm.v_14_over_day,
rmphdm.v_15_over_day,
rmphdm.v_16_over_day,
rmphdm.v_17_over_day,
rmphdm.v_18_over_day,
rmphdm.v_19_over_day,
rmphdm.v_20_over_day,
rmphdm.v_21_over_day,
rmphdm.v_22_over_day,
rmphdm.v_23_over_day,
rmphdm.v_24_over_day,
rmphdm.v_25_over_day,
rmphdm.i_2_over_day,
rmphdm.i_3_over_day,
rmphdm.i_4_over_day,
rmphdm.i_5_over_day,
rmphdm.i_6_over_day,
rmphdm.i_7_over_day,
rmphdm.i_8_over_day,
rmphdm.i_9_over_day,
rmphdm.i_10_over_day,
rmphdm.i_11_over_day,
rmphdm.i_12_over_day,
rmphdm.i_13_over_day,
rmphdm.i_14_over_day,
rmphdm.i_15_over_day,
rmphdm.i_16_over_day,
rmphdm.i_17_over_day,
rmphdm.i_18_over_day,
rmphdm.i_19_over_day,
rmphdm.i_20_over_day,
rmphdm.i_21_over_day,
rmphdm.i_22_over_day,
rmphdm.i_23_over_day,
rmphdm.i_24_over_day,
rmphdm.i_25_over_day,
rmphdm.unbalance_over_day,
rmphdm.i_neg_over_day
from r_mp_surplus_harmonic_detail_m rms
right join r_mp_part_harmonic_detail_m rmphdm on rms.measurement_point_id = rmphdm.measurement_point_id
and rms.data_date=rmphdm.data_date
<where>
<if test="param != null and param.ids != null and param.ids.size > 0">
AND rmphdm.measurement_point_id IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test="param!=null and param.startTime != null and param.startTime !=''">
AND rmphdm.data_date >= #{param.startTime} AND rms.data_date >= #{param.startTime}
</if>
<if test="param!=null and param.endTime != null and param.endTime != ''">
AND rmphdm.data_date &lt;= #{param.endTime} AND rms.data_date &lt;= #{param.endTime}
</if>
</where>
</select>
</mapper>

View File

@@ -1,5 +1,6 @@
package com.njcn.harmonic.service.distribution;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.harmonic.pojo.param.RStatOrgParam;
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
@@ -40,7 +41,7 @@ public interface PwRStatOrgService extends IService<RStatOrgQ> {
* @param param
* @return
*/
List<PwRStatOrgVO.PwRStatOrgDetailVO> getRMpPassRateInfo(RStatOrgParam.PwRStatOrgParam param);
Page<PwRStatOrgVO.PwRStatOrgDetailVO> getRMpPassRateInfo(RStatOrgParam.PwRStatOrgParam param);
/**
* 配网区域稳态指标超标分类统计表
@@ -56,7 +57,7 @@ public interface PwRStatOrgService extends IService<RStatOrgQ> {
* @param param
* @return
*/
List<RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO> getRMpPartHarmonicDetail(RStatOrgParam.PwRStatOrgParam param);
Page<RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO> getRMpPartHarmonicDetail(RStatOrgParam.PwRStatOrgParam param);
/**
* 变电站稳态指标超标分类统计表

View File

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pms.api.DistributionMonitorClient;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.api.PwMonitorClient;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
@@ -37,6 +39,10 @@ public class PwRMpBenchmarkLevelMServiceImpl extends ServiceImpl<PwRMpBenchmarkL
private final PwMonitorClient pwMonitorClient;
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
private final DistributionMonitorClient distributionMonitorClient;
/***
* 配网-全网基准水平
@@ -47,6 +53,8 @@ public class PwRMpBenchmarkLevelMServiceImpl extends ServiceImpl<PwRMpBenchmarkL
*/
@Override
public Page<PwRMpBenchmarkLevelVO> getPwRMpBenchmarkLevelList(RMpBenchmarkLevelParam rMpBenchmarkLevelParam) {
Page<PwRMpBenchmarkLevelVO> pageResult = new Page<>(rMpBenchmarkLevelParam.getPageNum(),rMpBenchmarkLevelParam.getPageSize());
//提取查询条件
String id = rMpBenchmarkLevelParam.getId(); //单位id
if (StringUtils.isBlank(id)) {
@@ -62,25 +70,33 @@ public class PwRMpBenchmarkLevelMServiceImpl extends ServiceImpl<PwRMpBenchmarkL
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(id); //单位id
pwPmsMonitorParam.setVoltageLevels(voltageLevelParamList); //电压等级
List<PwPmsMonitorDTO> pwMonitorList = pwMonitorClient.getPwMonitorList(pwPmsMonitorParam).getData();
if (CollUtil.isEmpty(pwMonitorList)) {
List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
if (CollUtil.isEmpty(monitorIds)) {
return new Page<>();
}
//监测点id集合
List<String> monitorIdList = pwMonitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
//监测点map key:监测点id value:监测点实体
Map<String, PwPmsMonitorDTO> monitorMap = pwMonitorList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(), (key1, key2) -> key1));
//查询【基准水平-月】数据
/*组装条件where measurement_point_id in (monitorIdList) and data_date >= startTime
and data_date <= endTime and voltage_level
*/
LambdaQueryWrapper<RMpBenchmarkLevelM> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(CollUtil.isNotEmpty(monitorIdList), RMpBenchmarkLevelM::getMeasurementPointId, monitorIdList)
lambdaQueryWrapper.in(RMpBenchmarkLevelM::getMeasurementPointId, monitorIds)
.ge(StringUtils.isNotBlank(startTime), RMpBenchmarkLevelM::getDataDate, startTime)
.le(StringUtils.isNotBlank(endTime), RMpBenchmarkLevelM::getDataDate, endTime);
Page<RMpBenchmarkLevelM> listPage = this.page(new Page<>(pageNum, pageSize), lambdaQueryWrapper);
List<PwRMpBenchmarkLevelVO> resultList = listPage.getRecords().stream().map(item -> {
List<RMpBenchmarkLevelM> temList = listPage.getRecords();
if(CollUtil.isEmpty(temList)){
pageResult.setTotal(listPage.getTotal());
return pageResult;
}
//监测点id集合
List<String> monitorIdList = temList.stream().map(RMpBenchmarkLevelM::getMeasurementPointId).distinct().collect(Collectors.toList());
List<PwPmsMonitorDTO> pwMonitorList = distributionMonitorClient.pwMonitorAreaDetailInfo(monitorIdList).getData();
//监测点map key:监测点id value:监测点实体
Map<String, PwPmsMonitorDTO> monitorMap = pwMonitorList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(), (key1, key2) -> key1));
List<PwRMpBenchmarkLevelVO> resultList = temList.stream().map(item -> {
//封装前端需要的对象
PwRMpBenchmarkLevelVO rMpBenchmarkLevelVO = new PwRMpBenchmarkLevelVO();
BeanUtils.copyProperties(item, rMpBenchmarkLevelVO);

View File

@@ -6,14 +6,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pms.api.DistributionMonitorClient;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.api.PwMonitorClient;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
import com.njcn.device.pms.pojo.vo.PwRMpMonitorAlarmCountMVO;
import com.njcn.harmonic.mapper.distribution.PwRMpBenchmarkLevelQMapper;
import com.njcn.harmonic.pojo.param.RMpBenchmarkLevelParam;
import com.njcn.harmonic.pojo.po.RMpBenchmarkLevelM;
import com.njcn.harmonic.pojo.po.RMpBenchmarkLevelQ;
import com.njcn.harmonic.pojo.vo.PwRMpBenchmarkLevelVO;
import com.njcn.harmonic.service.distribution.PwRMpBenchmarkLevelQService;
import com.njcn.web.factory.PageFactory;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
@@ -37,6 +42,11 @@ implements PwRMpBenchmarkLevelQService {
private final PwMonitorClient pwMonitorClient;
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
private final DistributionMonitorClient distributionMonitorClient;
/***
* 配网-全网基准水平
* @author jianghaifei
@@ -46,6 +56,8 @@ implements PwRMpBenchmarkLevelQService {
*/
@Override
public Page<PwRMpBenchmarkLevelVO> getPwRMpBenchmarkLevelList(RMpBenchmarkLevelParam rMpBenchmarkLevelParam) {
Page<PwRMpBenchmarkLevelVO> pageResult = new Page<>(rMpBenchmarkLevelParam.getPageNum(),rMpBenchmarkLevelParam.getPageSize());
//提取查询条件
String id = rMpBenchmarkLevelParam.getId(); //单位id
if (StringUtils.isBlank(id)) {
@@ -61,24 +73,30 @@ implements PwRMpBenchmarkLevelQService {
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(id); //单位id
pwPmsMonitorParam.setVoltageLevels(voltageLevelParamList); //电压等级
List<PwPmsMonitorDTO> pwMonitorList = pwMonitorClient.getPwMonitorList(pwPmsMonitorParam).getData();
if (CollUtil.isEmpty(pwMonitorList)) {
List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
if (CollUtil.isEmpty(monitorIds)) {
return new Page<>();
}
//监测点id集合
List<String> monitorIdList = pwMonitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
//监测点map key:监测点id value:监测点实体
Map<String, PwPmsMonitorDTO> monitorMap = pwMonitorList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(), (key1, key2)->key1));
//查询【基准水平-季】数据
/*组装条件where measurement_point_id in (monitorIdList) and data_date >= startTime
and data_date <= endTime and voltage_level
*/
LambdaQueryWrapper<RMpBenchmarkLevelQ> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(CollUtil.isNotEmpty(monitorIdList), RMpBenchmarkLevelQ::getMeasurementPointId, monitorIdList)
lambdaQueryWrapper.in(RMpBenchmarkLevelQ::getMeasurementPointId, monitorIds)
.ge(StringUtils.isNotBlank(startTime), RMpBenchmarkLevelQ::getDataDate, startTime)
.le(StringUtils.isNotBlank(endTime), RMpBenchmarkLevelQ::getDataDate, endTime);
Page<RMpBenchmarkLevelQ> listPage = this.page(new Page<>(pageNum, pageSize), lambdaQueryWrapper);
List<RMpBenchmarkLevelQ> temList = listPage.getRecords();
if(CollUtil.isEmpty(temList)){
pageResult.setTotal(listPage.getTotal());
return pageResult;
}
//监测点id集合
List<String> monitorIdList = temList.stream().map(RMpBenchmarkLevelQ::getMeasurementPointId).distinct().collect(Collectors.toList());
List<PwPmsMonitorDTO> pwMonitorList = distributionMonitorClient.pwMonitorAreaDetailInfo(monitorIdList).getData();
//监测点map key:监测点id value:监测点实体
Map<String, PwPmsMonitorDTO> monitorMap = pwMonitorList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(), (key1, key2)->key1));
List<PwRMpBenchmarkLevelVO> resultList = listPage.getRecords().stream().map(item -> {
//封装前端需要的对象
PwRMpBenchmarkLevelVO rMpBenchmarkLevelVO = new PwRMpBenchmarkLevelVO();

View File

@@ -6,11 +6,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pms.api.DistributionMonitorClient;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.api.PwMonitorClient;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
import com.njcn.harmonic.mapper.distribution.PwRMpBenchmarkLevelYMapper;
import com.njcn.harmonic.pojo.param.RMpBenchmarkLevelParam;
import com.njcn.harmonic.pojo.po.RMpBenchmarkLevelM;
import com.njcn.harmonic.pojo.po.RMpBenchmarkLevelY;
import com.njcn.harmonic.pojo.vo.PwRMpBenchmarkLevelVO;
import com.njcn.harmonic.service.distribution.PwRMpBenchmarkLevelYService;
@@ -38,6 +41,11 @@ implements PwRMpBenchmarkLevelYService {
private final PwMonitorClient pwMonitorClient;
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
private final DistributionMonitorClient distributionMonitorClient;
/***
* 配网-全网基准水平
* @author jianghaifei
@@ -47,6 +55,8 @@ implements PwRMpBenchmarkLevelYService {
*/
@Override
public Page<PwRMpBenchmarkLevelVO> getPwRMpBenchmarkLevelList(RMpBenchmarkLevelParam rMpBenchmarkLevelParam) {
Page<PwRMpBenchmarkLevelVO> pageResult = new Page<>(rMpBenchmarkLevelParam.getPageNum(),rMpBenchmarkLevelParam.getPageSize());
//提取查询条件
String id = rMpBenchmarkLevelParam.getId(); //单位id
if (StringUtils.isBlank(id)) {
@@ -58,29 +68,39 @@ implements PwRMpBenchmarkLevelYService {
Integer pageNum = rMpBenchmarkLevelParam.getPageNum() != null && rMpBenchmarkLevelParam.getPageNum() != 0 ? rMpBenchmarkLevelParam.getPageNum() : 1; //页码
Integer pageSize = rMpBenchmarkLevelParam.getPageSize() != null && rMpBenchmarkLevelParam.getPageSize() != 0 ? rMpBenchmarkLevelParam.getPageSize() : 10; //页面尺寸
//根据条件查询单位下面的所有配网监测点
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(id); //单位id
pwPmsMonitorParam.setVoltageLevels(voltageLevelParamList); //电压等级
List<PwPmsMonitorDTO> pwMonitorList = pwMonitorClient.getPwMonitorList(pwPmsMonitorParam).getData();
if (CollUtil.isEmpty(pwMonitorList)) {
List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
if (CollUtil.isEmpty(monitorIds)) {
return new Page<>();
}
//监测点id集合
List<String> monitorIdList = pwMonitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
//监测点map key:监测点id value:监测点实体
Map<String, PwPmsMonitorDTO> monitorMap = pwMonitorList.stream().collect(
Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(), (key1, key2) -> key1));
//查询【基准水平-年】数据
/*组装条件where measurement_point_id in (monitorIdList) and data_date >= startTime
and data_date <= endTime and voltage_level
*/
LambdaQueryWrapper<RMpBenchmarkLevelY> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(CollUtil.isNotEmpty(monitorIdList), RMpBenchmarkLevelY::getMeasurementPointId, monitorIdList)
lambdaQueryWrapper.in(RMpBenchmarkLevelY::getMeasurementPointId, monitorIds)
.ge(StringUtils.isNotBlank(startTime), RMpBenchmarkLevelY::getDataDate, startTime)
.le(StringUtils.isNotBlank(endTime), RMpBenchmarkLevelY::getDataDate, endTime);
Page<RMpBenchmarkLevelY> listPage = this.page(new Page<>(pageNum, pageSize), lambdaQueryWrapper);
List<RMpBenchmarkLevelY> temList = listPage.getRecords();
if(CollUtil.isEmpty(temList)){
pageResult.setTotal(listPage.getTotal());
return pageResult;
}
//监测点id集合
List<String> monitorIdList = temList.stream().map(RMpBenchmarkLevelY::getMeasurementPointId).distinct().collect(Collectors.toList());
List<PwPmsMonitorDTO> pwMonitorList = distributionMonitorClient.pwMonitorAreaDetailInfo(monitorIdList).getData();
//监测点map key:监测点id value:监测点实体
Map<String, PwPmsMonitorDTO> monitorMap = pwMonitorList.stream().collect(
Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(), (key1, key2) -> key1));
List<PwRMpBenchmarkLevelVO> resultList = listPage.getRecords().stream().map(item -> {
//封装前端需要的对象

View File

@@ -3,9 +3,11 @@ package com.njcn.harmonic.service.distribution.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.common.pojo.dto.SimpleDTO;
import com.njcn.device.pms.api.DistributionMonitorClient;
import com.njcn.device.pms.api.MonitorClient;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.api.PwMonitorClient;
@@ -69,6 +71,8 @@ public class PwRStatOrgServiceImpl extends ServiceImpl<PwRStatOrgMapper, RStatOr
private final MonitorClient monitorClient;
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
private final DistributionMonitorClient distributionMonitorClient;
@Override
public List<RStatOrgVO.PwRStatOrgVO> getRStatHarmonicAll(StatSubstationBizBaseParam param) {
//获取当前部门下所有部门信息
@@ -161,7 +165,8 @@ public class PwRStatOrgServiceImpl extends ServiceImpl<PwRStatOrgMapper, RStatOr
}
@Override
public List<PwRStatOrgVO.PwRStatOrgDetailVO> getRMpPassRateInfo(RStatOrgParam.PwRStatOrgParam param) {
public Page<PwRStatOrgVO.PwRStatOrgDetailVO> getRMpPassRateInfo(RStatOrgParam.PwRStatOrgParam param) {
Page<PwRStatOrgVO.PwRStatOrgDetailVO> pageResult = new Page<>(param.getPageNum(),param.getPageSize());
//初始化对象
List<RStatOrgIndexVO> info = new ArrayList<>();
// 获取当前用户的部门的子部门信息
@@ -176,34 +181,41 @@ public class PwRStatOrgServiceImpl extends ServiceImpl<PwRStatOrgMapper, RStatOr
pwPmsMonitorParam.setMonitorSort(param.getMonitorSort());
//监测点名称
pwPmsMonitorParam.setMonitorName(param.getMonitorName());
List<PwPmsMonitorDTO> monitorDTOList = pwMonitorClient.getPwMonitorList(pwPmsMonitorParam).getData();
List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
if (CollectionUtil.isNotEmpty(monitorIds)) {
if (CollectionUtil.isNotEmpty(monitorDTOList)) {
Map<String, PwPmsMonitorDTO> monitorDTOMap = monitorDTOList.stream().collect(
Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(), (key1, key2) -> key2));
//获取最新过滤的监测点id
List<String> ids = monitorDTOList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
baseParam.setIds(ids);
baseParam.setIds(monitorIds);
// 类型1年 2季度 3月份
Page<RStatOrgIndexVO> temPage = new Page<>();
switch (param.getType().toString()) {
case BizParamConstant.STAT_BIZ_YEAR:
// 获取年稳态指标合格率明细表
info = rMpPassRateYMapper.getYearPassRate(baseParam);
temPage = rMpPassRateYMapper.getPageYearPassRate(new Page<>(param.getPageNum(),param.getPageSize()),baseParam);
break;
case BizParamConstant.STAT_BIZ_QUARTER:
// 获取季稳态指标合格率明细表
info = rMpPassRateQMapper.getQuarterPassRate(baseParam);
temPage = rMpPassRateQMapper.getPwQuarterPassRate(new Page<>(param.getPageNum(),param.getPageSize()),baseParam);
break;
case BizParamConstant.STAT_BIZ_MONTH:
// 获取月稳态指标合格率明细表
info = rMpPassRateMMapper.getMonthPassRate(baseParam);
temPage = rMpPassRateMMapper.getPwMonthPassRate(new Page<>(param.getPageNum(),param.getPageSize()),baseParam);
break;
default:
break;
}
info = temPage.getRecords();
if (CollectionUtil.isNotEmpty(info)) {
List<String> ids = info.stream().map(RStatOrgIndexVO::getMeasurementPointId).distinct().collect(Collectors.toList());
List<PwPmsMonitorDTO> pwPmsMonitorDTOList = distributionMonitorClient.pwMonitorAreaDetailInfo(ids).getData();
Map<String, PwPmsMonitorDTO> monitorDTOMap = pwPmsMonitorDTOList.stream().collect(
Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(), (key1, key2) -> key2));
//初始化
List<PwRStatOrgVO.PwRStatOrgDetailVO> temp = new ArrayList<>();
//便利对象
@@ -227,10 +239,10 @@ public class PwRStatOrgServiceImpl extends ServiceImpl<PwRStatOrgMapper, RStatOr
temp.add(pwRStatOrgVO);
}
});
return temp;
return pageResult.setRecords(temp);
}
}
return new ArrayList<>();
return pageResult;
}
@Override
@@ -402,7 +414,9 @@ public class PwRStatOrgServiceImpl extends ServiceImpl<PwRStatOrgMapper, RStatOr
}
@Override
public List<RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO> getRMpPartHarmonicDetail(RStatOrgParam.PwRStatOrgParam param) {
public Page<RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO> getRMpPartHarmonicDetail(RStatOrgParam.PwRStatOrgParam param) {
Page<RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO> pageResult = new Page<>(param.getPageNum(),param.getPageSize());
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
//部门id
pwPmsMonitorParam.setOrgId(param.getId());
@@ -413,40 +427,40 @@ public class PwRStatOrgServiceImpl extends ServiceImpl<PwRStatOrgMapper, RStatOr
//监测点名称
pwPmsMonitorParam.setMonitorName(param.getMonitorName());
//获取配网监测点信息
List<PwPmsMonitorDTO> pwPmsMonitorDTOS = pwMonitorClient.getPwMonitorList(pwPmsMonitorParam).getData();
Map<String, PwPmsMonitorDTO> pwPmsMonitorDTOMap = pwPmsMonitorDTOS.stream().collect(
Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(), (key1, key2) -> key2));
List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
if (CollectionUtil.isNotEmpty(pwPmsMonitorDTOS)) {
if (CollectionUtil.isNotEmpty(monitorIds)) {
//获取监测点id
List<String> ids = pwPmsMonitorDTOS.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
//筛选出数据库对应监测点
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
baseParam.setIds(ids);
List<RMpPartHarmonicDetailVO> rMpPartHarmonicDetail = rMpSurplusHarmonicDetailMMapper.getRMpPartHarmonicDetail(baseParam);
List<RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO> newList = BeanUtil.copyToList(
rMpPartHarmonicDetail, RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO.class);
if (CollectionUtil.isNotEmpty(newList)) {
//因为只有月表,数据进行查询可能出现重复数据。进行分组
Map<String, List<RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO>> detailVOMap = newList.stream()
.collect(Collectors.groupingBy(RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO::getMeasurementPointId));
detailVOMap.forEach((Key, value) -> {
if (pwPmsMonitorDTOMap.containsKey(Key)) {
PwPmsMonitorDTO dto1 = pwPmsMonitorDTOMap.get(Key);
for (RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO rmp : value) {
rmp.setOrgName(dto1.getOrgName());
rmp.setPowerrName(dto1.getPowerName());
rmp.setMeasurementPointName(dto1.getMonitorName());
rmp.setMonitorSort(dto1.getMonitorSort());
rmp.setMonitorVoltageName(dto1.getVoltageLevel());
}
}
});
baseParam.setIds(monitorIds);
Page<RMpPartHarmonicDetailVO> rMpPartHarmonicDetail = rMpSurplusHarmonicDetailMMapper.getPwRMpPartHarmonicDetail(new Page<>(param.getPageNum(),param.getPageSize()),baseParam);
List<RMpPartHarmonicDetailVO> tmpList = rMpPartHarmonicDetail.getRecords();
if(CollUtil.isEmpty(tmpList)){
return pageResult;
}
List<RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO> newList = BeanUtil.copyToList(
tmpList, RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO.class);
List<String> ids = tmpList.stream().map(RMpPartHarmonicDetailVO::getMeasurementPointId).distinct().collect(Collectors.toList());
List<PwPmsMonitorDTO> pwPmsMonitorDTOList = distributionMonitorClient.pwMonitorAreaDetailInfo(ids).getData();
Map<String,PwPmsMonitorDTO> monitorDTOMap = pwPmsMonitorDTOList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId,Function.identity()));
if (CollectionUtil.isNotEmpty(newList)) {
newList = newList.stream().peek(item->{
if (monitorDTOMap.containsKey(item.getMeasurementPointId())) {
PwPmsMonitorDTO dto1 = monitorDTOMap.get(item.getMeasurementPointId());
item.setOrgName(dto1.getOrgName());
item.setPowerrName(dto1.getPowerName());
item.setMeasurementPointName(dto1.getMonitorName());
item.setMonitorSort(dto1.getMonitorSort());
item.setMonitorVoltageName(dto1.getVoltageLevel());
}
}).collect(Collectors.toList());
pageResult.setRecords(newList);
}
return newList;
}
return Lists.newArrayList();
return pageResult;
}
@Override

View File

@@ -3,7 +3,10 @@ package com.njcn.harmonic.service.distribution.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.device.pms.api.DistributionMonitorClient;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.api.PwMonitorClient;
import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
import com.njcn.harmonic.mapper.distribution.RStatPwPermeabilityMMapper;
@@ -37,6 +40,11 @@ public class RStatPwPermeabilityMServiceImpl extends ServiceImpl<RStatPwPermeabi
private final DicDataFeignClient dicDataFeignClient;
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
private final DistributionMonitorClient distributionMonitorClient;
/***
* 获取各渗透率光伏台区基准水平
@@ -47,6 +55,8 @@ public class RStatPwPermeabilityMServiceImpl extends ServiceImpl<RStatPwPermeabi
*/
@Override
public Page<RStatPwPermeabilityMVO> getPwPermeabilityList(RStatPwPermeabilityMParam rStatPwPermeabilityMParam) {
Page<RStatPwPermeabilityMVO> pageResult = new Page<>(rStatPwPermeabilityMParam.getPageNum(),rStatPwPermeabilityMParam.getPageSize());
//提起参数
String id = rStatPwPermeabilityMParam.getId(); //单位id
String psrName = rStatPwPermeabilityMParam.getPsrName(); //台区名称
@@ -58,25 +68,34 @@ public class RStatPwPermeabilityMServiceImpl extends ServiceImpl<RStatPwPermeabi
//根据条件查询单位下面的所有配网监测点
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(id); //单位id
pwPmsMonitorParam.setMonitorName(psrName); //台区名称(监测点名称)
List<PwPmsMonitorDTO> pwMonitorList = pwMonitorClient.getPwMonitorList(pwPmsMonitorParam).getData();
if (CollUtil.isEmpty(pwMonitorList)) {
List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
if (CollUtil.isEmpty(monitorIds)) {
return new Page<>();
}
//监测点id集合
List<String> monitorIdList = pwMonitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
//监测点map key:监测点id value:监测点实体
Map<String, PwPmsMonitorDTO> monitorMap = pwMonitorList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(),(key1, key2)->key1));
//获取各渗透率字典
List<DictData> rateList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.PERMEABILITY_TYPE.getCode()).getData();
Map<String, Object> condMap = rateList.stream().collect(Collectors.toMap(DictData::getCode, DictData::getId));
condMap.put("startTime", startTime);
condMap.put("endTime", endTime);
condMap.put("idList", monitorIdList);
condMap.put("idList", monitorIds);
Page<RStatPwPermeabilityMVO> listPage = this.baseMapper.getPwPermeabilityList(new Page<>(pageNum, pageSize), condMap);
List<RStatPwPermeabilityMVO> list = listPage.getRecords().stream().peek(item -> {
Page<RStatPwPermeabilityMVO> listPage = this.baseMapper.getPwPermeabilityList(
new Page<>(pageNum, pageSize), condMap);
List<RStatPwPermeabilityMVO> temList = listPage.getRecords();
if(CollUtil.isEmpty(temList)){
pageResult.setTotal(listPage.getTotal());
return pageResult;
}
//监测点id集合
List<String>ids = temList.stream().map(RStatPwPermeabilityMVO::getPsrId).distinct().collect(Collectors.toList());
List<PwPmsMonitorDTO> pwMonitorList = distributionMonitorClient.pwMonitorAreaDetailInfo(ids).getData();
//监测点map key:监测点id value:监测点实体
Map<String, PwPmsMonitorDTO> monitorMap = pwMonitorList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(),(key1, key2)->key1));
List<RStatPwPermeabilityMVO> list = temList.stream().peek(item -> {
item.setOrgName(monitorMap.get(item.getPsrId()).getOrgName()); //单位名称
item.setPsrName(monitorMap.get(item.getPsrId()).getMonitorName()); //台区名称
}).collect(Collectors.toList());