Merge remote-tracking branch 'origin/master'

This commit is contained in:
wr
2023-11-24 16:08:33 +08:00
42 changed files with 1053 additions and 152 deletions

View File

@@ -20,7 +20,7 @@ import lombok.Setter;
@Getter
@Setter
@TableName("r_dim_bus_global_d")
public class RDimBusGlobalD extends BaseEntity {
public class RDimBusGlobalD {
private static final long serialVersionUID = 1L;
@@ -36,11 +36,6 @@ public class RDimBusGlobalD extends BaseEntity {
@MppMultiId
private LocalDate statisDate;
/**
* 母线监测率(%
*/
private Float monitorRate;
/**
* 稳态指标超标或监测到暂态指标的变电站/换流站母线占比(%
*/
@@ -51,12 +46,6 @@ public class RDimBusGlobalD extends BaseEntity {
*/
private Float limitAvgRate;
/**
* 电站监测率(%
*/
private Float stationMonitorRate;
/**
* 电站指标超标或监测到暂态指标的变电站/换流站占比(%
*/

View File

@@ -1,6 +1,7 @@
package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDate;
@@ -23,16 +24,19 @@ public class RDimBusGlobalM extends BaseEntity {
private static final long serialVersionUID = 1L;
@MppMultiId
private String orgId;
@MppMultiId
private LocalDate statisDate;
private Float monitorRate;
private Float limitRate;
private Float limitAvgRate;
private Float stationLimitRate;
private Float stationLimitAvgRate;
private Integer state;

View File

@@ -1,6 +1,7 @@
package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDate;
@@ -19,21 +20,23 @@ import lombok.Setter;
@Getter
@Setter
@TableName("r_dim_bus_global_y")
public class RDimBusGlobalY extends BaseEntity {
public class RDimBusGlobalY {
private static final long serialVersionUID = 1L;
@MppMultiId
private String orgId;
@MppMultiId
private LocalDate statisDate;
private Float monitorRate;
private Float limitRate;
private Float limitAvgRate;
private Integer state;
private Float stationLimitRate;
private Float stationLimitAvgRate;

View File

@@ -0,0 +1,53 @@
package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDate;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
*
* </p>
*
* @author cdf
* @since 2023-11-24
*/
@Getter
@Setter
@TableName("r_dim_bus_station_event_d")
public class RDimBusStationEventD {
private static final long serialVersionUID = 1L;
@MppMultiId
private String orgId;
@MppMultiId
private LocalDate statisDate;
/**
* 监测到暂态指标的变电站母线占比(%
*/
private Float limitRate;
/**
* 变电站母线暂态指标发生频次(次/线)
*/
private Float limitFreq;
/**
* 监测到暂态指标的变电站占比(%
*/
private Float stationLimitRate;
/**
* 变电站暂态指标发生频次(次/站)
*/
private Float stationFreq;
}

View File

@@ -0,0 +1,53 @@
package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDate;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
*
* </p>
*
* @author cdf
* @since 2023-11-24
*/
@Getter
@Setter
@TableName("r_dim_bus_station_event_m")
public class RDimBusStationEventM{
private static final long serialVersionUID = 1L;
@MppMultiId
private String orgId;
@MppMultiId
private LocalDate statisDate;
/**
* 监测到暂态指标的变电站母线占比(%
*/
private Float limitRate;
/**
* 变电站母线暂态指标发生频次(次/线)
*/
private Float limitFreq;
/**
* 监测到暂态指标的变电站占比(%
*/
private Float stationLimitRate;
/**
* 变电站暂态指标发生频次(次/站)
*/
private Float stationFreq;
}

View File

@@ -0,0 +1,53 @@
package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDate;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
*
* </p>
*
* @author cdf
* @since 2023-11-24
*/
@Getter
@Setter
@TableName("r_dim_bus_station_event_y")
public class RDimBusStationEventY {
private static final long serialVersionUID = 1L;
@MppMultiId
private String orgId;
@MppMultiId
private LocalDate statisDate;
/**
* 监测到暂态指标的变电站母线占比(%
*/
private Float limitRate;
/**
* 变电站母线暂态指标发生频次(次/线)
*/
private Float limitFreq;
/**
* 监测到暂态指标的变电站占比(%
*/
private Float stationLimitRate;
/**
* 变电站暂态指标发生频次(次/站)
*/
private Float stationFreq;
}

View File

@@ -1,6 +1,7 @@
package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDate;
@@ -26,16 +27,19 @@ public class RDimStationBaseD extends BaseEntity {
/**
* 统计时间yyyy-mm-dd
*/
@MppMultiId
private LocalDate statisDate;
/**
* 电站id
*/
@MppMultiId
private String stationId;
/**
* 稳态,暂态指标类型(字典)
*/
@MppMultiId
private String targetType;
/**

View File

@@ -1,6 +1,7 @@
package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDate;
@@ -23,13 +24,16 @@ public class RDimStationTargetM extends BaseEntity {
private static final long serialVersionUID = 1L;
@MppMultiId
private String orgId;
@MppMultiId
private LocalDate statisDate;
/**
* 统计类型
*/
@MppMultiId
private String targetType;
/**

View File

@@ -1,6 +1,7 @@
package com.njcn.harmonic.pojo.po.dim;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDate;
@@ -23,13 +24,16 @@ public class RDimStationTargetY extends BaseEntity {
private static final long serialVersionUID = 1L;
@MppMultiId
private String orgId;
@MppMultiId
private LocalDate statisDate;
/**
* 统计类型
*/
@MppMultiId
private String targetType;
/**

View File

@@ -55,7 +55,7 @@ public class PmsDimExecutor extends BaseExecutor{
//数据补招不执行非日表算法
if (!calculatedParam.isRepair()) {
//月表
irDimBusGlobalDService.globalCalBusBarMonth(calculatedParam);
//irDimBusGlobalDService.globalCalBusBarMonth(calculatedParam);
}
} else if (Objects.equals(tag,"r_dim_bus_global_y")) {
//数据补招不执行非日表算法

View File

@@ -2,6 +2,7 @@ package com.njcn.prepare.harmonic.mapper.mysql.dim;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalM;
/**
@@ -12,6 +13,6 @@ import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalM;
* @author hongawen
* @since 2023-11-14
*/
public interface RDimBusGlobalMMapper extends BaseMapper<RDimBusGlobalM> {
public interface RDimBusGlobalMMapper extends MppBaseMapper<RDimBusGlobalM> {
}

View File

@@ -2,6 +2,7 @@ package com.njcn.prepare.harmonic.mapper.mysql.dim;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalY;
/**
@@ -12,6 +13,6 @@ import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalY;
* @author hongawen
* @since 2023-11-14
*/
public interface RDimBusGlobalYMapper extends BaseMapper<RDimBusGlobalY> {
public interface RDimBusGlobalYMapper extends MppBaseMapper<RDimBusGlobalY> {
}

View File

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

View File

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

View File

@@ -0,0 +1,16 @@
package com.njcn.prepare.harmonic.mapper.mysql.dim;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventY;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2023-11-24
*/
public interface RDimBusStationEventYMapper extends MppBaseMapper<RDimBusStationEventY> {
}

View File

@@ -1,6 +1,7 @@
package com.njcn.prepare.harmonic.mapper.mysql.dim;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.dim.RDimStationTargetD;
/**
@@ -11,6 +12,6 @@ import com.njcn.harmonic.pojo.po.dim.RDimStationTargetD;
* @author cdf
* @since 2023-11-21
*/
public interface RDimStationTargetDMapper extends BaseMapper<RDimStationTargetD> {
public interface RDimStationTargetDMapper extends MppBaseMapper<RDimStationTargetD> {
}

View File

@@ -1,6 +1,7 @@
package com.njcn.prepare.harmonic.mapper.mysql.dim;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.dim.RDimStationTargetM;
/**
@@ -11,6 +12,6 @@ import com.njcn.harmonic.pojo.po.dim.RDimStationTargetM;
* @author cdf
* @since 2023-11-21
*/
public interface RDimStationTargetMMapper extends BaseMapper<RDimStationTargetM> {
public interface RDimStationTargetMMapper extends MppBaseMapper<RDimStationTargetM> {
}

View File

@@ -1,6 +1,7 @@
package com.njcn.prepare.harmonic.mapper.mysql.dim;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.dim.RDimStationTargetY;
/**
@@ -11,6 +12,6 @@ import com.njcn.harmonic.pojo.po.dim.RDimStationTargetY;
* @author cdf
* @since 2023-11-21
*/
public interface RDimStationTargetYMapper extends BaseMapper<RDimStationTargetY> {
public interface RDimStationTargetYMapper extends MppBaseMapper<RDimStationTargetY> {
}

View File

@@ -20,11 +20,4 @@ public interface IRDimBusGlobalDService extends IMppService<RDimBusGlobalD> {
void globalCalBusBarDay(CalculatedParam<DeptGetChildrenDTO> calculatedParam);
void globalCalBusBarMonth(CalculatedParam<DeptGetChildrenDTO> calculatedParam);
void globalCalBusBarYear(CalculatedParam<DeptGetChildrenDTO> calculatedParam);
}

View File

@@ -1,7 +1,10 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalM;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
* <p>
@@ -11,6 +14,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @author hongawen
* @since 2023-11-14
*/
public interface IRDimBusGlobalMService extends IService<RDimBusGlobalM> {
public interface IRDimBusGlobalMService extends IMppService<RDimBusGlobalM> {
void globalCalBusBarMonth(CalculatedParam<DeptGetChildrenDTO> calculatedParam);
}

View File

@@ -1,7 +1,10 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalY;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
* <p>
@@ -11,6 +14,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @author hongawen
* @since 2023-11-14
*/
public interface IRDimBusGlobalYService extends IService<RDimBusGlobalY> {
public interface IRDimBusGlobalYService extends IMppService<RDimBusGlobalY> {
void globalCalBusBarYear(CalculatedParam<DeptGetChildrenDTO> calculatedParam);
}

View File

@@ -0,0 +1,25 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventD;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
* <p>
* 服务类
* </p>
*
* @author cdf
* @since 2023-11-24
*/
public interface IRDimBusStationEventDService extends IMppService<RDimBusStationEventD> {
/**
* 统计母线电站的暂态情况
* @author cdf
* @date 2023/11/24
*/
void calEventDay(CalculatedParam<DeptGetChildrenDTO> calculatedParam);
}

View File

@@ -0,0 +1,25 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventM;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
* <p>
* 服务类
* </p>
*
* @author cdf
* @since 2023-11-24
*/
public interface IRDimBusStationEventMService extends IMppService<RDimBusStationEventM> {
/**
* 统计母线电站的暂态情况
* @author cdf
* @date 2023/11/24
*/
void calEventMonth(CalculatedParam<DeptGetChildrenDTO> calculatedParam);
}

View File

@@ -0,0 +1,25 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventY;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
* <p>
* 服务类
* </p>
*
* @author cdf
* @since 2023-11-24
*/
public interface IRDimBusStationEventYService extends IMppService<RDimBusStationEventY> {
/**
* 统计母线电站的暂态情况
* @author cdf
* @date 2023/11/24
*/
void calEventYear(CalculatedParam<DeptGetChildrenDTO> calculatedParam);
}

View File

@@ -1,16 +0,0 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalD;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author hongawen
* @since 2023-11-14
*/
public interface IRDimStationGlobalDService extends IService<RDimStationGlobalD> {
}

View File

@@ -1,16 +0,0 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalM;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author hongawen
* @since 2023-11-14
*/
public interface IRDimStationGlobalMService extends IService<RDimStationGlobalM> {
}

View File

@@ -1,17 +0,0 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalY;
/**
* <p>
* 服务类
* </p>
*
* @author hongawen
* @since 2023-11-14
*/
public interface IRDimStationGlobalYService extends IService<RDimStationGlobalY> {
}

View File

@@ -1,6 +1,7 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.biz.pojo.dto.DeptGetBase;
import com.njcn.harmonic.pojo.po.dim.RDimStationTargetD;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
@@ -13,7 +14,7 @@ import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
* @author cdf
* @since 2023-11-21
*/
public interface IRDimStationTargetDService extends IService<RDimStationTargetD> {
public interface IRDimStationTargetDService extends IMppService<RDimStationTargetD> {

View File

@@ -1,6 +1,7 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.biz.pojo.dto.DeptGetBase;
import com.njcn.harmonic.pojo.po.dim.RDimStationTargetM;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
@@ -13,7 +14,7 @@ import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
* @author cdf
* @since 2023-11-21
*/
public interface IRDimStationTargetMService extends IService<RDimStationTargetM> {
public interface IRDimStationTargetMService extends IMppService<RDimStationTargetM> {

View File

@@ -1,7 +1,10 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.biz.pojo.dto.DeptGetBase;
import com.njcn.harmonic.pojo.po.dim.RDimStationTargetY;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
* <p>
@@ -11,6 +14,12 @@ import com.njcn.harmonic.pojo.po.dim.RDimStationTargetY;
* @author cdf
* @since 2023-11-21
*/
public interface IRDimStationTargetYService extends IService<RDimStationTargetY> {
public interface IRDimStationTargetYService extends IMppService<RDimStationTargetY> {
/**
* **kV变电站**指标超标占比(%
* @author cdf
* @date 2023/11/21
*/
void calDimStationTargetYear(CalculatedParam<DeptGetBase> calculatedParam);
}

View File

@@ -21,7 +21,9 @@ import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.harmonic.pojo.po.RMpEventDetailDPO;
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalD;
import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateD;
import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
import com.njcn.prepare.harmonic.mapper.mysql.area.PmsMonitorPOMapper;
import com.njcn.prepare.harmonic.mapper.mysql.area.ROperatingIndexDPOMapper;
import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper;
@@ -34,6 +36,8 @@ import com.njcn.prepare.harmonic.mapper.mysql.line.ROperatingMonitorDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusGlobalDService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService;
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import lombok.RequiredArgsConstructor;
@@ -81,6 +85,10 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl<RDimBusGlobalDMapp
private final ROperatingMonitorDMapper rOperatingMonitorDMapper;
private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
private final IRDimStationBaseDService irDimStationBaseDService;
/**
* 本算法只有pms使用到,只针对pms主网测点
@@ -93,27 +101,62 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl<RDimBusGlobalDMapp
List<RDimBusGlobalD> poList = new ArrayList<>();
LocalDate date = LocalDate.parse(calculatedParam.getDataDate());
List<PmsCountLedger> pmsMidLedgerList = pmsCountLedgerMapper.newDateData();
Map<String, PmsCountLedger> map = pmsMidLedgerList.stream().collect(Collectors.toMap(PmsCountLedger::getSection, Function.identity()));
List<DeptGetChildrenDTO> deptList = calculatedParam.getIdList();
for (DeptGetChildrenDTO dto : deptList) {
Integer stationNum;
Integer busBarNum;
RDimBusGlobalD rDimBusGlobalD = new RDimBusGlobalD();
if (map.containsKey(dto.getDeptId())) {
PmsCountLedger pmsCountLedger = map.get(dto.getDeptId());
stationNum = pmsCountLedger.getSubCount();
busBarNum = pmsCountLedger.getSubvCount();
List<String> childDept = dto.getDeptChildren();
LambdaQueryWrapper<RDimBusbarHarmnicDPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(RDimBusbarHarmnicDPO::getOrgId,childDept).eq(RDimBusbarHarmnicDPO::getStatisDate,date);
List<RDimBusbarHarmnicDPO> rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(lambdaQueryWrapper);
if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){
List<String> goodIds = rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().collect(Collectors.toList());
if (stationNum == 0 || busBarNum == 0) {
continue;
List<RDimBusbarHarmnicDPO> limtList = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
if(CollUtil.isEmpty(limtList)){
rDimBusGlobalD.setLimitRate(0f);
rDimBusGlobalD.setLimitAvgRate(0f);
}else {
List<String> busBarIds = limtList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().collect(Collectors.toList());
rDimBusGlobalD.setLimitRate((float)busBarIds.size()/goodIds.size());
rDimBusGlobalD.setLimitAvgRate((float)busBarIds.size()/goodIds.size());
}
} else {
continue;
}
List<String> monitorIds = dto.getLineIds();
LambdaQueryWrapper<RDimStationBaseD> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(RDimStationBaseD::getOrgId,childDept).eq(RDimStationBaseD::getStatisDate,date);
List<RDimStationBaseD> rDimStationBaseDList = irDimStationBaseDService.list(queryWrapper);
if(CollUtil.isNotEmpty(rDimStationBaseDList)){
long goodStation = rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count();
List<RDimStationBaseD> limtList = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
if(CollUtil.isEmpty(limtList)){
rDimBusGlobalD.setStationLimitRate(0f);
rDimBusGlobalD.setStationLimitAvgRate(0f);
}else {
long limitCount = limtList.stream().map(RDimStationBaseD::getStationId).distinct().count();
rDimBusGlobalD.setStationLimitRate((float)limitCount/goodStation);
rDimBusGlobalD.setStationLimitAvgRate((float)limitCount/goodStation);
}
}
if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){
rDimBusGlobalD.setLimitRate(3.14159f);
rDimBusGlobalD.setLimitAvgRate(3.14159f);
}
if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){
rDimBusGlobalD.setStationLimitRate(3.14159f);
rDimBusGlobalD.setStationLimitAvgRate(3.14159f);
}
poList.add(rDimBusGlobalD);
this.saveOrUpdateBatchByMultiId(poList,100);
/* List<String> monitorIds = dto.getLineIds();
if (CollectionUtil.isNotEmpty(monitorIds)) {
RDimBusGlobalD rDimBusGlobalD = new RDimBusGlobalD();
rDimBusGlobalD.setOrgId(dto.getDeptId());
@@ -124,11 +167,9 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl<RDimBusGlobalDMapp
List<RStatIntegrityD> integrityDList = rStatIntegrityDMapper.selectList(lambdaQueryWrapper);
if (CollectionUtil.isEmpty(integrityDList)) {
rDimBusGlobalD.setMonitorRate(0f);
rDimBusGlobalD.setLimitRate(3.14159f);
rDimBusGlobalD.setLimitAvgRate(3.14159f);
rDimBusGlobalD.setStationMonitorRate(0f);
rDimBusGlobalD.setStationLimitRate(3.14159f);
rDimBusGlobalD.setStationLimitAvgRate(3.14159f);
poList.add(rDimBusGlobalD);
@@ -140,11 +181,9 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl<RDimBusGlobalDMapp
.filter(it -> it.getRealTime() / it.getDueTime() >= 0.95f)
.collect(Collectors.toList());
if (CollectionUtil.isEmpty(integrityDList)) {
rDimBusGlobalD.setMonitorRate(0f);
rDimBusGlobalD.setLimitRate(3.14159f);
rDimBusGlobalD.setLimitAvgRate(3.14159f);
rDimBusGlobalD.setStationMonitorRate(0f);
rDimBusGlobalD.setStationLimitRate(3.14159f);
rDimBusGlobalD.setStationLimitAvgRate(3.14159f);
poList.add(rDimBusGlobalD);
@@ -159,8 +198,6 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl<RDimBusGlobalDMapp
List<String> goodStationIds = monitorList.stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList());
rDimBusGlobalD.setMonitorRate((float) goodLineIds.size() / busBarNum * 100);
rDimBusGlobalD.setStationMonitorRate((float) goodStationIds.size() / stationNum * 100);
LambdaQueryWrapper<RStatLimitTargetDPO> limitWrapper = new LambdaQueryWrapper<>();
limitWrapper.in(RStatLimitTargetDPO::getLineId, goodMonitorIds).eq(RStatLimitTargetDPO::getTime, date);
@@ -216,43 +253,13 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl<RDimBusGlobalDMapp
}
}
poList.add(rDimBusGlobalD);
}
}*/
}
poList = poList.stream().peek(item -> item.setState(DataStateEnum.ENABLE.getCode())).collect(Collectors.toList());
this.saveOrUpdateBatchByMultiId(poList);
}
@Override
public void globalCalBusBarMonth(CalculatedParam<DeptGetChildrenDTO> calculatedParam) {
DateTime start = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
LambdaQueryWrapper<RDimBusGlobalD> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.between(RDimBusGlobalD::getStatisDate, start, end)
.eq(RDimBusGlobalD::getState, DataStateEnum.ENABLE.getCode());
List<RDimBusGlobalD> dayDataList = this.list(lambdaQueryWrapper);
if (CollUtil.isNotEmpty(dayDataList)) {
Map<String, DeptGetChildrenDTO> deptMap = calculatedParam.getIdList().stream().collect(Collectors.toMap(DeptGetChildrenDTO::getDeptId, Function.identity()));
Map<String, List<RDimBusGlobalD>> map = dayDataList.stream().collect(Collectors.groupingBy(RDimBusGlobalD::getOrgId));
map.forEach((key, val) -> {
DeptGetChildrenDTO dto = deptMap.get(key);
List<String> monitorIds = dto.getLineIds();
});
}
}
@Override
public void globalCalBusBarYear(CalculatedParam<DeptGetChildrenDTO> calculatedParam) {
}

View File

@@ -1,12 +1,34 @@
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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalD;
import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalM;
import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusGlobalMMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusGlobalMService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService;
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
@@ -16,6 +38,84 @@ import org.springframework.stereotype.Service;
* @since 2023-11-14
*/
@Service
public class RDimBusGlobalMServiceImpl extends ServiceImpl<RDimBusGlobalMMapper, RDimBusGlobalM> implements IRDimBusGlobalMService {
@RequiredArgsConstructor
public class RDimBusGlobalMServiceImpl extends MppServiceImpl<RDimBusGlobalMMapper, RDimBusGlobalM> implements IRDimBusGlobalMService {
private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
private final IRDimStationBaseDService irDimStationBaseDService;
@Override
public void globalCalBusBarMonth(CalculatedParam<DeptGetChildrenDTO> calculatedParam) {
List<RDimBusGlobalM> poList = new ArrayList<>();
DateTime start = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
List<DeptGetChildrenDTO> deptList = calculatedParam.getIdList();
for (DeptGetChildrenDTO dto : deptList) {
RDimBusGlobalM rDimBusGlobalM = new RDimBusGlobalM();
List<String> childDept = dto.getDeptChildren();
QueryWrapper<RDimBusbarHarmnicDPO> queryWrapper = new QueryWrapper<>();
queryWrapper.select("BusBar_Id,Statis_Date,sum(limit_count) as limit_count");
queryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,childDept).between(RDimBusbarHarmnicDPO::getStatisDate,start,end);
queryWrapper.groupBy("Statis_Date,BusBar_Id");
List<RDimBusbarHarmnicDPO> rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(queryWrapper);
if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){
List<RDimBusbarHarmnicDPO> limtList = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
if(CollUtil.isEmpty(limtList)){
rDimBusGlobalM.setLimitRate(0f);
rDimBusGlobalM.setLimitAvgRate(0f);
}else {
long good =rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
long limit =limtList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
rDimBusGlobalM.setLimitRate((float)limit/good);
rDimBusGlobalM.setLimitAvgRate((float)limtList.size()/rDimBusbarHarmnicDPOList.size());
}
}
LambdaQueryWrapper<RDimStationBaseD> stationQueryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select("Station_Id,Statis_Date,sum(limit_count) as limit_count");
queryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,childDept).between(RDimBusbarHarmnicDPO::getStatisDate,start,end);
queryWrapper.groupBy("Statis_Date,Station_Id");
List<RDimStationBaseD> rDimStationBaseDList = irDimStationBaseDService.list(stationQueryWrapper);
if(CollUtil.isNotEmpty(rDimStationBaseDList)){
List<RDimStationBaseD> limtList = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
if(CollUtil.isEmpty(limtList)){
rDimBusGlobalM.setStationLimitRate(0f);
rDimBusGlobalM.setStationLimitAvgRate(0f);
}else {
long good =rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count();
long limit =limtList.stream().map(RDimStationBaseD::getStationId).distinct().count();
rDimBusGlobalM.setStationLimitRate((float)limit/good);
rDimBusGlobalM.setStationLimitAvgRate((float)limtList.size()/rDimStationBaseDList.size());
}
}
if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){
rDimBusGlobalM.setLimitRate(3.14159f);
rDimBusGlobalM.setLimitAvgRate(3.14159f);
}
if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){
rDimBusGlobalM.setStationLimitRate(3.14159f);
rDimBusGlobalM.setStationLimitAvgRate(3.14159f);
}
poList.add(rDimBusGlobalM);
this.saveOrUpdateBatchByMultiId(poList,100);
}
}
}

View File

@@ -1,12 +1,31 @@
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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalM;
import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalY;
import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusGlobalYMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusGlobalYService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService;
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
@@ -16,6 +35,83 @@ import org.springframework.stereotype.Service;
* @since 2023-11-14
*/
@Service
public class RDimBusGlobalYServiceImpl extends ServiceImpl<RDimBusGlobalYMapper, RDimBusGlobalY> implements IRDimBusGlobalYService {
@RequiredArgsConstructor
public class RDimBusGlobalYServiceImpl extends MppServiceImpl<RDimBusGlobalYMapper, RDimBusGlobalY> implements IRDimBusGlobalYService {
private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
private final IRDimStationBaseDService irDimStationBaseDService;
@Override
public void globalCalBusBarYear(CalculatedParam<DeptGetChildrenDTO> calculatedParam) {
List<RDimBusGlobalY> poList = new ArrayList<>();
DateTime start = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
DateTime end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
List<DeptGetChildrenDTO> deptList = calculatedParam.getIdList();
for (DeptGetChildrenDTO dto : deptList) {
RDimBusGlobalY rDimBusGlobalY = new RDimBusGlobalY();
List<String> childDept = dto.getDeptChildren();
QueryWrapper<RDimBusbarHarmnicDPO> queryWrapper = new QueryWrapper<>();
queryWrapper.select("BusBar_Id,Statis_Date,sum(limit_count) as limit_count");
queryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,childDept).between(RDimBusbarHarmnicDPO::getStatisDate,start,end);
queryWrapper.groupBy("Statis_Date,BusBar_Id");
List<RDimBusbarHarmnicDPO> rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(queryWrapper);
if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){
List<RDimBusbarHarmnicDPO> limtList = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
if(CollUtil.isEmpty(limtList)){
rDimBusGlobalY.setLimitRate(0f);
rDimBusGlobalY.setLimitAvgRate(0f);
}else {
long good =rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
long limit =limtList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
rDimBusGlobalY.setLimitRate((float)limit/good);
rDimBusGlobalY.setLimitAvgRate((float)limtList.size()/rDimBusbarHarmnicDPOList.size());
}
}
LambdaQueryWrapper<RDimStationBaseD> stationQueryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select("Station_Id,Statis_Date,sum(limit_count) as limit_count");
queryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,childDept).between(RDimBusbarHarmnicDPO::getStatisDate,start,end);
queryWrapper.groupBy("Statis_Date,Station_Id");
List<RDimStationBaseD> rDimStationBaseDList = irDimStationBaseDService.list(stationQueryWrapper);
if(CollUtil.isNotEmpty(rDimStationBaseDList)){
List<RDimStationBaseD> limtList = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
if(CollUtil.isEmpty(limtList)){
rDimBusGlobalY.setStationLimitRate(0f);
rDimBusGlobalY.setStationLimitAvgRate(0f);
}else {
long good =rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count();
long limit =limtList.stream().map(RDimStationBaseD::getStationId).distinct().count();
rDimBusGlobalY.setStationLimitRate((float)limit/good);
rDimBusGlobalY.setStationLimitAvgRate((float)limtList.size()/rDimStationBaseDList.size());
}
}
if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){
rDimBusGlobalY.setLimitRate(3.14159f);
rDimBusGlobalY.setLimitAvgRate(3.14159f);
}
if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){
rDimBusGlobalY.setStationLimitRate(3.14159f);
rDimBusGlobalY.setStationLimitAvgRate(3.14159f);
}
poList.add(rDimBusGlobalY);
this.saveOrUpdateBatchByMultiId(poList,100);
}
}
}

View File

@@ -0,0 +1,112 @@
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.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventD;
import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusStationEventDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusStationEventDService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService;
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author cdf
* @since 2023-11-24
*/
@Service
@RequiredArgsConstructor
public class RDimBusStationEventDServiceImpl extends MppServiceImpl<RDimBusStationEventDMapper, RDimBusStationEventD> implements IRDimBusStationEventDService {
private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
private final IRDimStationBaseDService irDimStationBaseDService;
@Override
public void calEventDay(CalculatedParam<DeptGetChildrenDTO> calculatedParam) {
List<RDimBusStationEventD> poList = new ArrayList<>();
LocalDate date = LocalDate.parse(calculatedParam.getDataDate());
List<DeptGetChildrenDTO> deptList = calculatedParam.getIdList();
for(DeptGetChildrenDTO dto : deptList){
List<String> deptIds = dto.getDeptChildren();
RDimBusStationEventD rDimBusStationEventD = new RDimBusStationEventD();
rDimBusStationEventD.setOrgId(dto.getDeptId());
rDimBusStationEventD.setStatisDate(date);
LambdaQueryWrapper<RDimBusbarHarmnicDPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(RDimBusbarHarmnicDPO::getOrgId,deptIds)
.eq(RDimBusbarHarmnicDPO::getStatisDate,date)
.eq(RDimBusbarHarmnicDPO::getLevel,1);
List<RDimBusbarHarmnicDPO> rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(lambdaQueryWrapper);
if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){
long allBus = rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
List<RDimBusbarHarmnicDPO> limitBus = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
if(CollUtil.isEmpty(limitBus)){
rDimBusStationEventD.setLimitRate(0f);
rDimBusStationEventD.setLimitFreq(0f);
}else {
long limit = limitBus.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
rDimBusStationEventD.setLimitRate((float)limit/allBus);
int sum = limitBus.stream().mapToInt(RDimBusbarHarmnicDPO::getLimitCount).sum();
rDimBusStationEventD.setLimitFreq((float)sum/allBus);
//TODO 后续加入暂态指标的代码
}
}
LambdaQueryWrapper<RDimStationBaseD> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(RDimStationBaseD::getOrgId,deptIds)
.eq(RDimStationBaseD::getStatisDate,date)
.eq(RDimStationBaseD::getLevel,1);
List<RDimStationBaseD> rDimStationBaseDList = irDimStationBaseDService.list(queryWrapper);
if(CollUtil.isNotEmpty(rDimStationBaseDList)){
long allStation = rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count();
List<RDimStationBaseD> limitStation = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
if(CollUtil.isEmpty(limitStation)){
rDimBusStationEventD.setStationLimitRate(0f);
rDimBusStationEventD.setStationFreq(0f);
}else {
long limitNum = limitStation.stream().map(RDimStationBaseD::getStationId).distinct().count();
rDimBusStationEventD.setLimitRate((float)limitNum/allStation);
int sum = limitStation.stream().mapToInt(RDimStationBaseD::getLimitCount).sum();
rDimBusStationEventD.setLimitFreq((float)sum/allStation);
}
}
if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){
rDimBusStationEventD.setStationLimitRate(3.14159f);
rDimBusStationEventD.setStationFreq(3.14159f);
}
if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){
rDimBusStationEventD.setLimitRate(3.14159f);
rDimBusStationEventD.setLimitFreq(3.14159f);
}
poList.add(rDimBusStationEventD);
}
this.saveOrUpdateBatchByMultiId(poList,100);
}
}

View File

@@ -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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventD;
import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventM;
import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusStationEventMMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusStationEventMService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService;
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author cdf
* @since 2023-11-24
*/
@Service
@RequiredArgsConstructor
public class RDimBusStationEventMServiceImpl extends MppServiceImpl<RDimBusStationEventMMapper, RDimBusStationEventM> implements IRDimBusStationEventMService {
private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
private final IRDimStationBaseDService irDimStationBaseDService;
@Override
public void calEventMonth(CalculatedParam<DeptGetChildrenDTO> calculatedParam) {
List<RDimBusStationEventM> poList = new ArrayList<>();
DateTime start = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
List<DeptGetChildrenDTO> deptList = calculatedParam.getIdList();
for(DeptGetChildrenDTO dto : deptList){
List<String> deptIds = dto.getDeptChildren();
RDimBusStationEventM rDimBusStationEventM = new RDimBusStationEventM();
rDimBusStationEventM.setOrgId(dto.getDeptId());
rDimBusStationEventM.setStatisDate(LocalDate.parse(DateUtil.format(start,DatePattern.NORM_DATE_PATTERN)));
QueryWrapper<RDimBusbarHarmnicDPO> lambdaQueryWrapper = new QueryWrapper<>();
lambdaQueryWrapper.select("BusBar_Id,Statis_Date,sum(limit_count) as limit_count");
lambdaQueryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,deptIds).between(RDimBusbarHarmnicDPO::getStatisDate,start,end).eq(RDimBusbarHarmnicDPO::getLevel,1);
lambdaQueryWrapper.groupBy("Statis_Date,BusBar_Id");
List<RDimBusbarHarmnicDPO> rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(lambdaQueryWrapper);
if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){
List<RDimBusbarHarmnicDPO> limitBus = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
if(CollUtil.isEmpty(limitBus)){
rDimBusStationEventM.setLimitRate(0f);
rDimBusStationEventM.setLimitFreq(0f);
}else {
long allBus = rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
long limit = limitBus.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
rDimBusStationEventM.setLimitRate((float)limit/allBus);
int sum = limitBus.stream().mapToInt(RDimBusbarHarmnicDPO::getLimitCount).sum();
rDimBusStationEventM.setLimitFreq((float)sum/allBus);
//TODO 后续加入暂态指标的代码
}
}
QueryWrapper<RDimStationBaseD> queryWrapper = new QueryWrapper<>();
queryWrapper.select("Station_Id,Statis_Date,sum(limit_count) as limit_count");
queryWrapper.lambda().in(RDimStationBaseD::getOrgId,deptIds).between(RDimStationBaseD::getStatisDate,start,end);
queryWrapper.groupBy("Statis_Date,Station_Id");
List<RDimStationBaseD> rDimStationBaseDList = irDimStationBaseDService.list(queryWrapper);
if(CollUtil.isNotEmpty(rDimStationBaseDList)){
long allStation = rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count();
List<RDimStationBaseD> limitStation = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
if(CollUtil.isEmpty(limitStation)){
rDimBusStationEventM.setStationLimitRate(0f);
rDimBusStationEventM.setStationFreq(0f);
}else {
long limitNum = limitStation.stream().map(RDimStationBaseD::getStationId).distinct().count();
rDimBusStationEventM.setStationLimitRate((float)limitNum/allStation);
int sum = limitStation.stream().mapToInt(RDimStationBaseD::getLimitCount).sum();
rDimBusStationEventM.setStationFreq((float)sum/allStation);
}
}
if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){
rDimBusStationEventM.setStationLimitRate(3.14159f);
rDimBusStationEventM.setStationFreq(3.14159f);
}
if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){
rDimBusStationEventM.setLimitRate(3.14159f);
rDimBusStationEventM.setLimitFreq(3.14159f);
}
poList.add(rDimBusStationEventM);
}
this.saveOrUpdateBatchByMultiId(poList,100);
}
}

View File

@@ -0,0 +1,123 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventM;
import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventY;
import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusStationEventYMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusStationEventYService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService;
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author cdf
* @since 2023-11-24
*/
@Service
@RequiredArgsConstructor
public class RDimBusStationEventYServiceImpl extends MppServiceImpl<RDimBusStationEventYMapper, RDimBusStationEventY> implements IRDimBusStationEventYService {
private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
private final IRDimStationBaseDService irDimStationBaseDService;
@Override
public void calEventYear(CalculatedParam<DeptGetChildrenDTO> calculatedParam) {
List<RDimBusStationEventY> poList = new ArrayList<>();
DateTime start = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
DateTime end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
List<DeptGetChildrenDTO> deptList = calculatedParam.getIdList();
for(DeptGetChildrenDTO dto : deptList){
List<String> deptIds = dto.getDeptChildren();
RDimBusStationEventY rDimBusStationEventY = new RDimBusStationEventY();
rDimBusStationEventY.setOrgId(dto.getDeptId());
rDimBusStationEventY.setStatisDate(LocalDate.parse(DateUtil.format(start,DatePattern.NORM_DATE_PATTERN)));
QueryWrapper<RDimBusbarHarmnicDPO> lambdaQueryWrapper = new QueryWrapper<>();
lambdaQueryWrapper.select("BusBar_Id,Statis_Date,sum(limit_count) as limit_count");
lambdaQueryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,deptIds).between(RDimBusbarHarmnicDPO::getStatisDate,start,end).eq(RDimBusbarHarmnicDPO::getLevel,1);
lambdaQueryWrapper.groupBy("Statis_Date,BusBar_Id");
List<RDimBusbarHarmnicDPO> rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(lambdaQueryWrapper);
if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){
List<RDimBusbarHarmnicDPO> limitBus = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
if(CollUtil.isEmpty(limitBus)){
rDimBusStationEventY.setLimitRate(0f);
rDimBusStationEventY.setLimitFreq(0f);
}else {
long allBus = rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
long limit = limitBus.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
rDimBusStationEventY.setLimitRate((float)limit/allBus);
int sum = limitBus.stream().mapToInt(RDimBusbarHarmnicDPO::getLimitCount).sum();
rDimBusStationEventY.setLimitFreq((float)sum/allBus);
//TODO 后续加入暂态指标的代码
}
}
QueryWrapper<RDimStationBaseD> queryWrapper = new QueryWrapper<>();
queryWrapper.select("Station_Id,Statis_Date,sum(limit_count) as limit_count");
queryWrapper.lambda().in(RDimStationBaseD::getOrgId,deptIds).between(RDimStationBaseD::getStatisDate,start,end);
queryWrapper.groupBy("Statis_Date,Station_Id");
List<RDimStationBaseD> rDimStationBaseDList = irDimStationBaseDService.list(queryWrapper);
if(CollUtil.isNotEmpty(rDimStationBaseDList)){
long allStation = rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count();
List<RDimStationBaseD> limitStation = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
if(CollUtil.isEmpty(limitStation)){
rDimBusStationEventY.setStationLimitRate(0f);
rDimBusStationEventY.setStationFreq(0f);
}else {
long limitNum = limitStation.stream().map(RDimStationBaseD::getStationId).distinct().count();
rDimBusStationEventY.setStationLimitRate((float)limitNum/allStation);
int sum = limitStation.stream().mapToInt(RDimStationBaseD::getLimitCount).sum();
rDimBusStationEventY.setStationFreq((float)sum/allStation);
}
}
if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){
rDimBusStationEventY.setStationLimitRate(3.14159f);
rDimBusStationEventY.setStationFreq(3.14159f);
}
if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){
rDimBusStationEventY.setLimitRate(3.14159f);
rDimBusStationEventY.setLimitFreq(3.14159f);
}
poList.add(rDimBusStationEventY);
}
this.saveOrUpdateBatchByMultiId(poList,100);
}
}

