新增一次值、二次值标识

This commit is contained in:
xy
2024-08-09 08:30:43 +08:00
parent 329143772b
commit 6a0e15ef84
4 changed files with 83 additions and 76 deletions

View File

@@ -36,6 +36,11 @@ public class DataSetDto implements Serializable {
@ApiModelProperty("0-不存储;1-存储") @ApiModelProperty("0-不存储;1-存储")
private Integer storeFlag; private Integer storeFlag;
@SerializedName("DataLevel")
@NotNull(message = "数据标识(一次值、二次值),不可为空")
@ApiModelProperty("Primary-一次值;Secondary-二次值")
private String dataLevel;
@SerializedName("DataArray") @SerializedName("DataArray")
@NotEmpty(message = "数据集合描述,不可为空") @NotEmpty(message = "数据集合描述,不可为空")
private List<DataArrayDto> dataArrayDtoList; private List<DataArrayDto> dataArrayDtoList;

View File

@@ -460,8 +460,8 @@ public class MqttMessageHandler {
case 4865: case 4865:
//设置心跳时间,超时改为掉线 //设置心跳时间,超时改为掉线
redisUtil.saveByKeyWithExpire("MQTT:" + nDid, Instant.now().toEpochMilli(),180L); 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(); ReqAndResDto.Res reqAndResParam = new ReqAndResDto.Res();
reqAndResParam.setMid(res.getMid()); reqAndResParam.setMid(res.getMid());

View File

@@ -1,47 +1,47 @@
package com.njcn.access.runner; //package com.njcn.access.runner;
//
import com.njcn.access.service.ICsEquipmentDeliveryService; //import com.njcn.access.service.ICsEquipmentDeliveryService;
import com.njcn.access.service.ICsTopicService; //import com.njcn.access.service.ICsTopicService;
import com.njcn.access.service.impl.CsDeviceServiceImpl; //import com.njcn.access.service.impl.CsDeviceServiceImpl;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; //import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments; //import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner; //import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
import javax.annotation.Resource; //import javax.annotation.Resource;
import java.util.List; //import java.util.List;
import java.util.Objects; //import java.util.Objects;
//
/** ///**
* 类的介绍:用来重新发起设备的接入,存在程序意外停止了,缓存失效导致无法更新装置的状态,所以需要在程序启动时发起设备的接入 // * 类的介绍:用来重新发起设备的接入,存在程序意外停止了,缓存失效导致无法更新装置的状态,所以需要在程序启动时发起设备的接入
* // *
* @author xuyang // * @author xuyang
* @version 1.0.0 // * @version 1.0.0
* @createTime 2023/8/28 13:57 // * @createTime 2023/8/28 13:57
*/ // */
@Component //@Component
@Slf4j //@Slf4j
public class AccessApplicationRunner implements ApplicationRunner { //public class AccessApplicationRunner implements ApplicationRunner {
//
@Resource // @Resource
private CsDeviceServiceImpl csDeviceService; // private CsDeviceServiceImpl csDeviceService;
//
@Resource // @Resource
private ICsTopicService csTopicService; // private ICsTopicService csTopicService;
//
@Resource // @Resource
private ICsEquipmentDeliveryService csEquipmentDeliveryService; // private ICsEquipmentDeliveryService csEquipmentDeliveryService;
//
@Override // @Override
public void run(ApplicationArguments args){ // public void run(ApplicationArguments args){
List<CsEquipmentDeliveryPO> list = csEquipmentDeliveryService.getAll(); // List<CsEquipmentDeliveryPO> list = csEquipmentDeliveryService.getAll();
list.forEach(item->{ // list.forEach(item->{
String version = csTopicService.getVersion(item.getNdid()); // String version = csTopicService.getVersion(item.getNdid());
if (!Objects.isNull(version)){ // if (!Objects.isNull(version)){
csDeviceService.devAccess(item.getNdid(),version); // csDeviceService.devAccess(item.getNdid(),version);
} // }
}); // });
} // }
//
} //}

View File

@@ -689,18 +689,19 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
if (CollectionUtil.isNotEmpty(dataSetList)){ if (CollectionUtil.isNotEmpty(dataSetList)){
dataSetList.forEach(item1->{ dataSetList.forEach(item1->{
String id = IdUtil.fastSimpleUUID(); String id = IdUtil.fastSimpleUUID();
CsDataSet CsDataSet = new CsDataSet(); CsDataSet csDataSet = new CsDataSet();
CsDataSet.setId(id); csDataSet.setId(id);
CsDataSet.setPid(pId); csDataSet.setPid(pId);
CsDataSet.setName(item1.getName()); csDataSet.setName(item1.getName());
CsDataSet.setAnotherName(dataSetName(item1.getName(),code)); csDataSet.setAnotherName(dataSetName(item1.getName(),code));
CsDataSet.setIdx(item1.getIdx()); csDataSet.setIdx(item1.getIdx());
CsDataSet.setPeriod(item1.getPeriod()); csDataSet.setPeriod(item1.getPeriod());
CsDataSet.setStoreFlag(item1.getStoreFlag()); csDataSet.setStoreFlag(item1.getStoreFlag());
CsDataSet.setDataList(String.join(",",templateDto.getDataList())); csDataSet.setDataList(String.join(",",templateDto.getDataList()));
CsDataSet.setType(0); csDataSet.setType(0);
CsDataSet.setClDev(0); csDataSet.setClDev(0);
setList.add(CsDataSet); csDataSet.setDataLevel(item1.getDataLevel());
setList.add(csDataSet);
List<DataArrayDto> list = item1.getDataArrayDtoList(); List<DataArrayDto> list = item1.getDataArrayDtoList();
if(CollectionUtil.isNotEmpty(list)) { if(CollectionUtil.isNotEmpty(list)) {
int i = 0; int i = 0;
@@ -724,23 +725,24 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
if (CollectionUtil.isNotEmpty(clDataSetList)){ if (CollectionUtil.isNotEmpty(clDataSetList)){
clDataSetList.forEach(item4->{ clDataSetList.forEach(item4->{
String id = IdUtil.fastSimpleUUID(); String id = IdUtil.fastSimpleUUID();
CsDataSet CsDataSet = new CsDataSet(); CsDataSet csDataSet = new CsDataSet();
CsDataSet.setId(id); csDataSet.setId(id);
CsDataSet.setPid(pId); csDataSet.setPid(pId);
CsDataSet.setName(item4.getName()); csDataSet.setName(item4.getName());
CsDataSet.setAnotherName(dataSetName(item4.getName(),code)); csDataSet.setAnotherName(dataSetName(item4.getName(),code));
CsDataSet.setIdx(item4.getIdx()); csDataSet.setIdx(item4.getIdx());
CsDataSet.setPeriod(item4.getPeriod()); csDataSet.setPeriod(item4.getPeriod());
CsDataSet.setStoreFlag(item4.getStoreFlag()); csDataSet.setStoreFlag(item4.getStoreFlag());
CsDataSet.setDataList(String.join(",",item3.getDataList())); csDataSet.setDataList(String.join(",",item3.getDataList()));
csDataSet.setDataLevel(item4.getDataLevel());
//fixme 先用数据类型来区分模板的类型 //fixme 先用数据类型来区分模板的类型
if (item3.getDataList().contains("Apf") || item3.getDataList().contains("Dvr")){ if (item3.getDataList().contains("Apf") || item3.getDataList().contains("Dvr")){
CsDataSet.setType(1); csDataSet.setType(1);
} else { } else {
CsDataSet.setType(2); csDataSet.setType(2);
} }
CsDataSet.setClDev(item3.getClDid()); csDataSet.setClDev(item3.getClDid());
setList.add(CsDataSet); setList.add(csDataSet);
List<DataArrayDto> list = item4.getDataArrayDtoList(); List<DataArrayDto> list = item4.getDataArrayDtoList();
if(CollectionUtil.isNotEmpty(list)) { if(CollectionUtil.isNotEmpty(list)) {
@@ -1063,14 +1065,14 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
showName = "APF模块8数据"; showName = "APF模块8数据";
break; break;
case "Ds$Pqd$Stat$01": case "Ds$Pqd$Stat$01":
if (Objects.isNull(code)){ if (Objects.equals(code, DicDataEnum.CONNECT_DEV.getCode()) || Objects.isNull(code)){
showName = "电网侧数据"; showName = "电网侧数据";
} else if (Objects.equals(code, DicDataEnum.PORTABLE.getCode())){ } else if (Objects.equals(code, DicDataEnum.PORTABLE.getCode())){
showName = "监测1路数据"; showName = "监测1路数据";
} }
break; break;
case "Ds$Pqd$Stat$02": case "Ds$Pqd$Stat$02":
if (Objects.isNull(code)){ if (Objects.equals(code, DicDataEnum.CONNECT_DEV.getCode()) || Objects.isNull(code)){
showName = "负载侧数据"; showName = "负载侧数据";
} else if (Objects.equals(code, DicDataEnum.PORTABLE.getCode())){ } else if (Objects.equals(code, DicDataEnum.PORTABLE.getCode())){
showName = "监测2路数据"; showName = "监测2路数据";