添加算法
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
package com.njcn.harmonic.pojo.po.dim;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/11/27 15:09【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "r_dim_bus_station_event_startis_d")
|
||||
public class RDimBusStationEventStartisDPO {
|
||||
@MppMultiId(value = "Org_Id")
|
||||
private String orgId;
|
||||
|
||||
@MppMultiId(value = "Statis_Date")
|
||||
private LocalDate statisDate;
|
||||
|
||||
@MppMultiId(value = "Startis_Type")
|
||||
private String startisType;
|
||||
|
||||
/**
|
||||
* 监测到暂态指标的变电站母线占比(%)
|
||||
*/
|
||||
@TableField(value = "Limit_Rate")
|
||||
private Double limitRate;
|
||||
|
||||
/**
|
||||
* 变电站母线暂态指标发生频次(次/线)
|
||||
*/
|
||||
@TableField(value = "Limit_Freq")
|
||||
private Double limitFreq;
|
||||
|
||||
/**
|
||||
* 监测到暂态指标的变电站占比(%)
|
||||
*/
|
||||
@TableField(value = "Station_Limit_Rate")
|
||||
private Double stationLimitRate;
|
||||
|
||||
/**
|
||||
* 变电站暂态指标发生频次(次/站)
|
||||
*/
|
||||
@TableField(value = "Station_Freq")
|
||||
private Double stationFreq;
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.njcn.harmonic.pojo.po.dim;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/11/27 15:09【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "r_dim_bus_station_event_startis_m")
|
||||
public class RDimBusStationEventStartisMPO {
|
||||
@MppMultiId(value = "Org_Id")
|
||||
private String orgId;
|
||||
|
||||
@MppMultiId(value = "Statis_Date")
|
||||
private LocalDate statisDate;
|
||||
|
||||
@MppMultiId(value = "Startis_Type")
|
||||
private String startisType;
|
||||
|
||||
/**
|
||||
* 监测到暂态指标的变电站母线占比(%)
|
||||
*/
|
||||
@TableField(value = "Limit_Rate")
|
||||
private Double limitRate;
|
||||
|
||||
/**
|
||||
* 变电站母线暂态指标发生频次(次/线)
|
||||
*/
|
||||
@TableField(value = "Limit_Freq")
|
||||
private Double limitFreq;
|
||||
|
||||
/**
|
||||
* 监测到暂态指标的变电站占比(%)
|
||||
*/
|
||||
@TableField(value = "Station_Limit_Rate")
|
||||
private Double stationLimitRate;
|
||||
|
||||
/**
|
||||
* 变电站暂态指标发生频次(次/站)
|
||||
*/
|
||||
@TableField(value = "Station_Freq")
|
||||
private Double stationFreq;
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.njcn.harmonic.pojo.po.dim;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/11/27 15:10【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "r_dim_bus_station_event_startis_y")
|
||||
public class RDimBusStationEventStartisYPO {
|
||||
@MppMultiId(value = "Org_Id")
|
||||
private String orgId;
|
||||
|
||||
@MppMultiId(value = "Statis_Date")
|
||||
private LocalDate statisDate;
|
||||
|
||||
@MppMultiId(value = "Startis_Type")
|
||||
private String startisType;
|
||||
|
||||
/**
|
||||
* 监测到暂态指标的变电站母线占比(%)
|
||||
*/
|
||||
@TableField(value = "Limit_Rate")
|
||||
private Double limitRate;
|
||||
|
||||
/**
|
||||
* 变电站母线暂态指标发生频次(次/线)
|
||||
*/
|
||||
@TableField(value = "Limit_Freq")
|
||||
private Double limitFreq;
|
||||
|
||||
/**
|
||||
* 监测到暂态指标的变电站占比(%)
|
||||
*/
|
||||
@TableField(value = "Station_Limit_Rate")
|
||||
private Double stationLimitRate;
|
||||
|
||||
/**
|
||||
* 变电站暂态指标发生频次(次/站)
|
||||
*/
|
||||
@TableField(value = "Station_Freq")
|
||||
private Double stationFreq;
|
||||
}
|
||||
@@ -20,7 +20,7 @@ public class CalculatedParam<T> implements Serializable {
|
||||
* 是否全链路执行算法
|
||||
* 非全链路执行时,tag集合必须非空
|
||||
*/
|
||||
@ApiModelProperty(name = "repair",value = "是否全链执行")
|
||||
@ApiModelProperty(name = "fullChain",value = "是否全链执行")
|
||||
private boolean fullChain;
|
||||
|
||||
/**
|
||||
|
||||
@@ -64,8 +64,9 @@ public class OrgPointExecutor extends BaseExecutor{
|
||||
private final IRDimObjGlobalMService irDimObjGlobalMService;
|
||||
private final IRDimObjGlobalYService irDimObjGlobalYService;
|
||||
|
||||
|
||||
|
||||
private final RDimBusStationEventStartisDPOService rDimBusStationEventStartisDPOService;
|
||||
private final RDimBusStationEventStartisMPOService rDimBusStationEventStartisMPOService;
|
||||
private final RDimBusStationEventStartisYPOService rDimBusStationEventStartisYPOService;
|
||||
/**
|
||||
*
|
||||
* 3.3.2. 单位标数据质量
|
||||
@@ -565,5 +566,34 @@ public class OrgPointExecutor extends BaseExecutor{
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 河北主网新增算法表r_dim_obj_target_d/m/y
|
||||
*/
|
||||
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rDimObjBusStationEventStartis", nodeType = NodeTypeEnum.COMMON)
|
||||
public boolean processRDimObjBusStationEventStartisAccess(NodeComponent bindCmp) {
|
||||
return isAccess(bindCmp);
|
||||
}
|
||||
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rDimObjBusStationEventStartis", nodeType = NodeTypeEnum.COMMON)
|
||||
public void processDimObjBusStationEventStartisProcess(NodeComponent bindCmp) {
|
||||
String tag = bindCmp.getTag();
|
||||
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
|
||||
if (tag.equalsIgnoreCase("r_dim_bus_station_event_startis_d")) {
|
||||
//日表
|
||||
rDimBusStationEventStartisDPOService.handleDay(calculatedParam);
|
||||
} else if (tag.equalsIgnoreCase("r_dim_bus_station_event_startis_m")) {
|
||||
//数据补招不执行非日表算法
|
||||
if (!calculatedParam.isRepair()) {
|
||||
//月表
|
||||
rDimBusStationEventStartisMPOService.handleMonth(calculatedParam);
|
||||
}
|
||||
}else if (tag.equalsIgnoreCase("r_dim_bus_station_event_startis_y")) {
|
||||
//数据补招不执行非日表算法
|
||||
if (!calculatedParam.isRepair()) {
|
||||
//年表
|
||||
rDimBusStationEventStartisYPOService.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.RDimBusStationEventStartisDPO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/11/27 15:09【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface RDimBusStationEventStartisDPOMapper extends MppBaseMapper<RDimBusStationEventStartisDPO> {
|
||||
}
|
||||
@@ -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.RDimBusStationEventStartisMPO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/11/27 15:09【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface RDimBusStationEventStartisMPOMapper extends MppBaseMapper<RDimBusStationEventStartisMPO> {
|
||||
}
|
||||
@@ -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.RDimBusStationEventStartisYPO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/11/27 15:10【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface RDimBusStationEventStartisYPOMapper extends MppBaseMapper<RDimBusStationEventStartisYPO> {
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?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.RDimBusStationEventStartisDPOMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.harmonic.pojo.po.dim.RDimBusStationEventStartisDPO">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table r_dim_bus_station_event_startis_d-->
|
||||
<id column="Org_Id" jdbcType="CHAR" property="orgId" />
|
||||
<id column="Statis_Date" jdbcType="DATE" property="statisDate" />
|
||||
<id column="Startis_Type" jdbcType="VARCHAR" property="startisType" />
|
||||
<result column="Limit_Rate" jdbcType="REAL" property="limitRate" />
|
||||
<result column="Limit_Freq" jdbcType="REAL" property="limitFreq" />
|
||||
<result column="Station_Limit_Rate" jdbcType="REAL" property="stationLimitRate" />
|
||||
<result column="Station_Freq" jdbcType="REAL" property="stationFreq" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
Org_Id, Statis_Date, Startis_Type, Limit_Rate, Limit_Freq, Station_Limit_Rate, Station_Freq
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -0,0 +1,19 @@
|
||||
<?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.RDimBusStationEventStartisMPOMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.harmonic.pojo.po.dim.RDimBusStationEventStartisMPO">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table r_dim_bus_station_event_startis_m-->
|
||||
<id column="Org_Id" jdbcType="CHAR" property="orgId" />
|
||||
<id column="Statis_Date" jdbcType="DATE" property="statisDate" />
|
||||
<id column="Startis_Type" jdbcType="VARCHAR" property="startisType" />
|
||||
<result column="Limit_Rate" jdbcType="REAL" property="limitRate" />
|
||||
<result column="Limit_Freq" jdbcType="REAL" property="limitFreq" />
|
||||
<result column="Station_Limit_Rate" jdbcType="REAL" property="stationLimitRate" />
|
||||
<result column="Station_Freq" jdbcType="REAL" property="stationFreq" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
Org_Id, Statis_Date, Startis_Type, Limit_Rate, Limit_Freq, Station_Limit_Rate, Station_Freq
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -0,0 +1,19 @@
|
||||
<?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.RDimBusStationEventStartisYPOMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.harmonic.pojo.po.dim.RDimBusStationEventStartisYPO">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table r_dim_bus_station_event_startis_y-->
|
||||
<id column="Org_Id" jdbcType="CHAR" property="orgId" />
|
||||
<id column="Statis_Date" jdbcType="DATE" property="statisDate" />
|
||||
<id column="Startis_Type" jdbcType="VARCHAR" property="startisType" />
|
||||
<result column="Limit_Rate" jdbcType="REAL" property="limitRate" />
|
||||
<result column="Limit_Freq" jdbcType="REAL" property="limitFreq" />
|
||||
<result column="Station_Limit_Rate" jdbcType="REAL" property="stationLimitRate" />
|
||||
<result column="Station_Freq" jdbcType="REAL" property="stationFreq" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
Org_Id, Statis_Date, Startis_Type, Limit_Rate, Limit_Freq, Station_Limit_Rate, Station_Freq
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -0,0 +1,20 @@
|
||||
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.RDimBusStationEventStartisDPO;
|
||||
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/11/27 15:09【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface RDimBusStationEventStartisDPOService extends IMppService<RDimBusStationEventStartisDPO> {
|
||||
|
||||
|
||||
void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
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.RDimBusStationEventStartisMPO;
|
||||
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/11/27 15:09【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface RDimBusStationEventStartisMPOService extends IMppService<RDimBusStationEventStartisMPO> {
|
||||
|
||||
|
||||
void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
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.RDimBusStationEventStartisYPO;
|
||||
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/11/27 15:10【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface RDimBusStationEventStartisYPOService extends IMppService<RDimBusStationEventStartisYPO> {
|
||||
|
||||
|
||||
void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
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.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||
import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventStartisDPO;
|
||||
import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
|
||||
import com.njcn.harmonic.pojo.po.dim.RDimStationHarmnicDPO;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusStationEventStartisDPOMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusStationEventStartisDPOService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.dim.RDimStationHarmnicDPOService;
|
||||
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.util.CollectionUtils;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/11/27 15:09【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class RDimBusStationEventStartisDPOServiceImpl extends MppServiceImpl<RDimBusStationEventStartisDPOMapper, RDimBusStationEventStartisDPO> implements RDimBusStationEventStartisDPOService{
|
||||
|
||||
private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
|
||||
private final RDimStationHarmnicDPOService rDimStationHarmnicDPOService;
|
||||
private final DicDataFeignClient dicDataFeignClient;
|
||||
|
||||
@Override
|
||||
public void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||
|
||||
List<RDimBusStationEventStartisDPO> poList = new ArrayList<>();
|
||||
LocalDate date = LocalDate.parse(calculatedParam.getDataDate());
|
||||
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||
|
||||
|
||||
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
|
||||
LambdaQueryWrapper<RDimBusbarHarmnicDPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(RDimBusbarHarmnicDPO::getOrgId,deptGetChildrenMoreDTO.getUnitId())
|
||||
.eq(RDimBusbarHarmnicDPO::getStatisDate,date)
|
||||
.eq(RDimBusbarHarmnicDPO::getLevel,1);
|
||||
List<RDimBusbarHarmnicDPO> rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(lambdaQueryWrapper);
|
||||
List<RDimStationHarmnicDPO> rDimStationHarmnicDPOList = rDimStationHarmnicDPOService.lambdaQuery().eq(RDimStationHarmnicDPO::getOrgId, deptGetChildrenMoreDTO.getUnitId())
|
||||
.eq(RDimStationHarmnicDPO::getStatisDate, date)
|
||||
.eq(RDimStationHarmnicDPO::getLevel, 1).list();
|
||||
|
||||
//暂态
|
||||
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;
|
||||
}
|
||||
RDimBusStationEventStartisDPO rDimBusStationEventStartisDPO = new RDimBusStationEventStartisDPO();
|
||||
rDimBusStationEventStartisDPO.setOrgId(deptGetChildrenMoreDTO.getUnitId());
|
||||
rDimBusStationEventStartisDPO.setStatisDate(date);
|
||||
rDimBusStationEventStartisDPO.setStartisType(dictData.getId());
|
||||
|
||||
|
||||
List<RDimBusbarHarmnicDPO> rDimBusbarHarmnicDPOListBytag = rDimBusbarHarmnicDPOList.stream().filter(temp -> Objects.equals(temp.getTargetType(), dictData.getId())).collect(Collectors.toList());
|
||||
List<RDimStationHarmnicDPO> rDimStationHarmnicDPOListBytag = rDimStationHarmnicDPOList.stream().filter(temp -> Objects.equals(temp.getTargetType(), dictData.getId())).collect(Collectors.toList());
|
||||
if(CollUtil.isEmpty(rDimBusbarHarmnicDPOListBytag)){
|
||||
rDimBusStationEventStartisDPO.setLimitRate(0.00);
|
||||
rDimBusStationEventStartisDPO.setLimitFreq(0.00);
|
||||
}else {
|
||||
long allBus = rDimBusbarHarmnicDPOListBytag.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
|
||||
List<RDimBusbarHarmnicDPO> limitBus = rDimBusbarHarmnicDPOListBytag.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
|
||||
|
||||
long limit = rDimBusbarHarmnicDPOListBytag.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
|
||||
rDimBusStationEventStartisDPO.setLimitRate(Double.valueOf((float)limit/allBus));
|
||||
|
||||
int sum = limitBus.stream().mapToInt(RDimBusbarHarmnicDPO::getLimitCount).sum();
|
||||
rDimBusStationEventStartisDPO.setLimitFreq(Double.valueOf((float)sum/allBus));
|
||||
|
||||
}
|
||||
if(CollUtil.isEmpty(rDimStationHarmnicDPOListBytag)){
|
||||
rDimBusStationEventStartisDPO.setStationFreq(0.00);
|
||||
rDimBusStationEventStartisDPO.setStationLimitRate(0.00);
|
||||
}else {
|
||||
long allBus = rDimStationHarmnicDPOListBytag.stream().map(RDimStationHarmnicDPO::getStationId).distinct().count();
|
||||
List<RDimStationHarmnicDPO> limitstation = rDimStationHarmnicDPOListBytag.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
|
||||
|
||||
long limit = rDimStationHarmnicDPOListBytag.stream().map(RDimStationHarmnicDPO::getStationId).distinct().count();
|
||||
rDimBusStationEventStartisDPO.setLimitRate(Double.valueOf((float)limit/allBus));
|
||||
|
||||
int sum = limitstation.stream().mapToInt(RDimStationHarmnicDPO::getLimitCount).sum();
|
||||
rDimBusStationEventStartisDPO.setLimitFreq(Double.valueOf((float)sum/allBus));
|
||||
|
||||
}
|
||||
|
||||
poList.add(rDimBusStationEventStartisDPO);
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(poList) ) {
|
||||
this.saveOrUpdateBatchByMultiId(poList,500);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
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.LambdaQueryWrapper;
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||
import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventStartisMPO;
|
||||
import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
|
||||
import com.njcn.harmonic.pojo.po.dim.RDimStationHarmnicDPO;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusStationEventStartisMPOMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusStationEventStartisMPOService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.dim.RDimStationHarmnicDPOService;
|
||||
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.util.CollectionUtils;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/11/27 15:09【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class RDimBusStationEventStartisMPOServiceImpl extends MppServiceImpl<RDimBusStationEventStartisMPOMapper, RDimBusStationEventStartisMPO> implements RDimBusStationEventStartisMPOService{
|
||||
|
||||
|
||||
private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
|
||||
private final RDimStationHarmnicDPOService rDimStationHarmnicDPOService;
|
||||
private final DicDataFeignClient dicDataFeignClient;
|
||||
|
||||
@Override
|
||||
public void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||
List<RDimBusStationEventStartisMPO> poList = new ArrayList<>();
|
||||
LocalDate date = LocalDate.parse(calculatedParam.getDataDate());
|
||||
//获取日期
|
||||
DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||
DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||
|
||||
|
||||
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
|
||||
LambdaQueryWrapper<RDimBusbarHarmnicDPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(RDimBusbarHarmnicDPO::getOrgId,deptGetChildrenMoreDTO.getUnitId())
|
||||
.between(RDimBusbarHarmnicDPO::getStatisDate,begin,end)
|
||||
.eq(RDimBusbarHarmnicDPO::getLevel,1);
|
||||
List<RDimBusbarHarmnicDPO> rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(lambdaQueryWrapper);
|
||||
List<RDimStationHarmnicDPO> rDimStationHarmnicDPOList = rDimStationHarmnicDPOService.lambdaQuery().eq(RDimStationHarmnicDPO::getOrgId, deptGetChildrenMoreDTO.getUnitId())
|
||||
.between(RDimStationHarmnicDPO::getStatisDate,begin,end)
|
||||
.eq(RDimStationHarmnicDPO::getLevel, 1).list();
|
||||
|
||||
//暂态
|
||||
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;
|
||||
}
|
||||
RDimBusStationEventStartisMPO rDimBusStationEventStartisMPO = new RDimBusStationEventStartisMPO();
|
||||
rDimBusStationEventStartisMPO.setOrgId(deptGetChildrenMoreDTO.getUnitId());
|
||||
rDimBusStationEventStartisMPO.setStatisDate(date);
|
||||
rDimBusStationEventStartisMPO.setStartisType(dictData.getId());
|
||||
|
||||
|
||||
List<RDimBusbarHarmnicDPO> rDimBusbarHarmnicDPOListBytag = rDimBusbarHarmnicDPOList.stream().filter(temp -> Objects.equals(temp.getTargetType(), dictData.getId())).collect(Collectors.toList());
|
||||
List<RDimStationHarmnicDPO> rDimStationHarmnicDPOListBytag = rDimStationHarmnicDPOList.stream().filter(temp -> Objects.equals(temp.getTargetType(), dictData.getId())).collect(Collectors.toList());
|
||||
if(CollUtil.isEmpty(rDimBusbarHarmnicDPOListBytag)){
|
||||
rDimBusStationEventStartisMPO.setLimitRate(0.00);
|
||||
rDimBusStationEventStartisMPO.setLimitFreq(0.00);
|
||||
}else {
|
||||
long allBus = rDimBusbarHarmnicDPOListBytag.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
|
||||
List<RDimBusbarHarmnicDPO> limitBus = rDimBusbarHarmnicDPOListBytag.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
|
||||
|
||||
long limit = rDimBusbarHarmnicDPOListBytag.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
|
||||
rDimBusStationEventStartisMPO.setLimitRate(Double.valueOf((float)limit/allBus));
|
||||
|
||||
int sum = limitBus.stream().mapToInt(RDimBusbarHarmnicDPO::getLimitCount).sum();
|
||||
rDimBusStationEventStartisMPO.setLimitFreq(Double.valueOf((float)sum/allBus));
|
||||
|
||||
}
|
||||
if(CollUtil.isEmpty(rDimStationHarmnicDPOListBytag)){
|
||||
rDimBusStationEventStartisMPO.setStationFreq(0.00);
|
||||
rDimBusStationEventStartisMPO.setStationLimitRate(0.00);
|
||||
}else {
|
||||
long allBus = rDimStationHarmnicDPOListBytag.stream().map(RDimStationHarmnicDPO::getStationId).distinct().count();
|
||||
List<RDimStationHarmnicDPO> limitstation = rDimStationHarmnicDPOListBytag.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
|
||||
|
||||
long limit = rDimStationHarmnicDPOListBytag.stream().map(RDimStationHarmnicDPO::getStationId).distinct().count();
|
||||
rDimBusStationEventStartisMPO.setLimitRate(Double.valueOf((float)limit/allBus));
|
||||
|
||||
int sum = limitstation.stream().mapToInt(RDimStationHarmnicDPO::getLimitCount).sum();
|
||||
rDimBusStationEventStartisMPO.setLimitFreq(Double.valueOf((float)sum/allBus));
|
||||
|
||||
}
|
||||
|
||||
poList.add(rDimBusStationEventStartisMPO);
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(poList) ) {
|
||||
this.saveOrUpdateBatchByMultiId(poList,500);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
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.LambdaQueryWrapper;
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||
import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventStartisYPO;
|
||||
import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
|
||||
import com.njcn.harmonic.pojo.po.dim.RDimStationHarmnicDPO;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusStationEventStartisYPOMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusStationEventStartisYPOService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.dim.RDimStationHarmnicDPOService;
|
||||
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.util.CollectionUtils;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/11/27 15:10【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class RDimBusStationEventStartisYPOServiceImpl extends MppServiceImpl<RDimBusStationEventStartisYPOMapper, RDimBusStationEventStartisYPO> implements RDimBusStationEventStartisYPOService{
|
||||
|
||||
|
||||
private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
|
||||
private final RDimStationHarmnicDPOService rDimStationHarmnicDPOService;
|
||||
private final DicDataFeignClient dicDataFeignClient;
|
||||
|
||||
@Override
|
||||
public void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||
List<RDimBusStationEventStartisYPO> poList = new ArrayList<>();
|
||||
LocalDate date = LocalDate.parse(calculatedParam.getDataDate());
|
||||
//获取日期
|
||||
DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||
DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||
|
||||
|
||||
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
|
||||
LambdaQueryWrapper<RDimBusbarHarmnicDPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(RDimBusbarHarmnicDPO::getOrgId,deptGetChildrenMoreDTO.getUnitId())
|
||||
.between(RDimBusbarHarmnicDPO::getStatisDate,begin,end)
|
||||
.eq(RDimBusbarHarmnicDPO::getLevel,1);
|
||||
List<RDimBusbarHarmnicDPO> rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(lambdaQueryWrapper);
|
||||
List<RDimStationHarmnicDPO> rDimStationHarmnicDPOList = rDimStationHarmnicDPOService.lambdaQuery().eq(RDimStationHarmnicDPO::getOrgId, deptGetChildrenMoreDTO.getUnitId())
|
||||
.between(RDimStationHarmnicDPO::getStatisDate,begin,end)
|
||||
.eq(RDimStationHarmnicDPO::getLevel, 1).list();
|
||||
|
||||
//暂态
|
||||
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;
|
||||
}
|
||||
RDimBusStationEventStartisYPO rDimBusStationEventStartisYPO = new RDimBusStationEventStartisYPO();
|
||||
rDimBusStationEventStartisYPO.setOrgId(deptGetChildrenMoreDTO.getUnitId());
|
||||
rDimBusStationEventStartisYPO.setStatisDate(date);
|
||||
rDimBusStationEventStartisYPO.setStartisType(dictData.getId());
|
||||
|
||||
|
||||
List<RDimBusbarHarmnicDPO> rDimBusbarHarmnicDPOListBytag = rDimBusbarHarmnicDPOList.stream().filter(temp -> Objects.equals(temp.getTargetType(), dictData.getId())).collect(Collectors.toList());
|
||||
List<RDimStationHarmnicDPO> rDimStationHarmnicDPOListBytag = rDimStationHarmnicDPOList.stream().filter(temp -> Objects.equals(temp.getTargetType(), dictData.getId())).collect(Collectors.toList());
|
||||
if(CollUtil.isEmpty(rDimBusbarHarmnicDPOListBytag)){
|
||||
rDimBusStationEventStartisYPO.setLimitRate(0.00);
|
||||
rDimBusStationEventStartisYPO.setLimitFreq(0.00);
|
||||
}else {
|
||||
long allBus = rDimBusbarHarmnicDPOListBytag.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
|
||||
List<RDimBusbarHarmnicDPO> limitBus = rDimBusbarHarmnicDPOListBytag.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
|
||||
|
||||
long limit = rDimBusbarHarmnicDPOListBytag.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
|
||||
rDimBusStationEventStartisYPO.setLimitRate(Double.valueOf((float)limit/allBus));
|
||||
|
||||
int sum = limitBus.stream().mapToInt(RDimBusbarHarmnicDPO::getLimitCount).sum();
|
||||
rDimBusStationEventStartisYPO.setLimitFreq(Double.valueOf((float)sum/allBus));
|
||||
|
||||
}
|
||||
if(CollUtil.isEmpty(rDimStationHarmnicDPOListBytag)){
|
||||
rDimBusStationEventStartisYPO.setStationFreq(0.00);
|
||||
rDimBusStationEventStartisYPO.setStationLimitRate(0.00);
|
||||
}else {
|
||||
long allBus = rDimStationHarmnicDPOListBytag.stream().map(RDimStationHarmnicDPO::getStationId).distinct().count();
|
||||
List<RDimStationHarmnicDPO> limitstation = rDimStationHarmnicDPOListBytag.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
|
||||
|
||||
long limit = rDimStationHarmnicDPOListBytag.stream().map(RDimStationHarmnicDPO::getStationId).distinct().count();
|
||||
rDimBusStationEventStartisYPO.setLimitRate(Double.valueOf((float)limit/allBus));
|
||||
|
||||
int sum = limitstation.stream().mapToInt(RDimStationHarmnicDPO::getLimitCount).sum();
|
||||
rDimBusStationEventStartisYPO.setLimitFreq(Double.valueOf((float)sum/allBus));
|
||||
|
||||
}
|
||||
|
||||
poList.add(rDimBusStationEventStartisYPO);
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(poList) ) {
|
||||
this.saveOrUpdateBatchByMultiId(poList,500);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user