河北超高压算法调整

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

@@ -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);
}
/**
* 国网上送返回信息
*