河北超高压算法调整

1.新增上送月数据算法
2.国网上送月数据查询
This commit is contained in:
2024-03-04 17:20:50 +08:00
parent 3f24e6c276
commit 9ab2d17496
21 changed files with 392 additions and 62 deletions

View File

@@ -22,4 +22,8 @@ public class UploadDataParam extends BaseParam {
@NotBlank(message = "单位id不可为空")
private String orgId;
@ApiModelProperty("时间维度")
@NotBlank(message = "时间维度不可为空")
private String dataType;
}

View File

@@ -18,7 +18,10 @@ import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
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;
/**
* 类的介绍:国网指标数据上送

View File

@@ -18,7 +18,10 @@ import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
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;
/**
* 类的介绍:国网指标数据上送

View File

@@ -18,7 +18,10 @@ import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
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;
/**
* 类的介绍:国网指标数据上送

View File

@@ -2,10 +2,12 @@ package com.njcn.harmonic.service.upload.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.exception.BusinessException;
@@ -13,13 +15,11 @@ import com.njcn.harmonic.mapper.upload.RUploadPointStatisticalDataDMapper;
import com.njcn.harmonic.pojo.dto.upload.MonitorStatisticalDTO;
import com.njcn.harmonic.pojo.param.UploadDataParam;
import com.njcn.harmonic.pojo.param.UploadParam;
import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD;
import com.njcn.harmonic.pojo.vo.upload.UploadPointStatisticalDataVo;
import com.njcn.harmonic.service.upload.IPointStatisticalDataService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.Dic;
import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
@@ -112,7 +112,6 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl<RUploadPointSta
return "上送成功:成功数据" + list.size() + "";
}
/**
* 获取当前单位的层级
*/
@@ -120,33 +119,24 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl<RUploadPointSta
Dept dept = deptFeignClient.getDeptByCode(param.getOrgId()).getData();
List<String> list = Arrays.stream(dept.getPids().split(",")).map(String::trim).collect(Collectors.toList());
LambdaQueryWrapper<RUploadPointStatisticalDataD> lambdaQueryWrapper = new LambdaQueryWrapper<>();
String beginMonth = formatBeginMonth(param.getSearchBeginTime(), param.getDataType());
switch (list.size()) {
//国
case 1:
List<Dept> l1 = deptFeignClient.getDirectSonSelf(dept.getId()).getData();
String orgId = l1.stream().filter(o->!Objects.equals(o.getId(),dept.getId())).findFirst().orElse(null).getCode();
lambdaQueryWrapper.eq(RUploadPointStatisticalDataD::getProvinceId,orgId)
.between(RUploadPointStatisticalDataD::getStatisticalDate,param.getSearchBeginTime(),param.getSearchEndTime())
.eq(!Objects.isNull(param.getSearchState()),RUploadPointStatisticalDataD::getUploadStatus,param.getSearchState());
String orgId = getOrgIdForProvince(dept);
addFiltersForProvince(lambdaQueryWrapper, orgId, beginMonth, param.getSearchState());
break;
//省
case 2:
lambdaQueryWrapper.eq(RUploadPointStatisticalDataD::getProvinceId,param.getOrgId())
.between(RUploadPointStatisticalDataD::getStatisticalDate,param.getSearchBeginTime(),param.getSearchEndTime())
.eq(!Objects.isNull(param.getSearchState()),RUploadPointStatisticalDataD::getUploadStatus,param.getSearchState());
addFilters(lambdaQueryWrapper, RUploadPointStatisticalDataD::getProvinceId, param.getOrgId(), beginMonth, param.getSearchState());
break;
//市
case 3:
lambdaQueryWrapper.eq(RUploadPointStatisticalDataD::getCityId, param.getOrgId())
.between(RUploadPointStatisticalDataD::getStatisticalDate,param.getSearchBeginTime(),param.getSearchEndTime())
.eq(!Objects.isNull(param.getSearchState()),RUploadPointStatisticalDataD::getUploadStatus,param.getSearchState());
addFilters(lambdaQueryWrapper, RUploadPointStatisticalDataD::getCityId, param.getOrgId(), beginMonth, param.getSearchState());
break;
//县
case 4:
lambdaQueryWrapper.eq(RUploadPointStatisticalDataD::getCountyId, param.getOrgId())
.between(RUploadPointStatisticalDataD::getStatisticalDate,param.getSearchBeginTime(),param.getSearchEndTime())
.eq(!Objects.isNull(param.getSearchState()),RUploadPointStatisticalDataD::getUploadStatus,param.getSearchState());
addFilters(lambdaQueryWrapper, RUploadPointStatisticalDataD::getCountyId, param.getOrgId(), beginMonth, param.getSearchState());
break;
default:
break;
@@ -154,6 +144,33 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl<RUploadPointSta
return lambdaQueryWrapper;
}
private String formatBeginMonth(String searchBeginTime, String dataType) {
if (Objects.equals(dataType, "02")) {
return DateUtil.format(DateUtil.beginOfMonth(DateUtil.parse(searchBeginTime, DatePattern.NORM_MONTH_PATTERN)), DatePattern.NORM_MONTH_PATTERN);
}
return searchBeginTime;
}
private void addFiltersForProvince(LambdaQueryWrapper<RUploadPointStatisticalDataD> lambdaQueryWrapper, String orgId, String beginMonth, Integer searchState) {
lambdaQueryWrapper.eq(RUploadPointStatisticalDataD::getProvinceId, orgId)
.eq(RUploadPointStatisticalDataD::getStatisticalDate, beginMonth)
.eq(!Objects.isNull(searchState), RUploadPointStatisticalDataD::getUploadStatus, searchState);
}
private void addFilters(LambdaQueryWrapper<RUploadPointStatisticalDataD> lambdaQueryWrapper, SFunction<RUploadPointStatisticalDataD, Object> idFunction, String orgId, String beginMonth, Integer searchState) {
lambdaQueryWrapper.eq(idFunction, orgId)
.eq(RUploadPointStatisticalDataD::getStatisticalDate, beginMonth)
.eq(!Objects.isNull(searchState), RUploadPointStatisticalDataD::getUploadStatus, searchState);
}
private String getOrgIdForProvince(Dept dept) {
List<Dept> l1 = deptFeignClient.getDirectSonSelf(dept.getId()).getData();
return l1.stream()
.filter(o -> !Objects.equals(o.getId(), dept.getId()))
.findFirst()
.map(Dept::getCode)
.orElse(null);
}
/**
* 国网上送返回信息

View File

@@ -3,9 +3,12 @@ package com.njcn.harmonic.service.upload.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.exception.BusinessException;
@@ -14,7 +17,6 @@ import com.njcn.harmonic.pojo.dto.upload.PqEvaluationCreateDTO;
import com.njcn.harmonic.pojo.param.UploadDataParam;
import com.njcn.harmonic.pojo.param.UploadParam;
import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD;
import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo;
import com.njcn.harmonic.service.upload.IEvaluationDataService;
import com.njcn.system.api.DicDataFeignClient;
@@ -97,7 +99,7 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
.in(RUploadEvaluationDataD::getId,param.getList())
.list();
}
//未指定数据上送,则上送省级数据
//未指定数据上送,则上送省级数据(包含日、月数据)
else {
list = this.lambdaQuery()
.eq(RUploadEvaluationDataD::getStatisticalDate,param.getTime())
@@ -161,33 +163,24 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
Dept dept = deptFeignClient.getDeptByCode(param.getOrgId()).getData();
List<String> list = Arrays.stream(dept.getPids().split(",")).map(String::trim).collect(Collectors.toList());
LambdaQueryWrapper<RUploadEvaluationDataD> lambdaQueryWrapper = new LambdaQueryWrapper<>();
String beginMonth = formatBeginMonth(param.getSearchBeginTime(), param.getDataType());
switch (list.size()) {
//国
case 1:
List<Dept> l1 = deptFeignClient.getDirectSonSelf(dept.getId()).getData();
String orgId = l1.stream().filter(o->!Objects.equals(o.getId(),dept.getId())).findFirst().orElse(null).getCode();
lambdaQueryWrapper.eq(RUploadEvaluationDataD::getProvinceId,orgId)
.between(RUploadEvaluationDataD::getStatisticalDate,param.getSearchBeginTime(),param.getSearchEndTime())
.eq(!Objects.isNull(param.getSearchState()),RUploadEvaluationDataD::getUploadStatus,param.getSearchState());
String orgId = getOrgIdForProvince(dept);
addFiltersForProvince(lambdaQueryWrapper, orgId, beginMonth, param.getSearchState());
break;
//省
case 2:
lambdaQueryWrapper.eq(RUploadEvaluationDataD::getProvinceId,param.getOrgId())
.between(RUploadEvaluationDataD::getStatisticalDate,param.getSearchBeginTime(),param.getSearchEndTime())
.eq(!Objects.isNull(param.getSearchState()),RUploadEvaluationDataD::getUploadStatus,param.getSearchState());
addFilters(lambdaQueryWrapper, RUploadEvaluationDataD::getProvinceId, param.getOrgId(), beginMonth, param.getSearchState());
break;
//市
case 3:
lambdaQueryWrapper.eq(RUploadEvaluationDataD::getCityId, param.getOrgId())
.between(RUploadEvaluationDataD::getStatisticalDate,param.getSearchBeginTime(),param.getSearchEndTime())
.eq(!Objects.isNull(param.getSearchState()),RUploadEvaluationDataD::getUploadStatus,param.getSearchState());
addFilters(lambdaQueryWrapper, RUploadEvaluationDataD::getCityId, param.getOrgId(), beginMonth, param.getSearchState());
break;
//县
case 4:
lambdaQueryWrapper.eq(RUploadEvaluationDataD::getCountyId, param.getOrgId())
.between(RUploadEvaluationDataD::getStatisticalDate,param.getSearchBeginTime(),param.getSearchEndTime())
.eq(!Objects.isNull(param.getSearchState()),RUploadEvaluationDataD::getUploadStatus,param.getSearchState());
addFilters(lambdaQueryWrapper, RUploadEvaluationDataD::getCountyId, param.getOrgId(), beginMonth, param.getSearchState());
break;
default:
break;
@@ -195,6 +188,34 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
return lambdaQueryWrapper;
}
private String formatBeginMonth(String searchBeginTime, String dataType) {
if (Objects.equals(dataType, "02")) {
return DateUtil.format(DateUtil.beginOfMonth(DateUtil.parse(searchBeginTime, DatePattern.NORM_MONTH_PATTERN)), DatePattern.NORM_MONTH_PATTERN);
}
return searchBeginTime;
}
private void addFiltersForProvince(LambdaQueryWrapper<RUploadEvaluationDataD> lambdaQueryWrapper, String orgId, String beginMonth, Integer searchState) {
lambdaQueryWrapper.eq(RUploadEvaluationDataD::getProvinceId, orgId)
.eq(RUploadEvaluationDataD::getStatisticalDate, beginMonth)
.eq(!Objects.isNull(searchState), RUploadEvaluationDataD::getUploadStatus, searchState);
}
private void addFilters(LambdaQueryWrapper<RUploadEvaluationDataD> lambdaQueryWrapper, SFunction<RUploadEvaluationDataD, Object> idFunction, String orgId, String beginMonth, Integer searchState) {
lambdaQueryWrapper.eq(idFunction, orgId)
.eq(RUploadEvaluationDataD::getStatisticalDate, beginMonth)
.eq(!Objects.isNull(searchState), RUploadEvaluationDataD::getUploadStatus, searchState);
}
private String getOrgIdForProvince(Dept dept) {
List<Dept> l1 = deptFeignClient.getDirectSonSelf(dept.getId()).getData();
return l1.stream()
.filter(o -> !Objects.equals(o.getId(), dept.getId()))
.findFirst()
.map(Dept::getCode)
.orElse(null);
}
/**
* 国网上送返回信息
*

View File

@@ -2,10 +2,12 @@ package com.njcn.harmonic.service.upload.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.exception.BusinessException;
@@ -13,7 +15,6 @@ import com.njcn.harmonic.mapper.upload.RUploadSubstationStatisticalDataDMapper;
import com.njcn.harmonic.pojo.dto.upload.SubstationQualityStatisticsDTO;
import com.njcn.harmonic.pojo.param.UploadDataParam;
import com.njcn.harmonic.pojo.param.UploadParam;
import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD;
import com.njcn.harmonic.pojo.po.upload.RUploadSubstationStatisticalDataD;
import com.njcn.harmonic.pojo.vo.upload.UploadSubstationStatisticalDataVo;
import com.njcn.harmonic.service.upload.ISubstationStatisticalDataService;
@@ -113,33 +114,24 @@ public class RSubstationStatisticalDataServiceImpl extends ServiceImpl<RUploadSu
Dept dept = deptFeignClient.getDeptByCode(param.getOrgId()).getData();
List<String> list = Arrays.stream(dept.getPids().split(",")).map(String::trim).collect(Collectors.toList());
LambdaQueryWrapper<RUploadSubstationStatisticalDataD> lambdaQueryWrapper = new LambdaQueryWrapper<>();
String beginMonth = formatBeginMonth(param.getSearchBeginTime(), param.getDataType());
switch (list.size()) {
//国
case 1:
List<Dept> l1 = deptFeignClient.getDirectSonSelf(dept.getId()).getData();
String orgId = l1.stream().filter(o->!Objects.equals(o.getId(),dept.getId())).findFirst().orElse(null).getCode();
lambdaQueryWrapper.eq(RUploadSubstationStatisticalDataD::getProvinceId,orgId)
.between(RUploadSubstationStatisticalDataD::getStatisticalDate,param.getSearchBeginTime(),param.getSearchEndTime())
.eq(!Objects.isNull(param.getSearchState()),RUploadSubstationStatisticalDataD::getUploadStatus,param.getSearchState());
String orgId = getOrgIdForProvince(dept);
addFiltersForProvince(lambdaQueryWrapper, orgId, beginMonth, param.getSearchState());
break;
//省
case 2:
lambdaQueryWrapper.eq(RUploadSubstationStatisticalDataD::getProvinceId,param.getOrgId())
.between(RUploadSubstationStatisticalDataD::getStatisticalDate,param.getSearchBeginTime(),param.getSearchEndTime())
.eq(!Objects.isNull(param.getSearchState()),RUploadSubstationStatisticalDataD::getUploadStatus,param.getSearchState());
addFilters(lambdaQueryWrapper, RUploadSubstationStatisticalDataD::getProvinceId, param.getOrgId(), beginMonth, param.getSearchState());
break;
//市
case 3:
lambdaQueryWrapper.eq(RUploadSubstationStatisticalDataD::getCityId, param.getOrgId())
.between(RUploadSubstationStatisticalDataD::getStatisticalDate,param.getSearchBeginTime(),param.getSearchEndTime())
.eq(!Objects.isNull(param.getSearchState()),RUploadSubstationStatisticalDataD::getUploadStatus,param.getSearchState());
addFilters(lambdaQueryWrapper, RUploadSubstationStatisticalDataD::getCityId, param.getOrgId(), beginMonth, param.getSearchState());
break;
//县
case 4:
lambdaQueryWrapper.eq(RUploadSubstationStatisticalDataD::getCountyId, param.getOrgId())
.between(RUploadSubstationStatisticalDataD::getStatisticalDate,param.getSearchBeginTime(),param.getSearchEndTime())
.eq(!Objects.isNull(param.getSearchState()),RUploadSubstationStatisticalDataD::getUploadStatus,param.getSearchState());
addFilters(lambdaQueryWrapper, RUploadSubstationStatisticalDataD::getCountyId, param.getOrgId(), beginMonth, param.getSearchState());
break;
default:
break;
@@ -147,6 +139,34 @@ public class RSubstationStatisticalDataServiceImpl extends ServiceImpl<RUploadSu
return lambdaQueryWrapper;
}
private String formatBeginMonth(String searchBeginTime, String dataType) {
if (Objects.equals(dataType, "02")) {
return DateUtil.format(DateUtil.beginOfMonth(DateUtil.parse(searchBeginTime, DatePattern.NORM_MONTH_PATTERN)), DatePattern.NORM_MONTH_PATTERN);
}
return searchBeginTime;
}
private void addFiltersForProvince(LambdaQueryWrapper<RUploadSubstationStatisticalDataD> lambdaQueryWrapper, String orgId, String beginMonth, Integer searchState) {
lambdaQueryWrapper.eq(RUploadSubstationStatisticalDataD::getProvinceId, orgId)
.eq(RUploadSubstationStatisticalDataD::getStatisticalDate, beginMonth)
.eq(!Objects.isNull(searchState), RUploadSubstationStatisticalDataD::getUploadStatus, searchState);
}
private void addFilters(LambdaQueryWrapper<RUploadSubstationStatisticalDataD> lambdaQueryWrapper, SFunction<RUploadSubstationStatisticalDataD, Object> idFunction, String orgId, String beginMonth, Integer searchState) {
lambdaQueryWrapper.eq(idFunction, orgId)
.eq(RUploadSubstationStatisticalDataD::getStatisticalDate, beginMonth)
.eq(!Objects.isNull(searchState), RUploadSubstationStatisticalDataD::getUploadStatus, searchState);
}
private String getOrgIdForProvince(Dept dept) {
List<Dept> l1 = deptFeignClient.getDirectSonSelf(dept.getId()).getData();
return l1.stream()
.filter(o -> !Objects.equals(o.getId(), dept.getId()))
.findFirst()
.map(Dept::getCode)
.orElse(null);
}
/**
* 国网上送返回信息
*

View File

@@ -620,7 +620,18 @@ public class OrgPointExecutor extends BaseExecutor{
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rUploadPointStatisticalData", nodeType = NodeTypeEnum.COMMON)
public void rUploadPointStatisticalDataProcess(NodeComponent bindCmp) {
String tag = bindCmp.getTag();
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
if (tag.equalsIgnoreCase("r_upload_point_statistical_data_d")) {
//日表
irUploadPointStatisticalDataDService.insertPointStatisticalDataDay(bindCmp.getRequestData());
} else if (tag.equalsIgnoreCase("r_upload_point_statistical_data_m")) {
//数据补招不执行非日表算法
if (!calculatedParam.isRepair()) {
//月表
irUploadPointStatisticalDataDService.insertPointStatisticalDataMonth(bindCmp.getRequestData());
}
}
}
/**
@@ -661,7 +672,18 @@ public class OrgPointExecutor extends BaseExecutor{
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rUploadEvaluationData", nodeType = NodeTypeEnum.COMMON)
public void rUploadEvaluationDataProcess(NodeComponent bindCmp) {
String tag = bindCmp.getTag();
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
if (tag.equalsIgnoreCase("r_upload_evaluation_data_d")) {
//日表
irUploadEvaluationDataDService.insertEvaluationDataDay(bindCmp.getRequestData());
} else if (tag.equalsIgnoreCase("r_upload_evaluation_data_m")) {
//数据补招不执行非日表算法
if (!calculatedParam.isRepair()) {
//月表
irUploadEvaluationDataDService.insertEvaluationDataMonth(bindCmp.getRequestData());
}
}
}
}

View File

@@ -1,5 +1,6 @@
package com.njcn.prepare.executor;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.service.mysql.line.PollutionService;
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatSubstationService;
@@ -138,9 +139,19 @@ public class SubStationExecutor extends BaseExecutor{
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rUploadSubStatisticalData", nodeType = NodeTypeEnum.COMMON)
public void rUploadSubStatisticalDataProcess(NodeComponent bindCmp) {
String tag = bindCmp.getTag();
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
if (tag.equalsIgnoreCase("r_upload_substation_statistical_data_d")) {
//日表
rUploadSubstationStatisticalDataDService.insertSubStatisticalDataDay(bindCmp.getRequestData());
} else if (tag.equalsIgnoreCase("r_upload_substation_statistical_data_m")) {
//数据补招不执行非日表算法
if (!calculatedParam.isRepair()) {
//月表
rUploadSubstationStatisticalDataDService.insertSubStatisticalDataMonth(bindCmp.getRequestData());
}
}
}
/********************************************算法负责人:xy结束***********************************************************/
}

