From 01d6f8f32113137b83dffa888fdd80e293457646 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期四, 31 十月 2024 18:18:30 +0800
Subject: [PATCH] 测点导入功能修改,增加计算点,常量点导入导出功能

---
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/opcda/service/impl/ChannelOPCDADeviceServiceImpl.java |    7 +
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/PointImportExcelVO.java                              |   23 ++-
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/DaPointExcelVO.java                                  |   12 +
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/common/PointTypeEnum.java                               |   42 +++---
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/DaMathPointService.java                         |    2 
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaPointServiceImpl.java                    |   92 ++++++++++-----
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/kio/service/impl/ChannelKioDeviceServiceImpl.java     |    5 
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dto/DaPointDTO.java                                     |    7 
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/common/service/ChannelSourceService.java              |   88 ++++++++++++++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/controller/admin/DaPointController.java                 |    7 
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/opcda/service/ChannelOPCDADeviceService.java          |    2 
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/common/dto/ChannelSourceDTO.java                      |   18 +++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaMathPointServiceImpl.java                |   10 +
 13 files changed, 244 insertions(+), 71 deletions(-)

diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/common/dto/ChannelSourceDTO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/common/dto/ChannelSourceDTO.java
new file mode 100644
index 0000000..8d9714c
--- /dev/null
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/common/dto/ChannelSourceDTO.java
@@ -0,0 +1,18 @@
+package com.iailab.module.data.channel.common.dto;
+
+import lombok.Data;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2024年10月31日
+ */
+@Data
+public class ChannelSourceDTO {
+
+    private String sourceType;
+
+    private String sourceName;
+
+    private String sourceId;
+}
\ No newline at end of file
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/common/service/ChannelSourceService.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/common/service/ChannelSourceService.java
new file mode 100644
index 0000000..9cb9957
--- /dev/null
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/common/service/ChannelSourceService.java
@@ -0,0 +1,88 @@
+package com.iailab.module.data.channel.common.service;
+
+import com.iailab.module.data.channel.http.entity.HttpApiEntity;
+import com.iailab.module.data.channel.http.service.HttpApiService;
+import com.iailab.module.data.channel.kio.entity.ChannelKioDeviceEntity;
+import com.iailab.module.data.channel.kio.service.ChannelKioDeviceService;
+import com.iailab.module.data.channel.modbus.dto.ChannelModBusDeviceDTO;
+import com.iailab.module.data.channel.modbus.entity.ChannelModBusDeviceEntity;
+import com.iailab.module.data.channel.modbus.service.ChannelModbusDeviceService;
+import com.iailab.module.data.channel.opcda.dto.ChannelOPCDADeviceDTO;
+import com.iailab.module.data.channel.opcda.entity.ChannelOPCDADeviceEntity;
+import com.iailab.module.data.channel.opcda.service.ChannelOPCDADeviceService;
+import com.iailab.module.data.channel.opcua.dto.ChannelOPCUADeviceDTO;
+import com.iailab.module.data.channel.opcua.entity.ChannelOPCUADeviceEntity;
+import com.iailab.module.data.channel.opcua.service.ChannelOPCUADeviceService;
+import com.iailab.module.data.common.enums.DataSourceType;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2024年10月31日
+ */
+@Component
+public class ChannelSourceService {
+
+    @Autowired
+    private ChannelOPCDADeviceService channelOPCDADeviceService;
+
+    @Autowired
+    private ChannelOPCUADeviceService channelOPCUADeviceService;
+
+    @Autowired
+    private ChannelModbusDeviceService channelModbusDeviceService;
+
+    @Autowired
+    private ChannelKioDeviceService channelKioDeviceService;
+
+    @Autowired
+    private HttpApiService httpApiService;
+
+    public Map<String, Map<String, String>> getSourcesId() {
+
+        Map<String, Map<String, String>> result = new HashMap<>();
+
+        Map<String, String> opcdaMap = new HashMap<>();
+        List<ChannelOPCDADeviceEntity> opcdaList = channelOPCDADeviceService.list(new HashMap<>());
+        opcdaList.forEach(opcda -> {
+            opcdaMap.put(opcda.getServerName(), opcda.getId());
+        });
+        result.put(DataSourceType.OPCDA.getCode(), opcdaMap);
+
+        Map<String, String> opcuaMap = new HashMap<>();
+        List<ChannelOPCUADeviceEntity> opcuaList = channelOPCUADeviceService.list(new HashMap<>());
+        opcuaList.forEach(opcUa -> {
+            opcuaMap.put(opcUa.getServerName(), opcUa.getId());
+        });
+        result.put(DataSourceType.OPCUA.getCode(), opcuaMap);
+
+        Map<String, String> modbusMap = new HashMap<>();
+        List<ChannelModBusDeviceEntity> modbusList = channelModbusDeviceService.list(new HashMap<>());
+        modbusList.forEach(modbus -> {
+            modbusMap.put(modbus.getName(), modbus.getId());
+        });
+        result.put(DataSourceType.ModBus.getCode(), modbusMap);
+
+        Map<String, String> kioMap = new HashMap<>();
+        List<ChannelKioDeviceEntity> kioList = channelKioDeviceService.list(new HashMap<>());
+        kioList.forEach(kio -> {
+            kioMap.put(kio.getInstanceName(), kio.getId());
+        });
+        result.put(DataSourceType.KIO.getCode(), kioMap);
+
+        Map<String, String> httpMap = new HashMap<>();
+        List<HttpApiEntity> httpList = httpApiService.list();
+        httpList.forEach(http -> {
+            httpMap.put(http.getCode(), http.getId());
+        });
+        result.put(DataSourceType.HTTP.getCode(), httpMap);
+
+        return result;
+    }
+}
\ No newline at end of file
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/kio/service/impl/ChannelKioDeviceServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/kio/service/impl/ChannelKioDeviceServiceImpl.java
index 51c5de3..8dab913 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/kio/service/impl/ChannelKioDeviceServiceImpl.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/kio/service/impl/ChannelKioDeviceServiceImpl.java
@@ -64,6 +64,9 @@
 
     @Override
     public List<ChannelKioDeviceEntity> list(Map<String, Object> params) {
-        return channelKioDeviceDao.selectList(new QueryWrapper<ChannelKioDeviceEntity>().orderByAsc("instance_name"));
+        QueryWrapper<ChannelKioDeviceEntity> queryWrapper = new QueryWrapper<>();
+
+        queryWrapper.orderByAsc("instance_name");
+        return channelKioDeviceDao.selectList(queryWrapper);
     }
 }