View File

@@ -1,10 +1,10 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalD;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimStationGlobalDMapper;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationGlobalDService;
import org.springframework.stereotype.Service;
/**
@@ -16,6 +16,6 @@ import org.springframework.stereotype.Service;
* @since 2023-11-14
*/
@Service
public class RDimStationGlobalDServiceImpl extends ServiceImpl<RDimStationGlobalDMapper, RDimStationGlobalD> implements IRDimStationGlobalDService {
public class RDimStationGlobalDServiceImpl extends ServiceImpl<RDimStationGlobalDMapper, RDimStationGlobalD> implements IService<RDimStationGlobalD> {
}

View File

@@ -1,10 +1,10 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalM;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimStationGlobalMMapper;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationGlobalMService;
import org.springframework.stereotype.Service;
/**
@@ -16,6 +16,6 @@ import org.springframework.stereotype.Service;
* @since 2023-11-14
*/
@Service
public class RDimStationGlobalMServiceImpl extends ServiceImpl<RDimStationGlobalMMapper, RDimStationGlobalM> implements IRDimStationGlobalMService {
public class RDimStationGlobalMServiceImpl extends ServiceImpl<RDimStationGlobalMMapper, RDimStationGlobalM> implements IService<RDimStationGlobalM> {
}

View File

@@ -1,10 +1,10 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalY;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimStationGlobalYMapper;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationGlobalYService;
import org.springframework.stereotype.Service;
/**
@@ -16,6 +16,6 @@ import org.springframework.stereotype.Service;
* @since 2023-11-14
*/
@Service
public class RDimStationGlobalYServiceImpl extends ServiceImpl<RDimStationGlobalYMapper, RDimStationGlobalY> implements IRDimStationGlobalYService {
public class RDimStationGlobalYServiceImpl extends ServiceImpl<RDimStationGlobalYMapper, RDimStationGlobalY> implements IService<RDimStationGlobalY> {
}

View File

@@ -4,6 +4,7 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.device.biz.pojo.dto.DeptGetBase;
import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
@@ -31,7 +32,7 @@ import java.util.stream.Collectors;
*/
@Service
@RequiredArgsConstructor
public class RDimStationTargetDServiceImpl extends ServiceImpl<RDimStationTargetDMapper, RDimStationTargetD> implements IRDimStationTargetDService {
public class RDimStationTargetDServiceImpl extends MppServiceImpl<RDimStationTargetDMapper, RDimStationTargetD> implements IRDimStationTargetDService {
private final IRDimStationBaseDService irDimStationBaseDService;
@@ -58,7 +59,7 @@ public class RDimStationTargetDServiceImpl extends ServiceImpl<RDimStationTarget
Map<String,List<RDimStationBaseD>> voltageMap = rDimStationBaseDList.stream().collect(Collectors.groupingBy(RDimStationBaseD::getVoltageLevel));
voltageMap.forEach((voltageKey,voltageVal)->{
int stationNum = voltageVal.stream().map(RDimStationBaseD::getStationId).distinct().collect(Collectors.toList()).size();
long stationNum = voltageVal.stream().map(RDimStationBaseD::getStationId).distinct().count();
Map<String,List<RDimStationBaseD>> targetMap = voltageVal.stream().collect(Collectors.groupingBy(RDimStationBaseD::getTargetType));
targetMap.forEach((targetKey,targetVal)->{
@@ -80,7 +81,7 @@ public class RDimStationTargetDServiceImpl extends ServiceImpl<RDimStationTarget
poList.add(rDimStationTargetD);
});
});
this.saveBatch(poList);
this.saveOrUpdateBatch(poList,100);
}
}
}

View File

@@ -7,6 +7,7 @@ import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.device.biz.pojo.dto.DeptGetBase;
import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
@@ -34,7 +35,7 @@ import java.util.stream.Collectors;
*/
@Service
@RequiredArgsConstructor
public class RDimStationTargetMServiceImpl extends ServiceImpl<RDimStationTargetMMapper, RDimStationTargetM> implements IRDimStationTargetMService {
public class RDimStationTargetMServiceImpl extends MppServiceImpl<RDimStationTargetMMapper, RDimStationTargetM> implements IRDimStationTargetMService {
private final IRDimStationBaseDService irDimStationBaseDService;

View File

@@ -1,12 +1,31 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
import cn.hutool.core.collection.CollectionUtil;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.device.biz.pojo.dto.DeptGetBase;
import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
import com.njcn.harmonic.pojo.po.dim.RDimStationTargetM;
import com.njcn.harmonic.pojo.po.dim.RDimStationTargetY;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimStationTargetYMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationTargetYService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
@@ -16,6 +35,61 @@ import org.springframework.stereotype.Service;
* @since 2023-11-21
*/
@Service
public class RDimStationTargetYServiceImpl extends ServiceImpl<RDimStationTargetYMapper, RDimStationTargetY> implements IRDimStationTargetYService {
@RequiredArgsConstructor
public class RDimStationTargetYServiceImpl extends MppServiceImpl<RDimStationTargetYMapper, RDimStationTargetY> implements IRDimStationTargetYService {
private final IRDimStationBaseDService irDimStationBaseDService;
@Override
public void calDimStationTargetYear(CalculatedParam<DeptGetBase> calculatedParam) {
List<RDimStationTargetY> poList = new ArrayList<>();
DateTime start = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
DateTime end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
List<DeptGetBase> deptList = calculatedParam.getIdList();
for(DeptGetBase deptGetBase : deptList){
List<String> deptCodes = deptGetBase.getUnitChildrenList();
LambdaQueryWrapper<RDimStationBaseD> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(RDimStationBaseD::getOrgId,deptCodes)
.between(RDimStationBaseD::getStatisDate,start,end).eq(RDimStationBaseD::getLevel,0);
List<RDimStationBaseD> rDimStationBaseDList = irDimStationBaseDService.list(lambdaQueryWrapper);
if(CollectionUtil.isEmpty(rDimStationBaseDList)){
continue;
}
Map<String,List<RDimStationBaseD>> voltageMap = rDimStationBaseDList.stream().collect(Collectors.groupingBy(RDimStationBaseD::getVoltageLevel));
voltageMap.forEach((voltageKey,voltageVal)->{
int stationNum = (int) voltageVal.stream().map(RDimStationBaseD::getStationId).distinct().count();
int stationAllNum = (int) voltageVal.stream().map(RDimStationBaseD::getStationId).count();
Map<String,List<RDimStationBaseD>> targetMap = voltageVal.stream().collect(Collectors.groupingBy(RDimStationBaseD::getTargetType));
targetMap.forEach((targetKey,targetVal)->{
RDimStationTargetY rDimStationTargetY = new RDimStationTargetY();
rDimStationTargetY.setOrgId(deptGetBase.getUnitId());
rDimStationTargetY.setStatisDate(LocalDate.parse(calculatedParam.getDataDate()));
rDimStationTargetY.setVoltageLevel(voltageKey);
rDimStationTargetY.setTargetType(targetKey);
List<String> limitList = targetVal.stream().filter(targetItem->targetItem.getLimitCount()>0).map(RDimStationBaseD::getStationId).distinct().collect(Collectors.toList());
rDimStationTargetY.setLimitRate((double) (limitList.size() / stationNum));
long limitAllList = targetVal.stream().filter(targetItem->targetItem.getLimitCount()>0).map(RDimStationBaseD::getStationId).count();
rDimStationTargetY.setLimitAvgRate((double) (limitAllList / stationAllNum));
//**kV变电站**指标合格率(%
int limit = targetVal.stream().mapToInt(RDimStationBaseD::getLimitCount).sum();
int all = targetVal.stream().mapToInt(RDimStationBaseD::getStatisCount).sum();
rDimStationTargetY.setPassRate((double)(all-limit)/all);
rDimStationTargetY.setPassAvgRate((double)(all-limit)/all);
rDimStationTargetY.setState(DataStateEnum.ENABLE.getCode());
poList.add(rDimStationTargetY);
});
});
this.saveOrUpdateBatchByMultiId(poList,100);
}
}
}