Merge remote-tracking branch 'origin/master'
# Conflicts: # pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/user/impl/UserReportNormalServiceImpl.java
This commit is contained in:
@@ -8,22 +8,23 @@ import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.common.utils.LogUtil;
|
||||
import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
|
||||
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
|
||||
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
||||
import com.njcn.device.pq.pojo.param.RunManageParam;
|
||||
import com.njcn.harmonic.pojo.param.HarmonicPublicParam;
|
||||
import com.njcn.harmonic.pojo.param.PollutionSubstationQuryParam;
|
||||
import com.njcn.harmonic.pojo.vo.PollutionSubstationVO;
|
||||
import com.njcn.harmonic.pojo.vo.PollutionVO;
|
||||
import com.njcn.harmonic.pojo.vo.SubstationVo;
|
||||
import com.njcn.harmonic.service.PollutionSubstationService;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -100,4 +101,21 @@ public class PollutionSubstationController extends BaseController {
|
||||
List<PollutionLineDTO> list = pollutionSubstationService.getLineRankTop10(param);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/substationInfo")
|
||||
@ApiOperation("变电站台账信息(包含稳态数据统计)")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "deptIndex", value = "部门id"),
|
||||
@ApiImplicitParam(name = "searchValue", value = "搜索值"),
|
||||
@ApiImplicitParam(name = "startTime", value = "开始时间"),
|
||||
@ApiImplicitParam(name = "endTime", value = "结束时间")
|
||||
})
|
||||
public HttpResult<List<SubstationVo>> getSubstationInfo(@RequestParam(value = "deptIndex") String deptIndex, @RequestParam(value = "searchValue") String searchValue, @RequestParam(value = "startTime") String startTime, @RequestParam(value = "endTime") String endTime) {
|
||||
String methodDescribe = getMethodDescribe("getSubstationInfo");
|
||||
LogUtil.njcnDebug(log, "{},实体参数:{},{}", methodDescribe, deptIndex, searchValue);
|
||||
List<SubstationVo> list = pollutionSubstationService.getSubstationInfo(deptIndex,searchValue,startTime,endTime);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -62,4 +62,15 @@ public interface RStatLimitRateDMapper extends BaseMapper<RStatLimitRateDPO> {
|
||||
List<RStatLimitRateDPO> getAssessTargetRate( @Param("ids") List<String> list,
|
||||
@Param("statTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
/**
|
||||
* 获取监测点的超标次数
|
||||
* @param list
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @return
|
||||
*/
|
||||
List<RStatLimitRateDPO> getAllOverTimes( @Param("ids") List<String> list,
|
||||
@Param("statTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
}
|
||||
|
||||
@@ -329,4 +329,32 @@
|
||||
group by
|
||||
my_index
|
||||
</select>
|
||||
|
||||
<select id="getAllOverTimes" resultType="com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO">
|
||||
select
|
||||
my_index as lineId,
|
||||
SUM(freq_dev_overtime
|
||||
+ flicker_overtime
|
||||
+ voltage_dev_overtime
|
||||
+ ubalance_overtime
|
||||
+ uaberrance_overtime
|
||||
+ i_neg_overtime
|
||||
+ uharm_2_overtime + uharm_3_overtime + uharm_4_overtime + uharm_5_overtime + uharm_6_overtime + uharm_7_overtime + uharm_8_overtime + uharm_9_overtime + uharm_10_overtime + uharm_11_overtime + uharm_12_overtime + uharm_13_overtime + uharm_14_overtime + uharm_15_overtime + uharm_16_overtime + uharm_17_overtime + uharm_18_overtime + uharm_19_overtime + uharm_20_overtime + uharm_21_overtime + uharm_22_overtime + uharm_23_overtime + uharm_24_overtime + uharm_25_overtime
|
||||
+ iharm_2_overtime + iharm_3_overtime + iharm_4_overtime + iharm_5_overtime + iharm_6_overtime + iharm_7_overtime + iharm_8_overtime + iharm_9_overtime + iharm_10_overtime + iharm_11_overtime + iharm_12_overtime + iharm_13_overtime + iharm_14_overtime + iharm_15_overtime + iharm_16_overtime + iharm_17_overtime + iharm_18_overtime + iharm_19_overtime + iharm_20_overtime + iharm_21_overtime + iharm_22_overtime + iharm_23_overtime + iharm_24_overtime + iharm_25_overtime
|
||||
+ inuharm_1_overtime + inuharm_2_overtime + inuharm_3_overtime + inuharm_4_overtime + inuharm_5_overtime + inuharm_6_overtime + inuharm_7_overtime + inuharm_8_overtime + inuharm_9_overtime + inuharm_10_overtime + inuharm_11_overtime + inuharm_12_overtime + inuharm_13_overtime + inuharm_14_overtime + inuharm_15_overtime + inuharm_16_overtime
|
||||
) as allTime
|
||||
from
|
||||
`r_stat_limit_rate_d`
|
||||
<where>
|
||||
and time_id between #{startTime} and #{endTime}
|
||||
<if test=" ids != null and ids.size > 0">
|
||||
AND my_index IN
|
||||
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
group by
|
||||
my_index
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.njcn.device.pq.pojo.dto.PollutionGridDiagramDTO;
|
||||
import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
|
||||
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
|
||||
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
||||
import com.njcn.device.pq.pojo.param.RunManageParam;
|
||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||
import com.njcn.harmonic.pojo.param.HarmonicPublicParam;
|
||||
import com.njcn.harmonic.pojo.param.PollutionSubstationQuryParam;
|
||||
@@ -13,6 +14,8 @@ import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
||||
import com.njcn.harmonic.pojo.po.RStatPollutionSubstationM;
|
||||
import com.njcn.harmonic.pojo.vo.PollutionSubstationVO;
|
||||
import com.njcn.harmonic.pojo.vo.PollutionVO;
|
||||
import com.njcn.harmonic.pojo.vo.SubstationVo;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import java.util.List;
|
||||
/**
|
||||
@@ -85,4 +88,5 @@ public interface PollutionSubstationService extends IService<RStatPollutionSubst
|
||||
|
||||
List<List<String>> getPollutionAlarmList(GridDiagramParam param);
|
||||
|
||||
List<SubstationVo> getSubstationInfo(String deptIndex, String searchValue, String startTime, String endTime);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.njcn.harmonic.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
@@ -15,7 +14,9 @@ import com.njcn.common.pojo.constant.BizParamConstant;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||
import com.njcn.device.biz.pojo.dto.DeptGetSubStationDTO;
|
||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||
import com.njcn.device.biz.pojo.dto.SubGetBase;
|
||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||
import com.njcn.device.pms.api.MonitorClient;
|
||||
@@ -31,6 +32,7 @@ import com.njcn.device.pq.api.LineFeignClient;
|
||||
import com.njcn.device.pq.api.SubstationFeignClient;
|
||||
import com.njcn.device.pq.pojo.dto.*;
|
||||
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
||||
import com.njcn.device.pq.pojo.po.LineDetail;
|
||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||
import com.njcn.harmonic.constant.Param;
|
||||
import com.njcn.harmonic.mapper.*;
|
||||
@@ -39,14 +41,15 @@ import com.njcn.harmonic.pojo.param.HarmonicPublicParam;
|
||||
import com.njcn.harmonic.pojo.param.PollutionSubstationQuryParam;
|
||||
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
||||
import com.njcn.harmonic.pojo.po.*;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.pojo.vo.PollutionSubstationVO;
|
||||
import com.njcn.harmonic.pojo.vo.PollutionVO;
|
||||
import com.njcn.harmonic.pojo.vo.SubstationVo;
|
||||
import com.njcn.harmonic.service.PollutionSubstationService;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
import com.njcn.system.enums.DicDataEnum;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
import com.njcn.user.pojo.po.Dept;
|
||||
import com.njcn.web.factory.PageFactory;
|
||||
import com.njcn.web.utils.RequestUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -58,7 +61,9 @@ import org.springframework.util.CollectionUtils;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -105,7 +110,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
||||
|
||||
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
||||
private final DicDataFeignClient dicDataFeignClient;
|
||||
|
||||
private final RStatLimitRateDMapper rStatLimitRateDMapper;
|
||||
|
||||
/**
|
||||
* @param pollutionSubstationQuryParam
|
||||
@@ -804,6 +809,64 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
||||
return info;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SubstationVo> getSubstationInfo(String deptIndex, String searchValue, String startTime, String endTime) {
|
||||
List<SubstationVo> result = new ArrayList<>();
|
||||
|
||||
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
|
||||
deptGetLineParam.setDeptId(deptIndex);
|
||||
deptGetLineParam.setLineRunFlag(0);
|
||||
List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
|
||||
//获取监测点集合
|
||||
Map<String,List<String>> lineMap = this.getLineMap(list, searchValue);
|
||||
List<String> lineList = lineMap.values().stream()
|
||||
.flatMap(List::stream)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(lineList)){
|
||||
//获取监测点的超标数据
|
||||
List<RStatLimitRateDPO> limitRateList = rStatLimitRateDMapper.getAllOverTimes(lineList,startTime,endTime);
|
||||
Map<String, RStatLimitRateDPO> monitorMap = limitRateList.stream().collect(Collectors.toMap(RStatLimitRateDPO::getLineId, Function.identity()));
|
||||
//todo 获取监测点污染数据
|
||||
|
||||
//获取监测点详细信息
|
||||
List<LineDetail> lineDetailList = lineFeignClient.getLineDetail(lineList).getData();
|
||||
Map<String,List<LineDetail>> lineDetailMap = lineDetailList.stream().collect(Collectors.groupingBy(LineDetail::getPowerSubstationName));
|
||||
lineDetailMap.forEach((k,v)->{
|
||||
AtomicInteger alarmTime = new AtomicInteger();
|
||||
SubstationVo vo = new SubstationVo();
|
||||
vo.setDeptName("");
|
||||
vo.setSubstationName(k);
|
||||
vo.setDwLineList(v.stream().filter(t->Objects.equals(t.getPowerFlag(),0)).map(LineDetail::getId).collect(Collectors.toList()));
|
||||
vo.setYhLineList(v.stream().filter(t->Objects.equals(t.getPowerFlag(),1)).map(LineDetail::getId).collect(Collectors.toList()));
|
||||
v.forEach(item->{
|
||||
alarmTime.set(alarmTime.get() + monitorMap.get(item.getId()).getAllTime());
|
||||
});
|
||||
vo.setAlarmFreq(alarmTime.get() * 1.0 / v.size());
|
||||
result.add(vo);
|
||||
});
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public Map<String,List<String>> getLineMap(List<DeptGetChildrenMoreDTO> list, String searchValue) {
|
||||
Map<String,List<String>> map = new HashMap<>();
|
||||
list.forEach(it->{
|
||||
Predicate<LineDevGetDTO> voltageFilter = item -> true;
|
||||
if (!Objects.isNull(searchValue) && !Objects.equals(searchValue,"")) {
|
||||
voltageFilter = item -> item.getPointName().contains(searchValue);
|
||||
}
|
||||
Predicate<LineDevGetDTO> combinedFilter = voltageFilter;
|
||||
map.put(it.getUnitName(),it.getLineBaseList().stream()
|
||||
.filter(combinedFilter)
|
||||
.map(LineDevGetDTO::getPointId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList()));
|
||||
});
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
private List<String> addList(List<RStatPollutionSubstationM> substationMlist) {
|
||||
List<String> info=new ArrayList<>();
|
||||
Integer num1 = 0;
|
||||
|
||||
Reference in New Issue
Block a user