diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicQPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicQPO.java index 6334c1372..02985317f 100644 --- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicQPO.java +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicQPO.java @@ -54,7 +54,7 @@ public class RStatHarmonicQPO { * 日均超标监测点数(根据 日表的超标监测点数 取平均值) */ @TableField(value = "over_limit_measurement_average") - private Integer overLimitMeasurementAverage; + private Double overLimitMeasurementAverage; /** * 累计超标监测点数(监测点指标统计明细日表 统计) diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicYPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicYPO.java index 056bc69c4..3192d07eb 100644 --- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicYPO.java +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/RStatHarmonicYPO.java @@ -54,7 +54,7 @@ public class RStatHarmonicYPO { * 日均超标监测点数(根据 日表的超标监测点数 取平均值) */ @TableField(value = "over_limit_measurement_average") - private Integer overLimitMeasurementAverage; + private Double overLimitMeasurementAverage; /** * 累计超标监测点数(监测点指标统计明细日表 统计) diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatHarmonicOrgDPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatHarmonicOrgDPO.java new file mode 100644 index 000000000..2da62801e --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatHarmonicOrgDPO.java @@ -0,0 +1,58 @@ +package com.njcn.prepare.harmonic.pojo.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.util.Date; + +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; + +/** + * + * Description: + * Date: 2023/7/21 10:16【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@TableName(value = "r_stat_harmonic_org_d") +public class RStatHarmonicOrgDPO { + /** + * 单位ID + */ + @MppMultiId(value = "org_no") + private String orgNo; + + /** + * 生成数据的时间,每日统计一次 + */ + @MppMultiId(value = "data_date") + private Date dataDate; + + /** + * 稳态指标类型Id,字典表ID + */ + @MppMultiId(value = "harmonic_type") + private String harmonicType; + + /** + * 数据类型,字典表(01:主网测点 02:配网测点) + */ + @MppMultiId(value = "data_type") + private String dataType; + + /** + * 超标监测点数(监测点指标统计明细日表 统计) + */ + @TableField(value = "over_limit_measurement_average") + private Integer overLimitMeasurementAverage; + + /** + * 超标监测点数(监测点指标统计明细日表 统计) + */ + @TableField(value = "over_limit_measurement_ratio_average") + private Double overLimitMeasurementRatioAverage; +} \ No newline at end of file diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatHarmonicOrgMPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatHarmonicOrgMPO.java new file mode 100644 index 000000000..8d6c4737f --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatHarmonicOrgMPO.java @@ -0,0 +1,76 @@ +package com.njcn.prepare.harmonic.pojo.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.util.Date; + +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; + +/** + * + * Description: + * Date: 2023/7/21 10:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@TableName(value = "r_stat_harmonic_org_m") +public class RStatHarmonicOrgMPO { + /** + * 单位ID + */ + @MppMultiId(value = "org_no") + private String orgNo; + + /** + * 生成数据的时间,每月统计一次 + */ + @MppMultiId(value = "data_date") + private Date dataDate; + + /** + * 稳态指标类型Id,字典表ID + */ + @MppMultiId(value = "harmonic_type") + private String harmonicType; + + /** + * 数据类型,字典表(01:主网测点 02:配网测点) + */ + @MppMultiId(value = "data_type") + private String dataType; + + /** + * 日均超标监测点数(根据 日表的超标监测点数 取平均值) + */ + @TableField(value = "over_limit_measurement_average") + private Double overLimitMeasurementAverage; + + /** + * 累计超标监测点数(监测点指标统计明细日表 统计) + */ + @TableField(value = "over_limit_measurement_accrued") + private Integer overLimitMeasurementAccrued; + + /** + * 累计超标天数(根据 日表的超标监测点数 求和) + */ + @TableField(value = "over_day") + private Integer overDay; + + /** + * 日均超标监测点数占比(根据 日表的超标监测点数占比 取平均值) + */ + @TableField(value = "over_limit_measurement_ratio_average") + private Double overLimitMeasurementRatioAverage; + + /** + * 累计超标监测点数占比(此表的累计超标监测点数/区域统计表中的区域分类统计月表中的累计有效接入监测点数) + */ + @TableField(value = "over_limit_measurement_ratio_accrued") + private Double overLimitMeasurementRatioAccrued; +} \ No newline at end of file diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatHarmonicOrgQPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatHarmonicOrgQPO.java new file mode 100644 index 000000000..b366c9d7b --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatHarmonicOrgQPO.java @@ -0,0 +1,76 @@ +package com.njcn.prepare.harmonic.pojo.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.util.Date; + +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; + +/** + * + * Description: + * Date: 2023/7/21 10:59【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@TableName(value = "r_stat_harmonic_org_q") +public class RStatHarmonicOrgQPO { + /** + * 单位ID + */ + @MppMultiId(value = "org_no") + private String orgNo; + + /** + * 生成数据的时间,每季度统计一次 + */ + @MppMultiId(value = "data_date") + private Date dataDate; + + /** + * 稳态指标类型Id,字典表ID + */ + @MppMultiId(value = "harmonic_type") + private String harmonicType; + + /** + * 数据类型,字典表(01:主网测点 02:配网测点) + */ + @MppMultiId(value = "data_type") + private String dataType; + + /** + * 日均超标监测点数(根据 日表的超标监测点数 取平均值) + */ + @TableField(value = "over_limit_measurement_average") + private Double overLimitMeasurementAverage; + + /** + * 累计超标监测点数(监测点指标统计明细日表 统计) + */ + @TableField(value = "over_limit_measurement_accrued") + private Integer overLimitMeasurementAccrued; + + /** + * 平均超标天数(月表的累计超标天数之和/月表的累计超标监测点数之和) + */ + @TableField(value = "average_over_day") + private Double averageOverDay; + + /** + * 日均超标监测点数占比(根据 日表的超标监测点数占比 取平均值) + */ + @TableField(value = "over_limit_measurement_ratio_average") + private Double overLimitMeasurementRatioAverage; + + /** + * 累计超标监测点数占比(此表的累计超标监测点数/区域统计表中的区域分类统计季表中的累计有效接入监测点数) + */ + @TableField(value = "over_limit_measurement_ratio_accrued") + private Double overLimitMeasurementRatioAccrued; +} \ No newline at end of file diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatHarmonicOrgYPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatHarmonicOrgYPO.java new file mode 100644 index 000000000..99365446d --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RStatHarmonicOrgYPO.java @@ -0,0 +1,76 @@ +package com.njcn.prepare.harmonic.pojo.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.util.Date; + +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; + +/** + * + * Description: + * Date: 2023/7/21 10:59【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@TableName(value = "r_stat_harmonic_org_y") +public class RStatHarmonicOrgYPO { + /** + * 单位ID + */ + @MppMultiId(value = "org_no") + private String orgNo; + + /** + * 生成数据的时间,每年统计一次 + */ + @MppMultiId(value = "data_date") + private Date dataDate; + + /** + * 稳态指标类型Id,字典表ID + */ + @MppMultiId(value = "harmonic_type") + private String harmonicType; + + /** + * 数据类型,字典表(01:主网测点 02:配网测点) + */ + @MppMultiId(value = "data_type") + private String dataType; + + /** + * 日均超标监测点数(根据 日表的超标监测点数 取平均值) + */ + @TableField(value = "over_limit_measurement_average") + private Double overLimitMeasurementAverage; + + /** + * 累计超标监测点数(监测点指标统计明细日表 统计) + */ + @TableField(value = "over_limit_measurement_accrued") + private Integer overLimitMeasurementAccrued; + + /** + * 平均超标天数(月表的累计超标天数之和/月表的累计超标监测点数之和) + */ + @TableField(value = "average_over_day") + private Double averageOverDay; + + /** + * 日均超标监测点数占比(根据 日表的超标监测点数占比 取平均值) + */ + @TableField(value = "over_limit_measurement_ratio_average") + private Double overLimitMeasurementRatioAverage; + + /** + * 累计超标监测点数占比(此表的累计超标监测点数/区域统计表中的区域分类统计季表中的累计有效接入监测点数) + */ + @TableField(value = "over_limit_measurement_ratio_accrued") + private Double overLimitMeasurementRatioAccrued; +} \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/newalgorithm/RStatHarmonicOrgController.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/newalgorithm/RStatHarmonicOrgController.java new file mode 100644 index 000000000..5aa72e52b --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/newalgorithm/RStatHarmonicOrgController.java @@ -0,0 +1,72 @@ +package com.njcn.prepare.harmonic.controller.newalgorithm; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.device.biz.commApi.CommTerminalGeneralClient; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.device.biz.pojo.param.DeptGetLineParam; +import com.njcn.prepare.harmonic.pojo.param.OrgParam; +import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicOrgService; +import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicService; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.po.Dept; +import com.njcn.user.pojo.vo.PvTerminalTreeVO; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.StringUtils; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 13:47【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Slf4j +@Api(tags = "单位稳态指标数据统计(xy)") +@RestController +@RequestMapping("/rstatharmonicorg") +@RequiredArgsConstructor +public class RStatHarmonicOrgController extends BaseController { + + + private final RStatHarmonicOrgService service; + private final DeptFeignClient deptFeignClient; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/Handler") + @ApiOperation("单位监测点稳态指标统计") + @ApiImplicitParam(name = "orgParam", value = "参数", required = true) + public HttpResult handler(@RequestBody @Validated OrgParam orgParam ){ + log.info(LocalDateTime.now()+"dayHandler始执行"); + String methodDescribe = getMethodDescribe("dayHandler"); + /** + * 支持补录 + */ + DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); + + if(StringUtils.isEmpty(orgParam.getOrgId())){ + Dept data = deptFeignClient.getRootDept().getData(); + orgParam.setOrgId(data.getId()); + } + service.handler(orgParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatHarmonicOrgDPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatHarmonicOrgDPOMapper.java new file mode 100644 index 000000000..d37014dc4 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatHarmonicOrgDPOMapper.java @@ -0,0 +1,15 @@ +package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.prepare.harmonic.pojo.po.RStatHarmonicOrgDPO; + +/** + * + * Description: + * Date: 2023/7/21 10:16【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicOrgDPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatHarmonicOrgMPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatHarmonicOrgMPOMapper.java new file mode 100644 index 000000000..246c91dec --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatHarmonicOrgMPOMapper.java @@ -0,0 +1,16 @@ +package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.prepare.harmonic.pojo.po.RStatHarmonicOrgMPO; + +/** + * + * Description: + * Date: 2023/7/21 10:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicOrgMPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatHarmonicOrgQPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatHarmonicOrgQPOMapper.java new file mode 100644 index 000000000..a1b3bed1e --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatHarmonicOrgQPOMapper.java @@ -0,0 +1,16 @@ +package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.prepare.harmonic.pojo.po.RStatHarmonicOrgQPO; + +/** + * + * Description: + * Date: 2023/7/21 10:59【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicOrgQPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatHarmonicOrgYPOMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatHarmonicOrgYPOMapper.java new file mode 100644 index 000000000..bc0bedd11 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/RStatHarmonicOrgYPOMapper.java @@ -0,0 +1,15 @@ +package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.prepare.harmonic.pojo.po.RStatHarmonicOrgYPO; + +/** + * + * Description: + * Date: 2023/7/21 10:59【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicOrgYPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatHarmonicOrgMPOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatHarmonicOrgMPOMapper.xml new file mode 100644 index 000000000..8bba6a563 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatHarmonicOrgMPOMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + org_no, data_date, harmonic_type, data_type, over_limit_measurement_average, over_limit_measurement_accrued, + over_day, over_limit_measurement_ratio_average, over_limit_measurement_ratio_accrued + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatHarmonicOrgQPOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatHarmonicOrgQPOMapper.xml new file mode 100644 index 000000000..b0b48100a --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatHarmonicOrgQPOMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + org_no, data_date, harmonic_type, data_type, over_limit_measurement_average, over_limit_measurement_accrued, + average_over_day, over_limit_measurement_ratio_average, over_limit_measurement_ratio_accrued + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatHarmonicOrgYPOMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatHarmonicOrgYPOMapper.xml new file mode 100644 index 000000000..bceac7106 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/newalgorithm/mapping/RStatHarmonicOrgYPOMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + org_no, data_date, harmonic_type, data_type, over_limit_measurement_average, over_limit_measurement_accrued, + average_over_day, over_limit_measurement_ratio_average, over_limit_measurement_ratio_accrued + + \ No newline at end of file diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicOrgServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicOrgServiceImpl.java new file mode 100644 index 000000000..688c6c0c5 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicOrgServiceImpl.java @@ -0,0 +1,447 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.njcn.device.pms.pojo.po.RStatOrgPO; +import com.njcn.harmonic.pojo.po.RStatOrgDPO; +import com.njcn.harmonic.pojo.po.RStatOrgMPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.*; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicDPO; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicMPO; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicQPO; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatOrgQPO; +import com.njcn.prepare.harmonic.pojo.param.OrgParam; +import com.njcn.prepare.harmonic.pojo.po.*; +import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicOrgService; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatHarmonicOrgDPOService; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatHarmonicOrgMPOService; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatHarmonicOrgQPOService; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatHarmonicOrgYPOService; +import com.njcn.prepare.harmonic.utils.PublicUtil; +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 com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.po.Dept; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.text.DecimalFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * Description: + * Date: 2023/7/19 9:07【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@RequiredArgsConstructor +public class RStatHarmonicOrgServiceImpl implements RStatHarmonicOrgService { + + private final + DicDataFeignClient dicDataFeignClient; + + private final DeptFeignClient deptFeignClient; + + private final RStatOrgDMapper rStatOrgDMapper; + private final RStatHarmonicDPOMapper rStatHarmonicDPOMapper; + private final RStatHarmonicOrgDPOService rStatHarmonicDPOService; + + private final RStatOrgMMapper rStatOrgMMapper; + private final RStatHarmonicMPOMapper rStatHarmonicMPOMapper; + private final RStatHarmonicOrgMPOService rStatHarmonicMPOService; + + + private final RStatHarmonicOrgQPOService rStatHarmonicQPOService; + private final RStatHarmonicOrgYPOService rStatHarmonicYPOService; + + DecimalFormat df = new DecimalFormat("0.00"); + + + @Override + public void handler(OrgParam orgParam) { + switch (orgParam.getType()) { + case 1: + this.hanlderYear (orgParam); + break; + case 2: + this.hanlderQtr (orgParam); + break; + case 3: + this.hanlderM (orgParam); + break; + case 5: + this.hanlderDay ( orgParam); + break; + default: + break; + } + } + @Transactional + @Async("asyncExecutor") + @SneakyThrows + private void hanlderYear(OrgParam orgParam) { + List rStatHarmonicOrgYPOList = new ArrayList<>(); + List data = deptFeignClient.getDepSonIdtByDeptId(orgParam.getOrgId()).getData(); + Date date = DateUtil.parse(orgParam.getDataDate()); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + QueryWrapper rStatOrgMPOQueryWrapper = new QueryWrapper<>(); + + + /*获取稳态统计指标*/ + List steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + /*获取数据类型*/ + + List dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData(); + Map dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + ; + /*获取监测点类型类型*/ + List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + data.stream().forEach(temp->{ + int sumEffectiveMeasurement =0; + rStatOrgMPOQueryWrapper.clear(); + rStatOrgMPOQueryWrapper.select("effective_measurement_accrued"). + eq("org_no",temp). + eq("YEAR( data_date)", orgParam.getDataDate().substring(0,4)); + + + List rStatOrgMPOS = rStatOrgMMapper.selectList(rStatOrgMPOQueryWrapper); + if(CollectionUtils.isEmpty(rStatOrgMPOS)){ + sumEffectiveMeasurement=0; + }else { + sumEffectiveMeasurement = rStatOrgMPOS.stream().mapToInt(RStatOrgMPO::getEffectiveMeasurementAccrued).sum(); + } + int finalSumEffectiveMeasurement = sumEffectiveMeasurement; + dataTypeMap.forEach((k, v)->{ + steadyStatis.forEach(dictData -> { + if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) { + return; + } + queryWrapper.clear(); + queryWrapper.eq("org_no",temp). + eq("harmonic_type",dictData.getCode()). + eq("data_type",v.getId()). + eq("YEAR( data_date)", orgParam.getDataDate().substring(0,4)); + List rStatHarmonicMPOS = rStatHarmonicMPOMapper.selectList(queryWrapper); + Double overLimitMeasurementAverage =0.00; + int overDay =0; + int overLimitMeasurementAccrued=0; + Double averageOverDay =0.00; + Double overLimitMeasurementRatioAverage=0.00; + Double overLimitMeasurementRatioAccrued=0.00; + if(!CollectionUtils.isEmpty(rStatHarmonicMPOS)){ + + overDay = rStatHarmonicMPOS.stream().mapToInt(RStatHarmonicMPO::getOverDay).sum(); + overLimitMeasurementAccrued = rStatHarmonicMPOS.stream().mapToInt(RStatHarmonicMPO::getOverLimitMeasurementAccrued).sum(); + double asDouble = rStatHarmonicMPOS.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementAverage).average().getAsDouble(); + overLimitMeasurementAverage = Double.parseDouble(df.format(asDouble)); + double asDouble1 = rStatHarmonicMPOS.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementRatioAverage).average().getAsDouble(); + + overLimitMeasurementRatioAverage = Double.parseDouble(df.format(asDouble1)); + if(finalSumEffectiveMeasurement ==0){ + overLimitMeasurementRatioAccrued=0.00; + }else { + overLimitMeasurementRatioAccrued=Double.parseDouble(df.format((float)overLimitMeasurementAccrued / finalSumEffectiveMeasurement)); + } + if(!(overLimitMeasurementAccrued==0)){ + averageOverDay = Double.parseDouble(df.format((float)overDay / overLimitMeasurementAccrued)); + } + } + RStatHarmonicOrgYPO rStatHarmonicOrgYPO = new RStatHarmonicOrgYPO(); + rStatHarmonicOrgYPO.setOrgNo(temp); + rStatHarmonicOrgYPO.setDataDate(date); + rStatHarmonicOrgYPO.setHarmonicType(dictData.getId()); + rStatHarmonicOrgYPO.setDataType(v.getId()); + rStatHarmonicOrgYPO.setAverageOverDay(averageOverDay); + rStatHarmonicOrgYPO.setOverLimitMeasurementAccrued(overLimitMeasurementAccrued); + rStatHarmonicOrgYPO.setOverLimitMeasurementAverage(overLimitMeasurementAverage); + rStatHarmonicOrgYPO.setOverLimitMeasurementRatioAccrued(overLimitMeasurementRatioAccrued); + rStatHarmonicOrgYPO.setOverLimitMeasurementRatioAverage(overLimitMeasurementRatioAverage); + + rStatHarmonicOrgYPOList.add(rStatHarmonicOrgYPO); + + + }); + + }); + }); + + if(!CollectionUtils.isEmpty(rStatHarmonicOrgYPOList)){ + rStatHarmonicYPOService.saveOrUpdateBatchByMultiId(rStatHarmonicOrgYPOList,500); + } + + } + @Transactional + @Async("asyncExecutor") + @SneakyThrows + private void hanlderQtr(OrgParam orgParam) { + List rStatHarmonicOrgQPOList = new ArrayList<>(); + List data = deptFeignClient.getDepSonIdtByDeptId(orgParam.getOrgId()).getData(); + Date date = DateUtil.parse(orgParam.getDataDate()); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + QueryWrapper rStatOrgMPOQueryWrapper = new QueryWrapper<>(); + + + /*获取稳态统计指标*/ + List steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + /*获取数据类型*/ + + List dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData(); + Map dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + ; + /*获取监测点类型类型*/ + List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + data.stream().forEach(temp->{ + int sumEffectiveMeasurement =0; + rStatOrgMPOQueryWrapper.clear(); + rStatOrgMPOQueryWrapper.select("effective_measurement_accrued"). + eq("org_no",temp). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (orgParam.getDataDate())); + + List rStatOrgMPOS = rStatOrgMMapper.selectList(rStatOrgMPOQueryWrapper); + if(CollectionUtils.isEmpty(rStatOrgMPOS)){ + sumEffectiveMeasurement=0; + }else { + sumEffectiveMeasurement = rStatOrgMPOS.stream().mapToInt(RStatOrgMPO::getEffectiveMeasurementAccrued).sum(); + } + int finalSumEffectiveMeasurement = sumEffectiveMeasurement; + dataTypeMap.forEach((k, v)->{ + steadyStatis.forEach(dictData -> { + if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) { + return; + } + queryWrapper.clear(); + queryWrapper.eq("org_no",temp). + eq("harmonic_type",dictData.getCode()). + eq("data_type",v.getId()). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (orgParam.getDataDate())); + List rStatHarmonicMPOS = rStatHarmonicMPOMapper.selectList(queryWrapper); + Double overLimitMeasurementAverage =0.00; + int overDay =0; + int overLimitMeasurementAccrued=0; + Double averageOverDay =0.00; + Double overLimitMeasurementRatioAverage=0.00; + Double overLimitMeasurementRatioAccrued=0.00; + if(!CollectionUtils.isEmpty(rStatHarmonicMPOS)){ + + overDay = rStatHarmonicMPOS.stream().mapToInt(RStatHarmonicMPO::getOverDay).sum(); + overLimitMeasurementAccrued = rStatHarmonicMPOS.stream().mapToInt(RStatHarmonicMPO::getOverLimitMeasurementAccrued).sum(); + double asDouble = rStatHarmonicMPOS.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementAverage).average().getAsDouble(); + overLimitMeasurementAverage = Double.parseDouble(df.format(asDouble)); + double asDouble1 = rStatHarmonicMPOS.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementRatioAverage).average().getAsDouble(); + + overLimitMeasurementRatioAverage = Double.parseDouble(df.format(asDouble1)); + if(finalSumEffectiveMeasurement ==0){ + overLimitMeasurementRatioAccrued=0.00; + }else { + overLimitMeasurementRatioAccrued=Double.parseDouble(df.format((float)overLimitMeasurementAccrued / finalSumEffectiveMeasurement)); + } + if(!(overLimitMeasurementAccrued==0)){ + averageOverDay = Double.parseDouble(df.format((float)overDay / overLimitMeasurementAccrued)); + } + } + RStatHarmonicOrgQPO rStatHarmonicOrgQPO = new RStatHarmonicOrgQPO(); + rStatHarmonicOrgQPO.setOrgNo(temp); + rStatHarmonicOrgQPO.setDataDate(date); + rStatHarmonicOrgQPO.setHarmonicType(dictData.getId()); + rStatHarmonicOrgQPO.setDataType(v.getId()); + rStatHarmonicOrgQPO.setAverageOverDay(averageOverDay); + rStatHarmonicOrgQPO.setOverLimitMeasurementAccrued(overLimitMeasurementAccrued); + rStatHarmonicOrgQPO.setOverLimitMeasurementAverage(overLimitMeasurementAverage); + rStatHarmonicOrgQPO.setOverLimitMeasurementRatioAccrued(overLimitMeasurementRatioAccrued); + rStatHarmonicOrgQPO.setOverLimitMeasurementRatioAverage(overLimitMeasurementRatioAverage); + + rStatHarmonicOrgQPOList.add(rStatHarmonicOrgQPO); + + + }); + + }); + }); + + if(!CollectionUtils.isEmpty(rStatHarmonicOrgQPOList)){ + rStatHarmonicQPOService.saveOrUpdateBatchByMultiId(rStatHarmonicOrgQPOList,500); + } + } + @Transactional + @Async("asyncExecutor") + @SneakyThrows + private void hanlderM(OrgParam orgParam) { + List rStatHarmonicOrgMPOList = new ArrayList<>(); + List data = deptFeignClient.getDepSonIdtByDeptId(orgParam.getOrgId()).getData(); + Date date = DateUtil.parse(orgParam.getDataDate()); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + QueryWrapper rStatOrgMPOQueryWrapper = new QueryWrapper<>(); + + + /*获取稳态统计指标*/ + List steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + /*获取数据类型*/ + + List dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData(); + Map dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + ; + /*获取监测点类型类型*/ + List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + data.stream().forEach(temp->{ + int sumEffectiveMeasurement =0; + rStatOrgMPOQueryWrapper.clear(); + rStatOrgMPOQueryWrapper.select("effective_measurement_accrued"). + eq("org_no",temp). + eq("DATE_FORMAT( data_date ,'%Y-%m')",orgParam.getDataDate().substring(0, 7)); + List rStatOrgMPOS = rStatOrgMMapper.selectList(rStatOrgMPOQueryWrapper); + if(CollectionUtils.isEmpty(rStatOrgMPOS)){ + sumEffectiveMeasurement=0; + }else { + sumEffectiveMeasurement = rStatOrgMPOS.stream().mapToInt(RStatOrgMPO::getEffectiveMeasurementAccrued).sum(); + } + int finalSumEffectiveMeasurement = sumEffectiveMeasurement; + dataTypeMap.forEach((k, v)->{ + steadyStatis.forEach(dictData -> { + if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) { + return; + } + queryWrapper.clear(); + queryWrapper.eq("org_no",temp). + eq("harmonic_type",dictData.getCode()). + eq("data_type",v.getId()). + eq("DATE_FORMAT( data_date ,'%Y-%m')",orgParam.getDataDate().substring(0, 7)); + List rStatHarmonicMPOS = rStatHarmonicMPOMapper.selectList(queryWrapper); + Double overLimitMeasurementAverage =0.00; + int overDay =0; + int overLimitMeasurementAccrued=0; + Double overLimitMeasurementRatioAverage=0.00; + Double overLimitMeasurementRatioAccrued=0.00; + if(!CollectionUtils.isEmpty(rStatHarmonicMPOS)){ + + overDay = rStatHarmonicMPOS.stream().mapToInt(RStatHarmonicMPO::getOverDay).sum(); + overLimitMeasurementAccrued = rStatHarmonicMPOS.stream().mapToInt(RStatHarmonicMPO::getOverLimitMeasurementAccrued).sum(); + double asDouble = rStatHarmonicMPOS.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementAverage).average().getAsDouble(); + overLimitMeasurementAverage = Double.parseDouble(df.format(asDouble)); + double asDouble1 = rStatHarmonicMPOS.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementRatioAverage).average().getAsDouble(); + + overLimitMeasurementRatioAverage = Double.parseDouble(df.format(asDouble1)); + if(finalSumEffectiveMeasurement ==0){ + overLimitMeasurementRatioAccrued=0.00; + }else { + overLimitMeasurementRatioAccrued=Double.parseDouble(df.format((float)overLimitMeasurementAccrued / finalSumEffectiveMeasurement)); + } + } + RStatHarmonicOrgMPO rStatHarmonicOrgMPO = new RStatHarmonicOrgMPO(); + rStatHarmonicOrgMPO.setOrgNo(temp); + rStatHarmonicOrgMPO.setDataDate(date); + rStatHarmonicOrgMPO.setHarmonicType(dictData.getId()); + rStatHarmonicOrgMPO.setDataType(v.getId()); + rStatHarmonicOrgMPO.setOverDay(overDay); + rStatHarmonicOrgMPO.setOverLimitMeasurementAccrued(overLimitMeasurementAccrued); + rStatHarmonicOrgMPO.setOverLimitMeasurementAverage(overLimitMeasurementAverage); + rStatHarmonicOrgMPO.setOverLimitMeasurementRatioAccrued(overLimitMeasurementRatioAccrued); + rStatHarmonicOrgMPO.setOverLimitMeasurementRatioAverage(overLimitMeasurementRatioAverage); + + rStatHarmonicOrgMPOList.add(rStatHarmonicOrgMPO); + + + }); + + }); + }); + + if(!CollectionUtils.isEmpty(rStatHarmonicOrgMPOList)){ + rStatHarmonicMPOService.saveOrUpdateBatchByMultiId(rStatHarmonicOrgMPOList,500); + } + + } + @Transactional + @Async("asyncExecutor") + @SneakyThrows + private void hanlderDay(OrgParam orgParam) { + List rStatHarmonicOrgDPOList = new ArrayList<>(); + List data = deptFeignClient.getDepSonIdtByDeptId(orgParam.getOrgId()).getData(); + Date date = DateUtil.parse(orgParam.getDataDate()); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + + /*获取稳态统计指标*/ + List steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + /*获取数据类型*/ + + List dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData(); + Map dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + ; + /*获取监测点类型类型*/ + List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + data.stream().forEach(temp->{ + int sumEffectiveMeasurement =0; + List rStatOrgDVOS = rStatOrgDMapper.listAll(orgParam.getDataDate(), temp); + if(CollectionUtils.isEmpty(rStatOrgDVOS)){ + sumEffectiveMeasurement=0; + }else { + sumEffectiveMeasurement = rStatOrgDVOS.stream().mapToInt(RStatOrgDVO::getEffectiveMeasurement).sum(); + } + int finalSumEffectiveMeasurement = sumEffectiveMeasurement; + dataTypeMap.forEach((k, v)->{ + steadyStatis.forEach(dictData -> { + if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) { + return; + } + queryWrapper.clear(); + queryWrapper.select("over_limit_measurement"). + eq("org_no",temp). + eq("data_type",v.getId()). + eq("harmonic_type",dictData.getCode()). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",orgParam.getDataDate()); + List rStatHarmonicDPOList = rStatHarmonicDPOMapper.selectList(queryWrapper); + int sumOverLimitMeasurement =0; + + if(CollectionUtils.isEmpty(rStatOrgDVOS)){ + sumOverLimitMeasurement=0; + }else { + sumOverLimitMeasurement = rStatHarmonicDPOList.stream().mapToInt(RStatHarmonicDPO::getOverLimitMeasurement).sum(); + } + RStatHarmonicOrgDPO rStatHarmonicOrgDPO = new RStatHarmonicOrgDPO(); + rStatHarmonicOrgDPO.setOrgNo(temp); + rStatHarmonicOrgDPO.setDataDate(date); + rStatHarmonicOrgDPO.setHarmonicType(dictData.getId()); + rStatHarmonicOrgDPO.setDataType(v.getId()); + rStatHarmonicOrgDPO.setOverLimitMeasurementAverage(sumOverLimitMeasurement); + if(finalSumEffectiveMeasurement ==0){ + rStatHarmonicOrgDPO.setOverLimitMeasurementRatioAverage(0.00); + }else { + rStatHarmonicOrgDPO.setOverLimitMeasurementRatioAverage(Double.parseDouble(df.format((float)sumOverLimitMeasurement / finalSumEffectiveMeasurement))); + } + rStatHarmonicOrgDPOList.add(rStatHarmonicOrgDPO); + + + }); + }); + + }); + + if(!CollectionUtils.isEmpty(rStatHarmonicOrgDPOList)){ + rStatHarmonicDPOService.saveOrUpdateBatchByMultiId(rStatHarmonicOrgDPOList,500); + } + } + + public static void main(String[] args) { + List rStatOrgDVOS = null; + + int sumEffectiveMeasurement = rStatOrgDVOS.stream().mapToInt(RStatOrgDVO::getEffectiveMeasurement).sum(); + + + } +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicServiceImpl.java index f2cdbe5f6..765e88ebd 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicServiceImpl.java @@ -10,16 +10,17 @@ import com.njcn.device.pms.pojo.po.RStatOrgPO; import com.njcn.harmonic.pojo.po.*; import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper; import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgMMapper; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgQMapper; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgYMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailMMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailMMapper; -import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicDPO; -import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicMPO; -import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicVoltageDPO; +import com.njcn.prepare.harmonic.pojo.mysql.po.*; import com.njcn.prepare.harmonic.service.mysql.Impl.line.RMpPartHarmonicDetailDServiceImpl; import com.njcn.prepare.harmonic.service.mysql.area.*; import com.njcn.prepare.harmonic.service.mysql.line.IRMpPartHarmonicDetailDService; +import com.njcn.prepare.harmonic.utils.PublicUtil; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataTypeEnum; @@ -51,6 +52,9 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService { private final RStatHarmonicDPOService rStatHarmonicDPOService; private final RStatHarmonicMPOService rStatHarmonicMPOService; + private final RStatHarmonicQPOService rStatHarmonicQPOService; + private final RStatHarmonicYPOService rStatHarmonicYPOService; + private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper; private final RMpSurplusHarmonicDetailDMapper rMpSurplusHarmonicDetailDMapper; @@ -59,6 +63,10 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService { private final RMpPartHarmonicDetailMMapper rMpPartHarmonicDetailMMapper; private final RMpSurplusHarmonicDetailMMapper rMpSurplusHarmonicDetailMMapper; private final RStatOrgMMapper rStatOrgMMapper; + private final RStatOrgQMapper rStatOrgQMapper; + private final RStatOrgYMapper rStatOrgYMapper; + + @@ -68,12 +76,12 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService { @Override public void handler(List data, String dataDate, Integer type) { switch (type) { -// case 1: -// this.hanlderOracleYear (lineParam); -// break; -// case 2: -// this.hanlderOracleQtr (lineParam); -// break; + case 1: + this.hanlderOracleYear (data, dataDate, type); + break; + case 2: + this.hanlderOracleQtr (data, dataDate, type); + break; case 3: this.hanlderM ( data, dataDate, type); break; @@ -84,6 +92,408 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService { break; } } + @Transactional + @Async("asyncExecutor") + @SneakyThrows + private void hanlderOracleYear(List data, String dataDate, Integer type) { + List rStatHarmonicYPOList = new ArrayList<>(); + Date date = DateUtil.parse(dataDate); + QueryWrapper queryWrapper = new QueryWrapper<>(); + QueryWrapper rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>(); + QueryWrapper rStatOrgYPOQueryWrapper = new QueryWrapper<>(); + QueryWrapper harmonicMPOQueryWrapper = new QueryWrapper<>(); + + DecimalFormat df = new DecimalFormat("0.00"); + + /*获取稳态统计指标*/ + List steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + /*获取数据类型*/ + + List dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData(); + Map dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + ; + /*获取监测点类型类型*/ + List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + + + data.forEach(deptGetChildrenMoreDTO -> { + + /*主网*/ + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) { + List lineBaseList = deptGetChildrenMoreDTO.getLineBaseList(); + Map> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect.forEach((k, v) -> { + List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + + queryWrapper.clear(); + queryWrapper.select("freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). + in("measurement_point_id", collect1). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + + List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper); + + rMpSurplusHarmonicDetailMQueryWrapper.clear(); + rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day"). + in("measurement_point_id", collect1). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + List rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper); + + rStatOrgYPOQueryWrapper.clear(); + rStatOrgYPOQueryWrapper.select("effective_measurement_accrued"). + eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). + eq("YEAR( data_date)", dataDate.substring(0,4)); + RStatOrgYPO rStatOrgYPO = rStatOrgYMapper.selectOne(rStatOrgYPOQueryWrapper); + + + + steadyStatis.forEach(dictData -> { + if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) { + return; + } + RStatHarmonicYPO rStatHarmonicYPO = new RStatHarmonicYPO(); + rStatHarmonicYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatHarmonicYPO.setDataDate(date); + rStatHarmonicYPO.setHarmonicType(dictData.getId()); + rStatHarmonicYPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + rStatHarmonicYPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap)); + /**4、累计超标监测点数*/ + rStatHarmonicYPO.setOverLimitMeasurementAccrued(getOverLimitMeasurementAccruedTime(dictData, rMpPartHarmonicDetailMS, rMpSurplusHarmonicDetailMS)); + /*3、日均超标监测点数,6、日均超标监测点数占比*/ + harmonicMPOQueryWrapper.clear(); + harmonicMPOQueryWrapper.eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). + eq("harmonic_type", dictData.getId()). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + List list = rStatHarmonicMPOService.list(harmonicMPOQueryWrapper); + double asDouble = list.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementAverage).average().getAsDouble(); + asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + double asDouble1 = list.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementRatioAverage).average().getAsDouble(); + asDouble1 = BigDecimal.valueOf(asDouble1).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + int sum1 = list.stream().mapToInt(RStatHarmonicMPO::getOverDay).sum(); + rStatHarmonicYPO.setOverLimitMeasurementAverage(asDouble); + + rStatHarmonicYPO.setOverLimitMeasurementRatioAverage(asDouble1); + + + if (rStatHarmonicYPO.getOverLimitMeasurementAccrued() == 0) { + //todo为0时如何设值 + rStatHarmonicYPO.setAverageOverDay(0.00); + + } else { + String value = df.format((float) sum1 / rStatHarmonicYPO.getOverLimitMeasurementAccrued()); + rStatHarmonicYPO.setAverageOverDay(Double.parseDouble(value)); + } + + if (rStatOrgYPO.getEffectiveMeasurementAccrued() == 0) { + //todo为0时如何设值 + rStatHarmonicYPO.setOverLimitMeasurementRatioAccrued(0.00); + + } else { + String value = df.format((float) rStatHarmonicYPO.getOverLimitMeasurementAccrued() / rStatOrgYPO.getEffectiveMeasurementAccrued()); + rStatHarmonicYPO.setOverLimitMeasurementRatioAccrued(Double.parseDouble(value)); + } + rStatHarmonicYPOList.add(rStatHarmonicYPO); + }); + + }); + + } + /*配网*/ + if(CollectionUtil.isNotEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())){ + List pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds(); + Map> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect.forEach((k, v) -> { + List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + + queryWrapper.clear(); + queryWrapper.select("freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). + in("measurement_point_id", collect1). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + + List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper); + + rMpSurplusHarmonicDetailMQueryWrapper.clear(); + rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day"). + in("measurement_point_id", collect1). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + List rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper); + + rStatOrgYPOQueryWrapper.clear(); + rStatOrgYPOQueryWrapper.select("effective_measurement_accrued"). + eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). + eq("YEAR( data_date)", dataDate.substring(0,4)); + RStatOrgYPO rStatOrgYPO = rStatOrgYMapper.selectOne(rStatOrgYPOQueryWrapper); + + + + steadyStatis.forEach(dictData -> { + if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) { + return; + } + RStatHarmonicYPO rStatHarmonicYPO = new RStatHarmonicYPO(); + rStatHarmonicYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatHarmonicYPO.setDataDate(date); + rStatHarmonicYPO.setHarmonicType(dictData.getId()); + rStatHarmonicYPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + rStatHarmonicYPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap)); + /**4、累计超标监测点数*/ + rStatHarmonicYPO.setOverLimitMeasurementAccrued(getOverLimitMeasurementAccruedTime(dictData, rMpPartHarmonicDetailMS, rMpSurplusHarmonicDetailMS)); + /*3、日均超标监测点数,6、日均超标监测点数占比*/ + harmonicMPOQueryWrapper.clear(); + harmonicMPOQueryWrapper.eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). + eq("harmonic_type", dictData.getId()). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + List list = rStatHarmonicMPOService.list(harmonicMPOQueryWrapper); + double asDouble = list.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementAverage).average().getAsDouble(); + asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + double asDouble1 = list.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementRatioAverage).average().getAsDouble(); + asDouble1 = BigDecimal.valueOf(asDouble1).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + int sum1 = list.stream().mapToInt(RStatHarmonicMPO::getOverDay).sum(); + rStatHarmonicYPO.setOverLimitMeasurementAverage(asDouble); + + rStatHarmonicYPO.setOverLimitMeasurementRatioAverage(asDouble1); + + + if (rStatHarmonicYPO.getOverLimitMeasurementAccrued() == 0) { + //todo为0时如何设值 + rStatHarmonicYPO.setAverageOverDay(0.00); + + } else { + String value = df.format((float) sum1 / rStatHarmonicYPO.getOverLimitMeasurementAccrued()); + rStatHarmonicYPO.setAverageOverDay(Double.parseDouble(value)); + } + + if (rStatOrgYPO.getEffectiveMeasurementAccrued() == 0) { + //todo为0时如何设值 + rStatHarmonicYPO.setOverLimitMeasurementRatioAccrued(0.00); + + } else { + String value = df.format((float) rStatHarmonicYPO.getOverLimitMeasurementAccrued() / rStatOrgYPO.getEffectiveMeasurementAccrued()); + rStatHarmonicYPO.setOverLimitMeasurementRatioAccrued(Double.parseDouble(value)); + } + rStatHarmonicYPOList.add(rStatHarmonicYPO); + }); + + + }); + + } + }); + if(CollectionUtil.isNotEmpty(rStatHarmonicYPOList)){ + rStatHarmonicYPOService.saveOrUpdateBatchByMultiId(rStatHarmonicYPOList,500); + + } + } + + @Transactional + @Async("asyncExecutor") + @SneakyThrows + private void hanlderOracleQtr(List data, String dataDate, Integer type) { + List rStatHarmonicQPOList = new ArrayList<>(); + Date date = DateUtil.parse(dataDate); + QueryWrapper queryWrapper = new QueryWrapper<>(); + QueryWrapper rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>(); + QueryWrapper rStatOrgQPOQueryWrapper = new QueryWrapper<>(); + QueryWrapper harmonicMPOQueryWrapper = new QueryWrapper<>(); + + DecimalFormat df = new DecimalFormat("0.00"); + + /*获取稳态统计指标*/ + List steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + /*获取数据类型*/ + + List dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData(); + Map dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + ; + /*获取监测点类型类型*/ + List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + + + data.forEach(deptGetChildrenMoreDTO -> { + + /*主网*/ + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) { + List lineBaseList = deptGetChildrenMoreDTO.getLineBaseList(); + Map> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect.forEach((k, v) -> { + List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + + queryWrapper.clear(); + queryWrapper.select("freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). + in("measurement_point_id", collect1). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + + List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper); + + rMpSurplusHarmonicDetailMQueryWrapper.clear(); + rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day"). + in("measurement_point_id", collect1). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + List rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper); + + rStatOrgQPOQueryWrapper.clear(); + rStatOrgQPOQueryWrapper.select("effective_measurement_accrued"). + eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + RStatOrgQPO rStatOrgQPO = rStatOrgQMapper.selectOne(rStatOrgQPOQueryWrapper); + + + + steadyStatis.forEach(dictData -> { + if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) { + return; + } + RStatHarmonicQPO rStatHarmonicQPO = new RStatHarmonicQPO(); + rStatHarmonicQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatHarmonicQPO.setDataDate(date); + rStatHarmonicQPO.setHarmonicType(dictData.getId()); + rStatHarmonicQPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + rStatHarmonicQPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap)); + /**4、累计超标监测点数*/ + rStatHarmonicQPO.setOverLimitMeasurementAccrued(getOverLimitMeasurementAccruedTime(dictData, rMpPartHarmonicDetailMS, rMpSurplusHarmonicDetailMS)); + /*3、日均超标监测点数,6、日均超标监测点数占比*/ + harmonicMPOQueryWrapper.clear(); + harmonicMPOQueryWrapper.eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). + eq("harmonic_type", dictData.getId()). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + List list = rStatHarmonicMPOService.list(harmonicMPOQueryWrapper); + double asDouble = list.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementAverage).average().getAsDouble(); + asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + double asDouble1 = list.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementRatioAverage).average().getAsDouble(); + asDouble1 = BigDecimal.valueOf(asDouble1).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + int sum1 = list.stream().mapToInt(RStatHarmonicMPO::getOverDay).sum(); + rStatHarmonicQPO.setOverLimitMeasurementAverage(asDouble); + + rStatHarmonicQPO.setOverLimitMeasurementRatioAverage(asDouble1); + + + if (rStatHarmonicQPO.getOverLimitMeasurementAccrued() == 0) { + //todo为0时如何设值 + rStatHarmonicQPO.setAverageOverDay(0.00); + + } else { + String value = df.format((float) sum1 / rStatHarmonicQPO.getOverLimitMeasurementAccrued()); + rStatHarmonicQPO.setAverageOverDay(Double.parseDouble(value)); + } + + if (rStatOrgQPO.getEffectiveMeasurementAccrued() == 0) { + //todo为0时如何设值 + rStatHarmonicQPO.setOverLimitMeasurementRatioAccrued(0.00); + + } else { + String value = df.format((float) rStatHarmonicQPO.getOverLimitMeasurementAccrued() / rStatOrgQPO.getEffectiveMeasurementAccrued()); + rStatHarmonicQPO.setOverLimitMeasurementRatioAccrued(Double.parseDouble(value)); + } + rStatHarmonicQPOList.add(rStatHarmonicQPO); + }); + + }); + + } + /*配网*/ + if(CollectionUtil.isNotEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())){ + List pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds(); + Map> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect.forEach((k, v) -> { + List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + + queryWrapper.clear(); + queryWrapper.select("freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). + in("measurement_point_id", collect1). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + + List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper); + + rMpSurplusHarmonicDetailMQueryWrapper.clear(); + rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day"). + in("measurement_point_id", collect1). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + List rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper); + + rStatOrgQPOQueryWrapper.clear(); + rStatOrgQPOQueryWrapper.select("effective_measurement_accrued"). + eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + RStatOrgQPO rStatOrgQPO = rStatOrgQMapper.selectOne(rStatOrgQPOQueryWrapper); + + + + steadyStatis.forEach(dictData -> { + if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) { + return; + } + RStatHarmonicQPO rStatHarmonicQPO = new RStatHarmonicQPO(); + rStatHarmonicQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatHarmonicQPO.setDataDate(date); + rStatHarmonicQPO.setHarmonicType(dictData.getId()); + rStatHarmonicQPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + rStatHarmonicQPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap)); + /**4、累计超标监测点数*/ + rStatHarmonicQPO.setOverLimitMeasurementAccrued(getOverLimitMeasurementAccruedTime(dictData, rMpPartHarmonicDetailMS, rMpSurplusHarmonicDetailMS)); + /*3、日均超标监测点数,6、日均超标监测点数占比*/ + harmonicMPOQueryWrapper.clear(); + harmonicMPOQueryWrapper.eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). + eq("harmonic_type", dictData.getId()). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + List list = rStatHarmonicMPOService.list(harmonicMPOQueryWrapper); + double asDouble = list.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementAverage).average().getAsDouble(); + asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + double asDouble1 = list.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementRatioAverage).average().getAsDouble(); + asDouble1 = BigDecimal.valueOf(asDouble1).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + int sum1 = list.stream().mapToInt(RStatHarmonicMPO::getOverDay).sum(); + rStatHarmonicQPO.setOverLimitMeasurementAverage(asDouble); + + rStatHarmonicQPO.setOverLimitMeasurementRatioAverage(asDouble1); + + + if (rStatHarmonicQPO.getOverLimitMeasurementAccrued() == 0) { + //todo为0时如何设值 + rStatHarmonicQPO.setAverageOverDay(0.00); + + } else { + String value = df.format((float) sum1 / rStatHarmonicQPO.getOverLimitMeasurementAccrued()); + rStatHarmonicQPO.setAverageOverDay(Double.parseDouble(value)); + } + + if (rStatOrgQPO.getEffectiveMeasurementAccrued() == 0) { + //todo为0时如何设值 + rStatHarmonicQPO.setOverLimitMeasurementRatioAccrued(0.00); + + } else { + String value = df.format((float) rStatHarmonicQPO.getOverLimitMeasurementAccrued() / rStatOrgQPO.getEffectiveMeasurementAccrued()); + rStatHarmonicQPO.setOverLimitMeasurementRatioAccrued(Double.parseDouble(value)); + } + rStatHarmonicQPOList.add(rStatHarmonicQPO); + }); + + + }); + + } + }); + if(CollectionUtil.isNotEmpty(rStatHarmonicQPOList)){ + rStatHarmonicQPOService.saveOrUpdateBatchByMultiId(rStatHarmonicQPOList,500); + + } + } + @Transactional @Async("asyncExecutor") @SneakyThrows diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicVoltageServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicVoltageServiceImpl.java index e6a37bcc5..8b2ba715d 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicVoltageServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicVoltageServiceImpl.java @@ -1,19 +1,24 @@ package com.njcn.prepare.harmonic.service.mysql.Impl.area; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO; -import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD; -import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD; -import com.njcn.harmonic.pojo.po.RStatOrgDPO; +import com.njcn.harmonic.pojo.po.*; import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgMMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailMMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailMMapper; import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicDPO; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicMPO; import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicVoltageDPO; +import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicVoltageMPO; import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicVoltageDPOService; import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicVoltageService; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatHarmonicVoltageMPOService; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataTypeEnum; @@ -25,6 +30,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.*; import java.util.stream.Collectors; @@ -45,6 +51,12 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ private final RStatOrgDMapper rStatOrgDMapper; private final RStatHarmonicVoltageDPOService rStatHarmonicVoltageDPOService; + private final RStatHarmonicVoltageMPOService rStatHarmonicVoltageMPOService; + + private final RMpPartHarmonicDetailMMapper rMpPartHarmonicDetailMMapper; + private final RMpSurplusHarmonicDetailMMapper rMpSurplusHarmonicDetailMMapper; + private final RStatOrgMMapper rStatOrgMMapper; + private final DicDataFeignClient dicDataFeignClient; @Override @@ -56,9 +68,9 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ // case 2: // this.hanlderOracleQtr (lineParam); // break; -// case 3: -// this.hanlderOracleMonth (lineParam); -// break; + case 3: + this.hanlderMByPl (data, dataDate, type); + break; case 5: this.hanlderDayByPl ( data, dataDate, type); break; @@ -67,6 +79,128 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ } } + @Transactional(rollbackFor = {Exception.class}) + @Async("asyncExecutor") + @SneakyThrows + private void hanlderMByPl(List data, String dataDate, Integer type) { + List rStatHarmonicVoltageMPOList = new ArrayList<>(); + Date date = DateUtil.parse(dataDate); + QueryWrapper queryWrapper = new QueryWrapper<>(); + QueryWrapper rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>(); + QueryWrapper rStatOrgMPOQueryWrapper = new QueryWrapper<>(); + QueryWrapper harmonicVoltageDPOQueryWrapper = new QueryWrapper<>(); + + DecimalFormat df = new DecimalFormat("0.00"); + + /*获取稳态统计指标*/ + List steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + /*获取数据类型*/ + + List dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData(); + Map dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + ; + /*获取监测点类型类型*/ + List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + + + data.forEach(deptGetChildrenMoreDTO -> { + + /*主网*/ + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) { + List lineBaseList = deptGetChildrenMoreDTO.getLineBaseList(); + Map> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect.forEach((k, v) -> { + List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + Map> collect2 = v.stream().collect(Collectors.groupingBy(LineDevGetDTO::getVoltageLevel)); + collect2.forEach((k1, v1) -> { + queryWrapper.clear(); + queryWrapper.select("freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). + in("measurement_point_id", collect1). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper); + + rMpSurplusHarmonicDetailMQueryWrapper.clear(); + rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day"). + in("measurement_point_id", collect1). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + List rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper); + + rStatOrgMPOQueryWrapper.clear(); + rStatOrgMPOQueryWrapper.select("effective_measurement_accrued"). + eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + RStatOrgMPO rStatOrgMPO = rStatOrgMMapper.selectOne(rStatOrgMPOQueryWrapper); + + + + steadyStatis.forEach(dictData -> { + if (Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATOR.getCode())) { + return; + } + RStatHarmonicVoltageMPO rStatHarmonicVoltageMPO = new RStatHarmonicVoltageMPO(); + rStatHarmonicVoltageMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rStatHarmonicVoltageMPO.setDataDate(date); + rStatHarmonicVoltageMPO.setHarmonicType(dictData.getId()); + rStatHarmonicVoltageMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()); + rStatHarmonicVoltageMPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap)); + rStatHarmonicVoltageMPO.setVoltageType(k1); + + /**4、累计超标监测点数*/ + rStatHarmonicVoltageMPO.setOverLimitMeasurementAccrued(getOverLimitMeasurementAccruedTime(dictData, rMpPartHarmonicDetailMS, rMpSurplusHarmonicDetailMS)); + /*3、日均超标监测点数,6、日均超标监测点数占比*/ + harmonicVoltageDPOQueryWrapper.clear(); + harmonicVoltageDPOQueryWrapper.eq("org_no", deptGetChildrenMoreDTO.getUnitId()). + eq("measurement_type_class", getmeasurementType(k, lineSortMap)). + eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()). + eq("harmonic_type", dictData.getId()). + eq("voltageType",k1). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring(0, 7)); + List list = rStatHarmonicVoltageDPOService.list(harmonicVoltageDPOQueryWrapper); + double asDouble = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).average().getAsDouble(); + asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + rStatHarmonicVoltageMPO.setOverLimitMeasurementAverage(asDouble); + double asDouble1 = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementRatioAverage).average().getAsDouble(); + asDouble1 = BigDecimal.valueOf(asDouble1).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAccrued(asDouble); + int sum = list.stream().mapToInt(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).sum(); + rStatHarmonicVoltageMPO.setOverDay(sum); + + + if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) { + //todo为0时如何设值 + rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAccrued(0.00); + + } else { + String value = df.format((float) rStatHarmonicVoltageMPO.getOverLimitMeasurementAccrued() / rStatOrgMPO.getEffectiveMeasurementAccrued()); + rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAccrued(Double.parseDouble(value)); + } + rStatHarmonicVoltageMPOList.add(rStatHarmonicVoltageMPO); + }); + + }); + }); + } + /*配网*/ + if(CollectionUtil.isNotEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())){ + List pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds(); + Map> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect.forEach((k, v) -> { + List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + + + + }); + + } + }); + if(CollectionUtil.isNotEmpty(rStatHarmonicVoltageMPOList)){ + rStatHarmonicVoltageMPOService.saveOrUpdateBatchByMultiId(rStatHarmonicVoltageMPOList,500); + + } + } @Transactional(rollbackFor = {Exception.class}) @Async("asyncExecutor") @@ -264,4 +398,36 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ return value; } + + private Integer getOverLimitMeasurementAccruedTime(DictData dictData, List rMpPartHarmonicDetailMS, List rMpSurplusHarmonicDetailMS) { + Integer value = 0; + if (Objects.equals(dictData.getCode(),DicDataEnum.VOLTAGE_DEV.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getVDevOverDay()>0).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.FLICKER.getCode())) { + value = Integer.valueOf(rMpSurplusHarmonicDetailMS.stream().filter(temp ->temp.getFlickerOverDay()>0).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.HARMONIC_VOLTAGE.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getVOverDay()>0).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.HARMONIC_CURRENT.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getIOverDay()>0).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.INTERHARMONIC_VOLTAGE.getCode())) { + value = Integer.valueOf(rMpSurplusHarmonicDetailMS.stream().filter(temp ->temp.getInuharmOverDay()>0).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.PHASE_VOLTAGE.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getUnbalanceOverDay()>0).count()+""); + } + if (Objects.equals(dictData.getCode(),DicDataEnum.FREQUENCY_DEV.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getFreqOverDay()>0).count()+""); + + } + if (Objects.equals(dictData.getCode(),DicDataEnum.NEG_CURRENT.getCode())) { + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getINegOverDay()>0).count()+""); + } + + return value; + } + } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicOrgService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicOrgService.java new file mode 100644 index 000000000..ff7157607 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatHarmonicOrgService.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.prepare.harmonic.pojo.param.OrgParam; + +import java.util.List; + +/** + * Description: + * Date: 2023/5/26 15:40【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicOrgService { + + void handler(OrgParam orgParam); +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatHarmonicOrgDPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatHarmonicOrgDPOService.java new file mode 100644 index 000000000..6cfff7738 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatHarmonicOrgDPOService.java @@ -0,0 +1,17 @@ +package com.njcn.prepare.harmonic.service.mysql.newalgorithm; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.prepare.harmonic.pojo.po.RStatHarmonicOrgDPO; + +/** + * + * Description: + * Date: 2023/7/21 10:16【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicOrgDPOService extends IMppService { + + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatHarmonicOrgMPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatHarmonicOrgMPOService.java new file mode 100644 index 000000000..62ec5eb5c --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatHarmonicOrgMPOService.java @@ -0,0 +1,17 @@ +package com.njcn.prepare.harmonic.service.mysql.newalgorithm; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.prepare.harmonic.pojo.po.RStatHarmonicOrgMPO; +import com.baomidou.mybatisplus.extension.service.IService; + /** + * + * Description: + * Date: 2023/7/21 10:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicOrgMPOService extends IMppService { + + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatHarmonicOrgQPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatHarmonicOrgQPOService.java new file mode 100644 index 000000000..4cd1fcdfe --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatHarmonicOrgQPOService.java @@ -0,0 +1,17 @@ +package com.njcn.prepare.harmonic.service.mysql.newalgorithm; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.prepare.harmonic.pojo.po.RStatHarmonicOrgQPO; +import com.baomidou.mybatisplus.extension.service.IService; + /** + * + * Description: + * Date: 2023/7/21 10:59【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicOrgQPOService extends IMppService { + + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatHarmonicOrgYPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatHarmonicOrgYPOService.java new file mode 100644 index 000000000..17efa6d02 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatHarmonicOrgYPOService.java @@ -0,0 +1,17 @@ +package com.njcn.prepare.harmonic.service.mysql.newalgorithm; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.prepare.harmonic.pojo.po.RStatHarmonicOrgYPO; +import com.baomidou.mybatisplus.extension.service.IService; + /** + * + * Description: + * Date: 2023/7/21 10:59【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatHarmonicOrgYPOService extends IMppService { + + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatHarmonicOrgDPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatHarmonicOrgDPOServiceImpl.java new file mode 100644 index 000000000..e3a15529f --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatHarmonicOrgDPOServiceImpl.java @@ -0,0 +1,19 @@ +package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import org.springframework.stereotype.Service; +import com.njcn.prepare.harmonic.pojo.po.RStatHarmonicOrgDPO; +import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatHarmonicOrgDPOMapper; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatHarmonicOrgDPOService; +/** + * + * Description: + * Date: 2023/7/21 10:16【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RStatHarmonicOrgDPOServiceImpl extends MppServiceImpl implements RStatHarmonicOrgDPOService{ + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatHarmonicOrgMPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatHarmonicOrgMPOServiceImpl.java new file mode 100644 index 000000000..ae19869c3 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatHarmonicOrgMPOServiceImpl.java @@ -0,0 +1,20 @@ +package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.prepare.harmonic.pojo.po.RStatHarmonicOrgMPO; +import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatHarmonicOrgMPOMapper; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatHarmonicOrgMPOService; +/** + * + * Description: + * Date: 2023/7/21 10:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RStatHarmonicOrgMPOServiceImpl extends MppServiceImpl implements RStatHarmonicOrgMPOService{ + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatHarmonicOrgQPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatHarmonicOrgQPOServiceImpl.java new file mode 100644 index 000000000..977514ddb --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatHarmonicOrgQPOServiceImpl.java @@ -0,0 +1,20 @@ +package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.prepare.harmonic.pojo.po.RStatHarmonicOrgQPO; +import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatHarmonicOrgQPOMapper; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatHarmonicOrgQPOService; +/** + * + * Description: + * Date: 2023/7/21 10:59【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RStatHarmonicOrgQPOServiceImpl extends MppServiceImpl implements RStatHarmonicOrgQPOService{ + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatHarmonicOrgYPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatHarmonicOrgYPOServiceImpl.java new file mode 100644 index 000000000..07b1b2f8c --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatHarmonicOrgYPOServiceImpl.java @@ -0,0 +1,20 @@ +package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatHarmonicOrgYPOMapper; +import com.njcn.prepare.harmonic.pojo.po.RStatHarmonicOrgYPO; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatHarmonicOrgYPOService; +/** + * + * Description: + * Date: 2023/7/21 10:59【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RStatHarmonicOrgYPOServiceImpl extends MppServiceImpl implements RStatHarmonicOrgYPOService{ + +}