1.新增典型源荷指标月统计算法
2.增加国网上送月统计定时任务
This commit is contained in:
@@ -658,8 +658,18 @@ public class OrgPointExecutor extends BaseExecutor{
|
||||
}
|
||||
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "pqTypicalSourceCreatePOService", nodeType = NodeTypeEnum.COMMON)
|
||||
public void pqTypicalSourceCreatePOServiceProcess(NodeComponent bindCmp) {
|
||||
String tag = bindCmp.getTag();
|
||||
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
|
||||
pqTypicalSourceCreatePOService.handlerDay(calculatedParam);
|
||||
if (tag.equalsIgnoreCase("pq_typical_source_create_d")) {
|
||||
//日表
|
||||
pqTypicalSourceCreatePOService.handlerDay(calculatedParam);
|
||||
} else if (tag.equalsIgnoreCase("pq_typical_source_create_m")) {
|
||||
//数据补招不执行非日表算法
|
||||
if (!calculatedParam.isRepair()) {
|
||||
//月表
|
||||
pqTypicalSourceCreatePOService.handlerMonth(calculatedParam);
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 河北国网上送接口
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.njcn.prepare.harmonic.mapper.mysql.send;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.harmonic.pojo.po.send.PqTypicalSourceCreatePO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -12,4 +13,8 @@ import com.njcn.harmonic.pojo.po.send.PqTypicalSourceCreatePO;
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface PqTypicalSourceCreatePOMapper extends BaseMapper<PqTypicalSourceCreatePO> {
|
||||
|
||||
PqTypicalSourceCreatePO selectAvg(@Param("param") PqTypicalSourceCreatePO param,
|
||||
@Param("startTime")String begin,
|
||||
@Param("endTime")String end);
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
<?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.send.PqTypicalSourceCreatePOMapper">
|
||||
|
||||
<select id="selectAvg" resultType="com.njcn.harmonic.pojo.po.send.PqTypicalSourceCreatePO">
|
||||
select
|
||||
avg(interferenceSourceNum) as interferenceSourceNum,
|
||||
avg(averageOvDays) as averageOvDays,
|
||||
avg(flickerAvgOvRate) as flickerAvgOvRate,
|
||||
avg(flickerOvNum) as flickerOvNum,
|
||||
avg(flickerOvRate) as flickerOvRate,
|
||||
avg(iAvgOvRate) as iAvgOvRate,
|
||||
avg(iOvNum) as iOvNum,
|
||||
avg(iOvRate) as iOvRate,
|
||||
avg(inseqAvgOvRate) as inseqAvgOvRate,
|
||||
avg(inseqOvNum) as inseqOvNum,
|
||||
avg(inseqOvRate) as inseqOvRate,
|
||||
avg(monitorNum) as monitorNum,
|
||||
avg(monitoringRate) as monitoringRate,
|
||||
avg(ovNum) as ovNum,
|
||||
avg(ovRate) as ovRate,
|
||||
avg(unbanOvNum) as unbanOvNum,
|
||||
avg(unbanOvRate) as unbanOvRate,
|
||||
avg(vAvgOvRate) as vAvgOvRate,
|
||||
avg(vOvNum) as vOvNum,
|
||||
avg(vOvRate) as vOvRate,
|
||||
avg(unbanAvgOvRate) as unbanAvgOvRate,
|
||||
avg(ovDayCount) as ovDayCount,
|
||||
avg(is_upload_head) as is_upload_head,
|
||||
avg(monthsCount) as monthsCount,
|
||||
avg(flickerOvCount) as flickerOvCount,
|
||||
avg(harmiOvCount) as harmiOvCount,
|
||||
avg(inseqOvCount) as inseqOvCount,
|
||||
avg(unbanOvCount) as unbanOvCount,
|
||||
avg(harmvOvCount) as harmvOvCount,
|
||||
avg(monitorCount) as monitorCount,
|
||||
avg(voltageLevel) as voltageLevel,
|
||||
avg(ovCount) as ovCount,
|
||||
avg(interferenceSourceCount) as interferenceSourceCount
|
||||
FROM
|
||||
pq_typical_source_create
|
||||
<where>
|
||||
<if test="param.provinceId != null and param.provinceId != '' ">
|
||||
AND provinceId = #{param.provinceId}
|
||||
</if>
|
||||
<if test="param.cityId != null and param.cityId != '' ">
|
||||
AND cityId = #{param.cityId}
|
||||
</if>
|
||||
<if test="param.countyId != null and param.countyId != '' ">
|
||||
AND countyId = #{param.countyId}
|
||||
</if>
|
||||
|
||||
<if test="param.provinceId == null ">
|
||||
AND provinceId IS NULL
|
||||
</if>
|
||||
<if test="param.cityId == null">
|
||||
AND cityId IS NULL
|
||||
</if>
|
||||
<if test="param.countyId == null">
|
||||
AND countyId IS NULL
|
||||
</if>
|
||||
|
||||
|
||||
|
||||
<if test="param.statisticalType != null and param.statisticalType != '' ">
|
||||
AND statisticalType = #{param.statisticalType}
|
||||
</if>
|
||||
|
||||
<if test="param.statisticalLevel != null and param.statisticalLevel != '' ">
|
||||
AND statisticalLevel = #{param.statisticalLevel}
|
||||
</if>
|
||||
|
||||
<if test="param.indexType != null and param.indexType != '' ">
|
||||
AND indexType = #{param.indexType}
|
||||
</if>
|
||||
|
||||
<if test="param.industryType != null and param.industryType != '' ">
|
||||
AND industryType = #{param.industryType}
|
||||
</if>
|
||||
<if test="startTime != null and startTime != ''">
|
||||
AND DATE_FORMAT(statisticalDate, '%Y-%m-%d') >= DATE_FORMAT(#{startTime}, '%Y-%m-%d')
|
||||
</if>
|
||||
<if test="endTime != null and endTime != ''">
|
||||
AND DATE_FORMAT(statisticalDate, '%Y-%m-%d') <= DATE_FORMAT(#{endTime}, '%Y-%m-%d')
|
||||
</if>
|
||||
|
||||
</where>
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -6,15 +6,15 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2023/12/12 15:16【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface PqTypicalSourceCreatePOService extends IService<PqTypicalSourceCreatePO>{
|
||||
public interface PqTypicalSourceCreatePOService extends IService<PqTypicalSourceCreatePO> {
|
||||
|
||||
void handlerDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||
|
||||
void handlerDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||
}
|
||||
void handlerMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.send.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@@ -31,6 +35,7 @@ import com.njcn.user.api.DeptFeignClient;
|
||||
import com.njcn.user.pojo.vo.PvTerminalTreeVO;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
@@ -273,6 +278,110 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl<PqTypicalSou
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void handlerMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
|
||||
List<PqTypicalSourceCreatePO> pqTypicalSourceCreatePOList = new ArrayList<>();
|
||||
//查询时间范围
|
||||
String begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)).toString();
|
||||
String end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)).toString();
|
||||
String date = begin.substring(0, 7);
|
||||
|
||||
/*3.45 典型源荷用户类型*/
|
||||
List<String> collect = Stream.of(DicDataEnum.TRACTIONSTATION.getCode(),
|
||||
DicDataEnum.WINDFARM_USER.getCode(),
|
||||
DicDataEnum.PHOTOVOLTAICSIT_EUSERS.getCode(),
|
||||
DicDataEnum.OTHER_INTERFERENCESOURCE_USERS.getCode()).collect(Collectors.toList());
|
||||
|
||||
|
||||
List<PvTerminalTreeVO> deptList = deptFeignClient.allDeptList().getData();
|
||||
Map<String, PvTerminalTreeVO> mapCode = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode, Function.identity()));
|
||||
Map<String, PvTerminalTreeVO> mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity()));
|
||||
|
||||
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
|
||||
|
||||
collect.stream().forEach(temp->{
|
||||
PqTypicalSourceCreatePO pqTypicalSourceCreatePO = new PqTypicalSourceCreatePO();
|
||||
if (temp.equals(DicDataEnum.TRACTIONSTATION.getCode())){
|
||||
pqTypicalSourceCreatePO.setIndustryType("99");
|
||||
|
||||
} else if (temp.equals(DicDataEnum.WINDFARM_USER.getCode())) {
|
||||
pqTypicalSourceCreatePO.setIndustryType("99");
|
||||
|
||||
}else if(temp.equals(DicDataEnum.PHOTOVOLTAICSIT_EUSERS.getCode())) {
|
||||
pqTypicalSourceCreatePO.setIndustryType("99");
|
||||
}else if(temp.equals(DicDataEnum.OTHER_INTERFERENCESOURCE_USERS.getCode())) {
|
||||
pqTypicalSourceCreatePO.setIndustryType("00");
|
||||
|
||||
}
|
||||
if (mapCode.containsKey(deptGetChildrenMoreDTO.getUnitId())) {
|
||||
PvTerminalTreeVO pvTerminalTreeVO = mapCode.get(deptGetChildrenMoreDTO.getUnitId());
|
||||
String[] split = (pvTerminalTreeVO.getPids() + StrUtil.COMMA + pvTerminalTreeVO.getId())
|
||||
.split(StrUtil.COMMA);
|
||||
if (split.length <3) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 2; i < split.length; i++) {
|
||||
//省
|
||||
if (i == 2) {
|
||||
if (mapList.containsKey(split[i])) {
|
||||
pvTerminalTreeVO = mapList.get(split[i]);
|
||||
pqTypicalSourceCreatePO.setProvinceName(pvTerminalTreeVO.getName());
|
||||
pqTypicalSourceCreatePO.setProvinceId(pvTerminalTreeVO.getCode());
|
||||
pqTypicalSourceCreatePO.setStatisticalLevel("3");
|
||||
}
|
||||
}
|
||||
//市
|
||||
if (i == 3) {
|
||||
if (mapList.containsKey(split[i])) {
|
||||
pvTerminalTreeVO = mapList.get(split[i]);
|
||||
pqTypicalSourceCreatePO.setCityName(pvTerminalTreeVO.getName());
|
||||
pqTypicalSourceCreatePO.setCityId(pvTerminalTreeVO.getCode());
|
||||
pqTypicalSourceCreatePO.setStatisticalLevel("4");
|
||||
|
||||
}
|
||||
}
|
||||
//县
|
||||
if (i == 4) {
|
||||
if (mapList.containsKey(split[i])) {
|
||||
pvTerminalTreeVO = mapList.get(split[i]);
|
||||
pqTypicalSourceCreatePO.setCountyName(pvTerminalTreeVO.getName());
|
||||
pqTypicalSourceCreatePO.setCountyId(pvTerminalTreeVO.getCode());
|
||||
pqTypicalSourceCreatePO.setStatisticalLevel("5");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
pqTypicalSourceCreatePO.setIndexType(temp);
|
||||
pqTypicalSourceCreatePO.setStatisticalDate(date);
|
||||
pqTypicalSourceCreatePO.setStatisticalType("03");
|
||||
PqTypicalSourceCreatePO po= this.baseMapper.selectAvg(pqTypicalSourceCreatePO, begin, end);
|
||||
if(ObjectUtil.isNotNull(po)){
|
||||
po.setId(deptGetChildrenMoreDTO.getUnitId()+"-"+pqTypicalSourceCreatePO.getIndexType()+"-"+pqTypicalSourceCreatePO.getStatisticalType()+"-"+calculatedParam.getDataDate());
|
||||
po.setStatisticalType("02");
|
||||
po.setIndexType(temp);
|
||||
po.setStatisticalDate(date);
|
||||
po.setProvinceName(pqTypicalSourceCreatePO.getProvinceName());
|
||||
po.setProvinceId(pqTypicalSourceCreatePO.getProvinceId());
|
||||
po.setCityName(pqTypicalSourceCreatePO.getCityName());
|
||||
po.setCityId(pqTypicalSourceCreatePO.getCityId());
|
||||
po.setCountyName(pqTypicalSourceCreatePO.getCountyName());
|
||||
po.setCountyId(pqTypicalSourceCreatePO.getCountyId());
|
||||
po.setStatisticalLevel(pqTypicalSourceCreatePO.getStatisticalLevel());
|
||||
po.setIndustryType(pqTypicalSourceCreatePO.getIndustryType());
|
||||
pqTypicalSourceCreatePOList.add(po);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
if(!CollectionUtils.isEmpty(pqTypicalSourceCreatePOList)){
|
||||
this.saveOrUpdateBatch(pqTypicalSourceCreatePOList);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private PqTypicalSourceCreatePO initPqTypicalSourceCreatePO(PqTypicalSourceCreatePO pqTypicalSourceCreatePO,
|
||||
// String code,
|
||||
|
||||
Reference in New Issue
Block a user