河北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.api.fallback.PmsGeneralDeviceInfoClientFallbackFactory;
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO; import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam; 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.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List; import java.util.List;
@@ -39,4 +42,8 @@ public interface PmsGeneralDeviceInfoClient {
*/ */
@PostMapping("/getPwPmsDeviceInfoWithOrgId") @PostMapping("/getPwPmsDeviceInfoWithOrgId")
HttpResult<List<PmsGeneralDeviceDTO>> getPwPmsDeviceInfoWithOrgId(@RequestBody PmsDeviceInfoParam pmsDeviceInfoParam); 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.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO; import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam; import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
import com.njcn.device.pms.utils.PmsDeviceEnumUtil; import com.njcn.device.pms.utils.PmsDeviceEnumUtil;
import feign.hystrix.FallbackFactory; import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List; import java.util.List;
@@ -46,6 +48,12 @@ public class PmsGeneralDeviceInfoClientFallbackFactory implements FallbackFactor
log.error("{}异常,降级处理,异常为:{}", "获取指定组织下配网台账综合信息", throwable.toString()); log.error("{}异常,降级处理,异常为:{}", "获取指定组织下配网台账综合信息", throwable.toString());
throw new BusinessException(finalExceptionEnum); 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; package com.njcn.device.pms.pojo.param;
import com.njcn.common.pojo.param.StatisticsBizBaseParam; import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* @Title RMpMonitorAlarmCountMParam * @Title RMpMonitorAlarmCountMParam
* @Package com.njcn.device.pms.pojo.param * @Package com.njcn.device.pms.pojo.param
@@ -12,7 +15,7 @@ import lombok.Data;
* @Version V1.0 * @Version V1.0
*/ */
@Data @Data
public class RMpMonitorAlarmCountMParam extends StatisticsBizBaseParam { public class RMpMonitorAlarmCountMParam extends BaseParam {
@ApiModelProperty(name = "voltage_Level", value = "电压等级id") @ApiModelProperty(name = "voltage_Level", value = "电压等级id")
private String voltageLevel; //电压等级 private String voltageLevel; //电压等级
@@ -23,4 +26,33 @@ public class RMpMonitorAlarmCountMParam extends StatisticsBizBaseParam {
@ApiModelProperty(name = "measurementPointName", value = "监测点名称") @ApiModelProperty(name = "measurementPointName", value = "监测点名称")
private String measurementPointName; 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 @MppMultiId
private String monitorId; private String monitorId;
private String orgId;
/** /**
* 电压等级(字典) * 电压等级(字典)
*/ */

View File

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

View File

@@ -262,7 +262,7 @@ public class PmsDistributionMonitorController extends BaseController {
*/ */
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/pwMonitorAreaDetailInfo") @PostMapping("/pwMonitorAreaDetailInfo")
@ApiOperation("修改配网监测点数据状态") @ApiOperation("根据监测点获取配网监测点的详细信息")
@ApiImplicitParam(name = "monitorIds", value = "配网监测点实体", required = true) @ApiImplicitParam(name = "monitorIds", value = "配网监测点实体", required = true)
public HttpResult<List<PwPmsMonitorDTO>> pwMonitorAreaDetailInfo(@RequestBody List<String> monitorIds) { public HttpResult<List<PwPmsMonitorDTO>> pwMonitorAreaDetailInfo(@RequestBody List<String> monitorIds) {
String methodDescribe = getMethodDescribe("pwMonitorAreaDetailInfo"); 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.common.utils.HttpResultUtil;
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO; import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam; 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.device.pms.service.majornetwork.IPmsGeneralDeviceService;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@@ -18,10 +19,8 @@ import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody; import springfox.documentation.annotations.ApiIgnore;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List; 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, List<PwPmsMonitorDTO> getPwPhotovoltaicMonitorList(@Param("deptIdList") List<String> deptIdList,
@Param("pwPmsMonitorParam") PwPmsMonitorParam pwPmsMonitorParam); @Param("pwPmsMonitorParam") PwPmsMonitorParam pwPmsMonitorParam);
List<PwPmsMonitorDTO> getPwBaseMonitorInfo(@Param("pwMonitorIds") List<String> pwMonitorIds,
@Param("pwPmsMonitorParam") PwPmsMonitorParam pwPmsMonitorParam);
} }

View File

@@ -224,4 +224,9 @@
</if> </if>
</select> </select>
<select id="getPwBaseMonitorInfo">
</select>
</mapper> </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.PmsSimpleDTO;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO; import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam; 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.param.TaiZhangParam;
import com.njcn.device.pms.pojo.po.DistributionMonitor; import com.njcn.device.pms.pojo.po.DistributionMonitor;
import com.njcn.device.pms.pojo.po.Monitor; import com.njcn.device.pms.pojo.po.Monitor;
@@ -87,4 +88,6 @@ public interface DistributionMonitorMapper extends MppBaseMapper<DistributionMon
* 根据配网监测点id获取配网台账信息 * 根据配网监测点id获取配网台账信息
*/ */
List<PwPmsMonitorDTO> pwMonitorAreaDetailInfo(@Param("monitorIds") List<String> monitorIds); 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=")"> <foreach collection="monitorIds" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</select> </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> </mapper>

View File

@@ -1,5 +1,6 @@
package com.njcn.device.pms.service.distribution; package com.njcn.device.pms.service.distribution;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.pms.pojo.param.RMpMonitorAlarmCountMParam; import com.njcn.device.pms.pojo.param.RMpMonitorAlarmCountMParam;
import com.njcn.device.pms.pojo.po.RMpMonitorAlarmCountM; import com.njcn.device.pms.pojo.po.RMpMonitorAlarmCountM;
@@ -21,5 +22,5 @@ public interface PwRMpMonitorAlarmCountMService extends IService<RMpMonitorAlarm
* @param rMpMonitorAlarmCountMParam * @param rMpMonitorAlarmCountMParam
* @return java.util.List<com.njcn.device.pms.pojo.vo.RMpMonitorAlarmCountMVO> * @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 cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException; 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.PmsMonitorParam;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam; import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
import com.njcn.device.pms.pojo.param.RMpMonitorAlarmCountMParam; 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.RMpMonitorAlarmCountM;
import com.njcn.device.pms.pojo.po.RStatAreaAlarmCountM; 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.pojo.vo.PwRMpMonitorAlarmCountMVO;
import com.njcn.device.pms.service.distribution.PwRMpMonitorAlarmCountMService; 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.IMonitorService;
import com.njcn.device.pms.service.majornetwork.IPmsGeneralDeviceService;
import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum; 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.api.DeptFeignClient;
import com.njcn.user.pojo.dto.DeptDTO; import com.njcn.user.pojo.dto.DeptDTO;
import com.njcn.web.factory.PageFactory;
import com.njcn.web.utils.WebUtil; import com.njcn.web.utils.WebUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
@@ -56,6 +62,10 @@ implements PwRMpMonitorAlarmCountMService {
private final IPwMonitorServiceImpl iPwMonitorService; //【配网监测点】服务类 private final IPwMonitorServiceImpl iPwMonitorService; //【配网监测点】服务类
private final IPmsGeneralDeviceService iPmsGeneralDeviceService;
private final IDistributionMonitorService iDistributionMonitorService;
/*** /***
* 根据条件查询监测点告警统计(月)(配网) * 根据条件查询监测点告警统计(月)(配网)
* @author jianghaifei * @author jianghaifei
@@ -64,7 +74,9 @@ implements PwRMpMonitorAlarmCountMService {
* @return java.util.List<com.njcn.device.pms.pojo.vo.PwRMpMonitorAlarmCountMVO> * @return java.util.List<com.njcn.device.pms.pojo.vo.PwRMpMonitorAlarmCountMVO>
*/ */
@Override @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 String id = rMpMonitorAlarmCountMParam.getId(); //单位id
if (StringUtils.isBlank(id)) { if (StringUtils.isBlank(id)) {
@@ -72,14 +84,12 @@ implements PwRMpMonitorAlarmCountMService {
} }
String startTime = rMpMonitorAlarmCountMParam.getStartTime(); //开始时间 String startTime = rMpMonitorAlarmCountMParam.getStartTime(); //开始时间
String endTime = rMpMonitorAlarmCountMParam.getEndTime(); //结束时间 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(); //监测点名称 String monitorName = rMpMonitorAlarmCountMParam.getMeasurementPointName(); //监测点名称
/*获取下级子部门信息*/ /*获取下级子部门信息*/
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes (id, WebUtil.filterDeptType()).getData (); List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes (id, WebUtil.filterDeptType()).getData ();
if (CollUtil.isEmpty(deptDTOList)) { if (CollUtil.isEmpty(deptDTOList)) {
return Collections.emptyList(); return new Page<>();
} }
List<String> orgCodeList = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList()); List<String> orgCodeList = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
Map<String, DeptDTO> deptDTOMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getCode, deptDTO -> deptDTO)); 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)); Map<String, String> lineSortIdMap = lineSortDict.stream().collect(Collectors.toMap(DictData::getCode, DictData::getId));
//根据条件查询单位下面的所有配网监测点 //根据条件查询单位下面的所有配网监测点
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam(); List<String> pwMonitorIds = iPmsGeneralDeviceService.getPwPmsMonitorIds(id,rMpMonitorAlarmCountMParam.getMonitorSort());
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));
//根据监测点idList等条件查询【监测点告警月统计】表数据 //根据监测点idList等条件查询【监测点告警月统计】表数据
LambdaQueryWrapper<RMpMonitorAlarmCountM> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<RMpMonitorAlarmCountM> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(CollUtil.isNotEmpty(orgCodeList), RMpMonitorAlarmCountM::getOrgNo, orgCodeList) lambdaQueryWrapper
.in(RMpMonitorAlarmCountM::getMeasurementPointId, monitorIdList) .in(RMpMonitorAlarmCountM::getMeasurementPointId, pwMonitorIds)
.ge(RMpMonitorAlarmCountM::getDataDate, startTime) .ge(RMpMonitorAlarmCountM::getDataDate, startTime)
.le(RMpMonitorAlarmCountM::getDataDate, endTime) .le(RMpMonitorAlarmCountM::getDataDate, endTime)
.eq(RMpMonitorAlarmCountM::getDataType, dataType); .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; List<PwRMpMonitorAlarmCountMVO> resultList;
if (CollUtil.isNotEmpty(alarmCountMList)) { 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 -> { resultList = alarmCountMList.stream().map(item -> {
PwRMpMonitorAlarmCountMVO pwRMpMonitorAlarmCountMVO = new PwRMpMonitorAlarmCountMVO(); PwRMpMonitorAlarmCountMVO pwRMpMonitorAlarmCountMVO = new PwRMpMonitorAlarmCountMVO();
@@ -166,10 +173,10 @@ implements PwRMpMonitorAlarmCountMService {
} }
return pwRMpMonitorAlarmCountMVO; return pwRMpMonitorAlarmCountMVO;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
pageResult.setRecords(resultList);
} else { } 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException; 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.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.PmsMonitorDTO;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO; import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PmsMonitorParam; 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.RMpPwAlarmDetailDService;
import com.njcn.device.pms.service.distribution.RStatPwAlarmCountWService; import com.njcn.device.pms.service.distribution.RStatPwAlarmCountWService;
import com.njcn.device.pms.service.majornetwork.IMonitorService; 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.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.enums.DicDataTypeEnum;
@@ -54,10 +58,14 @@ public class RStatPwAlarmCountWServiceImpl extends ServiceImpl<RStatPwAlarmCount
private final IPwMonitorService iPwMonitorService; private final IPwMonitorService iPwMonitorService;
private final IMonitorService iMonitorService; private final PwMonitorMapper pwMonitorMapper;
private final RMpPwAlarmDetailDService rMpPwAlarmDetailDService; private final RMpPwAlarmDetailDService rMpPwAlarmDetailDService;
private final DistributionMonitorMapper distributionMonitorMapper;
private final IPmsGeneralDeviceService iPmsGeneralDeviceService;
/*** /***
* 查询各单位告警监测点总数、占比、占比同比信息 * 查询各单位告警监测点总数、占比、占比同比信息
* @author jianghaifei * @author jianghaifei
@@ -75,15 +83,7 @@ public class RStatPwAlarmCountWServiceImpl extends ServiceImpl<RStatPwAlarmCount
String startTime = rStatPwAlarmCountWParam.getStartTime(); //开始时间 String startTime = rStatPwAlarmCountWParam.getStartTime(); //开始时间
String endTime = rStatPwAlarmCountWParam.getEndTime(); //结束时间 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 ( ); List<DeptDTO> deptDTOList = deptFeignClient.getDepSonDetailByDeptId (id).getData ( );
if (CollUtil.isEmpty(deptDTOList)) { if (CollUtil.isEmpty(deptDTOList)) {
@@ -140,24 +140,34 @@ public class RStatPwAlarmCountWServiceImpl extends ServiceImpl<RStatPwAlarmCount
pwPmsMonitorParam.setOrgId(id); //单位id pwPmsMonitorParam.setOrgId(id); //单位id
pwPmsMonitorParam.setMonitorName(monitorName); //监测点名称 pwPmsMonitorParam.setMonitorName(monitorName); //监测点名称
pwPmsMonitorParam.setMonitorSort(monitorSortList); //监测点类别 pwPmsMonitorParam.setMonitorSort(monitorSortList); //监测点类别
List<PwPmsMonitorDTO> pwMonitorList = iPwMonitorService.getPwMonitorList(pwPmsMonitorParam); List<String> pwMonitorIds= iPmsGeneralDeviceService.getPwPmsMonitorIds(id,pwPmsMonitorParam.getMonitorSort());
//配网监测点id集合 if(CollUtil.isEmpty(pwMonitorIds)){
List<String> monitorIdList = pwMonitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
if (CollUtil.isEmpty(monitorIdList)) {
return new Page<>(); 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<>(); LambdaQueryWrapper<RMpPwAlarmDetailD> alarmDetailWrapper = new LambdaQueryWrapper<>();
alarmDetailWrapper.in(RMpPwAlarmDetailD::getMeasurementPointId, monitorIdList) alarmDetailWrapper.in(RMpPwAlarmDetailD::getMeasurementPointId, pwMonitorIds)
.in(CollUtil.isNotEmpty(alarmTypeList), RMpPwAlarmDetailD::getAlarmType, alarmTypeList) .in(CollUtil.isNotEmpty(alarmTypeList), RMpPwAlarmDetailD::getAlarmType, alarmTypeList)
.ge(StringUtils.isNotBlank(startTime), RMpPwAlarmDetailD::getDataDate, startTime) .ge(StringUtils.isNotBlank(startTime), RMpPwAlarmDetailD::getDataDate, startTime)
.le(StringUtils.isNotBlank(endTime), RMpPwAlarmDetailD::getDataDate, endTime); .le(StringUtils.isNotBlank(endTime), RMpPwAlarmDetailD::getDataDate, endTime);
Page<RMpPwAlarmDetailD> alarmDetailListPage = rMpPwAlarmDetailDService.page(new Page<>(pageNum, pageSize), alarmDetailWrapper); 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 -> { List<RStatPwAlarmDetailVO> resultList = alarmDetailListPage.getRecords().stream().map(item -> {
RStatPwAlarmDetailVO rStatPwAlarmDetailVO = new RStatPwAlarmDetailVO(); RStatPwAlarmDetailVO rStatPwAlarmDetailVO = new RStatPwAlarmDetailVO();
rStatPwAlarmDetailVO.setAlarmType(item.getAlarmType()); //告警类型 rStatPwAlarmDetailVO.setAlarmType(item.getAlarmType()); //告警类型

View File

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

View File

@@ -105,6 +105,12 @@ public class PmsGeneralDeviceServiceImpl implements IPmsGeneralDeviceService {
return deviceInfos; 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台账信息 * 查询当前部门pms台账信息
* @param deptDTO 部门信息 * @param deptDTO 部门信息

View File

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

View File

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

View File

@@ -28,7 +28,7 @@ public interface PwRmpEventDetailMapper extends BaseMapper<RmpEventDetailPO> {
* @author yzh * @author yzh
* @date 2022/10/31 * @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); @Param("monitorIdList") List<String> monitorIdList);
/** /**

View File

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

View File

@@ -70,24 +70,20 @@ public class PwEventCategoryDetailsServiceImpl implements PwEventCategoryDetails
@Override @Override
public List<EventDistributionStatisticsTableVO> getPwEventCategoryDetails(StatisticsBizBaseParam param) { public List<EventDistributionStatisticsTableVO> getPwEventCategoryDetails(StatisticsBizBaseParam param) {
// 获取单位下的监测点id集合 // 获取单位下的监测点id集合
List<PwPmsMonitorDTO> pwPmsMonitorDTOList = getPwMonitorList(param);
if (CollectionUtil.isEmpty(pwPmsMonitorDTOList)) { PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
return Collections.emptyList(); pwPmsMonitorParam.setOrgId(param.getId());
} List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
// 创建集合,返回数据 // 创建集合,返回数据
List<EventDistributionStatisticsTableVO> vos = new ArrayList<>(); List<EventDistributionStatisticsTableVO> vos = new ArrayList<>();
// 将监测点id取出 if (CollectionUtil.isEmpty(monitorIds)) {
List<String> monitorIdList = pwPmsMonitorDTOList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
if (CollectionUtil.isEmpty(monitorIdList)) {
return Collections.emptyList(); return Collections.emptyList();
} }
// 获取暂态指标分布统计 // 获取暂态指标分布统计
EventDistributionStatisticsPO po = pwEventCategoryDetailsMapper.getPwEventCategoryDetailsMapper( EventDistributionStatisticsPO po = pwEventCategoryDetailsMapper.getPwEventCategoryDetailsMapper(
monitorIdList, monitorIds,
param.getStartTime(), param.getStartTime(),
param.getEndTime()); param.getEndTime());
@@ -177,23 +173,19 @@ public class PwEventCategoryDetailsServiceImpl implements PwEventCategoryDetails
*/ */
@Override @Override
public List<SimpleVO> getPwDurationLineChart(StatisticsBizBaseParam param) { public List<SimpleVO> getPwDurationLineChart(StatisticsBizBaseParam param) {
// 获取单位下的监测点id集合
List<PwPmsMonitorDTO> pwPmsMonitorDTOList = getPwMonitorList(param);
if (CollectionUtil.isEmpty(pwPmsMonitorDTOList)) {
return Collections.emptyList();
}
// 创建集合返回数据 // 创建集合返回数据
List<SimpleVO> result = new ArrayList<>(); List<SimpleVO> result = new ArrayList<>();
// 监测点id取出 // 获取单位下的监测点id集合
List<String> monitorIdList = pwPmsMonitorDTOList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList()); 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(); return Collections.emptyList();
} }
// 获取持续时间折线图 // 获取持续时间折线图
EventDurationLineChartPO po = pwEventCategoryDetailsMapper.getPwEventDurationLineChart( EventDurationLineChartPO po = pwEventCategoryDetailsMapper.getPwEventDurationLineChart(
monitorIdList, monitorIds,
param.getStartTime(), param.getStartTime(),
param.getEndTime()); param.getEndTime());
if (ObjectUtil.isEmpty(po)) { if (ObjectUtil.isEmpty(po)) {
@@ -236,22 +228,19 @@ public class PwEventCategoryDetailsServiceImpl implements PwEventCategoryDetails
*/ */
@Override @Override
public List<SimpleVO> getPwFeatureAmplitudeLineChart(StatisticsBizBaseParam param) { public List<SimpleVO> getPwFeatureAmplitudeLineChart(StatisticsBizBaseParam param) {
// 获取单位下的监测点id集合
List<PwPmsMonitorDTO> pwPmsMonitorDTOList = getPwMonitorList(param);
if (CollectionUtil.isEmpty(pwPmsMonitorDTOList)) {
return Collections.emptyList();
}
// 创建集合返回数据 // 创建集合返回数据
List<SimpleVO> result = new ArrayList<>(); 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(); return Collections.emptyList();
} }
// 获取特征幅值折线图 // 获取特征幅值折线图
EventFeatureAmplitudeLineChartPO po = pwEventCategoryDetailsMapper.getPwEventFeatureAmplitudeLineChart(monitorIdList, EventFeatureAmplitudeLineChartPO po = pwEventCategoryDetailsMapper.getPwEventFeatureAmplitudeLineChart(monitorIds,
param.getStartTime(), param.getStartTime(),
param.getEndTime()); param.getEndTime());
@@ -312,23 +301,16 @@ public class PwEventCategoryDetailsServiceImpl implements PwEventCategoryDetails
@Override @Override
public EventFeatureAmplitudeCurveVO getPwEventFeatureAmplitudeCurve(StatisticsBizBaseParam param) { public EventFeatureAmplitudeCurveVO getPwEventFeatureAmplitudeCurve(StatisticsBizBaseParam param) {
// 获取单位下的监测点id集合 // 获取单位下的监测点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)) { if (CollectionUtil.isEmpty(monitorIds)) {
return EventFeatureAmplitudeCurveVO.empty();
}
// 创建集合返回数据
List<SimpleVO> result = new ArrayList<>();
// 将监测点id取出
List<String> monitorIdList = pwPmsMonitorDTOList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
if (CollectionUtil.isEmpty(monitorIdList)) {
return EventFeatureAmplitudeCurveVO.empty(); 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)) { if (CollUtil.isEmpty(rmpEventDetailList)) {
return EventFeatureAmplitudeCurveVO.empty(); return EventFeatureAmplitudeCurveVO.empty();
} }
@@ -345,7 +327,6 @@ public class PwEventCategoryDetailsServiceImpl implements PwEventCategoryDetails
return eventFeatureAmplitudeCurve; return eventFeatureAmplitudeCurve;
}) })
//.sorted(VoltageToleranceCurveDataList.sortAscTime())
.collect(Collectors.toCollection(() -> Collections.synchronizedList(new ArrayList<>()))); .collect(Collectors.toCollection(() -> Collections.synchronizedList(new ArrayList<>())));
return EventFeatureAmplitudeCurveVO.buildVO(rmpEventDetailList.size(), curveDataList); 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 cn.hutool.core.collection.CollUtil;
import com.njcn.common.pojo.constant.BizParamConstant; 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.api.PwMonitorClient;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO; import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam; import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
@@ -41,6 +42,8 @@ public class PwEventMonitorReportServiceImpl implements PwEventMonitorReportServ
private final PwEventDistributionStatisticsMapper eventDistributionStatisticsMapper; private final PwEventDistributionStatisticsMapper eventDistributionStatisticsMapper;
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
/*** /***
* 监测点暂态事件发生次数 * 监测点暂态事件发生次数
@@ -52,8 +55,7 @@ public class PwEventMonitorReportServiceImpl implements PwEventMonitorReportServ
@Override @Override
public List<EventMonitorReportVO> getMonitorEventCount(EventMonitorReportParam eventMonitorReportParam) { public List<EventMonitorReportVO> getMonitorEventCount(EventMonitorReportParam eventMonitorReportParam) {
//提取查询参数 //提取查询参数
// String monitorName = eventMonitorReportParam.getMonitorName(); //监测点名称
// String id = eventMonitorReportParam.getId(); //单位id
String startTime = eventMonitorReportParam.getStartTime(); //开始时间 String startTime = eventMonitorReportParam.getStartTime(); //开始时间
String endTime = eventMonitorReportParam.getEndTime(); //结束时间 String endTime = eventMonitorReportParam.getEndTime(); //结束时间
Integer type = eventMonitorReportParam.getType(); //时间类型(日/月) Integer type = eventMonitorReportParam.getType(); //时间类型(日/月)
@@ -61,6 +63,7 @@ public class PwEventMonitorReportServiceImpl implements PwEventMonitorReportServ
//查询监测点信息 //查询监测点信息
List<PwPmsMonitorDTO> monitorList = this.getMonitorList(eventMonitorReportParam); List<PwPmsMonitorDTO> monitorList = this.getMonitorList(eventMonitorReportParam);
List<String> monitorIdList = monitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList()); //监测点id信息 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)); 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 @Override
public List<EventDipShortDistributionTableVO> getEventDipShortDistributionByCond(EventMonitorReportParam eventMonitorReportParam) { public List<EventDipShortDistributionTableVO> getEventDipShortDistributionByCond(EventMonitorReportParam eventMonitorReportParam) {
//提取参数 //提取参数
// String monitorName = eventMonitorReportParam.getMonitorName(); //监测点名称
// String id = eventMonitorReportParam.getId(); //单位id
String startTime = eventMonitorReportParam.getStartTime(); //开始时间 String startTime = eventMonitorReportParam.getStartTime(); //开始时间
String endTime = eventMonitorReportParam.getEndTime(); //结束时间 String endTime = eventMonitorReportParam.getEndTime(); //结束时间
Integer type = eventMonitorReportParam.getType(); //时间类型(日/月) Integer type = eventMonitorReportParam.getType(); //时间类型(日/月)
//查询监测点信息 //查询监测点信息
List<PwPmsMonitorDTO> monitorList = this.getMonitorList(eventMonitorReportParam); PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
List<String> monitorIdList = monitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList()); //监测点id集合 pwPmsMonitorParam.setOrgId(eventMonitorReportParam.getId());
List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
//获取暂态指标的字典 //获取暂态指标的字典
List<DictData> eventStatisList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData(); List<DictData> eventStatisList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
//将暂态指标信息转成mapkeycode value实体 //将暂态指标信息转成mapkeycode value实体
@@ -154,7 +156,7 @@ public class PwEventMonitorReportServiceImpl implements PwEventMonitorReportServ
//短时中断、暂降分布情况 //短时中断、暂降分布情况
Map<String, Object> condMap = new HashMap<>(); Map<String, Object> condMap = new HashMap<>();
condMap.put("monitorIdList", monitorIdList); condMap.put("monitorIdList", monitorIds);
condMap.put("startTime", startTime); condMap.put("startTime", startTime);
condMap.put("endTime", endTime); condMap.put("endTime", endTime);
condMap.put("eventTypeList", Arrays.asList(eventStatisMapByCode.get(DicDataEnum.VOLTAGE_DIP.getCode()).getId(), eventStatisMapByCode.get(DicDataEnum.SHORT_INTERRUPTIONS.getCode()).getId())); 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 @Override
public List<EventRiseDistributionTableVO> getEventRiseDistributionByCond(EventMonitorReportParam eventMonitorReportParam) { public List<EventRiseDistributionTableVO> getEventRiseDistributionByCond(EventMonitorReportParam eventMonitorReportParam) {
//提取参数 //提取参数
// String monitorName = eventMonitorReportParam.getMonitorName(); //监测点名称
// String id = eventMonitorReportParam.getId(); //单位id
String startTime = eventMonitorReportParam.getStartTime(); //开始时间 String startTime = eventMonitorReportParam.getStartTime(); //开始时间
String endTime = eventMonitorReportParam.getEndTime(); //结束时间 String endTime = eventMonitorReportParam.getEndTime(); //结束时间
Integer type = eventMonitorReportParam.getType(); //时间类型(日/月) Integer type = eventMonitorReportParam.getType(); //时间类型(日/月)
//查询监测点信息 //查询监测点信息
List<PwPmsMonitorDTO> monitorList = this.getMonitorList(eventMonitorReportParam); PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
List<String> monitorIdList = monitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList()); //监测点id集合 pwPmsMonitorParam.setOrgId(eventMonitorReportParam.getId());
List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
//获取暂态指标的字典 //获取暂态指标的字典
List<DictData> eventStatisList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData(); List<DictData> eventStatisList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
//将暂态指标信息转成mapkeycode value实体 //将暂态指标信息转成mapkeycode value实体
Map<String, DictData> eventStatisMapByCode = eventStatisList.stream().collect(Collectors.toMap(DictData::getCode, data -> data)); Map<String, DictData> eventStatisMapByCode = eventStatisList.stream().collect(Collectors.toMap(DictData::getCode, data -> data));
//暂升分布情况 //暂升分布情况
Map<String, Object> riseCondMap = new HashMap<>(); Map<String, Object> riseCondMap = new HashMap<>();
riseCondMap.put("monitorIdList", monitorIdList); riseCondMap.put("monitorIdList", monitorIds);
riseCondMap.put("startTime", startTime); riseCondMap.put("startTime", startTime);
riseCondMap.put("endTime", endTime); riseCondMap.put("endTime", endTime);
riseCondMap.put("eventTypeList", Collections.singletonList(eventStatisMapByCode.get(DicDataEnum.VOLTAGE_RISE.getCode()).getId())); 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; package com.njcn.event.service.distribution.Impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.constant.BizParamConstant; import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.device.pms.api.PwMonitorClient; import com.njcn.device.pms.api.PwMonitorClient;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO; 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.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData; 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.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@@ -27,6 +30,7 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -49,6 +53,8 @@ public class PwRStatOrgServiceImpl implements PwRStatOrgService {
private final PwRStatOrgClassifiedMapper pwRStatOrgClassifiedMapper; private final PwRStatOrgClassifiedMapper pwRStatOrgClassifiedMapper;
private final DeptFeignClient deptFeignClient;
private final DecimalFormat df = new DecimalFormat("###.00"); private final DecimalFormat df = new DecimalFormat("###.00");
/** /**
@@ -60,16 +66,15 @@ public class PwRStatOrgServiceImpl implements PwRStatOrgService {
@Override @Override
public List<RStatOrgVO> getPwRStatOrg(PwUniversalFrontEndParam param) { public List<RStatOrgVO> getPwRStatOrg(PwUniversalFrontEndParam param) {
// 获取单位下的监测点id集合 // 获取单位下的监测点id集合
List<PwPmsMonitorDTO> pwPmsMonitorDTOList = getPwMonitorList(param); List<DeptDTO> deptDTOList = deptFeignClient.getDepSonDetailByDeptId(param.getId()).getData();
if (CollUtil.isEmpty(pwPmsMonitorDTOList)) { Map<String,DeptDTO> map = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getCode, Function.identity()));
return Collections.emptyList();
}
// 查询字典表 // 查询字典表
List<DictData> dictDataList = dicDataFeignClient List<DictData> dictDataList = dicDataFeignClient
.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()) .getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode())
.getData(); .getData();
// 取出单位id // 取出单位id
List<String> deptIdList = pwPmsMonitorDTOList.stream().map(PwPmsMonitorDTO::getOrgId).collect(Collectors.toList()); List<String> deptIdList = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
// 获取配网id // 获取配网id
String distributionPoint = getDistributionPoint(); String distributionPoint = getDistributionPoint();
// 创建集合封装查询数据 // 创建集合封装查询数据
@@ -110,9 +115,9 @@ public class PwRStatOrgServiceImpl implements PwRStatOrgService {
return rStatOrgPO.stream().map(po -> { return rStatOrgPO.stream().map(po -> {
RStatOrgVO vo = new RStatOrgVO(); RStatOrgVO vo = new RStatOrgVO();
BeanUtils.copyProperties(po, vo); BeanUtils.copyProperties(po, vo);
for (PwPmsMonitorDTO dto : pwPmsMonitorDTOList) { if(map.containsKey(po.getOrgNo())){
if (dto.getOrgId().equals(po.getOrgNo())) { DeptDTO dto = map.get(po.getOrgNo());
vo.setOrgName(dto.getOrgName()); vo.setOrgName(dto.getName());
for (DictData dictData : dictDataList) { for (DictData dictData : dictDataList) {
if (po.getMeasurementTypeClass().equals(dictData.getId())) { if (po.getMeasurementTypeClass().equals(dictData.getId())) {
vo.setMonitorSort(dictData.getName()); vo.setMonitorSort(dictData.getName());
@@ -128,7 +133,8 @@ public class PwRStatOrgServiceImpl implements PwRStatOrgService {
} }
} }
} }
}
return vo; return vo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
} }
@@ -141,14 +147,12 @@ public class PwRStatOrgServiceImpl implements PwRStatOrgService {
*/ */
@Override @Override
public List<PwRStatEventOrgVO> getPwRStatOrgClassified(PwUniversalFrontEndParam param) { public List<PwRStatEventOrgVO> getPwRStatOrgClassified(PwUniversalFrontEndParam param) {
List<PwPmsMonitorDTO> pwPmsMonitorDTOList = getPwMonitorList(param); List<DeptDTO> deptDTOList = deptFeignClient.getDepSonDetailByDeptId(param.getId()).getData();
if (CollUtil.isEmpty(pwPmsMonitorDTOList)) {
return Collections.emptyList();
}
// 创建集合封装返回数据 // 创建集合封装返回数据
List<PwRStatEventOrgVO> result = new ArrayList<>(); List<PwRStatEventOrgVO> result = new ArrayList<>();
// 取出单位id // 取出单位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<>(); List<RStatEventOrgPO> rStatEventOrgVOList = new ArrayList<>();
// 获取配网id // 获取配网id
@@ -199,16 +203,15 @@ public class PwRStatOrgServiceImpl implements PwRStatOrgService {
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getId, DictData -> DictData)); Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getId, DictData -> DictData));
// 根据暂态指标code转换成map // 根据暂态指标code转换成map
Map<String, DictData> eventStatisMap = eventStatisList.stream().collect(Collectors.toMap(DictData::getId, DictData -> DictData)); 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) -> { rStatEventOrgVOMap.forEach((orgOn, pos) -> {
PwRStatEventOrgVO vo = new PwRStatEventOrgVO(); PwRStatEventOrgVO vo = new PwRStatEventOrgVO();
// 基础属性赋值 // 基础属性赋值
if (vo.getOrgNo() == null) { if (vo.getOrgNo() == null) {
vo.setOrgNo(pos.get(0).getOrgNo()); 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.setDataDate(pos.get(0).getDataDate());
vo.setMeasurementTypeClass(pos.get(0).getMeasurementTypeClass()); vo.setMeasurementTypeClass(pos.get(0).getMeasurementTypeClass());
vo.setEffectiveMeasurementAverage(pos.get(0).getEffectiveMeasurementAverage()); vo.setEffectiveMeasurementAverage(pos.get(0).getEffectiveMeasurementAverage());

View File

@@ -1,7 +1,10 @@
package com.njcn.event.service.distribution.Impl; package com.njcn.event.service.distribution.Impl;
import cn.hutool.core.collection.CollectionUtil; 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.MonitorClient;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.api.PwMonitorClient; import com.njcn.device.pms.api.PwMonitorClient;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO; import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam; 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.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -44,6 +48,10 @@ public class PwRmpEventDetailServiceImpl implements PwRmpEventDetailService {
private final MonitorClient monitorClient; 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 * @date 2022/10/31
*/ */
@Override @Override
public List<PwRmpEventDetailVO> getPwRmpEventDetail(UniversalFrontEndParam param) { public Page<PwRmpEventDetailVO> getPwRmpEventDetail(UniversalFrontEndParam param) {
Page<PwRmpEventDetailVO> pageResult = new Page<>(param.getPageNum(),param.getPageSize());
// 获取单位下的监测点id集合 // 获取单位下的监测点id集合
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam(); PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(param.getId()); pwPmsMonitorParam.setOrgId(param.getId());
pwPmsMonitorParam.setMonitorName(param.getMonitorName()); pwPmsMonitorParam.setMonitorName(param.getMonitorName());
List<PwPmsMonitorDTO> pwPmsMonitorDTOList = pwMonitorClient List<String> pwPmsMonitorDTOList = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
.getPwMonitorList(pwPmsMonitorParam)
.getData();
if (CollectionUtil.isEmpty(pwPmsMonitorDTOList)) { if (CollectionUtil.isEmpty(pwPmsMonitorDTOList)) {
return Collections.emptyList(); return pageResult;
} }
// 获取配网暂态事件明细 // 获取配网暂态事件明细
List<RmpEventDetailPO> rmpEventDetailsPO = pwRmpEventDetailMapper.getPwRmpEventDetail(param, Page<RmpEventDetailPO> rmpEventDetailsPO = pwRmpEventDetailMapper.getPwRmpEventDetail(new Page<>(param.getPageNum(),param.getPageSize()),param,
pwPmsMonitorDTOList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList())); pwPmsMonitorDTOList);
if (CollectionUtil.isEmpty(rmpEventDetailsPO)) {
return Collections.emptyList(); 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(); List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
// 将单位信息转为map集合 key: 单位id value: 单位实体 // 将单位信息转为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(); PwRmpEventDetailVO vo = new PwRmpEventDetailVO();
BeanUtils.copyProperties(po, vo); BeanUtils.copyProperties(po, vo);
vo.setMonitorId(po.getMeasurementPointId()); vo.setMonitorId(po.getMeasurementPointId());
@@ -109,8 +124,10 @@ public class PwRmpEventDetailServiceImpl implements PwRmpEventDetailService {
} }
} }
} }
return vo; t.add(vo);
}).collect(Collectors.toList()); });
pageResult.setRecords(t);
return pageResult;
} }
} }

