添加算法
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.harmonic.pojo.po.dim;
|
package com.njcn.harmonic.pojo.po.dim;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
import com.njcn.db.bo.BaseEntity;
|
import com.njcn.db.bo.BaseEntity;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
@@ -18,38 +19,37 @@ import lombok.Setter;
|
|||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@TableName("r_dim_obj_target_d")
|
@TableName("r_dim_obj_target_d")
|
||||||
public class RDimObjTargetD extends BaseEntity {
|
public class RDimObjTargetD {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
@MppMultiId(value = "Org_Id")
|
||||||
private String orgId;
|
private String orgId;
|
||||||
|
@MppMultiId(value = "Statis_Date")
|
||||||
private LocalDate statisDate;
|
private LocalDate statisDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 源荷对象类型
|
* 源荷对象类型
|
||||||
*/
|
*/
|
||||||
|
@MppMultiId(value = "Object_Type")
|
||||||
private String objectType;
|
private String objectType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 稳态指标类型
|
* 稳态指标类型
|
||||||
*/
|
*/
|
||||||
|
@MppMultiId(value = "Target_type")
|
||||||
private String targetType;
|
private String targetType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* **源荷对象**指标超标占比(%)
|
* **源荷对象**指标超标占比(%)
|
||||||
*/
|
*/
|
||||||
private Float monitorRate;
|
private Double monitorRate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* **源荷对象**指标平均超标占比(%)
|
* **源荷对象**指标平均超标占比(%)
|
||||||
*/
|
*/
|
||||||
private Float limitRate;
|
private Double limitRate;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* **源荷对象**指标平均超标天数(天)
|
|
||||||
*/
|
|
||||||
private Float limitAvgRate;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.harmonic.pojo.po.dim;
|
package com.njcn.harmonic.pojo.po.dim;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
import com.njcn.db.bo.BaseEntity;
|
import com.njcn.db.bo.BaseEntity;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
@@ -22,18 +23,21 @@ public class RDimObjTargetM extends BaseEntity {
|
|||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@MppMultiId(value = "Org_Id")
|
||||||
private String orgId;
|
private String orgId;
|
||||||
|
@MppMultiId(value = "Statis_Date")
|
||||||
private LocalDate statisDate;
|
private LocalDate statisDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 源荷对象类型
|
* 源荷对象类型
|
||||||
*/
|
*/
|
||||||
|
@MppMultiId(value = "Object_Type")
|
||||||
private String objectType;
|
private String objectType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 稳态指标类型
|
* 稳态指标类型
|
||||||
*/
|
*/
|
||||||
|
@MppMultiId(value = "Target_type")
|
||||||
private String targetType;
|
private String targetType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.harmonic.pojo.po.dim;
|
package com.njcn.harmonic.pojo.po.dim;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
import com.njcn.db.bo.BaseEntity;
|
import com.njcn.db.bo.BaseEntity;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
@@ -22,18 +23,21 @@ public class RDimObjTargetY extends BaseEntity {
|
|||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@MppMultiId(value = "Org_Id")
|
||||||
private String orgId;
|
private String orgId;
|
||||||
|
@MppMultiId(value = "Statis_Date")
|
||||||
private LocalDate statisDate;
|
private LocalDate statisDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 源荷对象类型
|
* 源荷对象类型
|
||||||
*/
|
*/
|
||||||
|
@MppMultiId(value = "Object_Type")
|
||||||
private String objectType;
|
private String objectType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 稳态指标类型
|
* 稳态指标类型
|
||||||
*/
|
*/
|
||||||
|
@MppMultiId(value = "Target_type")
|
||||||
private String targetType;
|
private String targetType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -57,6 +57,10 @@ public class OrgPointExecutor extends BaseExecutor{
|
|||||||
private final RDimBusTargetMPOService rDimBusTargetMPOService;
|
private final RDimBusTargetMPOService rDimBusTargetMPOService;
|
||||||
private final RDimBusTargetYPOService rDimBusTargetYPOService;
|
private final RDimBusTargetYPOService rDimBusTargetYPOService;
|
||||||
|
|
||||||
|
private final IRDimObjTargetDService irDimObjTargetDService;
|
||||||
|
private final IRDimObjTargetMService irDimObjTargetMService;
|
||||||
|
private final IRDimObjTargetYService irDimObjTargetYService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -500,5 +504,34 @@ public class OrgPointExecutor extends BaseExecutor{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 河北主网新增算法表r_dim_obj_target_d/m/y
|
||||||
|
*/
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rDimObjTarget", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public boolean processRDimObjTargetAccess(NodeComponent bindCmp) {
|
||||||
|
return isAccess(bindCmp);
|
||||||
|
}
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rDimObjTarget", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public void processRDimObjTargetProcess(NodeComponent bindCmp) {
|
||||||
|
String tag = bindCmp.getTag();
|
||||||
|
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
|
||||||
|
if (tag.equalsIgnoreCase("r_dim_obj_target_d")) {
|
||||||
|
//日表
|
||||||
|
irDimObjTargetDService.handleDay(calculatedParam);
|
||||||
|
} else if (tag.equalsIgnoreCase("r_dim_obj_target_m")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//月表
|
||||||
|
irDimObjTargetMService.handleMonth(calculatedParam);
|
||||||
|
}
|
||||||
|
}else if (tag.equalsIgnoreCase("r_dim_obj_target_y")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//年表
|
||||||
|
irDimObjTargetYService.handleYear(calculatedParam);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.prepare.harmonic.mapper.mysql.dim;
|
package com.njcn.prepare.harmonic.mapper.mysql.dim;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetD;
|
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetD;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -11,6 +12,6 @@ import com.njcn.harmonic.pojo.po.dim.RDimObjTargetD;
|
|||||||
* @author cdf
|
* @author cdf
|
||||||
* @since 2023-11-22
|
* @since 2023-11-22
|
||||||
*/
|
*/
|
||||||
public interface RDimObjTargetDMapper extends BaseMapper<RDimObjTargetD> {
|
public interface RDimObjTargetDMapper extends MppBaseMapper<RDimObjTargetD> {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.prepare.harmonic.mapper.mysql.dim;
|
package com.njcn.prepare.harmonic.mapper.mysql.dim;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetM;
|
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetM;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -11,6 +12,6 @@ import com.njcn.harmonic.pojo.po.dim.RDimObjTargetM;
|
|||||||
* @author cdf
|
* @author cdf
|
||||||
* @since 2023-11-22
|
* @since 2023-11-22
|
||||||
*/
|
*/
|
||||||
public interface RDimObjTargetMMapper extends BaseMapper<RDimObjTargetM> {
|
public interface RDimObjTargetMMapper extends MppBaseMapper<RDimObjTargetM> {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.prepare.harmonic.mapper.mysql.dim;
|
package com.njcn.prepare.harmonic.mapper.mysql.dim;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetY;
|
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetY;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -11,6 +12,6 @@ import com.njcn.harmonic.pojo.po.dim.RDimObjTargetY;
|
|||||||
* @author cdf
|
* @author cdf
|
||||||
* @since 2023-11-22
|
* @since 2023-11-22
|
||||||
*/
|
*/
|
||||||
public interface RDimObjTargetYMapper extends BaseMapper<RDimObjTargetY> {
|
public interface RDimObjTargetYMapper extends MppBaseMapper<RDimObjTargetY> {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.dim;
|
package com.njcn.prepare.harmonic.service.mysql.dim;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetD;
|
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetD;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -11,6 +14,7 @@ import com.njcn.harmonic.pojo.po.dim.RDimObjTargetD;
|
|||||||
* @author cdf
|
* @author cdf
|
||||||
* @since 2023-11-22
|
* @since 2023-11-22
|
||||||
*/
|
*/
|
||||||
public interface IRDimObjTargetDService extends IService<RDimObjTargetD> {
|
public interface IRDimObjTargetDService extends IMppService<RDimObjTargetD> {
|
||||||
|
|
||||||
|
void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.dim;
|
package com.njcn.prepare.harmonic.service.mysql.dim;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetM;
|
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetM;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -11,6 +14,7 @@ import com.njcn.harmonic.pojo.po.dim.RDimObjTargetM;
|
|||||||
* @author cdf
|
* @author cdf
|
||||||
* @since 2023-11-22
|
* @since 2023-11-22
|
||||||
*/
|
*/
|
||||||
public interface IRDimObjTargetMService extends IService<RDimObjTargetM> {
|
public interface IRDimObjTargetMService extends IMppService<RDimObjTargetM> {
|
||||||
|
|
||||||
|
void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.dim;
|
package com.njcn.prepare.harmonic.service.mysql.dim;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetY;
|
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetY;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -11,6 +14,7 @@ import com.njcn.harmonic.pojo.po.dim.RDimObjTargetY;
|
|||||||
* @author cdf
|
* @author cdf
|
||||||
* @since 2023-11-22
|
* @since 2023-11-22
|
||||||
*/
|
*/
|
||||||
public interface IRDimObjTargetYService extends IService<RDimObjTargetY> {
|
public interface IRDimObjTargetYService extends IMppService<RDimObjTargetY> {
|
||||||
|
|
||||||
|
void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,32 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
|
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
|
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
|
import com.njcn.device.pms.pojo.po.Monitor;
|
||||||
|
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||||
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetD;
|
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetD;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimObjTargetDMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimObjTargetDMapper;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.line.PmsMonitorMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.day.IRStatLimitRateDService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjTargetDService;
|
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjTargetDService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService;
|
||||||
|
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 org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -16,6 +37,133 @@ import org.springframework.stereotype.Service;
|
|||||||
* @since 2023-11-22
|
* @since 2023-11-22
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class RDimObjTargetDServiceImpl extends ServiceImpl<RDimObjTargetDMapper, RDimObjTargetD> implements IRDimObjTargetDService {
|
@RequiredArgsConstructor
|
||||||
|
public class RDimObjTargetDServiceImpl extends MppServiceImpl<RDimObjTargetDMapper, RDimObjTargetD> implements IRDimObjTargetDService {
|
||||||
|
private final DicDataFeignClient dicDataFeignClient;
|
||||||
|
private final ROperatingMonitorService rOperatingMonitorService;
|
||||||
|
private final IRStatLimitRateDService irStatLimitRateDService;
|
||||||
|
//咨询后直接用Mapper查询,这个算法只用pms补考虑pq,后续不知道要不要改
|
||||||
|
private final PmsMonitorMapper pmsMonitorMapper;
|
||||||
|
@Override
|
||||||
|
public void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RDimObjTargetD> rdiObjTargetDs = new ArrayList<>();
|
||||||
|
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN);
|
||||||
|
String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN);
|
||||||
|
List<DictData> indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode(
|
||||||
|
DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
//过滤电压总谐波畸变率、2-50次谐波电流、三相不平衡、负序电流、闪变
|
||||||
|
List<DictData> finalIndicatorTypeDate = indicatorTypeDate.stream().filter(temp -> Objects.equals(temp.getCode(), DicDataEnum.VOLTAGE_DEV.getCode()) ||
|
||||||
|
Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode()) ||
|
||||||
|
Objects.equals(temp.getCode(), DicDataEnum.PHASE_VOLTAGE.getCode()) ||
|
||||||
|
Objects.equals(temp.getCode(), DicDataEnum.THD_V.getCode())||
|
||||||
|
Objects.equals(temp.getCode(), DicDataEnum.HARMONIC_CURRENT.getCode())).collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<DictData> monitoringLabels = dicDataFeignClient.getDicDataByTypeCode(
|
||||||
|
DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
|
||||||
|
//过滤监测对象包括牵引站、风电场、光伏电站、重要,敏感用户
|
||||||
|
List<String> monitoringLabelIds = monitoringLabels.stream().filter(temp -> Objects.equals(
|
||||||
|
temp.getCode(), DicDataEnum.POWER_STATION.getCode()) ||
|
||||||
|
Objects.equals(temp.getCode(), DicDataEnum.WIND_FARM.getCode()) ||
|
||||||
|
Objects.equals(temp.getCode(), DicDataEnum.SENSITIVE_USERS.getCode()) ||
|
||||||
|
Objects.equals(temp.getCode(), DicDataEnum.IMPORTANT_USERS.getCode())||
|
||||||
|
Objects.equals(temp.getCode(), DicDataEnum.TRACTION_STATION.getCode())).map(DictData::getId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
if (CollectionUtils.isEmpty(lineBaseList)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
List<String> collect2 = lineBaseList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
List<ROperatingMonitorDPO> list = rOperatingMonitorService.lambdaQuery().
|
||||||
|
in(ROperatingMonitorDPO::getMeasurementPointId, collect2).
|
||||||
|
eq(ROperatingMonitorDPO::getDataDate, localDate).
|
||||||
|
ge(ROperatingMonitorDPO::getDataIntegrityRate, 0.95).
|
||||||
|
eq(ROperatingMonitorDPO::getIsUnusual, 1).list();
|
||||||
|
List<Monitor> monitorList = new ArrayList<>();
|
||||||
|
|
||||||
|
if(CollectionUtils.isEmpty(list)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
List<String> collect = list.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||||
|
monitorList = pmsMonitorMapper.queryEffectiveBusbars(collect);
|
||||||
|
monitorList = monitorList.stream().filter(temp -> monitoringLabelIds.contains(temp.getMonitorTag())).collect(Collectors.toList());
|
||||||
|
Map<String, List<Monitor>> collect1 = monitorList.stream().
|
||||||
|
collect(Collectors.groupingBy(Monitor::getMonitorTag));
|
||||||
|
|
||||||
|
List<String> linids = monitorList.stream().map(Monitor::getId).collect(Collectors.toList());
|
||||||
|
List<RStatLimitRateDPO> rStatLimitRateDPOS = irStatLimitRateDService.findList(linids, beginDay, endDay);
|
||||||
|
if(CollectionUtils.isEmpty(rStatLimitRateDPOS)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
collect1.forEach((tag, monitors)->{
|
||||||
|
finalIndicatorTypeDate.stream().forEach(temp->{
|
||||||
|
RDimObjTargetD rDimObjTargetD = new RDimObjTargetD();
|
||||||
|
rDimObjTargetD.setOrgId(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rDimObjTargetD.setStatisDate(localDate);
|
||||||
|
rDimObjTargetD.setTargetType(temp.getId());
|
||||||
|
rDimObjTargetD.setObjectType(tag);
|
||||||
|
//有效接入监测点
|
||||||
|
int effectivePoint = monitors.size();
|
||||||
|
//对应指标的超表监测点
|
||||||
|
int overLimitsPoint = overLimitsPointCount(temp,rStatLimitRateDPOS);
|
||||||
|
double v = Double.valueOf(overLimitsPoint) / effectivePoint;
|
||||||
|
rDimObjTargetD.setMonitorRate(Math.round(v * 100.0) / 100.0);
|
||||||
|
rDimObjTargetD.setLimitRate(Math.round(v * 100.0) / 100.0);
|
||||||
|
rdiObjTargetDs.add(rDimObjTargetD);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!CollectionUtils.isEmpty(rdiObjTargetDs)) {
|
||||||
|
this.saveOrUpdateBatchByMultiId(rdiObjTargetDs, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private int overLimitsPointCount(DictData temp, List<RStatLimitRateDPO> rStatLimitRateDPOS) {
|
||||||
|
Integer overLimiCount =0;
|
||||||
|
|
||||||
|
if (Objects.equals(temp.getCode(), DicDataEnum.THD_V.getCode())) {
|
||||||
|
overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->po.getUaberranceOvertime()>0).count()+"");
|
||||||
|
} else if ( Objects.equals(temp.getCode(), DicDataEnum.HARMONIC_CURRENT.getCode())) {
|
||||||
|
overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->
|
||||||
|
po.getIharm2Overtime()>0||
|
||||||
|
po.getIharm3Overtime() >0||
|
||||||
|
po.getIharm4Overtime() >0||
|
||||||
|
po.getIharm5Overtime() >0||
|
||||||
|
po.getIharm6Overtime() >0||
|
||||||
|
po.getIharm7Overtime() >0||
|
||||||
|
po.getIharm8Overtime() >0||
|
||||||
|
po.getIharm9Overtime() >0||
|
||||||
|
po.getIharm10Overtime() >0||
|
||||||
|
po.getIharm11Overtime() >0||
|
||||||
|
po.getIharm12Overtime() >0||
|
||||||
|
po.getIharm13Overtime() >0||
|
||||||
|
po.getIharm14Overtime() >0||
|
||||||
|
po.getIharm15Overtime() >0||
|
||||||
|
po.getIharm16Overtime() >0||
|
||||||
|
po.getIharm17Overtime() >0||
|
||||||
|
po.getIharm18Overtime() >0||
|
||||||
|
po.getIharm19Overtime() >0||
|
||||||
|
po.getIharm20Overtime() >0||
|
||||||
|
po.getIharm21Overtime() >0||
|
||||||
|
po.getIharm22Overtime() >0||
|
||||||
|
po.getIharm23Overtime() >0||
|
||||||
|
po.getIharm24Overtime() >0||
|
||||||
|
po.getIharm25Overtime()>0).count()+"");
|
||||||
|
|
||||||
|
} else if ( Objects.equals(temp.getCode(), DicDataEnum.PHASE_VOLTAGE.getCode())) {
|
||||||
|
overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->po.getUaberranceOvertime()>0).count()+"");
|
||||||
|
} else if ( Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode())) {
|
||||||
|
overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->po.getFlickerOvertime()>0).count()+"");
|
||||||
|
} else if (Objects.equals(temp.getCode(), DicDataEnum.NEG_CURRENT.getCode())){
|
||||||
|
overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->po.getINegOvertime()>0).count()+"");
|
||||||
|
}
|
||||||
|
return overLimiCount;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,11 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl;
|
|||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetM;
|
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetM;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimObjTargetMMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimObjTargetMMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjTargetMService;
|
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjTargetMService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -16,6 +19,10 @@ import org.springframework.stereotype.Service;
|
|||||||
* @since 2023-11-22
|
* @since 2023-11-22
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class RDimObjTargetMServiceImpl extends ServiceImpl<RDimObjTargetMMapper, RDimObjTargetM> implements IRDimObjTargetMService {
|
public class RDimObjTargetMServiceImpl extends MppServiceImpl<RDimObjTargetMMapper, RDimObjTargetM> implements IRDimObjTargetMService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,11 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl;
|
|||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetY;
|
import com.njcn.harmonic.pojo.po.dim.RDimObjTargetY;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimObjTargetYMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimObjTargetYMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjTargetYService;
|
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimObjTargetYService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -16,6 +19,10 @@ import org.springframework.stereotype.Service;
|
|||||||
* @since 2023-11-22
|
* @since 2023-11-22
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class RDimObjTargetYServiceImpl extends ServiceImpl<RDimObjTargetYMapper, RDimObjTargetY> implements IRDimObjTargetYService {
|
public class RDimObjTargetYServiceImpl extends MppServiceImpl<RDimObjTargetYMapper, RDimObjTargetY> implements IRDimObjTargetYService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -219,8 +219,11 @@ public enum DicDataEnum {
|
|||||||
ELECTRIFIED_RAILWAYS("电气化铁路", "Electrified_Railways"),
|
ELECTRIFIED_RAILWAYS("电气化铁路", "Electrified_Railways"),
|
||||||
SMELT_LOAD("冶炼负荷", "Smelt_Load"),
|
SMELT_LOAD("冶炼负荷", "Smelt_Load"),
|
||||||
DISTRIBUTED_PHOTOVOLTAICS("分布式光伏", "Distributed_Photovoltaics"),
|
DISTRIBUTED_PHOTOVOLTAICS("分布式光伏", "Distributed_Photovoltaics"),
|
||||||
SENSITIVE_USERS("敏感用户","Sensitive_Users"),
|
WIND_FARM("风电场", "Wind_Farm"),
|
||||||
IMPORTANT_USERS("重要用户","Important_Users"),
|
SENSITIVE_USERS("敏感用户", "Sensitive_Users"),
|
||||||
|
IMPORTANT_USERS("重要用户", "Important_Users"),
|
||||||
|
TRACTION_STATION("牵引站", "Traction_Station"),
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电压等级
|
* 电压等级
|
||||||
|
|||||||
Reference in New Issue
Block a user