代码提交

This commit is contained in:
2023-11-23 19:13:11 +08:00
parent 73d37d99ba
commit e1f308d3a4
30 changed files with 1077 additions and 4 deletions

View File

@@ -0,0 +1,40 @@
package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDate;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
*
* </p>
*
* @author cdf
* @since 2023-11-23
*/
@Getter
@Setter
@TableName("r_dim_monitor_rate_d")
public class RDimMonitorRateD{
private static final long serialVersionUID = 1L;
@MppMultiId
private String orgId;
@MppMultiId
private LocalDate statisDate;
/**
* 母线监测率(%
*/
private Float busMonitorRate;
private Float stationMonitorRate;
}

View File

@@ -0,0 +1,39 @@
package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
import java.time.LocalDate;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
*
* </p>
*
* @author cdf
* @since 2023-11-23
*/
@Getter
@Setter
@TableName("r_dim_monitor_rate_m")
public class RDimMonitorRateM {
private static final long serialVersionUID = 1L;
@MppMultiId
private String orgId;
@MppMultiId
private LocalDate statisDate;
/**
* 母线监测率(%
*/
private Float busMonitorRate;
private Float stationMonitorRate;
}

View File

@@ -0,0 +1,38 @@
package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDate;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
*
* </p>
*
* @author cdf
* @since 2023-11-23
*/
@Getter
@Setter
@TableName("r_dim_monitor_rate_y")
public class RDimMonitorRateY{
private static final long serialVersionUID = 1L;
@MppMultiId
private String orgId;
@MppMultiId
private LocalDate statisDate;
/**
* 母线监测率(%
*/
private Float busMonitorRate;
private Float stationMonitorRate;
}

View File

@@ -0,0 +1,42 @@
package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDate;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
*
* </p>
*
* @author cdf
* @since 2023-11-23
*/
@Getter
@Setter
@TableName("r_dim_obj_rate_d")
public class RDimObjRateD{
private static final long serialVersionUID = 1L;
@MppMultiId
private String orgId;
@MppMultiId
private LocalDate statisDate;
/**
* 源荷对象类别
*/
@MppMultiId
private String objType;
/**
* **源荷对象监测率(%
*/
private Float objMonitorRate;
}

View File

@@ -0,0 +1,42 @@
package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDate;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
*
* </p>
*
* @author cdf
* @since 2023-11-23
*/
@Getter
@Setter
@TableName("r_dim_obj_rate_m")
public class RDimObjRateM{
private static final long serialVersionUID = 1L;
@MppMultiId
private String orgId;
@MppMultiId
private LocalDate statisDate;
/**
* 源荷对象类别
*/
@MppMultiId
private String objType;
/**
* **源荷对象监测率(%
*/
private Float objMonitorRate;
}

View File

@@ -0,0 +1,42 @@
package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDate;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
*
* </p>
*
* @author cdf
* @since 2023-11-23
*/
@Getter
@Setter
@TableName("r_dim_obj_rate_y")
public class RDimObjRateY{
private static final long serialVersionUID = 1L;
@MppMultiId
private String orgId;
@MppMultiId
private LocalDate statisDate;
/**
* 源荷对象类别
*/
@MppMultiId
private String objType;
/**
* **源荷对象监测率(%
*/
private Float objMonitorRate;
}

View File

