1.pms变电站背景谐波算法
This commit is contained in:
@@ -67,7 +67,7 @@ public class Monitor extends BaseEntity {
|
||||
|
||||
|
||||
/**
|
||||
* 监测线路名称
|
||||
* 监测母线名称
|
||||
*/
|
||||
private String lineName;
|
||||
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
package com.njcn.device.pms.pojo.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
@@ -12,16 +17,19 @@ import java.util.Date;
|
||||
* @since 2022-11-03 14:16:47
|
||||
*/
|
||||
@Data
|
||||
@TableName(value="r_stat_busbar_harmonic_y")
|
||||
public class RStatBusbarHarmonicYPO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**
|
||||
* 母线ID
|
||||
*/
|
||||
@MppMultiId
|
||||
private String busbarId;
|
||||
/**
|
||||
* 生成数据的时间,每年统计一次
|
||||
*/
|
||||
private Date dataDate;
|
||||
@MppMultiId
|
||||
private LocalDate dataDate;
|
||||
/**
|
||||
* 电压有效值最大
|
||||
*/
|
||||
@@ -37,6 +45,7 @@ public class RStatBusbarHarmonicYPO implements Serializable {
|
||||
/**
|
||||
* 电压有效值95概率大值
|
||||
*/
|
||||
@TableField(value = "v_effective_95")
|
||||
private Double vEffective95;
|
||||
/**
|
||||
* 电压总谐波畸变率最大
|
||||
@@ -53,6 +62,7 @@ public class RStatBusbarHarmonicYPO implements Serializable {
|
||||
/**
|
||||
* 电压总谐波畸变率95概率大值
|
||||
*/
|
||||
@TableField(value = "v_thd_95")
|
||||
private Double vThd95;
|
||||
/**
|
||||
* 三相电压不平衡最大
|
||||
@@ -69,6 +79,7 @@ public class RStatBusbarHarmonicYPO implements Serializable {
|
||||
/**
|
||||
* 三相电压不平衡95概率大值
|
||||
*/
|
||||
@TableField(value = "unbalance_95")
|
||||
private Double unbalance95;
|
||||
/**
|
||||
* 闪变最大
|
||||
@@ -85,6 +96,7 @@ public class RStatBusbarHarmonicYPO implements Serializable {
|
||||
/**
|
||||
* 闪变95概率大值
|
||||
*/
|
||||
@TableField(value = "flicker_95")
|
||||
private Double flicker95;
|
||||
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
@@ -65,7 +66,7 @@ public class RStatBusbarHarmonicYVO implements Serializable {
|
||||
* 生成数据的时间,每年统计一次
|
||||
*/
|
||||
@ApiModelProperty(name = "dataDate", value = "生成数据的时间,每年统计一次")
|
||||
private Date dataDate;
|
||||
private LocalDate dataDate;
|
||||
|
||||
/**
|
||||
* 电压有效最大值
|
||||
|
||||
@@ -363,6 +363,20 @@ public class CommTerminalController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
/**
|
||||
* pms获取指定单位下面的母线以及母线下面的监测点信息
|
||||
* @author cdf
|
||||
* @date 2024/1/26
|
||||
*/
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@GetMapping("/getBusBarAndHisMonitor")
|
||||
@ApiOperation("pms获取指定单位下面的母线以及母线下面的监测点信息")
|
||||
public HttpResult<List<BusBarAndHisMonitorDTO>> getBusBarAndHisMonitor() {
|
||||
String methodDescribe = getMethodDescribe("getBusBarAndHisMonitor");
|
||||
List<BusBarAndHisMonitorDTO> busBarAndHisMonitorDTOList = commTerminalService.getBusBarAndHisMonitor();
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, busBarAndHisMonitorDTOList, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 用于返回pq 还是pms系统
|
||||
|
||||
@@ -281,40 +281,6 @@ public class PmsDistributionMonitorController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 批量同步台区到配网表
|
||||
* @author cdf
|
||||
* @date 2023/7/24
|
||||
*/
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/batchOpDistributionArea")
|
||||
@ApiOperation("批量同步台区到配网表")
|
||||
public HttpResult<Boolean> batchOpDistributionArea() {
|
||||
String methodDescribe = getMethodDescribe("batchOpDistributionArea");
|
||||
boolean result = iDistributionMonitorService.batchOpDistributionArea();
|
||||
if(result){
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 批量给配网监测点录入单位id
|
||||
* @author cdf
|
||||
* @date 2023/9/20
|
||||
*/
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/disMonitorWriteOrgId")
|
||||
@ApiOperation("批量修改配网里的单位")
|
||||
public HttpResult<Boolean> disMonitorWriteOrgId() {
|
||||
String methodDescribe = getMethodDescribe("disMonitorWriteOrgId");
|
||||
iDistributionMonitorService.disMonitorWriteOrgId();
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
|
||||
}
|
||||
|
||||
@ApiOperation(value = "将用户数据导入到配网表中")
|
||||
@PostMapping("/savePmsDistributionUser")
|
||||
public HttpResult<Boolean> savePmsDistributionUser() {
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package com.njcn.device.pms.service.ledgerManger;
|
||||
|
||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.device.biz.pojo.dto.StatisticsMonitor;
|
||||
import com.njcn.device.biz.pojo.dto.*;
|
||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -103,4 +105,7 @@ public interface CommTerminalService {
|
||||
* @date 2023/10/23
|
||||
*/
|
||||
Map<String,String> getCustomDetailByLineId(String id);
|
||||
|
||||
|
||||
List<BusBarAndHisMonitorDTO> getBusBarAndHisMonitor();
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||
import com.njcn.common.pojo.enums.common.ServerEnum;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
@@ -768,4 +769,24 @@ public class CommTerminalServiceImpl implements CommTerminalService {
|
||||
return monitorMapper.getCustomDetailByLineId(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BusBarAndHisMonitorDTO> getBusBarAndHisMonitor() {
|
||||
List<BusBarAndHisMonitorDTO> result = new ArrayList<>();
|
||||
DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_STATE.getName(),DicDataEnum.RUN.getName()).getData();
|
||||
|
||||
LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.select(Monitor::getId,Monitor::getLineId).eq(Monitor::getMonitorState,dictData.getId())
|
||||
.eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode());
|
||||
List<Monitor> monitorList = monitorMapper.selectList(lambdaQueryWrapper);
|
||||
|
||||
Map<String,List<Monitor>> busBarMap = monitorList.stream().collect(Collectors.groupingBy(Monitor::getLineId));
|
||||
busBarMap.forEach((key,val)->{
|
||||
BusBarAndHisMonitorDTO busBarAndHisMonitorDTO = new BusBarAndHisMonitorDTO();
|
||||
busBarAndHisMonitorDTO.setBusBarId(key);
|
||||
busBarAndHisMonitorDTO.setMonitorIds(val.stream().map(Monitor::getId).collect(Collectors.toList()));
|
||||
result.add(busBarAndHisMonitorDTO);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -116,16 +116,6 @@ public interface IDistributionMonitorService extends IMppService<DistributionMon
|
||||
*/
|
||||
List<String> getBaseDisMonitorIds(List<String> orgIds,List<String> monitorSortIds);
|
||||
|
||||
|
||||
/**
|
||||
* 批量同步台区到配网表
|
||||
* @author cdf
|
||||
* @date 2023/7/24
|
||||
*/
|
||||
Boolean batchOpDistributionArea();
|
||||
|
||||
Boolean disMonitorWriteOrgId();
|
||||
|
||||
/**
|
||||
* 批量同步发电用户到配网表
|
||||
* @return
|
||||
|
||||
@@ -464,104 +464,6 @@ public class DistributionMonitorServiceImpl extends MppServiceImpl<DistributionM
|
||||
return distributionMonitorMapper.getBaseDisMonitorIds(orgIds,monitorSortIds);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean batchOpDistributionArea() {
|
||||
TimeInterval timeInterval = new TimeInterval();
|
||||
|
||||
DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_SORT.getName(),DicDataEnum.TWO_LINE.getName()).getData();
|
||||
int count = powerDistributionareaMapper.selectCount(new LambdaQueryWrapper<>());
|
||||
int calCount = 0;
|
||||
if (count > 0) {
|
||||
calCount = count / 10000 + 1;
|
||||
|
||||
for (int i = 0; i < calCount; i++) {
|
||||
int page = i * 10000;
|
||||
List<PowerDistributionarea> powerDistributionareaList = powerDistributionareaMapper.selectList(
|
||||
new LambdaQueryWrapper<PowerDistributionarea>()
|
||||
.select(PowerDistributionarea::getId,
|
||||
PowerDistributionarea::getState,
|
||||
PowerDistributionarea::getVoltageLevel,
|
||||
PowerDistributionarea::getOrgId,
|
||||
PowerDistributionarea::getPowerStationId,
|
||||
PowerDistributionarea::getLineId
|
||||
)
|
||||
.last(true, "limit " + page+ ",10000"));
|
||||
|
||||
List<DistributionMonitor> poList= new ArrayList<>();
|
||||
for(PowerDistributionarea powerDistributionarea:powerDistributionareaList){
|
||||
DistributionMonitor distributionMonitor = new DistributionMonitor();
|
||||
distributionMonitor.setMonitorSort(dictData.getId());
|
||||
distributionMonitor.setMonitorId(powerDistributionarea.getId());
|
||||
distributionMonitor.setOrgId(powerDistributionarea.getOrgId());
|
||||
distributionMonitor.setStatus(DataStateEnum.ENABLE.getCode());
|
||||
distributionMonitor.setMonitorState(powerDistributionarea.getState());
|
||||
distributionMonitor.setVoltageLevel(powerDistributionarea.getVoltageLevel());
|
||||
distributionMonitor.setCreatedDate(LocalDateTime.now());
|
||||
distributionMonitor.setIfPowerUser(0);
|
||||
distributionMonitor.setPowerStationId(powerDistributionarea.getPowerStationId());
|
||||
distributionMonitor.setLineId(powerDistributionarea.getLineId());
|
||||
poList.add(distributionMonitor);
|
||||
|
||||
}
|
||||
this.saveOrUpdateBatchByMultiId(poList);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean disMonitorWriteOrgId() {
|
||||
List<DistributionMonitor> distributionMonitorList = this.list();
|
||||
if(CollectionUtil.isNotEmpty(distributionMonitorList)){
|
||||
Map<String,List<DistributionMonitor>> map = distributionMonitorList.stream().collect(Collectors.groupingBy(DistributionMonitor::getMonitorSort));
|
||||
List<DistributionMonitor> po = new ArrayList<>();
|
||||
|
||||
map.forEach((key,val)->{
|
||||
if(key.equals("78a96acb276a5fe9d6eff737fdf1973f")){
|
||||
List<DistributionMonitor> one = map.get("78a96acb276a5fe9d6eff737fdf1973f");
|
||||
List<String> oneIds = one.stream().map(DistributionMonitor::getMonitorId).distinct().collect(Collectors.toList());
|
||||
List<Monitor> monitorList = monitorMapper.selectList(new LambdaQueryWrapper<Monitor>().in(Monitor::getId,oneIds));
|
||||
|
||||
for(Monitor monitor:monitorList){
|
||||
DistributionMonitor distributionMonitor = new DistributionMonitor();
|
||||
distributionMonitor.setMonitorId(monitor.getId());
|
||||
distributionMonitor.setOrgId(monitor.getOrgId());
|
||||
LambdaUpdateWrapper<DistributionMonitor> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.set(DistributionMonitor::getOrgId,distributionMonitor.getOrgId()).eq(DistributionMonitor::getMonitorId,distributionMonitor.getMonitorId());
|
||||
this.update(updateWrapper);
|
||||
}
|
||||
|
||||
|
||||
}else if(key.equals("a5696acb276a5fe9d6eff74fdf1973f")){
|
||||
List<DistributionMonitor> two = map.get("a5696acb276a5fe9d6eff74fdf1973f");
|
||||
List<String> twoIds = two.stream().map(DistributionMonitor::getMonitorId).distinct().collect(Collectors.toList());
|
||||
List<PowerDistributionarea> monitorList = powerDistributionareaMapper.selectList(new LambdaQueryWrapper<PowerDistributionarea>().in(PowerDistributionarea::getId,twoIds));
|
||||
|
||||
for(PowerDistributionarea monitor:monitorList){
|
||||
DistributionMonitor distributionMonitor = new DistributionMonitor();
|
||||
distributionMonitor.setMonitorId(monitor.getId());
|
||||
distributionMonitor.setOrgId(monitor.getOrgId());
|
||||
LambdaUpdateWrapper<DistributionMonitor> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.set(DistributionMonitor::getOrgId,distributionMonitor.getOrgId()).eq(DistributionMonitor::getMonitorId,distributionMonitor.getMonitorId());
|
||||
this.update(updateWrapper);
|
||||
}
|
||||
|
||||
}else {
|
||||
List<DistributionMonitor> two = map.get("a5696acb276a5fe9d6eff74fdf1973f");
|
||||
List<String> twoIds = two.stream().map(DistributionMonitor::getMonitorId).distinct().collect(Collectors.toList());
|
||||
List<PowerDistributionarea> monitorList = powerDistributionareaMapper.selectList(new LambdaQueryWrapper<PowerDistributionarea>().in(PowerDistributionarea::getId,twoIds));
|
||||
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
|
||||
Reference in New Issue
Block a user