pms代码调整
This commit is contained in:
@@ -64,6 +64,10 @@ public class PowerDistributionareaParam {
|
|||||||
@NotBlank(message = "地区特征不可为空")
|
@NotBlank(message = "地区特征不可为空")
|
||||||
private String regionalism;
|
private String regionalism;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "regionalism", value = "设备地区特征")
|
||||||
|
@NotBlank(message = "设备地区特征不可为空")
|
||||||
|
private String devRegionalism;
|
||||||
|
|
||||||
@ApiModelProperty(name = "ifRuralPowerGrid", value = "是否农网:0-否;1:是")
|
@ApiModelProperty(name = "ifRuralPowerGrid", value = "是否农网:0-否;1:是")
|
||||||
@NotNull(message = "是否农网不可为空")
|
@NotNull(message = "是否农网不可为空")
|
||||||
private Integer ifRuralPowerGrid;
|
private Integer ifRuralPowerGrid;
|
||||||
|
|||||||
@@ -2,9 +2,12 @@ package com.njcn.device.pms.pojo.po;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.njcn.db.bo.BaseEntity;
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
*
|
*
|
||||||
@@ -86,6 +89,12 @@ public class PowerDistributionarea extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String regionalism;
|
private String regionalism;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备地区特征(字典)
|
||||||
|
*/
|
||||||
|
private String devRegionalism;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否农网:0-否;1:是;
|
* 是否农网:0-否;1:是;
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -289,11 +289,14 @@ public class PmsMonitorController extends BaseController {
|
|||||||
* @date 2023/6/8
|
* @date 2023/6/8
|
||||||
*/
|
*/
|
||||||
@PostMapping("/importOracleLedgerToMysql")
|
@PostMapping("/importOracleLedgerToMysql")
|
||||||
@ApiOperation("获取台账和终端信息(波形专用)")
|
@ApiOperation("oracle系统监测点转mysql主网监测点")
|
||||||
@ApiImplicitParam(name = "param", value = "主网监测点实体", required = true)
|
public HttpResult<Object> importOracleLedgerToMysql(@ApiParam(value = "文件", required = true) @RequestPart("file") MultipartFile file, HttpServletResponse response) {
|
||||||
public void importOracleLedgerToMysql(@ApiParam(value = "文件", required = true) @RequestPart("file") MultipartFile file, HttpServletResponse response) {
|
|
||||||
String methodDescribe = getMethodDescribe("importOracleLedgerToMysql");
|
String methodDescribe = getMethodDescribe("importOracleLedgerToMysql");
|
||||||
monitorService.importOracleLedgerToMysql(file,response);
|
boolean res = monitorService.importOracleLedgerToMysql(file,response);
|
||||||
|
if(res){
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -301,5 +304,7 @@ public class PmsMonitorController extends BaseController {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.njcn.device.pms.mapper.majornetwork;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.njcn.device.pq.pojo.po.LineBak;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author cdf
|
||||||
|
* @since 2022-01-04
|
||||||
|
*/
|
||||||
|
public interface LineBakMapper extends BaseMapper<LineBak> {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
//package com.njcn.device.pms.mapper.majornetwork;
|
|
||||||
//
|
|
||||||
//import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
||||||
//import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO;
|
|
||||||
//import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationSonDTO;
|
|
||||||
//import com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO;
|
|
||||||
//import com.njcn.device.pms.pojo.param.ConditionParam;
|
|
||||||
//import com.njcn.device.pms.pojo.param.PmsGeneratrixParam;
|
|
||||||
//import com.njcn.device.pms.pojo.po.Generatrix;
|
|
||||||
//import org.apache.ibatis.annotations.Mapper;
|
|
||||||
//import org.apache.ibatis.annotations.Param;
|
|
||||||
//
|
|
||||||
//import java.util.List;
|
|
||||||
//
|
|
||||||
///**
|
|
||||||
// * @author yzh
|
|
||||||
// * @date 2022/10/18
|
|
||||||
// */
|
|
||||||
//@Mapper
|
|
||||||
//public interface PmsGeneratrixMapper extends BaseMapper<Generatrix> {
|
|
||||||
//
|
|
||||||
// /**
|
|
||||||
// * 获取母线信息
|
|
||||||
// *
|
|
||||||
// * @param pmsGeneratrixParam 入参
|
|
||||||
// * @return 母线信息
|
|
||||||
// */
|
|
||||||
// List<PmsGeneratrixDTO> getGeneratrixInfo(@Param("pmsGeneratrixParam") PmsGeneratrixParam pmsGeneratrixParam);
|
|
||||||
//
|
|
||||||
// /**
|
|
||||||
// * 获取母线与电站关联信息
|
|
||||||
// *
|
|
||||||
// * @param param 条件参数
|
|
||||||
// * @return java.util.List<com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO>
|
|
||||||
// * @author yzh
|
|
||||||
// * @date 2022/11/3
|
|
||||||
// */
|
|
||||||
// List<GeneratrixAndPowerStationDTO> getGeneratrixAndPowerStationInfo(@Param("param") PmsGeneratrixParam param);
|
|
||||||
// /**
|
|
||||||
// * @Description: 普测计划页面调用根据条件查询母线信息
|
|
||||||
// * @Param: [data, param]
|
|
||||||
// * @return: java.util.List<com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO>
|
|
||||||
// * @Author: clam
|
|
||||||
// * @Date: 2022/12/5
|
|
||||||
// */
|
|
||||||
// List<GeneratrixAndPowerStationSonDTO> getGeneratrixByCondition(@Param("orgList")List<String> data, @Param("param")ConditionParam param);
|
|
||||||
//}
|
|
||||||
@@ -151,7 +151,8 @@ public interface IMonitorService extends IService<Monitor> {
|
|||||||
* @author cdf
|
* @author cdf
|
||||||
* @date 2023/6/8
|
* @date 2023/6/8
|
||||||
*/
|
*/
|
||||||
void importOracleLedgerToMysql(MultipartFile file, HttpServletResponse response);
|
boolean importOracleLedgerToMysql(MultipartFile file, HttpServletResponse response);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
|||||||
import cn.afterturn.easypoi.excel.entity.ImportParams;
|
import cn.afterturn.easypoi.excel.entity.ImportParams;
|
||||||
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
|
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
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;
|
||||||
@@ -11,9 +12,12 @@ 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.dto.SimpleDTO;
|
import com.njcn.common.pojo.dto.SimpleDTO;
|
||||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||||
|
|
||||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
import com.njcn.common.pojo.exception.BusinessException;
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
|
|
||||||
|
import com.njcn.device.biz.enums.DeviceResponseEnum;
|
||||||
|
import com.njcn.device.biz.pojo.bo.excel.PmsOracleTerminalExcel;
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
|
||||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||||
import com.njcn.device.biz.utils.COverlimit;
|
import com.njcn.device.biz.utils.COverlimit;
|
||||||
@@ -29,11 +33,12 @@ import com.njcn.device.pms.pojo.vo.MonitorVO;
|
|||||||
import com.njcn.device.pms.pojo.vo.PmsMonitorVO;
|
import com.njcn.device.pms.pojo.vo.PmsMonitorVO;
|
||||||
import com.njcn.device.pms.service.majornetwork.IDistributionMonitorService;
|
import com.njcn.device.pms.service.majornetwork.IDistributionMonitorService;
|
||||||
import com.njcn.device.pms.service.majornetwork.IMonitorService;
|
import com.njcn.device.pms.service.majornetwork.IMonitorService;
|
||||||
import com.njcn.device.pq.pojo.bo.excel.NodeExcel;
|
import com.njcn.device.pms.service.majornetwork.IPowerDistributionareaService;
|
||||||
import com.njcn.device.pq.pojo.bo.excel.OverLimitExcel;
|
|
||||||
import com.njcn.device.pq.pojo.po.Line;
|
import com.njcn.device.pq.pojo.bo.excel.OracleTerminalExcel;
|
||||||
import com.njcn.device.pq.pojo.po.LineDetail;
|
|
||||||
import com.njcn.device.pq.pojo.po.Voltage;
|
import com.njcn.device.pq.pojo.po.LineBak;
|
||||||
|
import com.njcn.poi.excel.ExcelUtil;
|
||||||
import com.njcn.poi.util.PoiUtil;
|
import com.njcn.poi.util.PoiUtil;
|
||||||
import com.njcn.system.enums.DicDataEnum;
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
import com.njcn.system.enums.DicDataTypeEnum;
|
import com.njcn.system.enums.DicDataTypeEnum;
|
||||||
@@ -54,6 +59,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -86,6 +92,11 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
|||||||
|
|
||||||
private final IDistributionMonitorService iDistributionMonitorService;
|
private final IDistributionMonitorService iDistributionMonitorService;
|
||||||
|
|
||||||
|
private final StatationStatMapper statationStatMapper;
|
||||||
|
|
||||||
|
private final TerminalMapper terminalMapper;
|
||||||
|
|
||||||
|
private final LineBakMapper lineBakMapper;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -379,12 +390,13 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void importOracleLedgerToMysql(MultipartFile file, HttpServletResponse response) {
|
public boolean importOracleLedgerToMysql(MultipartFile file, HttpServletResponse response) {
|
||||||
/* ImportParams importParams = new ImportParams();
|
ImportParams importParams = new ImportParams();
|
||||||
importParams.setHeadRows(1);
|
importParams.setHeadRows(1);
|
||||||
importParams.setTitleRows(1);
|
importParams.setTitleRows(1);
|
||||||
importParams.setNeedVerify(true);
|
importParams.setNeedVerify(true);
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ExcelImportResult<OracleTerminalExcel> terminalExcelExcelImportResult = ExcelImportUtil.importExcelMore(file.getInputStream(), OracleTerminalExcel.class, importParams);
|
ExcelImportResult<OracleTerminalExcel> terminalExcelExcelImportResult = ExcelImportUtil.importExcelMore(file.getInputStream(), OracleTerminalExcel.class, importParams);
|
||||||
|
|
||||||
@@ -393,28 +405,19 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
|||||||
PoiUtil.exportFileByWorkbook(terminalExcelExcelImportResult.getFailWorkbook(), "非法台账信息.xlsx", response);
|
PoiUtil.exportFileByWorkbook(terminalExcelExcelImportResult.getFailWorkbook(), "非法台账信息.xlsx", response);
|
||||||
} else {
|
} else {
|
||||||
//执行台账信息导入(不考虑,存在监测点却不存在限值信息)
|
//执行台账信息导入(不考虑,存在监测点却不存在限值信息)
|
||||||
|
dealData(terminalExcelExcelImportResult.getList());
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
throw new BusinessException(DeviceResponseEnum.IMPORT_ORACLE_EXCEPTION);
|
throw new BusinessException(DeviceResponseEnum.IMPORT_ORACLE_EXCEPTION);
|
||||||
}*/
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*private void dealData(List<OracleTerminalExcel> oracleTerminalExcelList){
|
|
||||||
List<DeptDTO> allDept = deptFeignClient.getDeptDescendantIndexes(deptFeignClient.getRootDept().getData().getId(),Stream.of(0,1,2).collect(Collectors.toList())).getData();
|
|
||||||
Map<String, DeptDTO> mapDept = allDept.stream().collect(Collectors.toMap(DeptDTO::getName,Function.identity()));
|
|
||||||
for(OracleTerminalExcel oracleTerminalExcel : oracleTerminalExcelList){
|
|
||||||
//单位
|
|
||||||
if(oracleTerminalExcel.get)
|
|
||||||
|
|
||||||
//电站
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取主配网监测点id集合
|
* 获取主配网监测点id集合
|
||||||
|
*
|
||||||
* @param deptDTO
|
* @param deptDTO
|
||||||
* @param deptIdList
|
* @param deptIdList
|
||||||
* @return
|
* @return
|
||||||
@@ -555,8 +558,368 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private String dealData(List<OracleTerminalExcel> oracleTerminalExcelList) {
|
||||||
|
List<OracleTerminalExcel.OracleTerminalExcelMsg> oracleTerminalExcelMsg = new ArrayList<>();
|
||||||
|
|
||||||
|
List<DeptDTO> allDept = deptFeignClient.getDeptDescendantIndexes(deptFeignClient.getRootDept().getData().getId(), Stream.of(0, 1, 2).collect(Collectors.toList())).getData();
|
||||||
|
Map<String, DeptDTO> mapDept = allDept.stream().collect(Collectors.toMap(DeptDTO::getName, Function.identity()));
|
||||||
|
|
||||||
|
List<DictData> voltageLevelDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData();
|
||||||
|
Map<String, DictData> voltageLevelMap = voltageLevelDic.stream().collect(Collectors.toMap(DictData::getName, Function.identity()));
|
||||||
|
|
||||||
|
//装置型号
|
||||||
|
List<DictData> devTypelDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> devTypelDicMap = devTypelDic.stream().collect(Collectors.toMap(DictData::getName, Function.identity()));
|
||||||
|
|
||||||
|
//装置类别
|
||||||
|
DictData devCategoryDic = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.DEV_CATEGORY.getName(), DicDataEnum.Monitor_Terminals.getName()).getData();
|
||||||
|
|
||||||
|
//装置状态
|
||||||
|
List<DictData> devStatelDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_STATUS.getCode()).getData();
|
||||||
|
Map<String, DictData> devStateDicMap = devStatelDic.stream().collect(Collectors.toMap(DictData::getName, Function.identity()));
|
||||||
|
|
||||||
|
//监测点状态
|
||||||
|
List<DictData> monitorStatelDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData();
|
||||||
|
Map<String, DictData> monitorStateDicMap = monitorStatelDic.stream().collect(Collectors.toMap(DictData::getName, Function.identity()));
|
||||||
|
|
||||||
|
//检测点对象类型(原监测点标签)
|
||||||
|
List<DictData> objTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
|
||||||
|
Map<String, DictData> objTypeDicMap = objTypeList.stream().collect(Collectors.toMap(DictData::getName, Function.identity()));
|
||||||
|
|
||||||
|
//装置厂家
|
||||||
|
List<DictData> manList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_MANUFACTURER.getCode()).getData();
|
||||||
|
Map<String, DictData> manDicMap = manList.stream().collect(Collectors.toMap(DictData::getName, Function.identity()));
|
||||||
|
|
||||||
|
|
||||||
|
for (OracleTerminalExcel oracleTerminalExcel : oracleTerminalExcelList) {
|
||||||
|
//单位
|
||||||
|
if (!mapDept.containsKey(oracleTerminalExcel.getGdName())) {
|
||||||
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "单位名称不存在,请确认单位名称是否正确"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//判断是否操作过该条记录
|
||||||
|
LineBak lineBak = lineBakMapper.selectById(oracleTerminalExcel.getId());
|
||||||
|
if (Objects.nonNull(lineBak)) {
|
||||||
|
//不为空默认已经存在监测点,提示先删除对应监测点
|
||||||
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "mysql库中已经存在该监测点,请先删除监测点"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//单位
|
||||||
|
DeptDTO deptDTO = mapDept.get(oracleTerminalExcel.getGdName());
|
||||||
|
|
||||||
|
//电站
|
||||||
|
String stationId = null, stationName = null;
|
||||||
|
LambdaQueryWrapper<StatationStat> statLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
statLambdaQueryWrapper.eq(StatationStat::getPowerName, oracleTerminalExcel.getSubstationName())
|
||||||
|
.eq(StatationStat::getOrgId, deptDTO.getCode());
|
||||||
|
StatationStat statationStat = statationStatMapper.selectOne(statLambdaQueryWrapper);
|
||||||
|
|
||||||
|
if (Objects.isNull(statationStat)) {
|
||||||
|
StatationStat statationStatPO = new StatationStat();
|
||||||
|
statationStatPO.setOrgId(deptDTO.getCode());
|
||||||
|
statationStatPO.setOrgName(deptDTO.getName());
|
||||||
|
statationStatPO.setPowerName(oracleTerminalExcel.getSubstationName());
|
||||||
|
statationStatPO.setLongitude(oracleTerminalExcel.getLng().doubleValue());
|
||||||
|
statationStatPO.setLatitude(oracleTerminalExcel.getLat().doubleValue());
|
||||||
|
statationStatPO.setShouldBeNum(100);
|
||||||
|
statationStatPO.setStatus(DataStateEnum.ENABLE.getCode());
|
||||||
|
|
||||||
|
String dicVoltage = dealVoltageLevel(oracleTerminalExcel.getSubStationScale());
|
||||||
|
if (voltageLevelMap.containsKey(dicVoltage)) {
|
||||||
|
statationStatPO.setVoltageLevel(voltageLevelMap.get(dicVoltage).getId());
|
||||||
|
} else {
|
||||||
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "变电站电压等级不存在,请确认电压等级存在"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
statationStatMapper.insert(statationStatPO);
|
||||||
|
stationId = statationStatPO.getPowerId();
|
||||||
|
stationName = statationStatPO.getPowerName();
|
||||||
|
} else {
|
||||||
|
stationId = statationStat.getPowerId();
|
||||||
|
stationName = statationStat.getPowerName();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//装置
|
||||||
|
String devId = null;
|
||||||
|
LambdaQueryWrapper<PmsTerminal> terminalLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
terminalLambdaQueryWrapper.eq(PmsTerminal::getName, oracleTerminalExcel.getDeviceName())
|
||||||
|
.eq(PmsTerminal::getPowerStationId, stationId);
|
||||||
|
PmsTerminal pmsTerminal = terminalMapper.selectOne(terminalLambdaQueryWrapper);
|
||||||
|
if (Objects.isNull(pmsTerminal)) {
|
||||||
|
PmsTerminal pmsTerminalPO = new PmsTerminal();
|
||||||
|
pmsTerminalPO.setOrgId(deptDTO.getCode());
|
||||||
|
pmsTerminalPO.setOrgName(deptDTO.getName());
|
||||||
|
pmsTerminalPO.setName(oracleTerminalExcel.getDeviceName());
|
||||||
|
pmsTerminalPO.setOperationId(deptDTO.getCode());
|
||||||
|
pmsTerminalPO.setOperationName(deptDTO.getName());
|
||||||
|
pmsTerminalPO.setPowerrName(stationName);
|
||||||
|
pmsTerminalPO.setPowerStationId(stationId);
|
||||||
|
pmsTerminalPO.setIp(oracleTerminalExcel.getIp());
|
||||||
|
pmsTerminalPO.setUseDate(oracleTerminalExcel.getLoginTime());
|
||||||
|
pmsTerminalPO.setVerificationDate(oracleTerminalExcel.getThisTimeCheck());
|
||||||
|
|
||||||
|
pmsTerminalPO.setDeviceCategory(devCategoryDic.getId());
|
||||||
|
|
||||||
|
if (devTypelDicMap.containsKey(oracleTerminalExcel.getDevType())) {
|
||||||
|
pmsTerminalPO.setDeviceModel(devTypelDicMap.get(oracleTerminalExcel.getDevType()).getId());
|
||||||
|
} else {
|
||||||
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "装置类型不存在,请确认后重试"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//终端状态
|
||||||
|
if (devTypelDicMap.containsKey(oracleTerminalExcel.getDevType())) {
|
||||||
|
pmsTerminalPO.setDeviceModel(devTypelDicMap.get(oracleTerminalExcel.getDevType()).getId());
|
||||||
|
} else {
|
||||||
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "字典装置类型不存在,请确认后重试"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
String devState = null;
|
||||||
|
switch (oracleTerminalExcel.getRunFlag()) {
|
||||||
|
case 0:
|
||||||
|
devState = DicDataEnum.RUNNING.getName();
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
devState = DicDataEnum.NOT_OPERATION.getName();
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
devState = DicDataEnum.RETIRE.getName();
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
if (devStateDicMap.containsKey(devState)) {
|
||||||
|
pmsTerminalPO.setTerminalState(devTypelDicMap.get(oracleTerminalExcel.getDevType()).getId());
|
||||||
|
} else {
|
||||||
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "字典装置运行状态不存在,请确认后重试"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
DictData devGrade = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.DEV_GRADE.getName(), DicDataEnum.MOST_IMPORMENT.getName()).getData();
|
||||||
|
pmsTerminalPO.setTerminalLevel(devGrade.getId());
|
||||||
|
|
||||||
|
DictData devInputType = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.INPUT_SIGNAL.getName(), DicDataEnum.SIMULATION_SIGNAL.getName()).getData();
|
||||||
|
pmsTerminalPO.setInputType(devInputType.getId());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
pmsTerminalPO.setStatus(DataStateEnum.ENABLE.getCode());
|
||||||
|
pmsTerminalPO.setPort(oracleTerminalExcel.getPort().toString());
|
||||||
|
pmsTerminalPO.setIsUpToGrid(0);
|
||||||
|
|
||||||
|
if(manDicMap.containsKey(oracleTerminalExcel.getManufacturer())){
|
||||||
|
pmsTerminalPO.setManufacture(manDicMap.get(oracleTerminalExcel.getManufacturer()).getId());
|
||||||
|
}else {
|
||||||
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "字典制造厂商不存在,请确认后重试"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
terminalMapper.insert(pmsTerminalPO);
|
||||||
|
devId = pmsTerminalPO.getId();
|
||||||
|
} else {
|
||||||
|
devId = pmsTerminal.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
//线路
|
||||||
|
LambdaQueryWrapper<GeneratrixWire> generatrixWireLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
generatrixWireLambdaQueryWrapper.eq(GeneratrixWire::getName, oracleTerminalExcel.getSubvName())
|
||||||
|
.eq(GeneratrixWire::getStationId, stationId);
|
||||||
|
GeneratrixWire generatrixWire = generatrixWireMapper.selectOne(generatrixWireLambdaQueryWrapper);
|
||||||
|
|
||||||
|
String lineId = null, lineName = null, genScale = null;
|
||||||
|
|
||||||
|
if (Objects.isNull(generatrixWire)) {
|
||||||
|
GeneratrixWire generatrixWirePO = new GeneratrixWire();
|
||||||
|
generatrixWirePO.setGeneratrixName(oracleTerminalExcel.getSubvName());
|
||||||
|
generatrixWirePO.setStatus(DataStateEnum.ENABLE.getCode());
|
||||||
|
generatrixWirePO.setName(oracleTerminalExcel.getSubvName());
|
||||||
|
generatrixWirePO.setOrgId(deptDTO.getCode());
|
||||||
|
generatrixWirePO.setStationId(stationId);
|
||||||
|
generatrixWirePO.setStationName(stationName);
|
||||||
|
|
||||||
|
String dicVoltage = dealVoltageLevel(oracleTerminalExcel.getSubvScale());
|
||||||
|
if (voltageLevelMap.containsKey(dicVoltage)) {
|
||||||
|
DictData temVoltage = voltageLevelMap.get(dicVoltage);
|
||||||
|
generatrixWirePO.setScale(temVoltage.getId());
|
||||||
|
}
|
||||||
|
generatrixWireMapper.insert(generatrixWirePO);
|
||||||
|
lineId = generatrixWirePO.getId();
|
||||||
|
lineName = generatrixWirePO.getName();
|
||||||
|
genScale = generatrixWirePO.getScale();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
lineId = generatrixWire.getId();
|
||||||
|
lineName = generatrixWire.getName();
|
||||||
|
genScale = generatrixWire.getScale();
|
||||||
|
}
|
||||||
|
|
||||||
|
//监测点
|
||||||
|
LambdaQueryWrapper<Monitor> monitorLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
monitorLambdaQueryWrapper.eq(Monitor::getPowerrId, stationId)
|
||||||
|
.eq(Monitor::getName, oracleTerminalExcel.getLineName());
|
||||||
|
Monitor monitor = monitorMapper.selectOne(monitorLambdaQueryWrapper);
|
||||||
|
if (Objects.isNull(monitor)) {
|
||||||
|
//当前电站下面没有监测点,可以新增
|
||||||
|
Monitor monitorPO = new Monitor();
|
||||||
|
monitorPO.setName(oracleTerminalExcel.getLineName());
|
||||||
|
monitorPO.setPowerrName(stationName);
|
||||||
|
monitorPO.setPowerrId(stationId);
|
||||||
|
monitorPO.setOperationName(deptDTO.getName());
|
||||||
|
monitorPO.setOperationId(deptDTO.getCode());
|
||||||
|
monitorPO.setOrgName(deptDTO.getName());
|
||||||
|
monitorPO.setOrgId(deptDTO.getCode());
|
||||||
|
monitorPO.setLineName(lineName);
|
||||||
|
monitorPO.setLineId(lineId);
|
||||||
|
monitorPO.setVoltageLevel(genScale);
|
||||||
|
|
||||||
|
String monitorState = null;
|
||||||
|
switch (oracleTerminalExcel.getRunFlag()) {
|
||||||
|
case 0:
|
||||||
|
monitorState = DicDataEnum.RUN.getName();
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
monitorState = DicDataEnum.DEBUGGING.getName();
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
monitorState = DicDataEnum.DECOMMISSIONING.getName();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "字典监测点状态不存在,请确认后重试"));
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
if (monitorStateDicMap.containsKey(monitorState)) {
|
||||||
|
monitorPO.setMonitorState(monitorStateDicMap.get(monitorState).getId());
|
||||||
|
} else {
|
||||||
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "字典监测点运行状态不存在,请确认后重试"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
DictData monitorType = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_TYPE.getName(), DicDataEnum.Power_Supply_Point.getName()).getData();
|
||||||
|
monitorPO.setMonitorType(monitorType.getId());
|
||||||
|
|
||||||
|
monitorPO.setStandShortCapacity(oracleTerminalExcel.getStandardCapacity());
|
||||||
|
monitorPO.setMinShortCircuitCapacity(oracleTerminalExcel.getShortCapacity());
|
||||||
|
monitorPO.setUserAgreementCapacity(oracleTerminalExcel.getDealCapacity());
|
||||||
|
monitorPO.setPowerSupplyEqCapacity(oracleTerminalExcel.getDevCapacity());
|
||||||
|
|
||||||
|
DictData scale = dicDataFeignClient.getDicDataById(monitorPO.getVoltageLevel()).getData();
|
||||||
|
Overlimit overlimitTem = new Overlimit();
|
||||||
|
COverlimitUtil.voltageDeviation(overlimitTem, Float.parseFloat(scale.getValue()));
|
||||||
|
monitorPO.setVoltageDeviationLowerLimit(overlimitTem.getVoltageDev());
|
||||||
|
monitorPO.setVoltageDeviationUpperLimit(overlimitTem.getUvoltageDev());
|
||||||
|
|
||||||
|
|
||||||
|
DictData potentialDic = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.VOLTAGE_TRANSFORMER.getName(), DicDataEnum.Cap_V.getName()).getData();
|
||||||
|
monitorPO.setPotentialTransFormerType(potentialDic.getId());
|
||||||
|
|
||||||
|
DictData neutralDic = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.Neutral_Point.getName(), DicDataEnum.Ground_Res.getName()).getData();
|
||||||
|
monitorPO.setNeutralGroundingMode(neutralDic.getId());
|
||||||
|
|
||||||
|
monitorPO.setIsSpecialSupplyElectricity(0);
|
||||||
|
|
||||||
|
|
||||||
|
if (objTypeDicMap.containsKey(oracleTerminalExcel.getLoadType())) {
|
||||||
|
String objTypeId = objTypeDicMap.get(oracleTerminalExcel.getLoadType()).getId();
|
||||||
|
monitorPO.setMonitorTag(objTypeId);
|
||||||
|
monitorPO.setMonitorObjectType(objTypeId);
|
||||||
|
} else {
|
||||||
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "字典监测对象类型不存在,请确认后重试"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
monitorPO.setStatisticalInterval(oracleTerminalExcel.getTimeInterval());
|
||||||
|
monitorPO.setTerminalId(devId);
|
||||||
|
|
||||||
|
//接线方式
|
||||||
|
List<DictData> wireList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_CONNECT.getCode()).getData();
|
||||||
|
Map<String, DictData> wireListMap = wireList.stream().collect(Collectors.toMap(DictData::getName, Function.identity()));
|
||||||
|
|
||||||
|
String wireMethod = "";
|
||||||
|
switch (oracleTerminalExcel.getPtType()) {
|
||||||
|
case 0:
|
||||||
|
wireMethod = DicDataEnum.STAR.getName();
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
wireMethod = DicDataEnum.STAR_TRIANGLE.getName();
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
wireMethod = DicDataEnum.OPEN_DELTA.getName();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "字典接线方式不存在,请确认后重试"));
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
if (wireListMap.containsKey(wireMethod)) {
|
||||||
|
monitorPO.setTerminalWiringMethod(wireListMap.get(wireMethod).getId());
|
||||||
|
} else {
|
||||||
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "字典接线方式不存在,请确认后重试"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
monitorPO.setIsUpToGrid(0);
|
||||||
|
monitorPO.setStatus(DataStateEnum.ENABLE.getCode());
|
||||||
|
monitorPO.setIsSpecialMonitor(0);
|
||||||
|
monitorPO.setPt1(oracleTerminalExcel.getPt1());
|
||||||
|
monitorPO.setPt2(oracleTerminalExcel.getPt2());
|
||||||
|
monitorPO.setCt1(oracleTerminalExcel.getCt1());
|
||||||
|
monitorPO.setCt2(oracleTerminalExcel.getCt2());
|
||||||
|
|
||||||
|
|
||||||
|
monitorMapper.insert(monitorPO);
|
||||||
|
|
||||||
|
Overlimit overlimit = COverlimitUtil.globalAssemble(Float.parseFloat(scale.getValue()), oracleTerminalExcel.getDealCapacity(), oracleTerminalExcel.getDevCapacity(), oracleTerminalExcel.getShortCapacity(), 0, 0);
|
||||||
|
overlimit.setId(monitorPO.getId());
|
||||||
|
|
||||||
|
Overlimit overlimitRes = overlimitMapper.selectById(monitorPO.getId());
|
||||||
|
if (Objects.isNull(overlimitRes)) {
|
||||||
|
overlimitMapper.insert(overlimit);
|
||||||
|
} else {
|
||||||
|
overlimitMapper.updateById(overlimit);
|
||||||
|
}
|
||||||
|
|
||||||
|
LineBak lineBakPO = new LineBak();
|
||||||
|
lineBakPO.setId(monitorPO.getId());
|
||||||
|
lineBakPO.setLineId(oracleTerminalExcel.getId());
|
||||||
|
lineBakMapper.insert(lineBakPO);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (CollectionUtil.isNotEmpty(oracleTerminalExcelMsg)) {
|
||||||
|
ExcelUtil.exportExcel("失败列表.xlsx", OracleTerminalExcel.OracleTerminalExcelMsg.class, oracleTerminalExcelMsg);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return CommonResponseEnum.SUCCESS.getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private String dealVoltageLevel(String voltage) {
|
||||||
|
int scale = Integer.parseInt(voltage.substring(0, voltage.indexOf("kV")));
|
||||||
|
if (scale < 500) {
|
||||||
|
return "交流" + voltage;
|
||||||
|
} else {
|
||||||
|
return "直流" + voltage;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组装不能正常插入的记录,稍后导出给用户
|
||||||
|
*
|
||||||
|
* @param oracleTerminalExcel 记录信息
|
||||||
|
* @param msg 错误信息
|
||||||
|
*/
|
||||||
|
private OracleTerminalExcel.OracleTerminalExcelMsg assembleMsg(OracleTerminalExcel oracleTerminalExcel, String msg) {
|
||||||
|
OracleTerminalExcel.OracleTerminalExcelMsg oracleTerminalExcelMsg = new OracleTerminalExcel.OracleTerminalExcelMsg();
|
||||||
|
BeanUtils.copyProperties(oracleTerminalExcel, oracleTerminalExcelMsg);
|
||||||
|
oracleTerminalExcelMsg.setMsg(msg);
|
||||||
|
return oracleTerminalExcelMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ public class OracleTerminalExcel implements Serializable {
|
|||||||
|
|
||||||
@Excel(name = "监测点名称", width = 15)
|
@Excel(name = "监测点名称", width = 15)
|
||||||
@NotBlank(message = "监测点名称不可为空")
|
@NotBlank(message = "监测点名称不可为空")
|
||||||
@Pattern(regexp = PatternRegex.DEV_NAME_REGEX, message = "监测点名称违规")
|
|
||||||
private String lineName;
|
private String lineName;
|
||||||
|
|
||||||
@Excel(name = "监测点线路号", width = 15)
|
@Excel(name = "监测点线路号", width = 15)
|
||||||
|
|||||||
@@ -91,6 +91,15 @@ public enum DicDataEnum {
|
|||||||
DEV_SMART("智能电表", "Dev_Smart"),
|
DEV_SMART("智能电表", "Dev_Smart"),
|
||||||
DEV_MIX("智能融合终端", "Dev_Mix"),
|
DEV_MIX("智能融合终端", "Dev_Mix"),
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 装置类别
|
||||||
|
*/
|
||||||
|
Test_Equipment("测试设备","Test_Equipment"),
|
||||||
|
Monitor_Terminals("监测终端","Monitor_Terminals"),
|
||||||
|
Detect_Equipment("检测设备","Detect_Equipment"),
|
||||||
|
Govern_Devices("治理设备","Govern_Devices"),
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* 告警类型
|
* 告警类型
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ public enum DicDataTypeEnum {
|
|||||||
|
|
||||||
//pms
|
//pms
|
||||||
DEV_CATEGORY("装置类别","Device_Category"),
|
DEV_CATEGORY("装置类别","Device_Category"),
|
||||||
DEV_GRADE("装置级别","Dev_Level"),
|
DEV_GRADE("终端等级","Dev_Level"),
|
||||||
INPUT_SIGNAL("测量信号输入形式","Signal_form"),
|
INPUT_SIGNAL("测量信号输入形式","Signal_form"),
|
||||||
VOLTAGE_TRANSFORMER("电压互感器类型","Voltage_Transformer"),
|
VOLTAGE_TRANSFORMER("电压互感器类型","Voltage_Transformer"),
|
||||||
Neutral_Point("中性点接地方式","Neutral_Point"),
|
Neutral_Point("中性点接地方式","Neutral_Point"),
|
||||||
|
|||||||
Reference in New Issue
Block a user