@@ -5,10 +5,15 @@ import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.param.DeviceAbnormaStatisticsParam;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusGlobalDService;
import com.njcn.prepare.harmonic.service.mysql.dim.*;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -20,6 +25,9 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDate;
import java.util.List;
/**
* pqs
*
@@ -36,6 +44,22 @@ public class IRDimBusGlobalDController extends BaseController {
private final IRDimBusGlobalDService irDimBusGlobalDService;
private final IRDimMonitorRateDService irDimMonitorRateDService;
private final IRDimMonitorRateMService irDimMonitorRateMService;
private final IRDimObjRateDService irDimObjRateDService;
private final IRDimObjRateMService irDimObjRateMService;
private final IRDimObjRateYService irDimObjRateYService;
private final IRDimMonitorRateYService irDimMonitorRateYService;
private final CommTerminalGeneralClient commTerminalGeneralClient;
private final DeptFeignClient deptFeignClient;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/dayDimGlobal")
@ApiOperation("母线变电站每日运行情况统计")
@@ -48,4 +72,56 @@ public class IRDimBusGlobalDController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/monitorRate")
@ApiOperation("母线变电站监测率统计")
@ApiImplicitParam(name = "calculatedParam", value = "参数", required = true)
public HttpResult<Boolean> monitorRate(@RequestBody CalculatedParam calculatedParam) {
String methodDescribe = getMethodDescribe("monitorRate");
Dept data = deptFeignClient.getRootDept().getData();
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
deptGetLineParam.setDeptId(data.getId());
deptGetLineParam.setSystemType(0);
List<DeptGetChildrenDTO> dept = commTerminalGeneralClient.deptGetLineList(deptGetLineParam).getData();
calculatedParam.setIdList(dept);
calculatedParam.setDataDate("2023-11-22");
irDimMonitorRateDService.monitorRateDay(calculatedParam);
irDimMonitorRateMService.monitorRateMonth(calculatedParam);
irDimMonitorRateYService.monitorRateYear(calculatedParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/objMonitorRate")
@ApiOperation("源荷类型监测率统计")
@ApiImplicitParam(name = "calculatedParam", value = "参数", required = true)
public HttpResult<Boolean> objMonitorRate(@RequestBody CalculatedParam calculatedParam) {
String methodDescribe = getMethodDescribe("objMonitorRate");
Dept data = deptFeignClient.getRootDept().getData();
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
deptGetLineParam.setDeptId(data.getId());
deptGetLineParam.setSystemType(0);
List<DeptGetChildrenDTO> dept = commTerminalGeneralClient.deptGetLineList(deptGetLineParam).getData();
calculatedParam.setIdList(dept);
irDimObjRateDService.objMonitorRateDay(calculatedParam);
irDimObjRateMService.objMonitorRateMonth(calculatedParam);
irDimObjRateYService.objMonitorRateYear(calculatedParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -0,0 +1,17 @@
package com.njcn.prepare.harmonic.mapper.mysql.dim;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateD;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2023-11-23
*/
public interface RDimMonitorRateDMapper extends MppBaseMapper<RDimMonitorRateD> {
}

View File

@@ -0,0 +1,17 @@
package com.njcn.prepare.harmonic.mapper.mysql.dim;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateM;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2023-11-23
*/
public interface RDimMonitorRateMMapper extends MppBaseMapper<RDimMonitorRateM> {
}

View File

@@ -0,0 +1,17 @@
package com.njcn.prepare.harmonic.mapper.mysql.dim;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateY;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2023-11-23
*/
public interface RDimMonitorRateYMapper extends MppBaseMapper<RDimMonitorRateY> {
}

View File

@@ -0,0 +1,17 @@
package com.njcn.prepare.harmonic.mapper.mysql.dim;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.dim.RDimObjRateD;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2023-11-23
*/
public interface RDimObjRateDMapper extends MppBaseMapper<RDimObjRateD> {
}

View File

@@ -0,0 +1,17 @@
package com.njcn.prepare.harmonic.mapper.mysql.dim;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.dim.RDimObjRateM;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2023-11-23
*/
public interface RDimObjRateMMapper extends MppBaseMapper<RDimObjRateM> {
}

View File

@@ -0,0 +1,17 @@
package com.njcn.prepare.harmonic.mapper.mysql.dim;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.dim.RDimObjRateY;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2023-11-23
*/
public interface RDimObjRateYMapper extends MppBaseMapper<RDimObjRateY> {
}

View File

@@ -25,4 +25,6 @@ public interface IRDimBusGlobalDService extends IMppService<RDimBusGlobalD> {
void globalCalBusBarYear(CalculatedParam<DeptGetChildrenDTO> calculatedParam);
}

View File

