8、16、19国网接口-数据查询、上送接口

This commit is contained in:
2023-12-14 16:24:10 +08:00
parent 5bb7adc5b6
commit c5e31075a5
29 changed files with 1355 additions and 95 deletions

View File

@@ -35,8 +35,12 @@ public enum GWSendEnum {
SUBSTATION_MONITOR("pqSubstationMonitorCreate", "/WMCenter/powerQuality/substationMonitor/create"), SUBSTATION_MONITOR("pqSubstationMonitorCreate", "/WMCenter/powerQuality/substationMonitor/create"),
//接收其他干扰用户台账数据接口 //接收其他干扰用户台账数据接口
OTHER_USER_CREATE("pqArchivalInformationOtherUserCreate", "/WMCenter/powerQuality/archivalInformation/otherUserCreate"), OTHER_USER_CREATE("pqArchivalInformationOtherUserCreate", "/WMCenter/powerQuality/archivalInformation/otherUserCreate"),
//2.4.1.16接收电能质量主配网监测点统计数据接口
POINT_STATISTICAL_DATA("pqPointStatisticalDataCreate","/WMCenter/powerQuality/converterMonitor/indexCreate"),
//2.4.1.19接收电能质量变电站监测统计数据接口
SUBSTATION_STATISTICAL_DATA("pqSubstationStatisticalDataCreate","/WMCenter/powerQuality/substationMonitor/create"),
//2.4.1.8接收电能质量基准水平评估数据接口
EVALUATION_DATA("pqEvaluationData","/WMCenter/powerQuality/evaluation/create"),
; ;

View File

@@ -1,57 +0,0 @@
package com.njcn.harmonic.pojo.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
* 类的介绍:上送国网-接收电能质量主配网监测点统计数据接口list实体
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/12/7 8:52
*/
@Data
public class MonitorStatisticalDTO {
private String id;
private String provinceId;
private String provinceName;
private String cityId;
private String cityName;
private String countyId;
private String countyName;
private Integer runTerminalNum;
private Integer onlineMonitorNum;
private Integer runMonitorNum;
private BigDecimal onlineMonitorRate;
private Integer expectCollectNum;
private Integer actualCollectNum;
private BigDecimal dataFullRate;
private String stationType;
private Integer stationMonitorNum;
private String statisticalDate;
private String statisticalLevel;
private String statisticalType;
private String distributionFlag;
}

View File

@@ -0,0 +1,114 @@
package com.njcn.harmonic.pojo.dto.upload;
import lombok.Data;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/12/14 14:05
*/
@Data
public class MonitorStatisticalDTO {
/**
* uuid
*/
private String id;
/**
* 省级单位id
*/
private String provinceId;
/**
* 省级单位名称
*/
private String provinceName;
/**
* 市级单位id
*/
private String cityId;
/**
* 市级单位名称
*/
private String cityName;
/**
* 县级单位id
*/
private String countyId;
/**
* 县级单位名称
*/
private String countyName;
/**
* 在运监测终端数量
*/
private Integer runTerminalNum;
/**
* 在线监测点个数
*/
private Integer onlineMonitorNum;
/**
* 在运监测点个数
*/
private Integer runMonitorNum;
/**
* 监测点在线率
*/
private Double onlineMonitorRate;
/**
* 数据应收数
*/
private Integer expectCollectNum;
/**
* 数据实收数
*/
private Integer actualCollectNum;
/**
* 完整率
*/
private Double dataFullRate;
/**
* 所属站别
*/
private String stationType;
/**
* 所属站别下的监测点个数
*/
private Integer stationMonitorNum;
/**
* 统计日期
*/
private String statisticalDate;
/**
* 统计层级
*/
private String statisticalLevel;
/**
* 统计类型
*/
private String statisticalType;
/**
* 主配网标识
*/
private String distributionFlag;
}

View File

@@ -0,0 +1,110 @@
package com.njcn.harmonic.pojo.dto.upload;
import lombok.Data;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/12/14 15:46
*/
@Data
public class PqEvaluationCreateDTO {
/**
* uuid
*/
private String id;
/**
* 省级单位id
*/
private String provinceId;
/**
* 省级单位名称
*/
private String provinceName;
/**
* 市级单位id
*/
private String cityId;
/**
* 市级单位名称
*/
private String cityName;
/**
* 县级单位id
*/
private String countyId;
/**
* 县级单位名称
*/
private String countyName;
/**
* 谐波次数(次数应取2-50)
*/
private Integer harmonicNum;
/**
* 指标类型(01:电压 02:长时间闪变 03:三相电压不平衡 04:电压总谐波畸变率 05:各次谐波电压 06:负序电流)
*/
private String indexType;
/**
* 数据来源(01:仅在线监测 02:在线监测与现场测试)
*/
private String dataSources;
/**
* 监测母线数量
*/
private Integer monitorBusNum = 0;
/**
* 母线监测率(%)
*/
private Double monitorBusRate = 0.0d;
/**
* 在运母线数量
*/
private Integer onlineBusNum = 0;
/**
* 均值
*/
private Double avgValue;
/**
* 标准差
*/
private Double standardDeviation;
/**
* 统计日期
*/
private String statisticalDate;
/**
* 统计层级(3:省 4:市 5:县)
*/
private String statisticalLevel;
/**
* 统计类型(01:年 02:月 03:日)
*/
private String statisticalType;
/**
* 电压等级
*/
private String voltageLevel;
}

View File

@@ -0,0 +1,94 @@
package com.njcn.harmonic.pojo.dto.upload;
import lombok.Data;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/12/14 15:35
*/
@Data
public class SubstationQualityStatisticsDTO {
/**
* uuid
*/
private String id;
/**
* 省级单位id
*/
private String provinceId;
/**
* 省级单位名称
*/
private String provinceName;
/**
* 市级单位id
*/
private String cityId;
/**
* 市级单位名称
*/
private String cityName;
/**
* 县级单位id
*/
private String countyId;
/**
* 县级单位名称
*/
private String countyName;
/**
* 变电站总数量
*/
private Integer substationCount;
/**
* 测试变电站数量
*/
private Integer testSubstaionNum;
/**
* 在运变电站数量
*/
private Integer runSubstationNum;
/**
* 监测变电站数量
*/
private Integer monitorSubstaionNum;
/**
* 在线监测点数
*/
private Integer onlineMonitorNum;
/**
* 覆盖率
*/
private Double coverageRate;
/**
* 监测率
*/
private Double monitoringRate;
/**
* 统计时间
*/
private String statisticalDate;
/**
* 统计类型(01:年 02:月 03:日)
*/
private String statisticalType;
}

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 UploadParam extends BaseParam {
@ApiModelProperty("单位id")
@NotBlank(message = "单位id不可为空")
private String orgId;
}

View File

@@ -123,5 +123,10 @@ public class RUploadEvaluationDataD {
@MppMultiId @MppMultiId
private String voltageLevel; private String voltageLevel;
/**
* 上送状态(0:未上送 1:已上送)
*/
private Integer uploadStatus;
} }

