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;
@@ -28,11 +29,20 @@ public class CommonExecutorUtils {
} }
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());
@@ -41,6 +51,7 @@ public class CommonExecutorUtils {
/** /**
* 根据xxl-job的参数生成一个任务的起始时间和结束时间 * 根据xxl-job的参数生成一个任务的起始时间和结束时间
*
* @author cdf * @author cdf
* @date 2023/9/20 * @date 2023/9/20
*/ */
@@ -83,5 +94,51 @@ public class CommonExecutorUtils {
} }
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;
@@ -63,23 +65,28 @@ public class PrimaryGridDataController extends BaseController {
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 { } else {
orgIdList = primaryGridParam.getOrgIdList(); orgIdList = primaryGridParam.getOrgIdList();
} }
primaryGridParam.setOrgIdList(orgIdList); 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); primaryGridDataService.primaryGridDataHanlder(primaryGridParam);
if (result){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
} }
} else {
primaryGridDataService.primaryGridDataHanlder(primaryGridParam);
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
} }
@ApiOperation("主网终端数据完整率月统计") @ApiOperation("主网终端数据完整率月统计")
@@ -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
@RequiredArgsConstructor
public class PmsTerminalPOServiceImpl extends ServiceImpl<PmsTerminalPOMapper, PmsTerminalPO> implements PmsTerminalPOService { 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]
@@ -48,4 +55,12 @@ public class PmsTerminalPOServiceImpl extends ServiceImpl<PmsTerminalPOMapper, P
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
@@ -180,6 +177,7 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
break; break;
} }
} }
@SneakyThrows @SneakyThrows
private void hanlderInfluxdbDay(PrimaryGridParam primaryGridParam) { private void hanlderInfluxdbDay(PrimaryGridParam primaryGridParam) {
List<String> orgIdList = primaryGridParam.getOrgIdList(); List<String> orgIdList = primaryGridParam.getOrgIdList();
@@ -187,34 +185,33 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
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 -> {
@@ -222,9 +219,8 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
}).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);
@@ -233,7 +229,7 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
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);
@@ -284,13 +280,13 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
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();
String endTime = primaryGridParam.getEndTime();
List<ROperatingIndexMPO> rOperatingIndexMPOList = new ArrayList<>(); 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()).
@@ -327,7 +323,7 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
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);
@@ -415,6 +411,7 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
} }
} }
/** /**
* @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]
@@ -439,7 +436,6 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
} }
/** /**
* @Description: 主网单位有效接入监测点个数 * @Description: 主网单位有效接入监测点个数
* 1.获取pms_monitor表中监测点状态为投运的监测点id列表 * 1.获取pms_monitor表中监测点状态为投运的监测点id列表
@@ -478,9 +474,6 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
} }
/** /**
* @Description: hanlderOracleQtr * @Description: hanlderOracleQtr
* @Param: [primaryGridParam] * @Param: [primaryGridParam]
@@ -492,13 +485,13 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
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();
String endTime = primaryGridParam.getEndTime();
List<ROperatingIndexQPO> rOperatingIndexQPOList = new ArrayList<>(); 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()).
@@ -535,7 +528,7 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
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);
@@ -561,13 +554,13 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
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();
String endTime = primaryGridParam.getEndTime();
List<ROperatingIndexYPO> rOperatingIndexYPOList = new ArrayList<>(); 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()).
@@ -604,7 +597,7 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
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);

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【需求编号】
@@ -23,5 +22,6 @@ public interface PmsMonitorPOService extends IService<PmsMonitorPO>{
* @Author: clam * @Author: clam
* @Date: 2022/11/25 * @Date: 2022/11/25
*/ */
public List<PmsMonitorPO> qurymeasurementRunPoints(String orgid); 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【需求编号】
@@ -17,4 +17,12 @@ import java.util.List;
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【需求编号】

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