@@ -0,0 +1,27 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateD;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
* <p>
* 服务类
* </p>
*
* @author cdf
* @since 2023-11-23
*/
public interface IRDimMonitorRateDService extends IMppService<RDimMonitorRateD> {
/**
* 母线,电站监测率
* @author cdf
* @date 2023/11/23
*/
void monitorRateDay(CalculatedParam<DeptGetChildrenDTO> calculatedParam);
}

View File

@@ -0,0 +1,25 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateM;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
* <p>
* 服务类
* </p>
*
* @author cdf
* @since 2023-11-23
*/
public interface IRDimMonitorRateMService extends IMppService<RDimMonitorRateM> {
/**
* 母线,电站监测率
* @author cdf
* @date 2023/11/23
*/
void monitorRateMonth(CalculatedParam<DeptGetChildrenDTO> calculatedParam);
}

View File

@@ -0,0 +1,22 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateY;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
* <p>
* 服务类
* </p>
*
* @author cdf
* @since 2023-11-23
*/
public interface IRDimMonitorRateYService extends IMppService<RDimMonitorRateY> {
void monitorRateYear(CalculatedParam<DeptGetChildrenDTO> calculatedParam);
}

View File

@@ -1,7 +1,9 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimObjGlobalD;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
* <p>

View File

@@ -0,0 +1,25 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimObjRateD;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
* <p>
* 服务类
* </p>
*
* @author cdf
* @since 2023-11-23
*/
public interface IRDimObjRateDService extends IMppService<RDimObjRateD> {
/**
* 源荷对象监测率
* @author cdf
* @date 2023/11/23
*/
void objMonitorRateDay(CalculatedParam<DeptGetChildrenDTO> calculatedParam);
}

View File

@@ -0,0 +1,25 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimObjRateM;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
* <p>
* 服务类
* </p>
*
* @author cdf
* @since 2023-11-23
*/
public interface IRDimObjRateMService extends IMppService<RDimObjRateM> {
/**
* 源荷对象监测率
* @author cdf
* @date 2023/11/23
*/
void objMonitorRateMonth(CalculatedParam<DeptGetChildrenDTO> calculatedParam);
}

View File

@@ -0,0 +1,25 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimObjRateY;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
* <p>
* 服务类
* </p>
*
* @author cdf
* @since 2023-11-23
*/
public interface IRDimObjRateYService extends IMppService<RDimObjRateY> {
/**
* 源荷对象监测率
* @author cdf
* @date 2023/11/23
*/
void objMonitorRateYear(CalculatedParam<DeptGetChildrenDTO> calculatedParam);
}

View File