\ No newline at end of file
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/opcda/service/ChannelOPCDADeviceService.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/opcda/service/ChannelOPCDADeviceService.java
index 8c6bca4..b94c0b8 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/opcda/service/ChannelOPCDADeviceService.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/opcda/service/ChannelOPCDADeviceService.java
@@ -18,6 +18,8 @@
 
     List<ChannelOPCDADeviceDTO> selectAll();
 
+    List<ChannelOPCDADeviceEntity> list(Map<String, Object> params);
+
     PageResult<ChannelOPCDADeviceEntity> queryPage(OpcDaDevicePageReqVO reqVO);
 
     ChannelOPCDADeviceEntity info(String id);
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/opcda/service/impl/ChannelOPCDADeviceServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/opcda/service/impl/ChannelOPCDADeviceServiceImpl.java
index e8feaa7..a6b7588 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/opcda/service/impl/ChannelOPCDADeviceServiceImpl.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/opcda/service/impl/ChannelOPCDADeviceServiceImpl.java
@@ -40,6 +40,13 @@
     }
 
     @Override
+    public List<ChannelOPCDADeviceEntity> list(Map<String, Object> params) {
+        QueryWrapper<ChannelOPCDADeviceEntity> queryWrapper = new QueryWrapper<>();
+        queryWrapper.orderByDesc("create_time");
+        return channelOPCDADeviceDao.selectList(queryWrapper);
+    }
+
+    @Override
     public ChannelOPCDADeviceEntity info(String id) {
         return channelOPCDADeviceDao.selectById(id);
     }
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/common/PointTypeEnum.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/common/PointTypeEnum.java
index fd9cd3a..2d6e959 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/common/PointTypeEnum.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/common/PointTypeEnum.java
@@ -1,37 +1,33 @@
 package com.iailab.module.data.point.common;
 
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
 /**
  * @author PanZhibao
  * @date 2021年04月25日 11:41
  */
