数据上送逻辑调整-支持指定数据上送

This commit is contained in:
2023-12-15 09:05:26 +08:00
parent b0d2b611ad
commit f974951889
11 changed files with 142 additions and 66 deletions

View File

@@ -0,0 +1,25 @@
package com.njcn.harmonic.pojo.param;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
/**
* 类的介绍:国网数据查询参数实体
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/12/14 9:30
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class UploadDataParam extends BaseParam {
@ApiModelProperty("单位id")
@NotBlank(message = "单位id不可为空")
private String orgId;
}

View File

@@ -1,25 +1,26 @@
package com.njcn.harmonic.pojo.param; package com.njcn.harmonic.pojo.param;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.List;
/** /**
* 类的介绍:国网数据查询参数实体 * 类的介绍:上送国网数据参数实体
* *
* @author xuyang * @author xuyang
* @version 1.0.0 * @version 1.0.0
* @createTime 2023/12/14 9:30 * @createTime 2023/12/14 9:30
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) public class UploadParam {
public class UploadParam extends BaseParam {
@ApiModelProperty("单位id") @ApiModelProperty("时间")
@NotBlank(message = "单位id不可为空") @NotBlank(message = "时间不可为空")
private String orgId; private String time;
@ApiModelProperty("上送数据集合 可以不传,后台默认规则查询")
private List<String> list;
} }

View File

@@ -7,6 +7,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.LogUtil; import com.njcn.common.utils.LogUtil;
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.vo.upload.UploadEvaluationDataVo; import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo;
import com.njcn.harmonic.service.upload.IEvaluationDataService; import com.njcn.harmonic.service.upload.IEvaluationDataService;
@@ -39,7 +40,7 @@ public class EvaluationDataController extends BaseController {
@PostMapping("/getEvaluationData") @PostMapping("/getEvaluationData")
@ApiOperation("查询母线基准水平评估数据") @ApiOperation("查询母线基准水平评估数据")
@ApiImplicitParam(name = "param", value = "实体参数", required = true) @ApiImplicitParam(name = "param", value = "实体参数", required = true)
public HttpResult<Page<UploadEvaluationDataVo>> getEvaluationData(@RequestBody UploadParam param) { public HttpResult<Page<UploadEvaluationDataVo>> getEvaluationData(@RequestBody UploadDataParam param) {
String methodDescribe = getMethodDescribe("getEvaluationData"); String methodDescribe = getMethodDescribe("getEvaluationData");
LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, param); LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, param);
Page<UploadEvaluationDataVo> list = evaluationDataService.getEvaluationData(param); Page<UploadEvaluationDataVo> list = evaluationDataService.getEvaluationData(param);
@@ -49,11 +50,11 @@ public class EvaluationDataController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/uploadEvaluationData") @PostMapping("/uploadEvaluationData")
@ApiOperation("国网上送-母线基准水平评估数据") @ApiOperation("国网上送-母线基准水平评估数据")
@ApiImplicitParam(name = "time", value = "时间", required = true) @ApiImplicitParam(name = "param", value = "实体参数", required = true)
public HttpResult<String> uploadEvaluationData(@RequestParam("time") String time) { public HttpResult<String> uploadEvaluationData(@RequestBody UploadParam param) {
String methodDescribe = getMethodDescribe("uploadEvaluationData"); String methodDescribe = getMethodDescribe("uploadEvaluationData");
LogUtil.njcnDebug(log, "{}时间{}", methodDescribe, time); LogUtil.njcnDebug(log, "{}实体参数{}", methodDescribe, param);
String result = evaluationDataService.uploadEvaluationData(time); String result = evaluationDataService.uploadEvaluationData(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }

View File

@@ -7,6 +7,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.LogUtil; import com.njcn.common.utils.LogUtil;
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.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;
@@ -40,7 +41,7 @@ public class PointStatisticalDataController extends BaseController {
@PostMapping("/getPointStatisticalData") @PostMapping("/getPointStatisticalData")
@ApiOperation("查询主配网监测点统计数据") @ApiOperation("查询主配网监测点统计数据")
@ApiImplicitParam(name = "param", value = "实体参数", required = true) @ApiImplicitParam(name = "param", value = "实体参数", required = true)
public HttpResult<Page<UploadPointStatisticalDataVo>> getPointStatisticalData(@RequestBody UploadParam param) { public HttpResult<Page<UploadPointStatisticalDataVo>> getPointStatisticalData(@RequestBody UploadDataParam param) {
String methodDescribe = getMethodDescribe("getPointStatisticalData"); String methodDescribe = getMethodDescribe("getPointStatisticalData");
LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, param); LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, param);
Page<UploadPointStatisticalDataVo> list = pointStatisticalDataService.getPointStatisticalData(param); Page<UploadPointStatisticalDataVo> list = pointStatisticalDataService.getPointStatisticalData(param);
@@ -50,11 +51,11 @@ public class PointStatisticalDataController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/uploadPointStatisticalData") @PostMapping("/uploadPointStatisticalData")
@ApiOperation("国网上送-主配网监测点统计数据") @ApiOperation("国网上送-主配网监测点统计数据")
@ApiImplicitParam(name = "time", value = "时间", required = true) @ApiImplicitParam(name = "param", value = "实体参数", required = true)
public HttpResult<String> uploadPointStatisticalData(@RequestParam("time") String time) { public HttpResult<String> uploadPointStatisticalData(@RequestBody UploadParam param) {
String methodDescribe = getMethodDescribe("uploadPointStatisticalData"); String methodDescribe = getMethodDescribe("uploadPointStatisticalData");
LogUtil.njcnDebug(log, "{}时间{}", methodDescribe, time); LogUtil.njcnDebug(log, "{}实体参数{}", methodDescribe, param);
String result = pointStatisticalDataService.uploadPointStatisticalData(time); String result = pointStatisticalDataService.uploadPointStatisticalData(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }

View File

@@ -7,6 +7,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.LogUtil; import com.njcn.common.utils.LogUtil;
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.vo.upload.UploadSubstationStatisticalDataVo; import com.njcn.harmonic.pojo.vo.upload.UploadSubstationStatisticalDataVo;
import com.njcn.harmonic.service.upload.ISubstationStatisticalDataService; import com.njcn.harmonic.service.upload.ISubstationStatisticalDataService;
@@ -40,7 +41,7 @@ public class SubstationStatisticalDataController extends BaseController {
@PostMapping("/getSubstationStatisticalData") @PostMapping("/getSubstationStatisticalData")
@ApiOperation("查询变电站监测统计数据") @ApiOperation("查询变电站监测统计数据")
@ApiImplicitParam(name = "param", value = "实体参数", required = true) @ApiImplicitParam(name = "param", value = "实体参数", required = true)
public HttpResult<Page<UploadSubstationStatisticalDataVo>> getSubstationStatisticalData(@RequestBody UploadParam param) { public HttpResult<Page<UploadSubstationStatisticalDataVo>> getSubstationStatisticalData(@RequestBody UploadDataParam param) {
String methodDescribe = getMethodDescribe("getSubstationStatisticalData"); String methodDescribe = getMethodDescribe("getSubstationStatisticalData");
LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, param); LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, param);
Page<UploadSubstationStatisticalDataVo> list = substationStatisticalDataService.getSubstationStatisticalData(param); Page<UploadSubstationStatisticalDataVo> list = substationStatisticalDataService.getSubstationStatisticalData(param);
@@ -50,11 +51,11 @@ public class SubstationStatisticalDataController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/uploadSubstationStatisticalData") @PostMapping("/uploadSubstationStatisticalData")
@ApiOperation("国网上送-变电站监测统计数据") @ApiOperation("国网上送-变电站监测统计数据")
@ApiImplicitParam(name = "time", value = "时间", required = true) @ApiImplicitParam(name = "param", value = "实体参数", required = true)
public HttpResult<String> uploadSubstationStatisticalData(@RequestParam("time") String time) { public HttpResult<String> uploadSubstationStatisticalData(@RequestBody UploadParam param) {
String methodDescribe = getMethodDescribe("uploadSubstationStatisticalData"); String methodDescribe = getMethodDescribe("uploadSubstationStatisticalData");
LogUtil.njcnDebug(log, "{}时间{}", methodDescribe, time); LogUtil.njcnDebug(log, "{}实体参数{}", methodDescribe, param);
String result = substationStatisticalDataService.uploadSubstationStatisticalData(time); String result = substationStatisticalDataService.uploadSubstationStatisticalData(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }
} }

View File

@@ -2,6 +2,7 @@ package com.njcn.harmonic.service.upload;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
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.RUploadEvaluationDataD; import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo; import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo;
@@ -20,12 +21,12 @@ public interface IEvaluationDataService extends IService<RUploadEvaluationDataD>
* 2.4.1.8接收电能质量基准水平评估数据接口 * 2.4.1.8接收电能质量基准水平评估数据接口
* @param param * @param param
*/ */
Page<UploadEvaluationDataVo> getEvaluationData(UploadParam param); Page<UploadEvaluationDataVo> getEvaluationData(UploadDataParam param);
/** /**
* 数据上送接口 * 数据上送接口
* @param time * @param param
*/ */
String uploadEvaluationData(String time); String uploadEvaluationData(UploadParam param);
} }

