Переглянути джерело

feat(DataTwinController):数字孪生设备列表数据获取

HMY 11 місяців тому
батько
коміт
31954fe3c2

+ 25 - 0
admin/src/main/java/com/dcs/equipment/controller/DataTwinController.java

@@ -0,0 +1,25 @@
+package com.dcs.equipment.controller;
+
+import com.dcs.common.core.domain.AjaxResult;
+import com.dcs.equipment.service.DataTwinService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author: wangpx
+ * @date: 2025-05-06 09:01
+ */
+@Api
+@RestController
+@RequestMapping("/datatwin")
+public class DataTwinController {
+    @Autowired
+    private DataTwinService service;
+
+    @RequestMapping("/list")
+    public AjaxResult list() {
+        return AjaxResult.success(service.selectDataTwinList());
+    }
+}

+ 26 - 25
admin/src/main/java/com/dcs/equipment/domain/vo/DataTwinEquipmentVo.java

@@ -3,59 +3,60 @@ package com.dcs.equipment.domain.vo;
 import com.dcs.common.annotation.Excel;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @author: wangpx
  * @date: 2025-04-10 09:56
  */
 @Data
 public class DataTwinEquipmentVo {
-    private static final long serialVersionUID = 1L;
-
-    /** 设备id */
     private Long equipmentId;
 
     /** 设备地址 */
-    @Excel(name = "寄存器地址")
-    private Integer address;
+//    @Excel(name = "寄存器地址")
+//    private Integer address;
 
     /** 设备名 */
     @Excel(name = "设备名")
     private String equipmentName;
 
     /** 数据类型 */
-    @Excel(name = "数据类型")
-    private String dataType;
+//    @Excel(name = "数据类型")
+//    private String dataType;
 
-//    /** 父设备id */
-//    @Excel(name = "父设备id")
-//    private Long parentsId;
+    /** 父设备id */
+    @Excel(name = "父设备id")
+    private Long parentsId;
 
-    /** 流程id */
-    @Excel(name = "流程id")
-    private String flowId;
+//    /** 流程id */
+//    @Excel(name = "流程id")
+//    private String flowId;
 
-    /** 设备标识 */
-    @Excel(name = "设备标识")
-    private String equipmentCode;
+//    /** 设备标识 */
+//    @Excel(name = "设备标识")
+//    private String equipmentCode;
 
 //    /** 寄存器类型 */
 //    @Excel(name = "寄存器类型")
 //    @ApiModelProperty(value = "寄存器类型(1线圈3输入4保持)")
 //    private String registerCode;
 
-    /** 单位类型 */
-    @Excel(name = "单位类型")
-    private String unitType;
+//    /** 单位类型 */
+//    @Excel(name = "单位类型")
+//    private String unitType;
 
-    /** 类型 */
-    @Excel(name = "设备类型")
-    private String equipmentType;
+//    /** 类型 */
+//    @Excel(name = "设备类型")
+//    private String equipmentType;
 
-    /** 流程归属 */
-    @Excel(name = "流程归属")
-    private String flowName;
+//    /** 流程归属 */
+//    @Excel(name = "流程归属")
+//    private String flowName;
 
     /** 设备值 */
     @Excel(name = "设备值")
     private Object value;
+
+    private List<DataTwinEquipmentVo> children;
 }

+ 14 - 0
admin/src/main/java/com/dcs/equipment/service/DataTwinService.java

@@ -0,0 +1,14 @@
+package com.dcs.equipment.service;
+
+import com.dcs.equipment.domain.vo.DataTwinEquipmentVo;
+
+import java.util.List;
+
+/**
+ * @author: wangpx
+ * @date: 2025-05-06 09:03
+ */
+public interface DataTwinService {
+
+    List<DataTwinEquipmentVo> selectDataTwinList();
+}

+ 63 - 0
admin/src/main/java/com/dcs/equipment/service/impl/DataTwinServiceImpl.java

@@ -0,0 +1,63 @@
+package com.dcs.equipment.service.impl;
+
+import com.dcs.dcs.service.IDcsEquipmentService;
+import com.dcs.equipment.domain.vo.DataTwinEquipmentVo;
+import com.dcs.equipment.service.DataTwinService;
+import com.dcs.equipment.service.ModbusTcpService;
+import com.dcs.hnyz.domain.vo.EquipmentParamFormVo;
+import com.dcs.hnyz.domain.vo.EquipmentParamFormVo;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author: wangpx
+ * @date: 2025-05-06 09:09
+ */
+@Service
+public class DataTwinServiceImpl implements DataTwinService {
+    @Autowired
+    private ModbusTcpService modbusTcpService;
+    @Autowired
+    private IDcsEquipmentService dcsEquipmentService;
+
+    @Override
+    public List<DataTwinEquipmentVo> selectDataTwinList() {
+        List<EquipmentParamFormVo> equipmentFormVoList = modbusTcpService.getDataTwinEquipmentValues();
+        List<DataTwinEquipmentVo> dataTwinEquipmentVoList = new ArrayList<>();
+        // S1
+        EquipmentParamFormVo S1Temperature = equipmentFormVoList.get(68);
+        S1Temperature.setEquipmentName("S1温度");
+        extracted(dataTwinEquipmentVoList, S1Temperature);
+        EquipmentParamFormVo S1Pressure = equipmentFormVoList.get(81);
+        S1Pressure.setEquipmentName("S1压力");
+        extracted(dataTwinEquipmentVoList, S1Pressure);
+        // S2
+        EquipmentParamFormVo S2Temperature = equipmentFormVoList.get(43);
+        S2Temperature.setEquipmentName("S2温度");
+        extracted(dataTwinEquipmentVoList, S2Temperature);
+        EquipmentParamFormVo S2Pressure = equipmentFormVoList.get(45);
+        S2Pressure.setEquipmentName("S2压力");
+        extracted(dataTwinEquipmentVoList, S2Pressure);
+        // M1
+        EquipmentParamFormVo M1Pressure = equipmentFormVoList.get(48);
+        M1Pressure.setEquipmentName("M1压力");
+        extracted(dataTwinEquipmentVoList, M1Pressure);
+        // M2
+        EquipmentParamFormVo M2Pressure = equipmentFormVoList.get(84);
+        M2Pressure.setEquipmentName("M2压力");
+        extracted(dataTwinEquipmentVoList, M2Pressure);
+        return dataTwinEquipmentVoList;
+
+    }
+
+    private static void extracted(List<DataTwinEquipmentVo> dataTwinEquipmentVoList, EquipmentParamFormVo equipmentFormVo) {
+        DataTwinEquipmentVo target = new DataTwinEquipmentVo();
+        BeanUtils.copyProperties(equipmentFormVo, target);
+        dataTwinEquipmentVoList.add(target);
+    }
+}
+