View File

@@ -1,7 +1,12 @@
package com.njcn.prepare.harmonic.mapper.mysql.upload;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
@@ -11,6 +16,9 @@ import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
* @author xuyang
* @since 2023-12-12
*/
@DS("master")
public interface RUploadEvaluationDataDMapper extends MppBaseMapper<RUploadEvaluationDataD> {
List<RUploadEvaluationDataD> evaluationMonthData(@Param("monthDate") String monthDate,@Param("startTime") String startTime,@Param("endTime") String endTime);
}

View File

@@ -1,7 +1,11 @@
package com.njcn.prepare.harmonic.mapper.mysql.upload;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
@@ -11,6 +15,9 @@ import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD;
* @author xuyang
* @since 2023-12-07
*/
@DS("master")
public interface RUploadPointStatisticalDataDMapper extends MppBaseMapper<RUploadPointStatisticalDataD> {
List<RUploadPointStatisticalDataD> pointStatisticalMonthData(@Param("monthDate") String monthDate, @Param("startTime") String startTime, @Param("endTime") String endTime);
}

View File

@@ -1,7 +1,11 @@
package com.njcn.prepare.harmonic.mapper.mysql.upload;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.upload.RUploadSubstationStatisticalDataD;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
@@ -11,6 +15,9 @@ import com.njcn.harmonic.pojo.po.upload.RUploadSubstationStatisticalDataD;
* @author xuyang
* @since 2023-12-08
*/
@DS("master")
public interface RUploadSubstationStatisticalDataDMapper extends MppBaseMapper<RUploadSubstationStatisticalDataD> {
List<RUploadSubstationStatisticalDataD> substationStatisticalMonthData(@Param("monthDate") String monthDate, @Param("startTime") String startTime, @Param("endTime") String endTime);
}