@@ -21,14 +21,18 @@ import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.harmonic.pojo.po.RMpEventDetailDPO;
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalD;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateD;
import com.njcn.prepare.harmonic.mapper.mysql.area.PmsMonitorPOMapper;
import com.njcn.prepare.harmonic.mapper.mysql.area.ROperatingIndexDPOMapper;
import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.day.RStatLimitTargetDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.dim.GeneratrixWireMapper;
import com.njcn.prepare.harmonic.mapper.mysql.dim.PmsCountLedgerMapper;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusGlobalDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.ROperatingMonitorDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusGlobalDService;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
@@ -75,6 +79,9 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl<RDimBusGlobalDMapp
private final PmsCountLedgerMapper pmsCountLedgerMapper;
private final ROperatingMonitorDMapper rOperatingMonitorDMapper;
/**
* 本算法只有pms使用到,只针对pms主网测点
*
@@ -248,4 +255,6 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl<RDimBusGlobalDMapp
}
}

View File

@@ -0,0 +1,118 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.po.PmsCountLedger;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateD;
import com.njcn.prepare.harmonic.mapper.mysql.area.PmsMonitorPOMapper;
import com.njcn.prepare.harmonic.mapper.mysql.dim.PmsCountLedgerMapper;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimMonitorRateDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.ROperatingMonitorDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimMonitorRateDService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author cdf
* @since 2023-11-23
*/
@Service
@RequiredArgsConstructor
public class RDimMonitorRateDServiceImpl extends MppServiceImpl<RDimMonitorRateDMapper, RDimMonitorRateD> implements IRDimMonitorRateDService {
private final PmsCountLedgerMapper pmsCountLedgerMapper;
private final ROperatingMonitorDMapper rOperatingMonitorDMapper;
private final PmsMonitorPOMapper pmsMonitorPOMapper;
@Override
public void monitorRateDay(CalculatedParam<DeptGetChildrenDTO> calculatedParam) {
List<RDimMonitorRateD> poList = new ArrayList<>();
LocalDate date = LocalDate.parse(calculatedParam.getDataDate());
List<PmsCountLedger> pmsMidLedgerList = pmsCountLedgerMapper.newDateData();
Map<String, PmsCountLedger> map = pmsMidLedgerList.stream().collect(Collectors.toMap(PmsCountLedger::getSection, Function.identity()));
List<DeptGetChildrenDTO> deptList = calculatedParam.getIdList();
for (DeptGetChildrenDTO dto : deptList) {
Float busMonitorRate = 0f;
Float stationMonitorRate = 0f;
RDimMonitorRateD rDimMonitorRateD = new RDimMonitorRateD();
rDimMonitorRateD.setOrgId(dto.getDeptId());
rDimMonitorRateD.setStatisDate(date);
List<String> monitorIds = dto.getLineIds();
if (CollUtil.isEmpty(monitorIds)) {
rDimMonitorRateD.setBusMonitorRate(busMonitorRate);
rDimMonitorRateD.setStationMonitorRate(stationMonitorRate);
poList.add(rDimMonitorRateD);
continue;
}
if (map.containsKey(dto.getDeptId())) {
PmsCountLedger pmsCountLedger = map.get(dto.getDeptId());
Integer stationNum = pmsCountLedger.getSubCount();
Integer busBarNum = pmsCountLedger.getSubvCount();
LambdaQueryWrapper<ROperatingMonitorDPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(ROperatingMonitorDPO::getDataDate, date).in(ROperatingMonitorDPO::getMeasurementPointId, monitorIds);
List<ROperatingMonitorDPO> rOperatingMonitorDPOList = rOperatingMonitorDMapper.selectList(lambdaQueryWrapper);
List<ROperatingMonitorDPO> goodList = rOperatingMonitorDPOList.stream().filter(item -> item.getIsUnusual() == 0 && item.getIndexIntegrityRate().floatValue() >= 0.95).collect(Collectors.toList());
List<String> ids = goodList.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
if (CollUtil.isNotEmpty(ids)) {
List<Monitor> monitorList = pmsMonitorPOMapper.selectList(new LambdaQueryWrapper<Monitor>().in(Monitor::getId, ids));
if (busBarNum > 0) {
long count = monitorList.stream().map(Monitor::getLineId).distinct().count();
if (count > 0) {
busMonitorRate = (float) count / busBarNum;
}
}
if (stationNum > 0) {
long count = monitorList.stream().map(Monitor::getPowerrId).distinct().count();
if (count > 0) {
stationMonitorRate = (float) count / stationNum;
}
}
}
} else {
rDimMonitorRateD.setBusMonitorRate(busMonitorRate);
rDimMonitorRateD.setStationMonitorRate(stationMonitorRate);
poList.add(rDimMonitorRateD);
continue;
}
rDimMonitorRateD.setBusMonitorRate(busMonitorRate);
rDimMonitorRateD.setStationMonitorRate(stationMonitorRate);
poList.add(rDimMonitorRateD);
}
if (CollUtil.isNotEmpty(poList)) {
this.saveOrUpdateBatchByMultiId(poList,100);
}
}
}

View File

