河北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 部门信息