1.单位标数据质量算法兼容修改
This commit is contained in:
@@ -59,7 +59,7 @@ public interface CommTerminalGeneralClient {
|
||||
HttpResult<List<DeptGetSubStationDTO>> deptSubStation(@RequestBody @Validated DeptGetLineParam deptGetLineParam);
|
||||
|
||||
/**
|
||||
* 根据单位获取所有变电站
|
||||
* 根据单位获取所有母线
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2023/5/10
|
||||
@@ -77,6 +77,13 @@ public interface CommTerminalGeneralClient {
|
||||
@PostMapping("deptGetDevice")
|
||||
HttpResult<List<DeptGetDeviceDTO>> deptGetDevice(@RequestBody @Validated DeptGetLineParam deptGetLineParam);
|
||||
|
||||
/**
|
||||
* @Description: 根据单位获取单位下的装置以及装置下的监测点
|
||||
* @Author: wr
|
||||
* @Date: 2023/9/25 10:30
|
||||
*/
|
||||
@PostMapping("deptGetDeviceAndMonitor")
|
||||
HttpResult<List<DeptGetDeviceDTO>> deptGetDeviceAndMonitor(@RequestBody @Validated DeptGetLineParam deptGetLineParam);
|
||||
|
||||
/**
|
||||
* 根据单站id获取监测点信息
|
||||
|
||||
@@ -54,7 +54,7 @@ public class CommTerminalGeneralClientFallbackFactory implements FallbackFactory
|
||||
|
||||
@Override
|
||||
public HttpResult<List<DeptGetBusBarDTO>> deptBusBar(DeptGetLineParam deptGetLineParam) {
|
||||
log.error("{}异常,降级处理,异常为:{}", "根据单位获取所有变电站", throwable.toString());
|
||||
log.error("{}异常,降级处理,异常为:{}", "根据单位获取所有母线", throwable.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
|
||||
@@ -64,6 +64,12 @@ public class CommTerminalGeneralClientFallbackFactory implements FallbackFactory
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpResult<List<DeptGetDeviceDTO>> deptGetDeviceAndMonitor(DeptGetLineParam deptGetLineParam) {
|
||||
log.error("{}异常,降级处理,异常为:{}", "根据单位获取单位下的装置以及装置下的监测点", throwable.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpResult<LineDevGetBandDTO> substationGetLine(String substationId) {
|
||||
log.error("{}异常,降级处理,异常为:{}", "根据单站id获取监测点信息", throwable.toString());
|
||||
|
||||
@@ -123,6 +123,8 @@ public class PmsTerminal extends BaseEntity {
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 通讯状态(0:中断;1:正常)
|
||||
*/
|
||||
private Integer comFlag;
|
||||
}
|
||||
|
||||
@@ -119,7 +119,7 @@ public class CommTerminalController extends BaseController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据单位获取所有变电站
|
||||
* 根据单位获取所有母线
|
||||
* @author cdf
|
||||
* @date 2023/5/10
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.njcn.device.pms.service.ledgerManger.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||
@@ -252,9 +254,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
|
||||
|
||||
List<PmsMonitorBaseDTO> pmsMonitorBaseDTOList = distributionMonitorMapper.getDisMonitorAllList(null, 0);
|
||||
List<String> pwTerminalIds = pmsMonitorBaseDTOList.stream().map(PmsMonitorBaseDTO::getTerminalId).distinct().collect(Collectors.toList());
|
||||
lambdaQueryWrapper.clear();
|
||||
lambdaQueryWrapper.in(PmsTerminal::getId, pwTerminalIds);
|
||||
List<PmsTerminal> pwPmsTerminals = terminalMapper.selectList(lambdaQueryWrapper);
|
||||
List<PmsTerminal> pwPmsTerminals = terminalMapper.selectList(new LambdaQueryWrapper<PmsTerminal>().in(CollUtil.isNotEmpty(pwTerminalIds),PmsTerminal::getId, pwTerminalIds));
|
||||
Map<String, List<PmsTerminal>> mapPms = pwPmsTerminals.stream().collect(Collectors.groupingBy(PmsTerminal::getOrgId));
|
||||
|
||||
Map<String, List<Monitor>> monitorMap = new HashMap<>();
|
||||
@@ -262,7 +262,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
|
||||
if (type == 1) {
|
||||
//获取装置接入的监测点
|
||||
monitorMap = monitorList.stream().collect(Collectors.groupingBy(Monitor::getTerminalId));
|
||||
pwMonitorMap = pmsMonitorBaseDTOList.stream().collect(Collectors.groupingBy(PmsMonitorBaseDTO::getTerminalId));
|
||||
pwMonitorMap = pmsMonitorBaseDTOList.stream().filter(x-> ObjectUtil.isNotNull(x.getTerminalId())).collect(Collectors.groupingBy(PmsMonitorBaseDTO::getTerminalId));
|
||||
|
||||
|
||||
}
|
||||
@@ -285,6 +285,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
|
||||
lineDevGetDTO.setDevId(dev.getId());
|
||||
lineDevGetDTO.setType(0);
|
||||
lineDevGetDTO.setUpdateTime(dev.getUpdateTime());
|
||||
lineDevGetDTO.setComFlag(dev.getComFlag());
|
||||
if(type == 1) {
|
||||
if (finalMonitorMap.containsKey(dev.getId())) {
|
||||
lineDevGetDTO.setMonitorIds(finalMonitorMap.get(dev.getId()).stream().map(Monitor::getId).distinct().collect(Collectors.toList()));
|
||||
@@ -300,6 +301,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
|
||||
lineDevGetDTO.setDevId(dev.getId());
|
||||
lineDevGetDTO.setType(1);
|
||||
lineDevGetDTO.setUpdateTime(dev.getUpdateTime());
|
||||
lineDevGetDTO.setComFlag(dev.getComFlag());
|
||||
if(type == 1) {
|
||||
if (finalPwMonitorMap.containsKey(dev.getId())) {
|
||||
lineDevGetDTO.setMonitorIds(finalMonitorMap.get(dev.getId()).stream().map(Monitor::getId).distinct().collect(Collectors.toList()));
|
||||
|
||||
@@ -364,7 +364,10 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
||||
//返回主网和配网监测信息
|
||||
List<DeptGetChildrenDTO> deviceInfos = new ArrayList<>();
|
||||
List<DeptDTO> deptInfos = deptFeignClient.getDeptDescendantIndexes(param.getDeptId(), Stream.of(0, 1).collect(Collectors.toList())).getData();
|
||||
|
||||
DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_STATE.getName(),DicDataEnum.RUN.getName()).getData();
|
||||
if(Objects.isNull(dictData)){
|
||||
throw new BusinessException("监测点状态字典为空");
|
||||
}
|
||||
for (DeptDTO deptInfo : deptInfos) {
|
||||
List<DeptDTO> directDeptInfos = deptInfos.stream()
|
||||
.filter(deptDTO -> deptDTO.getPid().equals(deptInfo.getId()))
|
||||
@@ -374,7 +377,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
||||
List<DeptDTO> dept = deptInfos.stream()
|
||||
.filter(deptDTO -> deptDTO.getId().equals(deptInfo.getId()))
|
||||
.collect(Collectors.toList());
|
||||
deviceInfos.add(getPmsMonitor(dept.get(0), Collections.singletonList(dept.get(0).getCode())));
|
||||
deviceInfos.add(getPmsMonitor(dept.get(0),dictData, Collections.singletonList(dept.get(0).getCode())));
|
||||
} else {
|
||||
List<String> deptIdList = new ArrayList<>();
|
||||
for (DeptDTO deptDTO : directDeptInfos) {
|
||||
@@ -389,7 +392,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
||||
.collect(Collectors.toList()));
|
||||
deptIdList.add(deptDTO.getCode());
|
||||
}
|
||||
deviceInfos.add(getPmsMonitor(deptInfo, deptIdList));
|
||||
deviceInfos.add(getPmsMonitor(deptInfo, dictData,deptIdList));
|
||||
}
|
||||
}
|
||||
return deviceInfos;
|
||||
@@ -460,7 +463,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
||||
* @param deptIdList
|
||||
* @return
|
||||
*/
|
||||
private DeptGetChildrenDTO getPmsMonitor(DeptDTO deptDTO, List<String> deptIdList) {
|
||||
private DeptGetChildrenDTO getPmsMonitor(DeptDTO deptDTO,DictData dictData, List<String> deptIdList) {
|
||||
DeptGetChildrenDTO pmsDeptGetChildrenDTO = new DeptGetChildrenDTO();
|
||||
pmsDeptGetChildrenDTO.setDeptId(deptDTO.getCode());
|
||||
if (deptDTO.getType() == 0) {
|
||||
@@ -473,6 +476,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
||||
//主网监测点
|
||||
List<Monitor> monitorList = this.list(new LambdaQueryWrapper<Monitor>()
|
||||
.select(Monitor::getId)
|
||||
.eq(Monitor::getMonitorState,dictData.getId())
|
||||
.in(CollUtil.isNotEmpty(deptIdList), Monitor::getOrgId, deptIdList));
|
||||
//配网监测点
|
||||
List<PmsMonitorBaseDTO> pwMonitorList = iDistributionMonitorService.getMonitorByCondition(deptIdList, null);
|
||||
|
||||
@@ -47,7 +47,8 @@
|
||||
dev.id devId,
|
||||
dic.value voltageLevel,
|
||||
1 as type ,
|
||||
device.update_time
|
||||
device.update_time,
|
||||
device.Com_Flag as comFlag
|
||||
</if>
|
||||
from pq_dept_line pq_dept_line
|
||||
inner join pq_line point on pq_dept_line.line_id = point.id
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.njcn.executor.handler;
|
||||
|
||||
import com.njcn.common.pojo.constant.BizParamConstant;
|
||||
import com.njcn.executor.utils.CommonExecutorUtils;
|
||||
import com.njcn.prepare.harmonic.api.newalgorithm.ROperatingIndexFeignClient;
|
||||
import com.njcn.prepare.harmonic.pojo.param.PrimaryGridParam;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @Description: 单位监测指标数据质量
|
||||
* @return: null
|
||||
* @Author: wr
|
||||
* @Date: 2023/9/26 13:41
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ROperatingIndexJob {
|
||||
|
||||
private final ROperatingIndexFeignClient rOperatingIndexFeignClient;
|
||||
|
||||
@XxlJob("rOperatingIndexDay")
|
||||
public void rOperatingMonitorDay(){
|
||||
log.info(LocalDateTime.now()+"单位监测指标数据质量_日表(主网,数据中心)------------------------");
|
||||
PrimaryGridParam primaryGridParam=new PrimaryGridParam();
|
||||
primaryGridParam.setDataSource(1);
|
||||
primaryGridParam.setDataDate(CommonExecutorUtils.prepareTimeDeal(BizParamConstant.STAT_BIZ_DAY));
|
||||
CommonExecutorUtils.commDefineDateObj(BizParamConstant.STAT_BIZ_DAY,primaryGridParam);
|
||||
rOperatingIndexFeignClient.primaryGridDataHanlder(primaryGridParam);
|
||||
}
|
||||
|
||||
@XxlJob("rOperatingIndexMonth")
|
||||
public void rOperatingIndexMonth(){
|
||||
log.info(LocalDateTime.now()+"单位监测指标数据质量_月表(主网,数据中心)------------------------");
|
||||
PrimaryGridParam primaryGridParam=new PrimaryGridParam();
|
||||
primaryGridParam.setDataSource(1);
|
||||
primaryGridParam.setDataDate(CommonExecutorUtils.prepareTimeDeal(BizParamConstant.STAT_BIZ_MONTH));
|
||||
CommonExecutorUtils.commDefineDateObj(BizParamConstant.STAT_BIZ_MONTH,primaryGridParam);
|
||||
rOperatingIndexFeignClient.primaryGridDataHanlder(primaryGridParam);
|
||||
}
|
||||
|
||||
@XxlJob("rOperatingIndexQuarter")
|
||||
public void rOperatingIndexQuarter(){
|
||||
log.info(LocalDateTime.now()+"单位监测指标数据质量_季表(主网,数据中心)------------------------");
|
||||
PrimaryGridParam primaryGridParam=new PrimaryGridParam();
|
||||
primaryGridParam.setDataSource(1);
|
||||
primaryGridParam.setDataDate(CommonExecutorUtils.prepareTimeDeal(BizParamConstant.STAT_BIZ_QUARTER));
|
||||
CommonExecutorUtils.commDefineDateObj(BizParamConstant.STAT_BIZ_QUARTER,primaryGridParam);
|
||||
rOperatingIndexFeignClient.primaryGridDataHanlder(primaryGridParam);
|
||||
}
|
||||
|
||||
@XxlJob("rOperatingIndexYear")
|
||||
public void rOperatingIndexYear(){
|
||||
log.info(LocalDateTime.now()+"单位监测指标数据质量_月表(主网,数据中心)------------------------");
|
||||
PrimaryGridParam primaryGridParam=new PrimaryGridParam();
|
||||
primaryGridParam.setDataSource(1);
|
||||
primaryGridParam.setDataDate(CommonExecutorUtils.prepareTimeDeal(BizParamConstant.STAT_BIZ_YEAR));
|
||||
CommonExecutorUtils.commDefineDateObj(BizParamConstant.STAT_BIZ_YEAR,primaryGridParam);
|
||||
rOperatingIndexFeignClient.primaryGridDataHanlder(primaryGridParam);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import com.njcn.common.pojo.constant.BizParamConstant;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Calendar;
|
||||
@@ -21,37 +22,47 @@ import java.util.Objects;
|
||||
@Slf4j
|
||||
public class CommonExecutorUtils {
|
||||
|
||||
public static String prepareTimeDeal(String command){
|
||||
if(StrUtil.isBlank(command)){
|
||||
log.error(LocalDateTime.now()+"xxl调度任务参数未设置");
|
||||
public static String prepareTimeDeal(String command) {
|
||||
if (StrUtil.isBlank(command)) {
|
||||
log.error(LocalDateTime.now() + "xxl调度任务参数未设置");
|
||||
return null;
|
||||
}
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.add(Calendar.DAY_OF_MONTH,-1);
|
||||
if (Objects.equals(BizParamConstant.STAT_BIZ_DAY,command)){
|
||||
calendar.add(Calendar.DAY_OF_MONTH,-1);
|
||||
} else if (Objects.equals(BizParamConstant.STAT_BIZ_MONTH,command)){
|
||||
if (Objects.equals(BizParamConstant.STAT_BIZ_DAY, command)) {
|
||||
calendar.add(Calendar.DAY_OF_MONTH, -1);
|
||||
} else if (Objects.equals(BizParamConstant.STAT_BIZ_MONTH, command)) {
|
||||
calendar.set(Calendar.DAY_OF_MONTH, 1);
|
||||
} else if (Objects.equals(BizParamConstant.STAT_BIZ_QUARTER, command)) {
|
||||
int nowMonth = calendar.get(Calendar.MONTH);
|
||||
calendar.set(Calendar.MONTH, nowMonth - (nowMonth % 3));
|
||||
calendar.set(Calendar.DAY_OF_MONTH, 1);
|
||||
calendar.set(Calendar.HOUR_OF_DAY, 0);
|
||||
calendar.set(Calendar.MINUTE, 0);
|
||||
calendar.set(Calendar.SECOND, 0);
|
||||
calendar.set(Calendar.MILLISECOND, 0);
|
||||
} else if (Objects.equals(BizParamConstant.STAT_BIZ_YEAR, command)) {
|
||||
calendar.set(Calendar.DAY_OF_YEAR, 1);
|
||||
}
|
||||
log.info("job调度时间:"+sdf.format(calendar.getTime()));
|
||||
log.info("job调度时间:" + sdf.format(calendar.getTime()));
|
||||
return sdf.format(calendar.getTime());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据xxl-job的参数,生成一个任务的起始时间和结束时间
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2023/9/20
|
||||
*/
|
||||
public static void commDefineDate(String command,LineParam lineParam){
|
||||
public static void commDefineDate(String command, LineParam lineParam) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String begin;
|
||||
String end;
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.add(Calendar.DAY_OF_MONTH,-1);
|
||||
calendar.add(Calendar.DAY_OF_MONTH, -1);
|
||||
Date temDate = calendar.getTime();
|
||||
switch (command){
|
||||
switch (command) {
|
||||
case BizParamConstant.STAT_BIZ_DAY:
|
||||
begin = sdf.format(DateUtil.beginOfDay(temDate));
|
||||
end = sdf.format(DateUtil.endOfDay(temDate));
|
||||
@@ -79,9 +90,55 @@ public class CommonExecutorUtils {
|
||||
}
|
||||
lineParam.setBeginTime(begin);
|
||||
lineParam.setEndTime(end);
|
||||
lineParam.setDataDate(begin.substring(0,10));
|
||||
lineParam.setDataDate(begin.substring(0, 10));
|
||||
}
|
||||
|
||||
|
||||
public static void commDefineDateObj(String command, Object param) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String begin;
|
||||
String end;
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.add(Calendar.DAY_OF_MONTH, -1);
|
||||
Date temDate = calendar.getTime();
|
||||
switch (command) {
|
||||
case BizParamConstant.STAT_BIZ_DAY:
|
||||
begin = sdf.format(DateUtil.beginOfDay(temDate));
|
||||
end = sdf.format(DateUtil.endOfDay(temDate));
|
||||
break;
|
||||
case BizParamConstant.STAT_BIZ_WEEK:
|
||||
begin = sdf.format(DateUtil.beginOfWeek(temDate));
|
||||
end = sdf.format(DateUtil.endOfWeek(temDate));
|
||||
break;
|
||||
case BizParamConstant.STAT_BIZ_MONTH:
|
||||
begin = sdf.format(DateUtil.beginOfMonth(temDate));
|
||||
end = sdf.format(DateUtil.endOfMonth(temDate));
|
||||
break;
|
||||
case BizParamConstant.STAT_BIZ_QUARTER:
|
||||
begin = sdf.format(DateUtil.beginOfQuarter(temDate));
|
||||
end = sdf.format(DateUtil.endOfQuarter(temDate));
|
||||
break;
|
||||
case BizParamConstant.STAT_BIZ_YEAR:
|
||||
begin = sdf.format(DateUtil.beginOfYear(temDate));
|
||||
end = sdf.format(DateUtil.endOfYear(temDate));
|
||||
break;
|
||||
default:
|
||||
begin = sdf.format(DateUtil.beginOfDay(temDate));
|
||||
end = sdf.format(DateUtil.endOfDay(temDate));
|
||||
break;
|
||||
}
|
||||
try {
|
||||
Field beginTime = param.getClass().getDeclaredField("beginTime");
|
||||
beginTime.setAccessible(true);
|
||||
beginTime.set(param, begin);
|
||||
|
||||
Field endTime = param.getClass().getDeclaredField("endTime");
|
||||
endTime.setAccessible(true);
|
||||
endTime.set(param, end);
|
||||
} catch (Exception e) {
|
||||
log.error(LocalDateTime.now() + "时间属性反射异常: " + e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.njcn.prepare.harmonic.api.newalgorithm;
|
||||
|
||||
|
||||
import com.njcn.common.pojo.constant.ServerInfo;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.prepare.harmonic.api.newalgorithm.fallback.ROperatingMonitorFeignClientFallbackFactory;
|
||||
import com.njcn.prepare.harmonic.pojo.param.PrimaryGridDataIntegrityParam;
|
||||
import com.njcn.prepare.harmonic.pojo.param.PrimaryGridParam;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
@FeignClient(
|
||||
value = ServerInfo.PREPARE_BOOT,//对应模块名
|
||||
path = "/primaryGridData",//对应controller请求类
|
||||
fallbackFactory = ROperatingMonitorFeignClientFallbackFactory.class//服务降级处理类
|
||||
)
|
||||
public interface ROperatingIndexFeignClient {
|
||||
|
||||
@PostMapping("primaryGridDataHanlder")
|
||||
HttpResult<Boolean> primaryGridDataHanlder(@RequestBody PrimaryGridParam primaryGridParam);
|
||||
|
||||
@PostMapping("primaryGridDataIntegrityHanlder")
|
||||
HttpResult<Boolean> primaryGridDataIntegrityHanlder(@RequestBody PrimaryGridDataIntegrityParam primaryGridDataIntegrityParam);
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.njcn.prepare.harmonic.api.newalgorithm.fallback;
|
||||
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.prepare.harmonic.api.newalgorithm.ROperatingIndexFeignClient;
|
||||
import com.njcn.prepare.harmonic.pojo.param.PrimaryGridDataIntegrityParam;
|
||||
import com.njcn.prepare.harmonic.pojo.param.PrimaryGridParam;
|
||||
import com.njcn.prepare.harmonic.utils.PrepareEnumUtil;
|
||||
import feign.hystrix.FallbackFactory;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class ROperatingIndexFeignClientFallbackFactory implements FallbackFactory<ROperatingIndexFeignClient> {
|
||||
@Override
|
||||
public ROperatingIndexFeignClient create(Throwable throwable) {
|
||||
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
|
||||
if (throwable.getCause() instanceof BusinessException) {
|
||||
BusinessException businessException = (BusinessException)throwable.getCause();
|
||||
exceptionEnum = PrepareEnumUtil.getExceptionEnum(businessException.getResult());
|
||||
}
|
||||
|
||||
Enum<?> finalExceptionEnum = exceptionEnum;
|
||||
return new ROperatingIndexFeignClient() {
|
||||
|
||||
@Override
|
||||
public HttpResult<Boolean> primaryGridDataHanlder(PrimaryGridParam primaryGridParam) {
|
||||
log.error("{}异常,降级处理,异常为:{}", "单位标数据质量_统计: ", throwable.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpResult<Boolean> primaryGridDataIntegrityHanlder(PrimaryGridDataIntegrityParam primaryGridDataIntegrityParam) {
|
||||
log.error("{}异常,降级处理,异常为:{}", "终端通信管理_日表: ", throwable.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -30,4 +30,22 @@ public class PrimaryGridParam {
|
||||
@NotBlank(message = "数据源")
|
||||
private Integer dataSource;
|
||||
|
||||
/**
|
||||
* 调度任务开始时间
|
||||
*/
|
||||
@NotBlank(message = "调度任务开始时间不可为空")
|
||||
private String beginTime;
|
||||
|
||||
/**
|
||||
* 调度任务结束时间
|
||||
*/
|
||||
@NotBlank(message = "调度任务结束时间不可为空")
|
||||
private String endTime;
|
||||
|
||||
|
||||
/**
|
||||
* 是否补招标识,默认false不补招
|
||||
*/
|
||||
@ApiModelProperty(name = "repairFlag",value = "0.不补招 1.补招",example = "false")
|
||||
private Boolean repairFlag = false;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package com.njcn.prepare.harmonic.controller.area;
|
||||
|
||||
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.device.pms.api.PmsTerminalClient;
|
||||
import com.njcn.device.pms.pojo.param.PmsBaseParam;
|
||||
import com.njcn.device.pms.pojo.po.PmsTerminal;
|
||||
@@ -46,7 +48,7 @@ import java.util.stream.Collectors;
|
||||
@RequiredArgsConstructor
|
||||
public class PrimaryGridDataController extends BaseController {
|
||||
|
||||
private @Autowired
|
||||
private @Autowired
|
||||
PrimaryGridDataService primaryGridDataService;
|
||||
|
||||
private @Autowired
|
||||
@@ -57,51 +59,56 @@ public class PrimaryGridDataController extends BaseController {
|
||||
|
||||
|
||||
@ApiOperation("主网单位数据同步(r_operating_index_d表数据)")
|
||||
@ApiImplicitParam(value = "primaryGridParam",name = "primaryGridParam",required = true)
|
||||
@ApiImplicitParam(value = "primaryGridParam", name = "primaryGridParam", required = true)
|
||||
@PostMapping("primaryGridDataHanlder")
|
||||
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
|
||||
public HttpResult<Boolean> primaryGridDataHanlder(@RequestBody PrimaryGridParam primaryGridParam ){
|
||||
log.info(LocalDateTime.now()+"primaryGridDataHanlder开始执行");
|
||||
public HttpResult<Boolean> primaryGridDataHanlder(@RequestBody PrimaryGridParam primaryGridParam) {
|
||||
log.info(LocalDateTime.now() + "primaryGridDataHanlder开始执行");
|
||||
String methodDescribe = getMethodDescribe("primaryGridDataHanlder");
|
||||
Boolean result = true;
|
||||
List<String> orgIdList = new ArrayList<> ();
|
||||
if(CollectionUtils.isEmpty (primaryGridParam.getOrgIdList ())){
|
||||
/*todo 不知道是否需要补招*/
|
||||
List<String> orgIdList;
|
||||
if (CollectionUtils.isEmpty(primaryGridParam.getOrgIdList())) {
|
||||
List<PvTerminalTreeVO> dept = deptFeignClient.allDeptList().getData();
|
||||
orgIdList = dept.stream ( ).map (PvTerminalTreeVO::getId).collect (Collectors.toList ( ));
|
||||
}else{
|
||||
orgIdList = primaryGridParam.getOrgIdList ();
|
||||
}
|
||||
primaryGridParam.setOrgIdList (orgIdList);
|
||||
|
||||
primaryGridDataService.primaryGridDataHanlder (primaryGridParam);
|
||||
if (result){
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||
orgIdList = dept.stream().map(PvTerminalTreeVO::getId).collect(Collectors.toList());
|
||||
} else {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
|
||||
orgIdList = primaryGridParam.getOrgIdList();
|
||||
}
|
||||
primaryGridParam.setOrgIdList(orgIdList);
|
||||
if (primaryGridParam.getRepairFlag() && Integer.valueOf(BizParamConstant.STAT_BIZ_DAY).equals(primaryGridParam.getType())) {
|
||||
List<String> timeRange = NjcnDateUtils.findEveryDay(primaryGridParam.getBeginTime(), primaryGridParam.getEndTime());
|
||||
for (String item : timeRange) {
|
||||
log.info(item + "-->开始执行");
|
||||
primaryGridParam.setBeginTime(item + " " + "00:00:00");
|
||||
primaryGridParam.setEndTime(item + " " + "23:59:59");
|
||||
primaryGridParam.setDataDate(item);
|
||||
primaryGridDataService.primaryGridDataHanlder(primaryGridParam);
|
||||
}
|
||||
} else {
|
||||
primaryGridDataService.primaryGridDataHanlder(primaryGridParam);
|
||||
}
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||
|
||||
}
|
||||
|
||||
@ApiOperation("主网终端数据完整率月统计")
|
||||
@ApiImplicitParam(value = "primaryGridDataIntegrityParam",name = "primaryGridDataIntegrityParam",required = true)
|
||||
@ApiImplicitParam(value = "primaryGridDataIntegrityParam", name = "primaryGridDataIntegrityParam", required = true)
|
||||
@PostMapping("primaryGridDataIntegrityHanlder")
|
||||
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
|
||||
public HttpResult<Boolean> primaryGridDataIntegrityHanlder(@RequestBody PrimaryGridDataIntegrityParam primaryGridDataIntegrityParam ){
|
||||
log.info(LocalDateTime.now()+"primaryGridDataIntegrityHanlder开始执行");
|
||||
public HttpResult<Boolean> primaryGridDataIntegrityHanlder(@RequestBody PrimaryGridDataIntegrityParam primaryGridDataIntegrityParam) {
|
||||
log.info(LocalDateTime.now() + "primaryGridDataIntegrityHanlder开始执行");
|
||||
String methodDescribe = getMethodDescribe("primaryGridDataIntegrityHanlder");
|
||||
Boolean result = true;
|
||||
List<String> orgIdList = new ArrayList<> ();
|
||||
if(CollectionUtils.isEmpty (primaryGridDataIntegrityParam.getDeviceId ())){
|
||||
List<String> orgIdList = new ArrayList<>();
|
||||
if (CollectionUtils.isEmpty(primaryGridDataIntegrityParam.getDeviceId())) {
|
||||
/*todo 不知道是否需要补招*/
|
||||
List<PmsTerminal> data = pmsTerminalClient.getTerminalSelectList (new PmsBaseParam()).getData ( );
|
||||
orgIdList = data.stream ().map (PmsTerminal::getId).collect(Collectors.toList());
|
||||
}else{
|
||||
orgIdList = primaryGridDataIntegrityParam.getDeviceId ();
|
||||
List<PmsTerminal> data = pmsTerminalClient.getTerminalSelectList(new PmsBaseParam()).getData();
|
||||
orgIdList = data.stream().map(PmsTerminal::getId).collect(Collectors.toList());
|
||||
} else {
|
||||
orgIdList = primaryGridDataIntegrityParam.getDeviceId();
|
||||
}
|
||||
primaryGridDataIntegrityParam.setDeviceId (orgIdList);
|
||||
primaryGridDataIntegrityParam.setDeviceId(orgIdList);
|
||||
|
||||
primaryGridDataService.primaryGridDataIntegrityHanlder (primaryGridDataIntegrityParam);
|
||||
if (result){
|
||||
primaryGridDataService.primaryGridDataIntegrityHanlder(primaryGridDataIntegrityParam);
|
||||
if (result) {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||
} else {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
|
||||
@@ -109,7 +116,4 @@ public class PrimaryGridDataController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,9 @@ package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
|
||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||
import com.njcn.harmonic.pojo.po.PmsMonitorPO;
|
||||
import com.njcn.prepare.harmonic.constant.PqsPrepareExceptionEnum;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.area.PmsMonitorPOMapper;
|
||||
@@ -11,11 +14,13 @@ import com.njcn.redis.utils.RedisUtil;
|
||||
import com.njcn.system.enums.DicDataEnum;
|
||||
import com.njcn.system.enums.DicDataTypeEnum;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.njcn.system.pojo.constant.DicDataConstant.NAME_KEY;
|
||||
import static com.njcn.system.pojo.constant.DicDataConstant.SPLIT_SIGN;
|
||||
@@ -30,16 +35,14 @@ import static com.njcn.system.pojo.constant.DicDataConstant.SPLIT_SIGN;
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class PmsMonitorPOServiceImpl extends ServiceImpl<PmsMonitorPOMapper, PmsMonitorPO> implements PmsMonitorPOService{
|
||||
|
||||
private @Autowired
|
||||
RedisUtil redisUtil;
|
||||
private final RedisUtil redisUtil;
|
||||
|
||||
private @Autowired
|
||||
PmsMonitorPOMapper pmsMonitorPOMapper;
|
||||
private final PmsMonitorPOMapper pmsMonitorPOMapper;
|
||||
|
||||
private @Autowired
|
||||
DeptFeignClient deptFeignClient;
|
||||
private final DeptFeignClient deptFeignClient;
|
||||
|
||||
/**
|
||||
* @Description: 在运监测点集合
|
||||
|
||||
@@ -2,18 +2,24 @@ package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
|
||||
import com.njcn.device.biz.pojo.dto.DeptGetDeviceDTO;
|
||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||
import com.njcn.harmonic.pojo.po.PmsTerminalPO;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.area.PmsTerminalPOMapper;
|
||||
import com.njcn.prepare.harmonic.service.mysql.area.PmsTerminalPOService;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2022/11/29 15:53【需求编号】
|
||||
@@ -22,13 +28,14 @@ import java.util.List;
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
public class PmsTerminalPOServiceImpl extends ServiceImpl<PmsTerminalPOMapper, PmsTerminalPO> implements PmsTerminalPOService{
|
||||
@RequiredArgsConstructor
|
||||
public class PmsTerminalPOServiceImpl extends ServiceImpl<PmsTerminalPOMapper, PmsTerminalPO> implements PmsTerminalPOService {
|
||||
|
||||
|
||||
private @Autowired
|
||||
PmsTerminalPOMapper pmsTerminalPOMapper;
|
||||
private @Autowired
|
||||
DeptFeignClient deptFeignClient;
|
||||
private final PmsTerminalPOMapper pmsTerminalPOMapper;
|
||||
private final DeptFeignClient deptFeignClient;
|
||||
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
||||
|
||||
/**
|
||||
* @Description: 监测终端集合
|
||||
* @Param: [orgid]
|
||||
@@ -38,14 +45,22 @@ public class PmsTerminalPOServiceImpl extends ServiceImpl<PmsTerminalPOMapper, P
|
||||
*/
|
||||
@Override
|
||||
public List<PmsTerminalPO> queryOnlineMeasurementPoints(String orgid) {
|
||||
List<PmsTerminalPO> list = new ArrayList<> ();
|
||||
LambdaQueryWrapper<PmsTerminalPO> wrapper = new LambdaQueryWrapper ( );
|
||||
List<PmsTerminalPO> list = new ArrayList<>();
|
||||
LambdaQueryWrapper<PmsTerminalPO> wrapper = new LambdaQueryWrapper();
|
||||
/*获取当前部门及子部门*/
|
||||
List<String> deptIds = deptFeignClient.getDepSonSelfCodetByDeptId(orgid).getData();
|
||||
|
||||
wrapper.in (PmsTerminalPO::getOrgId, deptIds);
|
||||
list = pmsTerminalPOMapper.selectList (wrapper);
|
||||
wrapper.in(PmsTerminalPO::getOrgId, deptIds);
|
||||
list = pmsTerminalPOMapper.selectList(wrapper);
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<LineDevGetDTO> getRunTerminalAndLine(String orgId) {
|
||||
DeptGetLineParam deptGetLineParam=new DeptGetLineParam();
|
||||
deptGetLineParam.setDeptId(orgId);
|
||||
List<DeptGetDeviceDTO> data = commTerminalGeneralClient.deptGetDeviceAndMonitor(deptGetLineParam).getData();
|
||||
return data.stream().flatMap(x -> x.getDeviceList().stream()).distinct().collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||
import com.njcn.harmonic.pojo.po.*;
|
||||
import com.njcn.prepare.harmonic.constant.AlgorithmParam;
|
||||
import com.njcn.prepare.harmonic.constant.PqsPrepareExceptionEnum;
|
||||
@@ -17,6 +21,7 @@ import com.njcn.prepare.harmonic.service.oracle.PqLinedetailPOService;
|
||||
import com.njcn.redis.utils.RedisUtil;
|
||||
import com.njcn.system.enums.DicDataEnum;
|
||||
import com.njcn.system.enums.DicDataTypeEnum;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
@@ -44,46 +49,38 @@ import static com.njcn.system.pojo.constant.DicDataConstant.SPLIT_SIGN;
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
|
||||
|
||||
private @Autowired
|
||||
PmsMonitorPOService pmsMonitorPOService;
|
||||
private final PmsMonitorPOService pmsMonitorPOService;
|
||||
|
||||
private @Autowired
|
||||
PmsTerminalPOService pmsTerminalPOService;
|
||||
private final PmsTerminalPOService pmsTerminalPOService;
|
||||
|
||||
private @Autowired
|
||||
DataVInfluxdbService dataVInfluxdbService;
|
||||
private final DataVInfluxdbService dataVInfluxdbService;
|
||||
|
||||
private @Autowired
|
||||
PqLinedetailPOService pqLinedetailPOService;
|
||||
private final PqLinedetailPOService pqLinedetailPOService;
|
||||
|
||||
private @Autowired
|
||||
DataVOraclePOService dataVOraclePOService;
|
||||
private final DataVOraclePOService dataVOraclePOService;
|
||||
|
||||
private @Autowired
|
||||
RMpIntegrityDPOService rMpIntegrityDPOService;
|
||||
private final RMpIntegrityDPOService rMpIntegrityDPOService;
|
||||
|
||||
private @Autowired
|
||||
RStatAbnormalDPOMapper rStatAbnormalDPOMapper;
|
||||
private final RStatAbnormalDPOMapper rStatAbnormalDPOMapper;
|
||||
|
||||
private @Autowired
|
||||
ROperatingIndexDPOService rOperatingIndexDPOService;
|
||||
private final ROperatingIndexDPOService rOperatingIndexDPOService;
|
||||
|
||||
private @Autowired
|
||||
ROperatingIndexMPOService rOperatingIndexMPOService;
|
||||
private final ROperatingIndexMPOService rOperatingIndexMPOService;
|
||||
|
||||
private @Autowired
|
||||
ROperatingIndexQPOService rOperatingIndexQPOService;
|
||||
private final ROperatingIndexQPOService rOperatingIndexQPOService;
|
||||
|
||||
private @Autowired
|
||||
ROperatingIndexYPOService rOperatingIndexYPOService;
|
||||
private final ROperatingIndexYPOService rOperatingIndexYPOService;
|
||||
|
||||
private final RMpDevEvaluateDetailPOService rMpDevEvaluateDetailPOService;
|
||||
|
||||
private final RedisUtil redisUtil;
|
||||
|
||||
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
||||
|
||||
private @Autowired
|
||||
RMpDevEvaluateDetailPOService rMpDevEvaluateDetailPOService;
|
||||
|
||||
private @Autowired
|
||||
RedisUtil redisUtil;
|
||||
|
||||
/**
|
||||
* @param primaryGridParam
|
||||
@@ -96,10 +93,10 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
|
||||
@Override
|
||||
@Async("asyncExecutor")
|
||||
public void primaryGridDataHanlder(PrimaryGridParam primaryGridParam) {
|
||||
if (Objects.equals (primaryGridParam.getDataSource ( ), AlgorithmParam.ORACLE_DATA)) {
|
||||
hanlderOracleData (primaryGridParam);
|
||||
} else if (Objects.equals (primaryGridParam.getDataSource ( ), AlgorithmParam.INFLUX_DATA)) {
|
||||
hanlderInfludxbData (primaryGridParam);
|
||||
if (Objects.equals(primaryGridParam.getDataSource(), AlgorithmParam.ORACLE_DATA)) {
|
||||
hanlderOracleData(primaryGridParam);
|
||||
} else if (Objects.equals(primaryGridParam.getDataSource(), AlgorithmParam.INFLUX_DATA)) {
|
||||
hanlderInfludxbData(primaryGridParam);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -116,41 +113,41 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
|
||||
@Async
|
||||
@SneakyThrows
|
||||
public void primaryGridDataIntegrityHanlder(PrimaryGridDataIntegrityParam primaryGridDataIntegrityParam) {
|
||||
List<String> deviceIds = primaryGridDataIntegrityParam.getDeviceId ();
|
||||
String dataDate = primaryGridDataIntegrityParam.getDataDate ( );
|
||||
List<RMpDevEvaluateDetailPO> rMpDevEvaluateDetailPOList = new ArrayList<> ( );
|
||||
List<String> deviceIds = primaryGridDataIntegrityParam.getDeviceId();
|
||||
String dataDate = primaryGridDataIntegrityParam.getDataDate();
|
||||
List<RMpDevEvaluateDetailPO> rMpDevEvaluateDetailPOList = new ArrayList<>();
|
||||
|
||||
final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse(dataDate);
|
||||
final Date tempDate = new SimpleDateFormat("yyyy-MM-dd").parse(dataDate);
|
||||
|
||||
deviceIds.forEach (deviceId->{
|
||||
double dev_data_rate=0.00;
|
||||
deviceIds.forEach(deviceId -> {
|
||||
double dev_data_rate = 0.00;
|
||||
/*获取终端下的监测点集合*/
|
||||
QueryWrapper<PmsMonitorPO> queryWrapper = new QueryWrapper<> ();
|
||||
String state = redisUtil.getStringByKey (NAME_KEY+
|
||||
SPLIT_SIGN+ DicDataTypeEnum.LINE_STATE.getCode ( )+
|
||||
SPLIT_SIGN+ DicDataEnum.RUN.getCode ( ));
|
||||
if(StringUtils.isEmpty (state)){
|
||||
throw new BusinessException (PqsPrepareExceptionEnum.REDIS_NULL_EXCEPTION);
|
||||
QueryWrapper<PmsMonitorPO> queryWrapper = new QueryWrapper<>();
|
||||
String state = redisUtil.getStringByKey(NAME_KEY +
|
||||
SPLIT_SIGN + DicDataTypeEnum.LINE_STATE.getCode() +
|
||||
SPLIT_SIGN + DicDataEnum.RUN.getCode());
|
||||
if (StringUtils.isEmpty(state)) {
|
||||
throw new BusinessException(PqsPrepareExceptionEnum.REDIS_NULL_EXCEPTION);
|
||||
}
|
||||
queryWrapper.lambda ().eq (PmsMonitorPO::getTerminalId, deviceId).
|
||||
eq (PmsMonitorPO::getMonitorState, state);
|
||||
List<PmsMonitorPO> list = pmsMonitorPOService.list (queryWrapper);
|
||||
List<String> mysqlIndexList = list.stream ( ).map (PmsMonitorPO::getId).collect (Collectors.toList ( ));
|
||||
queryWrapper.lambda().eq(PmsMonitorPO::getTerminalId, deviceId).
|
||||
eq(PmsMonitorPO::getMonitorState, state);
|
||||
List<PmsMonitorPO> list = pmsMonitorPOService.list(queryWrapper);
|
||||
List<String> mysqlIndexList = list.stream().map(PmsMonitorPO::getId).collect(Collectors.toList());
|
||||
/*获取检测点的月平均数据完整率*/
|
||||
List<MonitorDataIntegrityDTO> monitorDataIntegrityDTOList = rMpIntegrityDPOService.calculateMouthDataIntegrity (mysqlIndexList, dataDate);
|
||||
List<MonitorDataIntegrityDTO> monitorDataIntegrityDTOList = rMpIntegrityDPOService.calculateMouthDataIntegrity(mysqlIndexList, dataDate);
|
||||
/*求平均值*/
|
||||
if(!CollectionUtils.isEmpty (monitorDataIntegrityDTOList)){
|
||||
dev_data_rate = monitorDataIntegrityDTOList.stream ( ).mapToDouble (monitorDataIntegrityDTO -> {
|
||||
return monitorDataIntegrityDTO.getDataIntegrity ( ).doubleValue ( );
|
||||
}).average ( ).getAsDouble ( );
|
||||
if (!CollectionUtils.isEmpty(monitorDataIntegrityDTOList)) {
|
||||
dev_data_rate = monitorDataIntegrityDTOList.stream().mapToDouble(monitorDataIntegrityDTO -> {
|
||||
return monitorDataIntegrityDTO.getDataIntegrity().doubleValue();
|
||||
}).average().getAsDouble();
|
||||
}
|
||||
RMpDevEvaluateDetailPO rMpDevEvaluateDetailPO = new RMpDevEvaluateDetailPO();
|
||||
rMpDevEvaluateDetailPO.setDeviceId (deviceId);
|
||||
rMpDevEvaluateDetailPO.setDataDate (tempDate);
|
||||
rMpDevEvaluateDetailPO.setDevDataRate (dev_data_rate);
|
||||
rMpDevEvaluateDetailPOList.add (rMpDevEvaluateDetailPO);
|
||||
rMpDevEvaluateDetailPO.setDeviceId(deviceId);
|
||||
rMpDevEvaluateDetailPO.setDataDate(tempDate);
|
||||
rMpDevEvaluateDetailPO.setDevDataRate(dev_data_rate);
|
||||
rMpDevEvaluateDetailPOList.add(rMpDevEvaluateDetailPO);
|
||||
});
|
||||
rMpDevEvaluateDetailPOService.saveOrUpdateBatchByMultiId (rMpDevEvaluateDetailPOList,500);
|
||||
rMpDevEvaluateDetailPOService.saveOrUpdateBatchByMultiId(rMpDevEvaluateDetailPOList, 500);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -161,85 +158,84 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
|
||||
* @Date: 2022/11/25
|
||||
*/
|
||||
private void hanlderInfludxbData(PrimaryGridParam primaryGridParam) {
|
||||
Integer type = primaryGridParam.getType ( );
|
||||
Integer type = primaryGridParam.getType();
|
||||
/*月表,季表,年表都是重日表生成,不区分oralce,influxdb*/
|
||||
switch (type) {
|
||||
case 1:
|
||||
this.hanlderOracleYear (primaryGridParam);
|
||||
this.hanlderOracleYear(primaryGridParam);
|
||||
break;
|
||||
case 2:
|
||||
this.hanlderOracleQtr (primaryGridParam);
|
||||
this.hanlderOracleQtr(primaryGridParam);
|
||||
break;
|
||||
case 3:
|
||||
this.hanlderOracleMonth (primaryGridParam);
|
||||
this.hanlderOracleMonth(primaryGridParam);
|
||||
break;
|
||||
case 5:
|
||||
this.hanlderInfluxdbDay (primaryGridParam);
|
||||
this.hanlderInfluxdbDay(primaryGridParam);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
private void hanlderInfluxdbDay(PrimaryGridParam primaryGridParam) {
|
||||
List<String> orgIdList = primaryGridParam.getOrgIdList ( );
|
||||
String dataDate = primaryGridParam.getDataDate ( );
|
||||
List<ROperatingIndexDPO> rOperatingIndexDPOList = new ArrayList<> ( );
|
||||
List<String> orgIdList = primaryGridParam.getOrgIdList();
|
||||
String dataDate = primaryGridParam.getDataDate();
|
||||
List<ROperatingIndexDPO> rOperatingIndexDPOList = new ArrayList<>();
|
||||
|
||||
final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse(dataDate);
|
||||
|
||||
orgIdList.forEach (orgid -> {
|
||||
final Date tempDate = new SimpleDateFormat("yyyy-MM-dd").parse(dataDate);
|
||||
orgIdList.forEach(orgid -> {
|
||||
|
||||
/*measurement_run_points:在运监测点个数*/
|
||||
List<PmsMonitorPO> pmsMonitorPOS = pmsMonitorPOService.qurymeasurementRunPoints (orgid);
|
||||
Integer measurement_run_points = pmsMonitorPOS.size ( );
|
||||
|
||||
List<String> mysqlIndexList = pmsMonitorPOS.stream ( ).map (PmsMonitorPO::getId).collect (Collectors.toList ( ));
|
||||
|
||||
/*主网单位在线监测点数 transit_measurement_points*/
|
||||
Integer transit_measurement_points = dataVInfluxdbService.queryTransitMeasurementPoints(mysqlIndexList,primaryGridParam.getDataDate (),"A");
|
||||
|
||||
/*主网单位有效接入监测点个数 effective_access_measurement_count*/
|
||||
Integer effective_access_measurement_count = this.queryEffectiveAccessMeasurementCount(mysqlIndexList,primaryGridParam.getDataDate ());
|
||||
//获取终端信息,和包含的终端下监测点
|
||||
List<LineDevGetDTO> runTerminalAndLine = pmsTerminalPOService.getRunTerminalAndLine(orgid);
|
||||
//终端数量
|
||||
Integer online_measurement_points = runTerminalAndLine.size();
|
||||
/*在运监测终端个数 online_measurement_count*/
|
||||
Long online_measurement_count = runTerminalAndLine.stream().filter(x -> x.getComFlag() == 1).collect(Collectors.counting());
|
||||
|
||||
/*监测终端数量 online_measurement_points*/
|
||||
List<PmsTerminalPO> pmsTerminalPOS = pmsTerminalPOService.queryOnlineMeasurementPoints(orgid);
|
||||
Integer online_measurement_points = pmsTerminalPOS.size ();
|
||||
List<String> runMonitor = runTerminalAndLine.stream().flatMap(x -> x.getMonitorIds().stream()).collect(Collectors.toList());
|
||||
|
||||
/*在运监测终端个数 online_measurement_count*/
|
||||
String state = redisUtil.getStringByKey (NAME_KEY+
|
||||
SPLIT_SIGN+ DicDataTypeEnum.DEV_STATUS.getCode ( )+
|
||||
SPLIT_SIGN+ DicDataEnum.RUNNING.getCode ( ));
|
||||
Integer online_measurement_count = Integer.valueOf (pmsTerminalPOS.stream ( ).filter (temp -> Objects.equals (temp.getTerminalState ( ),state)).count ( )+"");
|
||||
// List<String> runMonitor = pmsMonitorPOService.getRunMonitor(orgid);
|
||||
Integer measurement_run_points = runMonitor.size();
|
||||
|
||||
|
||||
/*主网单位在线监测点数 transit_measurement_points*/
|
||||
Integer transit_measurement_points = dataVInfluxdbService.queryTransitMeasurementPoints(runMonitor, primaryGridParam.getDataDate(), "A");
|
||||
|
||||
/*主网单位有效接入监测点个数 effective_access_measurement_count*/
|
||||
Integer effective_access_measurement_count = this.queryEffectiveAccessMeasurementCount(runMonitor, primaryGridParam.getDataDate());
|
||||
// List<PmsTerminalPO> pmsTerminalPOS = pmsTerminalPOService.queryOnlineMeasurementPoints(orgid);
|
||||
|
||||
/*主网单位数据完整率 data_integrity_rate*/
|
||||
double data_integrity_rate=0.00;
|
||||
List<MonitorDataIntegrityDTO> monitorDataIntegrityDTOList = rMpIntegrityDPOService.calculateDataIntegrity (mysqlIndexList, dataDate);
|
||||
double data_integrity_rate = 0.00;
|
||||
List<MonitorDataIntegrityDTO> monitorDataIntegrityDTOList = rMpIntegrityDPOService.calculateDataIntegrity(runMonitor, dataDate);
|
||||
/*求平均值*/
|
||||
if(!CollectionUtils.isEmpty (monitorDataIntegrityDTOList)){
|
||||
data_integrity_rate = monitorDataIntegrityDTOList.stream ( ).mapToDouble (temp -> {
|
||||
return temp.getDataIntegrity ( ).doubleValue ( );
|
||||
}).average ( ).getAsDouble ( );
|
||||
if (!CollectionUtils.isEmpty(monitorDataIntegrityDTOList)) {
|
||||
data_integrity_rate = monitorDataIntegrityDTOList.stream().mapToDouble(temp -> {
|
||||
return temp.getDataIntegrity().doubleValue();
|
||||
}).average().getAsDouble();
|
||||
}
|
||||
|
||||
|
||||
/*主网单位数据异常监测点数日统计 is_unusual*/
|
||||
Integer is_unusual =this.queryIsUnusualCount(mysqlIndexList,primaryGridParam.getDataDate ());
|
||||
Integer is_unusual = this.queryIsUnusualCount(runMonitor, primaryGridParam.getDataDate());
|
||||
|
||||
ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO( );
|
||||
rOperatingIndexDPO.setOrgNo (orgid);
|
||||
rOperatingIndexDPO.setDataDate (tempDate);
|
||||
rOperatingIndexDPO.setMeasurementRunPoints (measurement_run_points);
|
||||
rOperatingIndexDPO.setTransitMeasurementPoints (transit_measurement_points);
|
||||
rOperatingIndexDPO.setEffectiveAccessMeasurementCount (effective_access_measurement_count);
|
||||
rOperatingIndexDPO.setOnlineMeasurementPoints (online_measurement_points);
|
||||
rOperatingIndexDPO.setOnlineMeasurementCount (online_measurement_count);
|
||||
rOperatingIndexDPO.setDataIntegrityRate (data_integrity_rate);
|
||||
rOperatingIndexDPO.setIsUnusual (is_unusual>0?1:0);
|
||||
rOperatingIndexDPOList.add (rOperatingIndexDPO);
|
||||
ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO();
|
||||
rOperatingIndexDPO.setOrgNo(orgid);
|
||||
rOperatingIndexDPO.setDataDate(tempDate);
|
||||
rOperatingIndexDPO.setMeasurementRunPoints(measurement_run_points);
|
||||
rOperatingIndexDPO.setTransitMeasurementPoints(transit_measurement_points);
|
||||
rOperatingIndexDPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count);
|
||||
rOperatingIndexDPO.setOnlineMeasurementPoints(online_measurement_points);
|
||||
rOperatingIndexDPO.setOnlineMeasurementCount(Math.toIntExact(online_measurement_count));
|
||||
rOperatingIndexDPO.setDataIntegrityRate(data_integrity_rate);
|
||||
rOperatingIndexDPO.setIsUnusual(is_unusual > 0 ? 1 : 0);
|
||||
rOperatingIndexDPOList.add(rOperatingIndexDPO);
|
||||
});
|
||||
if(!CollectionUtils.isEmpty (rOperatingIndexDPOList)){
|
||||
rOperatingIndexDPOService.saveOrUpdateBatchByMultiId (rOperatingIndexDPOList,30);
|
||||
if (!CollectionUtils.isEmpty(rOperatingIndexDPOList)) {
|
||||
rOperatingIndexDPOService.saveOrUpdateBatchByMultiId(rOperatingIndexDPOList, 30);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -252,19 +248,19 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
|
||||
* @Date: 2022/11/25
|
||||
*/
|
||||
private void hanlderOracleData(PrimaryGridParam primaryGridParam) {
|
||||
Integer type = primaryGridParam.getType ( );
|
||||
Integer type = primaryGridParam.getType();
|
||||
switch (type) {
|
||||
case 1:
|
||||
this.hanlderOracleYear (primaryGridParam);
|
||||
this.hanlderOracleYear(primaryGridParam);
|
||||
break;
|
||||
case 2:
|
||||
this.hanlderOracleQtr (primaryGridParam);
|
||||
this.hanlderOracleQtr(primaryGridParam);
|
||||
break;
|
||||
case 3:
|
||||
this.hanlderOracleMonth (primaryGridParam);
|
||||
this.hanlderOracleMonth(primaryGridParam);
|
||||
break;
|
||||
case 5:
|
||||
this.hanlderOracleDay (primaryGridParam);
|
||||
this.hanlderOracleDay(primaryGridParam);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -283,62 +279,62 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
|
||||
@SneakyThrows
|
||||
private void hanlderOracleMonth(PrimaryGridParam primaryGridParam) {
|
||||
|
||||
List<String> orgIdList = primaryGridParam.getOrgIdList ( );
|
||||
String dataDate = primaryGridParam.getDataDate ( );
|
||||
List<ROperatingIndexMPO> rOperatingIndexMPOList = new ArrayList<> ( );
|
||||
List<String> orgIdList = primaryGridParam.getOrgIdList();
|
||||
String beginTime = primaryGridParam.getBeginTime();
|
||||
String endTime = primaryGridParam.getEndTime();
|
||||
List<ROperatingIndexMPO> rOperatingIndexMPOList = new ArrayList<>();
|
||||
|
||||
final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse(dataDate);
|
||||
orgIdList.forEach (orgid -> {
|
||||
orgIdList.forEach(orgid -> {
|
||||
/*查询day表数据生成月表数据*/
|
||||
List<ROperatingIndexDPO> list = rOperatingIndexDPOService.queryOneMothData(orgid,dataDate);
|
||||
List<ROperatingIndexDPO> list = rOperatingIndexDPOService.queryOneMothData(orgid, beginTime,endTime);
|
||||
/*求平均值*/
|
||||
int measurement_run_points =(int) Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getMeasurementRunPoints ( )).
|
||||
average ( ).
|
||||
getAsDouble ( ));
|
||||
int transit_measurement_points =(int) Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getTransitMeasurementPoints ()).
|
||||
average ( ).
|
||||
getAsDouble ( ));
|
||||
int effective_access_measurement_count =(int) Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getEffectiveAccessMeasurementCount ()).
|
||||
average ( ).
|
||||
getAsDouble ( ));
|
||||
int online_measurement_points =(int) Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getOnlineMeasurementPoints ()).
|
||||
average ( ).
|
||||
getAsDouble ( ));
|
||||
int measurement_run_points = (int) Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getMeasurementRunPoints()).
|
||||
average().
|
||||
getAsDouble());
|
||||
int transit_measurement_points = (int) Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getTransitMeasurementPoints()).
|
||||
average().
|
||||
getAsDouble());
|
||||
int effective_access_measurement_count = (int) Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getEffectiveAccessMeasurementCount()).
|
||||
average().
|
||||
getAsDouble());
|
||||
int online_measurement_points = (int) Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getOnlineMeasurementPoints()).
|
||||
average().
|
||||
getAsDouble());
|
||||
|
||||
int online_measurement_count =(int) Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getOnlineMeasurementCount ()).
|
||||
average ( ).
|
||||
getAsDouble ( ));
|
||||
int online_measurement_count = (int) Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getOnlineMeasurementCount()).
|
||||
average().
|
||||
getAsDouble());
|
||||
/*double保留2位小数*/
|
||||
Double data_integrity_rate =Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getDataIntegrityRate ()).
|
||||
average ( ).
|
||||
getAsDouble ( )*100)*0.01;
|
||||
Double data_integrity_rate = Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getDataIntegrityRate()).
|
||||
average().
|
||||
getAsDouble() * 100) * 0.01;
|
||||
/*看day表is_unusual时候存在1存在返回1,数据否异常(0:正常 1:异常)*/
|
||||
Integer is_unusual =list.stream ().
|
||||
map (ROperatingIndexDPO::getIsUnusual).
|
||||
collect (Collectors.toList ())
|
||||
.contains (1)?1:0;
|
||||
Integer is_unusual = list.stream().
|
||||
map(ROperatingIndexDPO::getIsUnusual).
|
||||
collect(Collectors.toList())
|
||||
.contains(1) ? 1 : 0;
|
||||
|
||||
|
||||
ROperatingIndexMPO rOperatingIndexMPO = new ROperatingIndexMPO( );
|
||||
rOperatingIndexMPO.setOrgNo (orgid);
|
||||
rOperatingIndexMPO.setDataDate (tempDate);
|
||||
rOperatingIndexMPO.setMeasurementRunPoints (measurement_run_points);
|
||||
rOperatingIndexMPO.setTransitMeasurementPoints (transit_measurement_points);
|
||||
rOperatingIndexMPO.setEffectiveAccessMeasurementCount (effective_access_measurement_count);
|
||||
rOperatingIndexMPO.setOnlineMeasurementPoints (online_measurement_points);
|
||||
rOperatingIndexMPO.setOnlineMeasurementCount (online_measurement_count);
|
||||
rOperatingIndexMPO.setDataIntegrityRate (data_integrity_rate);
|
||||
rOperatingIndexMPO.setIsUnusual (is_unusual);
|
||||
rOperatingIndexMPOList.add (rOperatingIndexMPO);
|
||||
ROperatingIndexMPO rOperatingIndexMPO = new ROperatingIndexMPO();
|
||||
rOperatingIndexMPO.setOrgNo(orgid);
|
||||
rOperatingIndexMPO.setDataDate(DateUtil.parse(primaryGridParam.getDataDate()));
|
||||
rOperatingIndexMPO.setMeasurementRunPoints(measurement_run_points);
|
||||
rOperatingIndexMPO.setTransitMeasurementPoints(transit_measurement_points);
|
||||
rOperatingIndexMPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count);
|
||||
rOperatingIndexMPO.setOnlineMeasurementPoints(online_measurement_points);
|
||||
rOperatingIndexMPO.setOnlineMeasurementCount(online_measurement_count);
|
||||
rOperatingIndexMPO.setDataIntegrityRate(data_integrity_rate);
|
||||
rOperatingIndexMPO.setIsUnusual(is_unusual);
|
||||
rOperatingIndexMPOList.add(rOperatingIndexMPO);
|
||||
});
|
||||
if(!CollectionUtils.isEmpty (rOperatingIndexMPOList)){
|
||||
rOperatingIndexMPOService.saveOrUpdateBatchByMultiId (rOperatingIndexMPOList,30);
|
||||
if (!CollectionUtils.isEmpty(rOperatingIndexMPOList)) {
|
||||
rOperatingIndexMPOService.saveOrUpdateBatchByMultiId(rOperatingIndexMPOList, 30);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -351,136 +347,133 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
|
||||
*/
|
||||
@SneakyThrows
|
||||
private void hanlderOracleDay(PrimaryGridParam primaryGridParam) {
|
||||
List<String> orgIdList = primaryGridParam.getOrgIdList ( );
|
||||
String dataDate = primaryGridParam.getDataDate ( );
|
||||
List<ROperatingIndexDPO> rOperatingIndexDPOList = new ArrayList<> ( );
|
||||
List<String> orgIdList = primaryGridParam.getOrgIdList();
|
||||
String dataDate = primaryGridParam.getDataDate();
|
||||
List<ROperatingIndexDPO> rOperatingIndexDPOList = new ArrayList<>();
|
||||
|
||||
final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse(dataDate);
|
||||
final Date tempDate = new SimpleDateFormat("yyyy-MM-dd").parse(dataDate);
|
||||
|
||||
orgIdList.forEach (orgid -> {
|
||||
orgIdList.forEach(orgid -> {
|
||||
|
||||
/*measurement_run_points:在运监测点个数*/
|
||||
List<PmsMonitorPO> pmsMonitorPOS = pmsMonitorPOService.qurymeasurementRunPoints (orgid);
|
||||
Integer measurement_run_points = pmsMonitorPOS.size ( );
|
||||
List<PmsMonitorPO> pmsMonitorPOS = pmsMonitorPOService.qurymeasurementRunPoints(orgid);
|
||||
Integer measurement_run_points = pmsMonitorPOS.size();
|
||||
/*获取mysql与Oracle监测点id对应关系*/
|
||||
List<String> mysqlIndexList = pmsMonitorPOS.stream ( ).map (PmsMonitorPO::getId).collect (Collectors.toList ( ));
|
||||
List<String> mysqlIndexList = pmsMonitorPOS.stream().map(PmsMonitorPO::getId).collect(Collectors.toList());
|
||||
|
||||
List<PqLinedetailPO> pqLinedetailPOS = pqLinedetailPOService.queryOracleIndexIdByMysqlIndexId (mysqlIndexList);
|
||||
List<Integer> oracleIndexlist = pqLinedetailPOS.stream ( ).map (PqLinedetailPO::getLineIndex).collect (Collectors.toList ( ));
|
||||
List<PqLinedetailPO> pqLinedetailPOS = pqLinedetailPOService.queryOracleIndexIdByMysqlIndexId(mysqlIndexList);
|
||||
List<Integer> oracleIndexlist = pqLinedetailPOS.stream().map(PqLinedetailPO::getLineIndex).collect(Collectors.toList());
|
||||
|
||||
/*主网单位在线监测点数 transit_measurement_points*/
|
||||
Integer transit_measurement_points = dataVOraclePOService.queryTransitMeasurementPoints(oracleIndexlist,primaryGridParam.getDataDate ());
|
||||
Integer transit_measurement_points = dataVOraclePOService.queryTransitMeasurementPoints(oracleIndexlist, primaryGridParam.getDataDate());
|
||||
|
||||
/*主网单位有效接入监测点个数 effective_access_measurement_count*/
|
||||
Integer effective_access_measurement_count = this.queryEffectiveAccessMeasurementCount(mysqlIndexList,primaryGridParam.getDataDate ());
|
||||
Integer effective_access_measurement_count = this.queryEffectiveAccessMeasurementCount(mysqlIndexList, primaryGridParam.getDataDate());
|
||||
|
||||
/*监测终端数量 online_measurement_points*/
|
||||
List<PmsTerminalPO> pmsTerminalPOS = pmsTerminalPOService.queryOnlineMeasurementPoints(orgid);
|
||||
Integer online_measurement_points = pmsTerminalPOS.size ();
|
||||
List<PmsTerminalPO> pmsTerminalPOS = pmsTerminalPOService.queryOnlineMeasurementPoints(orgid);
|
||||
Integer online_measurement_points = pmsTerminalPOS.size();
|
||||
|
||||
/*在运监测终端个数 online_measurement_count*/
|
||||
String state = redisUtil.getStringByKey (NAME_KEY+
|
||||
SPLIT_SIGN+ DicDataTypeEnum.DEV_STATUS.getCode ( )+
|
||||
SPLIT_SIGN+ DicDataEnum.RUNNING.getCode ( ));
|
||||
Integer online_measurement_count = Integer.valueOf (pmsTerminalPOS.stream ( ).filter (temp -> Objects.equals (temp.getTerminalState ( ),state)).count ( )+"");
|
||||
String state = redisUtil.getStringByKey(NAME_KEY +
|
||||
SPLIT_SIGN + DicDataTypeEnum.DEV_STATUS.getCode() +
|
||||
SPLIT_SIGN + DicDataEnum.RUNNING.getCode());
|
||||
Integer online_measurement_count = Integer.valueOf(pmsTerminalPOS.stream().filter(temp -> Objects.equals(temp.getTerminalState(), state)).count() + "");
|
||||
|
||||
/*主网单位数据完整率 data_integrity_rate*/
|
||||
double data_integrity_rate=0.00;
|
||||
List<MonitorDataIntegrityDTO> monitorDataIntegrityDTOList = rMpIntegrityDPOService.calculateDataIntegrity (mysqlIndexList, dataDate);
|
||||
double data_integrity_rate = 0.00;
|
||||
List<MonitorDataIntegrityDTO> monitorDataIntegrityDTOList = rMpIntegrityDPOService.calculateDataIntegrity(mysqlIndexList, dataDate);
|
||||
/*求平均值*/
|
||||
if(!CollectionUtils.isEmpty (monitorDataIntegrityDTOList)){
|
||||
data_integrity_rate = monitorDataIntegrityDTOList.stream ( ).mapToDouble (temp -> {
|
||||
return temp.getDataIntegrity ( ).doubleValue ( );
|
||||
}).average ( ).getAsDouble ( );
|
||||
if (!CollectionUtils.isEmpty(monitorDataIntegrityDTOList)) {
|
||||
data_integrity_rate = monitorDataIntegrityDTOList.stream().mapToDouble(temp -> {
|
||||
return temp.getDataIntegrity().doubleValue();
|
||||
}).average().getAsDouble();
|
||||
}
|
||||
|
||||
|
||||
/*主网单位数据异常监测点数日统计 is_unusual*/
|
||||
Integer is_unusual =this.queryIsUnusualCount(mysqlIndexList,primaryGridParam.getDataDate ());
|
||||
Integer is_unusual = this.queryIsUnusualCount(mysqlIndexList, primaryGridParam.getDataDate());
|
||||
|
||||
ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO( );
|
||||
rOperatingIndexDPO.setOrgNo (orgid);
|
||||
rOperatingIndexDPO.setDataDate (tempDate);
|
||||
rOperatingIndexDPO.setMeasurementRunPoints (measurement_run_points);
|
||||
rOperatingIndexDPO.setTransitMeasurementPoints (transit_measurement_points);
|
||||
rOperatingIndexDPO.setEffectiveAccessMeasurementCount (effective_access_measurement_count);
|
||||
rOperatingIndexDPO.setOnlineMeasurementPoints (online_measurement_points);
|
||||
rOperatingIndexDPO.setOnlineMeasurementCount (online_measurement_count);
|
||||
rOperatingIndexDPO.setDataIntegrityRate (data_integrity_rate);
|
||||
rOperatingIndexDPO.setIsUnusual (is_unusual>0?1:0);
|
||||
rOperatingIndexDPOList.add (rOperatingIndexDPO);
|
||||
ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO();
|
||||
rOperatingIndexDPO.setOrgNo(orgid);
|
||||
rOperatingIndexDPO.setDataDate(tempDate);
|
||||
rOperatingIndexDPO.setMeasurementRunPoints(measurement_run_points);
|
||||
rOperatingIndexDPO.setTransitMeasurementPoints(transit_measurement_points);
|
||||
rOperatingIndexDPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count);
|
||||
rOperatingIndexDPO.setOnlineMeasurementPoints(online_measurement_points);
|
||||
rOperatingIndexDPO.setOnlineMeasurementCount(online_measurement_count);
|
||||
rOperatingIndexDPO.setDataIntegrityRate(data_integrity_rate);
|
||||
rOperatingIndexDPO.setIsUnusual(is_unusual > 0 ? 1 : 0);
|
||||
rOperatingIndexDPOList.add(rOperatingIndexDPO);
|
||||
});
|
||||
if(!CollectionUtils.isEmpty (rOperatingIndexDPOList)){
|
||||
rOperatingIndexDPOService.saveOrUpdateBatchByMultiId (rOperatingIndexDPOList,30);
|
||||
if (!CollectionUtils.isEmpty(rOperatingIndexDPOList)) {
|
||||
rOperatingIndexDPOService.saveOrUpdateBatchByMultiId(rOperatingIndexDPOList, 30);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @Description: queryIsUnusualCount :用监测点id在r_stat_abnormal_d表中查找value_alarm为0的监测点个数
|
||||
* @Param: [mysqlIndexList, dataDate]
|
||||
* @return: java.lang.Integer
|
||||
* @Author: clam
|
||||
* @Date: 2022/11/28
|
||||
*/
|
||||
* @Param: [mysqlIndexList, dataDate]
|
||||
* @return: java.lang.Integer
|
||||
* @Author: clam
|
||||
* @Date: 2022/11/28
|
||||
*/
|
||||
private Integer queryIsUnusualCount(List<String> mysqlIndexList, String dataDate) {
|
||||
|
||||
if(CollectionUtils.isEmpty (mysqlIndexList)){
|
||||
if (CollectionUtils.isEmpty(mysqlIndexList)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
QueryWrapper<RStatAbnormalDPO> rStatAbnormalDPOLambdaQueryWrapper = new QueryWrapper ( );
|
||||
QueryWrapper<RStatAbnormalDPO> rStatAbnormalDPOLambdaQueryWrapper = new QueryWrapper();
|
||||
rStatAbnormalDPOLambdaQueryWrapper.
|
||||
in ("measurement_point_id",mysqlIndexList).
|
||||
eq ("value_alarm", 0).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate);
|
||||
Integer integer = rStatAbnormalDPOMapper.selectCount (rStatAbnormalDPOLambdaQueryWrapper);
|
||||
in("measurement_point_id", mysqlIndexList).
|
||||
eq("value_alarm", 0).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", dataDate);
|
||||
Integer integer = rStatAbnormalDPOMapper.selectCount(rStatAbnormalDPOLambdaQueryWrapper);
|
||||
|
||||
return integer;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 主网单位有效接入监测点个数
|
||||
* 1.获取pms_monitor表中监测点状态为投运的监测点id列表
|
||||
* 2.根据id查询r_mp_integrity_d表中当天各项指标个数,采用以下公式计算数据完整率
|
||||
* @Description: 主网单位有效接入监测点个数
|
||||
* 1.获取pms_monitor表中监测点状态为投运的监测点id列表
|
||||
* 2.根据id查询r_mp_integrity_d表中当天各项指标个数,采用以下公式计算数据完整率
|
||||
* 3.〖数据完整率〗_日统计=(频率+相电压+线电压+畸变率+不平衡度)/(有效值数据个数*5)*100%
|
||||
* 判定监测点数据完整率是否大于95%
|
||||
* 4、根据id查询r_stat_abnormal_d表,value_alarm为1。
|
||||
* 判定监测点数据完整率是否大于95%
|
||||
* 4、根据id查询r_stat_abnormal_d表,value_alarm为1。
|
||||
* 5、以上两个条件满足表明该监测点为有效监测点。
|
||||
* 6、统计有效监测点个数
|
||||
* @Param: [indexlist, dataDate]
|
||||
* @return: java.lang.String
|
||||
* @Author: clam
|
||||
* @Date: 2022/11/25
|
||||
*/
|
||||
* @Param: [indexlist, dataDate]
|
||||
* @return: java.lang.String
|
||||
* @Author: clam
|
||||
* @Date: 2022/11/25
|
||||
*/
|
||||
private Integer queryEffectiveAccessMeasurementCount(List<String> indexlist, String dataDate) {
|
||||
|
||||
/*获取监测点的数据完整性*/
|
||||
List<MonitorDataIntegrityDTO> monitorDataIntegrityDTOList = rMpIntegrityDPOService.calculateDataIntegrity (indexlist, dataDate);
|
||||
List<MonitorDataIntegrityDTO> monitorDataIntegrityDTOList = rMpIntegrityDPOService.calculateDataIntegrity(indexlist, dataDate);
|
||||
/*获取完整率>0.95的监测点id*/
|
||||
List<String> collect = monitorDataIntegrityDTOList.stream ( ).
|
||||
filter (temp -> temp.getDataIntegrity ().compareTo (new BigDecimal (0.95)) == 1
|
||||
).map (MonitorDataIntegrityDTO::getId).collect (Collectors.toList ( ));
|
||||
List<String> collect = monitorDataIntegrityDTOList.stream().
|
||||
filter(temp -> temp.getDataIntegrity().compareTo(new BigDecimal(0.95)) == 1
|
||||
).map(MonitorDataIntegrityDTO::getId).collect(Collectors.toList());
|
||||
/*获取完整率>0.95条件下value_alarm为1的监测点id*/
|
||||
if(CollectionUtils.isEmpty (collect)){
|
||||
if (CollectionUtils.isEmpty(collect)) {
|
||||
return 0;
|
||||
}
|
||||
QueryWrapper<RStatAbnormalDPO> rStatAbnormalDPOLambdaQueryWrapper = new QueryWrapper ( );
|
||||
rStatAbnormalDPOLambdaQueryWrapper.select ("measurement_point_id").
|
||||
in ("measurement_point_id",collect).
|
||||
eq ("value_alarm", 1).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate);
|
||||
List<RStatAbnormalDPO> rStatAbnormalDPOS = rStatAbnormalDPOMapper.selectList (rStatAbnormalDPOLambdaQueryWrapper);
|
||||
QueryWrapper<RStatAbnormalDPO> rStatAbnormalDPOLambdaQueryWrapper = new QueryWrapper();
|
||||
rStatAbnormalDPOLambdaQueryWrapper.select("measurement_point_id").
|
||||
in("measurement_point_id", collect).
|
||||
eq("value_alarm", 1).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", dataDate);
|
||||
List<RStatAbnormalDPO> rStatAbnormalDPOS = rStatAbnormalDPOMapper.selectList(rStatAbnormalDPOLambdaQueryWrapper);
|
||||
|
||||
return rStatAbnormalDPOS.size ();
|
||||
return rStatAbnormalDPOS.size();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @Description: hanlderOracleQtr
|
||||
* @Param: [primaryGridParam]
|
||||
@@ -491,62 +484,62 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
|
||||
@SneakyThrows
|
||||
private void hanlderOracleQtr(PrimaryGridParam primaryGridParam) {
|
||||
|
||||
List<String> orgIdList = primaryGridParam.getOrgIdList ( );
|
||||
String dataDate = primaryGridParam.getDataDate ( );
|
||||
List<ROperatingIndexQPO> rOperatingIndexQPOList = new ArrayList<> ( );
|
||||
List<String> orgIdList = primaryGridParam.getOrgIdList();
|
||||
String beginTime = primaryGridParam.getBeginTime();
|
||||
String endTime = primaryGridParam.getEndTime();
|
||||
List<ROperatingIndexQPO> rOperatingIndexQPOList = new ArrayList<>();
|
||||
|
||||
final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse(dataDate);
|
||||
orgIdList.forEach (orgid -> {
|
||||
orgIdList.forEach(orgid -> {
|
||||
/*查询Mouth表数据生成季表数据*/
|
||||
List<ROperatingIndexMPO> list = rOperatingIndexMPOService.queryOneQtrData(orgid,dataDate);
|
||||
List<ROperatingIndexMPO> list = rOperatingIndexMPOService.queryOneQtrData(orgid, beginTime,endTime);
|
||||
/*求平均值*/
|
||||
int measurement_run_points =(int) Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getMeasurementRunPoints ( )).
|
||||
average ( ).
|
||||
getAsDouble ( ));
|
||||
int transit_measurement_points =(int) Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getTransitMeasurementPoints ()).
|
||||
average ( ).
|
||||
getAsDouble ( ));
|
||||
int effective_access_measurement_count =(int) Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getEffectiveAccessMeasurementCount ()).
|
||||
average ( ).
|
||||
getAsDouble ( ));
|
||||
int online_measurement_points =(int) Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getOnlineMeasurementPoints ()).
|
||||
average ( ).
|
||||
getAsDouble ( ));
|
||||
int measurement_run_points = (int) Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getMeasurementRunPoints()).
|
||||
average().
|
||||
getAsDouble());
|
||||
int transit_measurement_points = (int) Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getTransitMeasurementPoints()).
|
||||
average().
|
||||
getAsDouble());
|
||||
int effective_access_measurement_count = (int) Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getEffectiveAccessMeasurementCount()).
|
||||
average().
|
||||
getAsDouble());
|
||||
int online_measurement_points = (int) Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getOnlineMeasurementPoints()).
|
||||
average().
|
||||
getAsDouble());
|
||||
|
||||
int online_measurement_count =(int) Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getOnlineMeasurementCount ()).
|
||||
average ( ).
|
||||
getAsDouble ( ));
|
||||
int online_measurement_count = (int) Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getOnlineMeasurementCount()).
|
||||
average().
|
||||
getAsDouble());
|
||||
/*double保留2位小数*/
|
||||
Double data_integrity_rate =Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getDataIntegrityRate ()).
|
||||
average ( ).
|
||||
getAsDouble ( )*100)*0.01;
|
||||
Double data_integrity_rate = Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getDataIntegrityRate()).
|
||||
average().
|
||||
getAsDouble() * 100) * 0.01;
|
||||
/*看day表is_unusual时候存在1存在返回1,数据否异常(0:正常 1:异常)*/
|
||||
Integer is_unusual =list.stream ().
|
||||
map (ROperatingIndexMPO::getIsUnusual).
|
||||
collect (Collectors.toList ())
|
||||
.contains (1)?1:0;
|
||||
Integer is_unusual = list.stream().
|
||||
map(ROperatingIndexMPO::getIsUnusual).
|
||||
collect(Collectors.toList())
|
||||
.contains(1) ? 1 : 0;
|
||||
|
||||
|
||||
ROperatingIndexQPO rOperatingIndexQPO = new ROperatingIndexQPO( );
|
||||
rOperatingIndexQPO.setOrgNo (orgid);
|
||||
rOperatingIndexQPO.setDataDate (tempDate);
|
||||
rOperatingIndexQPO.setMeasurementRunPoints (measurement_run_points);
|
||||
rOperatingIndexQPO.setTransitMeasurementPoints (transit_measurement_points);
|
||||
rOperatingIndexQPO.setEffectiveAccessMeasurementCount (effective_access_measurement_count);
|
||||
rOperatingIndexQPO.setOnlineMeasurementPoints (online_measurement_points);
|
||||
rOperatingIndexQPO.setOnlineMeasurementCount (online_measurement_count);
|
||||
rOperatingIndexQPO.setDataIntegrityRate (data_integrity_rate);
|
||||
rOperatingIndexQPO.setIsUnusual (is_unusual);
|
||||
rOperatingIndexQPOList.add (rOperatingIndexQPO);
|
||||
ROperatingIndexQPO rOperatingIndexQPO = new ROperatingIndexQPO();
|
||||
rOperatingIndexQPO.setOrgNo(orgid);
|
||||
rOperatingIndexQPO.setDataDate(DateUtil.parse(primaryGridParam.getDataDate()));
|
||||
rOperatingIndexQPO.setMeasurementRunPoints(measurement_run_points);
|
||||
rOperatingIndexQPO.setTransitMeasurementPoints(transit_measurement_points);
|
||||
rOperatingIndexQPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count);
|
||||
rOperatingIndexQPO.setOnlineMeasurementPoints(online_measurement_points);
|
||||
rOperatingIndexQPO.setOnlineMeasurementCount(online_measurement_count);
|
||||
rOperatingIndexQPO.setDataIntegrityRate(data_integrity_rate);
|
||||
rOperatingIndexQPO.setIsUnusual(is_unusual);
|
||||
rOperatingIndexQPOList.add(rOperatingIndexQPO);
|
||||
});
|
||||
if(!CollectionUtils.isEmpty (rOperatingIndexQPOList)){
|
||||
rOperatingIndexQPOService.saveOrUpdateBatchByMultiId (rOperatingIndexQPOList,30);
|
||||
if (!CollectionUtils.isEmpty(rOperatingIndexQPOList)) {
|
||||
rOperatingIndexQPOService.saveOrUpdateBatchByMultiId(rOperatingIndexQPOList, 30);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -560,62 +553,62 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
|
||||
@SneakyThrows
|
||||
private void hanlderOracleYear(PrimaryGridParam primaryGridParam) {
|
||||
|
||||
List<String> orgIdList = primaryGridParam.getOrgIdList ( );
|
||||
String dataDate = primaryGridParam.getDataDate ( );
|
||||
List<ROperatingIndexYPO> rOperatingIndexYPOList = new ArrayList<> ( );
|
||||
List<String> orgIdList = primaryGridParam.getOrgIdList();
|
||||
String beginTime = primaryGridParam.getBeginTime();
|
||||
String endTime = primaryGridParam.getEndTime();
|
||||
List<ROperatingIndexYPO> rOperatingIndexYPOList = new ArrayList<>();
|
||||
|
||||
final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse(dataDate);
|
||||
orgIdList.forEach (orgid -> {
|
||||
orgIdList.forEach(orgid -> {
|
||||
/*查询Mouth表数据生成年表数据*/
|
||||
List<ROperatingIndexMPO> list = rOperatingIndexMPOService.queryOneYearData(orgid,dataDate);
|
||||
List<ROperatingIndexMPO> list = rOperatingIndexMPOService.queryOneYearData(orgid, beginTime,endTime);
|
||||
/*求平均值*/
|
||||
int measurement_run_points =(int) Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getMeasurementRunPoints ( )).
|
||||
average ( ).
|
||||
getAsDouble ( ));
|
||||
int transit_measurement_points =(int) Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getTransitMeasurementPoints ()).
|
||||
average ( ).
|
||||
getAsDouble ( ));
|
||||
int effective_access_measurement_count =(int) Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getEffectiveAccessMeasurementCount ()).
|
||||
average ( ).
|
||||
getAsDouble ( ));
|
||||
int online_measurement_points =(int) Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getOnlineMeasurementPoints ()).
|
||||
average ( ).
|
||||
getAsDouble ( ));
|
||||
int measurement_run_points = (int) Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getMeasurementRunPoints()).
|
||||
average().
|
||||
getAsDouble());
|
||||
int transit_measurement_points = (int) Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getTransitMeasurementPoints()).
|
||||
average().
|
||||
getAsDouble());
|
||||
int effective_access_measurement_count = (int) Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getEffectiveAccessMeasurementCount()).
|
||||
average().
|
||||
getAsDouble());
|
||||
int online_measurement_points = (int) Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getOnlineMeasurementPoints()).
|
||||
average().
|
||||
getAsDouble());
|
||||
|
||||
int online_measurement_count =(int) Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getOnlineMeasurementCount ()).
|
||||
average ( ).
|
||||
getAsDouble ( ));
|
||||
int online_measurement_count = (int) Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getOnlineMeasurementCount()).
|
||||
average().
|
||||
getAsDouble());
|
||||
/*double保留2位小数*/
|
||||
Double data_integrity_rate =Math.round (list.stream ( ).
|
||||
mapToDouble (temp -> temp.getDataIntegrityRate ()).
|
||||
average ( ).
|
||||
getAsDouble ( )*100)*0.01;
|
||||
Double data_integrity_rate = Math.round(list.stream().
|
||||
mapToDouble(temp -> temp.getDataIntegrityRate()).
|
||||
average().
|
||||
getAsDouble() * 100) * 0.01;
|
||||
/*看day表is_unusual时候存在1存在返回1,数据否异常(0:正常 1:异常)*/
|
||||
Integer is_unusual =list.stream ().
|
||||
map (ROperatingIndexMPO::getIsUnusual).
|
||||
collect (Collectors.toList ())
|
||||
.contains (1)?1:0;
|
||||
Integer is_unusual = list.stream().
|
||||
map(ROperatingIndexMPO::getIsUnusual).
|
||||
collect(Collectors.toList())
|
||||
.contains(1) ? 1 : 0;
|
||||
|
||||
|
||||
ROperatingIndexYPO rOperatingIndexYPO = new ROperatingIndexYPO( );
|
||||
rOperatingIndexYPO.setOrgNo (orgid);
|
||||
rOperatingIndexYPO.setDataDate (tempDate);
|
||||
rOperatingIndexYPO.setMeasurementRunPoints (measurement_run_points);
|
||||
rOperatingIndexYPO.setTransitMeasurementPoints (transit_measurement_points);
|
||||
rOperatingIndexYPO.setEffectiveAccessMeasurementCount (effective_access_measurement_count);
|
||||
rOperatingIndexYPO.setOnlineMeasurementPoints (online_measurement_points);
|
||||
rOperatingIndexYPO.setOnlineMeasurementCount (online_measurement_count);
|
||||
rOperatingIndexYPO.setDataIntegrityRate (data_integrity_rate);
|
||||
rOperatingIndexYPO.setIsUnusual (is_unusual);
|
||||
rOperatingIndexYPOList.add (rOperatingIndexYPO);
|
||||
ROperatingIndexYPO rOperatingIndexYPO = new ROperatingIndexYPO();
|
||||
rOperatingIndexYPO.setOrgNo(orgid);
|
||||
rOperatingIndexYPO.setDataDate(DateUtil.parse(primaryGridParam.getDataDate()));
|
||||
rOperatingIndexYPO.setMeasurementRunPoints(measurement_run_points);
|
||||
rOperatingIndexYPO.setTransitMeasurementPoints(transit_measurement_points);
|
||||
rOperatingIndexYPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count);
|
||||
rOperatingIndexYPO.setOnlineMeasurementPoints(online_measurement_points);
|
||||
rOperatingIndexYPO.setOnlineMeasurementCount(online_measurement_count);
|
||||
rOperatingIndexYPO.setDataIntegrityRate(data_integrity_rate);
|
||||
rOperatingIndexYPO.setIsUnusual(is_unusual);
|
||||
rOperatingIndexYPOList.add(rOperatingIndexYPO);
|
||||
});
|
||||
if(!CollectionUtils.isEmpty (rOperatingIndexYPOList)){
|
||||
rOperatingIndexYPOService.saveOrUpdateBatchByMultiId (rOperatingIndexYPOList,30);
|
||||
if (!CollectionUtils.isEmpty(rOperatingIndexYPOList)) {
|
||||
rOperatingIndexYPOService.saveOrUpdateBatchByMultiId(rOperatingIndexYPOList, 30);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -35,12 +35,13 @@ public class ROperatingIndexDPOServiceImpl extends MppServiceImpl<ROperatingInde
|
||||
* @Date: 2022/11/30
|
||||
*/
|
||||
@Override
|
||||
public List<ROperatingIndexDPO> queryOneMothData(String orgid, String dataDate) {
|
||||
public List<ROperatingIndexDPO> queryOneMothData(String orgid,String beginTime, String endTime) {
|
||||
|
||||
|
||||
QueryWrapper<ROperatingIndexDPO> queryWrapper = new QueryWrapper<> ();
|
||||
queryWrapper.eq ("org_no", orgid).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring (0, 7));
|
||||
queryWrapper.eq ("org_no", orgid)
|
||||
.ge("data_date",beginTime)
|
||||
.le("data_date",endTime);
|
||||
List<ROperatingIndexDPO> list = rOperatingIndexDPOMapper.selectList (queryWrapper);
|
||||
|
||||
|
||||
|
||||
@@ -27,7 +27,8 @@ public class ROperatingIndexMPOServiceImpl extends MppServiceImpl<ROperatingInde
|
||||
ROperatingIndexMPOMapper rOperatingIndexMPOMapper;
|
||||
/**
|
||||
* @param orgid
|
||||
* @param dataDate
|
||||
* @param beginTime
|
||||
* @param endTime
|
||||
* @Description: queryOneQtrData 查询一季度Mouth表数据
|
||||
* @Param: [orgid, dataDate]
|
||||
* @return: java.util.List<com.njcn.prepare.harmonic.pojo.mysql.po.ROperatingIndexMPO>
|
||||
@@ -35,11 +36,12 @@ public class ROperatingIndexMPOServiceImpl extends MppServiceImpl<ROperatingInde
|
||||
* @Date: 2022/11/30
|
||||
*/
|
||||
@Override
|
||||
public List<ROperatingIndexMPO> queryOneQtrData(String orgid, String dataDate) {
|
||||
public List<ROperatingIndexMPO> queryOneQtrData(String orgid,String beginTime, String endTime) {
|
||||
|
||||
QueryWrapper<ROperatingIndexMPO> queryWrapper = new QueryWrapper<> ();
|
||||
queryWrapper.eq ("org_no", orgid).
|
||||
eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate));
|
||||
queryWrapper.eq ("org_no", orgid)
|
||||
.ge("data_date",beginTime)
|
||||
.le("data_date",endTime);
|
||||
List<ROperatingIndexMPO> list = rOperatingIndexMPOMapper.selectList (queryWrapper);
|
||||
|
||||
|
||||
@@ -49,7 +51,8 @@ public class ROperatingIndexMPOServiceImpl extends MppServiceImpl<ROperatingInde
|
||||
|
||||
/**
|
||||
* @param orgid
|
||||
* @param dataDate
|
||||
* @param beginTime
|
||||
* @param endTime
|
||||
* @Description: queryOneYearData 查询一年Mouth表数据
|
||||
* @Param: [orgid, dataDate]
|
||||
* @return: java.util.List<com.njcn.prepare.harmonic.pojo.mysql.po.ROperatingIndexMPO>
|
||||
@@ -57,10 +60,11 @@ public class ROperatingIndexMPOServiceImpl extends MppServiceImpl<ROperatingInde
|
||||
* @Date: 2022/11/30
|
||||
*/
|
||||
@Override
|
||||
public List<ROperatingIndexMPO> queryOneYearData(String orgid, String dataDate) {
|
||||
public List<ROperatingIndexMPO> queryOneYearData(String orgid,String beginTime, String endTime) {
|
||||
QueryWrapper<ROperatingIndexMPO> queryWrapper = new QueryWrapper<> ();
|
||||
queryWrapper.eq ("org_no", orgid).
|
||||
eq("YEAR( data_date )",dataDate.substring (0, 4));
|
||||
ge("data_date",beginTime)
|
||||
.le("data_date",endTime);
|
||||
List<ROperatingIndexMPO> list = rOperatingIndexMPOMapper.selectList (queryWrapper);
|
||||
|
||||
return list;
|
||||
|
||||
@@ -6,7 +6,6 @@ import com.njcn.harmonic.pojo.po.PmsMonitorPO;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2022/11/29 15:32【需求编号】
|
||||
@@ -14,14 +13,15 @@ import java.util.List;
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface PmsMonitorPOService extends IService<PmsMonitorPO>{
|
||||
public interface PmsMonitorPOService extends IService<PmsMonitorPO> {
|
||||
|
||||
/**
|
||||
* @Description: 在运监测点集合
|
||||
* @Param: [orgid]
|
||||
* @return: java.lang.Integer
|
||||
* @Author: clam
|
||||
* @Date: 2022/11/25
|
||||
*/
|
||||
List<PmsMonitorPO> qurymeasurementRunPoints(String orgid);
|
||||
|
||||
/**
|
||||
* @Description: 在运监测点集合
|
||||
* @Param: [orgid]
|
||||
* @return: java.lang.Integer
|
||||
* @Author: clam
|
||||
* @Date: 2022/11/25
|
||||
*/
|
||||
public List<PmsMonitorPO> qurymeasurementRunPoints(String orgid);
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.area;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||
import com.njcn.harmonic.pojo.po.PmsTerminalPO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2022/11/29 15:53【需求编号】
|
||||
@@ -14,7 +14,15 @@ import java.util.List;
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface PmsTerminalPOService extends IService<PmsTerminalPO>{
|
||||
public interface PmsTerminalPOService extends IService<PmsTerminalPO> {
|
||||
|
||||
List<PmsTerminalPO> queryOnlineMeasurementPoints(String orgid);
|
||||
List<PmsTerminalPO> queryOnlineMeasurementPoints(String orgid);
|
||||
|
||||
/**
|
||||
* @Description: 获取终端信息
|
||||
* @param orgId
|
||||
* @Author: wr
|
||||
* @Date: 2023/9/25 10:44
|
||||
*/
|
||||
List<LineDevGetDTO> getRunTerminalAndLine(String orgId);
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import com.njcn.prepare.harmonic.pojo.dto.MonitorDataIntegrityDTO;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2022/11/29 15:38【需求编号】
|
||||
@@ -15,10 +14,10 @@ import java.util.List;
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface RMpIntegrityDPOService extends IService<RMpIntegrityDPO>{
|
||||
public interface RMpIntegrityDPOService extends IService<RMpIntegrityDPO> {
|
||||
|
||||
|
||||
List<MonitorDataIntegrityDTO> calculateDataIntegrity(List<String> indexlist, String dataDate);
|
||||
List<MonitorDataIntegrityDTO> calculateDataIntegrity(List<String> indexlist, String dataDate);
|
||||
|
||||
List<MonitorDataIntegrityDTO> calculateMouthDataIntegrity(List<String> mysqlIndexList, String dataDate);
|
||||
}
|
||||
|
||||
@@ -23,5 +23,5 @@ public interface ROperatingIndexDPOService extends IMppService<ROperatingIndexDP
|
||||
* @Author: clam
|
||||
* @Date: 2022/11/30
|
||||
*/
|
||||
List<ROperatingIndexDPO> queryOneMothData(String orgid, String dataDate);
|
||||
List<ROperatingIndexDPO> queryOneMothData(String orgid,String beginTime, String endTime);
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ public interface ROperatingIndexMPOService extends IMppService<ROperatingIndexMP
|
||||
* @Author: clam
|
||||
* @Date: 2022/11/30
|
||||
*/
|
||||
List<ROperatingIndexMPO> queryOneQtrData(String orgid, String dataDate);
|
||||
List<ROperatingIndexMPO> queryOneQtrData(String orgid,String beginTime, String endTime);
|
||||
|
||||
/**
|
||||
* @Description: queryOneYearData 查询一年Mouth表数据
|
||||
@@ -31,5 +31,5 @@ public interface ROperatingIndexMPOService extends IMppService<ROperatingIndexMP
|
||||
* @Author: clam
|
||||
* @Date: 2022/11/30
|
||||
*/
|
||||
List<ROperatingIndexMPO> queryOneYearData(String orgid, String dataDate);
|
||||
List<ROperatingIndexMPO> queryOneYearData(String orgid,String beginTime, String endTime);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user