View File

@@ -125,5 +125,8 @@ public class RUploadPointStatisticalDataD {
@MppMultiId @MppMultiId
private String distributionFlag; private String distributionFlag;
/**
* 上送状态(0:未上送 1:已上送)
*/
private Integer uploadStatus;
} }

View File

@@ -98,7 +98,7 @@ public class RUploadSubstationStatisticalDataD {
private Double monitoringRate; private Double monitoringRate;
/** /**
* 统计月份 * 统计时间
*/ */
@MppMultiId @MppMultiId
private String statisticalDate; private String statisticalDate;
@@ -109,5 +109,8 @@ public class RUploadSubstationStatisticalDataD {
@MppMultiId @MppMultiId
private String statisticalType; private String statisticalType;
/**
* 上送状态(0:未上送 1:已上送)
*/
private Integer uploadStatus;
} }

View File

@@ -0,0 +1,66 @@
package com.njcn.harmonic.pojo.vo.upload;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/12/14 11:03
*/
@Data
public class UploadEvaluationDataVo {
@ApiModelProperty("id")
private String id;
@ApiModelProperty("省级单位id")
private String provinceId;
@ApiModelProperty("省级单位名称")
private String provinceName;
@ApiModelProperty("市级单位id")
private String cityId;
@ApiModelProperty("市级单位名称")
private String cityName;
@ApiModelProperty("县级单位id")
private String countyId;
@ApiModelProperty("县级单位名称")
private String countyName;
@ApiModelProperty("谐波次数(次数应取2-50) 没有次数的则为0")
private Integer harmonicNum;
@ApiModelProperty("指标类型(01:电压 02:长时间闪变 03:三相电压不平衡 04:电压总谐波畸变率 05:各次谐波电压 06:负序电流)")
private String indexType;
@ApiModelProperty("监测母线数量")
private Integer monitorBusNum = 0;
@ApiModelProperty("母线监测率(%)")
private Double monitorBusRate = 0.0d;
@ApiModelProperty("在运母线数量")
private Integer onlineBusNum = 0;
@ApiModelProperty("均值 3.1415926处理为暂未数据")
private Double avgValue;
@ApiModelProperty("标准差 3.1415926处理为暂未数据")
private Double standardDeviation;
@ApiModelProperty("电压等级 前端根据字典转换对应中文")
private String voltageLevel;
@ApiModelProperty("统计日期")
private String statisticalDate;
@ApiModelProperty("上送状态(0:未上送 1:已上送)")
private Integer uploadStatus;
}

View File

@@ -0,0 +1,70 @@
package com.njcn.harmonic.pojo.vo.upload;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/12/14 11:03
*/
@Data
public class UploadPointStatisticalDataVo {
@ApiModelProperty("id")
private String id;
@ApiModelProperty("省级单位id")
private String provinceId;
@ApiModelProperty("省级单位名称")
private String provinceName;
@ApiModelProperty("市级单位id")
private String cityId;
@ApiModelProperty("市级单位名称")
private String cityName;
@ApiModelProperty("县级单位id")
private String countyId;
@ApiModelProperty("县级单位名称")
private String countyName;
@ApiModelProperty("在运监测终端数量")
private Integer runTerminalNum;
@ApiModelProperty("在线监测点个数")
private Integer onlineMonitorNum;
@ApiModelProperty("在运监测点个数")
private Integer runMonitorNum;
@ApiModelProperty("监测点在线率%")
private Double onlineMonitorRate;
@ApiModelProperty("数据应收数")
private Integer expectCollectNum;
@ApiModelProperty("数据实收数")
private Integer actualCollectNum;
@ApiModelProperty("完整率%")
private Double dataFullRate;
@ApiModelProperty("所属站别")
private String stationType;
@ApiModelProperty("所属站别下的监测点个数")
private Integer stationMonitorNum;
@ApiModelProperty("统计日期")
private String statisticalDate;
@ApiModelProperty("上送状态(0:未上送 1:已上送)")
private Integer uploadStatus;
}

View File

