河北两级贯通接口调整
监督计划新增计划所属部门字段
This commit is contained in:
@@ -1,6 +1,26 @@
|
|||||||
package com.njcn.harmonic.controller.upload;
|
package com.njcn.harmonic.controller.upload;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
|
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.common.utils.LogUtil;
|
||||||
|
import com.njcn.harmonic.pojo.param.UploadDataParam;
|
||||||
|
import com.njcn.harmonic.pojo.po.upload.RUploadDataLog;
|
||||||
|
import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo;
|
||||||
|
import com.njcn.harmonic.service.upload.IRUploadDataLogService;
|
||||||
|
import com.njcn.harmonic.service.upload.impl.RUploadDataLogServiceImpl;
|
||||||
|
import com.njcn.web.pojo.param.BaseParam;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
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.RequestMapping;
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
@@ -16,7 +36,26 @@ import com.njcn.web.controller.BaseController;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/rUploadDataLog")
|
@RequestMapping("/rUploadDataLog")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Api(tags = "上送国网日志管理")
|
||||||
public class RUploadDataLogController extends BaseController {
|
public class RUploadDataLogController extends BaseController {
|
||||||
|
|
||||||
|
private final IRUploadDataLogService rUploadDataLogService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取上送日志
|
||||||
|
* @author cdf
|
||||||
|
* @date 2024/6/12
|
||||||
|
*/
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/getList")
|
||||||
|
@ApiOperation("查询国网上送数据日志")
|
||||||
|
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
|
||||||
|
public HttpResult<Page<RUploadDataLog>> getList(@RequestBody BaseParam baseParam) {
|
||||||
|
String methodDescribe = getMethodDescribe("getList");
|
||||||
|
Page<RUploadDataLog> list = rUploadDataLogService.getList(baseParam);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.text.StrBuilder;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -17,8 +18,10 @@ import com.njcn.harmonic.pojo.param.SendQueryParam;
|
|||||||
import com.njcn.harmonic.pojo.param.UploadDataParam;
|
import com.njcn.harmonic.pojo.param.UploadDataParam;
|
||||||
import com.njcn.harmonic.pojo.param.UploadParam;
|
import com.njcn.harmonic.pojo.param.UploadParam;
|
||||||
import com.njcn.harmonic.pojo.po.send.PqTypicalSourceCreatePO;
|
import com.njcn.harmonic.pojo.po.send.PqTypicalSourceCreatePO;
|
||||||
|
import com.njcn.harmonic.pojo.po.upload.RUploadDataLog;
|
||||||
import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
|
import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
|
||||||
import com.njcn.harmonic.service.send.PqTypicalSourceCreatePOService;
|
import com.njcn.harmonic.service.send.PqTypicalSourceCreatePOService;
|
||||||
|
import com.njcn.harmonic.service.upload.IRUploadDataLogService;
|
||||||
import com.njcn.user.api.DeptFeignClient;
|
import com.njcn.user.api.DeptFeignClient;
|
||||||
import com.njcn.user.pojo.po.Dept;
|
import com.njcn.user.pojo.po.Dept;
|
||||||
import com.njcn.web.enums.GWSendEnum;
|
import com.njcn.web.enums.GWSendEnum;
|
||||||
@@ -29,10 +32,14 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.apache.commons.collections4.ListUtils;
|
import org.apache.commons.collections4.ListUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@@ -51,6 +58,8 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl<PqTypicalSou
|
|||||||
|
|
||||||
private final DeptFeignClient deptFeignClient;
|
private final DeptFeignClient deptFeignClient;
|
||||||
|
|
||||||
|
private final IRUploadDataLogService irUploadDataLogService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<PqTypicalSourceCreatePO> queryPage(SendQueryParam.SendPageParam param) {
|
public Page<PqTypicalSourceCreatePO> queryPage(SendQueryParam.SendPageParam param) {
|
||||||
Page<PqTypicalSourceCreatePO> page = new Page<> (param.getPageNum ( ), param.getPageSize ( ));
|
Page<PqTypicalSourceCreatePO> page = new Page<> (param.getPageNum ( ), param.getPageSize ( ));
|
||||||
@@ -128,6 +137,8 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl<PqTypicalSou
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String send(UploadParam uploadParam) {
|
public String send(UploadParam uploadParam) {
|
||||||
|
LocalDate localDate = LocalDate.parse(uploadParam.getTime(), DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN));
|
||||||
|
|
||||||
|
|
||||||
List<PqTypicalSourceCreatePO> list;
|
List<PqTypicalSourceCreatePO> list;
|
||||||
//指定数据上送,不管之前有没有上送,都重新上送一次
|
//指定数据上送,不管之前有没有上送,都重新上送一次
|
||||||
@@ -161,10 +172,23 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl<PqTypicalSou
|
|||||||
List<String> trIds = dtoList.stream().map(PqTypicalSourceCreateDTO::getId).distinct().collect(Collectors.toList());
|
List<String> trIds = dtoList.stream().map(PqTypicalSourceCreateDTO::getId).distinct().collect(Collectors.toList());
|
||||||
returnInformation(1, trIds, send);
|
returnInformation(1, trIds, send);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
assUploadLog(localDate,new StrBuilder("典型源荷指标统计上送成功"),new AtomicBoolean(true));
|
||||||
return "成功";
|
return "成功";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void assUploadLog(LocalDate statisticDate, StrBuilder msg, AtomicBoolean resultFlag){
|
||||||
|
RUploadDataLog rUploadDataLog = new RUploadDataLog();
|
||||||
|
rUploadDataLog.setStatisticDate(statisticDate);
|
||||||
|
rUploadDataLog.setBigType(0);
|
||||||
|
rUploadDataLog.setSmallType(3);
|
||||||
|
rUploadDataLog.setCreateTime(LocalDateTime.now());
|
||||||
|
rUploadDataLog.setResult(resultFlag.get()?1:0);
|
||||||
|
rUploadDataLog.setResultMsg(msg.toString());
|
||||||
|
irUploadDataLogService.saveOrUpdateByMultiId(rUploadDataLog);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 国网上送返回信息
|
* 国网上送返回信息
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
package com.njcn.harmonic.service.upload;
|
package com.njcn.harmonic.service.upload;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
import com.njcn.harmonic.pojo.po.upload.RUploadDataLog;
|
import com.njcn.harmonic.pojo.po.upload.RUploadDataLog;
|
||||||
|
import com.njcn.web.pojo.param.BaseParam;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -15,4 +19,7 @@ import com.njcn.harmonic.pojo.po.upload.RUploadDataLog;
|
|||||||
*/
|
*/
|
||||||
public interface IRUploadDataLogService extends IMppService<RUploadDataLog> {
|
public interface IRUploadDataLogService extends IMppService<RUploadDataLog> {
|
||||||
|
|
||||||
|
|
||||||
|
Page<RUploadDataLog> getList(BaseParam baseParam);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.text.StrBuilder;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
@@ -15,9 +16,11 @@ import com.njcn.harmonic.mapper.upload.RUploadPointStatisticalDataDMapper;
|
|||||||
import com.njcn.harmonic.pojo.dto.upload.MonitorStatisticalDTO;
|
import com.njcn.harmonic.pojo.dto.upload.MonitorStatisticalDTO;
|
||||||
import com.njcn.harmonic.pojo.param.UploadDataParam;
|
import com.njcn.harmonic.pojo.param.UploadDataParam;
|
||||||
import com.njcn.harmonic.pojo.param.UploadParam;
|
import com.njcn.harmonic.pojo.param.UploadParam;
|
||||||
|
import com.njcn.harmonic.pojo.po.upload.RUploadDataLog;
|
||||||
import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD;
|
import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD;
|
||||||
import com.njcn.harmonic.pojo.vo.upload.UploadPointStatisticalDataVo;
|
import com.njcn.harmonic.pojo.vo.upload.UploadPointStatisticalDataVo;
|
||||||
import com.njcn.harmonic.service.upload.IPointStatisticalDataService;
|
import com.njcn.harmonic.service.upload.IPointStatisticalDataService;
|
||||||
|
import com.njcn.harmonic.service.upload.IRUploadDataLogService;
|
||||||
import com.njcn.system.api.DicDataFeignClient;
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
import com.njcn.system.enums.DicDataTypeEnum;
|
import com.njcn.system.enums.DicDataTypeEnum;
|
||||||
import com.njcn.system.pojo.po.DictData;
|
import com.njcn.system.pojo.po.DictData;
|
||||||
@@ -32,10 +35,14 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.apache.commons.collections4.ListUtils;
|
import org.apache.commons.collections4.ListUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
@@ -52,6 +59,8 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl<RUploadPointSta
|
|||||||
|
|
||||||
private final DicDataFeignClient dicDataFeignClient;
|
private final DicDataFeignClient dicDataFeignClient;
|
||||||
|
|
||||||
|
private final IRUploadDataLogService irUploadDataLogService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<UploadPointStatisticalDataVo> getPointStatisticalData(UploadDataParam param) {
|
public Page<UploadPointStatisticalDataVo> getPointStatisticalData(UploadDataParam param) {
|
||||||
LambdaQueryWrapper<RUploadPointStatisticalDataD> lambdaQueryWrapper = getDeptLevel(param);
|
LambdaQueryWrapper<RUploadPointStatisticalDataD> lambdaQueryWrapper = getDeptLevel(param);
|
||||||
@@ -71,6 +80,7 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl<RUploadPointSta
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String uploadPointStatisticalData(UploadParam param) {
|
public String uploadPointStatisticalData(UploadParam param) {
|
||||||
|
LocalDate localDate = LocalDate.parse(param.getTime(), DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN));
|
||||||
|
|
||||||
List<DictData> dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.Station_Type.getCode()).getData();
|
List<DictData> dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.Station_Type.getCode()).getData();
|
||||||
Map<String, DictData> dictDataMap = dictDataList.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
|
Map<String, DictData> dictDataMap = dictDataList.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
|
||||||
@@ -94,6 +104,8 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl<RUploadPointSta
|
|||||||
|
|
||||||
list = list.stream().peek(item->item.setStationType(dictDataMap.get(item.getStationType()).getValue())).collect(Collectors.toList());
|
list = list.stream().peek(item->item.setStationType(dictDataMap.get(item.getStationType()).getValue())).collect(Collectors.toList());
|
||||||
List<List<RUploadPointStatisticalDataD>> partition = ListUtils.partition(list, 100);
|
List<List<RUploadPointStatisticalDataD>> partition = ListUtils.partition(list, 100);
|
||||||
|
StrBuilder resultLog = new StrBuilder();
|
||||||
|
AtomicBoolean resultFlag = new AtomicBoolean(true);
|
||||||
//分片上传
|
//分片上传
|
||||||
for (int i = 0; i < partition.size(); i++) {
|
for (int i = 0; i < partition.size(); i++) {
|
||||||
List<MonitorStatisticalDTO> dtoList = BeanUtil.copyToList(partition.get(i), MonitorStatisticalDTO.class);
|
List<MonitorStatisticalDTO> dtoList = BeanUtil.copyToList(partition.get(i), MonitorStatisticalDTO.class);
|
||||||
@@ -104,8 +116,13 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl<RUploadPointSta
|
|||||||
Map<String, String> send = GwSendUtil.send(sp, GWSendEnum.STATISTICAL_CREATE);
|
Map<String, String> send = GwSendUtil.send(sp, GWSendEnum.STATISTICAL_CREATE);
|
||||||
//获取返回结果
|
//获取返回结果
|
||||||
List<String> l = dtoList.stream().map(MonitorStatisticalDTO::getId).collect(Collectors.toList());
|
List<String> l = dtoList.stream().map(MonitorStatisticalDTO::getId).collect(Collectors.toList());
|
||||||
returnInformation(i,l,send);
|
returnInformation(i,l,send,resultLog,resultFlag,localDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(resultFlag.get()){
|
||||||
|
assUploadLog(localDate,resultLog,resultFlag);
|
||||||
|
}
|
||||||
|
|
||||||
return "上送成功:成功数据" + list.size() + "条";
|
return "上送成功:成功数据" + list.size() + "条";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -179,7 +196,9 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl<RUploadPointSta
|
|||||||
* @param send 上送结果
|
* @param send 上送结果
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private void returnInformation(Integer step, List<String> ids, Map<String, String> send) {
|
private void returnInformation(Integer step, List<String> ids, Map<String, String> send, StrBuilder resultLog, AtomicBoolean resultFlag, LocalDate localDate) {
|
||||||
|
int start = step * 100;
|
||||||
|
int end = (step+1) * 100;
|
||||||
if (send.containsKey("succeed")) {
|
if (send.containsKey("succeed")) {
|
||||||
String succeed = send.get("succeed");
|
String succeed = send.get("succeed");
|
||||||
if (succeed.contains("\\\"")) {
|
if (succeed.contains("\\\"")) {
|
||||||
@@ -193,17 +212,34 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl<RUploadPointSta
|
|||||||
String result = mapData.get("result").toString();
|
String result = mapData.get("result").toString();
|
||||||
Map mapCount = JSON.parseObject(result, Map.class);
|
Map mapCount = JSON.parseObject(result, Map.class);
|
||||||
String count = mapCount.get("count").toString();
|
String count = mapCount.get("count").toString();
|
||||||
|
resultLog.append(" 上送" + start + "条至" + end + "条数据成功,返回成功条数: "+count+"; ");
|
||||||
} else {
|
} else {
|
||||||
|
resultFlag.set(false);
|
||||||
String errors = mapData.get("errors").toString();
|
String errors = mapData.get("errors").toString();
|
||||||
int start = step * 100;
|
String errorMsg = " 上送" + start + "条至" + end + "条数据,上送失败:" + status + "_" + errors+" ;";
|
||||||
int end = (step+1) * 100;
|
resultLog.append(errorMsg);
|
||||||
throw new BusinessException("上送"+start+"条至"+end+"条数据,上送失败:" + status + "_" + errors);
|
assUploadLog(localDate,resultLog,resultFlag);
|
||||||
|
throw new BusinessException(errorMsg);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
resultFlag.set(false);
|
||||||
|
resultLog.append(" 上送" + start + "条至" + end + "条数据网络异常;");
|
||||||
|
assUploadLog(localDate,resultLog,resultFlag);
|
||||||
throw new BusinessException("当前时间段国网上送请求过多,请稍后再试");
|
throw new BusinessException("当前时间段国网上送请求过多,请稍后再试");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void assUploadLog(LocalDate statisticDate,StrBuilder msg,AtomicBoolean resultFlag){
|
||||||
|
RUploadDataLog rUploadDataLog = new RUploadDataLog();
|
||||||
|
rUploadDataLog.setStatisticDate(statisticDate);
|
||||||
|
rUploadDataLog.setBigType(0);
|
||||||
|
rUploadDataLog.setSmallType(1);
|
||||||
|
rUploadDataLog.setCreateTime(LocalDateTime.now());
|
||||||
|
rUploadDataLog.setResult(resultFlag.get()?1:0);
|
||||||
|
rUploadDataLog.setResultMsg(msg.toString());
|
||||||
|
irUploadDataLogService.saveOrUpdateByMultiId(rUploadDataLog);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 修改上送信息状态
|
* 修改上送信息状态
|
||||||
* @param ids id集合
|
* @param ids id集合
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.text.StrBuilder;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
@@ -15,8 +16,10 @@ import com.njcn.harmonic.mapper.upload.RUploadSubstationStatisticalDataDMapper;
|
|||||||
import com.njcn.harmonic.pojo.dto.upload.SubstationQualityStatisticsDTO;
|
import com.njcn.harmonic.pojo.dto.upload.SubstationQualityStatisticsDTO;
|
||||||
import com.njcn.harmonic.pojo.param.UploadDataParam;
|
import com.njcn.harmonic.pojo.param.UploadDataParam;
|
||||||
import com.njcn.harmonic.pojo.param.UploadParam;
|
import com.njcn.harmonic.pojo.param.UploadParam;
|
||||||
|
import com.njcn.harmonic.pojo.po.upload.RUploadDataLog;
|
||||||
import com.njcn.harmonic.pojo.po.upload.RUploadSubstationStatisticalDataD;
|
import com.njcn.harmonic.pojo.po.upload.RUploadSubstationStatisticalDataD;
|
||||||
import com.njcn.harmonic.pojo.vo.upload.UploadSubstationStatisticalDataVo;
|
import com.njcn.harmonic.pojo.vo.upload.UploadSubstationStatisticalDataVo;
|
||||||
|
import com.njcn.harmonic.service.upload.IRUploadDataLogService;
|
||||||
import com.njcn.harmonic.service.upload.ISubstationStatisticalDataService;
|
import com.njcn.harmonic.service.upload.ISubstationStatisticalDataService;
|
||||||
import com.njcn.user.api.DeptFeignClient;
|
import com.njcn.user.api.DeptFeignClient;
|
||||||
import com.njcn.user.pojo.po.Dept;
|
import com.njcn.user.pojo.po.Dept;
|
||||||
@@ -30,8 +33,10 @@ import org.apache.commons.collections4.ListUtils;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -48,6 +53,9 @@ import java.util.stream.Collectors;
|
|||||||
public class RSubstationStatisticalDataServiceImpl extends ServiceImpl<RUploadSubstationStatisticalDataDMapper, RUploadSubstationStatisticalDataD> implements ISubstationStatisticalDataService {
|
public class RSubstationStatisticalDataServiceImpl extends ServiceImpl<RUploadSubstationStatisticalDataDMapper, RUploadSubstationStatisticalDataD> implements ISubstationStatisticalDataService {
|
||||||
|
|
||||||
private final DeptFeignClient deptFeignClient;
|
private final DeptFeignClient deptFeignClient;
|
||||||
|
|
||||||
|
private final IRUploadDataLogService irUploadDataLogService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<UploadSubstationStatisticalDataVo> getSubstationStatisticalData(UploadDataParam param) {
|
public Page<UploadSubstationStatisticalDataVo> getSubstationStatisticalData(UploadDataParam param) {
|
||||||
LambdaQueryWrapper<RUploadSubstationStatisticalDataD> lambdaQueryWrapper = getDeptLevel(param);
|
LambdaQueryWrapper<RUploadSubstationStatisticalDataD> lambdaQueryWrapper = getDeptLevel(param);
|
||||||
@@ -67,7 +75,6 @@ public class RSubstationStatisticalDataServiceImpl extends ServiceImpl<RUploadSu
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String uploadSubstationStatisticalData(UploadParam param) {
|
public String uploadSubstationStatisticalData(UploadParam param) {
|
||||||
|
|
||||||
List<RUploadSubstationStatisticalDataD> list;
|
List<RUploadSubstationStatisticalDataD> list;
|
||||||
//指定数据上送,不管之前有没有上送,都重新上送一次
|
//指定数据上送,不管之前有没有上送,都重新上送一次
|
||||||
//(预防之前上送过,修改数据后需要再次上送)
|
//(预防之前上送过,修改数据后需要再次上送)
|
||||||
@@ -87,7 +94,10 @@ public class RSubstationStatisticalDataServiceImpl extends ServiceImpl<RUploadSu
|
|||||||
}
|
}
|
||||||
//以尺寸100分片
|
//以尺寸100分片
|
||||||
List<List<RUploadSubstationStatisticalDataD>> partition = ListUtils.partition(list, 100);
|
List<List<RUploadSubstationStatisticalDataD>> partition = ListUtils.partition(list, 100);
|
||||||
|
StrBuilder resultLog = new StrBuilder();
|
||||||
|
AtomicBoolean resultFlag = new AtomicBoolean(true);
|
||||||
//分片上传
|
//分片上传
|
||||||
|
LocalDate localDate = LocalDate.parse(partition.get(0).get(0).getComputeDate(), DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN));
|
||||||
for (int i = 0; i < partition.size(); i++) {
|
for (int i = 0; i < partition.size(); i++) {
|
||||||
List<RUploadSubstationStatisticalDataD> collect = partition.get(i).stream().peek(item -> {
|
List<RUploadSubstationStatisticalDataD> collect = partition.get(i).stream().peek(item -> {
|
||||||
item.setStatisticalDate(item.getComputeDate().substring(0, 7));
|
item.setStatisticalDate(item.getComputeDate().substring(0, 7));
|
||||||
@@ -100,11 +110,27 @@ public class RSubstationStatisticalDataServiceImpl extends ServiceImpl<RUploadSu
|
|||||||
Map<String, String> send = GwSendUtil.send(sp, GWSendEnum.SUBSTATION_MONITOR);
|
Map<String, String> send = GwSendUtil.send(sp, GWSendEnum.SUBSTATION_MONITOR);
|
||||||
//获取返回结果
|
//获取返回结果
|
||||||
List<String> l = dtoList.stream().map(SubstationQualityStatisticsDTO::getId).collect(Collectors.toList());
|
List<String> l = dtoList.stream().map(SubstationQualityStatisticsDTO::getId).collect(Collectors.toList());
|
||||||
returnInformation(i,l,send);
|
returnInformation(i,l,send,resultLog,resultFlag,localDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(resultFlag.get()){
|
||||||
|
assUploadLog(localDate,resultLog,resultFlag);
|
||||||
}
|
}
|
||||||
return "上送成功:成功数据" + list.size() + "条";
|
return "上送成功:成功数据" + list.size() + "条";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void assUploadLog(LocalDate statisticDate,StrBuilder msg,AtomicBoolean resultFlag){
|
||||||
|
RUploadDataLog rUploadDataLog = new RUploadDataLog();
|
||||||
|
rUploadDataLog.setStatisticDate(statisticDate);
|
||||||
|
rUploadDataLog.setBigType(0);
|
||||||
|
rUploadDataLog.setSmallType(2);
|
||||||
|
rUploadDataLog.setCreateTime(LocalDateTime.now());
|
||||||
|
rUploadDataLog.setResult(resultFlag.get()?1:0);
|
||||||
|
rUploadDataLog.setResultMsg(msg.toString());
|
||||||
|
irUploadDataLogService.saveOrUpdateByMultiId(rUploadDataLog);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取当前单位的层级
|
* 获取当前单位的层级
|
||||||
*/
|
*/
|
||||||
@@ -176,7 +202,9 @@ public class RSubstationStatisticalDataServiceImpl extends ServiceImpl<RUploadSu
|
|||||||
* @param send 上送结果
|
* @param send 上送结果
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private void returnInformation(Integer step, List<String> ids, Map<String, String> send) {
|
private void returnInformation(Integer step, List<String> ids, Map<String, String> send, StrBuilder resultLog, AtomicBoolean resultFlag, LocalDate localDate) {
|
||||||
|
int start = step * 100;
|
||||||
|
int end = (step+1) * 100;
|
||||||
if (send.containsKey("succeed")) {
|
if (send.containsKey("succeed")) {
|
||||||
String succeed = send.get("succeed");
|
String succeed = send.get("succeed");
|
||||||
if (succeed.contains("\\\"")) {
|
if (succeed.contains("\\\"")) {
|
||||||
@@ -190,17 +218,24 @@ public class RSubstationStatisticalDataServiceImpl extends ServiceImpl<RUploadSu
|
|||||||
String result = mapData.get("result").toString();
|
String result = mapData.get("result").toString();
|
||||||
Map mapCount = JSON.parseObject(result, Map.class);
|
Map mapCount = JSON.parseObject(result, Map.class);
|
||||||
String count = mapCount.get("count").toString();
|
String count = mapCount.get("count").toString();
|
||||||
|
resultLog.append(" 上送" + start + "条至" + end + "条数据成功,返回成功条数: "+count+"; ");
|
||||||
} else {
|
} else {
|
||||||
|
resultFlag.set(false);
|
||||||
String errors = mapData.get("errors").toString();
|
String errors = mapData.get("errors").toString();
|
||||||
int start = step * 100;
|
String errorMsg = " 上送" + start + "条至" + end + "条数据,上送失败:" + status + "_" + errors+" ;";
|
||||||
int end = (step+1) * 100;
|
resultLog.append(errorMsg);
|
||||||
throw new BusinessException("上送"+start+"条至"+end+"条数据,上送失败:" + status + "_" + errors);
|
assUploadLog(localDate,resultLog,resultFlag);
|
||||||
|
throw new BusinessException(errorMsg);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
resultFlag.set(false);
|
||||||
|
resultLog.append(" 上送" + start + "条至" + end + "条数据网络异常;");
|
||||||
|
assUploadLog(localDate,resultLog,resultFlag);
|
||||||
throw new BusinessException("当前时间段国网上送请求过多,请稍后再试");
|
throw new BusinessException("当前时间段国网上送请求过多,请稍后再试");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改上送信息状态
|
* 修改上送信息状态
|
||||||
* @param ids id集合
|
* @param ids id集合
|
||||||
|
|||||||
@@ -1,11 +1,16 @@
|
|||||||
package com.njcn.harmonic.service.upload.impl;
|
package com.njcn.harmonic.service.upload.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
import com.njcn.harmonic.mapper.upload.RUploadDataLogMapper;
|
import com.njcn.harmonic.mapper.upload.RUploadDataLogMapper;
|
||||||
import com.njcn.harmonic.pojo.po.upload.RUploadDataLog;
|
import com.njcn.harmonic.pojo.po.upload.RUploadDataLog;
|
||||||
import com.njcn.harmonic.service.upload.IRUploadDataLogService;
|
import com.njcn.harmonic.service.upload.IRUploadDataLogService;
|
||||||
|
import com.njcn.web.factory.PageFactory;
|
||||||
|
import com.njcn.web.pojo.param.BaseParam;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,4 +24,17 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
public class RUploadDataLogServiceImpl extends MppServiceImpl<RUploadDataLogMapper, RUploadDataLog> implements IRUploadDataLogService {
|
public class RUploadDataLogServiceImpl extends MppServiceImpl<RUploadDataLogMapper, RUploadDataLog> implements IRUploadDataLogService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<RUploadDataLog> getList(BaseParam baseParam) {
|
||||||
|
LambdaQueryWrapper<RUploadDataLog> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
lambdaQueryWrapper.between(RUploadDataLog::getCreateTime,baseParam.getSearchBeginTime(),baseParam.getSearchEndTime())
|
||||||
|
.orderByDesc(RUploadDataLog::getStatisticDate);
|
||||||
|
if(StrUtil.isNotBlank(baseParam.getSearchValue())){
|
||||||
|
lambdaQueryWrapper.eq(RUploadDataLog::getSmallType,Integer.parseInt(baseParam.getSearchValue()));
|
||||||
|
}
|
||||||
|
if(StrUtil.isNotBlank(baseParam.getSortBy())){
|
||||||
|
lambdaQueryWrapper.eq(RUploadDataLog::getResult,Integer.parseInt(baseParam.getSortBy()));
|
||||||
|
}
|
||||||
|
return this.page(new Page<>(PageFactory.getPageNum(baseParam),PageFactory.getPageSize(baseParam)),lambdaQueryWrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,6 +47,8 @@ public class SupvPlanVO {
|
|||||||
*/
|
*/
|
||||||
private String planBelongOrg;
|
private String planBelongOrg;
|
||||||
|
|
||||||
|
private String planBelongOrgName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计划编制单位名字
|
* 计划编制单位名字
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.njcn.process.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
@@ -44,6 +45,7 @@ import com.njcn.web.utils.RequestUtil;
|
|||||||
import liquibase.pro.packaged.L;
|
import liquibase.pro.packaged.L;
|
||||||
import liquibase.pro.packaged.S;
|
import liquibase.pro.packaged.S;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.joda.time.DateTimeUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
@@ -258,7 +260,7 @@ public class SupvPlanServiceImpl extends ServiceImpl<SupvPlanMapper, SupvPlan> i
|
|||||||
if (StrUtil.isNotBlank(supvPlanParam.getSupvOrgId())) {
|
if (StrUtil.isNotBlank(supvPlanParam.getSupvOrgId())) {
|
||||||
List<String> deptIds = deptFeignClient.getDepSonSelfCodetByCode(supvPlanParam.getSupvOrgId()).getData();
|
List<String> deptIds = deptFeignClient.getDepSonSelfCodetByCode(supvPlanParam.getSupvOrgId()).getData();
|
||||||
lambdaQueryWrapper.in(SupvPlan::getSupvOrgId, deptIds)
|
lambdaQueryWrapper.in(SupvPlan::getSupvOrgId, deptIds)
|
||||||
.between(SupvPlan::getPlanSupvDate, supvPlanParam.getSearchBeginTime(),supvPlanParam.getSearchEndTime())
|
.between(SupvPlan::getPlanSupvDate, DateUtil.parse(supvPlanParam.getSearchBeginTime(), DatePattern.NORM_DATE_PATTERN),DateUtil.parse(supvPlanParam.getSearchEndTime(), DatePattern.NORM_DATE_PATTERN))
|
||||||
.eq(StrUtil.isNotBlank(supvPlanParam.getSupvType()),SupvPlan::getSupvType,supvPlanParam.getSupvType());
|
.eq(StrUtil.isNotBlank(supvPlanParam.getSupvType()),SupvPlan::getSupvType,supvPlanParam.getSupvType());
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -285,9 +287,11 @@ public class SupvPlanServiceImpl extends ServiceImpl<SupvPlanMapper, SupvPlan> i
|
|||||||
List<String> userIds = supvPlanVOList.stream().map(SupvPlanVO::getPlanUserId).distinct().collect(Collectors.toList());
|
List<String> userIds = supvPlanVOList.stream().map(SupvPlanVO::getPlanUserId).distinct().collect(Collectors.toList());
|
||||||
supvPlanVOList.forEach(item -> {
|
supvPlanVOList.forEach(item -> {
|
||||||
PvTerminalTreeVO pvTerminalTreeVO = null;
|
PvTerminalTreeVO pvTerminalTreeVO = null;
|
||||||
if (mapCode.containsKey(item.getSupvOrgId())) {
|
|
||||||
|
item.setSupvOrgName(mapCode.get(item.getSupvOrgId()).getName());
|
||||||
|
if (mapCode.containsKey(item.getPlanBelongOrg())) {
|
||||||
pvTerminalTreeVO = mapCode.get(item.getPlanBelongOrg());
|
pvTerminalTreeVO = mapCode.get(item.getPlanBelongOrg());
|
||||||
item.setSupvOrgName(pvTerminalTreeVO.getName());
|
item.setPlanBelongOrgName(pvTerminalTreeVO.getName());
|
||||||
int deptLevel = pvTerminalTreeVO.getPids().split(StrUtil.COMMA).length;
|
int deptLevel = pvTerminalTreeVO.getPids().split(StrUtil.COMMA).length;
|
||||||
if (deptLevel == 2) {
|
if (deptLevel == 2) {
|
||||||
//省
|
//省
|
||||||
|
|||||||
Reference in New Issue
Block a user