View File

@@ -0,0 +1,43 @@
<?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.upload.RUploadEvaluationDataDMapper">
<select id="evaluationMonthData" resultType="com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD">
select
province_id provinceId,
province_name provinceName,
city_id cityId,
city_name cityName,
county_id countyId,
county_name countyName,
harmonic_num harmonicNum,
index_type indexType,
data_sources dataSources,
round(avg(monitor_bus_num)) monitorBusNum,
round(avg(online_bus_num)) onlineBusNum,
case when avg(online_bus_num) = 0 then 0 else round(avg(monitor_bus_num)/avg(online_bus_num)*100,8) end monitorBusRate,
round(avg(nullif(avg_value,3.1415926)),8) avgValue,
round(avg(nullif(standard_deviation,3.1415926)),8) standardDeviation,
#{monthDate} statisticalDate,
statistical_level statisticalLevel,
'02' statisticalType,
voltage_level voltageLevel,
0 uploadStatus
from
r_upload_evaluation_data_d
where
statistical_date between #{startTime} and #{endTime}
group by province_id ,
province_name ,
city_id ,
city_name ,
county_id ,
county_name ,
harmonic_num ,
index_type ,
data_sources ,
statistical_level ,
voltage_level
</select>
</mapper>

View File

@@ -0,0 +1,43 @@
<?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.upload.RUploadPointStatisticalDataDMapper">
<select id="pointStatisticalMonthData" resultType="com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD">
select
province_id provinceId,
province_name provinceName,
city_id cityId,
city_name cityName,
county_id countyId,
county_name countyName,
round(avg(run_terminal_num)) runTerminalNum,
round(avg(online_monitor_num)) onlineMonitorNum,
round(avg(run_monitor_num)) runMonitorNum,
case when avg(online_monitor_num) = 0 then 0 else round(avg(run_monitor_num)/avg(online_monitor_num)*100,8) end onlineMonitorRate,
sum(expect_collect_num) expectCollectNum,
sum(actual_collect_num) actualCollectNum,
case when sum(expect_collect_num) = 0 then 0 else round(sum(actual_collect_num)/sum(expect_collect_num)*100,8) end dataFullRate,
station_type stationType,
round(avg(station_monitor_num)) stationMonitorNum,
#{monthDate} statisticalDate,
statistical_level statisticalLevel,
'02' statisticalType,
distribution_flag distributionFlag,
0 uploadStatus
from
r_upload_point_statistical_data_d
where
statistical_date between #{startTime} and #{endTime}
group by province_id ,
province_name ,
city_id ,
city_name ,
county_id ,
county_name ,
station_type,
statistical_level,
distribution_flag
</select>
</mapper>