@@ -0,0 +1,64 @@
package com.njcn.harmonic.pojo.vo.upload;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/12/14 11:26
*/
@Data
public class UploadSubstationStatisticalDataVo {
@ApiModelProperty("id")
private String id;
@ApiModelProperty("省级单位id")
private String provinceId;
@ApiModelProperty("省级单位名称")
private String provinceName;
@ApiModelProperty("市级单位id")
private String cityId;
@ApiModelProperty("市级单位名称")
private String cityName;
@ApiModelProperty("县级单位id")
private String countyId;
@ApiModelProperty("县级单位名称")
private String countyName;
@ApiModelProperty("变电站总数量")
private Integer substationCount;
@ApiModelProperty("测试变电站数量")
private Integer testSubstaionNum;
@ApiModelProperty("在运变电站数量")
private Integer runSubstationNum;
@ApiModelProperty("监测变电站数量")
private Integer monitorSubstaionNum;
@ApiModelProperty("在线监测点数")
private Integer onlineMonitorNum;
@ApiModelProperty("覆盖率%")
private Double coverageRate;
@ApiModelProperty("监测率%")
private Double monitoringRate;
@ApiModelProperty("统计日期")
private String statisticalDate;
@ApiModelProperty("上送状态(0:未上送 1:已上送)")
private Integer uploadStatus;
}

View File

