1.单位标数据质量算法兼容修改

This commit is contained in:
wr
2023-09-26 17:38:39 +08:00
parent 904a94fe83
commit 94779ce822
23 changed files with 687 additions and 430 deletions

View File

@@ -59,7 +59,7 @@ public interface CommTerminalGeneralClient {
HttpResult<List<DeptGetSubStationDTO>> deptSubStation(@RequestBody @Validated DeptGetLineParam deptGetLineParam); HttpResult<List<DeptGetSubStationDTO>> deptSubStation(@RequestBody @Validated DeptGetLineParam deptGetLineParam);
/** /**
* 根据单位获取所有变电站 * 根据单位获取所有母线
* *
* @author cdf * @author cdf
* @date 2023/5/10 * @date 2023/5/10
@@ -77,6 +77,13 @@ public interface CommTerminalGeneralClient {
@PostMapping("deptGetDevice") @PostMapping("deptGetDevice")
HttpResult<List<DeptGetDeviceDTO>> deptGetDevice(@RequestBody @Validated DeptGetLineParam deptGetLineParam); 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获取监测点信息 * 根据单站id获取监测点信息

View File

@@ -54,7 +54,7 @@ public class CommTerminalGeneralClientFallbackFactory implements FallbackFactory
@Override @Override
public HttpResult<List<DeptGetBusBarDTO>> deptBusBar(DeptGetLineParam deptGetLineParam) { public HttpResult<List<DeptGetBusBarDTO>> deptBusBar(DeptGetLineParam deptGetLineParam) {
log.error("{}异常,降级处理,异常为:{}", "根据单位获取所有变电站", throwable.toString()); log.error("{}异常,降级处理,异常为:{}", "根据单位获取所有母线", throwable.toString());
throw new BusinessException(finalExceptionEnum); throw new BusinessException(finalExceptionEnum);
} }
@@ -64,6 +64,12 @@ public class CommTerminalGeneralClientFallbackFactory implements FallbackFactory
throw new BusinessException(finalExceptionEnum); throw new BusinessException(finalExceptionEnum);
} }
@Override
public HttpResult<List<DeptGetDeviceDTO>> deptGetDeviceAndMonitor(DeptGetLineParam deptGetLineParam) {
log.error("{}异常,降级处理,异常为:{}", "根据单位获取单位下的装置以及装置下的监测点", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override @Override
public HttpResult<LineDevGetBandDTO> substationGetLine(String substationId) { public HttpResult<LineDevGetBandDTO> substationGetLine(String substationId) {
log.error("{}异常,降级处理,异常为:{}", "根据单站id获取监测点信息", throwable.toString()); log.error("{}异常,降级处理,异常为:{}", "根据单站id获取监测点信息", throwable.toString());

View File

@@ -123,6 +123,8 @@ public class PmsTerminal extends BaseEntity {
*/ */
private Integer status; private Integer status;
/**
* 通讯状态0中断1正常
*/
private Integer comFlag;
} }

View File

@@ -119,7 +119,7 @@ public class CommTerminalController extends BaseController {
} }
/** /**
* 根据单位获取所有变电站 * 根据单位获取所有母线
* @author cdf * @author cdf
* @date 2023/5/10 * @date 2023/5/10
*/ */

View File

