误区图算法修改,月 季 年

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.pojo.po.Overlimit;
import com.njcn.harmonic.pojo.dto.PublicDTO;
import com.njcn.harmonic.pojo.po.RMpPollutionDPO;
import com.njcn.harmonic.pojo.po.RStatDataVD;
import com.njcn.harmonic.pojo.po.*;
import com.njcn.harmonic.pojo.po.day.*;
import com.njcn.influxdb.utils.InfluxDbUtils;
import com.njcn.prepare.harmonic.mapper.mysql.line.*;
@@ -166,17 +165,21 @@ public class PollutionServiceImpl implements PollutionService {
}
log.info("污区数据统计间隔"+local+"----->"+localEnd);
lambdaQuery.ge(RMpPollutionDPO::getDataDate, local).le(RMpPollutionDPO::getDataDate,localEnd);
List<RMpPollutionDPO> pollutionDayList = rMpPollutionDMapper.selectList(lambdaQuery);
List<RMpPollutionDPO> pollutionDayList =new ArrayList<>();
if(Integer.valueOf(BizParamConstant.STAT_BIZ_DAY).equals(lineParam.getType())){
lambdaQuery.ge(RMpPollutionDPO::getDataDate, local).le(RMpPollutionDPO::getDataDate,localEnd);
pollutionDayList = rMpPollutionDMapper.selectList(lambdaQuery);
}
//MySql入表变电站、单位
insertPolluctionMySql(pollutionDayList, dictData, local, lineParam.getType());
insertPolluctionMySql(pollutionDayList, dictData, local, localEnd, lineParam.getType());
LogUtil.njcnDebug(log, "监测点污染指标数据完成耗时:{}", timer.intervalRestart());
}
/**
* 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>>> unitOut = deptLineFeignClient.getLineByDeptRelation(1);
@@ -188,8 +191,8 @@ public class PollutionServiceImpl implements PollutionService {
Map<String, List<String>> substationMap = substationOut.getData();
insertSubstation(dictData,substationMap,pollutionDayList,local,type);
insertUnit(dictData,deptGetChildrenDTOList,pollutionDayList,local,type);
insertSubstation(dictData,substationMap,pollutionDayList,local,localEnd,type);
insertUnit(dictData,deptGetChildrenDTOList,pollutionDayList,local,localEnd,type);
}
/*MySql入表 r_mp_pollution_d*/
@@ -206,69 +209,152 @@ public class PollutionServiceImpl implements PollutionService {
}
/*MySql入表 r_stat_pollution_substation*/
private void insertSubstation(List<DictData> dictDataList,Map<String, List<String>> substationMap,List<RMpPollutionDPO> pollutionDayList,LocalDateTime local, Integer type){
for (String key : substationMap.keySet()){
List<RMpPollutionDPO> processList = new ArrayList<>();
List<String> substationList = substationMap.get(key);
for(String lineid : substationList){
for (RMpPollutionDPO pollution : pollutionDayList){
if (lineid.equals(pollution.getLineId())){
processList.add(pollution);
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()){
List<RMpPollutionDPO> processList = new ArrayList<>();
List<String> substationList = substationMap.get(key);
for(String lineid : substationList){
for (RMpPollutionDPO pollution : pollutionDayList){
if (lineid.equals(pollution.getLineId())){
processList.add(pollution);
}
}
}
Map<String, Object> inMap = new HashMap<>();
inMap.put("substationId",key);
inMap.put("dataDate",local);
for (DictData dictData : dictDataList){
processData(dictData, processList, inMap);
if (!inMap.containsKey("pollutionType")){
continue;
}
if (Integer.valueOf(BizParamConstant.STAT_BIZ_DAY).equals(type)){
rStatPollutionSubstationDMapper.insertPollution(inMap);
}
}
}
}
Map<String, Object> inMap = new HashMap<>();
inMap.put("substationId",key);
inMap.put("dataDate",local);
for (DictData dictData : dictDataList){
processData(dictData, processList, inMap);
if (!inMap.containsKey("pollutionType")){
continue;
}
if (Integer.valueOf(BizParamConstant.STAT_BIZ_DAY).equals(type)){
rStatPollutionSubstationDMapper.insertPollution(inMap);
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_MONTH).equals(type)){
rStatPollutionSubstationMMapper.insertPollution(inMap);
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_QUARTER).equals(type)){
rStatPollutionSubstationQMapper.insertPollution(inMap);
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_YEAR).equals(type)){
rStatPollutionSubstationYMapper.insertPollution(inMap);
}
}
}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);
});
}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);
});
}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);
});
}
}
/*MySql入表 r_stat_pollution_org*/
private void insertUnit(List<DictData> dictDataList,List<DeptGetChildrenDTO> deptGetChildrenDTOList,List<RMpPollutionDPO> pollutionDayList,LocalDateTime local, Integer type){
for (DeptGetChildrenDTO deptGetChildrenDTO : deptGetChildrenDTOList){
List<RMpPollutionDPO> processList = new ArrayList<>();
for(String lineid : deptGetChildrenDTO.getLineIds()){
for (RMpPollutionDPO pollution : pollutionDayList){
if (lineid.equals(pollution.getLineId())){
processList.add(pollution);
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){
List<RMpPollutionDPO> processList = new ArrayList<>();
for(String lineid : deptGetChildrenDTO.getLineIds()){
for (RMpPollutionDPO pollution : pollutionDayList){
if (lineid.equals(pollution.getLineId())){
processList.add(pollution);
}
}
}
}
Map<String, Object> inMap = new HashMap<>();
inMap.put("orgId",deptGetChildrenDTO.getDeptId());
inMap.put("dataDate",local);
for (DictData dictData : dictDataList){
processData(dictData, processList, inMap);
if (!inMap.containsKey("pollutionType")){
continue;
}
if (Integer.valueOf(BizParamConstant.STAT_BIZ_DAY).equals(type)){
Map<String, Object> inMap = new HashMap<>();
inMap.put("orgId",deptGetChildrenDTO.getDeptId());
inMap.put("dataDate",local);
for (DictData dictData : dictDataList){
processData(dictData, processList, inMap);
if (!inMap.containsKey("pollutionType")){
continue;
}
rStatPollutionOrgDMapper.insertPollution(inMap);
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_MONTH).equals(type)){
rStatPollutionOrgMMapper.insertPollution(inMap);
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_QUARTER).equals(type)){
rStatPollutionOrgQMapper.insertPollution(inMap);
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_YEAR).equals(type)){
rStatPollutionOrgYMapper.insertPollution(inMap);
}
}
}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);
});
}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);
});
}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);
});
}
}
private void processDataLineId(DictData dictData, PollutionDTO pollution, Map<String, Object> map){