@@ -0,0 +1,60 @@
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.UploadParam;
import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo;
import com.njcn.harmonic.service.upload.IEvaluationDataService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
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.*;
/**
* 类的介绍:国网指标数据上送
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/12/7 9:05
*/
@Validated
@Slf4j
@RestController
@RequestMapping("/upload")
@Api(tags = "国网指标数据上送")
@AllArgsConstructor
public class EvaluationDataController extends BaseController {
private final IEvaluationDataService evaluationDataService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getEvaluationData")
@ApiOperation("查询母线基准水平评估数据")
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
public HttpResult<Page<UploadEvaluationDataVo>> getEvaluationData(@RequestBody UploadParam param) {
String methodDescribe = getMethodDescribe("getEvaluationData");
LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, param);
Page<UploadEvaluationDataVo> list = evaluationDataService.getEvaluationData(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/uploadEvaluationData")
@ApiOperation("国网上送-母线基准水平评估数据")
@ApiImplicitParam(name = "time", value = "时间", required = true)
public HttpResult<String> uploadEvaluationData(@RequestParam("time") String time) {
String methodDescribe = getMethodDescribe("uploadEvaluationData");
LogUtil.njcnDebug(log, "{},时间:{}", methodDescribe, time);
String result = evaluationDataService.uploadEvaluationData(time);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -1,12 +1,15 @@
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.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; 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.service.upload.PointStatisticalDataService; import com.njcn.harmonic.pojo.param.UploadParam;
import com.njcn.harmonic.pojo.vo.upload.UploadPointStatisticalDataVo;
import com.njcn.harmonic.service.upload.IPointStatisticalDataService;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -14,10 +17,7 @@ import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
* 类的介绍:国网指标数据上送 * 类的介绍:国网指标数据上送
@@ -34,18 +34,28 @@ import org.springframework.web.bind.annotation.RestController;
@AllArgsConstructor @AllArgsConstructor
public class PointStatisticalDataController extends BaseController { public class PointStatisticalDataController extends BaseController {
private final PointStatisticalDataService pointStatisticalDataService; private final IPointStatisticalDataService pointStatisticalDataService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/statisticalCreate") @PostMapping("/getPointStatisticalData")
@ApiOperation("主配网监测点统计数据(2.4.1.17)") @ApiOperation("查询主配网监测点统计数据")
@ApiImplicitParam(name = "param", value = "实体参数", required = true) @ApiImplicitParam(name = "param", value = "实体参数", required = true)
public HttpResult<Object> statisticalCreate(@RequestBody Object param) { public HttpResult<Page<UploadPointStatisticalDataVo>> getPointStatisticalData(@RequestBody UploadParam param) {
String methodDescribe = getMethodDescribe("statisticalCreate"); String methodDescribe = getMethodDescribe("getPointStatisticalData");
LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, param); LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, param);
pointStatisticalDataService.getPointStatisticalData(param); Page<UploadPointStatisticalDataVo> list = pointStatisticalDataService.getPointStatisticalData(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/uploadPointStatisticalData")
@ApiOperation("国网上送-主配网监测点统计数据")
@ApiImplicitParam(name = "time", value = "时间", required = true)
public HttpResult<String> uploadPointStatisticalData(@RequestParam("time") String time) {
String methodDescribe = getMethodDescribe("uploadPointStatisticalData");
LogUtil.njcnDebug(log, "{},时间:{}", methodDescribe, time);
String result = pointStatisticalDataService.uploadPointStatisticalData(time);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
} }

View File

@@ -0,0 +1,60 @@
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.UploadParam;
import com.njcn.harmonic.pojo.vo.upload.UploadSubstationStatisticalDataVo;
import com.njcn.harmonic.service.upload.ISubstationStatisticalDataService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
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.*;
/**
* 类的介绍:国网指标数据上送
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/12/7 9:05
*/
@Validated
@Slf4j
@RestController
@RequestMapping("/upload")
@Api(tags = "国网指标数据上送")
@AllArgsConstructor
public class SubstationStatisticalDataController extends BaseController {
private final ISubstationStatisticalDataService substationStatisticalDataService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getSubstationStatisticalData")
@ApiOperation("查询变电站监测统计数据")
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
public HttpResult<Page<UploadSubstationStatisticalDataVo>> getSubstationStatisticalData(@RequestBody UploadParam param) {
String methodDescribe = getMethodDescribe("getSubstationStatisticalData");
LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, param);
Page<UploadSubstationStatisticalDataVo> list = substationStatisticalDataService.getSubstationStatisticalData(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/uploadSubstationStatisticalData")
@ApiOperation("国网上送-变电站监测统计数据")
@ApiImplicitParam(name = "time", value = "时间", required = true)
public HttpResult<String> uploadSubstationStatisticalData(@RequestParam("time") String time) {
String methodDescribe = getMethodDescribe("uploadSubstationStatisticalData");
LogUtil.njcnDebug(log, "{},时间:{}", methodDescribe, time);
String result = substationStatisticalDataService.uploadSubstationStatisticalData(time);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -0,0 +1,16 @@
package com.njcn.harmonic.mapper.upload;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
/**
* <p>
* 电能质量基准水平评估数据-日表 Mapper 接口
* </p>
*
* @author xuyang
* @since 2023-12-12
*/
public interface RUploadEvaluationDataDMapper extends BaseMapper<RUploadEvaluationDataD> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.harmonic.mapper.upload;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD;
/**
* <p>
* 主配网监测点统计数据-日表 Mapper 接口
* </p>
*
* @author xuyang
* @since 2023-12-07
*/
public interface RUploadPointStatisticalDataDMapper extends BaseMapper<RUploadPointStatisticalDataD> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.harmonic.mapper.upload;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.harmonic.pojo.po.upload.RUploadSubstationStatisticalDataD;
/**
* <p>
* 主配网变电站监测统计数据-日表 Mapper 接口
* </p>
*
* @author xuyang
* @since 2023-12-08
*/
public interface RUploadSubstationStatisticalDataDMapper extends BaseMapper<RUploadSubstationStatisticalDataD> {
}

View File

@@ -0,0 +1,31 @@
package com.njcn.harmonic.service.upload;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.harmonic.pojo.param.UploadParam;
import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo;
/**
* <p>
* 电能质量基准水平评估数据-日表 服务类
* </p>
*
* @author xuyang
* @since 2023-12-12
*/
public interface IEvaluationDataService extends IService<RUploadEvaluationDataD> {
/**
* 2.4.1.8接收电能质量基准水平评估数据接口
* @param param
*/
Page<UploadEvaluationDataVo> getEvaluationData(UploadParam param);
/**
* 数据上送接口
* @param time
*/
String uploadEvaluationData(String time);
}

View File

@@ -0,0 +1,26 @@
package com.njcn.harmonic.service.upload;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.harmonic.pojo.param.UploadParam;
import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD;
import com.njcn.harmonic.pojo.vo.upload.UploadPointStatisticalDataVo;
/**
* @author xuyang
*/
public interface IPointStatisticalDataService extends IService<RUploadPointStatisticalDataD> {
/**
* 2.4.1.17接收电能质量主配网监测点统计数据接口
* @param param
*/
Page<UploadPointStatisticalDataVo> getPointStatisticalData(UploadParam param);
/**
* 数据上送接口
* @param time
*/
String uploadPointStatisticalData(String time);
}

View File

@@ -0,0 +1,30 @@
package com.njcn.harmonic.service.upload;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.harmonic.pojo.param.UploadParam;
import com.njcn.harmonic.pojo.po.upload.RUploadSubstationStatisticalDataD;
import com.njcn.harmonic.pojo.vo.upload.UploadSubstationStatisticalDataVo;
/**
* <p>
* 主配网变电站监测统计数据-日表 服务类
* </p>
*
* @author xuyang
* @since 2023-12-08
*/
public interface ISubstationStatisticalDataService extends IService<RUploadSubstationStatisticalDataD> {
/**
* 2.4.1.19接收电能质量变电站监测统计数据接口
* @param param
*/
Page<UploadSubstationStatisticalDataVo> getSubstationStatisticalData(UploadParam param);
/**
* 数据上送接口
* @param time
*/
String uploadSubstationStatisticalData(String time);
}

View File

@@ -1,14 +0,0 @@
package com.njcn.harmonic.service.upload;
/**
* @author xuyang
*/
public interface PointStatisticalDataService {
/**
* 2.4.1.17接收电能质量主配网监测点统计数据接口
* @param param
*/
void getPointStatisticalData(Object param);
}

View File

@@ -1,21 +1,167 @@
package com.njcn.harmonic.service.upload.impl; package com.njcn.harmonic.service.upload.impl;
import com.njcn.harmonic.service.upload.PointStatisticalDataService; import cn.hutool.core.bean.BeanUtil;
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.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.harmonic.mapper.upload.RUploadPointStatisticalDataDMapper;
import com.njcn.harmonic.pojo.dto.upload.MonitorStatisticalDTO;
import com.njcn.harmonic.pojo.param.UploadParam;
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.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import com.njcn.web.enums.GWSendEnum;
import com.njcn.web.factory.PageFactory;
import com.njcn.web.pojo.param.SendParam;
import com.njcn.web.utils.GwSendUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/** /**
* @author xuyang * @author xuyang
*/ */
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
public class PointStatisticalDataServiceImpl implements PointStatisticalDataService { public class PointStatisticalDataServiceImpl extends ServiceImpl<RUploadPointStatisticalDataDMapper, RUploadPointStatisticalDataD> implements IPointStatisticalDataService {
private final DeptFeignClient deptFeignClient;
@Override @Override
public void getPointStatisticalData(Object param) { public Page<UploadPointStatisticalDataVo> getPointStatisticalData(UploadParam param) {
LambdaQueryWrapper<RUploadPointStatisticalDataD> lambdaQueryWrapper = getDeptLevel(param);
//默认按照省名称排序
lambdaQueryWrapper.orderByDesc(RUploadPointStatisticalDataD::getProvinceName);
Page<RUploadPointStatisticalDataD> page = this.page(new Page<>(PageFactory.getPageNum(param), PageFactory.getPageSize(param)), lambdaQueryWrapper);
List<UploadPointStatisticalDataVo> voList = BeanUtil.copyToList(page.getRecords(), UploadPointStatisticalDataVo.class);
Page<UploadPointStatisticalDataVo> pageVo = new Page<>();
pageVo.setTotal(page.getTotal());
pageVo.setPages(page.getPages());
pageVo.setSize(page.getSize());
pageVo.setRecords(voList);
return pageVo;
}
@Override
public String uploadPointStatisticalData(String time) {
List<RUploadPointStatisticalDataD> list = this.lambdaQuery()
.eq(RUploadPointStatisticalDataD::getStatisticalDate,time)
.eq(RUploadPointStatisticalDataD::getUploadStatus,0).list();
List<MonitorStatisticalDTO> dtoList = BeanUtil.copyToList(list, MonitorStatisticalDTO.class);
//以尺寸100分片
List<List<MonitorStatisticalDTO>> pendingIds = ListUtils.partition(dtoList, 100);
//分片上传
for (int i = 0; i < pendingIds.size(); i++) {
SendParam param = new SendParam();
param.setStats(pendingIds.get(i));
param.setStatisticalDate(time);
//上送数据
Map<String, String> send = GwSendUtil.send(param, GWSendEnum.POINT_STATISTICAL_DATA);
//获取返回结果
List<String> l = pendingIds.get(i).stream().map(MonitorStatisticalDTO::getId).collect(Collectors.toList());
returnInformation(i,l,send);
}
return "上送成功:成功数据" + list.size() + "";
}
/**
* 获取当前单位的层级
*/
public LambdaQueryWrapper<RUploadPointStatisticalDataD> getDeptLevel(UploadParam param) {
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<>();
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());
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());
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());
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());
break;
default:
break;
}
return lambdaQueryWrapper;
}
/**
* 国网上送返回信息
*
* @param step 分片上传当前阶段
* @param ids 分片数据
* @param send 上送结果
* @return
*/
private void returnInformation(Integer step, List<String> ids, Map<String, String> send) {
if (send.containsKey("succeed")) {
String succeed = send.get("succeed");
if (succeed.contains("\\\"")) {
succeed = succeed.replace("\\\"", "\"");
}
Map mapData = JSON.parseObject(succeed, Map.class);
String status = mapData.get("status").toString();
if ("000000".equals(status)) {
//修改数据上送状态
updateState(ids);
String result = mapData.get("result").toString();
Map mapCount = JSON.parseObject(result, Map.class);
String count = mapCount.get("count").toString();
} else {
String errors = mapData.get("errors").toString();
int start = step * 100;
int end = (step+1) * 100;
throw new BusinessException("上送"+start+"条至"+end+"条数据,上送失败:" + status + "_" + errors);
}
} else {
throw new BusinessException("当前时间段国网上送请求过多,请稍后再试");
}
}
/**
* 修改上送信息状态
* @param ids id集合
*/
private void updateState(List<String> ids) {
LambdaUpdateWrapper<RUploadPointStatisticalDataD> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.in(RUploadPointStatisticalDataD::getId, ids)
.set(RUploadPointStatisticalDataD::getUploadStatus, 1);
this.update(lambdaUpdateWrapper);
} }
} }

View File

@@ -0,0 +1,182 @@
package com.njcn.harmonic.service.upload.impl;
import cn.hutool.core.bean.BeanUtil;
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.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.harmonic.mapper.upload.RUploadEvaluationDataDMapper;
import com.njcn.harmonic.pojo.dto.upload.PqEvaluationCreateDTO;
import com.njcn.harmonic.pojo.param.UploadParam;
import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo;
import com.njcn.harmonic.service.upload.IEvaluationDataService;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import com.njcn.web.enums.GWSendEnum;
import com.njcn.web.factory.PageFactory;
import com.njcn.web.pojo.param.SendParam;
import com.njcn.web.utils.GwSendUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* <p>
* 电能质量基准水平评估数据-日表 服务实现类
* </p>
*
* @author xuyang
* @since 2023-12-12
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDataDMapper, RUploadEvaluationDataD> implements IEvaluationDataService {
private final DeptFeignClient deptFeignClient;
@Override
public Page<UploadEvaluationDataVo> getEvaluationData(UploadParam param) {
LambdaQueryWrapper<RUploadEvaluationDataD> lambdaQueryWrapper = getDeptLevel(param);
//默认按照省名称排序
lambdaQueryWrapper.orderByDesc(RUploadEvaluationDataD::getProvinceName);
Page<RUploadEvaluationDataD> page = this.page(new Page<>(PageFactory.getPageNum(param), PageFactory.getPageSize(param)), lambdaQueryWrapper);
List<UploadEvaluationDataVo> voList = BeanUtil.copyToList(page.getRecords(), UploadEvaluationDataVo.class);
Page<UploadEvaluationDataVo> pageVo = new Page<>();
pageVo.setTotal(page.getTotal());
pageVo.setPages(page.getPages());
pageVo.setSize(page.getSize());
pageVo.setRecords(voList);
return pageVo;
}
@Override
public String uploadEvaluationData(String time) {
List<RUploadEvaluationDataD> list = this.lambdaQuery()
.eq(RUploadEvaluationDataD::getStatisticalDate,time)
.eq(RUploadEvaluationDataD::getUploadStatus,0).list();
List<PqEvaluationCreateDTO> dtoList = BeanUtil.copyToList(list, PqEvaluationCreateDTO.class);
//以尺寸100分片
List<List<PqEvaluationCreateDTO>> pendingIds = ListUtils.partition(dtoList, 100);
//分片上传
for (int i = 0; i < pendingIds.size(); i++) {
//处理数据
List<PqEvaluationCreateDTO> l1 = pendingIds.get(i).stream().map(item->{
if (Objects.equals(item.getAvgValue(),3.1415926)){
item.setAvgValue(0d);
}
if (Objects.equals(item.getStandardDeviation(),3.1415926)){
item.setStandardDeviation(0d);
}
return item;
}).collect(Collectors.toList());
//组装数据
SendParam param = new SendParam();
param.setStats(l1);
param.setStatisticalDate(time);
//上送数据
Map<String, String> send = GwSendUtil.send(param, GWSendEnum.EVALUATION_DATA);
//获取返回结果
List<String> l = pendingIds.get(i).stream().map(PqEvaluationCreateDTO::getId).collect(Collectors.toList());
returnInformation(i,l,send);
}
return "上送成功:成功数据" + list.size() + "";
}
/**
* 获取当前单位的层级
*/
public LambdaQueryWrapper<RUploadEvaluationDataD> getDeptLevel(UploadParam param) {
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<>();
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());
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());
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());
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());
break;
default:
break;
}
return lambdaQueryWrapper;
}
/**
* 国网上送返回信息
*
* @param step 分片上传当前阶段
* @param ids 分片数据
* @param send 上送结果
* @return
*/
private void returnInformation(Integer step, List<String> ids, Map<String, String> send) {
if (send.containsKey("succeed")) {
String succeed = send.get("succeed");
if (succeed.contains("\\\"")) {
succeed = succeed.replace("\\\"", "\"");
}
Map mapData = JSON.parseObject(succeed, Map.class);
String status = mapData.get("status").toString();
if ("000000".equals(status)) {
//修改数据上送状态
updateState(ids);
String result = mapData.get("result").toString();
Map mapCount = JSON.parseObject(result, Map.class);
String count = mapCount.get("count").toString();
} else {
String errors = mapData.get("errors").toString();
int start = step * 100;
int end = (step+1) * 100;
throw new BusinessException("上送"+start+"条至"+end+"条数据,上送失败:" + status + "_" + errors);
}
} else {
throw new BusinessException("当前时间段国网上送请求过多,请稍后再试");
}
}
/**
* 修改上送信息状态
* @param ids id集合
*/
private void updateState(List<String> ids) {
LambdaUpdateWrapper<RUploadEvaluationDataD> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.in(RUploadEvaluationDataD::getId, ids)
.set(RUploadEvaluationDataD::getUploadStatus, 1);
this.update(lambdaUpdateWrapper);
}
}

