修改算法
This commit is contained in:
@@ -21,7 +21,7 @@ import lombok.Data;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "r_dim_bus_target_d")
|
@TableName(value = "r_dim_bus_target_d")
|
||||||
public class RDimBusTargetDPO extends BaseEntity {
|
public class RDimBusTargetDPO {
|
||||||
@MppMultiId(value = "Org_Id")
|
@MppMultiId(value = "Org_Id")
|
||||||
private String orgId;
|
private String orgId;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,84 @@
|
|||||||
|
package com.njcn.harmonic.pojo.po.dim;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/11/21 13:45【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName(value = "r_dim_busbar_harmnic_d")
|
||||||
|
public class RDimBusbarHarmnicDPO {
|
||||||
|
/**
|
||||||
|
* 单位code
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "Org_Id")
|
||||||
|
private String orgId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计时间 yyyy-mm-dd
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "Statis_Date")
|
||||||
|
private LocalDate statisDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 母线id
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "BusBar_Id")
|
||||||
|
private String busbarId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 稳态指标类型
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "Target_type")
|
||||||
|
private String targetType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电压等级
|
||||||
|
*/
|
||||||
|
@TableField(value = "Voltage_level")
|
||||||
|
private String voltageLevel;
|
||||||
|
/**
|
||||||
|
* 监测对象类型
|
||||||
|
*/
|
||||||
|
|
||||||
|
@TableField(value = "Monitor_Tag")
|
||||||
|
private String monitorTag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 0稳态指标1.暂态指标'
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "`Level`")
|
||||||
|
private Integer level;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 超标次数)
|
||||||
|
*/
|
||||||
|
@TableField(value = "`limit_count`")
|
||||||
|
private Integer limitCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 稳态总统计次数
|
||||||
|
*/
|
||||||
|
@TableField(value = "Statis_count")
|
||||||
|
private Integer statisCount;
|
||||||
|
|
||||||
|
@TableField(value = "`State`")
|
||||||
|
private Integer state;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -10,6 +10,10 @@ import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicOrgService;
|
|||||||
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicService;
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicVoltageService;
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicVoltageService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgService;
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusTargetDPOService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusTargetMPOService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusTargetYPOService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.line.PollutionService;
|
import com.njcn.prepare.harmonic.service.mysql.line.PollutionService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
|
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
|
||||||
import com.yomahub.liteflow.annotation.LiteflowComponent;
|
import com.yomahub.liteflow.annotation.LiteflowComponent;
|
||||||
@@ -45,11 +49,16 @@ public class OrgPointExecutor extends BaseExecutor{
|
|||||||
|
|
||||||
private final RAlarmCountService rAlarmCountService;
|
private final RAlarmCountService rAlarmCountService;
|
||||||
|
|
||||||
|
private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
|
||||||
|
|
||||||
private final RDimStationTargetDPOService rDimStationTargetDPOService;
|
private final RDimStationTargetDPOService rDimStationTargetDPOService;
|
||||||
private final RDimStationTargetMPOService rDimStationTargetMPOService;
|
private final RDimStationTargetMPOService rDimStationTargetMPOService;
|
||||||
|
|
||||||
private final RDimStationTargetYPOService rDimStationTargetYPOService;
|
private final RDimStationTargetYPOService rDimStationTargetYPOService;
|
||||||
|
|
||||||
|
private final RDimBusTargetDPOService rDimBusTargetDPOService;
|
||||||
|
private final RDimBusTargetMPOService rDimBusTargetMPOService;
|
||||||
|
private final RDimBusTargetYPOService rDimBusTargetYPOService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -414,6 +423,25 @@ public class OrgPointExecutor extends BaseExecutor{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 河北主网新增算法表r_dim_busbar_harmnic_d作为中间表
|
||||||
|
*/
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rDimBusbarHarmnic", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public boolean processRDimBusbarHarmnicAccess(NodeComponent bindCmp) {
|
||||||
|
return isAccess(bindCmp);
|
||||||
|
}
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rDimBusbarHarmnic", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public void processRDimBusbarHarmnicProcess(NodeComponent bindCmp) {
|
||||||
|
String tag = bindCmp.getTag();
|
||||||
|
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
|
||||||
|
if (tag.equalsIgnoreCase("r_dim_busbar_harmnic_d")) {
|
||||||
|
//日表
|
||||||
|
rDimBusbarHarmnicDPOService.handleDay(calculatedParam);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 河北主网新增算法表r_dim_station_target_d/m/y
|
* 河北主网新增算法表r_dim_station_target_d/m/y
|
||||||
*/
|
*/
|
||||||
@@ -443,5 +471,34 @@ public class OrgPointExecutor extends BaseExecutor{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 河北主网新增算法表r_dim_bus_target_d/m/y
|
||||||
|
*/
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rDimBusTarget", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public boolean processRDimBusTargetAccess(NodeComponent bindCmp) {
|
||||||
|
return isAccess(bindCmp);
|
||||||
|
}
|
||||||
|
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rDimBusTarget", nodeType = NodeTypeEnum.COMMON)
|
||||||
|
public void processRDimBusTargetProcess(NodeComponent bindCmp) {
|
||||||
|
String tag = bindCmp.getTag();
|
||||||
|
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
|
||||||
|
if (tag.equalsIgnoreCase("r_dim_bus_target_d")) {
|
||||||
|
//日表
|
||||||
|
rDimBusTargetDPOService.handleDay(calculatedParam);
|
||||||
|
} else if (tag.equalsIgnoreCase("r_dim_bus_target_m")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//月表
|
||||||
|
rDimBusTargetMPOService.handleMonth(calculatedParam);
|
||||||
|
}
|
||||||
|
}else if (tag.equalsIgnoreCase("r_dim_bus_target_y")) {
|
||||||
|
//数据补招不执行非日表算法
|
||||||
|
if (!calculatedParam.isRepair()) {
|
||||||
|
//年表
|
||||||
|
rDimBusTargetYPOService.handleYear(calculatedParam);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package com.njcn.prepare.harmonic.mapper.mysql.dim;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
|
import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/11/21 13:45【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
public interface RDimBusbarHarmnicDPOMapper extends MppBaseMapper<RDimBusbarHarmnicDPO> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusbarHarmnicDPOMapper">
|
||||||
|
<resultMap id="BaseResultMap" type="com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
<!--@Table r_dim_busbar_harmnic_d-->
|
||||||
|
<id column="Org_Id" jdbcType="CHAR" property="orgId" />
|
||||||
|
<id column="Statis_Date" jdbcType="DATE" property="statisDate" />
|
||||||
|
<id column="BusBar_Id" jdbcType="CHAR" property="busbarId" />
|
||||||
|
<id column="Target_type" jdbcType="CHAR" property="targetType" />
|
||||||
|
<id column="Voltage_level" jdbcType="CHAR" property="voltageLevel" />
|
||||||
|
<result column="Level" jdbcType="BIT" property="level" />
|
||||||
|
<result column="limit count" jdbcType="INTEGER" property="limitCount" />
|
||||||
|
<result column="Statis_count" jdbcType="INTEGER" property="statisCount" />
|
||||||
|
<result column="State" jdbcType="BIT" property="state" />
|
||||||
|
<result column="Create_By" jdbcType="CHAR" property="createBy" />
|
||||||
|
<result column="Create_Time" jdbcType="TIMESTAMP" property="createTime" />
|
||||||
|
<result column="Update_By" jdbcType="CHAR" property="updateBy" />
|
||||||
|
<result column="Update_Time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||||
|
</resultMap>
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
Org_Id, Statis_Date, BusBar_Id, Target_type, Voltage_level, `Level`, `limit count`,
|
||||||
|
Statis_count, `State`, Create_By, Create_Time, Update_By, Update_Time
|
||||||
|
</sql>
|
||||||
|
</mapper>
|
||||||
@@ -21,4 +21,6 @@ public interface PmsMonitorMapper extends BaseMapper<Monitor> {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<Monitor> queryConfigMonitor(@Param("monitorIdList") List<String> monitorIdList, @Param("codeList") List<String> codeList);
|
List<Monitor> queryConfigMonitor(@Param("monitorIdList") List<String> monitorIdList, @Param("codeList") List<String> codeList);
|
||||||
|
|
||||||
|
List<Monitor> queryEffectiveBusbars(@Param("collect") List<String> collect);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,4 +20,13 @@
|
|||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="queryEffectiveBusbars" resultType="com.njcn.device.pms.pojo.po.Monitor">
|
||||||
|
select * from pms_monitor where id IN
|
||||||
|
<foreach collection="collect" item="item" open="(" close=")" separator=",">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.dim;
|
package com.njcn.prepare.harmonic.service.mysql.dim;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.harmonic.pojo.po.dim.RDimBusTargetDPO;
|
import com.njcn.harmonic.pojo.po.dim.RDimBusTargetDPO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
@@ -13,4 +16,5 @@ import com.njcn.harmonic.pojo.po.dim.RDimBusTargetDPO;
|
|||||||
public interface RDimBusTargetDPOService extends IMppService<RDimBusTargetDPO> {
|
public interface RDimBusTargetDPOService extends IMppService<RDimBusTargetDPO> {
|
||||||
|
|
||||||
|
|
||||||
|
void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,10 @@ 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.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.harmonic.pojo.po.dim.RDimBusTargetMPO;
|
import com.njcn.harmonic.pojo.po.dim.RDimBusTargetMPO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
@@ -14,4 +17,5 @@ import com.njcn.harmonic.pojo.po.dim.RDimBusTargetMPO;
|
|||||||
public interface RDimBusTargetMPOService extends IMppService<RDimBusTargetMPO> {
|
public interface RDimBusTargetMPOService extends IMppService<RDimBusTargetMPO> {
|
||||||
|
|
||||||
|
|
||||||
|
void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,10 @@ 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.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.harmonic.pojo.po.dim.RDimBusTargetYPO;
|
import com.njcn.harmonic.pojo.po.dim.RDimBusTargetYPO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
@@ -14,4 +17,5 @@ import com.njcn.harmonic.pojo.po.dim.RDimBusTargetYPO;
|
|||||||
public interface RDimBusTargetYPOService extends IMppService<RDimBusTargetYPO> {
|
public interface RDimBusTargetYPOService extends IMppService<RDimBusTargetYPO> {
|
||||||
|
|
||||||
|
|
||||||
|
void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.dim;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/11/21 13:45【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
public interface RDimBusbarHarmnicDPOService extends IMppService<RDimBusbarHarmnicDPO> {
|
||||||
|
|
||||||
|
|
||||||
|
void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||||
|
}
|
||||||
@@ -1,11 +1,44 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
|
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
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.device.pq.pojo.po.RStatIntegrityD;
|
||||||
|
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD;
|
||||||
|
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD;
|
||||||
|
import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper;
|
||||||
|
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.Impl.line.ROperatingMonitorDServiceImpl;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusTargetDPOService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.IRMpPartHarmonicDetailDService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.IRMpSurplusHarmonicDetailDService;
|
||||||
|
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 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.njcn.harmonic.pojo.po.dim.RDimBusTargetDPO;
|
import com.njcn.harmonic.pojo.po.dim.RDimBusTargetDPO;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusTargetDPOMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusTargetDPOMapper;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -16,6 +49,111 @@ import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusTargetDPOMapper;
|
|||||||
* @version V1.0.0
|
* @version V1.0.0
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class RDimBusTargetDPOServiceImpl extends MppServiceImpl<RDimBusTargetDPOMapper, RDimBusTargetDPO> implements IService<RDimBusTargetDPO> {
|
@RequiredArgsConstructor
|
||||||
|
public class RDimBusTargetDPOServiceImpl extends MppServiceImpl<RDimBusTargetDPOMapper, RDimBusTargetDPO> implements RDimBusTargetDPOService {
|
||||||
|
|
||||||
|
|
||||||
|
private final DicDataFeignClient dicDataFeignClient;
|
||||||
|
private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
|
||||||
|
|
||||||
|
//咨询后直接用Mapper查询,这个算法只用pms补考虑pq,后续不知道要不要改
|
||||||
|
private final PmsMonitorMapper pmsMonitorMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RDimBusTargetDPO> rDimBusTargetDPOList = new ArrayList<>();
|
||||||
|
//指标对象类型
|
||||||
|
List<DictData> indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode(
|
||||||
|
DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
|
||||||
|
List<String> collect = 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())).map(DictData::getId).collect(Collectors.toList());
|
||||||
|
List<RDimBusbarHarmnicDPO> rdibBusbarHarms = rDimBusbarHarmnicDPOService.lambdaQuery().eq(RDimBusbarHarmnicDPO::getStatisDate, localDate).in(RDimBusbarHarmnicDPO::getTargetType, collect).list();
|
||||||
|
if (CollectionUtils.isEmpty(rdibBusbarHarms)){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Map<String, Map<String, List<RDimBusbarHarmnicDPO>>> collect1 = rdibBusbarHarms.stream().collect(Collectors.groupingBy(RDimBusbarHarmnicDPO::getOrgId,
|
||||||
|
Collectors.groupingBy(RDimBusbarHarmnicDPO::getTargetType)));
|
||||||
|
collect1.forEach((orgId,v)->{
|
||||||
|
v.forEach((tag,rdibBusbarHarmList)->{
|
||||||
|
RDimBusTargetDPO rDimBusTargetDPO = new RDimBusTargetDPO();
|
||||||
|
rDimBusTargetDPO.setOrgId(orgId);
|
||||||
|
rDimBusTargetDPO.setTargetType(tag);
|
||||||
|
rDimBusTargetDPO.setStatisDate(localDate);
|
||||||
|
//有效接入母线数量
|
||||||
|
Double effectiveBuses = Double.valueOf(rdibBusbarHarmList.size());
|
||||||
|
long count = rdibBusbarHarmList.stream().filter(temp -> temp.getLimitCount() > 0).count();
|
||||||
|
double v1 = count / effectiveBuses;
|
||||||
|
double limitrate = Math.round(v1 * 100.0) / 100.0;
|
||||||
|
rDimBusTargetDPO.setLimitRate(limitrate);
|
||||||
|
double asDouble = rdibBusbarHarmList.stream().filter(temp -> temp.getStatisCount() > 0).mapToDouble(temp -> {
|
||||||
|
return Double.valueOf(temp.getLimitCount()) / temp.getStatisCount();
|
||||||
|
}).average().getAsDouble();
|
||||||
|
double passRate = Math.round(asDouble * 100.0) / 100.0;
|
||||||
|
rDimBusTargetDPO.setPassRate(1-passRate);
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void overLimitTimes(DictData temp, List<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDList, List<RMpPartHarmonicDetailD> rMpPartHarmonicDetailDList, List<Monitor> monitorList) {
|
||||||
|
Double overLimitTimes =0.00;
|
||||||
|
Map<String, Integer> collect = monitorList.stream().collect(Collectors.toMap(Monitor::getId, Monitor::getStatisticalInterval));
|
||||||
|
if (Objects.equals(temp.getCode(), DicDataEnum.VOLTAGE_DEV.getCode())) {
|
||||||
|
overLimitTimes = rMpPartHarmonicDetailDList.stream().mapToDouble(po -> {
|
||||||
|
return po.getVDevTimes() * collect.get(po.getMeasurementPointId());
|
||||||
|
}
|
||||||
|
).sum();
|
||||||
|
|
||||||
|
} else if ( Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode())) {
|
||||||
|
overLimitTimes = rMpSurplusHarmonicDetailDList.stream().mapToDouble(po -> {
|
||||||
|
return po.getFlickerTimes() * collect.get(po.getMeasurementPointId());
|
||||||
|
}
|
||||||
|
).sum();
|
||||||
|
|
||||||
|
} else if ( Objects.equals(temp.getCode(), DicDataEnum.PHASE_VOLTAGE.getCode())) {
|
||||||
|
overLimitTimes = rMpPartHarmonicDetailDList.stream().mapToDouble(po -> {
|
||||||
|
return po.getUnbalanceTimes() * collect.get(po.getMeasurementPointId());
|
||||||
|
}
|
||||||
|
).sum();
|
||||||
|
|
||||||
|
} else if (Objects.equals(temp.getCode(), DicDataEnum.THD_V.getCode())){
|
||||||
|
overLimitTimes = rMpPartHarmonicDetailDList.stream().mapToDouble(po -> {
|
||||||
|
return po.getVTimes() * collect.get(po.getMeasurementPointId());
|
||||||
|
}
|
||||||
|
).sum();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: overLimitBusbarsCount
|
||||||
|
* @Param:
|
||||||
|
* @return: java.lang.Integer
|
||||||
|
* @Author: clam
|
||||||
|
* @Date: 2023/11/21
|
||||||
|
*/
|
||||||
|
private Integer overLimitBusbarsCount(DictData temp, List<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDList, List<RMpPartHarmonicDetailD> rMpPartHarmonicDetailDList) {
|
||||||
|
Integer busbarsCount =0;
|
||||||
|
|
||||||
|
if (Objects.equals(temp.getCode(), DicDataEnum.VOLTAGE_DEV.getCode())) {
|
||||||
|
busbarsCount = rMpPartHarmonicDetailDList.stream().filter(po -> Objects.equals(po.getIsVDev(), 1)).collect(Collectors.toList()).size();
|
||||||
|
|
||||||
|
} else if ( Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode())) {
|
||||||
|
busbarsCount = rMpSurplusHarmonicDetailDList.stream().filter(po -> Objects.equals(po.getIsFlicker(), 1)).collect(Collectors.toList()).size();
|
||||||
|
|
||||||
|
} else if ( Objects.equals(temp.getCode(), DicDataEnum.PHASE_VOLTAGE.getCode())) {
|
||||||
|
busbarsCount = rMpPartHarmonicDetailDList.stream().filter(po -> Objects.equals(po.getIsUnbalance(), 1)).collect(Collectors.toList()).size();
|
||||||
|
|
||||||
|
|
||||||
|
} else if (Objects.equals(temp.getCode(), DicDataEnum.THD_V.getCode())){
|
||||||
|
busbarsCount = rMpPartHarmonicDetailDList.stream().filter(po -> Objects.equals(po.getIsVThd(), 1)).collect(Collectors.toList()).size();
|
||||||
|
|
||||||
|
}
|
||||||
|
return busbarsCount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,6 +2,11 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusTargetDPOService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusTargetMPOService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusTargetMPOMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusTargetMPOMapper;
|
||||||
import com.njcn.harmonic.pojo.po.dim.RDimBusTargetMPO;
|
import com.njcn.harmonic.pojo.po.dim.RDimBusTargetMPO;
|
||||||
@@ -15,6 +20,11 @@ import com.njcn.harmonic.pojo.po.dim.RDimBusTargetMPO;
|
|||||||
* @version V1.0.0
|
* @version V1.0.0
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class RDimBusTargetMPOServiceImpl extends MppServiceImpl<RDimBusTargetMPOMapper, RDimBusTargetMPO> implements IService<RDimBusTargetMPO> {
|
@RequiredArgsConstructor
|
||||||
|
public class RDimBusTargetMPOServiceImpl extends MppServiceImpl<RDimBusTargetMPOMapper, RDimBusTargetMPO> implements RDimBusTargetMPOService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,6 +2,11 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusTargetDPOService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusTargetYPOService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.njcn.harmonic.pojo.po.dim.RDimBusTargetYPO;
|
import com.njcn.harmonic.pojo.po.dim.RDimBusTargetYPO;
|
||||||
@@ -16,6 +21,11 @@ import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusTargetYPOMapper;
|
|||||||
* @version V1.0.0
|
* @version V1.0.0
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class RDimBusTargetYPOServiceImpl extends MppServiceImpl<RDimBusTargetYPOMapper, RDimBusTargetYPO> implements IService<RDimBusTargetYPO> {
|
@RequiredArgsConstructor
|
||||||
|
public class RDimBusTargetYPOServiceImpl extends MppServiceImpl<RDimBusTargetYPOMapper, RDimBusTargetYPO> implements RDimBusTargetYPOService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,283 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
|
||||||
|
|
||||||
|
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.RMpEventDetailDPO;
|
||||||
|
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||||
|
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.line.RMpEventDetailDService;
|
||||||
|
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 com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusbarHarmnicDPOMapper;
|
||||||
|
import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/11/21 13:45【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class RDimBusbarHarmnicDPOServiceImpl extends MppServiceImpl<RDimBusbarHarmnicDPOMapper, RDimBusbarHarmnicDPO> implements RDimBusbarHarmnicDPOService{
|
||||||
|
|
||||||
|
private final DicDataFeignClient dicDataFeignClient;
|
||||||
|
private final IRStatLimitRateDService irStatLimitRateDService;
|
||||||
|
private final ROperatingMonitorService rOperatingMonitorService;
|
||||||
|
private final RMpEventDetailDService rMpEventDetailDService;
|
||||||
|
|
||||||
|
//咨询后直接用Mapper查询,这个算法只用pms补考虑pq,后续不知道要不要改
|
||||||
|
private final PmsMonitorMapper pmsMonitorMapper;
|
||||||
|
@Override
|
||||||
|
public void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||||
|
List<RDimBusbarHarmnicDPO> rDimBusbarHarmnicDPOList = new ArrayList<>();
|
||||||
|
//指标对象类型
|
||||||
|
List<DictData> indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode(
|
||||||
|
DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
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> eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||||
|
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
if (CollectionUtils.isEmpty(lineBaseList)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
List<Monitor> monitorList = new ArrayList<>();
|
||||||
|
|
||||||
|
//有效母线数
|
||||||
|
Integer effectiveBusbars=0;
|
||||||
|
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();
|
||||||
|
if(!CollectionUtils.isEmpty(list)){
|
||||||
|
List<String> collect = list.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||||
|
monitorList = pmsMonitorMapper.queryEffectiveBusbars(collect);
|
||||||
|
//分组获取最频繁统计监测点
|
||||||
|
Map<String, Optional<Monitor>> collect1 = monitorList.stream().collect(Collectors.groupingBy(Monitor::getLineId,
|
||||||
|
Collectors.minBy(Comparator.comparingInt(Monitor::getStatisticalInterval))));
|
||||||
|
monitorList = collect1.values().stream()
|
||||||
|
.filter(Optional::isPresent)
|
||||||
|
.map(Optional::get)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
if (CollectionUtils.isEmpty(monitorList)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> linids = monitorList.stream().map(Monitor::getId).collect(Collectors.toList());
|
||||||
|
List<RStatLimitRateDPO> rStatLimitRateDPOS = irStatLimitRateDService.findList(linids, beginDay, endDay);
|
||||||
|
List<RMpEventDetailDPO> rMpEventDetailDPOList = rMpEventDetailDService.lambdaQuery().in(RMpEventDetailDPO::getMeasurementPointId, linids).eq(RMpEventDetailDPO::getDataDate, localDate).list();
|
||||||
|
monitorList.stream().forEach(busbar->{
|
||||||
|
//稳态
|
||||||
|
indicatorTypeDate.stream().forEach(temp->{
|
||||||
|
//总稳态指标排除
|
||||||
|
if (Objects.equals(temp.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
RDimBusbarHarmnicDPO rDimBusbarHarmnicDPO = new RDimBusbarHarmnicDPO();
|
||||||
|
rDimBusbarHarmnicDPO.setOrgId(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rDimBusbarHarmnicDPO.setStatisDate(localDate);
|
||||||
|
rDimBusbarHarmnicDPO.setBusbarId(busbar.getLineId());
|
||||||
|
rDimBusbarHarmnicDPO.setTargetType(temp.getId());
|
||||||
|
rDimBusbarHarmnicDPO.setLevel(0);
|
||||||
|
rDimBusbarHarmnicDPO.setState(1);
|
||||||
|
rDimBusbarHarmnicDPO.setMonitorTag(busbar.getMonitorTag());
|
||||||
|
rDimBusbarHarmnicDPO.setVoltageLevel(busbar.getVoltageLevel());
|
||||||
|
Optional<RStatLimitRateDPO> first = rStatLimitRateDPOS.stream().filter(rStatLimitRateDPO -> Objects.equals(rStatLimitRateDPO.getLineId(), busbar.getId())).findFirst();
|
||||||
|
RStatLimitRateDPO rStatLimitRateDPO = new RStatLimitRateDPO();
|
||||||
|
if (first.isPresent()) {
|
||||||
|
rStatLimitRateDPO = first.get();
|
||||||
|
}else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode())){
|
||||||
|
rDimBusbarHarmnicDPO.setStatisCount(rStatLimitRateDPO.getFlickerAllTime());
|
||||||
|
|
||||||
|
}else {
|
||||||
|
rDimBusbarHarmnicDPO.setStatisCount(rStatLimitRateDPO.getAllTime());
|
||||||
|
|
||||||
|
}
|
||||||
|
rDimBusbarHarmnicDPO.setLimitCount(overLimitBusbarsCount(temp,rStatLimitRateDPO));
|
||||||
|
rDimBusbarHarmnicDPOList.add(rDimBusbarHarmnicDPO);
|
||||||
|
|
||||||
|
});
|
||||||
|
//暂态
|
||||||
|
eventStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||||
|
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RDimBusbarHarmnicDPO rDimBusbarHarmnicDPO = new RDimBusbarHarmnicDPO();
|
||||||
|
rDimBusbarHarmnicDPO.setOrgId(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rDimBusbarHarmnicDPO.setStatisDate(localDate);
|
||||||
|
rDimBusbarHarmnicDPO.setTargetType(dictData.getId());
|
||||||
|
rDimBusbarHarmnicDPO.setBusbarId(busbar.getLineId());
|
||||||
|
rDimBusbarHarmnicDPO.setLevel(1);
|
||||||
|
rDimBusbarHarmnicDPO.setState(1);
|
||||||
|
rDimBusbarHarmnicDPO.setMonitorTag(busbar.getMonitorTag());
|
||||||
|
rDimBusbarHarmnicDPO.setVoltageLevel(busbar.getVoltageLevel());
|
||||||
|
Optional<RMpEventDetailDPO> first = rMpEventDetailDPOList.stream().filter(rMpEventDetailDPO -> Objects.equals(rMpEventDetailDPO.getMeasurementPointId(), busbar.getId())).findFirst();
|
||||||
|
RMpEventDetailDPO rMpEventDetailDPO = new RMpEventDetailDPO();
|
||||||
|
if (first.isPresent()) {
|
||||||
|
rMpEventDetailDPO = first.get();
|
||||||
|
}else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
rDimBusbarHarmnicDPO.setLimitCount(eventBusbarsCount(dictData,rMpEventDetailDPO));
|
||||||
|
rDimBusbarHarmnicDPOList.add(rDimBusbarHarmnicDPO);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!CollectionUtils.isEmpty(rDimBusbarHarmnicDPOList)) {
|
||||||
|
this.saveOrUpdateBatchByMultiId(rDimBusbarHarmnicDPOList, 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Integer eventBusbarsCount(DictData dictData, RMpEventDetailDPO rMpEventDetailDPO) {
|
||||||
|
Integer eventCount =0;
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.VOLTAGE_DIP.getCode())) {
|
||||||
|
eventCount = rMpEventDetailDPO.getSagTimes();
|
||||||
|
} else if ( Objects.equals(dictData.getCode(), DicDataEnum.VOLTAGE_RISE.getCode())) {
|
||||||
|
eventCount = rMpEventDetailDPO.getSwellTimes();
|
||||||
|
|
||||||
|
} else if ( Objects.equals(dictData.getCode(), DicDataEnum.SHORT_INTERRUPTIONS.getCode())) {
|
||||||
|
eventCount = rMpEventDetailDPO.getInterruptTimes();
|
||||||
|
}
|
||||||
|
|
||||||
|
return eventCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: overLimitBusbarsCount
|
||||||
|
* @Param:
|
||||||
|
* @return: java.lang.Integer
|
||||||
|
* @Author: clam
|
||||||
|
* @Date: 2023/11/21
|
||||||
|
*/
|
||||||
|
private Integer overLimitBusbarsCount(DictData temp,RStatLimitRateDPO rStatLimitRateDPO ) {
|
||||||
|
Integer overLimiCount =0;
|
||||||
|
|
||||||
|
if (Objects.equals(temp.getCode(), DicDataEnum.VOLTAGE_DEV.getCode())) {
|
||||||
|
overLimiCount = rStatLimitRateDPO.getVoltageDevOvertime();
|
||||||
|
} else if ( Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode())) {
|
||||||
|
overLimiCount = rStatLimitRateDPO.getFlickerOvertime();
|
||||||
|
|
||||||
|
} else if ( Objects.equals(temp.getCode(), DicDataEnum.PHASE_VOLTAGE.getCode())) {
|
||||||
|
overLimiCount = rStatLimitRateDPO.getUbalanceOvertime();
|
||||||
|
} else if (Objects.equals(temp.getCode(), DicDataEnum.THD_V.getCode())){
|
||||||
|
overLimiCount = rStatLimitRateDPO.getUaberranceOvertime();
|
||||||
|
}else if ( Objects.equals(temp.getCode(), DicDataEnum.HARMONIC_VOLTAGE.getCode())) {
|
||||||
|
overLimiCount = Stream.of( rStatLimitRateDPO.getUharm2Overtime(),
|
||||||
|
rStatLimitRateDPO.getUharm3Overtime(),
|
||||||
|
rStatLimitRateDPO.getUharm4Overtime(),
|
||||||
|
rStatLimitRateDPO.getUharm5Overtime(),
|
||||||
|
rStatLimitRateDPO.getUharm6Overtime(),
|
||||||
|
rStatLimitRateDPO.getUharm7Overtime(),
|
||||||
|
rStatLimitRateDPO.getUharm8Overtime(),
|
||||||
|
rStatLimitRateDPO.getUharm9Overtime(),
|
||||||
|
rStatLimitRateDPO.getUharm10Overtime() ,
|
||||||
|
rStatLimitRateDPO.getUharm11Overtime() ,
|
||||||
|
rStatLimitRateDPO.getUharm12Overtime() ,
|
||||||
|
rStatLimitRateDPO.getUharm13Overtime() ,
|
||||||
|
rStatLimitRateDPO.getUharm14Overtime() ,
|
||||||
|
rStatLimitRateDPO.getUharm15Overtime() ,
|
||||||
|
rStatLimitRateDPO.getUharm16Overtime() ,
|
||||||
|
rStatLimitRateDPO.getUharm17Overtime() ,
|
||||||
|
rStatLimitRateDPO.getUharm18Overtime() ,
|
||||||
|
rStatLimitRateDPO.getUharm19Overtime() ,
|
||||||
|
rStatLimitRateDPO.getUharm20Overtime() ,
|
||||||
|
rStatLimitRateDPO.getUharm21Overtime() ,
|
||||||
|
rStatLimitRateDPO.getUharm22Overtime() ,
|
||||||
|
rStatLimitRateDPO.getUharm23Overtime() ,
|
||||||
|
rStatLimitRateDPO.getUharm24Overtime() ,
|
||||||
|
rStatLimitRateDPO.getUharm25Overtime()).max(Integer::compare).get();
|
||||||
|
|
||||||
|
} else if ( Objects.equals(temp.getCode(), DicDataEnum.HARMONIC_CURRENT.getCode())) {
|
||||||
|
overLimiCount = Stream.of(rStatLimitRateDPO.getIharm2Overtime(),
|
||||||
|
rStatLimitRateDPO.getIharm3Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm4Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm5Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm6Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm7Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm8Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm9Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm10Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm11Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm12Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm13Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm14Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm15Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm16Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm17Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm18Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm19Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm20Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm21Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm22Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm23Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm24Overtime() ,
|
||||||
|
rStatLimitRateDPO.getIharm25Overtime()).max(Integer::compare).get()
|
||||||
|
;
|
||||||
|
} else if (Objects.equals(temp.getCode(), DicDataEnum.INTERHARMONIC_VOLTAGE.getCode())){
|
||||||
|
overLimiCount = Stream.of(rStatLimitRateDPO.getInuharm1Overtime(),
|
||||||
|
rStatLimitRateDPO.getInuharm2Overtime(),
|
||||||
|
rStatLimitRateDPO.getInuharm3Overtime(),
|
||||||
|
rStatLimitRateDPO.getInuharm4Overtime(),
|
||||||
|
rStatLimitRateDPO.getInuharm5Overtime(),
|
||||||
|
rStatLimitRateDPO.getInuharm6Overtime(),
|
||||||
|
rStatLimitRateDPO.getInuharm7Overtime(),
|
||||||
|
rStatLimitRateDPO.getInuharm8Overtime() ,
|
||||||
|
rStatLimitRateDPO.getInuharm9Overtime() ,
|
||||||
|
rStatLimitRateDPO.getInuharm10Overtime() ,
|
||||||
|
rStatLimitRateDPO.getInuharm11Overtime() ,
|
||||||
|
rStatLimitRateDPO.getInuharm12Overtime() ,
|
||||||
|
rStatLimitRateDPO.getInuharm13Overtime() ,
|
||||||
|
rStatLimitRateDPO.getInuharm14Overtime() ,
|
||||||
|
rStatLimitRateDPO.getInuharm15Overtime() ,
|
||||||
|
rStatLimitRateDPO.getInuharm16Overtime() ).max(Integer::compare).get();
|
||||||
|
|
||||||
|
}else if ( Objects.equals(temp.getCode(), DicDataEnum.FREQUENCY_DEV.getCode())) {
|
||||||
|
overLimiCount = rStatLimitRateDPO.getFreqDevOvertime();
|
||||||
|
} else if (Objects.equals(temp.getCode(), DicDataEnum.NEG_CURRENT.getCode())){
|
||||||
|
overLimiCount = rStatLimitRateDPO.getINegOvertime();
|
||||||
|
}
|
||||||
|
return overLimiCount;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.line;
|
package com.njcn.prepare.harmonic.service.mysql.line;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD;
|
||||||
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author xy
|
* @author xy
|
||||||
*/
|
*/
|
||||||
public interface IRMpPartHarmonicDetailDService {
|
public interface IRMpPartHarmonicDetailDService extends IMppService<RMpPartHarmonicDetailD> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算监测点稳态指标超标明细日表1数据
|
* 计算监测点稳态指标超标明细日表1数据
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.line;
|
package com.njcn.prepare.harmonic.service.mysql.line;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD;
|
||||||
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author xy
|
* @author xy
|
||||||
*/
|
*/
|
||||||
public interface IRMpSurplusHarmonicDetailDService {
|
public interface IRMpSurplusHarmonicDetailDService extends IMppService<RMpSurplusHarmonicDetailD> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算监测点稳态指标超标明细日表2数据
|
* 计算监测点稳态指标超标明细日表2数据
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ public enum DicDataEnum {
|
|||||||
PHASE_VOLTAGE("负序电压不平衡度", "phase_Voltage"),
|
PHASE_VOLTAGE("负序电压不平衡度", "phase_Voltage"),
|
||||||
FREQUENCY_DEV("频率偏差", "Frequency_Dev"),
|
FREQUENCY_DEV("频率偏差", "Frequency_Dev"),
|
||||||
NEG_CURRENT("负序电流", "Neg_Current"),
|
NEG_CURRENT("负序电流", "Neg_Current"),
|
||||||
|
THD_V("电压总谐波畸变率", "Thd_V"),
|
||||||
TOTAL_INDICATOR("总稳态指标", "Total_Indicator"),
|
TOTAL_INDICATOR("总稳态指标", "Total_Indicator"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user