-
+@Getter
+@AllArgsConstructor
 public enum PointTypeEnum {
-    MEASURE_POINT("MEASURE", "MEASURE"),
-    CALCULATE_POINT("CALCULATE", "CALCULATE"),
-    CONSTANT("CONSTANT", "CONSTANT");
+    MEASURE_POINT("MEASURE", "测量点"),
+    CALCULATE_POINT("CALCULATE", "计算点"),
+    CONSTANT("CONSTANT", "常量点");
 
     private String code;
 
-    private String name;
+    private String desc;
 
-    PointTypeEnum(String code, String name){
-        this.code = code;
-        this.name = name;
-    }
+    public static PointTypeEnum getEumByCode(String code) {
+        if (code == null) {
+            return null;
+        }
 
-    public String getCode() {
-        return code;
-    }
-
-    public void setCode(String code) {
-        this.code = code;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
+        for (PointTypeEnum statusEnum : PointTypeEnum.values()) {
+            if (statusEnum.getCode().equals(code)) {
+                return statusEnum;
+            }
+        }
+        return null;
     }
 }
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/controller/admin/DaPointController.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/controller/admin/DaPointController.java
index 532099c..efc7dce 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/controller/admin/DaPointController.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/controller/admin/DaPointController.java
@@ -8,6 +8,8 @@
 import com.iailab.framework.common.util.object.ConvertUtils;
 import com.iailab.framework.excel.core.util.ExcelUtils;
 import com.iailab.module.data.api.dto.ApiPointValueQueryDTO;
+import com.iailab.module.data.channel.common.service.ChannelSourceService;
+import com.iailab.module.data.common.enums.DataSourceType;
 import com.iailab.module.data.influxdb.service.InfluxDBService;
 import com.iailab.module.data.point.dto.DaPointDTO;
 import com.iailab.module.data.point.entity.DaPointEntity;
@@ -180,11 +182,12 @@
         List<PointImportExcelVO> list = Arrays.asList(
                 PointImportExcelVO.builder().pointName("测点1").pointType("MEASURE").dataType("float").valueType("SIMULATE")
                         .storeType(null).unit("t(非必填)").unittransfactor(new BigDecimal(1)).defaultValue(new BigDecimal(0)).maxValue(new BigDecimal(10000000.000000)).minValue(new BigDecimal(0))
-                        .minfreqid("NET10").remark("备注(非必填)").sourceType("HTTP").sourceId("b9d0f670-2135-458f-9494-0cda4f35ec09").tagNo("SARD1200G00102RC001")
+                        .minfreqid("1min").remark("备注(非必填)").sourceType(DataSourceType.HTTP.getCode())
+                        .sourceName("").tagNo("SARD1200G00102RC001")
                         .build()
         );
         // 输出
-        ExcelUtils.write(response, "测点导入模板.xls", "测点列表", PointImportExcelVO.class, list);
+        ExcelUtils.write(response, "测点导入模板.xlsx", "测点列表", PointImportExcelVO.class, list);
     }
 
     @PostMapping("/import")
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dto/DaPointDTO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dto/DaPointDTO.java
index 685be47..0c04215 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dto/DaPointDTO.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dto/DaPointDTO.java
@@ -47,9 +47,6 @@
     @DictFormat("data_type")
     private String dataTypeName;
 
-    @Schema(description = "值类型", required = true)
-    private String valueType;
-
     @Schema(description = "存储类型", required = true)
     private String storeType;
 
@@ -101,8 +98,12 @@
     @Schema(description = "测点Tag", required = true)
     private String tagNo;
 
+    @Schema(description = "平滑尺度")
     private Integer dimension;
 
+    @Schema(description = "值类型")
+    private String valueType;
+
     @Schema(description = "计算公式", required = true)
     private String expression;
 
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/DaMathPointService.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/DaMathPointService.java
index 38f6fc5..864af89 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/DaMathPointService.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/DaMathPointService.java
@@ -13,6 +13,8 @@
 
     void add(DaMathPointDTO dto, String pointId);
 
