From c84468884a0e21ea61ea2b7107e6ecd6f7f0b39c Mon Sep 17 00:00:00 2001 From: xuyang <748613696@qq.com> Date: Tue, 29 Aug 2023 17:13:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=97=E5=85=B8=E8=A7=A3=E6=9E=90=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/njcn/access/enums/DataModel.java | 2 + .../njcn/access/pojo/dto/data/WaveDto.java | 36 +++++++++++++ .../access/pojo/dto/data/WaveParamDto.java | 31 +++++++++++ .../access/pojo/dto/devModel/TemplateDto.java | 4 ++ .../service/impl/CsDevModelServiceImpl.java | 52 +++++++++++++++++-- 5 files changed, 122 insertions(+), 3 deletions(-) create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/WaveDto.java create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/WaveParamDto.java diff --git a/iot-access/access-api/src/main/java/com/njcn/access/enums/DataModel.java b/iot-access/access-api/src/main/java/com/njcn/access/enums/DataModel.java index 290a41b..c4d0284 100644 --- a/iot-access/access-api/src/main/java/com/njcn/access/enums/DataModel.java +++ b/iot-access/access-api/src/main/java/com/njcn/access/enums/DataModel.java @@ -36,6 +36,8 @@ public interface DataModel { String CTRL = "Ctrl"; + String WAVE = "Wave"; + /** * 数据模型临时表 */ diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/WaveDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/WaveDto.java new file mode 100644 index 0000000..9aaa604 --- /dev/null +++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/WaveDto.java @@ -0,0 +1,36 @@ +package com.njcn.access.pojo.dto.data; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2023/8/29 15:39 + */ +@Data +public class WaveDto implements Serializable { + + @SerializedName("OpAttr") + @NotNull(message = "读写操作属性,不为空") + private String opAttr; + + @SerializedName("Name") + @NotNull(message = "事件信息名称,不为空") + private String name; + + @SerializedName("Idx") + @NotNull(message = "事件编号,不为空") + private Integer idx; + + @SerializedName("Parm") + private List param; + +} diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/WaveParamDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/WaveParamDto.java new file mode 100644 index 0000000..a534e2d --- /dev/null +++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/WaveParamDto.java @@ -0,0 +1,31 @@ +package com.njcn.access.pojo.dto.data; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2023/8/29 15:40 + */ +@Data +public class WaveParamDto implements Serializable { + + @SerializedName("Name") + @NotNull(message = "参数名称,不为空") + private String name; + + @SerializedName("Type") + @NotNull(message = "参数类型,不为空") + private String type; + + @SerializedName("Data") + @NotNull(message = "参数值,不为空") + private Object data; + +} diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/TemplateDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/TemplateDto.java index eb38708..145bca2 100644 --- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/TemplateDto.java +++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/TemplateDto.java @@ -95,4 +95,8 @@ public class TemplateDto implements Serializable { @ApiModelProperty("控制") private List ctrlDto; + @SerializedName("Wave") + @ApiModelProperty("波形文件") + private List waveDto; + } 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 b5ae959..9483e2f 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 @@ -20,8 +20,10 @@ import com.njcn.oss.constant.OssPath; import com.njcn.oss.utils.FileStorageUtil; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.EleEvtFeignClient; +import com.njcn.system.api.EleWaveFeignClient; import com.njcn.system.api.EpdFeignClient; import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.pojo.param.CsWaveParam; import com.njcn.system.pojo.param.EleEpdPqdParam; import com.njcn.system.pojo.param.EleEvtParam; import com.njcn.system.pojo.po.EleEpdPqd; @@ -74,6 +76,8 @@ public class CsDevModelServiceImpl implements ICsDevModelService { private final CsLogsFeignClient csLogsFeignClient; + private final EleWaveFeignClient waveFeignClient; + @Override @Transactional(rollbackFor = {Exception.class}) public void addModel(MultipartFile file) { @@ -232,17 +236,22 @@ public class CsDevModelServiceImpl implements ICsDevModelService { EleEpdPqd po = epdFeignClient.add(eleEpdPqdParam).getData(); if (CollectionUtil.isNotEmpty(evt.getParam())){ evt.getParam().forEach(param->{ + //录入字典表 + eleEpdPqdParam.setName(param.getName()); + eleEpdPqdParam.setOtherName(param.getName()); + eleEpdPqdParam.setShowName(param.getName()); + eleEpdPqdParam.setSort(evt.getIdx()); + eleEpdPqdParam.setDataType(id); + eleEpdPqdParam.setPhase("M"); + epdFeignClient.add(eleEpdPqdParam).getData(); //录入关系表 EleEvtParam eleEvtParam = new EleEvtParam(); eleEvtParam.setPid(po.getId()); eleEvtParam.setData(param.getData()); eleEvtParam.setName(param.getName()); - eleEvtParam.setShowName(param.getName()); eleEvtParam.setType(param.getType()); eleEvtParam.setUnit(param.getUnit()); eleEvtFeignClient.add(eleEvtParam); - //录入字典表 - }); } } @@ -570,6 +579,43 @@ public class CsDevModelServiceImpl implements ICsDevModelService { } }); break; + case DataModel.WAVE: + log.info("处理wave字典数据"); + List waveDto = templateDto.getWaveDto(); + waveDto.forEach(wave->{ + String id = dicDataFeignClient.getDicDataByCode(item).getData().getId(); + List list = epdFeignClient.judgeExist(wave.getName(),id).getData(); + if (CollectionUtil.isEmpty(list)){ + EleEpdPqdParam eleEpdPqdParam = new EleEpdPqdParam(); + eleEpdPqdParam.setName(wave.getName()); + eleEpdPqdParam.setOtherName(wave.getName()); + eleEpdPqdParam.setShowName(wave.getName()); + eleEpdPqdParam.setSort(wave.getIdx()); + eleEpdPqdParam.setDataType(id); + eleEpdPqdParam.setPhase("M"); + EleEpdPqd po = epdFeignClient.add(eleEpdPqdParam).getData(); + if (CollectionUtil.isNotEmpty(wave.getParam())){ + wave.getParam().forEach(param->{ + //录入字典表 + eleEpdPqdParam.setName(param.getName()); + eleEpdPqdParam.setOtherName(param.getName()); + eleEpdPqdParam.setShowName(param.getName()); + eleEpdPqdParam.setSort(wave.getIdx()); + eleEpdPqdParam.setDataType(id); + eleEpdPqdParam.setPhase("M"); + epdFeignClient.add(eleEpdPqdParam); + //录入关系表 + CsWaveParam csWaveParam = new CsWaveParam(); + csWaveParam.setPid(po.getId()); + csWaveParam.setName(param.getName()); + csWaveParam.setType(param.getType()); + csWaveParam.setData(param.getData().toString()); + waveFeignClient.add(csWaveParam); + }); + } + } + }); + break; default: break; }