View File

@@ -1,5 +1,6 @@
package com.njcn.event.service.distribution; 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.param.PwUniversalFrontEndParam;
import com.njcn.event.pojo.vo.PwRStatEventOrgVO; import com.njcn.event.pojo.vo.PwRStatEventOrgVO;
import com.njcn.event.pojo.vo.RStatOrgVO; import com.njcn.event.pojo.vo.RStatOrgVO;

View File

@@ -1,5 +1,6 @@
package com.njcn.event.service.distribution; 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.param.UniversalFrontEndParam;
import com.njcn.event.pojo.vo.PwRmpEventDetailVO; import com.njcn.event.pojo.vo.PwRmpEventDetailVO;
@@ -22,5 +23,5 @@ public interface PwRmpEventDetailService {
* @author yzh * @author yzh
* @date 2022/10/31 * @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 = "监测点类别") @ApiModelProperty(name = "monitorSort", value = "监测点类别")
private List<String> monitorSort; private List<String> monitorSort;
// @ApiModelProperty(name = "voltageLevels", value = "电压等级") private Integer pageNum;
// private List<String> voltageLevels;
private Integer pageSize;
} }
} }

View File

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

View File

@@ -1,6 +1,7 @@
package com.njcn.harmonic.controller.distribution; 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.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
@@ -77,9 +78,9 @@ public class PwRStatOrgController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("稳态指标超标明细表") @ApiOperation("稳态指标超标明细表")
@ApiImplicitParam(name = "param", value = "超标明细参数", required = true) @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"); 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); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rMpPartHarmonicDetail, methodDescribe);
} }
@@ -123,11 +124,11 @@ public class PwRStatOrgController extends BaseController {
*/ */
@PostMapping("/getPwRMpPassRateInfo") @PostMapping("/getPwRMpPassRateInfo")
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("稳态指标合格率明细表") @ApiOperation("配网稳态指标合格率明细表")
@ApiImplicitParam(name = "param", value = "超标合格率明细参数", required = true) @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"); 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); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatOrg, methodDescribe);
} }

