误区图算法修改,月 季 年
This commit is contained in:
@@ -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){
|
||||
|
||||
Reference in New Issue
Block a user