diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/DataSetDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/DataSetDto.java index 22ae444..853a514 100644 --- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/DataSetDto.java +++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/DataSetDto.java @@ -36,6 +36,11 @@ public class DataSetDto implements Serializable { @ApiModelProperty("0-不存储;1-存储") private Integer storeFlag; + @SerializedName("DataAttr") + @NotNull(message = "数据集类型") + @ApiModelProperty("Stat-统计数据 Rt-实时数据") + private String dataAttr; + @SerializedName("DataLevel") @NotNull(message = "数据标识(一次值、二次值),不可为空") @ApiModelProperty("Primary-一次值;Secondary-二次值") diff --git a/iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsDevModelServiceImpl.java b/iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsDevModelServiceImpl.java index af05274..a16578f 100644 --- a/iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsDevModelServiceImpl.java +++ b/iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsDevModelServiceImpl.java @@ -851,6 +851,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { csDataSet.setPeriod(item1.getPeriod()); csDataSet.setStoreFlag(item1.getStoreFlag()); csDataSet.setDataList(String.join(",",templateDto.getDataList())); + csDataSet.setDataType(item1.getDataAttr()); csDataSet.setType(0); csDataSet.setClDev(0); csDataSet.setDataLevel(item1.getDataLevel()); @@ -888,6 +889,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { csDataSet.setStoreFlag(item4.getStoreFlag()); csDataSet.setDataList(String.join(",",item3.getDataList())); csDataSet.setDataLevel(item4.getDataLevel()); + csDataSet.setDataType(item4.getDataAttr()); //fixme 先用数据类型来区分模板的类型 if (item3.getDataList().contains("Apf") || item3.getDataList().contains("Dvr")){ csDataSet.setType(1); @@ -1187,7 +1189,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { * 数据集名称调整 */ public String dataSetName(String name,String code){ - String showName = null; + String showName = name; switch (name) { //数据集 case "Ds$Apf$Master$01": diff --git a/iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsDeviceServiceImpl.java b/iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsDeviceServiceImpl.java index 5304b24..0abb4f4 100644 --- a/iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsDeviceServiceImpl.java +++ b/iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsDeviceServiceImpl.java @@ -20,11 +20,10 @@ import com.njcn.access.utils.MqttUtil; import com.njcn.common.pojo.dto.DeviceLogDTO; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; -import com.njcn.csdevice.api.CsLogsFeignClient; -import com.njcn.csdevice.api.EquipmentFeignClient; -import com.njcn.csdevice.api.ProcessFeignClient; +import com.njcn.csdevice.api.*; import com.njcn.csdevice.pojo.param.CsDevModelRelationAddParm; import com.njcn.csdevice.pojo.param.CsLedgerParam; +import com.njcn.csdevice.pojo.param.CsLineParam; import com.njcn.csdevice.pojo.po.*; import com.njcn.csdevice.pojo.vo.CsEquipmentDeliveryVO; import com.njcn.redis.pojo.enums.AppRedisKey; @@ -76,6 +75,8 @@ public class CsDeviceServiceImpl implements ICsDeviceService { private final CsDeviceUserPOService csDeviceUserPOService; private final ICsDataSetService csDataSetService; private final ChannelObjectUtil channelObjectUtil; + private final CsLineFeignClient csLineFeignClient; + private final DataSetFeignClient dataSetFeignClient; @Override @Transactional(rollbackFor = {Exception.class}) @@ -361,7 +362,7 @@ public class CsDeviceServiceImpl implements ICsDeviceService { @Transactional(rollbackFor = Exception.class) public boolean manualAccess(String nDid) { String version = csTopicService.getVersion(nDid); - return devAccessAskTemplate(nDid,version,new Random().nextInt(10000)); + return devAccessAskTemplate(nDid,version,1); } @@ -534,6 +535,7 @@ public class CsDeviceServiceImpl implements ICsDeviceService { @Transactional(rollbackFor = Exception.class) public boolean devAccessAskTemplate(String nDid,String version,Integer mid) { boolean result = false; + Map modelMap = new HashMap<>(); try { redisUtil.delete(AppRedisKey.MODEL + nDid); //询问装置当前所用模板 @@ -557,9 +559,17 @@ public class CsDeviceServiceImpl implements ICsDeviceService { po.setDid(item.getDid()); po.setUpdateTime(LocalDateTime.now()); csDevModelRelationService.addRelation(po); + modelMap.put(item.getType(),item.getModelId()); + } + //修改监测点使用的模板和数据集 + List lineList = csLineFeignClient.findByNdid(nDid).getData(); + for (CsLinePO item : lineList) { + if (item.getClDid() == 0) { + updateLineIds(modelMap.get(0),item.getClDid(),nDid); + } else { + updateLineIds(modelMap.get(1),item.getClDid(),nDid); + } } - //fixme 修改监测点使用的模板和数据集 - //发起接入 reqAndResParam.setType(Integer.parseInt(TypeEnum.TYPE_5.getCode())); publisher.send("/Pfm/DevCmd/"+version+"/"+nDid, new Gson().toJson(reqAndResParam),1,false); @@ -573,6 +583,20 @@ public class CsDeviceServiceImpl implements ICsDeviceService { return result; } + /** + * 修改监测点的模板id和数据集id + */ + public void updateLineIds(String modelId, Integer clDid, String nDid) { + CsDataSet dataSet = dataSetFeignClient.getSetByModelId(modelId,clDid).getData().get(0); + CsLineParam csLineParam = new CsLineParam(); + csLineParam.setLineId(nDid + clDid); + csLineParam.setDataSetId(dataSet.getId()); + csLineParam.setModelId(modelId); + csLineFeignClient.updateIds(csLineParam); + } + + + /** * 平台对设备发起主题询问命令 */