1.设备注册接入优化
2.波形文件接收、解析功能调整
This commit is contained in:
@@ -217,7 +217,6 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
|
||||
csLedgerParam.setSort(0);
|
||||
csLedgerService.addLedgerTree(csLedgerParam);
|
||||
List<CsModelDto> modelId = objectToList(redisUtil.getObjectByKey(AppRedisKey.MODEL + devAccessParam.getNDid()));
|
||||
Integer clDid = null, moduleNumber = null;
|
||||
//2.新增装置-模板关系、获取电能质量的逻辑设备id
|
||||
for (CsModelDto item : modelId) {
|
||||
CsDevModelRelationAddParm csDevModelRelationAddParm = new CsDevModelRelationAddParm();
|
||||
@@ -225,36 +224,6 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
|
||||
csDevModelRelationAddParm.setModelId(item.getModelId());
|
||||
csDevModelRelationAddParm.setDid(item.getDid());
|
||||
csDevModelRelationService.addDevModelRelation(csDevModelRelationAddParm);
|
||||
if (Objects.equals(item.getType(),1)){
|
||||
clDid = item.getDid();
|
||||
}
|
||||
if (Objects.equals(item.getType(),0)){
|
||||
moduleNumber = item.getModuleNumber();
|
||||
}
|
||||
}
|
||||
if (Objects.isNull(clDid)){
|
||||
logDto.setResult(0);
|
||||
logDto.setFailReason(AccessResponseEnum.CLDID_IS_NULL.getMessage());
|
||||
csLogsFeignClient.addUserLog(logDto);
|
||||
throw new BusinessException(AccessResponseEnum.CLDID_IS_NULL);
|
||||
}
|
||||
if (Objects.isNull(moduleNumber)){
|
||||
logDto.setResult(0);
|
||||
logDto.setFailReason(AccessResponseEnum.MODULE_NUMBER_IS_NULL.getMessage());
|
||||
csLogsFeignClient.addUserLog(logDto);
|
||||
throw new BusinessException(AccessResponseEnum.MODULE_NUMBER_IS_NULL);
|
||||
}
|
||||
askDevData(devAccessParam.getNDid(),AccessEnum.L_DEV_INFO.getCode(),version,clDid);
|
||||
List<RspDataDto.LdevInfo> list = new ArrayList<>();
|
||||
//等待mqtt数据
|
||||
Thread.sleep(500);
|
||||
String key = AppRedisKey.LINE_DATA + devAccessParam.getNDid();
|
||||
list = objectToList2(redisUtil.getObjectByKey(key));
|
||||
if (CollectionUtils.isEmpty(list)){
|
||||
logDto.setResult(0);
|
||||
logDto.setFailReason(AccessResponseEnum.LDEVINFO_IS_NULL.getMessage());
|
||||
csLogsFeignClient.addUserLog(logDto);
|
||||
throw new BusinessException(AccessResponseEnum.LDEVINFO_IS_NULL);
|
||||
}
|
||||
//3.监测点表录入关系
|
||||
for (DevAccessParam.LineParam item : devAccessParam.getList()) {
|
||||
@@ -266,24 +235,14 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
|
||||
po.setPosition(item.getPosition());
|
||||
po.setClDid(0);
|
||||
if (Objects.equals(DicDataEnum.GRID_SIDE.getCode(),location)){
|
||||
RspDataDto.LdevInfo po1 = list.stream().filter(s -> Objects.equals(s.getClDid(),1)).findFirst().orElse(null);
|
||||
po.setLineId(devAccessParam.getNDid() + "1");
|
||||
param.setId(devAccessParam.getNDid() + "1");
|
||||
appLineTopologyDiagramPo.setLineId(devAccessParam.getNDid() + "1");
|
||||
po.setVolGrade(po1.getVolGrade());
|
||||
po.setPtRatio(po1.getPtRatio());
|
||||
po.setCtRatio(po1.getCtRatio());
|
||||
po.setConType(po1.getConType());
|
||||
po.setClDid(1);
|
||||
} else if (Objects.equals(DicDataEnum.LOAD_SIDE.getCode(),location)){
|
||||
RspDataDto.LdevInfo po1 = list.stream().filter(s -> Objects.equals(s.getClDid(),2)).findFirst().orElse(null);
|
||||
po.setLineId(devAccessParam.getNDid() + "2");
|
||||
param.setId(devAccessParam.getNDid() + "2");
|
||||
appLineTopologyDiagramPo.setLineId(devAccessParam.getNDid() + "2");
|
||||
po.setVolGrade(po1.getVolGrade());
|
||||
po.setPtRatio(po1.getPtRatio());
|
||||
po.setCtRatio(po1.getCtRatio());
|
||||
po.setConType(po1.getConType());
|
||||
po.setClDid(2);
|
||||
} else {
|
||||
po.setLineId(devAccessParam.getNDid() + "0");
|
||||
@@ -321,34 +280,13 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
|
||||
po.setSubUserId(RequestUtil.getUserIndex());
|
||||
po.setDeviceId(vo.getId());
|
||||
csDeviceUserService.saveBatch(Collections.singletonList(po));
|
||||
//6.录入软件信息 SoftInfo
|
||||
askDevData(devAccessParam.getNDid(),AccessEnum.SOFT_INFO.getCode(),version,0);
|
||||
//等待mqtt数据
|
||||
Thread.sleep(500);
|
||||
String key2 = AppRedisKey.SOFTINFO + devAccessParam.getNDid();
|
||||
RspDataDto.SoftInfo softInfo = JSON.parseObject(JSON.toJSONString(redisUtil.getObjectByKey(key2)), RspDataDto.SoftInfo.class);
|
||||
if (Objects.isNull(softInfo)){
|
||||
logDto.setResult(0);
|
||||
logDto.setFailReason(AccessResponseEnum.SOFTINFO_IS_NULL.getMessage());
|
||||
csLogsFeignClient.addUserLog(logDto);
|
||||
throw new BusinessException(AccessResponseEnum.SOFTINFO_IS_NULL);
|
||||
}
|
||||
//记录设备软件信息
|
||||
CsSoftInfoPO csSoftInfoPo = new CsSoftInfoPO();
|
||||
BeanUtils.copyProperties(softInfo,csSoftInfoPo);
|
||||
csSoftInfoPo.setAppDate(new SimpleDateFormat("yyyy-MM-dd").parse(softInfo.getAppDate()));
|
||||
csSoftInfoService.save(csSoftInfoPo);
|
||||
//更新设备表软件信息
|
||||
csEquipmentDeliveryService.updateSoftInfoBynDid(devAccessParam.getNDid(),csSoftInfoPo.getId(),moduleNumber);
|
||||
//修改装置状态
|
||||
//6.修改装置状态
|
||||
csEquipmentDeliveryService.updateStatusBynDid(devAccessParam.getNDid(), AccessEnum.REGISTERED.getCode());
|
||||
//7.发起自动接入请求
|
||||
devAccess(devAccessParam.getNDid(),version);
|
||||
//8.删除redis监测点模板信息
|
||||
redisUtil.delete(AppRedisKey.MODEL + devAccessParam.getNDid());
|
||||
redisUtil.delete(AppRedisKey.LINE + devAccessParam.getNDid());
|
||||
redisUtil.delete(AppRedisKey.LINE_DATA + devAccessParam.getNDid());
|
||||
redisUtil.delete(AppRedisKey.SOFTINFO + devAccessParam.getNDid());
|
||||
//存储日志
|
||||
csLogsFeignClient.addUserLog(logDto);
|
||||
//存储设备调试日志表
|
||||
@@ -437,33 +375,4 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
|
||||
}
|
||||
return urlList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 平台向设备发送数据命令
|
||||
*/
|
||||
public void askDevData(String nDid,Integer dataType,String version,Integer did){
|
||||
ReqAndResDto.Req reqAndResParam = new ReqAndResDto.Req();
|
||||
reqAndResParam.setMid(1);
|
||||
reqAndResParam.setPri(AccessEnum.FIRST_CHANNEL.getCode());
|
||||
reqAndResParam.setType(Integer.parseInt(TypeEnum.TYPE_6.getCode()));
|
||||
reqAndResParam.setExpire(-1);
|
||||
AskDataDto askDataDto = new AskDataDto();
|
||||
askDataDto.setDataAttr(0);
|
||||
askDataDto.setOperate(1);
|
||||
askDataDto.setStartTime(-1);
|
||||
askDataDto.setEndTime(-1);
|
||||
if (Objects.equals(dataType,AccessEnum.SOFT_INFO.getCode())){
|
||||
askDataDto.setCldid(0);
|
||||
reqAndResParam.setDid(0);
|
||||
askDataDto.setDataType(1);
|
||||
} else if (Objects.equals(dataType,AccessEnum.L_DEV_INFO.getCode())){
|
||||
askDataDto.setCldid(-1);
|
||||
reqAndResParam.setDid(did);
|
||||
askDataDto.setDataType(2);
|
||||
}
|
||||
reqAndResParam.setMsg(askDataDto);
|
||||
logger.info("询问设备软件信息(监测点信息):" + new Gson().toJson(reqAndResParam));
|
||||
publisher.send("/Pfm/DevCmd/"+version+"/"+nDid, new Gson().toJson(reqAndResParam),1,false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user