问题单修复
This commit is contained in:
@@ -100,7 +100,7 @@ public class PollutionSubstationController extends BaseController {
|
||||
public HttpResult<List<PollutionLineDTO>> getLineRank(@RequestBody HarmonicPublicParam param) {
|
||||
String methodDescribe = getMethodDescribe("getLineRank");
|
||||
LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, param);
|
||||
List<PollutionLineDTO> list = pollutionSubstationService.getLineRank(param);
|
||||
List<PollutionLineDTO> list = pollutionSubstationService.getLineRankTop10(param);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.njcn.harmonic.mapper;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.harmonic.pojo.dto.PublicDTO;
|
||||
import com.njcn.harmonic.pojo.po.RMpPollutionDPO;
|
||||
import java.util.List;
|
||||
import org.apache.ibatis.annotations.Param;import org.apache.ibatis.annotations.Select;
|
||||
@@ -40,4 +42,6 @@ public interface RMpPollutionDPOMapper extends BaseMapper<RMpPollutionDPO> {
|
||||
|
||||
})
|
||||
List<RMpPollutionDPO> selectMaxList(@Param("items") List<String> line, @Param("pollutionType") String pollutionType, @Param("searchBeginTime") String searchBeginTime);
|
||||
|
||||
List<PublicDTO> getTop10Line(@Param("list") List<String> lineList, @Param("start") DateTime searchBeginTime, @Param("end") DateTime searchEndTime, @Param("pollutionType") String id);
|
||||
}
|
||||
@@ -28,6 +28,23 @@
|
||||
#{item.lineId,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
</update>
|
||||
<select id="getTop10Line" resultType="com.njcn.harmonic.pojo.dto.PublicDTO">
|
||||
SELECT
|
||||
r.line_id AS id,
|
||||
MAX(r.value) AS data
|
||||
FROM r_mp_pollution_d r
|
||||
WHERE r.line_id IN
|
||||
<foreach collection="list" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND r.pollution_type = #{pollutionType}
|
||||
AND r.data_date between #{start} and #{end}
|
||||
GROUP BY r.line_id
|
||||
ORDER BY data DESC
|
||||
LIMIT 0,10
|
||||
</select>
|
||||
|
||||
|
||||
<insert id="batchInsert" parameterType="map">
|
||||
<!--@mbg.generated-->
|
||||
insert into r_mp_pollution_d
|
||||
|
||||
@@ -65,4 +65,7 @@ public interface PollutionSubstationService extends IService<RStatPollutionSubst
|
||||
*/
|
||||
List<PollutionLineDTO> getLineRank(HarmonicPublicParam param);
|
||||
|
||||
|
||||
List<PollutionLineDTO> getLineRankTop10(HarmonicPublicParam param);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.njcn.harmonic.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@@ -570,7 +571,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
||||
searchBeginTime = param.getSearchBeginTime ( ).substring (0, 10)+"%";
|
||||
}
|
||||
|
||||
if(param.getType()==0){
|
||||
if(param.getType()==0) {
|
||||
param.setServerName(generalInfo.getMicroServiceName());
|
||||
List<String> lineList = new ArrayList<>();
|
||||
PollutionParamDTO paramDTO = new PollutionParamDTO();
|
||||
@@ -646,6 +647,88 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public List<PollutionLineDTO> getLineRankTop10 (HarmonicPublicParam param) {
|
||||
List<PollutionLineDTO> list= new ArrayList<>();
|
||||
String pollutionType = param.getStatisticalType ( ).getId ();
|
||||
if(param.getType()==0) {
|
||||
param.setServerName(generalInfo.getMicroServiceName());
|
||||
List<String> lineList = new ArrayList<>();
|
||||
PollutionParamDTO paramDTO = new PollutionParamDTO();
|
||||
if (StringUtils.isBlank(RequestUtil.getDeptIndex())) {
|
||||
return list;
|
||||
}
|
||||
List<GeneralDeviceDTO> deviceList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData();
|
||||
deviceList.forEach(item -> {
|
||||
if (!CollectionUtils.isEmpty(item.getLineIndexes())) {
|
||||
lineList.addAll(item.getLineIndexes());
|
||||
}
|
||||
});
|
||||
if (!CollectionUtils.isEmpty(lineList)) {
|
||||
paramDTO.setLineList(lineList);
|
||||
list = lineFeignClient.getLineInfo(paramDTO).getData();
|
||||
List<PublicDTO> result =rMpPollutionDPOMapper.getTop10Line(lineList,DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())),DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())), param.getStatisticalType().getId());
|
||||
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);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
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,param.getSearchBeginTime());
|
||||
|
||||
if(CollectionUtil.isEmpty(lineData)){
|
||||
return list;
|
||||
}
|
||||
|
||||
//获取主网监测点信息
|
||||
List<Monitor> data = monitorClient.getMonitorList(monitorIdList).getData();
|
||||
Map<String, Monitor> monitorMap = data.stream().collect(Collectors.toMap(Monitor::getId, Function.identity(), (key1, kye2) -> key1));
|
||||
lineData.sort((item1, item2) -> item2.getValue().compareTo(item1.getValue()));
|
||||
if (lineData.size() > Param.UP_LIMIT) {
|
||||
lineData = lineData.subList(Param.DOWN_LIMIT, Param.UP_LIMIT);
|
||||
}
|
||||
|
||||
PollutionLineDTO dto;
|
||||
for (RMpPollutionDPO lineDatum : lineData) {
|
||||
if(monitorMap.containsKey(lineDatum.getLineId())){
|
||||
Monitor monitor = monitorMap.get(lineDatum.getLineId());
|
||||
dto=new PollutionLineDTO();
|
||||
dto.setId(monitor.getId());
|
||||
dto.setName(monitor.getName());
|
||||
dto.setPowerCompany(monitor.getOrgName());
|
||||
dto.setSubstation(monitor.getPowerrId());
|
||||
dto.setSubstationId(monitor.getPowerrName());
|
||||
dto.setBusBar(monitor.getLineName());
|
||||
dto.setData(lineDatum.getValue());
|
||||
list.add(dto);
|
||||
}
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 功能描述:根据监测点id查询influxDB污染指数
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user