河北超高压算法调整

This commit is contained in:
2023-12-25 11:07:07 +08:00
parent f9ac0a5c45
commit b5001441f2
3 changed files with 63 additions and 53 deletions

View File

@@ -1,6 +1,5 @@
package com.njcn.prepare.harmonic.controller.line; package com.njcn.prepare.harmonic.controller.line;
import cn.hutool.core.collection.CollectionUtil;
import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
@@ -8,17 +7,14 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.NjcnDateUtils; import com.njcn.common.utils.NjcnDateUtils;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient; import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.param.LineParam; import com.njcn.prepare.harmonic.pojo.param.LineParam;
import com.njcn.prepare.harmonic.service.mysql.line.IntegrityService; import com.njcn.prepare.harmonic.service.mysql.line.IntegrityService;
import com.njcn.prepare.harmonic.utils.PublicUtil;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@@ -53,14 +49,18 @@ public class IntegrityController extends BaseController {
public HttpResult<String> dataIntegrity(@RequestBody @Validated LineParam lineParam){ public HttpResult<String> dataIntegrity(@RequestBody @Validated LineParam lineParam){
log.info(LocalDateTime.now()+"dataIntegrity开始执行"); log.info(LocalDateTime.now()+"dataIntegrity开始执行");
String methodDescribe = getMethodDescribe("dataIntegrity"); String methodDescribe = getMethodDescribe("dataIntegrity");
CalculatedParam calculatedParam = new CalculatedParam(); String startTime,endTime;
calculatedParam.setDataDate(lineParam.getDataDate()); if (Objects.nonNull(lineParam.getRepairFlag()) && lineParam.getRepairFlag()){
if (CollectionUtil.isNotEmpty(lineParam.getLineIds())){ List<String> timeRange = NjcnDateUtils.findEveryDay(lineParam.getBeginTime(),lineParam.getEndTime());
calculatedParam.setIdList(lineParam.getLineIds()); for (String item : timeRange) {
log.info(item+"-->开始执行");
startTime = item+" "+"00:00:00";
endTime = item+" "+"23:59:59";
integrityService.dataIntegrity(lineParam,startTime,endTime);
}
} else { } else {
calculatedParam.setIdList(commTerminalGeneralClient.getRunMonitorIds().getData()); integrityService.dataIntegrity(lineParam,lineParam.getBeginTime(),lineParam.getEndTime());
} }
integrityService.dataIntegrity(calculatedParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, CommonResponseEnum.SUCCESS.getMessage(), methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, CommonResponseEnum.SUCCESS.getMessage(), methodDescribe);
} }
} }

View File

