1.河北pms母线中间表接口添加

2.两级贯通接口调整
This commit is contained in:
cdf
2024-05-10 14:29:33 +08:00
parent f9bec14719
commit 0581380f19
44 changed files with 767 additions and 354 deletions

View File

@@ -9,6 +9,9 @@ import com.njcn.common.utils.HttpResultUtil;
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.upload.DimBusBarParam;
import com.njcn.harmonic.pojo.vo.upload.DimBusBarVO;
import com.njcn.harmonic.pojo.vo.upload.PmsHttpResult;
import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo;
import com.njcn.harmonic.service.upload.IEvaluationDataService;
import com.njcn.web.controller.BaseController;
@@ -38,6 +41,7 @@ import org.springframework.web.bind.annotation.RestController;
public class EvaluationDataController extends BaseController {
private final IEvaluationDataService evaluationDataService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getEvaluationData")
@ApiOperation("查询母线基准水平评估数据")
@@ -60,4 +64,7 @@ public class EvaluationDataController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -0,0 +1,50 @@
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.harmonic.pojo.param.upload.DimBusBarParam;
import com.njcn.harmonic.pojo.vo.upload.DimBusBarVO;
import com.njcn.harmonic.pojo.vo.upload.PmsHttpResult;
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.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* pqs
*
* @author cdf
* @date 2024/5/10
*/
@Slf4j
@RestController
@RequestMapping("/IndexAnalysis/BenchmarkLevelEva")
@Api(tags = "基准水平下穿查询")
@AllArgsConstructor
public class EvaluationDownController extends BaseController {
private final IEvaluationDataService evaluationDataService;
/**
* 接收总部基准水平评估在运母线数量详情下穿接口
* @author cdf
* @date 2024/5/9
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getBaseEvaOnlineBusDetail")
@ApiOperation("国网上送-接收总部基准水平评估在运母线数量详情下穿接口")
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
public PmsHttpResult<Page<DimBusBarVO>> getBaseEvaOnlineBusDetail(@RequestBody DimBusBarParam param) {
String methodDescribe = getMethodDescribe("getBaseEvaOnlineBusDetail");
Page<DimBusBarVO> page = evaluationDataService.getBaseEvaOnlineBusDetail(param);
return new PmsHttpResult<>(0, page);
}
}

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.harmonic.mapper.upload.RUploadEvaluationDataDMapper">
<select id="getBaseEvaOnlineBusDetail" resultType="DimBusBarVO">
select
mid.id astId,
mid.Name busName,
mid.voltage_Level busVoltageLevel,
dicVoltage.name busVoltageLevelName,
mid.SectionId cityOrg,
mid.Section cityOrgName,
mid.Run_Status deviceStatus,
station.Power_Id stationId,
station.Power_Name stationName,
station.Voltage_Level stationVoltageLevel
from pms_mid_ledger mid
left join pms_generatrix_wire wire on mid.id = wire.Mid_Bus_Id
left join sys_dict_data dicVoltage on mid.voltage_Level = dicVoltage.id
left join pms_statation_stat station on wire.Station_Id = station.Power_Id
where mid.level = 1
<if test="param.busId!=null and param.busId!='' ">
and mid.id = #{param.busId}
</if>
<if test="param.busName!=null and param.busName!='' ">
and mid.name = #{param.busName}
</if>
<if test="param.busIds!=null and param.busIds.size>0">
and mid.id in
<foreach collection="param.busIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="param.onlineBusIds!=null and param.onlineBusIds.size>0">
and mid.id in
<foreach collection="param.onlineBusIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="param.orgIds!=null and param.orgIds.size>0">
and mid.SectionId in
<foreach collection="param.orgIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="param.deployState!=null and param.deployState!='' ">
and mid.Run_Status = #{param.deployState}
</if>
</select>
</mapper>

View File

@@ -0,0 +1,19 @@
package com.njcn.harmonic.mapper.upload;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticD;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2024-04-17
*/
public interface PmsRunStatisticDMapper extends MppBaseMapper<PmsRunStatisticD> {
}

View File

@@ -0,0 +1,19 @@
package com.njcn.harmonic.mapper.upload;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticM;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2024-04-17
*/
public interface PmsRunStatisticMMapper extends MppBaseMapper<PmsRunStatisticM> {
}

View File

@@ -0,0 +1,19 @@
package com.njcn.harmonic.mapper.upload;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticY;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2024-04-17
*/
public interface PmsRunStatisticYMapper extends MppBaseMapper<PmsRunStatisticY> {
}

View File

@@ -0,0 +1,18 @@
package com.njcn.harmonic.mapper.upload;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.upload.RDimBusUpD;
/**
* <p>
* 母线越限详情 Mapper 接口
* </p>
*
* @author cdf
* @since 2024-05-09
*/
public interface RDimBusUpDMapper extends MppBaseMapper<RDimBusUpD> {
}

View File

@@ -0,0 +1,18 @@
package com.njcn.harmonic.mapper.upload;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.upload.RDimBusUpM;
/**
* <p>
* 母线越限详情 Mapper 接口
* </p>
*
* @author cdf
* @since 2024-05-09
*/
public interface RDimBusUpMMapper extends MppBaseMapper<RDimBusUpM> {
}

View File

@@ -0,0 +1,18 @@
package com.njcn.harmonic.mapper.upload;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.upload.RDimBusUpY;
/**
* <p>
* 母线越限详情 Mapper 接口
* </p>
*
* @author cdf
* @since 2024-05-09
*/
public interface RDimBusUpYMapper extends MppBaseMapper<RDimBusUpY> {
}

View File

@@ -1,7 +1,11 @@
package com.njcn.harmonic.mapper.upload;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.harmonic.pojo.param.upload.DimBusBarParam;
import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
import com.njcn.harmonic.pojo.vo.upload.DimBusBarVO;
import org.apache.ibatis.annotations.Param;
/**
* <p>
@@ -13,4 +17,6 @@ import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
*/
public interface RUploadEvaluationDataDMapper extends BaseMapper<RUploadEvaluationDataD> {
public Page<DimBusBarVO> getBaseEvaOnlineBusDetail(@Param("page") Page<DimBusBarVO> page, @Param("param") DimBusBarParam param);
}

View File

@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.upload.DimBusBarParam;
import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
import com.njcn.harmonic.pojo.vo.upload.DimBusBarVO;
import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo;
/**
@@ -29,4 +31,6 @@ public interface IEvaluationDataService extends IService<RUploadEvaluationDataD>
*/
String uploadEvaluationData(UploadParam param);
Page<DimBusBarVO> getBaseEvaOnlineBusDetail(DimBusBarParam param);
}

View File

@@ -5,18 +5,24 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.harmonic.mapper.upload.RUploadEvaluationDataDMapper;
import com.njcn.harmonic.mapper.upload.*;
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.upload.DimBusBarParam;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticD;
import com.njcn.harmonic.pojo.po.upload.RDimBusUpD;
import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
import com.njcn.harmonic.pojo.vo.upload.DimBusBarVO;
import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo;
import com.njcn.harmonic.service.upload.IEvaluationDataService;
import com.njcn.system.api.DicDataFeignClient;
@@ -33,10 +39,8 @@ import org.apache.commons.collections4.ListUtils;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -56,6 +60,19 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
private final DeptFeignClient deptFeignClient;
private final DicDataFeignClient dicDataFeignClient;
private final PmsRunStatisticDMapper pmsRunStatisticDMapper;
private final PmsRunStatisticMMapper pmsRunStatisticMMapper;
private final PmsRunStatisticYMapper pmsRunStatisticYMapper;
private final RDimBusUpDMapper rDimBusUpDMapper;
private final RDimBusUpMMapper rDimBusUpMMapper;
private final RDimBusUpYMapper rDimBusUpYMapper;
@Override
public Page<UploadEvaluationDataVo> getEvaluationData(UploadDataParam param) {
LambdaQueryWrapper<RUploadEvaluationDataD> lambdaQueryWrapper = this.getDeptLevel(param);
@@ -63,19 +80,19 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
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);
if (CollectionUtil.isNotEmpty(voList)){
voList = voList.stream().peek(item->{
if (!Objects.equals(item.getAvgValue(),3.1415926)){
if (CollectionUtil.isNotEmpty(voList)) {
voList = voList.stream().peek(item -> {
if (!Objects.equals(item.getAvgValue(), 3.1415926)) {
BigDecimal four = BigDecimal.valueOf(item.getAvgValue());
double value = four.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
double value = four.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
item.setAvgValue(value);
} else if (!Objects.equals(item.getStandardDeviation(),3.1415926)){
} else if (!Objects.equals(item.getStandardDeviation(), 3.1415926)) {
BigDecimal four = BigDecimal.valueOf(item.getStandardDeviation());
double value = four.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
double value = four.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
item.setStandardDeviation(value);
}
BigDecimal four = BigDecimal.valueOf(item.getMonitorBusRate());
double value = four.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
double value = four.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
item.setMonitorBusRate(value);
}).collect(Collectors.toList());
}
@@ -93,17 +110,17 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
List<RUploadEvaluationDataD> list;
//指定数据上送,不管之前有没有上送,都重新上送一次
//(预防之前上送过,修改数据后需要再次上送)
if (CollUtil.isNotEmpty(param.getList())){
if (CollUtil.isNotEmpty(param.getList())) {
list = this.lambdaQuery()
.eq(RUploadEvaluationDataD::getComputeDate,param.getTime())
.in(RUploadEvaluationDataD::getId,param.getList())
.eq(RUploadEvaluationDataD::getComputeDate, param.getTime())
.in(RUploadEvaluationDataD::getId, param.getList())
.list();
}
//未指定数据上送,则上送省级数据(包含日、月数据)
else {
list = this.lambdaQuery()
.eq(RUploadEvaluationDataD::getComputeDate,param.getTime())
.in(RUploadEvaluationDataD::getStatisticalLevel, Stream.of("3","4").collect(Collectors.toList()))
.eq(RUploadEvaluationDataD::getComputeDate, param.getTime())
.in(RUploadEvaluationDataD::getStatisticalLevel, Stream.of("3", "4").collect(Collectors.toList()))
.list();
}
@@ -150,11 +167,107 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
Map<String, String> send = GwSendUtil.send(sp, GWSendEnum.EVALUATION);
//获取返回结果
List<String> l = dtoList.stream().map(PqEvaluationCreateDTO::getId).collect(Collectors.toList());
returnInformation(i,l,send);
returnInformation(i, l, send);
}
return "上送成功:成功数据" + list.size() + "";
}
@Override
public Page<DimBusBarVO> getBaseEvaOnlineBusDetail(DimBusBarParam param) {
Dept dept = deptFeignClient.getRootDept().getData();
List<String> temBusIds = new ArrayList<>();
//统计类型不为空,则查询指定统计天数的数据
if (StrUtil.isNotBlank(param.getStatType())) {
//判断日月年不为空时候对应参数不能为空
if (StrUtil.isBlank(param.getStartTime()) || StrUtil.isBlank(param.getEndTime())) {
//TODO 需要抛出异常,抛异常格式需要和总部要求格式一致
}
if (StrUtil.isBlank(param.getNodeId())) {
//没有组织id则认为查询日的省级数据
param.setNodeId(dept.getCode());
}
List<String> orgIds = deptFeignClient.getDepSonSelfCodetByCode(param.getNodeId()).getData();
param.setOrgIds(orgIds);
if (param.getStatType().equals("03")) {
LocalDate day = LocalDate.parse(param.getStartTime());
//具体日期投运,监测台账查询
LambdaQueryWrapper<PmsRunStatisticD> dayLam = new LambdaQueryWrapper<>();
dayLam.eq(PmsRunStatisticD::getStatisticDate, day).in(PmsRunStatisticD::getDeptId, param.getNodeId());
PmsRunStatisticD pmsRunStatisticD = pmsRunStatisticDMapper.selectOne(dayLam);
if (Objects.nonNull(pmsRunStatisticD)) {
if (StrUtil.isNotBlank(param.getDataSource())) {
temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticD.getOnlineBusMidIds().split(StrUtil.COMMA)));
} else {
temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticD.getRunBusIds().split(StrUtil.COMMA)));
}
}
//稳态指标条件筛选
if (StrUtil.isNotBlank(param.getIndexType())) {
QueryWrapper<RDimBusUpD> queryWrapper = new QueryWrapper<>();
this.harmTarget(param, queryWrapper);
queryWrapper.eq("statistic_date", day);
List<RDimBusUpD> rDimBusUpDList = rDimBusUpDMapper.selectList(queryWrapper);
if (CollectionUtil.isEmpty(rDimBusUpDList)) {
return new Page<>();
}
temBusIds = rDimBusUpDList.stream().map(RDimBusUpD::getMidBusId).distinct().collect(Collectors.toList());
}
param.setOnlineBusIds(temBusIds);
} else if (param.getStatType().equals("02")) {
} else if (param.getStatType().equals("01")) {
}
}
return this.baseMapper.getBaseEvaOnlineBusDetail(new Page<>(param.getPageNum(), param.getPageSize()), param);
}
private void harmTarget(DimBusBarParam param, QueryWrapper<RDimBusUpD> queryWrapper) {
//稳态指标条件筛选
String target = "", harmV = "";
switch (param.getIndexType()) {
case "01":
target = "voltage_dev_overtime";
break;
case "02":
target = "flicker_overtime";
break;
case "03":
target = "ubalance_overtime";
break;
case "04":
target = "uaberrance_overtime";
break;
case "05":
target = "harm_v";
break;
}
queryWrapper.select("statistic_date", "phasic_type", "bus_id", "mid_bus_id");
if (CollectionUtil.isNotEmpty(param.getSeqs())) {
queryWrapper.in("phasic_type", param.getSeqs());
}
if (param.getIndexType().equals("05")) {
harmV = "uharm_" + param.getHarmonicNum() + "_overtime";
queryWrapper.gt(harmV, 0);
} else {
queryWrapper.gt(target, 0);
}
}
/**
* 获取当前单位的层级
@@ -191,7 +304,7 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
private String formatBeginMonth(String searchBeginTime, String dataType) {
if (Objects.equals(dataType, "02")) {
return DateUtil.format(DateUtil.beginOfMonth(DateUtil.parse(searchBeginTime, DatePattern.NORM_MONTH_PATTERN)), DatePattern.NORM_MONTH_PATTERN);
} else if (Objects.equals(dataType, "01")){
} else if (Objects.equals(dataType, "01")) {
return DateUtil.format(DateUtil.beginOfMonth(DateUtil.parse(searchBeginTime, DatePattern.NORM_YEAR_PATTERN)), DatePattern.NORM_YEAR_PATTERN);
}
return searchBeginTime;
@@ -221,9 +334,9 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
/**
* 国网上送返回信息
*
* @param step 分片上传当前阶段
* @param ids 分片数据
* @param send 上送结果
* @param step 分片上传当前阶段
* @param ids 分片数据
* @param send 上送结果
* @return
*/
private void returnInformation(Integer step, List<String> ids, Map<String, String> send) {
@@ -243,8 +356,8 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
} else {
String errors = mapData.get("errors").toString();
int start = step * 100;
int end = (step+1) * 100;
throw new BusinessException("上送"+start+"条至"+end+"条数据,上送失败:" + status + "_" + errors);
int end = (step + 1) * 100;
throw new BusinessException("上送" + start + "条至" + end + "条数据,上送失败:" + status + "_" + errors);
}
} else {
throw new BusinessException("当前时间段国网上送请求过多,请稍后再试");
@@ -253,6 +366,7 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
/**
* 修改上送信息状态
*
* @param ids id集合
*/
private void updateState(List<String> ids) {
@@ -268,7 +382,7 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
public String getVoltage(String voltage) {
DictData dictData = dicDataFeignClient.getDicDataById(voltage).getData();
Integer code = dictData.getAlgoDescribe();
if (Objects.isNull(code)){
if (Objects.isNull(code)) {
return "99";
}
return (code < 10) ? "0" + code : String.valueOf(code);