@@ -1,6 +1,8 @@
package com.njcn.device.pms.service.ledgerManger.impl; package com.njcn.device.pms.service.ledgerManger.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.pojo.enums.common.DataStateEnum; 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<PmsMonitorBaseDTO> pmsMonitorBaseDTOList = distributionMonitorMapper.getDisMonitorAllList(null, 0);
List<String> pwTerminalIds = pmsMonitorBaseDTOList.stream().map(PmsMonitorBaseDTO::getTerminalId).distinct().collect(Collectors.toList()); List<String> pwTerminalIds = pmsMonitorBaseDTOList.stream().map(PmsMonitorBaseDTO::getTerminalId).distinct().collect(Collectors.toList());
lambdaQueryWrapper.clear(); List<PmsTerminal> pwPmsTerminals = terminalMapper.selectList(new LambdaQueryWrapper<PmsTerminal>().in(CollUtil.isNotEmpty(pwTerminalIds),PmsTerminal::getId, pwTerminalIds));
lambdaQueryWrapper.in(PmsTerminal::getId, pwTerminalIds);
List<PmsTerminal> pwPmsTerminals = terminalMapper.selectList(lambdaQueryWrapper);
Map<String, List<PmsTerminal>> mapPms = pwPmsTerminals.stream().collect(Collectors.groupingBy(PmsTerminal::getOrgId)); Map<String, List<PmsTerminal>> mapPms = pwPmsTerminals.stream().collect(Collectors.groupingBy(PmsTerminal::getOrgId));
Map<String, List<Monitor>> monitorMap = new HashMap<>(); Map<String, List<Monitor>> monitorMap = new HashMap<>();
@@ -262,7 +262,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
if (type == 1) { if (type == 1) {
//获取装置接入的监测点 //获取装置接入的监测点
monitorMap = monitorList.stream().collect(Collectors.groupingBy(Monitor::getTerminalId)); 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.setDevId(dev.getId());
lineDevGetDTO.setType(0); lineDevGetDTO.setType(0);
lineDevGetDTO.setUpdateTime(dev.getUpdateTime()); lineDevGetDTO.setUpdateTime(dev.getUpdateTime());
lineDevGetDTO.setComFlag(dev.getComFlag());
if(type == 1) { if(type == 1) {
if (finalMonitorMap.containsKey(dev.getId())) { if (finalMonitorMap.containsKey(dev.getId())) {
lineDevGetDTO.setMonitorIds(finalMonitorMap.get(dev.getId()).stream().map(Monitor::getId).distinct().collect(Collectors.toList())); 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.setDevId(dev.getId());
lineDevGetDTO.setType(1); lineDevGetDTO.setType(1);
lineDevGetDTO.setUpdateTime(dev.getUpdateTime()); lineDevGetDTO.setUpdateTime(dev.getUpdateTime());
lineDevGetDTO.setComFlag(dev.getComFlag());
if(type == 1) { if(type == 1) {
if (finalPwMonitorMap.containsKey(dev.getId())) { if (finalPwMonitorMap.containsKey(dev.getId())) {
lineDevGetDTO.setMonitorIds(finalMonitorMap.get(dev.getId()).stream().map(Monitor::getId).distinct().collect(Collectors.toList())); lineDevGetDTO.setMonitorIds(finalMonitorMap.get(dev.getId()).stream().map(Monitor::getId).distinct().collect(Collectors.toList()));

View File

@@ -364,7 +364,10 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
//返回主网和配网监测信息 //返回主网和配网监测信息
List<DeptGetChildrenDTO> deviceInfos = new ArrayList<>(); List<DeptGetChildrenDTO> deviceInfos = new ArrayList<>();
List<DeptDTO> deptInfos = deptFeignClient.getDeptDescendantIndexes(param.getDeptId(), Stream.of(0, 1).collect(Collectors.toList())).getData(); 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) { for (DeptDTO deptInfo : deptInfos) {
List<DeptDTO> directDeptInfos = deptInfos.stream() List<DeptDTO> directDeptInfos = deptInfos.stream()
.filter(deptDTO -> deptDTO.getPid().equals(deptInfo.getId())) .filter(deptDTO -> deptDTO.getPid().equals(deptInfo.getId()))
@@ -374,7 +377,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
List<DeptDTO> dept = deptInfos.stream() List<DeptDTO> dept = deptInfos.stream()
.filter(deptDTO -> deptDTO.getId().equals(deptInfo.getId())) .filter(deptDTO -> deptDTO.getId().equals(deptInfo.getId()))
.collect(Collectors.toList()); .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 { } else {
List<String> deptIdList = new ArrayList<>(); List<String> deptIdList = new ArrayList<>();
for (DeptDTO deptDTO : directDeptInfos) { for (DeptDTO deptDTO : directDeptInfos) {
@@ -389,7 +392,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
.collect(Collectors.toList())); .collect(Collectors.toList()));
deptIdList.add(deptDTO.getCode()); deptIdList.add(deptDTO.getCode());
} }
deviceInfos.add(getPmsMonitor(deptInfo, deptIdList)); deviceInfos.add(getPmsMonitor(deptInfo, dictData,deptIdList));
} }
} }
return deviceInfos; return deviceInfos;
@@ -460,7 +463,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
* @param deptIdList * @param deptIdList
* @return * @return
*/ */
private DeptGetChildrenDTO getPmsMonitor(DeptDTO deptDTO, List<String> deptIdList) { private DeptGetChildrenDTO getPmsMonitor(DeptDTO deptDTO,DictData dictData, List<String> deptIdList) {
DeptGetChildrenDTO pmsDeptGetChildrenDTO = new DeptGetChildrenDTO(); DeptGetChildrenDTO pmsDeptGetChildrenDTO = new DeptGetChildrenDTO();
pmsDeptGetChildrenDTO.setDeptId(deptDTO.getCode()); pmsDeptGetChildrenDTO.setDeptId(deptDTO.getCode());
if (deptDTO.getType() == 0) { if (deptDTO.getType() == 0) {
@@ -473,6 +476,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
//主网监测点 //主网监测点
List<Monitor> monitorList = this.list(new LambdaQueryWrapper<Monitor>() List<Monitor> monitorList = this.list(new LambdaQueryWrapper<Monitor>()
.select(Monitor::getId) .select(Monitor::getId)
.eq(Monitor::getMonitorState,dictData.getId())
.in(CollUtil.isNotEmpty(deptIdList), Monitor::getOrgId, deptIdList)); .in(CollUtil.isNotEmpty(deptIdList), Monitor::getOrgId, deptIdList));
//配网监测点 //配网监测点
List<PmsMonitorBaseDTO> pwMonitorList = iDistributionMonitorService.getMonitorByCondition(deptIdList, null); List<PmsMonitorBaseDTO> pwMonitorList = iDistributionMonitorService.getMonitorByCondition(deptIdList, null);

View File

@@ -47,7 +47,8 @@
dev.id devId, dev.id devId,
dic.value voltageLevel, dic.value voltageLevel,
1 as type , 1 as type ,
device.update_time device.update_time,
device.Com_Flag as comFlag
</if> </if>
from pq_dept_line pq_dept_line from pq_dept_line pq_dept_line
inner join pq_line point on pq_dept_line.line_id = point.id inner join pq_line point on pq_dept_line.line_id = point.id

View File

@@ -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);
}
}

View File

@@ -6,6 +6,7 @@ import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.prepare.harmonic.pojo.param.LineParam; import com.njcn.prepare.harmonic.pojo.param.LineParam;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Calendar; import java.util.Calendar;
@@ -21,37 +22,47 @@ import java.util.Objects;
@Slf4j @Slf4j
public class CommonExecutorUtils { public class CommonExecutorUtils {
public static String prepareTimeDeal(String command){ public static String prepareTimeDeal(String command) {
if(StrUtil.isBlank(command)){ if (StrUtil.isBlank(command)) {
log.error(LocalDateTime.now()+"xxl调度任务参数未设置"); log.error(LocalDateTime.now() + "xxl调度任务参数未设置");
return null; return null;
} }
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH,-1); if (Objects.equals(BizParamConstant.STAT_BIZ_DAY, command)) {
if (Objects.equals(BizParamConstant.STAT_BIZ_DAY,command)){ calendar.add(Calendar.DAY_OF_MONTH, -1);
calendar.add(Calendar.DAY_OF_MONTH,-1); } else if (Objects.equals(BizParamConstant.STAT_BIZ_MONTH, command)) {
} else if (Objects.equals(BizParamConstant.STAT_BIZ_MONTH,command)){
calendar.set(Calendar.DAY_OF_MONTH, 1); 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()); return sdf.format(calendar.getTime());
} }
/** /**
* 根据xxl-job的参数生成一个任务的起始时间和结束时间 * 根据xxl-job的参数生成一个任务的起始时间和结束时间
*
* @author cdf * @author cdf
* @date 2023/9/20 * @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"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String begin; String begin;
String end; String end;
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH,-1); calendar.add(Calendar.DAY_OF_MONTH, -1);
Date temDate = calendar.getTime(); Date temDate = calendar.getTime();
switch (command){ switch (command) {
case BizParamConstant.STAT_BIZ_DAY: case BizParamConstant.STAT_BIZ_DAY:
begin = sdf.format(DateUtil.beginOfDay(temDate)); begin = sdf.format(DateUtil.beginOfDay(temDate));
end = sdf.format(DateUtil.endOfDay(temDate)); end = sdf.format(DateUtil.endOfDay(temDate));
@@ -79,9 +90,55 @@ public class CommonExecutorUtils {
} }
lineParam.setBeginTime(begin); lineParam.setBeginTime(begin);
lineParam.setEndTime(end); 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);
}
}
} }

View File

@@ -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);
}

View File

@@ -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);
}
};
}
}

View File

@@ -30,4 +30,22 @@ public class PrimaryGridParam {
@NotBlank(message = "数据源") @NotBlank(message = "数据源")
private Integer dataSource; 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;
} }

View File

@@ -1,10 +1,12 @@
package com.njcn.prepare.harmonic.controller.area; package com.njcn.prepare.harmonic.controller.area;
import com.njcn.common.pojo.annotation.OperateInfo; 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.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; 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.device.pms.api.PmsTerminalClient; import com.njcn.device.pms.api.PmsTerminalClient;
import com.njcn.device.pms.pojo.param.PmsBaseParam; import com.njcn.device.pms.pojo.param.PmsBaseParam;
import com.njcn.device.pms.pojo.po.PmsTerminal; import com.njcn.device.pms.pojo.po.PmsTerminal;
@@ -46,7 +48,7 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor @RequiredArgsConstructor
public class PrimaryGridDataController extends BaseController { public class PrimaryGridDataController extends BaseController {
private @Autowired private @Autowired
PrimaryGridDataService primaryGridDataService; PrimaryGridDataService primaryGridDataService;
private @Autowired private @Autowired
@@ -57,51 +59,56 @@ public class PrimaryGridDataController extends BaseController {
@ApiOperation("主网单位数据同步(r_operating_index_d表数据)") @ApiOperation("主网单位数据同步(r_operating_index_d表数据)")
@ApiImplicitParam(value = "primaryGridParam",name = "primaryGridParam",required = true) @ApiImplicitParam(value = "primaryGridParam", name = "primaryGridParam", required = true)
@PostMapping("primaryGridDataHanlder") @PostMapping("primaryGridDataHanlder")
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM) @OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
public HttpResult<Boolean> primaryGridDataHanlder(@RequestBody PrimaryGridParam primaryGridParam ){ public HttpResult<Boolean> primaryGridDataHanlder(@RequestBody PrimaryGridParam primaryGridParam) {
log.info(LocalDateTime.now()+"primaryGridDataHanlder开始执行"); log.info(LocalDateTime.now() + "primaryGridDataHanlder开始执行");
String methodDescribe = getMethodDescribe("primaryGridDataHanlder"); String methodDescribe = getMethodDescribe("primaryGridDataHanlder");
Boolean result = true; List<String> orgIdList;
List<String> orgIdList = new ArrayList<> (); if (CollectionUtils.isEmpty(primaryGridParam.getOrgIdList())) {
if(CollectionUtils.isEmpty (primaryGridParam.getOrgIdList ())){
/*todo 不知道是否需要补招*/
List<PvTerminalTreeVO> dept = deptFeignClient.allDeptList().getData(); List<PvTerminalTreeVO> dept = deptFeignClient.allDeptList().getData();
orgIdList = dept.stream ( ).map (PvTerminalTreeVO::getId).collect (Collectors.toList ( )); 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);
} else { } 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("主网终端数据完整率月统计") @ApiOperation("主网终端数据完整率月统计")
@ApiImplicitParam(value = "primaryGridDataIntegrityParam",name = "primaryGridDataIntegrityParam",required = true) @ApiImplicitParam(value = "primaryGridDataIntegrityParam", name = "primaryGridDataIntegrityParam", required = true)
@PostMapping("primaryGridDataIntegrityHanlder") @PostMapping("primaryGridDataIntegrityHanlder")
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM) @OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
public HttpResult<Boolean> primaryGridDataIntegrityHanlder(@RequestBody PrimaryGridDataIntegrityParam primaryGridDataIntegrityParam ){ public HttpResult<Boolean> primaryGridDataIntegrityHanlder(@RequestBody PrimaryGridDataIntegrityParam primaryGridDataIntegrityParam) {
log.info(LocalDateTime.now()+"primaryGridDataIntegrityHanlder开始执行"); log.info(LocalDateTime.now() + "primaryGridDataIntegrityHanlder开始执行");
String methodDescribe = getMethodDescribe("primaryGridDataIntegrityHanlder"); String methodDescribe = getMethodDescribe("primaryGridDataIntegrityHanlder");
Boolean result = true; Boolean result = true;
List<String> orgIdList = new ArrayList<> (); List<String> orgIdList = new ArrayList<>();
if(CollectionUtils.isEmpty (primaryGridDataIntegrityParam.getDeviceId ())){ if (CollectionUtils.isEmpty(primaryGridDataIntegrityParam.getDeviceId())) {
/*todo 不知道是否需要补招*/ /*todo 不知道是否需要补招*/
List<PmsTerminal> data = pmsTerminalClient.getTerminalSelectList (new PmsBaseParam()).getData ( ); List<PmsTerminal> data = pmsTerminalClient.getTerminalSelectList(new PmsBaseParam()).getData();
orgIdList = data.stream ().map (PmsTerminal::getId).collect(Collectors.toList()); orgIdList = data.stream().map(PmsTerminal::getId).collect(Collectors.toList());
}else{ } else {
orgIdList = primaryGridDataIntegrityParam.getDeviceId (); orgIdList = primaryGridDataIntegrityParam.getDeviceId();
} }
primaryGridDataIntegrityParam.setDeviceId (orgIdList); primaryGridDataIntegrityParam.setDeviceId(orgIdList);
primaryGridDataService.primaryGridDataIntegrityHanlder (primaryGridDataIntegrityParam); primaryGridDataService.primaryGridDataIntegrityHanlder(primaryGridDataIntegrityParam);
if (result){ if (result) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
} else { } else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
@@ -109,7 +116,4 @@ public class PrimaryGridDataController extends BaseController {
} }
} }

View File

@@ -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.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.exception.BusinessException; 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.harmonic.pojo.po.PmsMonitorPO;
import com.njcn.prepare.harmonic.constant.PqsPrepareExceptionEnum; import com.njcn.prepare.harmonic.constant.PqsPrepareExceptionEnum;
import com.njcn.prepare.harmonic.mapper.mysql.area.PmsMonitorPOMapper; 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.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.DeptFeignClient;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.List; 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.NAME_KEY;
import static com.njcn.system.pojo.constant.DicDataConstant.SPLIT_SIGN; 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 * @version V1.0.0
*/ */
@Service @Service
@RequiredArgsConstructor
public class PmsMonitorPOServiceImpl extends ServiceImpl<PmsMonitorPOMapper, PmsMonitorPO> implements PmsMonitorPOService{ public class PmsMonitorPOServiceImpl extends ServiceImpl<PmsMonitorPOMapper, PmsMonitorPO> implements PmsMonitorPOService{
private @Autowired private final RedisUtil redisUtil;
RedisUtil redisUtil;
private @Autowired private final PmsMonitorPOMapper pmsMonitorPOMapper;
PmsMonitorPOMapper pmsMonitorPOMapper;
private @Autowired private final DeptFeignClient deptFeignClient;
DeptFeignClient deptFeignClient;
/** /**
* @Description: 在运监测点集合 * @Description: 在运监测点集合

View File

@@ -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.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.harmonic.pojo.po.PmsTerminalPO;
import com.njcn.prepare.harmonic.mapper.mysql.area.PmsTerminalPOMapper; import com.njcn.prepare.harmonic.mapper.mysql.area.PmsTerminalPOMapper;
import com.njcn.prepare.harmonic.service.mysql.area.PmsTerminalPOService; import com.njcn.prepare.harmonic.service.mysql.area.PmsTerminalPOService;
import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.DeptFeignClient;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
*
* Description: * Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html * 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/29 15:53【需求编号】 * Date: 2022/11/29 15:53【需求编号】
@@ -22,13 +28,14 @@ import java.util.List;
* @version V1.0.0 * @version V1.0.0
*/ */
@Service @Service
public class PmsTerminalPOServiceImpl extends ServiceImpl<PmsTerminalPOMapper, PmsTerminalPO> implements PmsTerminalPOService{ @RequiredArgsConstructor
public class PmsTerminalPOServiceImpl extends ServiceImpl<PmsTerminalPOMapper, PmsTerminalPO> implements PmsTerminalPOService {
private @Autowired private final PmsTerminalPOMapper pmsTerminalPOMapper;
PmsTerminalPOMapper pmsTerminalPOMapper; private final DeptFeignClient deptFeignClient;
private @Autowired private final CommTerminalGeneralClient commTerminalGeneralClient;
DeptFeignClient deptFeignClient;
/** /**
* @Description: 监测终端集合 * @Description: 监测终端集合
* @Param: [orgid] * @Param: [orgid]
@@ -38,14 +45,22 @@ public class PmsTerminalPOServiceImpl extends ServiceImpl<PmsTerminalPOMapper, P
*/ */
@Override @Override
public List<PmsTerminalPO> queryOnlineMeasurementPoints(String orgid) { public List<PmsTerminalPO> queryOnlineMeasurementPoints(String orgid) {
List<PmsTerminalPO> list = new ArrayList<> (); List<PmsTerminalPO> list = new ArrayList<>();
LambdaQueryWrapper<PmsTerminalPO> wrapper = new LambdaQueryWrapper ( ); LambdaQueryWrapper<PmsTerminalPO> wrapper = new LambdaQueryWrapper();
/*获取当前部门及子部门*/ /*获取当前部门及子部门*/
List<String> deptIds = deptFeignClient.getDepSonSelfCodetByDeptId(orgid).getData(); List<String> deptIds = deptFeignClient.getDepSonSelfCodetByDeptId(orgid).getData();
wrapper.in (PmsTerminalPO::getOrgId, deptIds); wrapper.in(PmsTerminalPO::getOrgId, deptIds);
list = pmsTerminalPOMapper.selectList (wrapper); list = pmsTerminalPOMapper.selectList(wrapper);
return list; 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());
}
} }

View File

@@ -1,7 +1,11 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.area; 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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.njcn.common.pojo.exception.BusinessException; 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.harmonic.pojo.po.*;
import com.njcn.prepare.harmonic.constant.AlgorithmParam; import com.njcn.prepare.harmonic.constant.AlgorithmParam;
import com.njcn.prepare.harmonic.constant.PqsPrepareExceptionEnum; 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.redis.utils.RedisUtil;
import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.enums.DicDataTypeEnum;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
@@ -44,46 +49,38 @@ import static com.njcn.system.pojo.constant.DicDataConstant.SPLIT_SIGN;
* @version V1.0.0 * @version V1.0.0
*/ */
@Service @Service
@RequiredArgsConstructor
public class PrimaryGridDataServiceImpl implements PrimaryGridDataService { public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
private @Autowired private final PmsMonitorPOService pmsMonitorPOService;
PmsMonitorPOService pmsMonitorPOService;
private @Autowired private final PmsTerminalPOService pmsTerminalPOService;
PmsTerminalPOService pmsTerminalPOService;
private @Autowired private final DataVInfluxdbService dataVInfluxdbService;
DataVInfluxdbService dataVInfluxdbService;
private @Autowired private final PqLinedetailPOService pqLinedetailPOService;
PqLinedetailPOService pqLinedetailPOService;
private @Autowired private final DataVOraclePOService dataVOraclePOService;
DataVOraclePOService dataVOraclePOService;
private @Autowired private final RMpIntegrityDPOService rMpIntegrityDPOService;
RMpIntegrityDPOService rMpIntegrityDPOService;
private @Autowired private final RStatAbnormalDPOMapper rStatAbnormalDPOMapper;
RStatAbnormalDPOMapper rStatAbnormalDPOMapper;
private @Autowired private final ROperatingIndexDPOService rOperatingIndexDPOService;
ROperatingIndexDPOService rOperatingIndexDPOService;
private @Autowired private final ROperatingIndexMPOService rOperatingIndexMPOService;
ROperatingIndexMPOService rOperatingIndexMPOService;
private @Autowired private final ROperatingIndexQPOService rOperatingIndexQPOService;
ROperatingIndexQPOService rOperatingIndexQPOService;
private @Autowired private final ROperatingIndexYPOService rOperatingIndexYPOService;
ROperatingIndexYPOService rOperatingIndexYPOService;
private final RMpDevEvaluateDetailPOService rMpDevEvaluateDetailPOService;
private final RedisUtil redisUtil;
private final CommTerminalGeneralClient commTerminalGeneralClient;
private @Autowired
RMpDevEvaluateDetailPOService rMpDevEvaluateDetailPOService;
private @Autowired
RedisUtil redisUtil;
/** /**
* @param primaryGridParam * @param primaryGridParam
@@ -96,10 +93,10 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
@Override @Override
@Async("asyncExecutor") @Async("asyncExecutor")
public void primaryGridDataHanlder(PrimaryGridParam primaryGridParam) { public void primaryGridDataHanlder(PrimaryGridParam primaryGridParam) {
if (Objects.equals (primaryGridParam.getDataSource ( ), AlgorithmParam.ORACLE_DATA)) { if (Objects.equals(primaryGridParam.getDataSource(), AlgorithmParam.ORACLE_DATA)) {
hanlderOracleData (primaryGridParam); hanlderOracleData(primaryGridParam);
} else if (Objects.equals (primaryGridParam.getDataSource ( ), AlgorithmParam.INFLUX_DATA)) { } else if (Objects.equals(primaryGridParam.getDataSource(), AlgorithmParam.INFLUX_DATA)) {
hanlderInfludxbData (primaryGridParam); hanlderInfludxbData(primaryGridParam);
} }
} }
@@ -116,41 +113,41 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
@Async @Async
@SneakyThrows @SneakyThrows
public void primaryGridDataIntegrityHanlder(PrimaryGridDataIntegrityParam primaryGridDataIntegrityParam) { public void primaryGridDataIntegrityHanlder(PrimaryGridDataIntegrityParam primaryGridDataIntegrityParam) {
List<String> deviceIds = primaryGridDataIntegrityParam.getDeviceId (); List<String> deviceIds = primaryGridDataIntegrityParam.getDeviceId();
String dataDate = primaryGridDataIntegrityParam.getDataDate ( ); String dataDate = primaryGridDataIntegrityParam.getDataDate();
List<RMpDevEvaluateDetailPO> rMpDevEvaluateDetailPOList = new ArrayList<> ( ); 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->{ deviceIds.forEach(deviceId -> {
double dev_data_rate=0.00; double dev_data_rate = 0.00;
/*获取终端下的监测点集合*/ /*获取终端下的监测点集合*/
QueryWrapper<PmsMonitorPO> queryWrapper = new QueryWrapper<> (); QueryWrapper<PmsMonitorPO> queryWrapper = new QueryWrapper<>();
String state = redisUtil.getStringByKey (NAME_KEY+ String state = redisUtil.getStringByKey(NAME_KEY +
SPLIT_SIGN+ DicDataTypeEnum.LINE_STATE.getCode ( )+ SPLIT_SIGN + DicDataTypeEnum.LINE_STATE.getCode() +
SPLIT_SIGN+ DicDataEnum.RUN.getCode ( )); SPLIT_SIGN + DicDataEnum.RUN.getCode());
if(StringUtils.isEmpty (state)){ if (StringUtils.isEmpty(state)) {
throw new BusinessException (PqsPrepareExceptionEnum.REDIS_NULL_EXCEPTION); throw new BusinessException(PqsPrepareExceptionEnum.REDIS_NULL_EXCEPTION);
} }
queryWrapper.lambda ().eq (PmsMonitorPO::getTerminalId, deviceId). queryWrapper.lambda().eq(PmsMonitorPO::getTerminalId, deviceId).
eq (PmsMonitorPO::getMonitorState, state); eq(PmsMonitorPO::getMonitorState, state);
List<PmsMonitorPO> list = pmsMonitorPOService.list (queryWrapper); List<PmsMonitorPO> list = pmsMonitorPOService.list(queryWrapper);
List<String> mysqlIndexList = list.stream ( ).map (PmsMonitorPO::getId).collect (Collectors.toList ( )); 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)){ if (!CollectionUtils.isEmpty(monitorDataIntegrityDTOList)) {
dev_data_rate = monitorDataIntegrityDTOList.stream ( ).mapToDouble (monitorDataIntegrityDTO -> { dev_data_rate = monitorDataIntegrityDTOList.stream().mapToDouble(monitorDataIntegrityDTO -> {
return monitorDataIntegrityDTO.getDataIntegrity ( ).doubleValue ( ); return monitorDataIntegrityDTO.getDataIntegrity().doubleValue();
}).average ( ).getAsDouble ( ); }).average().getAsDouble();
} }
RMpDevEvaluateDetailPO rMpDevEvaluateDetailPO = new RMpDevEvaluateDetailPO(); RMpDevEvaluateDetailPO rMpDevEvaluateDetailPO = new RMpDevEvaluateDetailPO();
rMpDevEvaluateDetailPO.setDeviceId (deviceId); rMpDevEvaluateDetailPO.setDeviceId(deviceId);
rMpDevEvaluateDetailPO.setDataDate (tempDate); rMpDevEvaluateDetailPO.setDataDate(tempDate);
rMpDevEvaluateDetailPO.setDevDataRate (dev_data_rate); rMpDevEvaluateDetailPO.setDevDataRate(dev_data_rate);
rMpDevEvaluateDetailPOList.add (rMpDevEvaluateDetailPO); rMpDevEvaluateDetailPOList.add(rMpDevEvaluateDetailPO);
}); });
rMpDevEvaluateDetailPOService.saveOrUpdateBatchByMultiId (rMpDevEvaluateDetailPOList,500); rMpDevEvaluateDetailPOService.saveOrUpdateBatchByMultiId(rMpDevEvaluateDetailPOList, 500);
} }
/** /**
@@ -161,85 +158,84 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
* @Date: 2022/11/25 * @Date: 2022/11/25
*/ */
private void hanlderInfludxbData(PrimaryGridParam primaryGridParam) { private void hanlderInfludxbData(PrimaryGridParam primaryGridParam) {
Integer type = primaryGridParam.getType ( ); Integer type = primaryGridParam.getType();
/*月表季表年表都是重日表生成不区分oralceinfluxdb*/ /*月表季表年表都是重日表生成不区分oralceinfluxdb*/
switch (type) { switch (type) {
case 1: case 1:
this.hanlderOracleYear (primaryGridParam); this.hanlderOracleYear(primaryGridParam);
break; break;
case 2: case 2:
this.hanlderOracleQtr (primaryGridParam); this.hanlderOracleQtr(primaryGridParam);
break; break;
case 3: case 3:
this.hanlderOracleMonth (primaryGridParam); this.hanlderOracleMonth(primaryGridParam);
break; break;
case 5: case 5:
this.hanlderInfluxdbDay (primaryGridParam); this.hanlderInfluxdbDay(primaryGridParam);
break; break;
default: default:
break; break;
} }
} }
@SneakyThrows @SneakyThrows
private void hanlderInfluxdbDay(PrimaryGridParam primaryGridParam) { private void hanlderInfluxdbDay(PrimaryGridParam primaryGridParam) {
List<String> orgIdList = primaryGridParam.getOrgIdList ( ); List<String> orgIdList = primaryGridParam.getOrgIdList();
String dataDate = primaryGridParam.getDataDate ( ); String dataDate = primaryGridParam.getDataDate();
List<ROperatingIndexDPO> rOperatingIndexDPOList = new ArrayList<> ( ); 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:在运监测点个数*/ /*measurement_run_points:在运监测点个数*/
List<PmsMonitorPO> pmsMonitorPOS = pmsMonitorPOService.qurymeasurementRunPoints (orgid); //获取终端信息,和包含的终端下监测点
Integer measurement_run_points = pmsMonitorPOS.size ( ); List<LineDevGetDTO> runTerminalAndLine = pmsTerminalPOService.getRunTerminalAndLine(orgid);
//终端数量
List<String> mysqlIndexList = pmsMonitorPOS.stream ( ).map (PmsMonitorPO::getId).collect (Collectors.toList ( )); Integer online_measurement_points = runTerminalAndLine.size();
/*在运监测终端个数 online_measurement_count*/
/*主网单位在线监测点数 transit_measurement_points*/ Long online_measurement_count = runTerminalAndLine.stream().filter(x -> x.getComFlag() == 1).collect(Collectors.counting());
Integer transit_measurement_points = dataVInfluxdbService.queryTransitMeasurementPoints(mysqlIndexList,primaryGridParam.getDataDate (),"A");
/*主网单位有效接入监测点个数 effective_access_measurement_count*/
Integer effective_access_measurement_count = this.queryEffectiveAccessMeasurementCount(mysqlIndexList,primaryGridParam.getDataDate ());
/*监测终端数量 online_measurement_points*/ /*监测终端数量 online_measurement_points*/
List<PmsTerminalPO> pmsTerminalPOS = pmsTerminalPOService.queryOnlineMeasurementPoints(orgid); List<String> runMonitor = runTerminalAndLine.stream().flatMap(x -> x.getMonitorIds().stream()).collect(Collectors.toList());
Integer online_measurement_points = pmsTerminalPOS.size ();
/*在运监测终端个数 online_measurement_count*/ // List<String> runMonitor = pmsMonitorPOService.getRunMonitor(orgid);
String state = redisUtil.getStringByKey (NAME_KEY+ Integer measurement_run_points = runMonitor.size();
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 ( )+""); /*主网单位在线监测点数 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*/ /*主网单位数据完整率 data_integrity_rate*/
double data_integrity_rate=0.00; double data_integrity_rate = 0.00;
List<MonitorDataIntegrityDTO> monitorDataIntegrityDTOList = rMpIntegrityDPOService.calculateDataIntegrity (mysqlIndexList, dataDate); List<MonitorDataIntegrityDTO> monitorDataIntegrityDTOList = rMpIntegrityDPOService.calculateDataIntegrity(runMonitor, dataDate);
/*求平均值*/ /*求平均值*/
if(!CollectionUtils.isEmpty (monitorDataIntegrityDTOList)){ if (!CollectionUtils.isEmpty(monitorDataIntegrityDTOList)) {
data_integrity_rate = monitorDataIntegrityDTOList.stream ( ).mapToDouble (temp -> { data_integrity_rate = monitorDataIntegrityDTOList.stream().mapToDouble(temp -> {
return temp.getDataIntegrity ( ).doubleValue ( ); return temp.getDataIntegrity().doubleValue();
}).average ( ).getAsDouble ( ); }).average().getAsDouble();
} }
/*主网单位数据异常监测点数日统计 is_unusual*/ /*主网单位数据异常监测点数日统计 is_unusual*/
Integer is_unusual =this.queryIsUnusualCount(mysqlIndexList,primaryGridParam.getDataDate ()); Integer is_unusual = this.queryIsUnusualCount(runMonitor, primaryGridParam.getDataDate());
ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO( ); ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO();
rOperatingIndexDPO.setOrgNo (orgid); rOperatingIndexDPO.setOrgNo(orgid);
rOperatingIndexDPO.setDataDate (tempDate); rOperatingIndexDPO.setDataDate(tempDate);
rOperatingIndexDPO.setMeasurementRunPoints (measurement_run_points); rOperatingIndexDPO.setMeasurementRunPoints(measurement_run_points);
rOperatingIndexDPO.setTransitMeasurementPoints (transit_measurement_points); rOperatingIndexDPO.setTransitMeasurementPoints(transit_measurement_points);
rOperatingIndexDPO.setEffectiveAccessMeasurementCount (effective_access_measurement_count); rOperatingIndexDPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count);
rOperatingIndexDPO.setOnlineMeasurementPoints (online_measurement_points); rOperatingIndexDPO.setOnlineMeasurementPoints(online_measurement_points);
rOperatingIndexDPO.setOnlineMeasurementCount (online_measurement_count); rOperatingIndexDPO.setOnlineMeasurementCount(Math.toIntExact(online_measurement_count));
rOperatingIndexDPO.setDataIntegrityRate (data_integrity_rate); rOperatingIndexDPO.setDataIntegrityRate(data_integrity_rate);
rOperatingIndexDPO.setIsUnusual (is_unusual>0?1:0); rOperatingIndexDPO.setIsUnusual(is_unusual > 0 ? 1 : 0);
rOperatingIndexDPOList.add (rOperatingIndexDPO); rOperatingIndexDPOList.add(rOperatingIndexDPO);
}); });
if(!CollectionUtils.isEmpty (rOperatingIndexDPOList)){ if (!CollectionUtils.isEmpty(rOperatingIndexDPOList)) {
rOperatingIndexDPOService.saveOrUpdateBatchByMultiId (rOperatingIndexDPOList,30); rOperatingIndexDPOService.saveOrUpdateBatchByMultiId(rOperatingIndexDPOList, 30);
} }
} }
@@ -252,19 +248,19 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
* @Date: 2022/11/25 * @Date: 2022/11/25
*/ */
private void hanlderOracleData(PrimaryGridParam primaryGridParam) { private void hanlderOracleData(PrimaryGridParam primaryGridParam) {
Integer type = primaryGridParam.getType ( ); Integer type = primaryGridParam.getType();
switch (type) { switch (type) {
case 1: case 1:
this.hanlderOracleYear (primaryGridParam); this.hanlderOracleYear(primaryGridParam);
break; break;
case 2: case 2:
this.hanlderOracleQtr (primaryGridParam); this.hanlderOracleQtr(primaryGridParam);
break; break;
case 3: case 3:
this.hanlderOracleMonth (primaryGridParam); this.hanlderOracleMonth(primaryGridParam);
break; break;
case 5: case 5:
this.hanlderOracleDay (primaryGridParam); this.hanlderOracleDay(primaryGridParam);
break; break;
default: default:
break; break;
@@ -283,62 +279,62 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
@SneakyThrows @SneakyThrows
private void hanlderOracleMonth(PrimaryGridParam primaryGridParam) { private void hanlderOracleMonth(PrimaryGridParam primaryGridParam) {
List<String> orgIdList = primaryGridParam.getOrgIdList ( ); List<String> orgIdList = primaryGridParam.getOrgIdList();
String dataDate = primaryGridParam.getDataDate ( ); String beginTime = primaryGridParam.getBeginTime();
List<ROperatingIndexMPO> rOperatingIndexMPOList = new ArrayList<> ( ); 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表数据生成月表数据*/ /*查询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 ( ). int measurement_run_points = (int) Math.round(list.stream().
mapToDouble (temp -> temp.getMeasurementRunPoints ( )). mapToDouble(temp -> temp.getMeasurementRunPoints()).
average ( ). average().
getAsDouble ( )); getAsDouble());
int transit_measurement_points =(int) Math.round (list.stream ( ). int transit_measurement_points = (int) Math.round(list.stream().
mapToDouble (temp -> temp.getTransitMeasurementPoints ()). mapToDouble(temp -> temp.getTransitMeasurementPoints()).
average ( ). average().
getAsDouble ( )); getAsDouble());
int effective_access_measurement_count =(int) Math.round (list.stream ( ). int effective_access_measurement_count = (int) Math.round(list.stream().
mapToDouble (temp -> temp.getEffectiveAccessMeasurementCount ()). mapToDouble(temp -> temp.getEffectiveAccessMeasurementCount()).
average ( ). average().
getAsDouble ( )); getAsDouble());
int online_measurement_points =(int) Math.round (list.stream ( ). int online_measurement_points = (int) Math.round(list.stream().
mapToDouble (temp -> temp.getOnlineMeasurementPoints ()). mapToDouble(temp -> temp.getOnlineMeasurementPoints()).
average ( ). average().
getAsDouble ( )); getAsDouble());
int online_measurement_count =(int) Math.round (list.stream ( ). int online_measurement_count = (int) Math.round(list.stream().
mapToDouble (temp -> temp.getOnlineMeasurementCount ()). mapToDouble(temp -> temp.getOnlineMeasurementCount()).
average ( ). average().
getAsDouble ( )); getAsDouble());
/*double保留2位小数*/ /*double保留2位小数*/
Double data_integrity_rate =Math.round (list.stream ( ). Double data_integrity_rate = Math.round(list.stream().
mapToDouble (temp -> temp.getDataIntegrityRate ()). mapToDouble(temp -> temp.getDataIntegrityRate()).
average ( ). average().
getAsDouble ( )*100)*0.01; getAsDouble() * 100) * 0.01;
/*看day表is_unusual时候存在1存在返回1数据否异常(0:正常 1:异常)*/ /*看day表is_unusual时候存在1存在返回1数据否异常(0:正常 1:异常)*/
Integer is_unusual =list.stream (). Integer is_unusual = list.stream().
map (ROperatingIndexDPO::getIsUnusual). map(ROperatingIndexDPO::getIsUnusual).
collect (Collectors.toList ()) collect(Collectors.toList())
.contains (1)?1:0; .contains(1) ? 1 : 0;
ROperatingIndexMPO rOperatingIndexMPO = new ROperatingIndexMPO( ); ROperatingIndexMPO rOperatingIndexMPO = new ROperatingIndexMPO();
rOperatingIndexMPO.setOrgNo (orgid); rOperatingIndexMPO.setOrgNo(orgid);
rOperatingIndexMPO.setDataDate (tempDate); rOperatingIndexMPO.setDataDate(DateUtil.parse(primaryGridParam.getDataDate()));
rOperatingIndexMPO.setMeasurementRunPoints (measurement_run_points); rOperatingIndexMPO.setMeasurementRunPoints(measurement_run_points);
rOperatingIndexMPO.setTransitMeasurementPoints (transit_measurement_points); rOperatingIndexMPO.setTransitMeasurementPoints(transit_measurement_points);
rOperatingIndexMPO.setEffectiveAccessMeasurementCount (effective_access_measurement_count); rOperatingIndexMPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count);
rOperatingIndexMPO.setOnlineMeasurementPoints (online_measurement_points); rOperatingIndexMPO.setOnlineMeasurementPoints(online_measurement_points);
rOperatingIndexMPO.setOnlineMeasurementCount (online_measurement_count); rOperatingIndexMPO.setOnlineMeasurementCount(online_measurement_count);
rOperatingIndexMPO.setDataIntegrityRate (data_integrity_rate); rOperatingIndexMPO.setDataIntegrityRate(data_integrity_rate);
rOperatingIndexMPO.setIsUnusual (is_unusual); rOperatingIndexMPO.setIsUnusual(is_unusual);
rOperatingIndexMPOList.add (rOperatingIndexMPO); rOperatingIndexMPOList.add(rOperatingIndexMPO);
}); });
if(!CollectionUtils.isEmpty (rOperatingIndexMPOList)){ if (!CollectionUtils.isEmpty(rOperatingIndexMPOList)) {
rOperatingIndexMPOService.saveOrUpdateBatchByMultiId (rOperatingIndexMPOList,30); rOperatingIndexMPOService.saveOrUpdateBatchByMultiId(rOperatingIndexMPOList, 30);
} }
} }
@@ -351,136 +347,133 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
*/ */
@SneakyThrows @SneakyThrows
private void hanlderOracleDay(PrimaryGridParam primaryGridParam) { private void hanlderOracleDay(PrimaryGridParam primaryGridParam) {
List<String> orgIdList = primaryGridParam.getOrgIdList ( ); List<String> orgIdList = primaryGridParam.getOrgIdList();
String dataDate = primaryGridParam.getDataDate ( ); String dataDate = primaryGridParam.getDataDate();
List<ROperatingIndexDPO> rOperatingIndexDPOList = new ArrayList<> ( ); 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:在运监测点个数*/ /*measurement_run_points:在运监测点个数*/
List<PmsMonitorPO> pmsMonitorPOS = pmsMonitorPOService.qurymeasurementRunPoints (orgid); List<PmsMonitorPO> pmsMonitorPOS = pmsMonitorPOService.qurymeasurementRunPoints(orgid);
Integer measurement_run_points = pmsMonitorPOS.size ( ); Integer measurement_run_points = pmsMonitorPOS.size();
/*获取mysql与Oracle监测点id对应关系*/ /*获取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<PqLinedetailPO> pqLinedetailPOS = pqLinedetailPOService.queryOracleIndexIdByMysqlIndexId(mysqlIndexList);
List<Integer> oracleIndexlist = pqLinedetailPOS.stream ( ).map (PqLinedetailPO::getLineIndex).collect (Collectors.toList ( )); List<Integer> oracleIndexlist = pqLinedetailPOS.stream().map(PqLinedetailPO::getLineIndex).collect(Collectors.toList());
/*主网单位在线监测点数 transit_measurement_points*/ /*主网单位在线监测点数 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*/ /*主网单位有效接入监测点个数 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*/ /*监测终端数量 online_measurement_points*/
List<PmsTerminalPO> pmsTerminalPOS = pmsTerminalPOService.queryOnlineMeasurementPoints(orgid); List<PmsTerminalPO> pmsTerminalPOS = pmsTerminalPOService.queryOnlineMeasurementPoints(orgid);
Integer online_measurement_points = pmsTerminalPOS.size (); Integer online_measurement_points = pmsTerminalPOS.size();
/*在运监测终端个数 online_measurement_count*/ /*在运监测终端个数 online_measurement_count*/
String state = redisUtil.getStringByKey (NAME_KEY+ String state = redisUtil.getStringByKey(NAME_KEY +
SPLIT_SIGN+ DicDataTypeEnum.DEV_STATUS.getCode ( )+ SPLIT_SIGN + DicDataTypeEnum.DEV_STATUS.getCode() +
SPLIT_SIGN+ DicDataEnum.RUNNING.getCode ( )); SPLIT_SIGN + DicDataEnum.RUNNING.getCode());
Integer online_measurement_count = Integer.valueOf (pmsTerminalPOS.stream ( ).filter (temp -> Objects.equals (temp.getTerminalState ( ),state)).count ( )+""); Integer online_measurement_count = Integer.valueOf(pmsTerminalPOS.stream().filter(temp -> Objects.equals(temp.getTerminalState(), state)).count() + "");
/*主网单位数据完整率 data_integrity_rate*/ /*主网单位数据完整率 data_integrity_rate*/
double data_integrity_rate=0.00; double data_integrity_rate = 0.00;
List<MonitorDataIntegrityDTO> monitorDataIntegrityDTOList = rMpIntegrityDPOService.calculateDataIntegrity (mysqlIndexList, dataDate); List<MonitorDataIntegrityDTO> monitorDataIntegrityDTOList = rMpIntegrityDPOService.calculateDataIntegrity(mysqlIndexList, dataDate);
/*求平均值*/ /*求平均值*/
if(!CollectionUtils.isEmpty (monitorDataIntegrityDTOList)){ if (!CollectionUtils.isEmpty(monitorDataIntegrityDTOList)) {
data_integrity_rate = monitorDataIntegrityDTOList.stream ( ).mapToDouble (temp -> { data_integrity_rate = monitorDataIntegrityDTOList.stream().mapToDouble(temp -> {
return temp.getDataIntegrity ( ).doubleValue ( ); return temp.getDataIntegrity().doubleValue();
}).average ( ).getAsDouble ( ); }).average().getAsDouble();
} }
/*主网单位数据异常监测点数日统计 is_unusual*/ /*主网单位数据异常监测点数日统计 is_unusual*/
Integer is_unusual =this.queryIsUnusualCount(mysqlIndexList,primaryGridParam.getDataDate ()); Integer is_unusual = this.queryIsUnusualCount(mysqlIndexList, primaryGridParam.getDataDate());
ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO( ); ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO();
rOperatingIndexDPO.setOrgNo (orgid); rOperatingIndexDPO.setOrgNo(orgid);
rOperatingIndexDPO.setDataDate (tempDate); rOperatingIndexDPO.setDataDate(tempDate);
rOperatingIndexDPO.setMeasurementRunPoints (measurement_run_points); rOperatingIndexDPO.setMeasurementRunPoints(measurement_run_points);
rOperatingIndexDPO.setTransitMeasurementPoints (transit_measurement_points); rOperatingIndexDPO.setTransitMeasurementPoints(transit_measurement_points);
rOperatingIndexDPO.setEffectiveAccessMeasurementCount (effective_access_measurement_count); rOperatingIndexDPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count);
rOperatingIndexDPO.setOnlineMeasurementPoints (online_measurement_points); rOperatingIndexDPO.setOnlineMeasurementPoints(online_measurement_points);
rOperatingIndexDPO.setOnlineMeasurementCount (online_measurement_count); rOperatingIndexDPO.setOnlineMeasurementCount(online_measurement_count);
rOperatingIndexDPO.setDataIntegrityRate (data_integrity_rate); rOperatingIndexDPO.setDataIntegrityRate(data_integrity_rate);
rOperatingIndexDPO.setIsUnusual (is_unusual>0?1:0); rOperatingIndexDPO.setIsUnusual(is_unusual > 0 ? 1 : 0);
rOperatingIndexDPOList.add (rOperatingIndexDPO); rOperatingIndexDPOList.add(rOperatingIndexDPO);
}); });
if(!CollectionUtils.isEmpty (rOperatingIndexDPOList)){ if (!CollectionUtils.isEmpty(rOperatingIndexDPOList)) {
rOperatingIndexDPOService.saveOrUpdateBatchByMultiId (rOperatingIndexDPOList,30); rOperatingIndexDPOService.saveOrUpdateBatchByMultiId(rOperatingIndexDPOList, 30);
} }
} }
/** /**
* @Description: queryIsUnusualCount :用监测点id在r_stat_abnormal_d表中查找value_alarm为0的监测点个数 * @Description: queryIsUnusualCount :用监测点id在r_stat_abnormal_d表中查找value_alarm为0的监测点个数
* @Param: [mysqlIndexList, dataDate] * @Param: [mysqlIndexList, dataDate]
* @return: java.lang.Integer * @return: java.lang.Integer
* @Author: clam * @Author: clam
* @Date: 2022/11/28 * @Date: 2022/11/28
*/ */
private Integer queryIsUnusualCount(List<String> mysqlIndexList, String dataDate) { private Integer queryIsUnusualCount(List<String> mysqlIndexList, String dataDate) {
if(CollectionUtils.isEmpty (mysqlIndexList)){ if (CollectionUtils.isEmpty(mysqlIndexList)) {
return 0; return 0;
} }
QueryWrapper<RStatAbnormalDPO> rStatAbnormalDPOLambdaQueryWrapper = new QueryWrapper ( ); QueryWrapper<RStatAbnormalDPO> rStatAbnormalDPOLambdaQueryWrapper = new QueryWrapper();
rStatAbnormalDPOLambdaQueryWrapper. rStatAbnormalDPOLambdaQueryWrapper.
in ("measurement_point_id",mysqlIndexList). in("measurement_point_id", mysqlIndexList).
eq ("value_alarm", 0). eq("value_alarm", 0).
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate); eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", dataDate);
Integer integer = rStatAbnormalDPOMapper.selectCount (rStatAbnormalDPOLambdaQueryWrapper); Integer integer = rStatAbnormalDPOMapper.selectCount(rStatAbnormalDPOLambdaQueryWrapper);
return integer; return integer;
} }
/** /**
* @Description: 主网单位有效接入监测点个数 * @Description: 主网单位有效接入监测点个数
* 1.获取pms_monitor表中监测点状态为投运的监测点id列表 * 1.获取pms_monitor表中监测点状态为投运的监测点id列表
* 2.根据id查询r_mp_integrity_d表中当天各项指标个数采用以下公式计算数据完整率 * 2.根据id查询r_mp_integrity_d表中当天各项指标个数采用以下公式计算数据完整率
* 3.〖数据完整率〗_日统计=(频率+相电压+线电压+畸变率+不平衡度)/(有效值数据个数*5)*100% * 3.〖数据完整率〗_日统计=(频率+相电压+线电压+畸变率+不平衡度)/(有效值数据个数*5)*100%
* 判定监测点数据完整率是否大于95% * 判定监测点数据完整率是否大于95%
* 4、根据id查询r_stat_abnormal_d表value_alarm为1。 * 4、根据id查询r_stat_abnormal_d表value_alarm为1。
* 5、以上两个条件满足表明该监测点为有效监测点。 * 5、以上两个条件满足表明该监测点为有效监测点。
* 6、统计有效监测点个数 * 6、统计有效监测点个数
* @Param: [indexlist, dataDate] * @Param: [indexlist, dataDate]
* @return: java.lang.String * @return: java.lang.String
* @Author: clam * @Author: clam
* @Date: 2022/11/25 * @Date: 2022/11/25
*/ */
private Integer queryEffectiveAccessMeasurementCount(List<String> indexlist, String dataDate) { 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*/ /*获取完整率>0.95的监测点id*/
List<String> collect = monitorDataIntegrityDTOList.stream ( ). List<String> collect = monitorDataIntegrityDTOList.stream().
filter (temp -> temp.getDataIntegrity ().compareTo (new BigDecimal (0.95)) == 1 filter(temp -> temp.getDataIntegrity().compareTo(new BigDecimal(0.95)) == 1
).map (MonitorDataIntegrityDTO::getId).collect (Collectors.toList ( )); ).map(MonitorDataIntegrityDTO::getId).collect(Collectors.toList());
/*获取完整率>0.95条件下value_alarm为1的监测点id*/ /*获取完整率>0.95条件下value_alarm为1的监测点id*/
if(CollectionUtils.isEmpty (collect)){ if (CollectionUtils.isEmpty(collect)) {
return 0; return 0;
} }
QueryWrapper<RStatAbnormalDPO> rStatAbnormalDPOLambdaQueryWrapper = new QueryWrapper ( ); QueryWrapper<RStatAbnormalDPO> rStatAbnormalDPOLambdaQueryWrapper = new QueryWrapper();
rStatAbnormalDPOLambdaQueryWrapper.select ("measurement_point_id"). rStatAbnormalDPOLambdaQueryWrapper.select("measurement_point_id").
in ("measurement_point_id",collect). in("measurement_point_id", collect).
eq ("value_alarm", 1). eq("value_alarm", 1).
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate); eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", dataDate);
List<RStatAbnormalDPO> rStatAbnormalDPOS = rStatAbnormalDPOMapper.selectList (rStatAbnormalDPOLambdaQueryWrapper); List<RStatAbnormalDPO> rStatAbnormalDPOS = rStatAbnormalDPOMapper.selectList(rStatAbnormalDPOLambdaQueryWrapper);
return rStatAbnormalDPOS.size (); return rStatAbnormalDPOS.size();
} }
/** /**
* @Description: hanlderOracleQtr * @Description: hanlderOracleQtr
* @Param: [primaryGridParam] * @Param: [primaryGridParam]
@@ -491,62 +484,62 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
@SneakyThrows @SneakyThrows
private void hanlderOracleQtr(PrimaryGridParam primaryGridParam) { private void hanlderOracleQtr(PrimaryGridParam primaryGridParam) {
List<String> orgIdList = primaryGridParam.getOrgIdList ( ); List<String> orgIdList = primaryGridParam.getOrgIdList();
String dataDate = primaryGridParam.getDataDate ( ); String beginTime = primaryGridParam.getBeginTime();
List<ROperatingIndexQPO> rOperatingIndexQPOList = new ArrayList<> ( ); 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表数据生成季表数据*/ /*查询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 ( ). int measurement_run_points = (int) Math.round(list.stream().
mapToDouble (temp -> temp.getMeasurementRunPoints ( )). mapToDouble(temp -> temp.getMeasurementRunPoints()).
average ( ). average().
getAsDouble ( )); getAsDouble());
int transit_measurement_points =(int) Math.round (list.stream ( ). int transit_measurement_points = (int) Math.round(list.stream().
mapToDouble (temp -> temp.getTransitMeasurementPoints ()). mapToDouble(temp -> temp.getTransitMeasurementPoints()).
average ( ). average().
getAsDouble ( )); getAsDouble());
int effective_access_measurement_count =(int) Math.round (list.stream ( ). int effective_access_measurement_count = (int) Math.round(list.stream().
mapToDouble (temp -> temp.getEffectiveAccessMeasurementCount ()). mapToDouble(temp -> temp.getEffectiveAccessMeasurementCount()).
average ( ). average().
getAsDouble ( )); getAsDouble());
int online_measurement_points =(int) Math.round (list.stream ( ). int online_measurement_points = (int) Math.round(list.stream().
mapToDouble (temp -> temp.getOnlineMeasurementPoints ()). mapToDouble(temp -> temp.getOnlineMeasurementPoints()).
average ( ). average().
getAsDouble ( )); getAsDouble());
int online_measurement_count =(int) Math.round (list.stream ( ). int online_measurement_count = (int) Math.round(list.stream().
mapToDouble (temp -> temp.getOnlineMeasurementCount ()). mapToDouble(temp -> temp.getOnlineMeasurementCount()).
average ( ). average().
getAsDouble ( )); getAsDouble());
/*double保留2位小数*/ /*double保留2位小数*/
Double data_integrity_rate =Math.round (list.stream ( ). Double data_integrity_rate = Math.round(list.stream().
mapToDouble (temp -> temp.getDataIntegrityRate ()). mapToDouble(temp -> temp.getDataIntegrityRate()).
average ( ). average().
getAsDouble ( )*100)*0.01; getAsDouble() * 100) * 0.01;
/*看day表is_unusual时候存在1存在返回1数据否异常(0:正常 1:异常)*/ /*看day表is_unusual时候存在1存在返回1数据否异常(0:正常 1:异常)*/
Integer is_unusual =list.stream (). Integer is_unusual = list.stream().
map (ROperatingIndexMPO::getIsUnusual). map(ROperatingIndexMPO::getIsUnusual).
collect (Collectors.toList ()) collect(Collectors.toList())
.contains (1)?1:0; .contains(1) ? 1 : 0;
ROperatingIndexQPO rOperatingIndexQPO = new ROperatingIndexQPO( ); ROperatingIndexQPO rOperatingIndexQPO = new ROperatingIndexQPO();
rOperatingIndexQPO.setOrgNo (orgid); rOperatingIndexQPO.setOrgNo(orgid);
rOperatingIndexQPO.setDataDate (tempDate); rOperatingIndexQPO.setDataDate(DateUtil.parse(primaryGridParam.getDataDate()));
rOperatingIndexQPO.setMeasurementRunPoints (measurement_run_points); rOperatingIndexQPO.setMeasurementRunPoints(measurement_run_points);
rOperatingIndexQPO.setTransitMeasurementPoints (transit_measurement_points); rOperatingIndexQPO.setTransitMeasurementPoints(transit_measurement_points);
rOperatingIndexQPO.setEffectiveAccessMeasurementCount (effective_access_measurement_count); rOperatingIndexQPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count);
rOperatingIndexQPO.setOnlineMeasurementPoints (online_measurement_points); rOperatingIndexQPO.setOnlineMeasurementPoints(online_measurement_points);
rOperatingIndexQPO.setOnlineMeasurementCount (online_measurement_count); rOperatingIndexQPO.setOnlineMeasurementCount(online_measurement_count);
rOperatingIndexQPO.setDataIntegrityRate (data_integrity_rate); rOperatingIndexQPO.setDataIntegrityRate(data_integrity_rate);
rOperatingIndexQPO.setIsUnusual (is_unusual); rOperatingIndexQPO.setIsUnusual(is_unusual);
rOperatingIndexQPOList.add (rOperatingIndexQPO); rOperatingIndexQPOList.add(rOperatingIndexQPO);
}); });
if(!CollectionUtils.isEmpty (rOperatingIndexQPOList)){ if (!CollectionUtils.isEmpty(rOperatingIndexQPOList)) {
rOperatingIndexQPOService.saveOrUpdateBatchByMultiId (rOperatingIndexQPOList,30); rOperatingIndexQPOService.saveOrUpdateBatchByMultiId(rOperatingIndexQPOList, 30);
} }
} }
@@ -560,62 +553,62 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
@SneakyThrows @SneakyThrows
private void hanlderOracleYear(PrimaryGridParam primaryGridParam) { private void hanlderOracleYear(PrimaryGridParam primaryGridParam) {
List<String> orgIdList = primaryGridParam.getOrgIdList ( ); List<String> orgIdList = primaryGridParam.getOrgIdList();
String dataDate = primaryGridParam.getDataDate ( ); String beginTime = primaryGridParam.getBeginTime();
List<ROperatingIndexYPO> rOperatingIndexYPOList = new ArrayList<> ( ); 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表数据生成年表数据*/ /*查询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 ( ). int measurement_run_points = (int) Math.round(list.stream().
mapToDouble (temp -> temp.getMeasurementRunPoints ( )). mapToDouble(temp -> temp.getMeasurementRunPoints()).
average ( ). average().
getAsDouble ( )); getAsDouble());
int transit_measurement_points =(int) Math.round (list.stream ( ). int transit_measurement_points = (int) Math.round(list.stream().
mapToDouble (temp -> temp.getTransitMeasurementPoints ()). mapToDouble(temp -> temp.getTransitMeasurementPoints()).
average ( ). average().
getAsDouble ( )); getAsDouble());
int effective_access_measurement_count =(int) Math.round (list.stream ( ). int effective_access_measurement_count = (int) Math.round(list.stream().
mapToDouble (temp -> temp.getEffectiveAccessMeasurementCount ()). mapToDouble(temp -> temp.getEffectiveAccessMeasurementCount()).
average ( ). average().
getAsDouble ( )); getAsDouble());
int online_measurement_points =(int) Math.round (list.stream ( ). int online_measurement_points = (int) Math.round(list.stream().
mapToDouble (temp -> temp.getOnlineMeasurementPoints ()). mapToDouble(temp -> temp.getOnlineMeasurementPoints()).
average ( ). average().
getAsDouble ( )); getAsDouble());
int online_measurement_count =(int) Math.round (list.stream ( ). int online_measurement_count = (int) Math.round(list.stream().
mapToDouble (temp -> temp.getOnlineMeasurementCount ()). mapToDouble(temp -> temp.getOnlineMeasurementCount()).
average ( ). average().
getAsDouble ( )); getAsDouble());
/*double保留2位小数*/ /*double保留2位小数*/
Double data_integrity_rate =Math.round (list.stream ( ). Double data_integrity_rate = Math.round(list.stream().
mapToDouble (temp -> temp.getDataIntegrityRate ()). mapToDouble(temp -> temp.getDataIntegrityRate()).
average ( ). average().
getAsDouble ( )*100)*0.01; getAsDouble() * 100) * 0.01;
/*看day表is_unusual时候存在1存在返回1数据否异常(0:正常 1:异常)*/ /*看day表is_unusual时候存在1存在返回1数据否异常(0:正常 1:异常)*/
Integer is_unusual =list.stream (). Integer is_unusual = list.stream().
map (ROperatingIndexMPO::getIsUnusual). map(ROperatingIndexMPO::getIsUnusual).
collect (Collectors.toList ()) collect(Collectors.toList())
.contains (1)?1:0; .contains(1) ? 1 : 0;
ROperatingIndexYPO rOperatingIndexYPO = new ROperatingIndexYPO( ); ROperatingIndexYPO rOperatingIndexYPO = new ROperatingIndexYPO();
rOperatingIndexYPO.setOrgNo (orgid); rOperatingIndexYPO.setOrgNo(orgid);
rOperatingIndexYPO.setDataDate (tempDate); rOperatingIndexYPO.setDataDate(DateUtil.parse(primaryGridParam.getDataDate()));
rOperatingIndexYPO.setMeasurementRunPoints (measurement_run_points); rOperatingIndexYPO.setMeasurementRunPoints(measurement_run_points);
rOperatingIndexYPO.setTransitMeasurementPoints (transit_measurement_points); rOperatingIndexYPO.setTransitMeasurementPoints(transit_measurement_points);
rOperatingIndexYPO.setEffectiveAccessMeasurementCount (effective_access_measurement_count); rOperatingIndexYPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count);
rOperatingIndexYPO.setOnlineMeasurementPoints (online_measurement_points); rOperatingIndexYPO.setOnlineMeasurementPoints(online_measurement_points);
rOperatingIndexYPO.setOnlineMeasurementCount (online_measurement_count); rOperatingIndexYPO.setOnlineMeasurementCount(online_measurement_count);
rOperatingIndexYPO.setDataIntegrityRate (data_integrity_rate); rOperatingIndexYPO.setDataIntegrityRate(data_integrity_rate);
rOperatingIndexYPO.setIsUnusual (is_unusual); rOperatingIndexYPO.setIsUnusual(is_unusual);
rOperatingIndexYPOList.add (rOperatingIndexYPO); rOperatingIndexYPOList.add(rOperatingIndexYPO);
}); });
if(!CollectionUtils.isEmpty (rOperatingIndexYPOList)){ if (!CollectionUtils.isEmpty(rOperatingIndexYPOList)) {
rOperatingIndexYPOService.saveOrUpdateBatchByMultiId (rOperatingIndexYPOList,30); rOperatingIndexYPOService.saveOrUpdateBatchByMultiId(rOperatingIndexYPOList, 30);
} }
} }

