提交
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
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.RStatHarmonicService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.ROperatingIndexService;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
import com.njcn.user.pojo.po.Dept;
|
||||
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 = "3.3.2.\t单位标数据质量")
|
||||
@RestController
|
||||
@RequestMapping("/roperatingindex")
|
||||
@RequiredArgsConstructor
|
||||
public class ROperatingIndexController extends BaseController {
|
||||
|
||||
|
||||
private final ROperatingIndexService service;
|
||||
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
||||
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();
|
||||
deptGetLineParam.setDeptId(data.getId());
|
||||
}else {
|
||||
deptGetLineParam.setDeptId(orgParam.getOrgId());
|
||||
}
|
||||
deptGetLineParam.setServerName(ServerInfo.PREPARE_BOOT);
|
||||
List<DeptGetChildrenMoreDTO> data = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
|
||||
service.handler (data,orgParam.getDataDate(),orgParam.getType());
|
||||
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.RDnOperatingIndexMPO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:14【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface RDnOperatingIndexMPOMapper extends MppBaseMapper<RDnOperatingIndexMPO> {
|
||||
}
|
||||
@@ -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.RDnOperatingQPO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:14【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface RDnOperatingQPOMapper extends MppBaseMapper<RDnOperatingQPO> {
|
||||
}
|
||||
@@ -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.RDnOperatingYPO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:14【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface RDnOperatingYPOMapper extends MppBaseMapper<RDnOperatingYPO> {
|
||||
}
|
||||
@@ -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.ROperatingIndexMPO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:08【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface ROperatingIndexMPOMapper extends MppBaseMapper<ROperatingIndexMPO> {
|
||||
}
|
||||
@@ -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.ROperatingIndexQPO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:15【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface ROperatingIndexQPOMapper extends MppBaseMapper<ROperatingIndexQPO> {
|
||||
}
|
||||
@@ -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.ROperatingIndexYPO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:15【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface ROperatingIndexYPOMapper extends MppBaseMapper<ROperatingIndexYPO> {
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
<?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.RDnOperatingIndexMPOMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.po.RDnOperatingIndexMPO">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table r_dn_operating_index_m-->
|
||||
<id column="org_no" jdbcType="VARCHAR" property="orgNo" />
|
||||
<id column="data_date" jdbcType="TIMESTAMP" property="dataDate" />
|
||||
<id column="measurement_point_type" jdbcType="VARCHAR" property="measurementPointType" />
|
||||
<result column="measurement_run_points" jdbcType="INTEGER" property="measurementRunPoints" />
|
||||
<result column="transit_measurement_points" jdbcType="INTEGER" property="transitMeasurementPoints" />
|
||||
<result column="effective_access_measurement_count" jdbcType="INTEGER" property="effectiveAccessMeasurementCount" />
|
||||
<result column="effective_access_rate" jdbcType="VARCHAR" property="effectiveAccessRate" />
|
||||
<result column="should_count" jdbcType="INTEGER" property="shouldCount" />
|
||||
<result column="should_point_coverage" jdbcType="INTEGER" property="shouldPointCoverage" />
|
||||
<result column="data_integrity_rate" jdbcType="REAL" property="dataIntegrityRate" />
|
||||
<result column="data_right_rate" jdbcType="REAL" property="dataRightRate" />
|
||||
<result column="index_integrity_rate" jdbcType="REAL" property="indexIntegrityRate" />
|
||||
<result column="is_unusual" jdbcType="INTEGER" property="isUnusual" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
org_no, data_date, measurement_point_type, measurement_run_points, transit_measurement_points,
|
||||
effective_access_measurement_count, effective_access_rate, should_count, should_point_coverage,
|
||||
data_integrity_rate, data_right_rate, index_integrity_rate, is_unusual
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?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.RDnOperatingQPOMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.po.RDnOperatingQPO">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table r_dn_operating_q-->
|
||||
<id column="org_no" jdbcType="VARCHAR" property="orgNo" />
|
||||
<id column="data_date" jdbcType="DATE" property="dataDate" />
|
||||
<id column="measurement_point_type" jdbcType="VARCHAR" property="measurementPointType" />
|
||||
<result column="measurement_run_points" jdbcType="INTEGER" property="measurementRunPoints" />
|
||||
<result column="transit_measurement_points" jdbcType="INTEGER" property="transitMeasurementPoints" />
|
||||
<result column="effective_access_measurement_count" jdbcType="INTEGER" property="effectiveAccessMeasurementCount" />
|
||||
<result column="effective_access_rate" jdbcType="VARCHAR" property="effectiveAccessRate" />
|
||||
<result column="should_count" jdbcType="INTEGER" property="shouldCount" />
|
||||
<result column="should_point_coverage" jdbcType="INTEGER" property="shouldPointCoverage" />
|
||||
<result column="data_integrity_rate" jdbcType="REAL" property="dataIntegrityRate" />
|
||||
<result column="data_right_rate" jdbcType="REAL" property="dataRightRate" />
|
||||
<result column="index_integrity_rate" jdbcType="REAL" property="indexIntegrityRate" />
|
||||
<result column="is_unusual" jdbcType="INTEGER" property="isUnusual" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
org_no, data_date, measurement_point_type, measurement_run_points, transit_measurement_points,
|
||||
effective_access_measurement_count, effective_access_rate, should_count, should_point_coverage,
|
||||
data_integrity_rate, data_right_rate, index_integrity_rate, is_unusual
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?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.RDnOperatingYPOMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.po.RDnOperatingYPO">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table r_dn_operating_y-->
|
||||
<id column="org_no" jdbcType="VARCHAR" property="orgNo" />
|
||||
<id column="data_date" jdbcType="DATE" property="dataDate" />
|
||||
<id column="measurement_point_type" jdbcType="VARCHAR" property="measurementPointType" />
|
||||
<result column="measurement_run_points" jdbcType="INTEGER" property="measurementRunPoints" />
|
||||
<result column="transit_measurement_points" jdbcType="INTEGER" property="transitMeasurementPoints" />
|
||||
<result column="effective_access_measurement_count" jdbcType="INTEGER" property="effectiveAccessMeasurementCount" />
|
||||
<result column="effective_access_rate" jdbcType="VARCHAR" property="effectiveAccessRate" />
|
||||
<result column="should_count" jdbcType="INTEGER" property="shouldCount" />
|
||||
<result column="should_point_coverage" jdbcType="INTEGER" property="shouldPointCoverage" />
|
||||
<result column="data_integrity_rate" jdbcType="REAL" property="dataIntegrityRate" />
|
||||
<result column="data_right_rate" jdbcType="REAL" property="dataRightRate" />
|
||||
<result column="index_integrity_rate" jdbcType="REAL" property="indexIntegrityRate" />
|
||||
<result column="is_unusual" jdbcType="INTEGER" property="isUnusual" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
org_no, data_date, measurement_point_type, measurement_run_points, transit_measurement_points,
|
||||
effective_access_measurement_count, effective_access_rate, should_count, should_point_coverage,
|
||||
data_integrity_rate, data_right_rate, index_integrity_rate, is_unusual
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?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.ROperatingIndexMPOMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.po.ROperatingIndexMPO">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table r_operating_index_m-->
|
||||
<id column="org_no" jdbcType="VARCHAR" property="orgNo" />
|
||||
<id column="data_date" jdbcType="TIMESTAMP" property="dataDate" />
|
||||
<result column="measurement_run_points" jdbcType="INTEGER" property="measurementRunPoints" />
|
||||
<result column="transit_measurement_points" jdbcType="INTEGER" property="transitMeasurementPoints" />
|
||||
<result column="effective_access_measurement_count" jdbcType="INTEGER" property="effectiveAccessMeasurementCount" />
|
||||
<result column="online_measurement_points" jdbcType="INTEGER" property="onlineMeasurementPoints" />
|
||||
<result column="online_measurement_count" jdbcType="INTEGER" property="onlineMeasurementCount" />
|
||||
<result column="should_count" jdbcType="INTEGER" property="shouldCount" />
|
||||
<result column="should_point_coverage" jdbcType="REAL" property="shouldPointCoverage" />
|
||||
<result column="data_integrity_rate" jdbcType="REAL" property="dataIntegrityRate" />
|
||||
<result column="data_right_rate" jdbcType="REAL" property="dataRightRate" />
|
||||
<result column="index_integrity_rate" jdbcType="REAL" property="indexIntegrityRate" />
|
||||
<result column="is_unusual" jdbcType="INTEGER" property="isUnusual" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
org_no, data_date, measurement_run_points, transit_measurement_points, effective_access_measurement_count,
|
||||
online_measurement_points, online_measurement_count, should_count, should_point_coverage,
|
||||
data_integrity_rate, data_right_rate, index_integrity_rate, is_unusual
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?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.ROperatingIndexQPOMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.po.ROperatingIndexQPO">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table r_operating_index_q-->
|
||||
<id column="org_no" jdbcType="VARCHAR" property="orgNo" />
|
||||
<id column="data_date" jdbcType="TIMESTAMP" property="dataDate" />
|
||||
<result column="measurement_run_points" jdbcType="INTEGER" property="measurementRunPoints" />
|
||||
<result column="transit_measurement_points" jdbcType="INTEGER" property="transitMeasurementPoints" />
|
||||
<result column="effective_access_measurement_count" jdbcType="INTEGER" property="effectiveAccessMeasurementCount" />
|
||||
<result column="online_measurement_points" jdbcType="INTEGER" property="onlineMeasurementPoints" />
|
||||
<result column="online_measurement_count" jdbcType="INTEGER" property="onlineMeasurementCount" />
|
||||
<result column="should_count" jdbcType="INTEGER" property="shouldCount" />
|
||||
<result column="should_point_coverage" jdbcType="REAL" property="shouldPointCoverage" />
|
||||
<result column="data_integrity_rate" jdbcType="REAL" property="dataIntegrityRate" />
|
||||
<result column="data_right_rate" jdbcType="REAL" property="dataRightRate" />
|
||||
<result column="index_integrity_rate" jdbcType="REAL" property="indexIntegrityRate" />
|
||||
<result column="is_unusual" jdbcType="INTEGER" property="isUnusual" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
org_no, data_date, measurement_run_points, transit_measurement_points, effective_access_measurement_count,
|
||||
online_measurement_points, online_measurement_count, should_count, should_point_coverage,
|
||||
data_integrity_rate, data_right_rate, index_integrity_rate, is_unusual
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?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.ROperatingIndexYPOMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.po.ROperatingIndexYPO">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table r_operating_index_y-->
|
||||
<id column="org_no" jdbcType="VARCHAR" property="orgNo" />
|
||||
<id column="data_date" jdbcType="TIMESTAMP" property="dataDate" />
|
||||
<result column="measurement_run_points" jdbcType="INTEGER" property="measurementRunPoints" />
|
||||
<result column="transit_measurement_points" jdbcType="INTEGER" property="transitMeasurementPoints" />
|
||||
<result column="effective_access_measurement_count" jdbcType="INTEGER" property="effectiveAccessMeasurementCount" />
|
||||
<result column="online_measurement_points" jdbcType="INTEGER" property="onlineMeasurementPoints" />
|
||||
<result column="online_measurement_count" jdbcType="INTEGER" property="onlineMeasurementCount" />
|
||||
<result column="should_count" jdbcType="INTEGER" property="shouldCount" />
|
||||
<result column="should_point_coverage" jdbcType="REAL" property="shouldPointCoverage" />
|
||||
<result column="data_integrity_rate" jdbcType="REAL" property="dataIntegrityRate" />
|
||||
<result column="data_right_rate" jdbcType="REAL" property="dataRightRate" />
|
||||
<result column="index_integrity_rate" jdbcType="REAL" property="indexIntegrityRate" />
|
||||
<result column="is_unusual" jdbcType="INTEGER" property="isUnusual" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
org_no, data_date, measurement_run_points, transit_measurement_points, effective_access_measurement_count,
|
||||
online_measurement_points, online_measurement_count, should_count, should_point_coverage,
|
||||
data_integrity_rate, data_right_rate, index_integrity_rate, is_unusual
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RDnOperatingIndexMPO;
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:14【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface RDnOperatingIndexMPOService extends IMppService<RDnOperatingIndexMPO> {
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RDnOperatingQPO;
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:14【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface RDnOperatingQPOService extends IMppService<RDnOperatingQPO> {
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RDnOperatingYPO;
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:14【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface RDnOperatingYPOService extends IMppService<RDnOperatingYPO> {
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||
import com.njcn.prepare.harmonic.pojo.po.ROperatingIndexMPO;
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:08【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface ROperatingIndexMPOService extends IMppService<ROperatingIndexMPO> {
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||
import com.njcn.prepare.harmonic.pojo.po.ROperatingIndexQPO;
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:15【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface ROperatingIndexQPOService extends IMppService<ROperatingIndexQPO> {
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
||||
|
||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:36【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface ROperatingIndexService {
|
||||
void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type);
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||
import com.njcn.prepare.harmonic.pojo.po.ROperatingIndexYPO;
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:15【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface ROperatingIndexYPOService extends IMppService<ROperatingIndexYPO> {
|
||||
|
||||
|
||||
}
|
||||
@@ -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.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RDnOperatingIndexMPOMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RDnOperatingIndexMPO;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RDnOperatingIndexMPOService;
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:14【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
public class RDnOperatingIndexMPOServiceImpl extends MppServiceImpl<RDnOperatingIndexMPOMapper, RDnOperatingIndexMPO> implements RDnOperatingIndexMPOService{
|
||||
|
||||
}
|
||||
@@ -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.RDnOperatingQPO;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RDnOperatingQPOMapper;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RDnOperatingQPOService;
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:14【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
public class RDnOperatingQPOServiceImpl extends MppServiceImpl<RDnOperatingQPOMapper, RDnOperatingQPO> implements RDnOperatingQPOService{
|
||||
|
||||
}
|
||||
@@ -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.mapper.mysql.newalgorithm.RDnOperatingYPOMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RDnOperatingYPO;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RDnOperatingYPOService;
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:14【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
public class RDnOperatingYPOServiceImpl extends MppServiceImpl<RDnOperatingYPOMapper, RDnOperatingYPO> implements RDnOperatingYPOService{
|
||||
|
||||
}
|
||||
@@ -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.njcn.prepare.harmonic.pojo.po.ROperatingIndexMPO;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.ROperatingIndexMPOMapper;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.ROperatingIndexMPOService;
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:08【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
public class ROperatingIndexMPOServiceImpl extends MppServiceImpl<ROperatingIndexMPOMapper, ROperatingIndexMPO> implements ROperatingIndexMPOService{
|
||||
|
||||
}
|
||||
@@ -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.njcn.prepare.harmonic.mapper.mysql.newalgorithm.ROperatingIndexQPOMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.po.ROperatingIndexQPO;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.ROperatingIndexQPOService;
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:15【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
public class ROperatingIndexQPOServiceImpl extends MppServiceImpl<ROperatingIndexQPOMapper, ROperatingIndexQPO> implements ROperatingIndexQPOService{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,511 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||
import com.njcn.device.pms.pojo.po.RDnOperatingIndexY;
|
||||
import com.njcn.device.pms.pojo.po.RDnOperatingPO;
|
||||
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
|
||||
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorMPO;
|
||||
import com.njcn.prepare.harmonic.pojo.param.OrgParam;
|
||||
import com.njcn.prepare.harmonic.pojo.po.*;
|
||||
import com.njcn.prepare.harmonic.service.mysql.Impl.line.ROperatingMonitorDServiceImpl;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorMService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
|
||||
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 lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.management.Query;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:37【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class ROperatingIndexServiceImpl implements ROperatingIndexService {
|
||||
|
||||
private final ROperatingMonitorService rOperatingMonitorDService;
|
||||
private final ROperatingMonitorMService rOperatingMonitorMService;
|
||||
|
||||
private final ROperatingIndexMPOService rOperatingIndexMPOService;
|
||||
private final ROperatingIndexQPOService rOperatingIndexQPOService;
|
||||
private final ROperatingIndexYPOService rOperatingIndexYPOService;
|
||||
|
||||
private final RDnOperatingIndexMPOService rDnOperatingIndexMPOService;
|
||||
private final RDnOperatingQPOService rDnOperatingQPOService;
|
||||
private final RDnOperatingYPOService rDnOperatingYPOService;
|
||||
private final
|
||||
DicDataFeignClient dicDataFeignClient;
|
||||
private final DecimalFormat df = new DecimalFormat("0.00");
|
||||
|
||||
|
||||
@Override
|
||||
public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||
switch (type) {
|
||||
case 1:
|
||||
this.hanlderYear (data, dataDate, type);
|
||||
break;
|
||||
case 2:
|
||||
this.hanlderQtr (data, dataDate, type);
|
||||
break;
|
||||
case 3:
|
||||
this.hanlderM ( data, dataDate, type);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void hanlderYear(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||
|
||||
List<RDnOperatingYPO> rdnOperatingIndexYPOList = new ArrayList<>();
|
||||
List<ROperatingIndexYPO> rOperatingIndexYPOList = new ArrayList<>();
|
||||
QueryWrapper<ROperatingMonitorDPO> queryWrapperD = new QueryWrapper<>();
|
||||
QueryWrapper<ROperatingMonitorMPO> queryWrapperM = new QueryWrapper<>();
|
||||
Date date = DateUtil.parse(dataDate);
|
||||
/*获取监测点类型类型*/
|
||||
|
||||
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||
|
||||
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : data) {
|
||||
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||
List<String> collect = deptGetChildrenMoreDTO.getLineBaseList().stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||
queryWrapperD.clear();
|
||||
queryWrapperM.clear();
|
||||
queryWrapperD.in("measurement_point_id", collect).
|
||||
eq("YEAR( data_date)", dataDate.substring(0,4));
|
||||
queryWrapperM.in("measurement_point_id", collect).
|
||||
eq("YEAR( data_date)", dataDate.substring(0,4));
|
||||
List<ROperatingMonitorDPO> rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD);
|
||||
List<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
|
||||
ROperatingIndexYPO rOperatingIndexYPO = new ROperatingIndexYPO();
|
||||
rOperatingIndexYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||
rOperatingIndexYPO.setDataDate(date);
|
||||
List<String> collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).
|
||||
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
List<ROperatingMonitorDPO> monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList());
|
||||
|
||||
List<String> collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1).
|
||||
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
Map<String, List<ROperatingMonitorDPO>> collect3 = rOperatingMonitorDPOList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId));
|
||||
|
||||
Map<String, List<ROperatingMonitorDPO>> collect4 = monitorList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId));
|
||||
|
||||
rOperatingIndexYPO.setEffectiveAccessMeasurementCount(collect2.size());
|
||||
rOperatingIndexYPO.setMeasurementRunPoints(collect.size());
|
||||
rOperatingIndexYPO.setOnlineMeasurementCount(collect4.size());
|
||||
rOperatingIndexYPO.setTransitMeasurementPoints(collect1.size());
|
||||
rOperatingIndexYPO.setOnlineMeasurementPoints(collect3.size());
|
||||
// rOperatingIndexMPO.setShouldCount();
|
||||
|
||||
List<String> collect5 = roperatingMonitorMPOList.stream().filter(temp -> temp.getIsUnusual() == 0).map(ROperatingMonitorMPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
|
||||
double v = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getIndexIntegrityRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
double v1 = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getDataRightRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
double v2 = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getDataIntegrityRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
rOperatingIndexYPO.setIndexIntegrityRate(v);
|
||||
rOperatingIndexYPO.setDataIntegrityRate(v2);
|
||||
rOperatingIndexYPO.setIsUnusual(collect5.size());
|
||||
rOperatingIndexYPO.setDataRightRate(v1);
|
||||
rOperatingIndexYPOList.add(rOperatingIndexYPO);
|
||||
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) {
|
||||
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) {
|
||||
Map<Integer, List<LineDevGetDTO>> collect3 = deptGetChildrenMoreDTO.getPwMonitorIds().stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||
collect3.forEach((k,m)->{
|
||||
List<String> collect = m.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||
queryWrapperD.clear();
|
||||
queryWrapperM.clear();
|
||||
queryWrapperD.in("measurement_point_id", collect).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7));
|
||||
|
||||
queryWrapperM.in("measurement_point_id", collect).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7));
|
||||
|
||||
List<ROperatingMonitorDPO> rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD);
|
||||
List<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
|
||||
RDnOperatingYPO rDnOperatingYPO = new RDnOperatingYPO();
|
||||
rDnOperatingYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||
rDnOperatingYPO.setDataDate(date);
|
||||
List<String> collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).
|
||||
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
List<ROperatingMonitorDPO> monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList());
|
||||
|
||||
List<String> collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1).
|
||||
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
|
||||
rDnOperatingYPO.setEffectiveAccessMeasurementCount(collect2.size());
|
||||
rDnOperatingYPO.setMeasurementRunPoints(collect.size());
|
||||
rDnOperatingYPO.setTransitMeasurementPoints(collect1.size());
|
||||
if (collect.size()==0){
|
||||
rDnOperatingYPO.setEffectiveAccessRate(0.00);
|
||||
|
||||
}
|
||||
else {
|
||||
double v = Double.parseDouble(df.format((collect2.size()) / Double.valueOf(collect.size())));
|
||||
rDnOperatingYPO.setEffectiveAccessRate(v);
|
||||
|
||||
}
|
||||
// rOperatingIndexMPO.setShouldCount();
|
||||
|
||||
List<String> collect5 = roperatingMonitorMPOList.stream().filter(temp -> temp.getIsUnusual() == 0).map(ROperatingMonitorMPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
|
||||
double v = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getIndexIntegrityRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
double v1 = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getDataRightRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
double v2 = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getDataIntegrityRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
rDnOperatingYPO.setMeasurementPointType(getmeasurementType(k, lineSortMap));
|
||||
rDnOperatingYPO.setIndexIntegrityRate(v);
|
||||
rDnOperatingYPO.setDataIntegrityRate(v2);
|
||||
rDnOperatingYPO.setIsUnusual(collect5.size());
|
||||
rDnOperatingYPO.setDataRightRate(v1);
|
||||
rdnOperatingIndexYPOList.add(rDnOperatingYPO);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (!CollectionUtils.isEmpty(rdnOperatingIndexYPOList)){
|
||||
rDnOperatingYPOService.saveOrUpdateBatchByMultiId(rdnOperatingIndexYPOList);
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(rOperatingIndexYPOList)){
|
||||
rOperatingIndexYPOService.saveOrUpdateBatchByMultiId(rOperatingIndexYPOList);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void hanlderQtr(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||
List<RDnOperatingQPO> rdnOperatingIndexQPOList = new ArrayList<>();
|
||||
List<ROperatingIndexQPO> rOperatingIndexQPOList = new ArrayList<>();
|
||||
QueryWrapper<ROperatingMonitorDPO> queryWrapperD = new QueryWrapper<>();
|
||||
QueryWrapper<ROperatingMonitorMPO> queryWrapperM = new QueryWrapper<>();
|
||||
Date date = DateUtil.parse(dataDate);
|
||||
/*获取监测点类型类型*/
|
||||
|
||||
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||
|
||||
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : data) {
|
||||
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||
List<String> collect = deptGetChildrenMoreDTO.getLineBaseList().stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||
queryWrapperD.clear();
|
||||
queryWrapperM.clear();
|
||||
queryWrapperD.in("measurement_point_id", collect).
|
||||
eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate));
|
||||
queryWrapperM.in("measurement_point_id", collect).
|
||||
eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate));
|
||||
List<ROperatingMonitorDPO> rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD);
|
||||
List<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
|
||||
ROperatingIndexQPO rOperatingIndexQPO = new ROperatingIndexQPO();
|
||||
rOperatingIndexQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||
rOperatingIndexQPO.setDataDate(date);
|
||||
List<String> collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).
|
||||
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
List<ROperatingMonitorDPO> monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList());
|
||||
|
||||
List<String> collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1).
|
||||
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
Map<String, List<ROperatingMonitorDPO>> collect3 = rOperatingMonitorDPOList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId));
|
||||
|
||||
Map<String, List<ROperatingMonitorDPO>> collect4 = monitorList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId));
|
||||
|
||||
rOperatingIndexQPO.setEffectiveAccessMeasurementCount(collect2.size());
|
||||
rOperatingIndexQPO.setMeasurementRunPoints(collect.size());
|
||||
rOperatingIndexQPO.setOnlineMeasurementCount(collect4.size());
|
||||
rOperatingIndexQPO.setTransitMeasurementPoints(collect1.size());
|
||||
rOperatingIndexQPO.setOnlineMeasurementPoints(collect3.size());
|
||||
// rOperatingIndexMPO.setShouldCount();
|
||||
|
||||
List<String> collect5 = roperatingMonitorMPOList.stream().filter(temp -> temp.getIsUnusual() == 0).map(ROperatingMonitorMPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
|
||||
double v = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getIndexIntegrityRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
double v1 = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getDataRightRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
double v2 = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getDataIntegrityRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
rOperatingIndexQPO.setIndexIntegrityRate(v);
|
||||
rOperatingIndexQPO.setDataIntegrityRate(v2);
|
||||
rOperatingIndexQPO.setIsUnusual(collect5.size());
|
||||
rOperatingIndexQPO.setDataRightRate(v1);
|
||||
rOperatingIndexQPOList.add(rOperatingIndexQPO);
|
||||
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) {
|
||||
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) {
|
||||
Map<Integer, List<LineDevGetDTO>> collect3 = deptGetChildrenMoreDTO.getPwMonitorIds().stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||
collect3.forEach((k,m)->{
|
||||
List<String> collect = m.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||
queryWrapperD.clear();
|
||||
queryWrapperM.clear();
|
||||
queryWrapperD.in("measurement_point_id", collect).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7));
|
||||
|
||||
queryWrapperM.in("measurement_point_id", collect).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7));
|
||||
|
||||
List<ROperatingMonitorDPO> rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD);
|
||||
List<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
|
||||
RDnOperatingQPO rDnOperatingQPO = new RDnOperatingQPO();
|
||||
rDnOperatingQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||
rDnOperatingQPO.setDataDate(date);
|
||||
List<String> collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).
|
||||
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
List<ROperatingMonitorDPO> monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList());
|
||||
|
||||
List<String> collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1).
|
||||
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
|
||||
rDnOperatingQPO.setEffectiveAccessMeasurementCount(collect2.size());
|
||||
rDnOperatingQPO.setMeasurementRunPoints(collect.size());
|
||||
rDnOperatingQPO.setTransitMeasurementPoints(collect1.size());
|
||||
if (collect.size()==0){
|
||||
rDnOperatingQPO.setEffectiveAccessRate(0.00);
|
||||
|
||||
}
|
||||
else {
|
||||
double v = Double.parseDouble(df.format((collect2.size()) / Double.valueOf(collect.size())));
|
||||
rDnOperatingQPO.setEffectiveAccessRate(v);
|
||||
|
||||
}
|
||||
// rOperatingIndexMPO.setShouldCount();
|
||||
|
||||
List<String> collect5 = roperatingMonitorMPOList.stream().filter(temp -> temp.getIsUnusual() == 0).map(ROperatingMonitorMPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
|
||||
double v = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getIndexIntegrityRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
double v1 = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getDataRightRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
double v2 = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getDataIntegrityRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
rDnOperatingQPO.setMeasurementPointType(getmeasurementType(k, lineSortMap));
|
||||
rDnOperatingQPO.setIndexIntegrityRate(v);
|
||||
rDnOperatingQPO.setDataIntegrityRate(v2);
|
||||
rDnOperatingQPO.setIsUnusual(collect5.size());
|
||||
rDnOperatingQPO.setDataRightRate(v1);
|
||||
rdnOperatingIndexQPOList.add(rDnOperatingQPO);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (!CollectionUtils.isEmpty(rdnOperatingIndexQPOList)){
|
||||
rDnOperatingQPOService.saveOrUpdateBatchByMultiId(rdnOperatingIndexQPOList);
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(rOperatingIndexQPOList)){
|
||||
rOperatingIndexQPOService.saveOrUpdateBatchByMultiId(rOperatingIndexQPOList);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void hanlderM(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||
List<RDnOperatingIndexMPO> rdnOperatingIndexMPOList = new ArrayList<>();
|
||||
List<ROperatingIndexMPO> rOperatingIndexMPOList = new ArrayList<>();
|
||||
QueryWrapper<ROperatingMonitorDPO> queryWrapperD = new QueryWrapper<>();
|
||||
QueryWrapper<ROperatingMonitorMPO> queryWrapperM = new QueryWrapper<>();
|
||||
Date date = DateUtil.parse(dataDate);
|
||||
/*获取监测点类型类型*/
|
||||
|
||||
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||
|
||||
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : data) {
|
||||
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
|
||||
List<String> collect = deptGetChildrenMoreDTO.getLineBaseList().stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||
queryWrapperD.clear();
|
||||
queryWrapperM.clear();
|
||||
queryWrapperD.in("measurement_point_id", collect).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7));
|
||||
|
||||
queryWrapperM.in("measurement_point_id", collect).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7));
|
||||
|
||||
List<ROperatingMonitorDPO> rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD);
|
||||
List<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
|
||||
ROperatingIndexMPO rOperatingIndexMPO = new ROperatingIndexMPO();
|
||||
rOperatingIndexMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||
rOperatingIndexMPO.setDataDate(date);
|
||||
List<String> collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).
|
||||
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
List<ROperatingMonitorDPO> monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList());
|
||||
|
||||
List<String> collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1).
|
||||
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
Map<String, List<ROperatingMonitorDPO>> collect3 = rOperatingMonitorDPOList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId));
|
||||
|
||||
Map<String, List<ROperatingMonitorDPO>> collect4 = monitorList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId));
|
||||
|
||||
rOperatingIndexMPO.setEffectiveAccessMeasurementCount(collect2.size());
|
||||
rOperatingIndexMPO.setMeasurementRunPoints(collect.size());
|
||||
rOperatingIndexMPO.setOnlineMeasurementCount(collect4.size());
|
||||
rOperatingIndexMPO.setTransitMeasurementPoints(collect1.size());
|
||||
rOperatingIndexMPO.setOnlineMeasurementPoints(collect3.size());
|
||||
// rOperatingIndexMPO.setShouldCount();
|
||||
|
||||
List<String> collect5 = roperatingMonitorMPOList.stream().filter(temp -> temp.getIsUnusual() == 0).map(ROperatingMonitorMPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
|
||||
double v = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getIndexIntegrityRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
double v1 = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getDataRightRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
double v2 = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getDataIntegrityRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
rOperatingIndexMPO.setIndexIntegrityRate(v);
|
||||
rOperatingIndexMPO.setDataIntegrityRate(v2);
|
||||
rOperatingIndexMPO.setIsUnusual(collect5.size());
|
||||
rOperatingIndexMPO.setDataRightRate(v1);
|
||||
rOperatingIndexMPOList.add(rOperatingIndexMPO);
|
||||
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) {
|
||||
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) {
|
||||
Map<Integer, List<LineDevGetDTO>> collect3 = deptGetChildrenMoreDTO.getPwMonitorIds().stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||
|
||||
collect3.forEach((k,v)->{
|
||||
List<String> collect = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||
queryWrapperD.clear();
|
||||
queryWrapperM.clear();
|
||||
queryWrapperD.in("measurement_point_id", collect).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7));
|
||||
|
||||
queryWrapperM.in("measurement_point_id", collect).
|
||||
eq("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring(0, 7));
|
||||
|
||||
List<ROperatingMonitorDPO> rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD);
|
||||
List<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
|
||||
RDnOperatingIndexMPO rDnOperatingIndexMPO = new RDnOperatingIndexMPO();
|
||||
rDnOperatingIndexMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||
rDnOperatingIndexMPO.setDataDate(date);
|
||||
List<String> collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).
|
||||
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
List<ROperatingMonitorDPO> monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList());
|
||||
|
||||
List<String> collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1).
|
||||
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
|
||||
rDnOperatingIndexMPO.setEffectiveAccessMeasurementCount(collect2.size());
|
||||
rDnOperatingIndexMPO.setMeasurementRunPoints(collect.size());
|
||||
rDnOperatingIndexMPO.setTransitMeasurementPoints(collect1.size());
|
||||
if (collect.size()==0){
|
||||
rDnOperatingIndexMPO.setEffectiveAccessRate(0.00);
|
||||
|
||||
}
|
||||
else {
|
||||
double rate = Double.parseDouble(df.format((collect2.size()) / Double.valueOf(collect.size())));
|
||||
rDnOperatingIndexMPO.setEffectiveAccessRate(rate);
|
||||
|
||||
}
|
||||
// rOperatingIndexMPO.setShouldCount();
|
||||
|
||||
List<String> collect5 = roperatingMonitorMPOList.stream().filter(temp -> temp.getIsUnusual() == 0).map(ROperatingMonitorMPO::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
|
||||
double integrity = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getIndexIntegrityRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
double v1 = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getDataRightRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
double v2 = roperatingMonitorMPOList.stream().mapToDouble(temp -> {
|
||||
return temp.getDataIntegrityRate().doubleValue();
|
||||
}).average().orElse(0.0);
|
||||
rDnOperatingIndexMPO.setMeasurementPointType(getmeasurementType(k, lineSortMap));
|
||||
rDnOperatingIndexMPO.setIndexIntegrityRate(integrity);
|
||||
rDnOperatingIndexMPO.setDataIntegrityRate(v2);
|
||||
rDnOperatingIndexMPO.setIsUnusual(collect5.size());
|
||||
rDnOperatingIndexMPO.setDataRightRate(v1);
|
||||
rdnOperatingIndexMPOList.add(rDnOperatingIndexMPO);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (!CollectionUtils.isEmpty(rdnOperatingIndexMPOList)){
|
||||
rDnOperatingIndexMPOService.saveOrUpdateBatchByMultiId(rdnOperatingIndexMPOList);
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(rOperatingIndexMPOList)){
|
||||
rOperatingIndexMPOService.saveOrUpdateBatchByMultiId(rOperatingIndexMPOList);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private String getmeasurementType(Integer k, Map<String, DictData> lineSortMap) {
|
||||
String value ="";
|
||||
switch (k) {
|
||||
case 1:
|
||||
value =lineSortMap.get(DicDataEnum.ONE_LINE.getCode()).getId();
|
||||
break;
|
||||
case 2:
|
||||
value =lineSortMap.get(DicDataEnum.TWO_LINE.getCode()).getId();
|
||||
break;
|
||||
case 3:
|
||||
value =lineSortMap.get(DicDataEnum.THREE_LINE.getCode()).getId();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
@@ -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.ROperatingIndexYPO;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.ROperatingIndexYPOMapper;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.ROperatingIndexYPOService;
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/10/7 14:15【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
public class ROperatingIndexYPOServiceImpl extends MppServiceImpl<ROperatingIndexYPOMapper, ROperatingIndexYPO> implements ROperatingIndexYPOService{
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user