View File

@@ -0,0 +1,171 @@
package com.njcn.harmonic.service.upload.impl;
import cn.hutool.core.bean.BeanUtil;
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.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.exception.BusinessException;
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.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.UploadPointStatisticalDataVo;
import com.njcn.harmonic.pojo.vo.upload.UploadSubstationStatisticalDataVo;
import com.njcn.harmonic.service.upload.ISubstationStatisticalDataService;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import com.njcn.web.enums.GWSendEnum;
import com.njcn.web.factory.PageFactory;
import com.njcn.web.pojo.param.SendParam;
import com.njcn.web.utils.GwSendUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* <p>
* 主配网变电站监测统计数据-日表 服务实现类
* </p>
*
* @author xuyang
* @since 2023-12-08
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class RSubstationStatisticalDataServiceImpl extends ServiceImpl<RUploadSubstationStatisticalDataDMapper, RUploadSubstationStatisticalDataD> implements ISubstationStatisticalDataService {
private final DeptFeignClient deptFeignClient;
@Override
public Page<UploadSubstationStatisticalDataVo> getSubstationStatisticalData(UploadParam param) {
LambdaQueryWrapper<RUploadSubstationStatisticalDataD> lambdaQueryWrapper = getDeptLevel(param);
//默认按照省名称排序
lambdaQueryWrapper.orderByDesc(RUploadSubstationStatisticalDataD::getProvinceName);
Page<RUploadSubstationStatisticalDataD> page = this.page(new Page<>(PageFactory.getPageNum(param), PageFactory.getPageSize(param)), lambdaQueryWrapper);
List<UploadSubstationStatisticalDataVo> voList = BeanUtil.copyToList(page.getRecords(), UploadSubstationStatisticalDataVo.class);
Page<UploadSubstationStatisticalDataVo> pageVo = new Page<>();
pageVo.setTotal(page.getTotal());
pageVo.setPages(page.getPages());
pageVo.setSize(page.getSize());
pageVo.setRecords(voList);
return pageVo;
}
@Override
public String uploadSubstationStatisticalData(String time) {
List<RUploadSubstationStatisticalDataD> list = this.lambdaQuery()
.eq(RUploadSubstationStatisticalDataD::getStatisticalDate,time)
.eq(RUploadSubstationStatisticalDataD::getUploadStatus,0).list();
List<SubstationQualityStatisticsDTO> dtoList = BeanUtil.copyToList(list, SubstationQualityStatisticsDTO.class);
//以尺寸100分片
List<List<SubstationQualityStatisticsDTO>> pendingIds = ListUtils.partition(dtoList, 100);
//分片上传
for (int i = 0; i < pendingIds.size(); i++) {
SendParam param = new SendParam();
param.setStats(pendingIds.get(i));
param.setStatisticalDate(time);
//上送数据
Map<String, String> send = GwSendUtil.send(param, GWSendEnum.SUBSTATION_STATISTICAL_DATA);
//获取返回结果
List<String> l = pendingIds.get(i).stream().map(SubstationQualityStatisticsDTO::getId).collect(Collectors.toList());
returnInformation(i,l,send);
}
return "上送成功:成功数据" + list.size() + "";
}
/**
* 获取当前单位的层级
*/
public LambdaQueryWrapper<RUploadSubstationStatisticalDataD> getDeptLevel(UploadParam param) {
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<>();
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());
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());
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());
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());
break;
default:
break;
}
return lambdaQueryWrapper;
}
/**
* 国网上送返回信息
*
* @param step 分片上传当前阶段
* @param ids 分片数据
* @param send 上送结果
* @return
*/
private void returnInformation(Integer step, List<String> ids, Map<String, String> send) {
if (send.containsKey("succeed")) {
String succeed = send.get("succeed");
if (succeed.contains("\\\"")) {
succeed = succeed.replace("\\\"", "\"");
}
Map mapData = JSON.parseObject(succeed, Map.class);
String status = mapData.get("status").toString();
if ("000000".equals(status)) {
//修改数据上送状态
updateState(ids);
String result = mapData.get("result").toString();
Map mapCount = JSON.parseObject(result, Map.class);
String count = mapCount.get("count").toString();
} else {
String errors = mapData.get("errors").toString();
int start = step * 100;
int end = (step+1) * 100;
throw new BusinessException("上送"+start+"条至"+end+"条数据,上送失败:" + status + "_" + errors);
}
} else {
throw new BusinessException("当前时间段国网上送请求过多,请稍后再试");
}
}
/**
* 修改上送信息状态
* @param ids id集合
*/
private void updateState(List<String> ids) {
LambdaUpdateWrapper<RUploadSubstationStatisticalDataD> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.in(RUploadSubstationStatisticalDataD::getId, ids)
.set(RUploadSubstationStatisticalDataD::getUploadStatus, 1);
this.update(lambdaUpdateWrapper);
}
}