View File

@@ -35,12 +35,13 @@ public class ROperatingIndexDPOServiceImpl extends MppServiceImpl<ROperatingInde
* @Date: 2022/11/30 * @Date: 2022/11/30
*/ */
@Override @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<ROperatingIndexDPO> queryWrapper = new QueryWrapper<> ();
queryWrapper.eq ("org_no", orgid). queryWrapper.eq ("org_no", orgid)
eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring (0, 7)); .ge("data_date",beginTime)
.le("data_date",endTime);
List<ROperatingIndexDPO> list = rOperatingIndexDPOMapper.selectList (queryWrapper); List<ROperatingIndexDPO> list = rOperatingIndexDPOMapper.selectList (queryWrapper);

View File

@@ -27,7 +27,8 @@ public class ROperatingIndexMPOServiceImpl extends MppServiceImpl<ROperatingInde
ROperatingIndexMPOMapper rOperatingIndexMPOMapper; ROperatingIndexMPOMapper rOperatingIndexMPOMapper;
/** /**
* @param orgid * @param orgid
* @param dataDate * @param beginTime
* @param endTime
* @Description: queryOneQtrData 查询一季度Mouth表数据 * @Description: queryOneQtrData 查询一季度Mouth表数据
* @Param: [orgid, dataDate] * @Param: [orgid, dataDate]
* @return: java.util.List<com.njcn.prepare.harmonic.pojo.mysql.po.ROperatingIndexMPO> * @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 * @Date: 2022/11/30
*/ */
@Override @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<ROperatingIndexMPO> queryWrapper = new QueryWrapper<> ();
queryWrapper.eq ("org_no", orgid). queryWrapper.eq ("org_no", orgid)
eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); .ge("data_date",beginTime)
.le("data_date",endTime);
List<ROperatingIndexMPO> list = rOperatingIndexMPOMapper.selectList (queryWrapper); List<ROperatingIndexMPO> list = rOperatingIndexMPOMapper.selectList (queryWrapper);
@@ -49,7 +51,8 @@ public class ROperatingIndexMPOServiceImpl extends MppServiceImpl<ROperatingInde
/** /**
* @param orgid * @param orgid
* @param dataDate * @param beginTime
* @param endTime
* @Description: queryOneYearData 查询一年Mouth表数据 * @Description: queryOneYearData 查询一年Mouth表数据
* @Param: [orgid, dataDate] * @Param: [orgid, dataDate]
* @return: java.util.List<com.njcn.prepare.harmonic.pojo.mysql.po.ROperatingIndexMPO> * @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 * @Date: 2022/11/30
*/ */
@Override @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<ROperatingIndexMPO> queryWrapper = new QueryWrapper<> ();
queryWrapper.eq ("org_no", orgid). 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); List<ROperatingIndexMPO> list = rOperatingIndexMPOMapper.selectList (queryWrapper);
return list; return list;

