1.限制算法,污区图监测点修改

This commit is contained in:
wr
2023-09-21 15:57:40 +08:00
parent 79232a34e2
commit 7de4f8f551
16 changed files with 217 additions and 98 deletions

View File

@@ -5,15 +5,17 @@ import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.NjcnDateUtils;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.prepare.harmonic.pojo.param.LineParam;
import com.njcn.prepare.harmonic.service.mysql.line.LimitTargetService;
import com.njcn.prepare.harmonic.utils.PublicUtil;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -37,6 +39,7 @@ import java.util.List;
public class LimitTargetController extends BaseController {
private final LimitTargetService limitTargetService;
private final CommTerminalGeneralClient commTerminalGeneralClient;
@Deprecated
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@@ -52,23 +55,27 @@ public class LimitTargetController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/limitTargetData")
@ApiOperation("生成limit_target表(MySQL入库)")
@ApiImplicitParam(name = "lineParam", value = "参数", required = true)
public HttpResult<String> limitTargetData(@RequestBody @Validated LineParam lineParam){
@ApiImplicitParam(name = "jobParam", value = "参数", required = true)
public HttpResult<String> limitTargetData(@RequestBody LineParam jobParam){
log.info(LocalDateTime.now()+"limitTargetData开始执行");
String methodDescribe = getMethodDescribe("limitTargetData");
String time;
if (lineParam.getType() == 3){
int year = Integer.parseInt(lineParam.getDataDate().split("-")[0]);
int month = Integer.parseInt(lineParam.getDataDate().split("-")[1]);
List<String> dayList = PublicUtil.getDayByMonth(year,month);
for (String item : dayList) {
String startTime,endTime;
List<String> indexLists;
if(CollectionUtils.isEmpty (jobParam.getLineIds ())){
indexLists = commTerminalGeneralClient.getRunMonitorIds ().getData ( );
}else{
indexLists = jobParam.getLineIds ();
}
if (jobParam.getRepairFlag()){
List<String> timeRange = NjcnDateUtils.findEveryDay(jobParam.getBeginTime(),jobParam.getEndTime());
for (String item : timeRange) {
log.info(item+"-->开始执行");
time = item + " 00:00:00";
limitTargetService.limitTargetData(lineParam,time);
startTime = item+" "+"00:00:00";
endTime = item+" "+"23:59:59";
limitTargetService.limitTargetData(indexLists,startTime,endTime);
}
} else {
time = lineParam.getDataDate() + " 00:00:00";
limitTargetService.limitTargetData(lineParam,time);
limitTargetService.limitTargetData(indexLists,jobParam.getBeginTime(), jobParam.getEndTime());
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}

View File

@@ -5,11 +5,10 @@ import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.NjcnDateUtils;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.prepare.harmonic.pojo.param.LineParam;
import com.njcn.prepare.harmonic.service.mysql.Impl.line.LimitRateService;
import com.njcn.prepare.harmonic.utils.PublicUtil;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -23,7 +22,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
@@ -44,8 +42,6 @@ public class LimitrateController extends BaseController {
private final LimitRateService limitRateService;
private final LineFeignClient lineFeignClient;
private final CommTerminalGeneralClient commTerminalGeneralClient;
/* @Deprecated
@@ -74,34 +70,29 @@ public class LimitrateController extends BaseController {
}*/
@ApiOperation("生成limitRate表(MySQL入库)")
@ApiImplicitParam(value = "limitRateHanlderParam",name = "limitRateHanlderParam",required = true)
@ApiImplicitParam(value = "jobParam",name = "jobParam",required = true)
@PostMapping("LimitRate")
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
public HttpResult<Boolean> limitRate(@RequestBody LineParam limitRateHanlderParam ){
public HttpResult<Boolean> limitRate(@RequestBody LineParam jobParam){
log.info(LocalDateTime.now()+"limitRate开始执行");
String startTime,endTime;
String methodDescribe = getMethodDescribe("limitRate");
List<String> indexLists = new ArrayList<> ();
if(CollectionUtils.isEmpty (limitRateHanlderParam.getLineIds ())){
List<String> indexLists;
if(CollectionUtils.isEmpty (jobParam.getLineIds ())){
indexLists = commTerminalGeneralClient.getRunMonitorIds ().getData ( );
}else{
indexLists = limitRateHanlderParam.getLineIds ();
indexLists = jobParam.getLineIds ();
}
if (limitRateHanlderParam.getType() == 3){
int year = Integer.parseInt(limitRateHanlderParam.getDataDate().split("-")[0]);
int month = Integer.parseInt(limitRateHanlderParam.getDataDate().split("-")[1]);
List<String> dayList = PublicUtil.getDayByMonth(year,month);
for (String item : dayList) {
if (jobParam.getRepairFlag()){
List<String> timeRange = NjcnDateUtils.findEveryDay(jobParam.getBeginTime(),jobParam.getEndTime());
for (String item : timeRange) {
log.info(item+"-->开始执行");
startTime = item+" "+"00:00:00";
endTime = item+" "+"23:59:59";
limitRateService.limitRate(indexLists,startTime,endTime);
}
} else {
startTime = limitRateHanlderParam.getDataDate ()+" "+"00:00:00";
endTime = limitRateHanlderParam.getDataDate ()+" "+"23:59:59";
limitRateService.limitRate(indexLists,startTime,endTime);
limitRateService.limitRate(indexLists,jobParam.getBeginTime(),jobParam.getEndTime());
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
}

View File

@@ -1,10 +1,12 @@
package com.njcn.prepare.harmonic.controller.line;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.NjcnDateUtils;
import com.njcn.prepare.harmonic.pojo.param.LineParam;
import com.njcn.prepare.harmonic.service.mysql.line.PollutionService;
import com.njcn.web.controller.BaseController;
@@ -19,6 +21,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 监测点污染指标
@@ -40,10 +44,21 @@ public class PollutionController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/processPollutionData")
@ApiOperation("处理监测点污染指标")
@ApiImplicitParam(name = "lineParam", value = "参数", required = true)
public HttpResult<String> processPollutionData(@RequestBody @Validated LineParam lineParam){
@ApiImplicitParam(name = "jobParam", value = "参数", required = true)
public HttpResult<String> processPollutionData(@RequestBody @Validated LineParam jobParam){
String methodDescribe = getMethodDescribe("processPollutionData");
pollutionService.processPollutionData(lineParam);
if (jobParam.getRepairFlag()&&Integer.valueOf(BizParamConstant.STAT_BIZ_DAY).equals(jobParam.getType())){
List<String> timeRange = NjcnDateUtils.findEveryDay(jobParam.getBeginTime(),jobParam.getEndTime());
for (String item : timeRange) {
log.info(item+"-->开始执行");
jobParam.setBeginTime(item+" "+"00:00:00");
jobParam.setEndTime(item+" "+"23:59:59");
System.out.println(jobParam);
pollutionService.processPollutionData(jobParam);
}
} else {
pollutionService.processPollutionData(jobParam);
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}

View File

@@ -26,9 +26,12 @@ public class RStatLimitRateDServiceImpl extends MppServiceImpl<RStatLimitRateDMa
}
@Override
public List<RStatLimitRateDPO> findList(List<String> list, String time) {
public List<RStatLimitRateDPO> findList(List<String> list,String startTime,String endTime) {
LambdaQueryWrapper<RStatLimitRateDPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(CollUtil.isNotEmpty(list),RStatLimitRateDPO::getLineId,list).eq(RStatLimitRateDPO::getTime,time).eq(RStatLimitRateDPO::getPhasicType,"T");
lambdaQueryWrapper.in(CollUtil.isNotEmpty(list),RStatLimitRateDPO::getLineId,list)
.ge(RStatLimitRateDPO::getTime,startTime)
.le(RStatLimitRateDPO::getTime,endTime)
.eq(RStatLimitRateDPO::getPhasicType,"T");
return this.list(lambdaQueryWrapper);
}
}

View File

@@ -2,6 +2,7 @@ package com.njcn.prepare.harmonic.service.mysql.Impl.line;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.utils.NjcnBeanUtil;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.harmonic.pojo.po.LimitRate;
@@ -50,7 +51,7 @@ public class LimitRateService extends MppServiceImpl<LimitRatePOMapper, LimitRa
private final InfluxDbUtils influxDbUtils;
private final LineFeignClient lineFeignClient;
private final CommTerminalGeneralClient commTerminalGeneralClient;
private final IRStatLimitRateDService statLimitRateDService;
@@ -124,7 +125,7 @@ public class LimitRateService extends MppServiceImpl<LimitRatePOMapper, LimitRa
}
for (int i = 0; i <lineList.size () ; i++) {
String lineIndex =lineList.get (i);
Overlimit overlimit = lineFeignClient.getOverLimitData(lineIndex).getData ();
Overlimit overlimit = commTerminalGeneralClient.getOverLimitData(lineIndex).getData ();
if(!Optional.ofNullable (overlimit).isPresent ()){
continue;
}

View File

@@ -64,15 +64,16 @@ public class LimitTargetServiceImpl extends MppServiceImpl<RStatLimitTargetDMapp
@Override
@Async("asyncExecutor")
public void limitTargetData(LineParam lineParam,String time) {
public void limitTargetData(List<String> indexLists,String startTime,String endTime) {
log.info(LocalDateTime.now()+"r_stat_limit_target_d开始执行=======》");
List<RStatLimitTargetDPO> list = new ArrayList<>();
Date dateOut = DateUtil.parse(time);
Date dateOut = DateUtil.parse(startTime);
List<RStatLimitRateDPO> limitRateData = new ArrayList<>();
if (CollUtil.isEmpty(lineParam.getLineIds())){
limitRateData = getLimitRateDataFromMysql(null,time);
if (CollUtil.isEmpty(indexLists)){
limitRateData = getLimitRateDataFromMysql(null,startTime,endTime);
} else {
limitRateData = getLimitRateDataFromMysql(lineParam.getLineIds(),time);
limitRateData = getLimitRateDataFromMysql(indexLists,startTime,endTime);
}
if (!CollectionUtils.isEmpty(limitRateData)){
for (RStatLimitRateDPO limitRate : limitRateData){
@@ -101,8 +102,8 @@ public class LimitTargetServiceImpl extends MppServiceImpl<RStatLimitTargetDMapp
return resultMapper.toPOJO(sqlResult, LimitRate.class);
}
private List<RStatLimitRateDPO> getLimitRateDataFromMysql(List<String> lineList, String date){
return statLimitRateDService.findList(lineList,date);
private List<RStatLimitRateDPO> getLimitRateDataFromMysql(List<String> lineList,String startTime,String endTime){
return statLimitRateDService.findList(lineList,startTime,endTime);
}

View File

@@ -55,9 +55,6 @@ import java.util.stream.Stream;
@AllArgsConstructor
public class PollutionServiceImpl implements PollutionService {
private final LineFeignClient lineFeignClient;
private final DicDataFeignClient dicDataFeignClient;
private final RStatPollutionOrgDMapper rStatPollutionOrgDMapper;
@@ -106,7 +103,7 @@ public class PollutionServiceImpl implements PollutionService {
overLimitList = getAllLinesLimitData();
}else {
for (String lineId : lineParam.getLineIds()){
Overlimit overlimit = lineFeignClient.getOverLimitData(lineId).getData();
Overlimit overlimit = commTerminalGeneralClient.getOverLimitData(lineId).getData();
overLimitList.add(overlimit);
}
}
@@ -155,8 +152,7 @@ public class PollutionServiceImpl implements PollutionService {
* MySql入表
*/
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);
HttpResult<Map<String, List<String>>> substationOut = commTerminalGeneralClient.getLineBySubstationRelation(1);
Dept dept = deptFeignClient.getRootDept().getData();
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
@@ -848,7 +844,7 @@ public class PollutionServiceImpl implements PollutionService {
* 获取限值表中的所有监测点信息
*/
private List<Overlimit> getAllLinesLimitData() {
return lineFeignClient.getAllLineOverLimit("harmonic-boot","").getData();
return commTerminalGeneralClient.getAllLineOverLimit().getData();
}
}

View File

@@ -9,5 +9,5 @@ public interface IRStatLimitRateDService extends IMppService<RStatLimitRateDPO>
void insert(List<RStatLimitRateDPO> list);
List<RStatLimitRateDPO> findList(List<String> list, String time);
List<RStatLimitRateDPO> findList(List<String> list,String startTime,String endTime);
}

View File

@@ -2,6 +2,8 @@ package com.njcn.prepare.harmonic.service.mysql.line;
import com.njcn.prepare.harmonic.pojo.param.LineParam;
import java.util.List;
/**
* @author xiaoyao
* @version 1.0.0
@@ -11,5 +13,5 @@ public interface LimitTargetService {
void getLimitTargetData(LineParam lineParam);
void limitTargetData(LineParam lineParam,String time);
void limitTargetData(List<String> indexLists,String startTime,String endTime);
}