View File

@@ -53,6 +53,12 @@ public enum UploadEnum {
DATA_SOURCES_01("01","仅在线监测"), DATA_SOURCES_01("01","仅在线监测"),
DATA_SOURCES_02("02","在线监测与现场测试"), DATA_SOURCES_02("02","在线监测与现场测试"),
/**
* 上送状态(0:未上送 1:已上送)
*/
UPLOAD_STATUS_0("0","未上送"),
UPLOAD_STATUS_1("1","已上送"),
; ;
private final String code; private final String code;

View File

@@ -96,6 +96,7 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
rUploadEvaluationDataD.setDataSources(UploadEnum.DATA_SOURCES_01.getCode()); rUploadEvaluationDataD.setDataSources(UploadEnum.DATA_SOURCES_01.getCode());
rUploadEvaluationDataD.setStatisticalDate(calculatedParam.getDataDate()); rUploadEvaluationDataD.setStatisticalDate(calculatedParam.getDataDate());
rUploadEvaluationDataD.setStatisticalType(UploadEnum.STATISTICAL_TYPE_03.getCode()); rUploadEvaluationDataD.setStatisticalType(UploadEnum.STATISTICAL_TYPE_03.getCode());
rUploadEvaluationDataD.setUploadStatus(Integer.parseInt(UploadEnum.UPLOAD_STATUS_0.getCode()));
judgeLevel(item.getDeptLevel(),rUploadEvaluationDataD,item.getUnitId(),item.getUnitName(),deptList,deptMap); judgeLevel(item.getDeptLevel(),rUploadEvaluationDataD,item.getUnitId(),item.getUnitName(),deptList,deptMap);
//电压 //电压
RUploadEvaluationDataD dto1 = channelData(rUploadEvaluationDataD,item2.getV(),UploadEnum.INDEX_TYPE_01.getCode(),0,item2.getVoltageType(),dto); RUploadEvaluationDataD dto1 = channelData(rUploadEvaluationDataD,item2.getV(),UploadEnum.INDEX_TYPE_01.getCode(),0,item2.getVoltageType(),dto);
@@ -183,7 +184,7 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
Map<String, List<GeneratrixWire>> map2 = list3.stream().collect(Collectors.groupingBy(GeneratrixWire::getScale)); Map<String, List<GeneratrixWire>> map2 = list3.stream().collect(Collectors.groupingBy(GeneratrixWire::getScale));
map2.forEach((k1,v1)->{ map2.forEach((k1,v1)->{
BusBarDto.VoltageChild voltageChild = new BusBarDto.VoltageChild(); BusBarDto.VoltageChild voltageChild = new BusBarDto.VoltageChild();
voltageChild.setVoltageLevel(getVoltage(k1)); voltageChild.setVoltageLevel(k1);
voltageChild.setMonitorBusNum(v1.size()); voltageChild.setMonitorBusNum(v1.size());
List<GeneratrixWire> list4 = v1.stream().filter(o->online.contains(o.getId())).collect(Collectors.toList()); List<GeneratrixWire> list4 = v1.stream().filter(o->online.contains(o.getId())).collect(Collectors.toList());
voltageChild.setOnlineBusNum(list4.size()); voltageChild.setOnlineBusNum(list4.size());
@@ -246,7 +247,7 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
List<BusBarDto.VoltageChild> list = dto2.getVoltageChild(); List<BusBarDto.VoltageChild> list = dto2.getVoltageChild();
if (CollectionUtil.isNotEmpty(list)){ if (CollectionUtil.isNotEmpty(list)){
list.forEach(item->{ list.forEach(item->{
if (Objects.equals(item.getVoltageLevel(),this.getVoltage(voltage))){ if (Objects.equals(item.getVoltageLevel(),voltage)){
dto.setMonitorBusNum(item.getMonitorBusNum()); dto.setMonitorBusNum(item.getMonitorBusNum());
dto.setOnlineBusNum(item.getOnlineBusNum()); dto.setOnlineBusNum(item.getOnlineBusNum());
dto.setMonitorBusRate(item.getMonitorRate()); dto.setMonitorBusRate(item.getMonitorRate());
@@ -294,7 +295,7 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
dto.setIndexType(indexType); dto.setIndexType(indexType);
dto.setHarmonicNum(harmonicNum); dto.setHarmonicNum(harmonicNum);
dto.setStandardDeviation(value==3.1415926?3.1415926:0d); dto.setStandardDeviation(value==3.1415926?3.1415926:0d);
dto.setVoltageLevel(this.getVoltage(voltage)); dto.setVoltageLevel(voltage);
dto.setMonitorBusNum(rUploadEvaluationDataD2.getMonitorBusNum()); dto.setMonitorBusNum(rUploadEvaluationDataD2.getMonitorBusNum());
dto.setOnlineBusNum(rUploadEvaluationDataD2.getOnlineBusNum()); dto.setOnlineBusNum(rUploadEvaluationDataD2.getOnlineBusNum());
dto.setMonitorBusRate(rUploadEvaluationDataD2.getMonitorBusRate()); dto.setMonitorBusRate(rUploadEvaluationDataD2.getMonitorBusRate());
@@ -312,7 +313,7 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
dto.setIndexType(indexType); dto.setIndexType(indexType);
dto.setHarmonicNum(i+2); dto.setHarmonicNum(i+2);
dto.setStandardDeviation(valueList.get(i)==3.1415926?3.1415926:0d); dto.setStandardDeviation(valueList.get(i)==3.1415926?3.1415926:0d);
dto.setVoltageLevel(this.getVoltage(voltage)); dto.setVoltageLevel(voltage);
dto.setMonitorBusNum(rUploadEvaluationDataD2.getMonitorBusNum()); dto.setMonitorBusNum(rUploadEvaluationDataD2.getMonitorBusNum());
dto.setOnlineBusNum(rUploadEvaluationDataD2.getOnlineBusNum()); dto.setOnlineBusNum(rUploadEvaluationDataD2.getOnlineBusNum());
dto.setMonitorBusRate(rUploadEvaluationDataD2.getMonitorBusRate()); dto.setMonitorBusRate(rUploadEvaluationDataD2.getMonitorBusRate());

View File

@@ -72,6 +72,7 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
rUploadPointStatisticalDataD.setProvinceName(dept.getName()); rUploadPointStatisticalDataD.setProvinceName(dept.getName());
rUploadPointStatisticalDataD.setStatisticalDate(calculatedParam.getDataDate()); rUploadPointStatisticalDataD.setStatisticalDate(calculatedParam.getDataDate());
rUploadPointStatisticalDataD.setStatisticalType(UploadEnum.STATISTICAL_TYPE_03.getCode()); rUploadPointStatisticalDataD.setStatisticalType(UploadEnum.STATISTICAL_TYPE_03.getCode());
rUploadPointStatisticalDataD.setUploadStatus(Integer.parseInt(UploadEnum.UPLOAD_STATUS_0.getCode()));
//fixme 主配网标识文档中没有,先随便定义一个,后期调整 //fixme 主配网标识文档中没有,先随便定义一个,后期调整
rUploadPointStatisticalDataD.setDistributionFlag(UploadEnum.DISTRIBUTION_FLAG_01.getCode()); rUploadPointStatisticalDataD.setDistributionFlag(UploadEnum.DISTRIBUTION_FLAG_01.getCode());
//fixme over //fixme over

View File

@@ -66,6 +66,7 @@ public class RUploadSubstationStatisticalDataDServiceImpl extends MppServiceImpl
rUploadSubstationStatisticalDataD.setStatisticalType(UploadEnum.STATISTICAL_TYPE_03.getCode()); rUploadSubstationStatisticalDataD.setStatisticalType(UploadEnum.STATISTICAL_TYPE_03.getCode());
rUploadSubstationStatisticalDataD.setProvinceId(dept.getCode()); rUploadSubstationStatisticalDataD.setProvinceId(dept.getCode());
rUploadSubstationStatisticalDataD.setProvinceName(dept.getName()); rUploadSubstationStatisticalDataD.setProvinceName(dept.getName());
rUploadSubstationStatisticalDataD.setUploadStatus(Integer.parseInt(UploadEnum.UPLOAD_STATUS_0.getCode()));
//处理层级关系 && 处理基础数据 //处理层级关系 && 处理基础数据
getDeptLevel(list,rUploadSubstationStatisticalDataD,deptList,deptMap,k,subMap); getDeptLevel(list,rUploadSubstationStatisticalDataD,deptList,deptMap,k,subMap);
result.add(rUploadSubstationStatisticalDataD); result.add(rUploadSubstationStatisticalDataD);