View File

@@ -6,7 +6,6 @@ import com.njcn.harmonic.pojo.po.PmsMonitorPO;
import java.util.List; import java.util.List;
/** /**
*
* Description: * Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html * 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/29 15:32【需求编号】 * Date: 2022/11/29 15:32【需求编号】
@@ -14,14 +13,15 @@ import java.util.List;
* @author clam * @author clam
* @version V1.0.0 * @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);
} }

View File

@@ -1,12 +1,12 @@
package com.njcn.prepare.harmonic.service.mysql.area; package com.njcn.prepare.harmonic.service.mysql.area;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.harmonic.pojo.po.PmsTerminalPO; import com.njcn.harmonic.pojo.po.PmsTerminalPO;
import java.util.List; import java.util.List;
/** /**
*
* Description: * Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html * 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/29 15:53【需求编号】 * Date: 2022/11/29 15:53【需求编号】
@@ -14,7 +14,15 @@ import java.util.List;
* @author clam * @author clam
* @version V1.0.0 * @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);
} }

View File

@@ -7,7 +7,6 @@ import com.njcn.prepare.harmonic.pojo.dto.MonitorDataIntegrityDTO;
import java.util.List; import java.util.List;
/** /**
*
* Description: * Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html * 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/29 15:38【需求编号】 * Date: 2022/11/29 15:38【需求编号】
@@ -15,10 +14,10 @@ import java.util.List;
* @author clam * @author clam
* @version V1.0.0 * @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); List<MonitorDataIntegrityDTO> calculateMouthDataIntegrity(List<String> mysqlIndexList, String dataDate);
} }

View File

@@ -23,5 +23,5 @@ public interface ROperatingIndexDPOService extends IMppService<ROperatingIndexDP
* @Author: clam * @Author: clam
* @Date: 2022/11/30 * @Date: 2022/11/30
*/ */
List<ROperatingIndexDPO> queryOneMothData(String orgid, String dataDate); List<ROperatingIndexDPO> queryOneMothData(String orgid,String beginTime, String endTime);
} }

View File

@@ -22,7 +22,7 @@ public interface ROperatingIndexMPOService extends IMppService<ROperatingIndexMP
* @Author: clam * @Author: clam
* @Date: 2022/11/30 * @Date: 2022/11/30
*/ */
List<ROperatingIndexMPO> queryOneQtrData(String orgid, String dataDate); List<ROperatingIndexMPO> queryOneQtrData(String orgid,String beginTime, String endTime);
/** /**
* @Description: queryOneYearData 查询一年Mouth表数据 * @Description: queryOneYearData 查询一年Mouth表数据
@@ -31,5 +31,5 @@ public interface ROperatingIndexMPOService extends IMppService<ROperatingIndexMP
* @Author: clam * @Author: clam
* @Date: 2022/11/30 * @Date: 2022/11/30
*/ */
List<ROperatingIndexMPO> queryOneYearData(String orgid, String dataDate); List<ROperatingIndexMPO> queryOneYearData(String orgid,String beginTime, String endTime);
} }