View File

@@ -2,6 +2,7 @@ package com.njcn.harmonic.service.upload;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
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.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;
@@ -15,12 +16,12 @@ public interface IPointStatisticalDataService extends IService<RUploadPointStati
* 2.4.1.17接收电能质量主配网监测点统计数据接口 * 2.4.1.17接收电能质量主配网监测点统计数据接口
* @param param * @param param
*/ */
Page<UploadPointStatisticalDataVo> getPointStatisticalData(UploadParam param); Page<UploadPointStatisticalDataVo> getPointStatisticalData(UploadDataParam param);
/** /**
* 数据上送接口 * 数据上送接口
* @param time * @param param
*/ */
String uploadPointStatisticalData(String time); String uploadPointStatisticalData(UploadParam param);
} }

View File

@@ -2,6 +2,7 @@ package com.njcn.harmonic.service.upload;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
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.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;
@@ -20,11 +21,11 @@ public interface ISubstationStatisticalDataService extends IService<RUploadSubst
* 2.4.1.19接收电能质量变电站监测统计数据接口 * 2.4.1.19接收电能质量变电站监测统计数据接口
* @param param * @param param
*/ */
Page<UploadSubstationStatisticalDataVo> getSubstationStatisticalData(UploadParam param); Page<UploadSubstationStatisticalDataVo> getSubstationStatisticalData(UploadDataParam param);
/** /**
* 数据上送接口 * 数据上送接口
* @param time * @param param
*/ */
String uploadSubstationStatisticalData(String time); String uploadSubstationStatisticalData(UploadParam param);
} }