@@ -0,0 +1,63 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateD;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateM;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimMonitorRateMMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimMonitorRateDService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimMonitorRateMService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author cdf
* @since 2023-11-23
*/
@Service
@RequiredArgsConstructor
public class RDimMonitorRateMServiceImpl extends MppServiceImpl<RDimMonitorRateMMapper, RDimMonitorRateM> implements IRDimMonitorRateMService {
private final IRDimMonitorRateDService irDimMonitorRateDService;
@Override
public void monitorRateMonth(CalculatedParam<DeptGetChildrenDTO> calculatedParam) {
List<RDimMonitorRateM> poList = new ArrayList<>();
DateTime start = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate()));
QueryWrapper<RDimMonitorRateD> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().between(RDimMonitorRateD::getStatisDate,start,DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(),DatePattern.NORM_DATE_FORMAT)));
queryWrapper.select("Org_Id as orgId,avg(Bus_Monitor_Rate) as busMonitorRate,avg(Station_Monitor_Rate) as stationMonitorRate").groupBy("Org_Id");
List<RDimMonitorRateD> rDimMonitorRateDList = irDimMonitorRateDService.list(queryWrapper);
if(CollUtil.isNotEmpty(rDimMonitorRateDList)){
for(RDimMonitorRateD rDimMonitorRateD : rDimMonitorRateDList){
RDimMonitorRateM rDimMonitorRateM = new RDimMonitorRateM();
rDimMonitorRateM.setBusMonitorRate(rDimMonitorRateD.getBusMonitorRate());
rDimMonitorRateM.setStationMonitorRate(rDimMonitorRateD.getStationMonitorRate());
rDimMonitorRateM.setOrgId(rDimMonitorRateD.getOrgId());
rDimMonitorRateM.setStatisDate(LocalDate.parse(DateUtil.format(start,DatePattern.NORM_DATE_PATTERN)));
poList.add(rDimMonitorRateM);
}
this.saveOrUpdateBatchByMultiId(poList,100);
}
}
}

View File

@@ -0,0 +1,63 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateD;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateM;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateY;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimMonitorRateYMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimMonitorRateDService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimMonitorRateMService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimMonitorRateYService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author cdf
* @since 2023-11-23
*/
@Service
@RequiredArgsConstructor
public class RDimMonitorRateYServiceImpl extends MppServiceImpl<RDimMonitorRateYMapper, RDimMonitorRateY> implements IRDimMonitorRateYService {
private final IRDimMonitorRateMService irDimMonitorRateMService;
@Override
public void monitorRateYear(CalculatedParam<DeptGetChildrenDTO> calculatedParam) {
List<RDimMonitorRateY> poList = new ArrayList<>();
DateTime start = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(),DatePattern.NORM_DATE_FORMAT));
QueryWrapper<RDimMonitorRateM> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().between(RDimMonitorRateM::getStatisDate,start,DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(),DatePattern.NORM_DATE_FORMAT)));
queryWrapper.select("Org_Id as orgId,avg(Bus_Monitor_Rate) as busMonitorRate,avg(Station_Monitor_Rate) as stationMonitorRate").groupBy("Org_Id");
List<RDimMonitorRateM> rDimMonitorRateMDList = irDimMonitorRateMService.list(queryWrapper);
if(CollUtil.isNotEmpty(rDimMonitorRateMDList)){
for(RDimMonitorRateM rDimMonitorRateM : rDimMonitorRateMDList){
RDimMonitorRateY rDimMonitorRateY = new RDimMonitorRateY();
rDimMonitorRateY.setBusMonitorRate(rDimMonitorRateM.getBusMonitorRate());
rDimMonitorRateY.setStationMonitorRate(rDimMonitorRateM.getStationMonitorRate());
rDimMonitorRateY.setOrgId(rDimMonitorRateM.getOrgId());
rDimMonitorRateY.setStatisDate(LocalDate.parse(DateUtil.format(start,DatePattern.NORM_DATE_PATTERN)));
poList.add(rDimMonitorRateY);
}
this.saveOrUpdateBatchByMultiId(poList,100);
}
}
}

View File