View File

@@ -0,0 +1,36 @@
<?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.upload.RUploadSubstationStatisticalDataDMapper">
<select id="substationStatisticalMonthData" resultType="com.njcn.harmonic.pojo.po.upload.RUploadSubstationStatisticalDataD">
select
province_id provinceId,
province_name provinceName,
city_id cityId,
city_name cityName,
county_id countyId,
county_name countyName,
round(avg(substation_count)) substationCount,
round(avg(test_substaion_num)) testSubstaionNum,
round(avg(run_substation_num)) runSubstationNum,
round(avg(monitor_substaion_num)) monitorSubstaionNum,
round(avg(online_monitor_num)) onlineMonitorNum,
round(avg(coverage_rate),4) coverageRate,
case when avg(run_substation_num) = 0 then 0 else round(avg(monitor_substaion_num)/avg(run_substation_num)*100,4) end monitoringRate,
#{monthDate} statisticalDate,
'02' statisticalType,
0 uploadStatus
from
r_upload_substation_statistical_data_d
where
statistical_date between #{startTime} and #{endTime}
group by province_id ,
province_name ,
city_id ,
city_name ,
county_id ,
county_name
</select>
</mapper>

View File

@@ -21,4 +21,10 @@ public interface IRUploadEvaluationDataDService extends IService<RUploadEvaluati
*/
void insertEvaluationDataDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
/**
* 电能质量基准水平评估数据-月表
* @param calculatedParam
*/
void insertEvaluationDataMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
}

