1.污区图
2.过程监督-终端 代码提交
This commit is contained in:
@@ -93,4 +93,14 @@ public class PollutionSubstationController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/getLineRank")
|
||||
@ApiOperation("污区图-获取前十监测点排名")
|
||||
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
|
||||
public HttpResult<List<PollutionLineDTO>> getLineRank(@RequestBody HarmonicPublicParam param) {
|
||||
String methodDescribe = getMethodDescribe("getLineRank");
|
||||
LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, param);
|
||||
List<PollutionLineDTO> list = pollutionSubstationService.getLineRank(param);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,4 +55,14 @@ public interface PollutionSubstationService extends IService<RStatPollutionSubst
|
||||
* @Date: 2022/11/3
|
||||
*/
|
||||
List<PollutionLineDTO> getLineInfoById(HarmonicPublicParam param);
|
||||
}
|
||||
|
||||
/***
|
||||
* 获取前十监测点排名
|
||||
* @author wr
|
||||
* @date 2023-03-03 16:21
|
||||
* @param param
|
||||
* @return List<PollutionLineDTO>
|
||||
*/
|
||||
List<PollutionLineDTO> getLineRank(HarmonicPublicParam param);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
package com.njcn.harmonic.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.njcn.common.config.GeneralInfo;
|
||||
import com.njcn.common.pojo.dto.SimpleDTO;
|
||||
import com.njcn.device.pms.api.MonitorClient;
|
||||
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
|
||||
import com.njcn.device.pms.api.PmsGeneratrixClient;
|
||||
import com.njcn.device.pms.api.StatationStatClient;
|
||||
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
|
||||
import com.njcn.device.pms.pojo.dto.PmsStatationStatInfoDTO;
|
||||
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
|
||||
import com.njcn.device.pms.pojo.param.PmsStatationStatInfoParam;
|
||||
import com.njcn.device.pms.pojo.po.Monitor;
|
||||
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
||||
import com.njcn.device.pq.api.LineFeignClient;
|
||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||
@@ -10,6 +22,7 @@ import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
|
||||
import com.njcn.harmonic.constant.Param;
|
||||
import com.njcn.harmonic.pojo.dto.PublicDTO;
|
||||
import com.njcn.harmonic.pojo.param.HarmonicPublicParam;
|
||||
import com.njcn.harmonic.pojo.vo.PollMonitorVO;
|
||||
import com.njcn.harmonic.pojo.vo.PollutionVO;
|
||||
import com.njcn.harmonic.service.IPollutionService;
|
||||
import com.njcn.influxdb.utils.InfluxDbUtils;
|
||||
@@ -38,7 +51,13 @@ public class PollutionServiceImpl implements IPollutionService {
|
||||
|
||||
private final GeneralDeviceInfoClient generalDeviceInfoClient;
|
||||
|
||||
private final InfluxDbUtils influxDbUtils;
|
||||
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
|
||||
|
||||
private final StatationStatClient statationStatClient;
|
||||
|
||||
private final MonitorClient monitorClient;
|
||||
|
||||
private final InfluxDbUtils influxDbUtils = new InfluxDbUtils("admin", "njcnpqs", "http://192.168.1.18:8086", "pqsbase", ""); ;
|
||||
|
||||
private final GeneralInfo generalInfo;
|
||||
|
||||
@@ -46,37 +65,41 @@ public class PollutionServiceImpl implements IPollutionService {
|
||||
|
||||
@Override
|
||||
public List<PollutionVO> getDeptSubstationRelations(HarmonicPublicParam harmonicPublicParam) {
|
||||
harmonicPublicParam.setServerName(generalInfo.getMicroServiceName());
|
||||
//用于区分是pms 还是 pq
|
||||
List<PollutionVO> list = new ArrayList<>();
|
||||
List<String> lineList = new ArrayList<>();
|
||||
List<PollutionLineDTO> lineInfo = new ArrayList<>();
|
||||
PollutionParamDTO paramDTO = new PollutionParamDTO();
|
||||
if (StringUtils.isBlank(RequestUtil.getDeptIndex())){
|
||||
harmonicPublicParam.setServerName(generalInfo.getMicroServiceName());
|
||||
if (StringUtils.isBlank(RequestUtil.getDeptIndex())) {
|
||||
return list;
|
||||
}
|
||||
List<GeneralDeviceDTO> deviceList = generalDeviceInfoClient.getPracticalRunDeviceInfo(harmonicPublicParam).getData();
|
||||
deviceList.forEach(dept->{
|
||||
deviceList.forEach(dept -> {
|
||||
lineList.addAll(dept.getLineIndexes());
|
||||
});
|
||||
if (!CollectionUtils.isEmpty(lineList)){
|
||||
|
||||
if (!CollectionUtils.isEmpty(lineList)) {
|
||||
paramDTO.setLineList(lineList);
|
||||
lineInfo = lineFeignClient.getLineInfo(paramDTO).getData();
|
||||
List<PublicDTO> lineData = getLineDate(lineList,harmonicPublicParam.getSearchBeginTime(),harmonicPublicParam.getSearchEndTime(),harmonicPublicParam.getStatisticalType().getCode());
|
||||
if (!CollectionUtils.isEmpty(lineData)){
|
||||
lineInfo.stream().map(list1->lineData.stream().filter(list2-> Objects.equals(list1.getId(),list2.getId())).findAny().map(m->{
|
||||
|
||||
List<PublicDTO> lineData = getLineDate(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime(), harmonicPublicParam.getStatisticalType().getCode());
|
||||
|
||||
if (!CollectionUtils.isEmpty(lineData)) {
|
||||
lineInfo.stream().map(list1 -> lineData.stream().filter(list2 -> Objects.equals(list1.getId(), list2.getId())).findAny().map(m -> {
|
||||
list1.setData(m.getData());
|
||||
return list1;
|
||||
})).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
Map<String,List<PollutionLineDTO>> map = lineInfo.stream().collect(Collectors.groupingBy(PollutionLineDTO::getSubstationId));
|
||||
deviceList.forEach(dept->{
|
||||
Map<String, List<PollutionLineDTO>> map = lineInfo.stream().collect(Collectors.groupingBy(PollutionLineDTO::getSubstationId));
|
||||
deviceList.forEach(dept -> {
|
||||
List<PollutionVO> childrenList = new ArrayList<>();
|
||||
PollutionVO pollutionVO = new PollutionVO();
|
||||
pollutionVO.setId(dept.getIndex());
|
||||
pollutionVO.setName(dept.getName());
|
||||
if (!CollectionUtils.isEmpty(dept.getSubIndexes())){
|
||||
dept.getSubIndexes().forEach(sub->{
|
||||
if (!CollectionUtils.isEmpty(dept.getSubIndexes())) {
|
||||
dept.getSubIndexes().forEach(sub -> {
|
||||
List<PollutionLineDTO> l1 = map.get(sub);
|
||||
PollutionVO children = new PollutionVO();
|
||||
children.setId(sub);
|
||||
@@ -86,13 +109,13 @@ public class PollutionServiceImpl implements IPollutionService {
|
||||
childrenList.add(children);
|
||||
});
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(childrenList)){
|
||||
if (!CollectionUtils.isEmpty(childrenList)) {
|
||||
pollutionVO.setChildren(childrenList.stream().sorted(Comparator.comparing(PollutionVO::getData).reversed()).collect(Collectors.toList()));
|
||||
pollutionVO.setData(childrenList.stream().max(Comparator.comparing(PollutionVO::getData)).get().getData());
|
||||
}
|
||||
list.add(pollutionVO);
|
||||
});
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
return list.stream().sorted(Comparator.comparing(PollutionVO::getData).reversed().thenComparing(PollutionVO::getName)).collect(Collectors.toList());
|
||||
}
|
||||
return list;
|
||||
@@ -100,20 +123,20 @@ public class PollutionServiceImpl implements IPollutionService {
|
||||
|
||||
@Override
|
||||
public List<PollutionSubstationDTO> getSubstationInfoById(HarmonicPublicParam deptParam) {
|
||||
deptParam.setServerName(generalInfo.getMicroServiceName());
|
||||
List<PollutionSubstationDTO> list = new ArrayList<>();
|
||||
deptParam.setServerName(generalInfo.getMicroServiceName());
|
||||
List<GeneralDeviceDTO> sub = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(deptParam).getData();
|
||||
sub.forEach(item->{
|
||||
sub.forEach(item -> {
|
||||
PollutionSubstationDTO pollutionSubstationDTO = lineFeignClient.getSubstationInfo(item.getIndex()).getData();
|
||||
if (!CollectionUtils.isEmpty(item.getLineIndexes())){
|
||||
List<PublicDTO> lineData = getLineDate(item.getLineIndexes(),deptParam.getSearchBeginTime(),deptParam.getSearchEndTime(),deptParam.getStatisticalType().getCode());
|
||||
if (!CollectionUtils.isEmpty(lineData)){
|
||||
if (!CollectionUtils.isEmpty(item.getLineIndexes())) {
|
||||
List<PublicDTO> lineData = getLineDate(item.getLineIndexes(), deptParam.getSearchBeginTime(), deptParam.getSearchEndTime(), deptParam.getStatisticalType().getCode());
|
||||
if (!CollectionUtils.isEmpty(lineData)) {
|
||||
pollutionSubstationDTO.setData(lineData.stream().max(Comparator.comparing(PublicDTO::getData)).get().getData());
|
||||
}
|
||||
}
|
||||
list.add(pollutionSubstationDTO);
|
||||
});
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
return list.stream().sorted(Comparator.comparing(PollutionSubstationDTO::getData).reversed().thenComparing(PollutionSubstationDTO::getName)).collect(Collectors.toList());
|
||||
}
|
||||
return list;
|
||||
@@ -125,23 +148,23 @@ public class PollutionServiceImpl implements IPollutionService {
|
||||
List<PollutionLineDTO> list = new ArrayList<>();
|
||||
List<String> line = new ArrayList<>();
|
||||
PollutionParamDTO paramDTO = new PollutionParamDTO();
|
||||
if (StringUtils.isBlank(RequestUtil.getDeptIndex())){
|
||||
if (StringUtils.isBlank(RequestUtil.getDeptIndex())) {
|
||||
return list;
|
||||
}
|
||||
List<GeneralDeviceDTO> sub = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(harmonicPublicParam).getData();
|
||||
sub.forEach(item->{
|
||||
if (Objects.equals(harmonicPublicParam.getId(),item.getIndex())){
|
||||
if (!CollectionUtils.isEmpty(item.getLineIndexes())){
|
||||
sub.forEach(item -> {
|
||||
if (Objects.equals(harmonicPublicParam.getId(), item.getIndex())) {
|
||||
if (!CollectionUtils.isEmpty(item.getLineIndexes())) {
|
||||
line.addAll(item.getLineIndexes());
|
||||
}
|
||||
}
|
||||
});
|
||||
if (!CollectionUtils.isEmpty(line)){
|
||||
if (!CollectionUtils.isEmpty(line)) {
|
||||
paramDTO.setLineList(line);
|
||||
list = lineFeignClient.getLineInfo(paramDTO).getData();
|
||||
List<PublicDTO> lineData = getLineDate(line, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime(), harmonicPublicParam.getStatisticalType().getCode());
|
||||
if (!CollectionUtils.isEmpty(lineData)){
|
||||
list.stream().map(list1->lineData.stream().filter(list2-> Objects.equals(list1.getId(),list2.getId())).findAny().map(m->{
|
||||
if (!CollectionUtils.isEmpty(lineData)) {
|
||||
list.stream().map(list1 -> lineData.stream().filter(list2 -> Objects.equals(list1.getId(), list2.getId())).findAny().map(m -> {
|
||||
list1.setData(m.getData());
|
||||
return list1;
|
||||
})).collect(Collectors.toList());
|
||||
@@ -158,29 +181,29 @@ public class PollutionServiceImpl implements IPollutionService {
|
||||
List<PollutionLineDTO> list = new ArrayList<>();
|
||||
List<String> lineList = new ArrayList<>();
|
||||
PollutionParamDTO paramDTO = new PollutionParamDTO();
|
||||
if (StringUtils.isBlank(RequestUtil.getDeptIndex())){
|
||||
if (StringUtils.isBlank(RequestUtil.getDeptIndex())) {
|
||||
return list;
|
||||
}
|
||||
List<GeneralDeviceDTO> deviceList = generalDeviceInfoClient.getPracticalRunDeviceInfo(harmonicPublicParam).getData();
|
||||
deviceList.forEach(item->{
|
||||
if (!CollectionUtils.isEmpty(item.getLineIndexes())){
|
||||
deviceList.forEach(item -> {
|
||||
if (!CollectionUtils.isEmpty(item.getLineIndexes())) {
|
||||
lineList.addAll(item.getLineIndexes());
|
||||
}
|
||||
});
|
||||
if (!CollectionUtils.isEmpty(lineList)){
|
||||
if (!CollectionUtils.isEmpty(lineList)) {
|
||||
paramDTO.setLineList(lineList);
|
||||
list = lineFeignClient.getLineInfo(paramDTO).getData();
|
||||
List<PublicDTO> result = getLineDate(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime(), harmonicPublicParam.getStatisticalType().getCode());
|
||||
if (!CollectionUtils.isEmpty(result)){
|
||||
list.stream().map(list1->result.stream().filter(list2-> Objects.equals(list1.getId(),list2.getId())).findAny().map(m->{
|
||||
if (!CollectionUtils.isEmpty(result)) {
|
||||
list.stream().map(list1 -> result.stream().filter(list2 -> Objects.equals(list1.getId(), list2.getId())).findAny().map(m -> {
|
||||
list1.setData(m.getData());
|
||||
return list1;
|
||||
})).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
list.sort((item1,item2)->item2.getData().compareTo(item1.getData()));
|
||||
if (list.size() > Param.UP_LIMIT){
|
||||
return list.subList(Param.DOWN_LIMIT,Param.UP_LIMIT);
|
||||
list.sort((item1, item2) -> item2.getData().compareTo(item1.getData()));
|
||||
if (list.size() > Param.UP_LIMIT) {
|
||||
return list.subList(Param.DOWN_LIMIT, Param.UP_LIMIT);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
@@ -188,40 +211,41 @@ public class PollutionServiceImpl implements IPollutionService {
|
||||
|
||||
/**
|
||||
* 功能描述:根据监测点id查询influxDB污染指数
|
||||
* @param line 监测点集合
|
||||
* startTime 开始时间
|
||||
* endTime 结束时间
|
||||
* type 指标参数
|
||||
*
|
||||
* @param line 监测点集合
|
||||
* startTime 开始时间
|
||||
* endTime 结束时间
|
||||
* type 指标参数
|
||||
* @return
|
||||
* @author xy
|
||||
* @date 2022/2/21 20:08
|
||||
*/
|
||||
private List<PublicDTO> getLineDate(List<String> line, String startTime, String endTime, String type){
|
||||
private List<PublicDTO> getLineDate(List<String> line, String startTime, String endTime, String type) {
|
||||
List<PublicDTO> result = new ArrayList<>();
|
||||
String quota = "";
|
||||
if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){
|
||||
if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) {
|
||||
quota = "harmonic_v";
|
||||
} else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){
|
||||
} else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) {
|
||||
quota = "harmonic_i";
|
||||
}
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.append(Param.TIME).append(" >= '").append(startTime).append(Param.START_TIME).append("' and ").append(Param.TIME).append(" <= '").append(endTime).append(Param.END_TIME).append("' and (");
|
||||
for (int i=0;i<line.size();i++){
|
||||
if (line.size() - i != 1){
|
||||
for (int i = 0; i < line.size(); i++) {
|
||||
if (line.size() - i != 1) {
|
||||
stringBuilder.append(Param.LINE_ID).append("='").append(line.get(i)).append("' or ");
|
||||
} else {
|
||||
stringBuilder.append(Param.LINE_ID).append("='").append(line.get(i)).append("')");
|
||||
}
|
||||
}
|
||||
stringBuilder.append(" group by line_id order by time desc limit 1 tz('Asia/Shanghai')");
|
||||
String sql = "SELECT line_id,"+quota+" FROM harmonic_pollution where " + stringBuilder;
|
||||
String sql = "SELECT line_id," + quota + " FROM harmonic_pollution where " + stringBuilder;
|
||||
QueryResult sqlResult = influxDbUtils.query(sql);
|
||||
List<QueryResult.Series> list = sqlResult.getResults().get(0).getSeries();
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
list.forEach(po->{
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
list.forEach(po -> {
|
||||
String index = po.getTags().get(Param.LINE_ID);
|
||||
List<List<Object>> valueList = po.getValues();
|
||||
if (!CollectionUtils.isEmpty(valueList)){
|
||||
if (!CollectionUtils.isEmpty(valueList)) {
|
||||
for (List<Object> value : valueList) {
|
||||
PublicDTO publicDTO = new PublicDTO();
|
||||
Double data = value.get(2) == null ? 0.0 : BigDecimal.valueOf(Double.parseDouble(value.get(2).toString())).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
|
||||
@@ -1,15 +1,26 @@
|
||||
package com.njcn.harmonic.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.common.config.GeneralInfo;
|
||||
import com.njcn.common.pojo.constant.BizParamConstant;
|
||||
import com.njcn.common.pojo.dto.SimpleDTO;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.device.pms.api.MonitorClient;
|
||||
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
|
||||
import com.njcn.device.pms.api.StatationStatClient;
|
||||
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
|
||||
import com.njcn.device.pms.pojo.dto.PmsStatationStatInfoDTO;
|
||||
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
|
||||
import com.njcn.device.pms.pojo.param.PmsStatationStatInfoParam;
|
||||
import com.njcn.device.pms.pojo.po.Monitor;
|
||||
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
||||
import com.njcn.device.pq.api.LineFeignClient;
|
||||
import com.njcn.device.pq.api.SubstationFeignClient;
|
||||
import com.njcn.device.pq.pojo.dto.*;
|
||||
import com.njcn.harmonic.constant.Param;
|
||||
import com.njcn.harmonic.mapper.*;
|
||||
import com.njcn.harmonic.pojo.param.HarmonicPublicParam;
|
||||
import com.njcn.harmonic.pojo.param.PollutionSubstationQuryParam;
|
||||
@@ -45,7 +56,9 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
||||
|
||||
private final SubstationFeignClient substationFeignClient;
|
||||
|
||||
|
||||
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
|
||||
private final StatationStatClient statationStatClient;
|
||||
private final MonitorClient monitorClient;
|
||||
|
||||
private final RStatPollutionSubstationMMapper pollutionSubstationMMapper;
|
||||
private final RStatPollutionSubstationYPOMapper pollutionSubstationYPOMapper;
|
||||
@@ -150,117 +163,90 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
||||
*/
|
||||
@Override
|
||||
public List<PollutionVO> getDeptSubstationRelations(HarmonicPublicParam harmonicPublicParam) {
|
||||
harmonicPublicParam.setServerName(generalInfo.getMicroServiceName());
|
||||
List<PollutionVO> list = new ArrayList<>();
|
||||
List<String> lineList = new ArrayList<>();
|
||||
List<PollutionLineDTO> lineInfo = new ArrayList<>();
|
||||
PollutionParamDTO paramDTO = new PollutionParamDTO();
|
||||
|
||||
String pollutionType = harmonicPublicParam.getStatisticalType ( ).getId ();
|
||||
|
||||
String searchBeginTime = harmonicPublicParam.getSearchBeginTime ( ).substring (0,10);
|
||||
if (StringUtils.isBlank(RequestUtil.getDeptIndex())){
|
||||
return list;
|
||||
}
|
||||
List<GeneralDeviceDTO> sub = generalDeviceInfoClient.getPracticalRunDeviceInfo(harmonicPublicParam).getData();
|
||||
sub.forEach (temp ->{
|
||||
PollutionVO pollutionVO = new PollutionVO ();
|
||||
String detpid = temp.getIndex ();
|
||||
String name =temp.getName ();
|
||||
List<String> subIndexes = temp.getSubIndexes ( );
|
||||
pollutionVO.setId (detpid);
|
||||
pollutionVO.setName (name);
|
||||
pollutionVO.setData (-1.0);
|
||||
if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_YEAR) ){
|
||||
QueryWrapper<RStatPollutionOrgYPO> rStatPollutionOrgYPOQueryWrapper = new QueryWrapper<> ();
|
||||
rStatPollutionOrgYPOQueryWrapper.eq ("org_id", detpid).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionOrgYPO rStatPollutionOrgYPO = rStatPollutionOrgYPOMapper.selectOne (rStatPollutionOrgYPOQueryWrapper);
|
||||
;
|
||||
Optional.ofNullable (rStatPollutionOrgYPO).ifPresent (a->pollutionVO.setData (a.getValue ()));
|
||||
}else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_QUARTER)){
|
||||
QueryWrapper<RStatPollutionOrgQPO> rStatPollutionOrgQPOQueryWrapper = new QueryWrapper<> ();
|
||||
rStatPollutionOrgQPOQueryWrapper.eq ("org_id", detpid).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionOrgQPO rStatPollutionOrgQPO = rStatPollutionOrgQPOMapper.selectOne (rStatPollutionOrgQPOQueryWrapper);
|
||||
;
|
||||
Optional.ofNullable (rStatPollutionOrgQPO).ifPresent (a->pollutionVO.setData (a.getValue ()));
|
||||
|
||||
}else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_MONTH)){
|
||||
if (harmonicPublicParam.getType() == 0) {
|
||||
PmsDeviceInfoParam pmsDeviceInfoParam = new PmsDeviceInfoParam();
|
||||
pmsDeviceInfoParam.setDeptIndex(harmonicPublicParam.getDeptIndex());
|
||||
//获取统计类型
|
||||
pmsDeviceInfoParam.setStatisticalType(harmonicPublicParam.getStatisticalType());
|
||||
//获取主网台账信息
|
||||
List<PmsGeneralDeviceDTO> deviceList = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pmsDeviceInfoParam).getData();
|
||||
deviceList.forEach(temp->{
|
||||
PollutionVO pollutionVO = new PollutionVO ();
|
||||
String detpid = temp.getIndex ();
|
||||
String name =temp.getName ();
|
||||
List<String> powers = temp.getPowerrIdList ( );
|
||||
pollutionVO.setId (detpid);
|
||||
pollutionVO.setName (name);
|
||||
pollutionVO.setData (-1.0);
|
||||
setData(harmonicPublicParam, pollutionType, searchBeginTime, pollutionVO, detpid);
|
||||
|
||||
QueryWrapper<RStatPollutionOrgMPO> rStatPollutionOrgMPOQueryWrapper = new QueryWrapper<> ();
|
||||
rStatPollutionOrgMPOQueryWrapper.eq ("org_id", detpid).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionOrgMPO rStatPollutionOrgMPO = rStatPollutionOrgMPOMapper.selectOne (rStatPollutionOrgMPOQueryWrapper);
|
||||
;
|
||||
Optional.ofNullable (rStatPollutionOrgMPO).ifPresent (a->pollutionVO.setData (a.getValue ()));
|
||||
|
||||
}else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_DAY)){
|
||||
QueryWrapper<RStatPollutionOrgDPO> rStatPollutionOrgDPOQueryWrapper = new QueryWrapper<> ();
|
||||
rStatPollutionOrgDPOQueryWrapper.eq ("org_id", detpid).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionOrgDPO rStatPollutionOrgDPO = rStatPollutionOrgDPOMapper.selectOne (rStatPollutionOrgDPOQueryWrapper);
|
||||
;
|
||||
Optional.ofNullable (rStatPollutionOrgDPO).ifPresent (a->pollutionVO.setData (a.getValue ()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
List<PollutionVO> subPollutionVO = new ArrayList<>();
|
||||
subIndexes.forEach (subIndex->{
|
||||
PollutionVO pollutionsubVO = new PollutionVO ();
|
||||
PollutionSubstationDTO pollutionSubstationDTO = lineFeignClient.getSubstationInfo(subIndex).getData();
|
||||
String id = pollutionSubstationDTO.getId ( );
|
||||
pollutionsubVO.setId (id);
|
||||
pollutionsubVO.setName ( pollutionSubstationDTO.getName ());
|
||||
pollutionsubVO.setPid (temp.getIndex ());
|
||||
pollutionsubVO.setData (-1.0);
|
||||
|
||||
if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_YEAR) ){
|
||||
QueryWrapper<RStatPollutionSubstationYPO> wrapper = new QueryWrapper<> ();
|
||||
wrapper.eq ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionSubstationYPO rStatPollutionSubstationYPO = pollutionSubstationYPOMapper.selectOne (wrapper);
|
||||
|
||||
Optional.ofNullable (rStatPollutionSubstationYPO).ifPresent (t->pollutionsubVO.setData (t.getValue ()));
|
||||
}else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_QUARTER)){
|
||||
QueryWrapper<RStatPollutionSubstationQPO> wrapper = new QueryWrapper<> ();
|
||||
wrapper.eq ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionSubstationQPO rStatPollutionSubstationQPO = pollutionSubstationQPOMapper.selectOne (wrapper);
|
||||
|
||||
Optional.ofNullable (rStatPollutionSubstationQPO).ifPresent (t->pollutionsubVO.setData (t.getValue ()));
|
||||
}else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_MONTH)){
|
||||
QueryWrapper<RStatPollutionSubstationM> wrapper = new QueryWrapper<> ();
|
||||
wrapper.eq ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionSubstationM rStatPollutionSubstationM = pollutionSubstationMMapper.selectOne (wrapper);
|
||||
|
||||
Optional.ofNullable (rStatPollutionSubstationM).ifPresent (t->pollutionsubVO.setData (t.getValue ()));
|
||||
|
||||
}else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_DAY)){
|
||||
QueryWrapper<RStatPollutionSubstationDPO> wrapper = new QueryWrapper<> ();
|
||||
wrapper.eq ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionSubstationDPO rStatPollutionSubstationDPO = pollutionSubstationDPOMapper.selectOne (wrapper);
|
||||
|
||||
Optional.ofNullable (rStatPollutionSubstationDPO).ifPresent (t->pollutionsubVO.setData (t.getValue ()));
|
||||
//子集变电站
|
||||
List<PollutionVO> powersVO = new ArrayList<>();
|
||||
PmsStatationStatInfoParam param=new PmsStatationStatInfoParam();
|
||||
param.setPowerIds(powers);
|
||||
List<PmsStatationStatInfoDTO> data = statationStatClient.getStatationStatInfo(param).getData();
|
||||
//去重解决重复数据
|
||||
ArrayList<PmsStatationStatInfoDTO> dsData = data.stream().collect(Collectors.collectingAndThen
|
||||
(Collectors.toCollection(() ->
|
||||
new TreeSet<>(Comparator.comparing(o -> o.getPowerId()))), ArrayList::new));
|
||||
Map<String, Double> stringDoubleMap = setPmsSubData(harmonicPublicParam, pollutionType, searchBeginTime, powers);
|
||||
if(CollectionUtil.isNotEmpty(data)){
|
||||
dsData.forEach(power->{
|
||||
PollutionVO pollutionsubVO = new PollutionVO ();
|
||||
pollutionsubVO.setId (power.getPowerId());
|
||||
pollutionsubVO.setName ( power.getPowerName ());
|
||||
pollutionsubVO.setPid (temp.getIndex ());
|
||||
if(stringDoubleMap.containsKey(power.getPowerId())){
|
||||
pollutionsubVO.setData(stringDoubleMap.get(power.getPowerId()));
|
||||
}
|
||||
powersVO.add (pollutionsubVO) ;
|
||||
});
|
||||
}
|
||||
|
||||
subPollutionVO.add (pollutionsubVO) ;
|
||||
pollutionVO.setChildren (powersVO);
|
||||
list.add (pollutionVO);
|
||||
});
|
||||
pollutionVO.setChildren (subPollutionVO);
|
||||
|
||||
list.add (pollutionVO);
|
||||
});
|
||||
}else{
|
||||
harmonicPublicParam.setServerName(generalInfo.getMicroServiceName());
|
||||
|
||||
List<GeneralDeviceDTO> sub = generalDeviceInfoClient.getPracticalRunDeviceInfo(harmonicPublicParam).getData();
|
||||
sub.forEach (temp ->{
|
||||
PollutionVO pollutionVO = new PollutionVO ();
|
||||
String detpid = temp.getIndex ();
|
||||
String name =temp.getName ();
|
||||
List<String> subIndexes = temp.getSubIndexes ( );
|
||||
pollutionVO.setId (detpid);
|
||||
pollutionVO.setName (name);
|
||||
pollutionVO.setData (-1.0);
|
||||
setData(harmonicPublicParam, pollutionType, searchBeginTime, pollutionVO, detpid);
|
||||
|
||||
|
||||
List<PollutionVO> subPollutionVO = new ArrayList<>();
|
||||
subIndexes.forEach (subIndex->{
|
||||
PollutionVO pollutionsubVO = new PollutionVO ();
|
||||
PollutionSubstationDTO pollutionSubstationDTO = lineFeignClient.getSubstationInfo(subIndex).getData();
|
||||
String id = pollutionSubstationDTO.getId ( );
|
||||
pollutionsubVO.setId (id);
|
||||
pollutionsubVO.setName ( pollutionSubstationDTO.getName ());
|
||||
pollutionsubVO.setPid (temp.getIndex ());
|
||||
pollutionsubVO.setData (-1.0);
|
||||
|
||||
setSubData(harmonicPublicParam, pollutionType, searchBeginTime, pollutionsubVO, id);
|
||||
|
||||
subPollutionVO.add (pollutionsubVO) ;
|
||||
});
|
||||
pollutionVO.setChildren (subPollutionVO);
|
||||
|
||||
list.add (pollutionVO);
|
||||
});
|
||||
}
|
||||
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
return list.stream().sorted(Comparator.comparing(PollutionVO::getData).reversed().thenComparing(PollutionVO::getName)).collect(Collectors.toList());
|
||||
@@ -268,6 +254,117 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
||||
return list;
|
||||
}
|
||||
|
||||
private Map<String,Double> setPmsSubData(HarmonicPublicParam harmonicPublicParam, String pollutionType, String searchBeginTime, List<String> id) {
|
||||
if(Objects.equals (harmonicPublicParam.getReportFlag (), BizParamConstant.STAT_BIZ_YEAR) ){
|
||||
QueryWrapper<RStatPollutionSubstationYPO> wrapper = new QueryWrapper<> ();
|
||||
wrapper.in ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
List<RStatPollutionSubstationYPO> s = pollutionSubstationYPOMapper.selectList(wrapper);
|
||||
return s.stream().collect(Collectors.toMap(RStatPollutionSubstationYPO::getSubstationId, RStatPollutionSubstationYPO::getValue));
|
||||
}else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_QUARTER)){
|
||||
QueryWrapper<RStatPollutionSubstationQPO> wrapper = new QueryWrapper<> ();
|
||||
wrapper.in ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
List<RStatPollutionSubstationQPO> s = pollutionSubstationQPOMapper.selectList(wrapper);
|
||||
return s.stream().collect(Collectors.toMap(RStatPollutionSubstationQPO::getSubstationId, RStatPollutionSubstationQPO::getValue));
|
||||
|
||||
}else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_MONTH)){
|
||||
QueryWrapper<RStatPollutionSubstationM> wrapper = new QueryWrapper<> ();
|
||||
wrapper.in ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
List<RStatPollutionSubstationM> s = pollutionSubstationMMapper.selectList(wrapper);
|
||||
return s.stream().collect(Collectors.toMap(RStatPollutionSubstationM::getSubstationId, RStatPollutionSubstationM::getValue));
|
||||
}else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_DAY)){
|
||||
QueryWrapper<RStatPollutionSubstationDPO> wrapper = new QueryWrapper<> ();
|
||||
wrapper.in ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
List<RStatPollutionSubstationDPO> s = pollutionSubstationDPOMapper.selectList(wrapper);
|
||||
return s.stream().collect(Collectors.toMap(RStatPollutionSubstationDPO::getSubstationId, RStatPollutionSubstationDPO::getValue));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void setSubData(HarmonicPublicParam harmonicPublicParam, String pollutionType, String searchBeginTime, PollutionVO pollutionsubVO, String id) {
|
||||
if(Objects.equals (harmonicPublicParam.getReportFlag (), BizParamConstant.STAT_BIZ_YEAR) ){
|
||||
QueryWrapper<RStatPollutionSubstationYPO> wrapper = new QueryWrapper<> ();
|
||||
wrapper.eq ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionSubstationYPO rStatPollutionSubstationYPO = pollutionSubstationYPOMapper.selectOne (wrapper);
|
||||
|
||||
Optional.ofNullable (rStatPollutionSubstationYPO).ifPresent (t->pollutionsubVO.setData (t.getValue ()));
|
||||
}else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_QUARTER)){
|
||||
QueryWrapper<RStatPollutionSubstationQPO> wrapper = new QueryWrapper<> ();
|
||||
wrapper.eq ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionSubstationQPO rStatPollutionSubstationQPO = pollutionSubstationQPOMapper.selectOne (wrapper);
|
||||
|
||||
Optional.ofNullable (rStatPollutionSubstationQPO).ifPresent (t->pollutionsubVO.setData (t.getValue ()));
|
||||
}else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_MONTH)){
|
||||
QueryWrapper<RStatPollutionSubstationM> wrapper = new QueryWrapper<> ();
|
||||
wrapper.eq ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionSubstationM rStatPollutionSubstationM = pollutionSubstationMMapper.selectOne (wrapper);
|
||||
|
||||
Optional.ofNullable (rStatPollutionSubstationM).ifPresent (t->pollutionsubVO.setData (t.getValue ()));
|
||||
|
||||
}else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_DAY)){
|
||||
QueryWrapper<RStatPollutionSubstationDPO> wrapper = new QueryWrapper<> ();
|
||||
wrapper.eq ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionSubstationDPO rStatPollutionSubstationDPO = pollutionSubstationDPOMapper.selectOne (wrapper);
|
||||
|
||||
Optional.ofNullable (rStatPollutionSubstationDPO).ifPresent (t->pollutionsubVO.setData (t.getValue ()));
|
||||
}
|
||||
}
|
||||
|
||||
private void setData(HarmonicPublicParam harmonicPublicParam, String pollutionType, String searchBeginTime, PollutionVO pollutionVO, String detpid) {
|
||||
if(Objects.equals (harmonicPublicParam.getReportFlag (), BizParamConstant.STAT_BIZ_YEAR) ){
|
||||
QueryWrapper<RStatPollutionOrgYPO> rStatPollutionOrgYPOQueryWrapper = new QueryWrapper<> ();
|
||||
rStatPollutionOrgYPOQueryWrapper.eq ("org_id", detpid).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionOrgYPO rStatPollutionOrgYPO = rStatPollutionOrgYPOMapper.selectOne (rStatPollutionOrgYPOQueryWrapper);
|
||||
;
|
||||
Optional.ofNullable (rStatPollutionOrgYPO).ifPresent (a->pollutionVO.setData (a.getValue ()));
|
||||
}else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_QUARTER)){
|
||||
QueryWrapper<RStatPollutionOrgQPO> rStatPollutionOrgQPOQueryWrapper = new QueryWrapper<> ();
|
||||
rStatPollutionOrgQPOQueryWrapper.eq ("org_id", detpid).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionOrgQPO rStatPollutionOrgQPO = rStatPollutionOrgQPOMapper.selectOne (rStatPollutionOrgQPOQueryWrapper);
|
||||
;
|
||||
Optional.ofNullable (rStatPollutionOrgQPO).ifPresent (a->pollutionVO.setData (a.getValue ()));
|
||||
|
||||
}else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_MONTH)){
|
||||
|
||||
QueryWrapper<RStatPollutionOrgMPO> rStatPollutionOrgMPOQueryWrapper = new QueryWrapper<> ();
|
||||
rStatPollutionOrgMPOQueryWrapper.eq ("org_id", detpid).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionOrgMPO rStatPollutionOrgMPO = rStatPollutionOrgMPOMapper.selectOne (rStatPollutionOrgMPOQueryWrapper);
|
||||
;
|
||||
Optional.ofNullable (rStatPollutionOrgMPO).ifPresent (a->pollutionVO.setData (a.getValue ()));
|
||||
|
||||
}else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_DAY)){
|
||||
QueryWrapper<RStatPollutionOrgDPO> rStatPollutionOrgDPOQueryWrapper = new QueryWrapper<> ();
|
||||
rStatPollutionOrgDPOQueryWrapper.eq ("org_id", detpid).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionOrgDPO rStatPollutionOrgDPO = rStatPollutionOrgDPOMapper.selectOne (rStatPollutionOrgDPOQueryWrapper);
|
||||
;
|
||||
Optional.ofNullable (rStatPollutionOrgDPO).ifPresent (a->pollutionVO.setData (a.getValue ()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Description: getSubstationInfoById
|
||||
* @Param: [param]
|
||||
@@ -277,52 +374,84 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
||||
*/
|
||||
@Override
|
||||
public List<PollutionSubstationDTO> getSubstationInfoById(HarmonicPublicParam deptParam) {
|
||||
deptParam.setServerName(generalInfo.getMicroServiceName());
|
||||
List<PollutionSubstationDTO> list = new ArrayList<>();
|
||||
List<GeneralDeviceDTO> sub = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(deptParam).getData();
|
||||
|
||||
String pollutionType = deptParam.getStatisticalType ( ).getId ();
|
||||
String searchBeginTime = deptParam.getSearchBeginTime ( ).substring (0,10);
|
||||
sub.forEach(item->{
|
||||
PollutionSubstationDTO pollutionSubstationDTO = lineFeignClient.getSubstationInfo(item.getIndex()).getData();
|
||||
String id = pollutionSubstationDTO.getId ();
|
||||
if(Objects.equals (deptParam.getReportFlag (),BizParamConstant.STAT_BIZ_YEAR) ){
|
||||
QueryWrapper<RStatPollutionSubstationYPO> wrapper = new QueryWrapper<> ();
|
||||
wrapper.eq ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionSubstationYPO rStatPollutionSubstationYPO = pollutionSubstationYPOMapper.selectOne (wrapper);
|
||||
List<PollutionSubstationDTO> list = new ArrayList<>();
|
||||
|
||||
Optional.ofNullable (rStatPollutionSubstationYPO).ifPresent (t->pollutionSubstationDTO.setData (t.getValue ()));
|
||||
}else if(Objects.equals (deptParam.getReportFlag (),BizParamConstant.STAT_BIZ_QUARTER)){
|
||||
QueryWrapper<RStatPollutionSubstationQPO> wrapper = new QueryWrapper<> ();
|
||||
wrapper.eq ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionSubstationQPO rStatPollutionSubstationQPO = pollutionSubstationQPOMapper.selectOne (wrapper);
|
||||
if (deptParam.getType() == 0) {
|
||||
PmsDeviceInfoParam pmsDeviceInfoParam = new PmsDeviceInfoParam();
|
||||
pmsDeviceInfoParam.setDeptIndex(deptParam.getDeptIndex());
|
||||
//获取统计类型
|
||||
pmsDeviceInfoParam.setStatisticalType(deptParam.getStatisticalType());
|
||||
//获取主网台账信息
|
||||
List<PmsGeneralDeviceDTO> deviceList = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pmsDeviceInfoParam).getData();
|
||||
deviceList.forEach(temp->{
|
||||
List<String> powers = temp.getPowerrIdList ( );
|
||||
PmsStatationStatInfoParam param=new PmsStatationStatInfoParam();
|
||||
param.setPowerIds(powers);
|
||||
List<PmsStatationStatInfoDTO> data = statationStatClient.getStatationStatInfo(param).getData();
|
||||
//去重解决重复数据
|
||||
ArrayList<PmsStatationStatInfoDTO> dsData = data.stream().collect(Collectors.collectingAndThen
|
||||
(Collectors.toCollection(() ->
|
||||
new TreeSet<>(Comparator.comparing(o -> o.getPowerId()))), ArrayList::new));
|
||||
Map<String, Double> stringDoubleMap = setPmsSubData(deptParam, pollutionType, searchBeginTime, powers);
|
||||
if(CollectionUtil.isNotEmpty(data)){
|
||||
dsData.forEach(power->{
|
||||
PollutionSubstationDTO dto=new PollutionSubstationDTO();
|
||||
dto.setId(power.getPowerId());
|
||||
dto.setName(power.getPowerName());
|
||||
dto.setVoltageLevel(power.getPowerVoltageLevel());
|
||||
if(stringDoubleMap.containsKey(power.getPowerId())){
|
||||
dto.setData(stringDoubleMap.get(power.getPowerId()));
|
||||
}
|
||||
list.add (dto) ;
|
||||
});
|
||||
}
|
||||
});
|
||||
}else{
|
||||
deptParam.setServerName(generalInfo.getMicroServiceName());
|
||||
List<GeneralDeviceDTO> sub = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(deptParam).getData();
|
||||
sub.forEach(item->{
|
||||
PollutionSubstationDTO pollutionSubstationDTO = lineFeignClient.getSubstationInfo(item.getIndex()).getData();
|
||||
String id = pollutionSubstationDTO.getId ();
|
||||
if(Objects.equals (deptParam.getReportFlag (),BizParamConstant.STAT_BIZ_YEAR) ){
|
||||
QueryWrapper<RStatPollutionSubstationYPO> wrapper = new QueryWrapper<> ();
|
||||
wrapper.eq ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionSubstationYPO rStatPollutionSubstationYPO = pollutionSubstationYPOMapper.selectOne (wrapper);
|
||||
|
||||
Optional.ofNullable (rStatPollutionSubstationQPO).ifPresent (t->pollutionSubstationDTO.setData (t.getValue ()));
|
||||
}else if(Objects.equals (deptParam.getReportFlag (),BizParamConstant.STAT_BIZ_MONTH)){
|
||||
QueryWrapper<RStatPollutionSubstationM> wrapper = new QueryWrapper<> ();
|
||||
wrapper.eq ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionSubstationM rStatPollutionSubstationM = pollutionSubstationMMapper.selectOne (wrapper);
|
||||
Optional.ofNullable (rStatPollutionSubstationYPO).ifPresent (t->pollutionSubstationDTO.setData (t.getValue ()));
|
||||
}else if(Objects.equals (deptParam.getReportFlag (),BizParamConstant.STAT_BIZ_QUARTER)){
|
||||
QueryWrapper<RStatPollutionSubstationQPO> wrapper = new QueryWrapper<> ();
|
||||
wrapper.eq ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionSubstationQPO rStatPollutionSubstationQPO = pollutionSubstationQPOMapper.selectOne (wrapper);
|
||||
|
||||
Optional.ofNullable (rStatPollutionSubstationM).ifPresent (t->pollutionSubstationDTO.setData (t.getValue ()));
|
||||
Optional.ofNullable (rStatPollutionSubstationQPO).ifPresent (t->pollutionSubstationDTO.setData (t.getValue ()));
|
||||
}else if(Objects.equals (deptParam.getReportFlag (),BizParamConstant.STAT_BIZ_MONTH)){
|
||||
QueryWrapper<RStatPollutionSubstationM> wrapper = new QueryWrapper<> ();
|
||||
wrapper.eq ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionSubstationM rStatPollutionSubstationM = pollutionSubstationMMapper.selectOne (wrapper);
|
||||
|
||||
}else if(Objects.equals (deptParam.getReportFlag (),BizParamConstant.STAT_BIZ_DAY)){
|
||||
QueryWrapper<RStatPollutionSubstationDPO> wrapper = new QueryWrapper<> ();
|
||||
wrapper.eq ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionSubstationDPO rStatPollutionSubstationDPO = pollutionSubstationDPOMapper.selectOne (wrapper);
|
||||
Optional.ofNullable (rStatPollutionSubstationM).ifPresent (t->pollutionSubstationDTO.setData (t.getValue ()));
|
||||
|
||||
Optional.ofNullable (rStatPollutionSubstationDPO).ifPresent (t->pollutionSubstationDTO.setData (t.getValue ()));
|
||||
}
|
||||
}else if(Objects.equals (deptParam.getReportFlag (),BizParamConstant.STAT_BIZ_DAY)){
|
||||
QueryWrapper<RStatPollutionSubstationDPO> wrapper = new QueryWrapper<> ();
|
||||
wrapper.eq ("substation_id",id).
|
||||
eq ("pollution_type", pollutionType).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime);
|
||||
RStatPollutionSubstationDPO rStatPollutionSubstationDPO = pollutionSubstationDPOMapper.selectOne (wrapper);
|
||||
|
||||
list.add(pollutionSubstationDTO);
|
||||
});
|
||||
Optional.ofNullable (rStatPollutionSubstationDPO).ifPresent (t->pollutionSubstationDTO.setData (t.getValue ()));
|
||||
}
|
||||
|
||||
list.add(pollutionSubstationDTO);
|
||||
});
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
return list.stream().sorted(Comparator.comparing(PollutionSubstationDTO::getData).reversed().thenComparing(PollutionSubstationDTO::getName)).collect(Collectors.toList());
|
||||
}
|
||||
@@ -340,8 +469,6 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
||||
public List<PollutionLineDTO> getLineInfoById(HarmonicPublicParam harmonicPublicParam) {
|
||||
harmonicPublicParam.setServerName(generalInfo.getMicroServiceName());
|
||||
List<PollutionLineDTO> list = new ArrayList<>();
|
||||
List<String> line = new ArrayList<>();
|
||||
|
||||
|
||||
String pollutionType = harmonicPublicParam.getStatisticalType ( ).getId ();
|
||||
String code = harmonicPublicParam.getStatisticalType ( ).getCode ();
|
||||
@@ -360,29 +487,100 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
||||
if (StringUtils.isBlank(RequestUtil.getDeptIndex())){
|
||||
return list;
|
||||
}
|
||||
List<GeneralDeviceDTO> sub = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(harmonicPublicParam).getData();
|
||||
sub.forEach(item->{
|
||||
if (Objects.equals(harmonicPublicParam.getId(),item.getIndex())){
|
||||
if (!CollectionUtils.isEmpty(item.getLineIndexes())){
|
||||
line.addAll(item.getLineIndexes());
|
||||
if (harmonicPublicParam.getType() == 0) {
|
||||
PmsStatationStatInfoParam param=new PmsStatationStatInfoParam();
|
||||
param.setPowerIds(Arrays.asList(harmonicPublicParam.getId()));
|
||||
List<PmsStatationStatInfoDTO> data = statationStatClient.getStatationStatInfo(param).getData();
|
||||
if(CollectionUtil.isNotEmpty(data)){
|
||||
List<String> monitorId = data.stream().map(PmsStatationStatInfoDTO::getMonitorId).collect(Collectors.toList());
|
||||
List<RMpPollutionDPO> lineData = rMpPollutionDPOMapper.selectMaxList ( monitorId,pollutionType,searchBeginTime);
|
||||
Map<String, Double> lineMap = lineData.stream().collect(Collectors.toMap(RMpPollutionDPO::getLineId, RMpPollutionDPO::getValue));
|
||||
PollutionLineDTO dto;
|
||||
for (PmsStatationStatInfoDTO power : data) {
|
||||
dto=new PollutionLineDTO();
|
||||
dto.setId(power.getMonitorId());
|
||||
dto.setName(power.getMonitorName());
|
||||
dto.setPowerCompany(power.getOrgName());
|
||||
dto.setSubstation(power.getPowerName());
|
||||
dto.setSubstationId(power.getPowerId());
|
||||
dto.setBusBar(power.getGeneratrixName());
|
||||
if(lineMap.containsKey(power.getMonitorId())){
|
||||
dto.setData(lineMap.get(power.getMonitorId()));
|
||||
}
|
||||
list.add (dto) ;
|
||||
}
|
||||
}
|
||||
});
|
||||
if (!CollectionUtils.isEmpty(line)){
|
||||
paramDTO.setLineList(line);
|
||||
list = lineFeignClient.getLineInfo(paramDTO).getData();
|
||||
List<RMpPollutionDPO> lineData = rMpPollutionDPOMapper.selectMaxList ( line,pollutionType,searchBeginTime);
|
||||
if (!CollectionUtils.isEmpty(lineData)){
|
||||
list.stream().map(list1->lineData.stream().filter(list2-> Objects.equals(list1.getId(),list2.getLineId ())).findAny().map(m->{
|
||||
list1.setData (m.getValue ());
|
||||
return list1;
|
||||
})).collect(Collectors.toList());
|
||||
}else{
|
||||
List<String> line = new ArrayList<>();
|
||||
List<GeneralDeviceDTO> sub = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(harmonicPublicParam).getData();
|
||||
sub.forEach(item->{
|
||||
if (Objects.equals(harmonicPublicParam.getId(),item.getIndex())){
|
||||
if (!CollectionUtils.isEmpty(item.getLineIndexes())){
|
||||
line.addAll(item.getLineIndexes());
|
||||
}
|
||||
}
|
||||
});
|
||||
if (!CollectionUtils.isEmpty(line)){
|
||||
paramDTO.setLineList(line);
|
||||
list = lineFeignClient.getLineInfo(paramDTO).getData();
|
||||
List<RMpPollutionDPO> lineData = rMpPollutionDPOMapper.selectMaxList ( line,pollutionType,searchBeginTime);
|
||||
if (!CollectionUtils.isEmpty(lineData)){
|
||||
list.stream().map(list1->lineData.stream().filter(list2-> Objects.equals(list1.getId(),list2.getLineId ())).findAny().map(m->{
|
||||
list1.setData (m.getValue ());
|
||||
return list1;
|
||||
})).collect(Collectors.toList());
|
||||
}
|
||||
} else {
|
||||
return list;
|
||||
}
|
||||
} else {
|
||||
return list;
|
||||
}
|
||||
return list.stream().sorted(Comparator.comparing(PollutionLineDTO::getData).reversed().thenComparing(PollutionLineDTO::getName)).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PollutionLineDTO> getLineRank(HarmonicPublicParam param) {
|
||||
String pollutionType = param.getStatisticalType ( ).getId ();
|
||||
String searchBeginTime = "";
|
||||
if(Objects.equals (param.getReportFlag (),BizParamConstant.STAT_BIZ_YEAR) ){
|
||||
searchBeginTime = param.getSearchBeginTime ( ).substring (0, 4)+"%";
|
||||
|
||||
}else if(Objects.equals (param.getReportFlag (),BizParamConstant.STAT_BIZ_MONTH)){
|
||||
searchBeginTime = param.getSearchBeginTime ( ).substring (0, 7)+"%";
|
||||
|
||||
|
||||
}else if(Objects.equals (param.getReportFlag (),BizParamConstant.STAT_BIZ_DAY)) {
|
||||
searchBeginTime = param.getSearchBeginTime ( ).substring (0, 10)+"%";
|
||||
}
|
||||
|
||||
PmsDeviceInfoParam pmsDeviceInfoParam = new PmsDeviceInfoParam();
|
||||
pmsDeviceInfoParam.setDeptIndex(param.getDeptIndex());
|
||||
//获取统计类型
|
||||
pmsDeviceInfoParam.setStatisticalType(param.getStatisticalType());
|
||||
//获取主网台账信息
|
||||
List<PmsGeneralDeviceDTO> deviceList = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pmsDeviceInfoParam).getData();
|
||||
List<String> monitorIdList=new ArrayList<>();
|
||||
deviceList.forEach(dept -> {
|
||||
monitorIdList.addAll(dept.getMonitorIdList());
|
||||
});
|
||||
|
||||
if(CollectionUtil.isNotEmpty(monitorIdList)){
|
||||
List<RMpPollutionDPO> lineData = rMpPollutionDPOMapper.selectMaxList ( monitorIdList,pollutionType,searchBeginTime);
|
||||
lineData.sort((item1, item2) -> item2.getValue().compareTo(item1.getValue()));
|
||||
if (lineData.size() > Param.UP_LIMIT) {
|
||||
lineData = lineData.subList(Param.DOWN_LIMIT, Param.UP_LIMIT);
|
||||
}
|
||||
|
||||
List<Monitor> data = monitorClient.getMonitorList(monitorIdList).getData();
|
||||
}
|
||||
|
||||
|
||||
deviceList.forEach(temp->{
|
||||
|
||||
});
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user