3.3.8. 单位稳态指标数据统计(xy)
This commit is contained in:
@@ -54,7 +54,7 @@ public class RStatHarmonicQPO {
|
|||||||
* 日均超标监测点数(根据 日表的超标监测点数 取平均值)
|
* 日均超标监测点数(根据 日表的超标监测点数 取平均值)
|
||||||
*/
|
*/
|
||||||
@TableField(value = "over_limit_measurement_average")
|
@TableField(value = "over_limit_measurement_average")
|
||||||
private Integer overLimitMeasurementAverage;
|
private Double overLimitMeasurementAverage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 累计超标监测点数(监测点指标统计明细日表 统计)
|
* 累计超标监测点数(监测点指标统计明细日表 统计)
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class RStatHarmonicYPO {
|
|||||||
* 日均超标监测点数(根据 日表的超标监测点数 取平均值)
|
* 日均超标监测点数(根据 日表的超标监测点数 取平均值)
|
||||||
*/
|
*/
|
||||||
@TableField(value = "over_limit_measurement_average")
|
@TableField(value = "over_limit_measurement_average")
|
||||||
private Integer overLimitMeasurementAverage;
|
private Double overLimitMeasurementAverage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 累计超标监测点数(监测点指标统计明细日表 统计)
|
* 累计超标监测点数(监测点指标统计明细日表 统计)
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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<String> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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<RStatHarmonicOrgDPO> {
|
||||||
|
}
|
||||||
@@ -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<RStatHarmonicOrgMPO> {
|
||||||
|
}
|
||||||
@@ -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<RStatHarmonicOrgQPO> {
|
||||||
|
}
|
||||||
@@ -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<RStatHarmonicOrgYPO> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatHarmonicOrgMPOMapper">
|
||||||
|
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.po.RStatHarmonicOrgMPO">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
<!--@Table r_stat_harmonic_org_m-->
|
||||||
|
<id column="org_no" jdbcType="VARCHAR" property="orgNo" />
|
||||||
|
<id column="data_date" jdbcType="DATE" property="dataDate" />
|
||||||
|
<id column="harmonic_type" jdbcType="VARCHAR" property="harmonicType" />
|
||||||
|
<id column="data_type" jdbcType="VARCHAR" property="dataType" />
|
||||||
|
<result column="over_limit_measurement_average" jdbcType="INTEGER" property="overLimitMeasurementAverage" />
|
||||||
|
<result column="over_limit_measurement_accrued" jdbcType="INTEGER" property="overLimitMeasurementAccrued" />
|
||||||
|
<result column="over_day" jdbcType="INTEGER" property="overDay" />
|
||||||
|
<result column="over_limit_measurement_ratio_average" jdbcType="REAL" property="overLimitMeasurementRatioAverage" />
|
||||||
|
<result column="over_limit_measurement_ratio_accrued" jdbcType="REAL" property="overLimitMeasurementRatioAccrued" />
|
||||||
|
</resultMap>
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
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
|
||||||
|
</sql>
|
||||||
|
</mapper>
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatHarmonicOrgQPOMapper">
|
||||||
|
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.po.RStatHarmonicOrgQPO">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
<!--@Table r_stat_harmonic_org_q-->
|
||||||
|
<id column="org_no" jdbcType="VARCHAR" property="orgNo" />
|
||||||
|
<id column="data_date" jdbcType="DATE" property="dataDate" />
|
||||||
|
<id column="harmonic_type" jdbcType="VARCHAR" property="harmonicType" />
|
||||||
|
<id column="data_type" jdbcType="VARCHAR" property="dataType" />
|
||||||
|
<result column="over_limit_measurement_average" jdbcType="INTEGER" property="overLimitMeasurementAverage" />
|
||||||
|
<result column="over_limit_measurement_accrued" jdbcType="INTEGER" property="overLimitMeasurementAccrued" />
|
||||||
|
<result column="average_over_day" jdbcType="REAL" property="averageOverDay" />
|
||||||
|
<result column="over_limit_measurement_ratio_average" jdbcType="REAL" property="overLimitMeasurementRatioAverage" />
|
||||||
|
<result column="over_limit_measurement_ratio_accrued" jdbcType="REAL" property="overLimitMeasurementRatioAccrued" />
|
||||||
|
</resultMap>
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
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
|
||||||
|
</sql>
|
||||||
|
</mapper>
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatHarmonicOrgYPOMapper">
|
||||||
|
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.po.RStatHarmonicOrgYPO">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
<!--@Table r_stat_harmonic_org_y-->
|
||||||
|
<id column="org_no" jdbcType="VARCHAR" property="orgNo" />
|
||||||
|
<id column="data_date" jdbcType="DATE" property="dataDate" />
|
||||||
|
<id column="harmonic_type" jdbcType="VARCHAR" property="harmonicType" />
|
||||||
|
<id column="data_type" jdbcType="VARCHAR" property="dataType" />
|
||||||
|
<result column="over_limit_measurement_average" jdbcType="INTEGER" property="overLimitMeasurementAverage" />
|
||||||
|
<result column="over_limit_measurement_accrued" jdbcType="INTEGER" property="overLimitMeasurementAccrued" />
|
||||||
|
<result column="average_over_day" jdbcType="REAL" property="averageOverDay" />
|
||||||
|
<result column="over_limit_measurement_ratio_average" jdbcType="REAL" property="overLimitMeasurementRatioAverage" />
|
||||||
|
<result column="over_limit_measurement_ratio_accrued" jdbcType="REAL" property="overLimitMeasurementRatioAccrued" />
|
||||||
|
</resultMap>
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
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
|
||||||
|
</sql>
|
||||||
|
</mapper>
|
||||||
@@ -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<RStatHarmonicOrgYPO> rStatHarmonicOrgYPOList = new ArrayList<>();
|
||||||
|
List<String> data = deptFeignClient.getDepSonIdtByDeptId(orgParam.getOrgId()).getData();
|
||||||
|
Date date = DateUtil.parse(orgParam.getDataDate());
|
||||||
|
|
||||||
|
QueryWrapper<RStatHarmonicMPO> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> 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<RStatOrgMPO> 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<RStatHarmonicMPO> 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<RStatHarmonicOrgQPO> rStatHarmonicOrgQPOList = new ArrayList<>();
|
||||||
|
List<String> data = deptFeignClient.getDepSonIdtByDeptId(orgParam.getOrgId()).getData();
|
||||||
|
Date date = DateUtil.parse(orgParam.getDataDate());
|
||||||
|
|
||||||
|
QueryWrapper<RStatHarmonicMPO> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> 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<RStatOrgMPO> 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<RStatHarmonicMPO> 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<RStatHarmonicOrgMPO> rStatHarmonicOrgMPOList = new ArrayList<>();
|
||||||
|
List<String> data = deptFeignClient.getDepSonIdtByDeptId(orgParam.getOrgId()).getData();
|
||||||
|
Date date = DateUtil.parse(orgParam.getDataDate());
|
||||||
|
|
||||||
|
QueryWrapper<RStatHarmonicMPO> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> 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<RStatOrgMPO> 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<RStatHarmonicMPO> 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<RStatHarmonicOrgDPO> rStatHarmonicOrgDPOList = new ArrayList<>();
|
||||||
|
List<String> data = deptFeignClient.getDepSonIdtByDeptId(orgParam.getOrgId()).getData();
|
||||||
|
Date date = DateUtil.parse(orgParam.getDataDate());
|
||||||
|
|
||||||
|
QueryWrapper<RStatHarmonicDPO> queryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
data.stream().forEach(temp->{
|
||||||
|
int sumEffectiveMeasurement =0;
|
||||||
|
List<RStatOrgDVO> 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<RStatHarmonicDPO> 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<RStatOrgDVO> rStatOrgDVOS = null;
|
||||||
|
|
||||||
|
int sumEffectiveMeasurement = rStatOrgDVOS.stream().mapToInt(RStatOrgDVO::getEffectiveMeasurement).sum();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,16 +10,17 @@ import com.njcn.device.pms.pojo.po.RStatOrgPO;
|
|||||||
import com.njcn.harmonic.pojo.po.*;
|
import com.njcn.harmonic.pojo.po.*;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper;
|
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.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.RMpPartHarmonicDetailDMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailMMapper;
|
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.RMpSurplusHarmonicDetailDMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailMMapper;
|
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.*;
|
||||||
import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicMPO;
|
|
||||||
import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicVoltageDPO;
|
|
||||||
import com.njcn.prepare.harmonic.service.mysql.Impl.line.RMpPartHarmonicDetailDServiceImpl;
|
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.area.*;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.line.IRMpPartHarmonicDetailDService;
|
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.api.DicDataFeignClient;
|
||||||
import com.njcn.system.enums.DicDataEnum;
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
import com.njcn.system.enums.DicDataTypeEnum;
|
import com.njcn.system.enums.DicDataTypeEnum;
|
||||||
@@ -51,6 +52,9 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
|
|
||||||
private final RStatHarmonicDPOService rStatHarmonicDPOService;
|
private final RStatHarmonicDPOService rStatHarmonicDPOService;
|
||||||
private final RStatHarmonicMPOService rStatHarmonicMPOService;
|
private final RStatHarmonicMPOService rStatHarmonicMPOService;
|
||||||
|
private final RStatHarmonicQPOService rStatHarmonicQPOService;
|
||||||
|
private final RStatHarmonicYPOService rStatHarmonicYPOService;
|
||||||
|
|
||||||
|
|
||||||
private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper;
|
private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper;
|
||||||
private final RMpSurplusHarmonicDetailDMapper rMpSurplusHarmonicDetailDMapper;
|
private final RMpSurplusHarmonicDetailDMapper rMpSurplusHarmonicDetailDMapper;
|
||||||
@@ -59,6 +63,10 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
private final RMpPartHarmonicDetailMMapper rMpPartHarmonicDetailMMapper;
|
private final RMpPartHarmonicDetailMMapper rMpPartHarmonicDetailMMapper;
|
||||||
private final RMpSurplusHarmonicDetailMMapper rMpSurplusHarmonicDetailMMapper;
|
private final RMpSurplusHarmonicDetailMMapper rMpSurplusHarmonicDetailMMapper;
|
||||||
private final RStatOrgMMapper rStatOrgMMapper;
|
private final RStatOrgMMapper rStatOrgMMapper;
|
||||||
|
private final RStatOrgQMapper rStatOrgQMapper;
|
||||||
|
private final RStatOrgYMapper rStatOrgYMapper;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -68,12 +76,12 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
@Override
|
@Override
|
||||||
public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
// case 1:
|
case 1:
|
||||||
// this.hanlderOracleYear (lineParam);
|
this.hanlderOracleYear (data, dataDate, type);
|
||||||
// break;
|
break;
|
||||||
// case 2:
|
case 2:
|
||||||
// this.hanlderOracleQtr (lineParam);
|
this.hanlderOracleQtr (data, dataDate, type);
|
||||||
// break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
this.hanlderM ( data, dataDate, type);
|
this.hanlderM ( data, dataDate, type);
|
||||||
break;
|
break;
|
||||||
@@ -84,6 +92,408 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@Transactional
|
||||||
|
@Async("asyncExecutor")
|
||||||
|
@SneakyThrows
|
||||||
|
private void hanlderOracleYear(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
|
List<RStatHarmonicYPO> rStatHarmonicYPOList = new ArrayList<>();
|
||||||
|
Date date = DateUtil.parse(dataDate);
|
||||||
|
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgYPO> rStatOrgYPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatHarmonicMPO> harmonicMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
|
||||||
|
data.forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> 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<RMpPartHarmonicDetailM> 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<RMpSurplusHarmonicDetailM> 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<RStatHarmonicMPO> 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<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> 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<RMpPartHarmonicDetailM> 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<RMpSurplusHarmonicDetailM> 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<RStatHarmonicMPO> 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<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
|
List<RStatHarmonicQPO> rStatHarmonicQPOList = new ArrayList<>();
|
||||||
|
Date date = DateUtil.parse(dataDate);
|
||||||
|
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgQPO> rStatOrgQPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatHarmonicMPO> harmonicMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
|
||||||
|
data.forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> 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<RMpPartHarmonicDetailM> 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<RMpSurplusHarmonicDetailM> 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<RStatHarmonicMPO> 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<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> 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<RMpPartHarmonicDetailM> 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<RMpSurplusHarmonicDetailM> 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<RStatHarmonicMPO> 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
|
@Transactional
|
||||||
@Async("asyncExecutor")
|
@Async("asyncExecutor")
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
|
|||||||
@@ -1,19 +1,24 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD;
|
import com.njcn.harmonic.pojo.po.*;
|
||||||
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD;
|
|
||||||
import com.njcn.harmonic.pojo.po.RStatOrgDPO;
|
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper;
|
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.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.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.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.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.RStatHarmonicVoltageDPOService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicVoltageService;
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicVoltageService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatHarmonicVoltageMPOService;
|
||||||
import com.njcn.system.api.DicDataFeignClient;
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
import com.njcn.system.enums.DicDataEnum;
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
import com.njcn.system.enums.DicDataTypeEnum;
|
import com.njcn.system.enums.DicDataTypeEnum;
|
||||||
@@ -25,6 +30,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -45,6 +51,12 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
|
|||||||
private final RStatOrgDMapper rStatOrgDMapper;
|
private final RStatOrgDMapper rStatOrgDMapper;
|
||||||
private final RStatHarmonicVoltageDPOService rStatHarmonicVoltageDPOService;
|
private final RStatHarmonicVoltageDPOService rStatHarmonicVoltageDPOService;
|
||||||
|
|
||||||
|
private final RStatHarmonicVoltageMPOService rStatHarmonicVoltageMPOService;
|
||||||
|
|
||||||
|
private final RMpPartHarmonicDetailMMapper rMpPartHarmonicDetailMMapper;
|
||||||
|
private final RMpSurplusHarmonicDetailMMapper rMpSurplusHarmonicDetailMMapper;
|
||||||
|
private final RStatOrgMMapper rStatOrgMMapper;
|
||||||
|
|
||||||
private final
|
private final
|
||||||
DicDataFeignClient dicDataFeignClient;
|
DicDataFeignClient dicDataFeignClient;
|
||||||
@Override
|
@Override
|
||||||
@@ -56,9 +68,9 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
|
|||||||
// case 2:
|
// case 2:
|
||||||
// this.hanlderOracleQtr (lineParam);
|
// this.hanlderOracleQtr (lineParam);
|
||||||
// break;
|
// break;
|
||||||
// case 3:
|
case 3:
|
||||||
// this.hanlderOracleMonth (lineParam);
|
this.hanlderMByPl (data, dataDate, type);
|
||||||
// break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
this.hanlderDayByPl ( data, dataDate, type);
|
this.hanlderDayByPl ( data, dataDate, type);
|
||||||
break;
|
break;
|
||||||
@@ -67,6 +79,128 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@Transactional(rollbackFor = {Exception.class})
|
||||||
|
@Async("asyncExecutor")
|
||||||
|
@SneakyThrows
|
||||||
|
private void hanlderMByPl(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
|
List<RStatHarmonicVoltageMPO> rStatHarmonicVoltageMPOList = new ArrayList<>();
|
||||||
|
Date date = DateUtil.parse(dataDate);
|
||||||
|
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatHarmonicVoltageDPO> harmonicVoltageDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
|
||||||
|
data.forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
Map<String, List<LineDevGetDTO>> 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<RMpPartHarmonicDetailM> 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<RMpSurplusHarmonicDetailM> 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<RStatHarmonicVoltageDPO> 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<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v) -> {
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(CollectionUtil.isNotEmpty(rStatHarmonicVoltageMPOList)){
|
||||||
|
rStatHarmonicVoltageMPOService.saveOrUpdateBatchByMultiId(rStatHarmonicVoltageMPOList,500);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = {Exception.class})
|
@Transactional(rollbackFor = {Exception.class})
|
||||||
@Async("asyncExecutor")
|
@Async("asyncExecutor")
|
||||||
@@ -264,4 +398,36 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
|
|||||||
return value;
|
return value;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Integer getOverLimitMeasurementAccruedTime(DictData dictData, List<RMpPartHarmonicDetailM> rMpPartHarmonicDetailMS, List<RMpSurplusHarmonicDetailM> 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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
@@ -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<RStatHarmonicOrgDPO> {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<RStatHarmonicOrgMPO> {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<RStatHarmonicOrgQPO> {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<RStatHarmonicOrgYPO> {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<RStatHarmonicOrgDPOMapper, RStatHarmonicOrgDPO> implements RStatHarmonicOrgDPOService{
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<RStatHarmonicOrgMPOMapper, RStatHarmonicOrgMPO> implements RStatHarmonicOrgMPOService{
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<RStatHarmonicOrgQPOMapper, RStatHarmonicOrgQPO> implements RStatHarmonicOrgQPOService{
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<RStatHarmonicOrgYPOMapper, RStatHarmonicOrgYPO> implements RStatHarmonicOrgYPOService{
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user