+    void add(String expression, String pointId);
+
     DaMathPointDTO getByPoint(String pointId);
 
     void update(DaMathPointDTO dto);
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaMathPointServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaMathPointServiceImpl.java
index 6d17ce7..5014dd2 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaMathPointServiceImpl.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaMathPointServiceImpl.java
@@ -10,6 +10,7 @@
 import org.springframework.stereotype.Service;
 
 import java.util.Arrays;
+import java.util.UUID;
 
 /**
  * @author PanZhibao
@@ -27,6 +28,15 @@
     }
 
     @Override
+    public void add(String expression, String pointId) {
+        DaMathPointEntity entity = new DaMathPointEntity();
+        entity.setId(UUID.randomUUID().toString());
+        entity.setPointId(pointId);
+        entity.setExpression(expression);
+        baseDao.insert(entity);
+    }
+
+    @Override
     public DaMathPointDTO getByPoint(String pointId) {
         QueryWrapper<DaMathPointEntity> wrapper = new QueryWrapper<>();
         wrapper.eq("point_id", pointId);
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaPointServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaPointServiceImpl.java
index a2b1ce0..ac053f1 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaPointServiceImpl.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaPointServiceImpl.java
@@ -14,6 +14,7 @@
 import com.iailab.framework.common.util.object.ConvertUtils;
 import com.iailab.framework.datapermission.core.util.DataPermissionUtils;
 import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.iailab.module.data.channel.common.service.ChannelSourceService;
 import com.iailab.module.data.common.enums.CommonConstant;
 import com.iailab.module.data.common.enums.IsEnableEnum;
 import com.iailab.module.data.point.common.IncreaseCodeEnum;
@@ -65,6 +66,9 @@
 
     @Resource
     private ConfigApi configApi;
+
+    @Resource
+    private ChannelSourceService channelSourceService;
 
     @Override
     public PageResult<DaPointDTO> queryPage(DaPointPageReqVO reqVO) {
@@ -129,18 +133,24 @@
     public void add(DaPointDTO dataPoint) {
         DaPointEntity daPointEntity = ConvertUtils.sourceToTarget(dataPoint, DaPointEntity.class);
         daPointEntity.setId(UUID.randomUUID().toString());
-        if (PointTypeEnum.MEASURE_POINT.getName().equals(dataPoint.getPointType())) {
-            DaMeasurePointDTO measurePoint = new DaMeasurePointDTO();
-            measurePoint.setSourceType(dataPoint.getSourceOption().get(0));
-            measurePoint.setSourceId(dataPoint.getSourceOption().get(1));
-            measurePoint.setTagNo(dataPoint.getSourceOption().get(2));
-            daMeasurePointService.add(measurePoint, daPointEntity.getId());
-            daPointEntity.setPointNo(daSequenceNumService.getAndIncreaseByCode(IncreaseCodeEnum.POINT_M.name()));
-        } else if (PointTypeEnum.CALCULATE_POINT.getName().equals(dataPoint.getPointType())) {
-            daMathPointService.add(dataPoint.getMathPoint(), daPointEntity.getId());
-            daPointEntity.setPointNo(daSequenceNumService.getAndIncreaseByCode(IncreaseCodeEnum.POINT_C.name()));
-        } else if (PointTypeEnum.CONSTANT.getName().equals(dataPoint.getPointType())) {
-            daPointEntity.setPointNo(daSequenceNumService.getAndIncreaseByCode(IncreaseCodeEnum.POINT_F.name()));
+        switch (PointTypeEnum.getEumByCode(dataPoint.getPointType())) {
+            case MEASURE_POINT:
+                DaMeasurePointDTO measurePoint = new DaMeasurePointDTO();
+                measurePoint.setSourceType(dataPoint.getSourceOption().get(0));
+                measurePoint.setSourceId(dataPoint.getSourceOption().get(1));
+                measurePoint.setTagNo(dataPoint.getSourceOption().get(2));
+                daMeasurePointService.add(measurePoint, daPointEntity.getId());
+                daPointEntity.setPointNo(daSequenceNumService.getAndIncreaseByCode(IncreaseCodeEnum.POINT_M.name()));
+                break;
+            case CALCULATE_POINT:
+                daMathPointService.add(dataPoint.getMathPoint(), daPointEntity.getId());
+                daPointEntity.setPointNo(daSequenceNumService.getAndIncreaseByCode(IncreaseCodeEnum.POINT_C.name()));
+                break;
+            case CONSTANT:
+                daPointEntity.setPointNo(daSequenceNumService.getAndIncreaseByCode(IncreaseCodeEnum.POINT_F.name()));
+                break;
+            default:
+                break;
         }
         daPointEntity.setIsEnable(CommonConstant.IS_ENABLE);
         daPointEntity.setCreateTime(new Date());
@@ -153,14 +163,19 @@
         DaPointEntity daPointEntity = ConvertUtils.sourceToTarget(dataPoint, DaPointEntity.class);
         daPointEntity.setUpdateTime(new Date());
         daPointDao.updateById(daPointEntity);
-        if (PointTypeEnum.MEASURE_POINT.getName().equals(dataPoint.getPointType())) {
-            DaMeasurePointDTO measurePoint = dataPoint.getMeasurePoint();
-            measurePoint.setSourceType(dataPoint.getSourceOption().get(0));
-            measurePoint.setSourceId(dataPoint.getSourceOption().get(1));
-            measurePoint.setTagNo(dataPoint.getSourceOption().get(2));
-            daMeasurePointService.update(measurePoint);
-        } else if (PointTypeEnum.CALCULATE_POINT.getName().equals(dataPoint.getPointType())) {
-            daMathPointService.update(dataPoint.getMathPoint());
+        switch (PointTypeEnum.getEumByCode(dataPoint.getPointType())) {
+            case MEASURE_POINT:
+                DaMeasurePointDTO measurePoint = dataPoint.getMeasurePoint();
+                measurePoint.setSourceType(dataPoint.getSourceOption().get(0));
+                measurePoint.setSourceId(dataPoint.getSourceOption().get(1));
+                measurePoint.setTagNo(dataPoint.getSourceOption().get(2));
+                daMeasurePointService.update(measurePoint);
+                break;
+            case CALCULATE_POINT:
+                daMathPointService.update(dataPoint.getMathPoint());
+                break;
+            default:
+                break;
         }
     }
 
@@ -298,7 +313,8 @@
         if (CollUtil.isEmpty(importPoints)) {
             throw exception(POINT_IMPORT_LIST_IS_EMPTY);
         }
-        
+
+        Map<String, Map<String, String>> sourcesIdMap = channelSourceService.getSourcesId();
         // 2. 遍历,逐个创建 or 更新
         PointImportRespVO respVO = PointImportRespVO.builder().createPointnames(new ArrayList<>())
                 .updatePointnames(new ArrayList<>()).failurePointnames(new LinkedHashMap<>()).build();
@@ -307,20 +323,33 @@
             // 判断如果不存在,再进行插入
             DaPointEntity existPoint = baseMapper.selectByPointName(importPoint.getPointName());
             if (existPoint == null) {
-
                 DaPointEntity daPointEntity = ConvertUtils.sourceToTarget(importPoint, DaPointEntity.class);
                 daPointEntity.setId(UUID.randomUUID().toString());
-                DaMeasurePointDTO measurePoint = new DaMeasurePointDTO();
-                measurePoint.setSourceType(importPoint.getSourceType());
-                measurePoint.setSourceId(importPoint.getSourceId());
-                measurePoint.setTagNo(importPoint.getTagNo());
-                daPointEntity.setPointNo(daSequenceNumService.getAndIncreaseByCode(IncreaseCodeEnum.POINT_M.name()));
                 daPointEntity.setIsEnable(CommonConstant.IS_ENABLE);
                 daPointEntity.setCreateTime(new Date());
+                switch (PointTypeEnum.getEumByCode(daPointEntity.getPointType())) {
+                    case MEASURE_POINT:
+                        DaMeasurePointDTO measurePoint = new DaMeasurePointDTO();
+                        measurePoint.setSourceType(importPoint.getSourceType());
+                        measurePoint.setSourceId(sourcesIdMap.get(importPoint.getSourceType()).get(importPoint.getSourceName()));
+                        measurePoint.setTagNo(importPoint.getTagNo());
+                        measurePoint.setValueType(importPoint.getValueType());
+                        measurePoint.setDimension(importPoint.getDimension());
+                        daMeasurePointService.add(measurePoint, daPointEntity.getId());
+                        daPointEntity.setPointNo(daSequenceNumService.getAndIncreaseByCode(IncreaseCodeEnum.POINT_M.name()));
+                        break;
+                    case CALCULATE_POINT:
+                        daMathPointService.add(importPoint.getExpression(), daPointEntity.getId());
+                        daPointEntity.setPointNo(daSequenceNumService.getAndIncreaseByCode(IncreaseCodeEnum.POINT_C.name()));
+                        break;
+                    case CONSTANT:
+                        daPointEntity.setPointNo(daSequenceNumService.getAndIncreaseByCode(IncreaseCodeEnum.POINT_F.name()));
+                        break;
+                    default:
+                        break;
+                }
 
-                daMeasurePointService.add(measurePoint, daPointEntity.getId());
                 daPointDao.insert(daPointEntity);
-
                 respVO.getCreatePointnames().add(importPoint.getPointName());
                 return;
             }
@@ -336,9 +365,12 @@
             baseMapper.updateById(updatePoint);
             DaMeasurePointEntity measurePoint = new DaMeasurePointEntity();
             measurePoint.setSourceType(importPoint.getSourceType());
-            measurePoint.setSourceId(importPoint.getSourceId());
+            measurePoint.setSourceId(sourcesIdMap.get(importPoint.getSourceType()).get(importPoint.getSourceName()));
             measurePoint.setTagNo(importPoint.getTagNo());
             daMeasurePointService.update(measurePoint, new QueryWrapper<DaMeasurePointEntity>().eq("point_id",updatePoint.getId()));
+
+
+
             respVO.getUpdatePointnames().add(importPoint.getPointName());
         });
         return respVO;
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/DaPointExcelVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/DaPointExcelVO.java
index 80040d0..9e236f0 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/DaPointExcelVO.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/DaPointExcelVO.java
@@ -29,10 +29,6 @@
     @ExcelProperty("数据类型")
     private String dataType;
 
-    @Schema(description = "值类型")
-    @ExcelProperty("值类型")
-    private String valueType;
-
     @Schema(description = "存储类型")
     @ExcelProperty("存储类型")
     private String storeType;
@@ -77,6 +73,14 @@
     @ExcelProperty("测点Tag")
     private String tagNo;
 
+    @Schema(description = "平滑尺度")
+    @ExcelProperty("平滑尺度")
+    private Integer dimension;
+
+    @Schema(description = "值类型")
+    @ExcelProperty("值类型")
+    private String valueType;
+
     @Schema(description = "计算公式")
     @ExcelProperty("计算公式")
     private String expression;
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/PointImportExcelVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/PointImportExcelVO.java
index c8fe449..ee99bb8 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/PointImportExcelVO.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/PointImportExcelVO.java
@@ -1,9 +1,6 @@
 package com.iailab.module.data.point.vo;
 
 import com.alibaba.excel.annotation.ExcelProperty;
-import com.iailab.framework.excel.core.annotations.DictFormat;
-import com.iailab.framework.excel.core.convert.DictConvert;
-import com.iailab.module.system.enums.DictTypeConstants;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -23,6 +20,9 @@
 @Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
 public class PointImportExcelVO {
 
+    @ExcelProperty("测点编码")
+    private String pointNo;
+
     @ExcelProperty("测点名称")
     private String pointName;
 
@@ -31,9 +31,6 @@
 
     @ExcelProperty("数据类型")
     private String dataType;
-
-    @ExcelProperty("值类型")
-    private String valueType;
 
     @ExcelProperty("存储类型")
     private String storeType;
@@ -56,16 +53,26 @@
     @ExcelProperty("采集频率")
     private String minfreqid;
 
+    @Schema(description = "备注")
     @ExcelProperty("备注")
     private String remark;
 
     @ExcelProperty("数据源类型")
     private String sourceType;
 
-    @ExcelProperty("数据源ID")
-    private String sourceId;
+    @ExcelProperty("数据源名称")
+    private String sourceName;
 
     @ExcelProperty("测点Tag")
     private String tagNo;
 
+    @ExcelProperty("平滑尺度")
+    private Integer dimension;
+
+    @ExcelProperty("值类型")
+    private String valueType;
+
+    @ExcelProperty("计算公式")
+    private String expression;
+
 }

--
Gitblit v1.9.3