View File

@@ -1,5 +1,6 @@
package com.njcn.harmonic.mapper.majornetwork; 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.param.StatSubstationBizBaseParam;
import com.njcn.harmonic.pojo.po.RMpPassRateM; import com.njcn.harmonic.pojo.po.RMpPassRateM;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -24,4 +25,6 @@ public interface RMpPassRateMMapper extends BaseMapper<RMpPassRateM> {
* @return * @return
*/ */
List<RStatOrgIndexVO> getMonthPassRate(@Param("param") StatSubstationBizBaseParam baseParam); 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; 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.param.StatSubstationBizBaseParam;
import com.njcn.harmonic.pojo.po.RMpPassRateQ; import com.njcn.harmonic.pojo.po.RMpPassRateQ;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -24,4 +25,6 @@ public interface RMpPassRateQMapper extends BaseMapper<RMpPassRateQ> {
* @return * @return
*/ */
List<RStatOrgIndexVO> getQuarterPassRate(@Param("param") StatSubstationBizBaseParam baseParam); 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; 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.param.StatSubstationBizBaseParam;
import com.njcn.harmonic.pojo.po.RMpPassRateY; import com.njcn.harmonic.pojo.po.RMpPassRateY;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -24,4 +25,6 @@ public interface RMpPassRateYMapper extends BaseMapper<RMpPassRateY> {
* @return * @return
*/ */
List<RStatOrgIndexVO> getYearPassRate(@Param("param") StatSubstationBizBaseParam baseParam); 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; 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.param.StatSubstationBizBaseParam;
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailM; import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailM;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -24,4 +25,8 @@ public interface RMpSurplusHarmonicDetailMMapper extends BaseMapper<RMpSurplusHa
* @return * @return
*/ */
List<RMpPartHarmonicDetailVO> getRMpPartHarmonicDetail(@Param("param") StatSubstationBizBaseParam param); List<RMpPartHarmonicDetailVO> getRMpPartHarmonicDetail(@Param("param") StatSubstationBizBaseParam param);
Page<RMpPartHarmonicDetailVO> getPwRMpPartHarmonicDetail(Page<RMpPartHarmonicDetailVO> page,@Param("param") StatSubstationBizBaseParam param);
} }

View File

@@ -35,4 +35,28 @@
</where> </where>
</select> </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> </mapper>

View File

@@ -35,4 +35,30 @@
</where> </where>
</select> </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> </mapper>

View File

@@ -35,4 +35,30 @@
</where> </where>
</select> </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> </mapper>

View File

@@ -167,4 +167,114 @@
</where> </where>
</select> </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> </mapper>

View File

@@ -1,5 +1,6 @@
package com.njcn.harmonic.service.distribution; package com.njcn.harmonic.service.distribution;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.harmonic.pojo.param.RStatOrgParam; import com.njcn.harmonic.pojo.param.RStatOrgParam;
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
@@ -40,7 +41,7 @@ public interface PwRStatOrgService extends IService<RStatOrgQ> {
* @param param * @param param
* @return * @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 * @param param
* @return * @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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException; 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.api.PwMonitorClient;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO; import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam; import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
@@ -37,6 +39,10 @@ public class PwRMpBenchmarkLevelMServiceImpl extends ServiceImpl<PwRMpBenchmarkL
private final PwMonitorClient pwMonitorClient; private final PwMonitorClient pwMonitorClient;
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
private final DistributionMonitorClient distributionMonitorClient;
/*** /***
* 配网-全网基准水平 * 配网-全网基准水平
@@ -47,6 +53,8 @@ public class PwRMpBenchmarkLevelMServiceImpl extends ServiceImpl<PwRMpBenchmarkL
*/ */
@Override @Override
public Page<PwRMpBenchmarkLevelVO> getPwRMpBenchmarkLevelList(RMpBenchmarkLevelParam rMpBenchmarkLevelParam) { public Page<PwRMpBenchmarkLevelVO> getPwRMpBenchmarkLevelList(RMpBenchmarkLevelParam rMpBenchmarkLevelParam) {
Page<PwRMpBenchmarkLevelVO> pageResult = new Page<>(rMpBenchmarkLevelParam.getPageNum(),rMpBenchmarkLevelParam.getPageSize());
//提取查询条件 //提取查询条件
String id = rMpBenchmarkLevelParam.getId(); //单位id String id = rMpBenchmarkLevelParam.getId(); //单位id
if (StringUtils.isBlank(id)) { if (StringUtils.isBlank(id)) {
@@ -62,25 +70,33 @@ public class PwRMpBenchmarkLevelMServiceImpl extends ServiceImpl<PwRMpBenchmarkL
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam(); PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(id); //单位id pwPmsMonitorParam.setOrgId(id); //单位id
pwPmsMonitorParam.setVoltageLevels(voltageLevelParamList); //电压等级 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<>(); 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<RMpBenchmarkLevelM> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(CollUtil.isNotEmpty(monitorIdList), RMpBenchmarkLevelM::getMeasurementPointId, monitorIdList) lambdaQueryWrapper.in(RMpBenchmarkLevelM::getMeasurementPointId, monitorIds)
.ge(StringUtils.isNotBlank(startTime), RMpBenchmarkLevelM::getDataDate, startTime) .ge(StringUtils.isNotBlank(startTime), RMpBenchmarkLevelM::getDataDate, startTime)
.le(StringUtils.isNotBlank(endTime), RMpBenchmarkLevelM::getDataDate, endTime); .le(StringUtils.isNotBlank(endTime), RMpBenchmarkLevelM::getDataDate, endTime);
Page<RMpBenchmarkLevelM> listPage = this.page(new Page<>(pageNum, pageSize), lambdaQueryWrapper); 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(); PwRMpBenchmarkLevelVO rMpBenchmarkLevelVO = new PwRMpBenchmarkLevelVO();
BeanUtils.copyProperties(item, rMpBenchmarkLevelVO); 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException; 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.api.PwMonitorClient;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO; import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam; 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.mapper.distribution.PwRMpBenchmarkLevelQMapper;
import com.njcn.harmonic.pojo.param.RMpBenchmarkLevelParam; 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.po.RMpBenchmarkLevelQ;
import com.njcn.harmonic.pojo.vo.PwRMpBenchmarkLevelVO; import com.njcn.harmonic.pojo.vo.PwRMpBenchmarkLevelVO;
import com.njcn.harmonic.service.distribution.PwRMpBenchmarkLevelQService; import com.njcn.harmonic.service.distribution.PwRMpBenchmarkLevelQService;
import com.njcn.web.factory.PageFactory;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@@ -37,6 +42,11 @@ implements PwRMpBenchmarkLevelQService {
private final PwMonitorClient pwMonitorClient; private final PwMonitorClient pwMonitorClient;
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
private final DistributionMonitorClient distributionMonitorClient;
/*** /***
* 配网-全网基准水平 * 配网-全网基准水平
* @author jianghaifei * @author jianghaifei
@@ -46,6 +56,8 @@ implements PwRMpBenchmarkLevelQService {
*/ */
@Override @Override
public Page<PwRMpBenchmarkLevelVO> getPwRMpBenchmarkLevelList(RMpBenchmarkLevelParam rMpBenchmarkLevelParam) { public Page<PwRMpBenchmarkLevelVO> getPwRMpBenchmarkLevelList(RMpBenchmarkLevelParam rMpBenchmarkLevelParam) {
Page<PwRMpBenchmarkLevelVO> pageResult = new Page<>(rMpBenchmarkLevelParam.getPageNum(),rMpBenchmarkLevelParam.getPageSize());
//提取查询条件 //提取查询条件
String id = rMpBenchmarkLevelParam.getId(); //单位id String id = rMpBenchmarkLevelParam.getId(); //单位id
if (StringUtils.isBlank(id)) { if (StringUtils.isBlank(id)) {
@@ -61,24 +73,30 @@ implements PwRMpBenchmarkLevelQService {
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam(); PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(id); //单位id pwPmsMonitorParam.setOrgId(id); //单位id
pwPmsMonitorParam.setVoltageLevels(voltageLevelParamList); //电压等级 pwPmsMonitorParam.setVoltageLevels(voltageLevelParamList); //电压等级
List<PwPmsMonitorDTO> pwMonitorList = pwMonitorClient.getPwMonitorList(pwPmsMonitorParam).getData(); List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
if (CollUtil.isEmpty(pwMonitorList)) { if (CollUtil.isEmpty(monitorIds)) {
return new Page<>(); 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<RMpBenchmarkLevelQ> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(CollUtil.isNotEmpty(monitorIdList), RMpBenchmarkLevelQ::getMeasurementPointId, monitorIdList) lambdaQueryWrapper.in(RMpBenchmarkLevelQ::getMeasurementPointId, monitorIds)
.ge(StringUtils.isNotBlank(startTime), RMpBenchmarkLevelQ::getDataDate, startTime) .ge(StringUtils.isNotBlank(startTime), RMpBenchmarkLevelQ::getDataDate, startTime)
.le(StringUtils.isNotBlank(endTime), RMpBenchmarkLevelQ::getDataDate, endTime); .le(StringUtils.isNotBlank(endTime), RMpBenchmarkLevelQ::getDataDate, endTime);
Page<RMpBenchmarkLevelQ> listPage = this.page(new Page<>(pageNum, pageSize), lambdaQueryWrapper); 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 -> { List<PwRMpBenchmarkLevelVO> resultList = listPage.getRecords().stream().map(item -> {
//封装前端需要的对象 //封装前端需要的对象
PwRMpBenchmarkLevelVO rMpBenchmarkLevelVO = new PwRMpBenchmarkLevelVO(); 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException; 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.api.PwMonitorClient;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO; import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam; import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
import com.njcn.harmonic.mapper.distribution.PwRMpBenchmarkLevelYMapper; import com.njcn.harmonic.mapper.distribution.PwRMpBenchmarkLevelYMapper;
import com.njcn.harmonic.pojo.param.RMpBenchmarkLevelParam; 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.po.RMpBenchmarkLevelY;
import com.njcn.harmonic.pojo.vo.PwRMpBenchmarkLevelVO; import com.njcn.harmonic.pojo.vo.PwRMpBenchmarkLevelVO;
import com.njcn.harmonic.service.distribution.PwRMpBenchmarkLevelYService; import com.njcn.harmonic.service.distribution.PwRMpBenchmarkLevelYService;
@@ -38,6 +41,11 @@ implements PwRMpBenchmarkLevelYService {
private final PwMonitorClient pwMonitorClient; private final PwMonitorClient pwMonitorClient;
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
private final DistributionMonitorClient distributionMonitorClient;
/*** /***
* 配网-全网基准水平 * 配网-全网基准水平
* @author jianghaifei * @author jianghaifei
@@ -47,6 +55,8 @@ implements PwRMpBenchmarkLevelYService {
*/ */
@Override @Override
public Page<PwRMpBenchmarkLevelVO> getPwRMpBenchmarkLevelList(RMpBenchmarkLevelParam rMpBenchmarkLevelParam) { public Page<PwRMpBenchmarkLevelVO> getPwRMpBenchmarkLevelList(RMpBenchmarkLevelParam rMpBenchmarkLevelParam) {
Page<PwRMpBenchmarkLevelVO> pageResult = new Page<>(rMpBenchmarkLevelParam.getPageNum(),rMpBenchmarkLevelParam.getPageSize());
//提取查询条件 //提取查询条件
String id = rMpBenchmarkLevelParam.getId(); //单位id String id = rMpBenchmarkLevelParam.getId(); //单位id
if (StringUtils.isBlank(id)) { if (StringUtils.isBlank(id)) {
@@ -58,29 +68,39 @@ implements PwRMpBenchmarkLevelYService {
Integer pageNum = rMpBenchmarkLevelParam.getPageNum() != null && rMpBenchmarkLevelParam.getPageNum() != 0 ? rMpBenchmarkLevelParam.getPageNum() : 1; //页码 Integer pageNum = rMpBenchmarkLevelParam.getPageNum() != null && rMpBenchmarkLevelParam.getPageNum() != 0 ? rMpBenchmarkLevelParam.getPageNum() : 1; //页码
Integer pageSize = rMpBenchmarkLevelParam.getPageSize() != null && rMpBenchmarkLevelParam.getPageSize() != 0 ? rMpBenchmarkLevelParam.getPageSize() : 10; //页面尺寸 Integer pageSize = rMpBenchmarkLevelParam.getPageSize() != null && rMpBenchmarkLevelParam.getPageSize() != 0 ? rMpBenchmarkLevelParam.getPageSize() : 10; //页面尺寸
//根据条件查询单位下面的所有配网监测点 //根据条件查询单位下面的所有配网监测点
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam(); PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(id); //单位id pwPmsMonitorParam.setOrgId(id); //单位id
pwPmsMonitorParam.setVoltageLevels(voltageLevelParamList); //电压等级 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<>(); 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<RMpBenchmarkLevelY> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(CollUtil.isNotEmpty(monitorIdList), RMpBenchmarkLevelY::getMeasurementPointId, monitorIdList) lambdaQueryWrapper.in(RMpBenchmarkLevelY::getMeasurementPointId, monitorIds)
.ge(StringUtils.isNotBlank(startTime), RMpBenchmarkLevelY::getDataDate, startTime) .ge(StringUtils.isNotBlank(startTime), RMpBenchmarkLevelY::getDataDate, startTime)
.le(StringUtils.isNotBlank(endTime), RMpBenchmarkLevelY::getDataDate, endTime); .le(StringUtils.isNotBlank(endTime), RMpBenchmarkLevelY::getDataDate, endTime);
Page<RMpBenchmarkLevelY> listPage = this.page(new Page<>(pageNum, pageSize), lambdaQueryWrapper); 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 -> { 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.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.constant.BizParamConstant; import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.common.pojo.dto.SimpleDTO; 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.MonitorClient;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient; import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.api.PwMonitorClient; import com.njcn.device.pms.api.PwMonitorClient;
@@ -69,6 +71,8 @@ public class PwRStatOrgServiceImpl extends ServiceImpl<PwRStatOrgMapper, RStatOr
private final MonitorClient monitorClient; private final MonitorClient monitorClient;
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient; private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
private final DistributionMonitorClient distributionMonitorClient;
@Override @Override
public List<RStatOrgVO.PwRStatOrgVO> getRStatHarmonicAll(StatSubstationBizBaseParam param) { public List<RStatOrgVO.PwRStatOrgVO> getRStatHarmonicAll(StatSubstationBizBaseParam param) {
//获取当前部门下所有部门信息 //获取当前部门下所有部门信息
@@ -161,7 +165,8 @@ public class PwRStatOrgServiceImpl extends ServiceImpl<PwRStatOrgMapper, RStatOr
} }
@Override @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<>(); List<RStatOrgIndexVO> info = new ArrayList<>();
// 获取当前用户的部门的子部门信息 // 获取当前用户的部门的子部门信息
@@ -176,34 +181,41 @@ public class PwRStatOrgServiceImpl extends ServiceImpl<PwRStatOrgMapper, RStatOr
pwPmsMonitorParam.setMonitorSort(param.getMonitorSort()); pwPmsMonitorParam.setMonitorSort(param.getMonitorSort());
//监测点名称 //监测点名称
pwPmsMonitorParam.setMonitorName(param.getMonitorName()); 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 //获取最新过滤的监测点id
List<String> ids = monitorDTOList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class); StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
baseParam.setIds(ids); baseParam.setIds(monitorIds);
// 类型1年 2季度 3月份 // 类型1年 2季度 3月份
Page<RStatOrgIndexVO> temPage = new Page<>();
switch (param.getType().toString()) { switch (param.getType().toString()) {
case BizParamConstant.STAT_BIZ_YEAR: case BizParamConstant.STAT_BIZ_YEAR:
// 获取年稳态指标合格率明细表 // 获取年稳态指标合格率明细表
info = rMpPassRateYMapper.getYearPassRate(baseParam); temPage = rMpPassRateYMapper.getPageYearPassRate(new Page<>(param.getPageNum(),param.getPageSize()),baseParam);
break; break;
case BizParamConstant.STAT_BIZ_QUARTER: case BizParamConstant.STAT_BIZ_QUARTER:
// 获取季稳态指标合格率明细表 // 获取季稳态指标合格率明细表
info = rMpPassRateQMapper.getQuarterPassRate(baseParam); temPage = rMpPassRateQMapper.getPwQuarterPassRate(new Page<>(param.getPageNum(),param.getPageSize()),baseParam);
break; break;
case BizParamConstant.STAT_BIZ_MONTH: case BizParamConstant.STAT_BIZ_MONTH:
// 获取月稳态指标合格率明细表 // 获取月稳态指标合格率明细表
info = rMpPassRateMMapper.getMonthPassRate(baseParam); temPage = rMpPassRateMMapper.getPwMonthPassRate(new Page<>(param.getPageNum(),param.getPageSize()),baseParam);
break; break;
default: default:
break; break;
} }
info = temPage.getRecords();
if (CollectionUtil.isNotEmpty(info)) { 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<>(); List<PwRStatOrgVO.PwRStatOrgDetailVO> temp = new ArrayList<>();
//便利对象 //便利对象
@@ -227,10 +239,10 @@ public class PwRStatOrgServiceImpl extends ServiceImpl<PwRStatOrgMapper, RStatOr
temp.add(pwRStatOrgVO); temp.add(pwRStatOrgVO);
} }
}); });
return temp; return pageResult.setRecords(temp);
} }
} }
return new ArrayList<>(); return pageResult;
} }
@Override @Override
@@ -402,7 +414,9 @@ public class PwRStatOrgServiceImpl extends ServiceImpl<PwRStatOrgMapper, RStatOr
} }
@Override @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(); PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
//部门id //部门id
pwPmsMonitorParam.setOrgId(param.getId()); pwPmsMonitorParam.setOrgId(param.getId());
@@ -413,40 +427,40 @@ public class PwRStatOrgServiceImpl extends ServiceImpl<PwRStatOrgMapper, RStatOr
//监测点名称 //监测点名称
pwPmsMonitorParam.setMonitorName(param.getMonitorName()); pwPmsMonitorParam.setMonitorName(param.getMonitorName());
//获取配网监测点信息 //获取配网监测点信息
List<PwPmsMonitorDTO> pwPmsMonitorDTOS = pwMonitorClient.getPwMonitorList(pwPmsMonitorParam).getData(); List<String> monitorIds = pmsGeneralDeviceInfoClient.getPwPmsMonitorIds(pwPmsMonitorParam).getData();
Map<String, PwPmsMonitorDTO> pwPmsMonitorDTOMap = pwPmsMonitorDTOS.stream().collect(
Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(), (key1, key2) -> key2));
if (CollectionUtil.isNotEmpty(pwPmsMonitorDTOS)) { if (CollectionUtil.isNotEmpty(monitorIds)) {
//获取监测点id //获取监测点id
List<String> ids = pwPmsMonitorDTOS.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
//筛选出数据库对应监测点 //筛选出数据库对应监测点
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class); StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
baseParam.setIds(ids); baseParam.setIds(monitorIds);
List<RMpPartHarmonicDetailVO> rMpPartHarmonicDetail = rMpSurplusHarmonicDetailMMapper.getRMpPartHarmonicDetail(baseParam); 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( List<RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO> newList = BeanUtil.copyToList(
rMpPartHarmonicDetail, RMpPartHarmonicDetailVO.PwRMpPartHarmonicDetailDVO.class); tmpList, 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());
}
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 @Override

View File

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