误区图算法修改,月 季 年

This commit is contained in:
wr
2023-05-05 16:17:46 +08:00
parent 69ecd92564
commit 6fd5031abb

View File

@@ -18,8 +18,7 @@ import com.njcn.device.pq.api.DeptLineFeignClient;
import com.njcn.device.pq.api.LineFeignClient; import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.po.Overlimit; import com.njcn.device.pq.pojo.po.Overlimit;
import com.njcn.harmonic.pojo.dto.PublicDTO; import com.njcn.harmonic.pojo.dto.PublicDTO;
import com.njcn.harmonic.pojo.po.RMpPollutionDPO; import com.njcn.harmonic.pojo.po.*;
import com.njcn.harmonic.pojo.po.RStatDataVD;
import com.njcn.harmonic.pojo.po.day.*; import com.njcn.harmonic.pojo.po.day.*;
import com.njcn.influxdb.utils.InfluxDbUtils; import com.njcn.influxdb.utils.InfluxDbUtils;
import com.njcn.prepare.harmonic.mapper.mysql.line.*; import com.njcn.prepare.harmonic.mapper.mysql.line.*;
@@ -166,17 +165,21 @@ public class PollutionServiceImpl implements PollutionService {
} }
log.info("污区数据统计间隔"+local+"----->"+localEnd); log.info("污区数据统计间隔"+local+"----->"+localEnd);
List<RMpPollutionDPO> pollutionDayList =new ArrayList<>();
if(Integer.valueOf(BizParamConstant.STAT_BIZ_DAY).equals(lineParam.getType())){
lambdaQuery.ge(RMpPollutionDPO::getDataDate, local).le(RMpPollutionDPO::getDataDate,localEnd); lambdaQuery.ge(RMpPollutionDPO::getDataDate, local).le(RMpPollutionDPO::getDataDate,localEnd);
List<RMpPollutionDPO> pollutionDayList = rMpPollutionDMapper.selectList(lambdaQuery); pollutionDayList = rMpPollutionDMapper.selectList(lambdaQuery);
}
//MySql入表变电站、单位 //MySql入表变电站、单位
insertPolluctionMySql(pollutionDayList, dictData, local, lineParam.getType()); insertPolluctionMySql(pollutionDayList, dictData, local, localEnd, lineParam.getType());
LogUtil.njcnDebug(log, "监测点污染指标数据完成耗时:{}", timer.intervalRestart()); LogUtil.njcnDebug(log, "监测点污染指标数据完成耗时:{}", timer.intervalRestart());
} }
/** /**
* MySql入表 * MySql入表
*/ */
private void insertPolluctionMySql(List<RMpPollutionDPO> pollutionDayList, List<DictData> dictData, LocalDateTime local, Integer type){ private void insertPolluctionMySql(List<RMpPollutionDPO> pollutionDayList, List<DictData> dictData, LocalDateTime local, LocalDateTime localEnd,Integer type){
HttpResult<Map<String, List<String>>> substationOut = lineFeignClient.getLineBySubstationRelation(1); HttpResult<Map<String, List<String>>> substationOut = lineFeignClient.getLineBySubstationRelation(1);
//HttpResult<Map<String, List<String>>> unitOut = deptLineFeignClient.getLineByDeptRelation(1); //HttpResult<Map<String, List<String>>> unitOut = deptLineFeignClient.getLineByDeptRelation(1);
@@ -188,8 +191,8 @@ public class PollutionServiceImpl implements PollutionService {
Map<String, List<String>> substationMap = substationOut.getData(); Map<String, List<String>> substationMap = substationOut.getData();
insertSubstation(dictData,substationMap,pollutionDayList,local,type); insertSubstation(dictData,substationMap,pollutionDayList,local,localEnd,type);
insertUnit(dictData,deptGetChildrenDTOList,pollutionDayList,local,type); insertUnit(dictData,deptGetChildrenDTOList,pollutionDayList,local,localEnd,type);
} }
/*MySql入表 r_mp_pollution_d*/ /*MySql入表 r_mp_pollution_d*/
@@ -206,7 +209,8 @@ public class PollutionServiceImpl implements PollutionService {
} }
/*MySql入表 r_stat_pollution_substation*/ /*MySql入表 r_stat_pollution_substation*/
private void insertSubstation(List<DictData> dictDataList,Map<String, List<String>> substationMap,List<RMpPollutionDPO> pollutionDayList,LocalDateTime local, Integer type){ private void insertSubstation(List<DictData> dictDataList,Map<String, List<String>> substationMap,List<RMpPollutionDPO> pollutionDayList,LocalDateTime local,LocalDateTime localEnd, Integer type){
if(Integer.valueOf(BizParamConstant.STAT_BIZ_DAY).equals(type)){
for (String key : substationMap.keySet()){ for (String key : substationMap.keySet()){
List<RMpPollutionDPO> processList = new ArrayList<>(); List<RMpPollutionDPO> processList = new ArrayList<>();
List<String> substationList = substationMap.get(key); List<String> substationList = substationMap.get(key);
@@ -227,22 +231,64 @@ public class PollutionServiceImpl implements PollutionService {
} }
if (Integer.valueOf(BizParamConstant.STAT_BIZ_DAY).equals(type)){ if (Integer.valueOf(BizParamConstant.STAT_BIZ_DAY).equals(type)){
rStatPollutionSubstationDMapper.insertPollution(inMap); rStatPollutionSubstationDMapper.insertPollution(inMap);
}
}
}
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_MONTH).equals(type)){ }else if (Integer.valueOf(BizParamConstant.STAT_BIZ_MONTH).equals(type)){
List<RStatPollutionSubstationDPO> substationD = rStatPollutionSubstationDMapper.selectList(new LambdaQueryWrapper<RStatPollutionSubstationDPO>()
.ge(RStatPollutionSubstationDPO::getDataDate, local)
.le(RStatPollutionSubstationDPO::getDataDate, localEnd)
);
Map<String, List<RStatPollutionSubstationDPO>> substationDMap = substationD.stream().collect(Collectors.groupingBy(temp -> temp.getSubstationId() +"_"+ temp.getPollutionType()));
substationDMap.forEach((key,value)->{
String[] split = key.split("_");
Map<String, Object> inMap = new HashMap<>();
inMap.put("substationId",split[0]);
inMap.put("dataDate",local);
inMap.put("pollutionType",split[1]);
inMap.put("value",value.stream().max(Comparator.comparing(RStatPollutionSubstationDPO::getValue)).get().getValue());
rStatPollutionSubstationMMapper.insertPollution(inMap); rStatPollutionSubstationMMapper.insertPollution(inMap);
});
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_QUARTER).equals(type)){ }else if (Integer.valueOf(BizParamConstant.STAT_BIZ_QUARTER).equals(type)){
List<RStatPollutionSubstationM> substationM = rStatPollutionSubstationMMapper.selectList(new LambdaQueryWrapper<RStatPollutionSubstationM>()
.ge(RStatPollutionSubstationM::getDataDate, local)
.le(RStatPollutionSubstationM::getDataDate, localEnd)
);
Map<String, List<RStatPollutionSubstationM>> substationDMap = substationM.stream().collect(Collectors.groupingBy(temp -> temp.getSubstationId() +"_"+ temp.getPollutionType()));
substationDMap.forEach((key,value)->{
String[] split = key.split("_");
Map<String, Object> inMap = new HashMap<>();
inMap.put("substationId",split[0]);
inMap.put("dataDate",local);
inMap.put("pollutionType",split[1]);
inMap.put("value",value.stream().max(Comparator.comparing(RStatPollutionSubstationM::getValue)).get().getValue());
rStatPollutionSubstationQMapper.insertPollution(inMap); rStatPollutionSubstationQMapper.insertPollution(inMap);
});
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_YEAR).equals(type)){ }else if (Integer.valueOf(BizParamConstant.STAT_BIZ_YEAR).equals(type)){
List<RStatPollutionSubstationQPO> substationM = rStatPollutionSubstationQMapper.selectList(new LambdaQueryWrapper<RStatPollutionSubstationQPO>()
.ge(RStatPollutionSubstationQPO::getDataDate, local)
.le(RStatPollutionSubstationQPO::getDataDate, localEnd)
);
Map<String, List<RStatPollutionSubstationQPO>> substationDMap = substationM.stream().collect(Collectors.groupingBy(temp -> temp.getSubstationId() +"_"+ temp.getPollutionType()));
substationDMap.forEach((key,value)->{
String[] split = key.split("_");
Map<String, Object> inMap = new HashMap<>();
inMap.put("substationId",split[0]);
inMap.put("dataDate",local);
inMap.put("pollutionType",split[1]);
inMap.put("value",value.stream().max(Comparator.comparing(RStatPollutionSubstationQPO::getValue)).get().getValue());
rStatPollutionSubstationYMapper.insertPollution(inMap); rStatPollutionSubstationYMapper.insertPollution(inMap);
} });
}
} }
} }
/*MySql入表 r_stat_pollution_org*/ /*MySql入表 r_stat_pollution_org*/
private void insertUnit(List<DictData> dictDataList,List<DeptGetChildrenDTO> deptGetChildrenDTOList,List<RMpPollutionDPO> pollutionDayList,LocalDateTime local, Integer type){ private void insertUnit(List<DictData> dictDataList,List<DeptGetChildrenDTO> deptGetChildrenDTOList,List<RMpPollutionDPO> pollutionDayList,LocalDateTime local, LocalDateTime localEnd, Integer type){
if (Integer.valueOf(BizParamConstant.STAT_BIZ_DAY).equals(type)){
for (DeptGetChildrenDTO deptGetChildrenDTO : deptGetChildrenDTOList){ for (DeptGetChildrenDTO deptGetChildrenDTO : deptGetChildrenDTOList){
List<RMpPollutionDPO> processList = new ArrayList<>(); List<RMpPollutionDPO> processList = new ArrayList<>();
for(String lineid : deptGetChildrenDTO.getLineIds()){ for(String lineid : deptGetChildrenDTO.getLineIds()){
for (RMpPollutionDPO pollution : pollutionDayList){ for (RMpPollutionDPO pollution : pollutionDayList){
if (lineid.equals(pollution.getLineId())){ if (lineid.equals(pollution.getLineId())){
@@ -258,17 +304,57 @@ public class PollutionServiceImpl implements PollutionService {
if (!inMap.containsKey("pollutionType")){ if (!inMap.containsKey("pollutionType")){
continue; continue;
} }
if (Integer.valueOf(BizParamConstant.STAT_BIZ_DAY).equals(type)){
rStatPollutionOrgDMapper.insertPollution(inMap); rStatPollutionOrgDMapper.insertPollution(inMap);
}
}
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_MONTH).equals(type)){ }else if (Integer.valueOf(BizParamConstant.STAT_BIZ_MONTH).equals(type)){
List<RStatPollutionOrgDPO> substationD = rStatPollutionOrgDMapper.selectList(new LambdaQueryWrapper<RStatPollutionOrgDPO>()
.ge(RStatPollutionOrgDPO::getDataDate, local)
.le(RStatPollutionOrgDPO::getDataDate, localEnd)
);
Map<String, List<RStatPollutionOrgDPO>> substationDMap = substationD.stream().collect(Collectors.groupingBy(temp -> temp.getOrgId() +"_"+ temp.getPollutionType()));
substationDMap.forEach((key,value)->{
String[] split = key.split("_");
Map<String, Object> inMap = new HashMap<>();
inMap.put("orgId",split[0]);
inMap.put("dataDate",local);
inMap.put("pollutionType",split[1]);
inMap.put("value",value.stream().max(Comparator.comparing(RStatPollutionOrgDPO::getValue)).get().getValue());
rStatPollutionOrgMMapper.insertPollution(inMap); rStatPollutionOrgMMapper.insertPollution(inMap);
});
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_QUARTER).equals(type)){ }else if (Integer.valueOf(BizParamConstant.STAT_BIZ_QUARTER).equals(type)){
List<RStatPollutionOrgMPO> substationD = rStatPollutionOrgMMapper.selectList(new LambdaQueryWrapper<RStatPollutionOrgMPO>()
.ge(RStatPollutionOrgMPO::getDataDate, local)
.le(RStatPollutionOrgMPO::getDataDate, localEnd)
);
Map<String, List<RStatPollutionOrgMPO>> substationDMap = substationD.stream().collect(Collectors.groupingBy(temp -> temp.getOrgId() +"_"+ temp.getPollutionType()));
substationDMap.forEach((key,value)->{
String[] split = key.split("_");
Map<String, Object> inMap = new HashMap<>();
inMap.put("orgId",split[0]);
inMap.put("dataDate",local);
inMap.put("pollutionType",split[1]);
inMap.put("value",value.stream().max(Comparator.comparing(RStatPollutionOrgMPO::getValue)).get().getValue());
rStatPollutionOrgQMapper.insertPollution(inMap); rStatPollutionOrgQMapper.insertPollution(inMap);
});
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_YEAR).equals(type)){ }else if (Integer.valueOf(BizParamConstant.STAT_BIZ_YEAR).equals(type)){
List<RStatPollutionOrgQPO> substationD = rStatPollutionOrgQMapper.selectList(new LambdaQueryWrapper<RStatPollutionOrgQPO>()
.ge(RStatPollutionOrgQPO::getDataDate, local)
.le(RStatPollutionOrgQPO::getDataDate, localEnd)
);
Map<String, List<RStatPollutionOrgQPO>> substationDMap = substationD.stream().collect(Collectors.groupingBy(temp -> temp.getOrgId() +"_"+ temp.getPollutionType()));
substationDMap.forEach((key,value)->{
String[] split = key.split("_");
Map<String, Object> inMap = new HashMap<>();
inMap.put("orgId",split[0]);
inMap.put("dataDate",local);
inMap.put("pollutionType",split[1]);
inMap.put("value",value.stream().max(Comparator.comparing(RStatPollutionOrgQPO::getValue)).get().getValue());
rStatPollutionOrgYMapper.insertPollution(inMap); rStatPollutionOrgYMapper.insertPollution(inMap);
});
} }
}
}
} }
private void processDataLineId(DictData dictData, PollutionDTO pollution, Map<String, Object> map){ private void processDataLineId(DictData dictData, PollutionDTO pollution, Map<String, Object> map){