模板适配调整

This commit is contained in:
xy
2024-10-09 14:58:31 +08:00
parent 6c1bf03c9c
commit 9f4793e276
3 changed files with 38 additions and 7 deletions

View File

@@ -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-二次值")

View File

@@ -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":

View File

@@ -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<Integer,String> 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<CsLinePO> 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);
}
/**
* 平台对设备发起主题询问命令
*/