1.新增典型源荷指标月统计算法

2.增加国网上送月统计定时任务
This commit is contained in:
wr
2024-03-04 18:20:26 +08:00
parent 745d7e2829
commit 3d622f6da8
14 changed files with 407 additions and 22 deletions

View File

@@ -2,17 +2,22 @@ package com.njcn.harmonic.service.send.impl;
import cn.hutool.core.bean.BeanUtil;
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.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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;
import com.njcn.harmonic.mapper.send.PqTypicalSourceCreatePOMapper;
import com.njcn.harmonic.pojo.dto.PqTypicalSourceCreateDTO;
import com.njcn.harmonic.pojo.param.SendQueryParam;
import com.njcn.harmonic.pojo.param.UploadDataParam;
import com.njcn.harmonic.pojo.param.UploadParam;
import com.njcn.harmonic.pojo.po.send.PqTypicalSourceCreatePO;
import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
import com.njcn.harmonic.service.send.PqTypicalSourceCreatePOService;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
@@ -65,32 +70,24 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl<PqTypicalSou
Dept dept = deptFeignClient.getDeptByCode(param.getDeptIndex()).getData();
List<String> list = Arrays.stream(dept.getPids().split(",")).map(String::trim).collect(Collectors.toList());
LambdaQueryWrapper<PqTypicalSourceCreatePO> 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(PqTypicalSourceCreatePO::getProvinceId,orgId)
.between(PqTypicalSourceCreatePO::getStatisticalDate,param.getSearchBeginTime(),param.getSearchEndTime())
.eq(!Objects.isNull(param.getSearchState()),PqTypicalSourceCreatePO::getIsUploadHead,param.getSearchState());
String orgId = getOrgIdForProvince(dept);
addFiltersForProvince(lambdaQueryWrapper, orgId, beginMonth, param.getSearchState());
break;
//省
case 2:
lambdaQueryWrapper.eq(PqTypicalSourceCreatePO::getProvinceId,param.getDeptIndex())
.between(PqTypicalSourceCreatePO::getStatisticalDate,param.getSearchBeginTime(),param.getSearchEndTime())
.eq(!Objects.isNull(param.getSearchState()),PqTypicalSourceCreatePO::getIsUploadHead,param.getSearchState());
addFilters(lambdaQueryWrapper, PqTypicalSourceCreatePO::getProvinceId, param.getDeptIndex(), beginMonth, param.getSearchState());
break;
//市
case 3:
lambdaQueryWrapper.eq(PqTypicalSourceCreatePO::getCityId, param.getDeptIndex())
.between(PqTypicalSourceCreatePO::getStatisticalDate,param.getSearchBeginTime(),param.getSearchEndTime())
.eq(!Objects.isNull(param.getSearchState()),PqTypicalSourceCreatePO::getIsUploadHead,param.getSearchState());
addFilters(lambdaQueryWrapper, PqTypicalSourceCreatePO::getCityId, param.getDeptIndex(), beginMonth, param.getSearchState());
break;
//县
case 4:
lambdaQueryWrapper.eq(PqTypicalSourceCreatePO::getCountyId, param.getDeptIndex())
.between(PqTypicalSourceCreatePO::getStatisticalDate,param.getSearchBeginTime(),param.getSearchEndTime())
.eq(!Objects.isNull(param.getSearchState()),PqTypicalSourceCreatePO::getIsUploadHead,param.getSearchState());
addFilters(lambdaQueryWrapper, PqTypicalSourceCreatePO::getCountyId, param.getDeptIndex(), beginMonth, param.getSearchState());
break;
default:
break;
@@ -98,6 +95,34 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl<PqTypicalSou
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<PqTypicalSourceCreatePO> lambdaQueryWrapper, String orgId, String beginMonth, Integer searchState) {
lambdaQueryWrapper.eq(PqTypicalSourceCreatePO::getProvinceId, orgId)
.eq(PqTypicalSourceCreatePO::getStatisticalDate, beginMonth)
.eq(!Objects.isNull(searchState), PqTypicalSourceCreatePO::getIsUploadHead, searchState);
}
private void addFilters(LambdaQueryWrapper<PqTypicalSourceCreatePO> lambdaQueryWrapper, SFunction<PqTypicalSourceCreatePO, Object> idFunction, String orgId, String beginMonth, Integer searchState) {
lambdaQueryWrapper.eq(idFunction, orgId)
.eq(PqTypicalSourceCreatePO::getStatisticalDate, beginMonth)
.eq(!Objects.isNull(searchState), PqTypicalSourceCreatePO::getIsUploadHead, 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);
}
@Override
public String send(UploadParam uploadParam) {