View File

@@ -1,6 +1,7 @@
package com.njcn.harmonic.service.upload.impl; package com.njcn.harmonic.service.upload.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
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;
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.harmonic.mapper.upload.RUploadPointStatisticalDataDMapper; 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.UploadParam; import com.njcn.harmonic.pojo.param.UploadParam;
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;
@@ -41,7 +43,7 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl<RUploadPointSta
private final DeptFeignClient deptFeignClient; private final DeptFeignClient deptFeignClient;
@Override @Override
public Page<UploadPointStatisticalDataVo> getPointStatisticalData(UploadParam param) { public Page<UploadPointStatisticalDataVo> getPointStatisticalData(UploadDataParam param) {
LambdaQueryWrapper<RUploadPointStatisticalDataD> lambdaQueryWrapper = getDeptLevel(param); LambdaQueryWrapper<RUploadPointStatisticalDataD> lambdaQueryWrapper = getDeptLevel(param);
//默认按照省名称排序 //默认按照省名称排序
lambdaQueryWrapper.orderByDesc(RUploadPointStatisticalDataD::getProvinceName); lambdaQueryWrapper.orderByDesc(RUploadPointStatisticalDataD::getProvinceName);
@@ -57,20 +59,33 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl<RUploadPointSta
} }
@Override @Override
public String uploadPointStatisticalData(String time) { public String uploadPointStatisticalData(UploadParam param) {
List<RUploadPointStatisticalDataD> list = this.lambdaQuery() List<RUploadPointStatisticalDataD> list;
.eq(RUploadPointStatisticalDataD::getStatisticalDate,time) //指定数据上送,不管之前有没有上送,都重新上送一次
.eq(RUploadPointStatisticalDataD::getUploadStatus,0).list(); //(预防之前送上过,修改数据后需要再次上送)
if (CollectionUtil.isNotEmpty(param.getList())){
list = this.lambdaQuery()
.eq(RUploadPointStatisticalDataD::getStatisticalDate,param.getTime())
.in(RUploadPointStatisticalDataD::getId,param.getList())
.list();
}
//未指定数据上送,则将所有未上送的数据,上送上去
else {
list = this.lambdaQuery()
.eq(RUploadPointStatisticalDataD::getStatisticalDate,param.getTime())
.eq(RUploadPointStatisticalDataD::getUploadStatus,0)
.list();
}
List<MonitorStatisticalDTO> dtoList = BeanUtil.copyToList(list, MonitorStatisticalDTO.class); List<MonitorStatisticalDTO> dtoList = BeanUtil.copyToList(list, MonitorStatisticalDTO.class);
//以尺寸100分片 //以尺寸100分片
List<List<MonitorStatisticalDTO>> pendingIds = ListUtils.partition(dtoList, 100); List<List<MonitorStatisticalDTO>> pendingIds = ListUtils.partition(dtoList, 100);
//分片上传 //分片上传
for (int i = 0; i < pendingIds.size(); i++) { for (int i = 0; i < pendingIds.size(); i++) {
SendParam param = new SendParam(); SendParam sp = new SendParam();
param.setStats(pendingIds.get(i)); sp.setStats(pendingIds.get(i));
param.setStatisticalDate(time); sp.setStatisticalDate(param.getTime());
//上送数据 //上送数据
Map<String, String> send = GwSendUtil.send(param, GWSendEnum.STATISTICAL_CREATE); Map<String, String> send = GwSendUtil.send(sp, GWSendEnum.STATISTICAL_CREATE);
//获取返回结果 //获取返回结果
List<String> l = pendingIds.get(i).stream().map(MonitorStatisticalDTO::getId).collect(Collectors.toList()); List<String> l = pendingIds.get(i).stream().map(MonitorStatisticalDTO::getId).collect(Collectors.toList());
returnInformation(i,l,send); returnInformation(i,l,send);
@@ -82,7 +97,7 @@ public class PointStatisticalDataServiceImpl extends ServiceImpl<RUploadPointSta
/** /**
* 获取当前单位的层级 * 获取当前单位的层级
*/ */
public LambdaQueryWrapper<RUploadPointStatisticalDataD> getDeptLevel(UploadParam param) { public LambdaQueryWrapper<RUploadPointStatisticalDataD> getDeptLevel(UploadDataParam param) {
Dept dept = deptFeignClient.getDeptByCode(param.getOrgId()).getData(); Dept dept = deptFeignClient.getDeptByCode(param.getOrgId()).getData();
List<String> list = Arrays.stream(dept.getPids().split(",")).map(String::trim).collect(Collectors.toList()); List<String> list = Arrays.stream(dept.getPids().split(",")).map(String::trim).collect(Collectors.toList());
LambdaQueryWrapper<RUploadPointStatisticalDataD> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<RUploadPointStatisticalDataD> lambdaQueryWrapper = new LambdaQueryWrapper<>();

View File

@@ -1,6 +1,7 @@
package com.njcn.harmonic.service.upload.impl; package com.njcn.harmonic.service.upload.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
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;
@@ -9,8 +10,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.harmonic.mapper.upload.RUploadEvaluationDataDMapper; import com.njcn.harmonic.mapper.upload.RUploadEvaluationDataDMapper;
import com.njcn.harmonic.pojo.dto.upload.PqEvaluationCreateDTO; 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.param.UploadParam;
import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD; 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.pojo.vo.upload.UploadEvaluationDataVo;
import com.njcn.harmonic.service.upload.IEvaluationDataService; import com.njcn.harmonic.service.upload.IEvaluationDataService;
import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.DeptFeignClient;
@@ -46,7 +49,7 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
private final DeptFeignClient deptFeignClient; private final DeptFeignClient deptFeignClient;
@Override @Override
public Page<UploadEvaluationDataVo> getEvaluationData(UploadParam param) { public Page<UploadEvaluationDataVo> getEvaluationData(UploadDataParam param) {
LambdaQueryWrapper<RUploadEvaluationDataD> lambdaQueryWrapper = getDeptLevel(param); LambdaQueryWrapper<RUploadEvaluationDataD> lambdaQueryWrapper = getDeptLevel(param);
//默认按照省名称排序 //默认按照省名称排序
lambdaQueryWrapper.orderByDesc(RUploadEvaluationDataD::getProvinceName); lambdaQueryWrapper.orderByDesc(RUploadEvaluationDataD::getProvinceName);
@@ -62,31 +65,43 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
} }
@Override @Override
public String uploadEvaluationData(String time) { public String uploadEvaluationData(UploadParam param) {
List<RUploadEvaluationDataD> list = this.lambdaQuery() List<RUploadEvaluationDataD> list;
.eq(RUploadEvaluationDataD::getStatisticalDate,time) //指定数据上送,不管之前有没有上送,都重新上送一次
.eq(RUploadEvaluationDataD::getUploadStatus,0).list(); //(预防之前送上过,修改数据后需要再次上送)
if (CollectionUtil.isNotEmpty(param.getList())){
list = this.lambdaQuery()
.eq(RUploadEvaluationDataD::getStatisticalDate,param.getTime())
.in(RUploadEvaluationDataD::getId,param.getList())
.list();
}
//未指定数据上送,则将所有未上送的数据,上送上去
else {
list = this.lambdaQuery()
.eq(RUploadEvaluationDataD::getStatisticalDate,param.getTime())
.eq(RUploadEvaluationDataD::getUploadStatus,0)
.list();
}
List<PqEvaluationCreateDTO> dtoList = BeanUtil.copyToList(list, PqEvaluationCreateDTO.class); List<PqEvaluationCreateDTO> dtoList = BeanUtil.copyToList(list, PqEvaluationCreateDTO.class);
//以尺寸100分片 //以尺寸100分片
List<List<PqEvaluationCreateDTO>> pendingIds = ListUtils.partition(dtoList, 100); List<List<PqEvaluationCreateDTO>> pendingIds = ListUtils.partition(dtoList, 100);
//分片上传 //分片上传
for (int i = 0; i < pendingIds.size(); i++) { for (int i = 0; i < pendingIds.size(); i++) {
//处理数据 //处理数据
List<PqEvaluationCreateDTO> l1 = pendingIds.get(i).stream().map(item->{ List<PqEvaluationCreateDTO> l1 = pendingIds.get(i).stream().peek(item->{
if (Objects.equals(item.getAvgValue(),3.1415926)){ if (Objects.equals(item.getAvgValue(),3.1415926)){
item.setAvgValue(0d); item.setAvgValue(0d);
} }
if (Objects.equals(item.getStandardDeviation(),3.1415926)){ if (Objects.equals(item.getStandardDeviation(),3.1415926)){
item.setStandardDeviation(0d); item.setStandardDeviation(0d);
} }
return item;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
//组装数据 //组装数据
SendParam param = new SendParam(); SendParam sp = new SendParam();
param.setStats(l1); sp.setStats(l1);
param.setStatisticalDate(time); sp.setStatisticalDate(param.getTime());
//上送数据 //上送数据
Map<String, String> send = GwSendUtil.send(param, GWSendEnum.EVALUATION); Map<String, String> send = GwSendUtil.send(sp, GWSendEnum.EVALUATION);
//获取返回结果 //获取返回结果
List<String> l = pendingIds.get(i).stream().map(PqEvaluationCreateDTO::getId).collect(Collectors.toList()); List<String> l = pendingIds.get(i).stream().map(PqEvaluationCreateDTO::getId).collect(Collectors.toList());
returnInformation(i,l,send); returnInformation(i,l,send);
@@ -98,7 +113,7 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
/** /**
* 获取当前单位的层级 * 获取当前单位的层级
*/ */
public LambdaQueryWrapper<RUploadEvaluationDataD> getDeptLevel(UploadParam param) { public LambdaQueryWrapper<RUploadEvaluationDataD> getDeptLevel(UploadDataParam param) {
Dept dept = deptFeignClient.getDeptByCode(param.getOrgId()).getData(); Dept dept = deptFeignClient.getDeptByCode(param.getOrgId()).getData();
List<String> list = Arrays.stream(dept.getPids().split(",")).map(String::trim).collect(Collectors.toList()); List<String> list = Arrays.stream(dept.getPids().split(",")).map(String::trim).collect(Collectors.toList());
LambdaQueryWrapper<RUploadEvaluationDataD> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<RUploadEvaluationDataD> lambdaQueryWrapper = new LambdaQueryWrapper<>();

View File

@@ -1,6 +1,7 @@
package com.njcn.harmonic.service.upload.impl; package com.njcn.harmonic.service.upload.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
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;
@@ -8,12 +9,11 @@ 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.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.harmonic.mapper.upload.RUploadSubstationStatisticalDataDMapper; import com.njcn.harmonic.mapper.upload.RUploadSubstationStatisticalDataDMapper;
import com.njcn.harmonic.pojo.dto.upload.MonitorStatisticalDTO;
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.UploadParam; import com.njcn.harmonic.pojo.param.UploadParam;
import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD; import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD;
import com.njcn.harmonic.pojo.po.upload.RUploadSubstationStatisticalDataD; import com.njcn.harmonic.pojo.po.upload.RUploadSubstationStatisticalDataD;
import com.njcn.harmonic.pojo.vo.upload.UploadPointStatisticalDataVo;
import com.njcn.harmonic.pojo.vo.upload.UploadSubstationStatisticalDataVo; import com.njcn.harmonic.pojo.vo.upload.UploadSubstationStatisticalDataVo;
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;
@@ -48,7 +48,7 @@ public class RSubstationStatisticalDataServiceImpl extends ServiceImpl<RUploadSu
private final DeptFeignClient deptFeignClient; private final DeptFeignClient deptFeignClient;
@Override @Override
public Page<UploadSubstationStatisticalDataVo> getSubstationStatisticalData(UploadParam param) { public Page<UploadSubstationStatisticalDataVo> getSubstationStatisticalData(UploadDataParam param) {
LambdaQueryWrapper<RUploadSubstationStatisticalDataD> lambdaQueryWrapper = getDeptLevel(param); LambdaQueryWrapper<RUploadSubstationStatisticalDataD> lambdaQueryWrapper = getDeptLevel(param);
//默认按照省名称排序 //默认按照省名称排序
lambdaQueryWrapper.orderByDesc(RUploadSubstationStatisticalDataD::getProvinceName); lambdaQueryWrapper.orderByDesc(RUploadSubstationStatisticalDataD::getProvinceName);
@@ -64,20 +64,34 @@ public class RSubstationStatisticalDataServiceImpl extends ServiceImpl<RUploadSu
} }
@Override @Override
public String uploadSubstationStatisticalData(String time) { public String uploadSubstationStatisticalData(UploadParam param) {
List<RUploadSubstationStatisticalDataD> list = this.lambdaQuery()
.eq(RUploadSubstationStatisticalDataD::getStatisticalDate,time) List<RUploadSubstationStatisticalDataD> list;
.eq(RUploadSubstationStatisticalDataD::getUploadStatus,0).list(); //指定数据上送,不管之前有没有上送,都重新上送一次
//(预防之前送上过,修改数据后需要再次上送)
if (CollectionUtil.isNotEmpty(param.getList())){
list = this.lambdaQuery()
.eq(RUploadSubstationStatisticalDataD::getStatisticalDate,param.getTime())
.in(RUploadSubstationStatisticalDataD::getId,param.getList())
.list();
}
//未指定数据上送,则将所有未上送的数据,上送上去
else {
list = this.lambdaQuery()
.eq(RUploadSubstationStatisticalDataD::getStatisticalDate,param.getTime())
.eq(RUploadSubstationStatisticalDataD::getUploadStatus,0)
.list();
}
List<SubstationQualityStatisticsDTO> dtoList = BeanUtil.copyToList(list, SubstationQualityStatisticsDTO.class); List<SubstationQualityStatisticsDTO> dtoList = BeanUtil.copyToList(list, SubstationQualityStatisticsDTO.class);
//以尺寸100分片 //以尺寸100分片
List<List<SubstationQualityStatisticsDTO>> pendingIds = ListUtils.partition(dtoList, 100); List<List<SubstationQualityStatisticsDTO>> pendingIds = ListUtils.partition(dtoList, 100);
//分片上传 //分片上传
for (int i = 0; i < pendingIds.size(); i++) { for (int i = 0; i < pendingIds.size(); i++) {
SendParam param = new SendParam(); SendParam sp = new SendParam();
param.setStats(pendingIds.get(i)); sp.setStats(pendingIds.get(i));
param.setStatisticalDate(time); sp.setStatisticalDate(param.getTime());
//上送数据 //上送数据
Map<String, String> send = GwSendUtil.send(param, GWSendEnum.SUBSTATION_MONITOR); Map<String, String> send = GwSendUtil.send(sp, GWSendEnum.SUBSTATION_MONITOR);
//获取返回结果 //获取返回结果
List<String> l = pendingIds.get(i).stream().map(SubstationQualityStatisticsDTO::getId).collect(Collectors.toList()); List<String> l = pendingIds.get(i).stream().map(SubstationQualityStatisticsDTO::getId).collect(Collectors.toList());
returnInformation(i,l,send); returnInformation(i,l,send);
@@ -88,7 +102,7 @@ public class RSubstationStatisticalDataServiceImpl extends ServiceImpl<RUploadSu
/** /**
* 获取当前单位的层级 * 获取当前单位的层级
*/ */
public LambdaQueryWrapper<RUploadSubstationStatisticalDataD> getDeptLevel(UploadParam param) { public LambdaQueryWrapper<RUploadSubstationStatisticalDataD> getDeptLevel(UploadDataParam param) {
Dept dept = deptFeignClient.getDeptByCode(param.getOrgId()).getData(); Dept dept = deptFeignClient.getDeptByCode(param.getOrgId()).getData();
List<String> list = Arrays.stream(dept.getPids().split(",")).map(String::trim).collect(Collectors.toList()); List<String> list = Arrays.stream(dept.getPids().split(",")).map(String::trim).collect(Collectors.toList());
LambdaQueryWrapper<RUploadSubstationStatisticalDataD> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<RUploadSubstationStatisticalDataD> lambdaQueryWrapper = new LambdaQueryWrapper<>();