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 d904751..22ae444 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("DataLevel") + @NotNull(message = "数据标识(一次值、二次值),不可为空") + @ApiModelProperty("Primary-一次值;Secondary-二次值") + private String dataLevel; + @SerializedName("DataArray") @NotEmpty(message = "数据集合描述,不可为空") private List dataArrayDtoList; diff --git a/iot-access/access-boot/src/main/java/com/njcn/access/handler/MqttMessageHandler.java b/iot-access/access-boot/src/main/java/com/njcn/access/handler/MqttMessageHandler.java index 50e6c12..a62c48e 100644 --- a/iot-access/access-boot/src/main/java/com/njcn/access/handler/MqttMessageHandler.java +++ b/iot-access/access-boot/src/main/java/com/njcn/access/handler/MqttMessageHandler.java @@ -460,8 +460,8 @@ public class MqttMessageHandler { case 4865: //设置心跳时间,超时改为掉线 redisUtil.saveByKeyWithExpire("MQTT:" + nDid, Instant.now().toEpochMilli(),180L); - //装置改成在线 - csEquipmentDeliveryService.updateRunStatusBynDid(nDid,AccessEnum.ONLINE.getCode()); + //有心跳,则将装置改成在线 + //csEquipmentDeliveryService.updateRunStatusBynDid(nDid,AccessEnum.ONLINE.getCode()); //处理心跳 ReqAndResDto.Res reqAndResParam = new ReqAndResDto.Res(); reqAndResParam.setMid(res.getMid()); diff --git a/iot-access/access-boot/src/main/java/com/njcn/access/runner/AccessApplicationRunner.java b/iot-access/access-boot/src/main/java/com/njcn/access/runner/AccessApplicationRunner.java index fc726b4..716417d 100644 --- a/iot-access/access-boot/src/main/java/com/njcn/access/runner/AccessApplicationRunner.java +++ b/iot-access/access-boot/src/main/java/com/njcn/access/runner/AccessApplicationRunner.java @@ -1,47 +1,47 @@ -package com.njcn.access.runner; - -import com.njcn.access.service.ICsEquipmentDeliveryService; -import com.njcn.access.service.ICsTopicService; -import com.njcn.access.service.impl.CsDeviceServiceImpl; -import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.ApplicationArguments; -import org.springframework.boot.ApplicationRunner; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.util.List; -import java.util.Objects; - -/** - * 类的介绍:用来重新发起设备的接入,存在程序意外停止了,缓存失效导致无法更新装置的状态,所以需要在程序启动时发起设备的接入 - * - * @author xuyang - * @version 1.0.0 - * @createTime 2023/8/28 13:57 - */ -@Component -@Slf4j -public class AccessApplicationRunner implements ApplicationRunner { - - @Resource - private CsDeviceServiceImpl csDeviceService; - - @Resource - private ICsTopicService csTopicService; - - @Resource - private ICsEquipmentDeliveryService csEquipmentDeliveryService; - - @Override - public void run(ApplicationArguments args){ - List list = csEquipmentDeliveryService.getAll(); - list.forEach(item->{ - String version = csTopicService.getVersion(item.getNdid()); - if (!Objects.isNull(version)){ - csDeviceService.devAccess(item.getNdid(),version); - } - }); - } - -} +//package com.njcn.access.runner; +// +//import com.njcn.access.service.ICsEquipmentDeliveryService; +//import com.njcn.access.service.ICsTopicService; +//import com.njcn.access.service.impl.CsDeviceServiceImpl; +//import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.boot.ApplicationArguments; +//import org.springframework.boot.ApplicationRunner; +//import org.springframework.stereotype.Component; +// +//import javax.annotation.Resource; +//import java.util.List; +//import java.util.Objects; +// +///** +// * 类的介绍:用来重新发起设备的接入,存在程序意外停止了,缓存失效导致无法更新装置的状态,所以需要在程序启动时发起设备的接入 +// * +// * @author xuyang +// * @version 1.0.0 +// * @createTime 2023/8/28 13:57 +// */ +//@Component +//@Slf4j +//public class AccessApplicationRunner implements ApplicationRunner { +// +// @Resource +// private CsDeviceServiceImpl csDeviceService; +// +// @Resource +// private ICsTopicService csTopicService; +// +// @Resource +// private ICsEquipmentDeliveryService csEquipmentDeliveryService; +// +// @Override +// public void run(ApplicationArguments args){ +// List list = csEquipmentDeliveryService.getAll(); +// list.forEach(item->{ +// String version = csTopicService.getVersion(item.getNdid()); +// if (!Objects.isNull(version)){ +// csDeviceService.devAccess(item.getNdid(),version); +// } +// }); +// } +// +//} 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 ef79c8b..a2c0bad 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 @@ -689,18 +689,19 @@ public class CsDevModelServiceImpl implements ICsDevModelService { if (CollectionUtil.isNotEmpty(dataSetList)){ dataSetList.forEach(item1->{ String id = IdUtil.fastSimpleUUID(); - CsDataSet CsDataSet = new CsDataSet(); - CsDataSet.setId(id); - CsDataSet.setPid(pId); - CsDataSet.setName(item1.getName()); - CsDataSet.setAnotherName(dataSetName(item1.getName(),code)); - CsDataSet.setIdx(item1.getIdx()); - CsDataSet.setPeriod(item1.getPeriod()); - CsDataSet.setStoreFlag(item1.getStoreFlag()); - CsDataSet.setDataList(String.join(",",templateDto.getDataList())); - CsDataSet.setType(0); - CsDataSet.setClDev(0); - setList.add(CsDataSet); + CsDataSet csDataSet = new CsDataSet(); + csDataSet.setId(id); + csDataSet.setPid(pId); + csDataSet.setName(item1.getName()); + csDataSet.setAnotherName(dataSetName(item1.getName(),code)); + csDataSet.setIdx(item1.getIdx()); + csDataSet.setPeriod(item1.getPeriod()); + csDataSet.setStoreFlag(item1.getStoreFlag()); + csDataSet.setDataList(String.join(",",templateDto.getDataList())); + csDataSet.setType(0); + csDataSet.setClDev(0); + csDataSet.setDataLevel(item1.getDataLevel()); + setList.add(csDataSet); List list = item1.getDataArrayDtoList(); if(CollectionUtil.isNotEmpty(list)) { int i = 0; @@ -724,23 +725,24 @@ public class CsDevModelServiceImpl implements ICsDevModelService { if (CollectionUtil.isNotEmpty(clDataSetList)){ clDataSetList.forEach(item4->{ String id = IdUtil.fastSimpleUUID(); - CsDataSet CsDataSet = new CsDataSet(); - CsDataSet.setId(id); - CsDataSet.setPid(pId); - CsDataSet.setName(item4.getName()); - CsDataSet.setAnotherName(dataSetName(item4.getName(),code)); - CsDataSet.setIdx(item4.getIdx()); - CsDataSet.setPeriod(item4.getPeriod()); - CsDataSet.setStoreFlag(item4.getStoreFlag()); - CsDataSet.setDataList(String.join(",",item3.getDataList())); + CsDataSet csDataSet = new CsDataSet(); + csDataSet.setId(id); + csDataSet.setPid(pId); + csDataSet.setName(item4.getName()); + csDataSet.setAnotherName(dataSetName(item4.getName(),code)); + csDataSet.setIdx(item4.getIdx()); + csDataSet.setPeriod(item4.getPeriod()); + csDataSet.setStoreFlag(item4.getStoreFlag()); + csDataSet.setDataList(String.join(",",item3.getDataList())); + csDataSet.setDataLevel(item4.getDataLevel()); //fixme 先用数据类型来区分模板的类型 if (item3.getDataList().contains("Apf") || item3.getDataList().contains("Dvr")){ - CsDataSet.setType(1); + csDataSet.setType(1); } else { - CsDataSet.setType(2); + csDataSet.setType(2); } - CsDataSet.setClDev(item3.getClDid()); - setList.add(CsDataSet); + csDataSet.setClDev(item3.getClDid()); + setList.add(csDataSet); List list = item4.getDataArrayDtoList(); if(CollectionUtil.isNotEmpty(list)) { @@ -1063,14 +1065,14 @@ public class CsDevModelServiceImpl implements ICsDevModelService { showName = "APF模块8数据"; break; case "Ds$Pqd$Stat$01": - if (Objects.isNull(code)){ + if (Objects.equals(code, DicDataEnum.CONNECT_DEV.getCode()) || Objects.isNull(code)){ showName = "电网侧数据"; } else if (Objects.equals(code, DicDataEnum.PORTABLE.getCode())){ showName = "监测1路数据"; } break; case "Ds$Pqd$Stat$02": - if (Objects.isNull(code)){ + if (Objects.equals(code, DicDataEnum.CONNECT_DEV.getCode()) || Objects.isNull(code)){ showName = "负载侧数据"; } else if (Objects.equals(code, DicDataEnum.PORTABLE.getCode())){ showName = "监测2路数据";