终端台账数据同步
This commit is contained in:
@@ -4,7 +4,6 @@ import com.njcn.common.pojo.constant.ServerInfo;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.device.pq.api.fallback.DeptLineFeignClientFallbackFactory;
|
||||
import com.njcn.device.pq.pojo.po.DeptLine;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
@@ -39,4 +38,13 @@ public interface DeptLineFeignClient {
|
||||
|
||||
@PostMapping("/getLineByLineIds")
|
||||
HttpResult<DeptLine> getLineByLineIds(@RequestParam("id") String ids);
|
||||
/**
|
||||
* @Description: 部门Id获取所有子集部门绑定监测点
|
||||
* @Param:
|
||||
* @return: com.njcn.common.pojo.response.HttpResult<java.util.List<java.lang.String>>
|
||||
* @Author: clam
|
||||
* @Date: 2024/5/29
|
||||
*/
|
||||
@PostMapping("/getLineNodeByDeptId")
|
||||
HttpResult<List<String>> getLineNodeByDeptId(@RequestParam("id") String id);
|
||||
}
|
||||
|
||||
@@ -3,13 +3,12 @@ package com.njcn.device.pq.api;
|
||||
import com.njcn.common.pojo.constant.ServerInfo;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.device.pq.api.fallback.TerminalBaseClientFallbackFactory;
|
||||
import com.njcn.device.pq.pojo.param.SyncTerminalParam;
|
||||
import com.njcn.device.pq.pojo.po.Line;
|
||||
import com.njcn.device.pq.pojo.vo.TerminalBaseVO;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,7 +31,11 @@ public interface TerminalBaseClient {
|
||||
*/
|
||||
@PostMapping("/getSubstationById")
|
||||
HttpResult<List<Line>> getSubstationById(@RequestBody List<String> list);
|
||||
/*
|
||||
冀北技术监督台账同步
|
||||
*/
|
||||
|
||||
|
||||
|
||||
@ApiOperation("终端/母线/监测点同步操作")
|
||||
@PostMapping("terminalSync")
|
||||
HttpResult<Object> terminalSync( @RequestBody SyncTerminalParam syncTerminalParam);
|
||||
}
|
||||
|
||||
@@ -62,6 +62,12 @@ public class DeptLineFeignClientFallbackFactory implements FallbackFactory<DeptL
|
||||
log.error("{}异常,降级处理,异常为:{}", "根据监测点id集合查询部门信息id", throwable.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpResult<List<String>> getLineNodeByDeptId(String id) {
|
||||
log.error("{}异常,降级处理,异常为:{}", "根据部门信息id查询监测点id集合", throwable.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.device.pq.api.TerminalBaseClient;
|
||||
import com.njcn.device.pq.pojo.param.SyncTerminalParam;
|
||||
import com.njcn.device.pq.pojo.po.Line;
|
||||
import com.njcn.device.biz.utils.DeviceEnumUtil;
|
||||
import feign.hystrix.FallbackFactory;
|
||||
@@ -37,6 +38,12 @@ public class TerminalBaseClientFallbackFactory implements FallbackFactory<Termin
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpResult<Object> terminalSync(SyncTerminalParam syncTerminalParam) {
|
||||
log.error("{}异常,降级处理,异常为:{}", "台账同步", throwable.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.njcn.device.pq.pojo.param;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
/**
|
||||
* pqs
|
||||
* 终端新增操作bo
|
||||
* @author cdf
|
||||
* @date 2021/7/2
|
||||
*/
|
||||
@Data
|
||||
@ApiModel
|
||||
public class SyncTerminalParam {
|
||||
|
||||
private String DeptId;
|
||||
|
||||
@ApiModelProperty(name = "projectIndex",value = "项目索引")
|
||||
private String projectIndex;
|
||||
|
||||
@ApiModelProperty(name = "provinceIndex",value = "省份索引")
|
||||
private String provinceIndex;
|
||||
|
||||
@ApiModelProperty(name = "gdIndex",value = "供电索引")
|
||||
private String gdIndex;
|
||||
|
||||
@ApiModelProperty(name = "subIndex",value = "变电站索引")
|
||||
private String subIndex;
|
||||
|
||||
@Valid
|
||||
@ApiModelProperty(name = "projectParam",value = "项目实体")
|
||||
private ProjectParam projectParam;
|
||||
|
||||
@Valid
|
||||
@ApiModelProperty(name = "provinceParam",value = "省份实体")
|
||||
private ProvinceParam provinceParam;
|
||||
|
||||
@Valid
|
||||
@ApiModelProperty(name = "gdInformationParam",value = "供电公司")
|
||||
private GdInformationParam gdInformationParam;
|
||||
|
||||
@Valid
|
||||
@ApiModelProperty(name = "subStationParam",value = "变电站")
|
||||
private SubStationParam subStationParam;
|
||||
|
||||
@ApiModelProperty(name = "deviceParam",value = "设备信息")
|
||||
private DeviceParam deviceParam;
|
||||
|
||||
@ApiModelProperty(name = "subVoltageParam",value = "母线信息")
|
||||
@Valid
|
||||
private SubVoltageParam subVoltageParam;
|
||||
|
||||
@ApiModelProperty(name = "lineParam",value = "监测点信息")
|
||||
private LineParam lineParam;
|
||||
|
||||
}
|
||||
@@ -3,7 +3,6 @@ package com.njcn.device.pq.controller;
|
||||
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.constant.OperateType;
|
||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||
@@ -13,7 +12,6 @@ import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.common.utils.LogUtil;
|
||||
import com.njcn.device.biz.enums.DeviceResponseEnum;
|
||||
import com.njcn.device.biz.utils.COverlimitUtil;
|
||||
import com.njcn.device.pq.mapper.LineDetailMapper;
|
||||
import com.njcn.device.pq.mapper.LineMapper;
|
||||
import com.njcn.device.pq.mapper.OverlimitMapper;
|
||||
@@ -23,9 +21,6 @@ import com.njcn.device.pq.pojo.bo.excel.TerminalBaseExcel;
|
||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||
import com.njcn.device.pq.pojo.param.*;
|
||||
import com.njcn.device.pq.pojo.po.Line;
|
||||
import com.njcn.device.pq.pojo.po.LineDetail;
|
||||
import com.njcn.device.biz.pojo.po.Overlimit;
|
||||
import com.njcn.device.pq.pojo.po.Voltage;
|
||||
import com.njcn.device.pq.pojo.vo.LineWiringDiagramVO;
|
||||
import com.njcn.device.pq.pojo.vo.TerminalBaseVO;
|
||||
import com.njcn.device.pq.pojo.vo.TerminalVO;
|
||||
@@ -33,7 +28,6 @@ import com.njcn.device.pq.service.TerminalBaseService;
|
||||
import com.njcn.device.pq.service.impl.GeneralDeviceService;
|
||||
import com.njcn.poi.util.PoiUtil;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
import com.njcn.system.pojo.po.DictData;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.*;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -149,6 +143,17 @@ public class TerminalBaseController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("终端/母线/监测点同步操作")
|
||||
@OperateInfo(operateType = OperateType.ADD, info = LogEnum.BUSINESS_MEDIUM)
|
||||
@PostMapping("terminalSync")
|
||||
public HttpResult<Object> terminalSync(@Valid @RequestBody SyncTerminalParam syncTerminalParam) {
|
||||
String methodDescribe = getMethodDescribe("terminalSync");
|
||||
|
||||
terminalBaseService.terminalSync(syncTerminalParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 终端修改操作
|
||||
*
|
||||
|
||||
@@ -1,20 +1,17 @@
|
||||
package com.njcn.device.pq.service;
|
||||
|
||||
import com.njcn.common.pojo.dto.SimpleDTO;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.device.pq.pojo.bo.BaseLineInfo;
|
||||
import com.njcn.device.pq.pojo.bo.DeviceType;
|
||||
import com.njcn.device.pq.pojo.bo.excel.TerminalBaseExcel;
|
||||
import com.njcn.device.pq.pojo.param.AddTerminalParam;
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.pojo.param.SyncTerminalParam;
|
||||
import com.njcn.device.pq.pojo.param.UpdateTerminalParam;
|
||||
import com.njcn.device.pq.pojo.po.Line;
|
||||
import com.njcn.device.pq.pojo.vo.LineWiringDiagramVO;
|
||||
import com.njcn.device.pq.pojo.vo.TerminalBaseVO;
|
||||
import com.njcn.device.pq.pojo.vo.TerminalVO;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RequestPart;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@@ -238,4 +235,12 @@ public interface TerminalBaseService {
|
||||
* @date 2023/6/15
|
||||
*/
|
||||
boolean wiringDiagramDel(String lineId,String wiringDiagramName);
|
||||
/**
|
||||
* @Description: 临时表数据同步到台账表
|
||||
* @Param:
|
||||
* @return: void
|
||||
* @Author: clam
|
||||
* @Date: 2024/5/29
|
||||
*/
|
||||
boolean terminalSync(SyncTerminalParam syncTerminalParam);
|
||||
}
|
||||
|
||||
@@ -143,7 +143,7 @@ public class DeptLineServiceImpl extends ServiceImpl<DeptLineMapper, DeptLine> i
|
||||
|
||||
@Override
|
||||
public List<LineDeviceStateVO> getLineDetailByDeptId(String id) {
|
||||
List<String> lineByDeptId = this.getLineByDeptId(id);
|
||||
List<String> lineByDeptId = this.getLineNodeByDeptId(id);
|
||||
List<LineDeviceStateVO> lineDeviceStateVO = lineMapper.getLineDeviceStateVO(lineByDeptId);
|
||||
return lineDeviceStateVO;
|
||||
}
|
||||
|
||||
@@ -1810,6 +1810,177 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean terminalSync(SyncTerminalParam syncTerminalParam) {
|
||||
String projectIndex = null;
|
||||
String provinceIndex = null;
|
||||
String gdIndex = null;
|
||||
String subIndex = null;
|
||||
if (StrUtil.isNotBlank(syncTerminalParam.getProjectIndex())) {
|
||||
projectIndex = syncTerminalParam.getProjectIndex();
|
||||
if (Objects.isNull(this.getById(projectIndex))) {
|
||||
throw new BusinessException(DeviceResponseEnum.PROJECT_NO);
|
||||
}
|
||||
}
|
||||
if (StrUtil.isNotBlank(syncTerminalParam.getProvinceIndex())) {
|
||||
provinceIndex = syncTerminalParam.getProvinceIndex();
|
||||
if (Objects.isNull(this.getById(provinceIndex))) {
|
||||
throw new BusinessException(DeviceResponseEnum.PROVINCE_GET_ERROR);
|
||||
}
|
||||
}
|
||||
if (StrUtil.isNotBlank(syncTerminalParam.getGdIndex())) {
|
||||
gdIndex = syncTerminalParam.getGdIndex();
|
||||
if (Objects.isNull(this.getById(gdIndex))) {
|
||||
throw new BusinessException(DeviceResponseEnum.GD_NO);
|
||||
}
|
||||
}
|
||||
if (StrUtil.isNotBlank(syncTerminalParam.getSubIndex())) {
|
||||
subIndex = syncTerminalParam.getSubIndex();
|
||||
if (Objects.isNull(this.getById(subIndex))) {
|
||||
throw new BusinessException(DeviceResponseEnum.SUB_NO);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//变电站 todo 可能新建电站
|
||||
// if (Objects.nonNull(addTerminalParam.getSubStationParam())) {
|
||||
// if (StrUtil.isBlank(subIndex) && StrUtil.isNotBlank(gdIndex)) {
|
||||
// checkName(addTerminalParam, LineBaseEnum.SUB_LEVEL.getCode(), gdIndex);
|
||||
// Line subStation = assembleLine(addTerminalParam.getSubStationParam().getName(), LineBaseEnum.SUB_LEVEL.getCode(), gdIndex, projectIndex + StrUtil.COMMA + provinceIndex + StrUtil.COMMA + gdIndex, addTerminalParam.getSubStationParam().getSort());
|
||||
// this.baseMapper.insert(subStation);
|
||||
// subIndex = subStation.getId();
|
||||
//
|
||||
// //变电站下的经纬度入库
|
||||
// Substation sub = new Substation();
|
||||
// sub.setId(subIndex);
|
||||
// sub.setScale(addTerminalParam.getSubStationParam().getScale());
|
||||
// sub.setLng(addTerminalParam.getSubStationParam().getLng());
|
||||
// sub.setLat(addTerminalParam.getSubStationParam().getLat());
|
||||
// substationMapper.insert(sub);
|
||||
// }
|
||||
// }
|
||||
|
||||
//装置
|
||||
|
||||
//查询该设备是否已经同步到表如何存在则之前同步监测点时同步过了,不用同步设备了,反之同步
|
||||
DeviceParam deviceParam = syncTerminalParam.getDeviceParam();
|
||||
Line deviceLine = this.baseMapper.selectById(syncTerminalParam.getDeviceParam().getDevIndex());
|
||||
if(Objects.isNull(deviceLine)){
|
||||
Line device = assembleLine(deviceParam.getName(), LineBaseEnum.DEVICE_LEVEL.getCode(), subIndex, projectIndex + StrUtil.COMMA + provinceIndex + StrUtil.COMMA + gdIndex + StrUtil.COMMA + subIndex, deviceParam.getSort());
|
||||
device.setId(deviceParam.getDevIndex());
|
||||
this.baseMapper.insert(device);
|
||||
|
||||
//装置详情
|
||||
Device deviceDetail = new Device();
|
||||
BeanUtils.copyProperties(deviceParam, deviceDetail);
|
||||
deviceDetail.setId(device.getId());
|
||||
deviceDetail.setRunFlag(0);
|
||||
deviceDetail.setCallFlag(0);
|
||||
deviceDetail.setComFlag(0);
|
||||
deviceDetail.setCheckFlag(1);
|
||||
deviceDetail.setThisTimeCheck(PubUtils.localDateFormat(deviceParam.getThisTimeCheck()));
|
||||
deviceDetail.setNextTimeCheck(PubUtils.localDateFormat(deviceParam.getNextTimeCheck()));
|
||||
deviceDetail.setLoginTime(PubUtils.localDateFormat(deviceParam.getNextTimeCheck()));
|
||||
deviceDetail.setUpdateTime(LocalDateTime.now());
|
||||
|
||||
//处理装置识别码秘钥
|
||||
|
||||
deviceMapper.insert(deviceDetail);
|
||||
//装置功能 todo确定devFuction
|
||||
// List<DictData> funList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.DEV_FUN.getName()).getData();
|
||||
// if (CollectionUtil.isEmpty(funList)) {
|
||||
// throw new BusinessException(DeviceResponseEnum.DIC_GET_EMPTY);
|
||||
// }
|
||||
//
|
||||
// List<DevFuction> insertFunList = new ArrayList<>();
|
||||
// for (DictData dicData : funList) {
|
||||
// DevFuction devFunction = new DevFuction();
|
||||
// devFunction.setLineId(device.getId());
|
||||
// devFunction.setFucName(dicData.getId());
|
||||
// devFunction.setId(IdUtil.simpleUUID());
|
||||
// insertFunList.add(devFunction);
|
||||
// }
|
||||
// QueryWrapper<DevFuction> funQueryWrapper = new QueryWrapper<>();
|
||||
// funQueryWrapper.lambda().eq(DevFuction::getLineId, device.getId());
|
||||
// devFuctionMapper.delete(funQueryWrapper);
|
||||
// devFuctionMapper.addBatch(insertFunList);
|
||||
}
|
||||
|
||||
//处理母线
|
||||
SubVoltageParam subVoltageParam = syncTerminalParam.getSubVoltageParam();
|
||||
String subvIndex = null;
|
||||
//如果电站下存在同名母线则将监测点挂在下面反之新建母线
|
||||
//同一变电站下只能有唯一母线名称
|
||||
Line SubVoltage = this.lambdaQuery().eq(Line::getName, subVoltageParam.getName()).like(Line::getPids, syncTerminalParam.getSubIndex()).one();
|
||||
|
||||
if(Objects.isNull(SubVoltage)){
|
||||
//新建母线
|
||||
Line subVoltage = assembleLine(subVoltageParam.getName(), LineBaseEnum.SUB_V_LEVEL.getCode(), deviceParam.getDevIndex(), projectIndex + StrUtil.COMMA + provinceIndex + StrUtil.COMMA + gdIndex + StrUtil.COMMA + subIndex + StrUtil.COMMA + deviceParam.getDevIndex(), subVoltageParam.getSort());
|
||||
this.baseMapper.insert(subVoltage);
|
||||
subvIndex = subVoltage.getId();
|
||||
Voltage voltage = new Voltage();
|
||||
voltage.setId(subVoltage.getId());
|
||||
voltage.setNum(subVoltageParam.getNum());
|
||||
DictData scaleRes = dicDataFeignClient.getDicDataById(subVoltageParam.getScale()).getData();
|
||||
|
||||
voltage.setScale(scaleRes.getId());
|
||||
voltage.setModel(subVoltageParam.getModel());
|
||||
voltageMapper.insert(voltage);
|
||||
}else {
|
||||
subvIndex=SubVoltage.getId();
|
||||
}
|
||||
|
||||
//处理监测点
|
||||
LineParam lineParam = syncTerminalParam.getLineParam();
|
||||
|
||||
Line line = assembleLine(lineParam.getName(), LineBaseEnum.LINE_LEVEL.getCode(), subvIndex, projectIndex + StrUtil.COMMA + provinceIndex + StrUtil.COMMA + gdIndex + StrUtil.COMMA + subIndex + StrUtil.COMMA + deviceParam.getDevIndex() + StrUtil.COMMA + subvIndex, lineParam.getSort());
|
||||
line.setId(lineParam.getLineIndex());
|
||||
this.baseMapper.insert(line);
|
||||
LineDetail lineDetail = new LineDetail();
|
||||
BeanUtils.copyProperties(lineParam, lineDetail);
|
||||
lineDetail.setId(line.getId());
|
||||
|
||||
//判断国网监测点id
|
||||
if (StrUtil.isNotBlank(lineDetail.getMonitorId())) {
|
||||
lineDetail.setMonitorFlag(1);
|
||||
} else {
|
||||
lineDetail.setMonitorFlag(0);
|
||||
}
|
||||
|
||||
lineDetailMapper.insert(lineDetail);
|
||||
|
||||
//通过监测点id获取母线电压等级
|
||||
Voltage voltage = lineMapper.getVoltageByLineId(line.getId());
|
||||
//监测点限值
|
||||
DictData scaleResult = dicDataFeignClient.getDicDataById(voltage.getScale()).getData();
|
||||
float scaTmp = Float.parseFloat(scaleResult.getValue());
|
||||
Overlimit overlimit = COverlimitUtil.globalAssemble(scaTmp, lineDetail.getDealCapacity(), lineDetail.getDevCapacity(), lineDetail.getShortCapacity(), 1, 0);
|
||||
|
||||
if (Objects.isNull(lineParam.getVoltageDev())) {
|
||||
overlimit.setVoltageDev(overlimit.getVoltageDev());
|
||||
} else {
|
||||
overlimit.setVoltageDev(lineParam.getVoltageDev());
|
||||
}
|
||||
if (Objects.isNull(lineParam.getUvoltageDev())) {
|
||||
overlimit.setUvoltageDev(overlimit.getUvoltageDev());
|
||||
} else {
|
||||
overlimit.setUvoltageDev(lineParam.getUvoltageDev());
|
||||
}
|
||||
//Overlimit overlimit = new Overlimit(line.getId(), scaTmp, lineDetail.getShortCapacity(), lineDetail.getStandardCapacity(), lineDetail.getDealCapacity(), lineDetail.getDevCapacity());
|
||||
overlimitMapper.deleteById(line.getId());
|
||||
|
||||
overlimit.setId(line.getId());
|
||||
overlimitMapper.insert(overlimit);
|
||||
DeptLine deptLine = new DeptLine();
|
||||
deptLine.setId(syncTerminalParam.getDeptId());
|
||||
deptLine.setLineId(line.getId());
|
||||
deptLineMapper.insert(deptLine);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
private String saveTerminalInfo(List<OracleTerminalExcel> oracleTerminalExcels, List<OverLimitExcel> overLimitExcels) {
|
||||
List<OracleTerminalExcel.OracleTerminalExcelMsg> oracleTerminalExcelMsg = new ArrayList<>();
|
||||
|
||||
Reference in New Issue
Block a user