This commit is contained in:
huangzj
2023-10-09 10:33:11 +08:00
parent 5b0502c727
commit 07587baa61
33 changed files with 1674 additions and 0 deletions

View File

@@ -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);
}
}

View File

@@ -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> {
}

View File

@@ -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> {
}

View File

@@ -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> {
}

View File

@@ -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> {
}

View File

@@ -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> {
}

View File

@@ -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> {
}

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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> {
}

View File

@@ -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> {
}

View File

@@ -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> {
}

View File

@@ -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> {
}

View File

@@ -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> {
}

View File

@@ -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);
}

View File

@@ -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> {
}

View File

@@ -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{
}

View File

@@ -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{
}

View File

@@ -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{
}

View File

@@ -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{
}

View File

@@ -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{
}

View File

@@ -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;
}
}

View File

@@ -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{
}