View File

@@ -21,4 +21,10 @@ public interface IRUploadPointStatisticalDataDService extends IService<RUploadPo
*/
void insertPointStatisticalDataDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
/**
* 主配网监测点统计数据-月表
* @param calculatedParam
*/
void insertPointStatisticalDataMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
}

View File

@@ -21,4 +21,10 @@ public interface IRUploadSubstationStatisticalDataDService extends IService<RUpl
*/
void insertSubStatisticalDataDay(CalculatedParam<String> calculatedParam);
/**
* 变电站监测统计数据-月数据
* @param calculatedParam
*/
void insertSubStatisticalDataMonth(CalculatedParam<String> calculatedParam);
}

View File

@@ -1,6 +1,8 @@
package com.njcn.prepare.harmonic.service.mysql.upload.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
@@ -167,6 +169,28 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
}
}
/**
* 通过日表取平均值,作为月表数据
* @param calculatedParam
*/
@Override
public void insertEvaluationDataMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
//开始月份
String beginMonth = DateUtil.format(DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_MONTH_PATTERN)), DatePattern.NORM_MONTH_PATTERN);
//起始时间
String startTime = DateUtil.format(DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
//结束时间
String endTime = DateUtil.format(DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
//数据集
List<RUploadEvaluationDataD> list = this.baseMapper.evaluationMonthData(beginMonth,startTime,endTime);
if (CollUtil.isNotEmpty(list)){
list.forEach(item->{
item.setId(IdUtil.simpleUUID());
});
this.saveOrUpdateBatchByMultiId(list,1000);
}
}
/**
* 获取 在运 && 正常 && 国网上送 的监测点信息
*/

View File

@@ -1,13 +1,15 @@
package com.njcn.prepare.harmonic.service.mysql.upload.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.harmonic.pojo.po.ROperatingIndexDPO;
import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD;
import com.njcn.prepare.harmonic.enums.UploadEnum;
import com.njcn.prepare.harmonic.mapper.mysql.area.ROperatingIndexDPOMapper;
@@ -23,7 +25,6 @@ import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.enums.DicTreeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.system.pojo.po.SysDicTreePO;
import com.njcn.system.pojo.vo.DictTreeVO;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import lombok.RequiredArgsConstructor;
@@ -256,6 +257,24 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
}
}
@Override
public void insertPointStatisticalDataMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
//开始月份
String beginMonth = DateUtil.format(DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_MONTH_PATTERN)), DatePattern.NORM_MONTH_PATTERN);
//起始时间
String startTime = DateUtil.format(DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
//结束时间
String endTime = DateUtil.format(DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
//数据集
List<RUploadPointStatisticalDataD> list = this.baseMapper.pointStatisticalMonthData(beginMonth,startTime,endTime);
if (CollUtil.isNotEmpty(list)){
list.forEach(item->{
item.setId(IdUtil.simpleUUID());
});
this.saveOrUpdateBatchByMultiId(list,1000);
}
}
/**
* r_stat_integrity_d表中获取数据应收数、实收数
*/

View File

@@ -2,6 +2,8 @@ package com.njcn.prepare.harmonic.service.mysql.upload.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
@@ -109,6 +111,25 @@ public class RUploadSubstationStatisticalDataDServiceImpl extends MppServiceImpl
}
}
@Override
public void insertSubStatisticalDataMonth(CalculatedParam<String> calculatedParam) {
//开始月份
String beginMonth = DateUtil.format(DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_MONTH_PATTERN)), DatePattern.NORM_MONTH_PATTERN);
//起始时间
String startTime = DateUtil.format(DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
//结束时间
String endTime = DateUtil.format(DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
//数据集
List<RUploadSubstationStatisticalDataD> list = this.baseMapper.substationStatisticalMonthData(beginMonth,startTime,endTime);
if (CollUtil.isNotEmpty(list)){
list.forEach(item->{
item.setId(IdUtil.simpleUUID());
});
this.saveOrUpdateBatchByMultiId(list,1000);
}
}
/**
* 获取中台电站信息
*/