@@ -0,0 +1,115 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateD;
import com.njcn.harmonic.pojo.po.dim.RDimObjRateD;
import com.njcn.prepare.harmonic.mapper.mysql.area.PmsMonitorPOMapper;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimObjRateDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.ROperatingMonitorDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjRateDService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author cdf
* @since 2023-11-23
*/
@Service
@RequiredArgsConstructor
public class RDimObjRateDServiceImpl extends MppServiceImpl<RDimObjRateDMapper, RDimObjRateD> implements IRDimObjRateDService {
private final DicDataFeignClient dicDataFeignClient;
private final ROperatingMonitorDMapper rOperatingMonitorDMapper;
private final PmsMonitorPOMapper pmsMonitorPOMapper;
@Override
public void objMonitorRateDay(CalculatedParam<DeptGetChildrenDTO> calculatedParam) {
List<RDimObjRateD> poList = new ArrayList<>();
LocalDate date = LocalDate.parse(calculatedParam.getDataDate());
List<DictData> dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
dictDataList = dictDataList.stream().filter(item -> item.getCode().equals(DicDataEnum.ONSHORE_WIND.getCode()) || item.getCode().equals(DicDataEnum.POWER_STATION.getCode()) || item.getCode().equals(DicDataEnum.POWER_STATION.getCode()) || item.getCode().equals(DicDataEnum.ONSHORE_WIND.getCode())).collect(Collectors.toList());
List<DeptGetChildrenDTO> deptList = calculatedParam.getIdList();
for (DeptGetChildrenDTO dto : deptList) {
List<String> monitorIds = dto.getLineIds();
if (CollUtil.isEmpty(monitorIds)) {
for (DictData dictData : dictDataList) {
RDimObjRateD rDimObjRateD = new RDimObjRateD();
rDimObjRateD.setOrgId(dto.getDeptId());
rDimObjRateD.setStatisDate(date);
rDimObjRateD.setObjType(dictData.getId());
rDimObjRateD.setObjMonitorRate(0f);
poList.add(rDimObjRateD);
}
continue;
}
LambdaQueryWrapper<ROperatingMonitorDPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(ROperatingMonitorDPO::getDataDate, date)
.in(ROperatingMonitorDPO::getMeasurementPointId, monitorIds)
.eq(ROperatingMonitorDPO::getIsUnusual, 1).ge(ROperatingMonitorDPO::getIndexIntegrityRate, 0.95);
List<ROperatingMonitorDPO> rOperatingMonitorDPOList = rOperatingMonitorDMapper.selectList(lambdaQueryWrapper);
if (CollUtil.isNotEmpty(rOperatingMonitorDPOList)) {
List<String> ids = rOperatingMonitorDPOList.stream().map(ROperatingMonitorDPO::getMeasurementPointId).collect(Collectors.toList());
LambdaQueryWrapper<Monitor> monitorLambdaQueryWrapper = new LambdaQueryWrapper<>();
monitorLambdaQueryWrapper.in(Monitor::getId, ids);
List<Monitor> monitorList = pmsMonitorPOMapper.selectList(monitorLambdaQueryWrapper);
Map<String,List<Monitor>> map = monitorList.stream().collect(Collectors.groupingBy(Monitor::getMonitorTag));
for (DictData dictData : dictDataList) {
RDimObjRateD rDimObjRateD = new RDimObjRateD();
rDimObjRateD.setOrgId(dto.getDeptId());
rDimObjRateD.setStatisDate(date);
rDimObjRateD.setObjType(dictData.getId());
if(map.containsKey(dictData.getId())){
List<Monitor> temList = map.get(dictData.getId());
rDimObjRateD.setObjMonitorRate((float)temList.size()/100);
}else {
rDimObjRateD.setObjMonitorRate(0f);
}
poList.add(rDimObjRateD);
}
}else {
for (DictData dictData : dictDataList) {
RDimObjRateD rDimObjRateD = new RDimObjRateD();
rDimObjRateD.setOrgId(dto.getDeptId());
rDimObjRateD.setStatisDate(date);
rDimObjRateD.setObjType(dictData.getId());
rDimObjRateD.setObjMonitorRate(0f);
poList.add(rDimObjRateD);
}
}
}
this.saveOrUpdateBatchByMultiId(poList,100);
}
}

View File