@@ -1,13 +1,17 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.line; package com.njcn.prepare.harmonic.service.mysql.Impl.line;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.date.LocalDateTimeUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.pojo.enums.common.ServerEnum;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient; import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
import com.njcn.device.pq.api.LineFeignClient; import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.po.RStatIntegrityD; import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.influx.constant.InfluxDbSqlConstant; import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.deprecated.InfluxDBPublicParam;
import com.njcn.influx.imapper.DataVMapper; import com.njcn.influx.imapper.DataVMapper;
import com.njcn.influx.pojo.bo.MeasurementCount; import com.njcn.influx.pojo.bo.MeasurementCount;
import com.njcn.influx.pojo.constant.InfluxDBTableConstant; import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
@@ -16,15 +20,21 @@ import com.njcn.influx.query.InfluxQueryWrapper;
import com.njcn.influx.utils.InfluxDbUtils; import com.njcn.influx.utils.InfluxDbUtils;
import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper; import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.param.LineParam;
import com.njcn.prepare.harmonic.service.mysql.line.IntegrityService; import com.njcn.prepare.harmonic.service.mysql.line.IntegrityService;
import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.ListUtils;
import org.influxdb.dto.QueryResult;
import org.influxdb.impl.InfluxDBResultMapper;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@@ -54,37 +64,35 @@ public class IntegrityServiceImpl extends MppServiceImpl<RStatIntegrityDMapper,
private final DataVMapper dataVMapper; private final DataVMapper dataVMapper;
// @Override @Override
// @Async("asyncExecutor") @Async("asyncExecutor")
// @Deprecated @Deprecated
// public void dataIntegrity(LineParam lineParam,String startTime,String endTime) { public void dataIntegrity(LineParam lineParam, String startTime, String endTime) {
// DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDate dateTime = LocalDate.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
// LocalDateTime dateTime = LocalDateTime.parse(startTime,df); List<LineDevGetDTO> lineDevGetDTOList;
// if (CollUtil.isEmpty(lineParam.getLineIds())){
// List<LineDevGetDTO> lineDevGetDTOList = new ArrayList<>(); Dept dept = deptFeignClient.getRootDept().getData();
// if (CollUtil.isEmpty(lineParam.getLineIds())){
// Dept dept = deptFeignClient.getRootDept().getData(); DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
// deptGetLineParam.setDeptId(dept.getId());
// DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); deptGetLineParam.setServerName(ServerEnum.HARMONIC.getName());
// deptGetLineParam.setDeptId(dept.getId()); List<String> monitorIds = commTerminalGeneralClient.getRunMonitorIds().getData();
// deptGetLineParam.setServerName(ServerEnum.HARMONIC.getName()); lineDevGetDTOList = commTerminalGeneralClient.getMonitorDetailList(monitorIds).getData();
// List<String> monitorIds = commTerminalGeneralClient.getRunMonitorIds().getData(); }else {
// lineDevGetDTOList = commTerminalGeneralClient.getMonitorDetailList(monitorIds).getData(); lineDevGetDTOList = commTerminalGeneralClient.getMonitorDetailList(lineParam.getLineIds()).getData();
// }else { }
// lineDevGetDTOList = commTerminalGeneralClient.getMonitorDetailList(lineParam.getLineIds()).getData(); List<RStatIntegrityD> list = new ArrayList<>();
// } for (LineDevGetDTO lineDetail :lineDevGetDTOList){
// List<RStatIntegrityD> list = new ArrayList<>(); int dataCount = getDataCount(lineDetail.getPointId(),startTime,endTime);
// for (LineDevGetDTO lineDetail :lineDevGetDTOList){ RStatIntegrityD integrityDpo = new RStatIntegrityD();
// int dataCount = getDataCount(lineDetail.getPointId(),startTime,endTime); integrityDpo.setTimeId(dateTime);
// RStatIntegrityD integrityDpo = new RStatIntegrityD(); integrityDpo.setLineIndex(lineDetail.getPointId());
// integrityDpo.setTimeId(dateTime); integrityDpo.setDueTime(InfluxDBPublicParam.DAY_MINUTE/lineDetail.getInterval());
// integrityDpo.setLineIndex(lineDetail.getPointId()); integrityDpo.setRealTime(dataCount);
// integrityDpo.setDueTime(InfluxDBPublicParam.DAY_MINUTE/lineDetail.getInterval()); list.add(integrityDpo);
// integrityDpo.setRealTime(dataCount); }
// list.add(integrityDpo); this.saveOrUpdateBatchByMultiId(list,500);
// } }
// this.saveOrUpdateBatchByMultiId(list,500);
// }
/********************************新算法************************************************/ /********************************新算法************************************************/
@Override @Override
@@ -144,16 +152,16 @@ public class IntegrityServiceImpl extends MppServiceImpl<RStatIntegrityDMapper,
/********************************新算法结束************************************************/ /********************************新算法结束************************************************/
// private int getDataCount(String lineId,String startTime,String endTime){ private int getDataCount(String lineId,String startTime,String endTime){
// QueryResult sqlResult = influxDbUtils.query("SELECT * FROM data_v WHERE time >= '" + startTime + "' and time <= '" + endTime + "' and line_id = '" + lineId + "' and phasic_type = 'T' and value_type = 'MAX' tz('Asia/Shanghai')"); QueryResult sqlResult = influxDbUtils.query("SELECT * FROM data_v WHERE time >= '" + startTime + "' and time <= '" + endTime + "' and line_id = '" + lineId + "' and phasic_type = 'A' and value_type = 'MAX' tz('Asia/Shanghai')");
// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
// List<DataV> list = resultMapper.toPOJO(sqlResult, DataV.class); List<DataV> list = resultMapper.toPOJO(sqlResult, DataV.class);
// if (CollectionUtils.isEmpty(list)){ if (CollectionUtils.isEmpty(list)){
// return 0; return 0;
// } else { } else {
// return list.size(); return list.size();
// } }
// } }
} }

View File

@@ -1,6 +1,7 @@
package com.njcn.prepare.harmonic.service.mysql.line; package com.njcn.prepare.harmonic.service.mysql.line;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.param.LineParam;
/** /**
* @author xiaoyao * @author xiaoyao
@@ -9,7 +10,8 @@ import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
*/ */
public interface IntegrityService { public interface IntegrityService {
// void dataIntegrity(LineParam lineParam,String startTime,String endTime); @Deprecated
void dataIntegrity(LineParam lineParam, String startTime, String endTime);
/*** /***
* 监测点数据完整性_日表 * 监测点数据完整性_日表