@@ -0,0 +1,62 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateD;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateM;
import com.njcn.harmonic.pojo.po.dim.RDimObjRateD;
import com.njcn.harmonic.pojo.po.dim.RDimObjRateM;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimObjRateMMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjRateDService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjRateMService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author cdf
* @since 2023-11-23
*/
@Service
@RequiredArgsConstructor
public class RDimObjRateMServiceImpl extends MppServiceImpl<RDimObjRateMMapper, RDimObjRateM> implements IRDimObjRateMService {
private final IRDimObjRateDService irDimObjRateService;
@Override
public void objMonitorRateMonth(CalculatedParam<DeptGetChildrenDTO> calculatedParam) {
List<RDimObjRateM> poList = new ArrayList<>();
DateTime start = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate()));
QueryWrapper<RDimObjRateD> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().between(RDimObjRateD::getStatisDate,start,DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT)));
queryWrapper.select("Org_Id as orgId,Obj_type as objType,avg(Obj_Monitor_Rate) as objMonitorRate").groupBy("Org_Id","Obj_type");
List<RDimObjRateD> rDimObjRateDList = irDimObjRateService.list(queryWrapper);
if(CollUtil.isNotEmpty(rDimObjRateDList)){
for(RDimObjRateD rDimObjRateD : rDimObjRateDList){
RDimObjRateM rDimMonitorRateM = new RDimObjRateM();
rDimMonitorRateM.setObjType(rDimObjRateD.getObjType());
rDimMonitorRateM.setObjMonitorRate(rDimObjRateD.getObjMonitorRate());
rDimMonitorRateM.setOrgId(rDimObjRateD.getOrgId());
rDimMonitorRateM.setStatisDate(LocalDate.parse(DateUtil.format(start,DatePattern.NORM_DATE_PATTERN)));
poList.add(rDimMonitorRateM);
}
this.saveOrUpdateBatchByMultiId(poList,100);
}
}
}

View File

@@ -0,0 +1,62 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimObjRateD;
import com.njcn.harmonic.pojo.po.dim.RDimObjRateM;
import com.njcn.harmonic.pojo.po.dim.RDimObjRateY;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimObjRateYMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjRateDService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjRateMService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjRateYService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author cdf
* @since 2023-11-23
*/
@Service
@RequiredArgsConstructor
public class RDimObjRateYServiceImpl extends MppServiceImpl<RDimObjRateYMapper, RDimObjRateY> implements IRDimObjRateYService {
private final IRDimObjRateMService irDimObjRateMService;
@Override
public void objMonitorRateYear(CalculatedParam<DeptGetChildrenDTO> calculatedParam) {
List<RDimObjRateY> poList = new ArrayList<>();
DateTime start = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate()));
QueryWrapper<RDimObjRateM> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().between(RDimObjRateM::getStatisDate,start,DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT)));
queryWrapper.select("Org_Id as orgId,Obj_type as objType,avg(Obj_Monitor_Rate) as objMonitorRate").groupBy("Org_Id","Obj_type");
List<RDimObjRateM> rDimObjRateDList = irDimObjRateMService.list(queryWrapper);
if(CollUtil.isNotEmpty(rDimObjRateDList)){
for(RDimObjRateM rDimObjRateM : rDimObjRateDList){
RDimObjRateY rDimObjRateY = new RDimObjRateY();
rDimObjRateY.setObjMonitorRate(rDimObjRateM.getObjMonitorRate());
rDimObjRateY.setObjType(rDimObjRateM.getObjType());
rDimObjRateY.setOrgId(rDimObjRateM.getOrgId());
rDimObjRateY.setStatisDate(LocalDate.parse(DateUtil.format(start,DatePattern.NORM_DATE_PATTERN)));
poList.add(rDimObjRateY);
}
this.saveOrUpdateBatchByMultiId(poList,100);
}
}
}

View File

@@ -55,6 +55,8 @@ public class RDimStationBaseDServiceImpl extends ServiceImpl<RDimStationBaseDMap
private final PmsMonitorMapper pmsMonitorMapper;
@Override
public void stationStatisticDay(CalculatedParam<DeptGetChildrenDTO> calculatedParam) {
List<RDimStationBaseD> poList = new ArrayList<>();

View File

@@ -34,7 +34,12 @@ spring:
refresh: true
main:
allow-bean-definition-overriding: true
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
jackson:
time-zone: GMT+8
#项目日志的配置