Browse Source

用友接口

hfxc226 2 years ago
parent
commit
ec8e1e9224
34 changed files with 2572 additions and 1 deletions
  1. 7 0
      platform-common/pom.xml
  2. 3 1
      platform-common/src/main/java/com/platform/common/enums/DictTypeEnum.java
  3. 55 0
      platform-common/src/main/java/com/platform/common/util/iec104/J60870Client.java
  4. 25 0
      platform-common/src/main/java/com/platform/common/util/iec104/J60870ClientListener.java
  5. 18 0
      platform-common/src/main/java/com/platform/common/util/iec104/Test.java
  6. 103 0
      platform-dao/src/main/java/com/platform/dao/dto/remote/RemoteDegreeDTO.java
  7. 103 0
      platform-dao/src/main/java/com/platform/dao/dto/remote/RemoteDegreeLogDTO.java
  8. 103 0
      platform-dao/src/main/java/com/platform/dao/dto/remote/RemoteMeasureDTO.java
  9. 90 0
      platform-dao/src/main/java/com/platform/dao/entity/remote/RemoteDegree.java
  10. 90 0
      platform-dao/src/main/java/com/platform/dao/entity/remote/RemoteDegreeLog.java
  11. 90 0
      platform-dao/src/main/java/com/platform/dao/entity/remote/RemoteMeasure.java
  12. 26 0
      platform-dao/src/main/java/com/platform/dao/mapper/remote/RemoteDegreeLogMapper.java
  13. 26 0
      platform-dao/src/main/java/com/platform/dao/mapper/remote/RemoteDegreeMapper.java
  14. 26 0
      platform-dao/src/main/java/com/platform/dao/mapper/remote/RemoteMeasureMapper.java
  15. 145 0
      platform-dao/src/main/java/com/platform/dao/util/CustomExcelImportUtil.java
  16. 106 0
      platform-dao/src/main/java/com/platform/dao/vo/export/remote/ExportRemoteDegreeLogVO.java
  17. 106 0
      platform-dao/src/main/java/com/platform/dao/vo/export/remote/ExportRemoteDegreeVO.java
  18. 106 0
      platform-dao/src/main/java/com/platform/dao/vo/export/remote/ExportRemoteMeasureVO.java
  19. 85 0
      platform-dao/src/main/java/com/platform/dao/vo/query/remote/RemoteDegreeLogVO.java
  20. 85 0
      platform-dao/src/main/java/com/platform/dao/vo/query/remote/RemoteDegreeVO.java
  21. 85 0
      platform-dao/src/main/java/com/platform/dao/vo/query/remote/RemoteMeasureVO.java
  22. 97 0
      platform-dao/src/main/resources/mapper/remote/RemoteDegreeLogMapper.xml
  23. 97 0
      platform-dao/src/main/resources/mapper/remote/RemoteDegreeMapper.xml
  24. 97 0
      platform-dao/src/main/resources/mapper/remote/RemoteMeasureMapper.xml
  25. 155 0
      platform-rest/src/main/java/com/platform/rest/controller/remote/RemoteDegreeController.java
  26. 141 0
      platform-rest/src/main/java/com/platform/rest/controller/remote/RemoteDegreeLogController.java
  27. 155 0
      platform-rest/src/main/java/com/platform/rest/controller/remote/RemoteMeasureController.java
  28. 35 0
      platform-service/src/main/java/com/platform/service/remote/RemoteDegreeLogService.java
  29. 38 0
      platform-service/src/main/java/com/platform/service/remote/RemoteDegreeService.java
  30. 40 0
      platform-service/src/main/java/com/platform/service/remote/RemoteMeasureService.java
  31. 50 0
      platform-service/src/main/java/com/platform/service/remote/impl/RemoteDegreeLogServiceImpl.java
  32. 93 0
      platform-service/src/main/java/com/platform/service/remote/impl/RemoteDegreeServiceImpl.java
  33. 84 0
      platform-service/src/main/java/com/platform/service/remote/impl/RemoteMeasureServiceImpl.java
  34. 7 0
      platform-service/src/main/java/com/platform/service/sb/impl/SbInfoServiceImpl.java

+ 7 - 0
platform-common/pom.xml

@@ -19,6 +19,13 @@
     </properties>
 
     <dependencies>
+        <!-- 104协议 -->
+        <dependency>
+            <groupId>org.openmuc</groupId>
+            <artifactId>j60870</artifactId>
+            <version>1.5.0</version>
+        </dependency>
+
         <!--hutool-->
         <dependency>
             <groupId>cn.hutool</groupId>

+ 3 - 1
platform-common/src/main/java/com/platform/common/enums/DictTypeEnum.java

@@ -26,7 +26,9 @@ public enum DictTypeEnum {
     SYS_USER_IDENTITY_TYPE("SYS_USER_IDENTITY_TYPE", "用户身份"),
     SYS_USER_JOB_TYPE("SYS_USER_JOB_TYPE", "用户职务"),
     FILL_PROJECT_QUANTITY_UNIT("FILL_PROJECT_QUANTITY_UNIT", "项目单位"),
-    THIRD_PARTY_YONGYOU("THIRD_PARTY_YONGYOU", "用友") ;
+    THIRD_PARTY_YONGYOU("THIRD_PARTY_YONGYOU", "用友"),
+    REMOTE_MEASURE("REMOTE_MEASURE", "设备遥测"),
+    REMOTE_DEGREE("REMOTE_DEGREE", "设备电度"),;
     private final String type;
     private final String typeName;
 

+ 55 - 0
platform-common/src/main/java/com/platform/common/util/iec104/J60870Client.java

@@ -0,0 +1,55 @@
+package com.platform.common.util.iec104;
+
+import org.openmuc.j60870.ClientConnectionBuilder;
+import org.openmuc.j60870.Connection;
+
+import java.io.IOException;
+import java.net.InetAddress;
+
+public class J60870Client implements Runnable {
+    //监听类,后面代码会给出
+    private J60870ClientListener listener;
+    //连接类
+    private Connection connection;
+    //连接参数,可以配置的参数有好多,比如t0,t1,t2等等
+    private ClientConnectionBuilder clientConnectionBuilder;
+
+    public J60870Client() throws IOException {
+        try {
+            //获取server端、从站的ip地址对象,这里使用本地ip
+            InetAddress address = InetAddress.getByName("127.0.0.1");
+            //创建连接参数对象
+            clientConnectionBuilder = new ClientConnectionBuilder(address);
+            //设置socket的连接超时时间
+            clientConnectionBuilder.setConnectionTimeout(60000);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    //Runnable的run方法重写
+    @Override
+    public void run() {
+        try {
+            //主站与从站连接
+            connection = clientConnectionBuilder.build();
+            //配置数据回调类
+            listener = new J60870ClientListener();
+            connection.startDataTransfer(listener);
+
+            System.out.println("监听中:");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    //关闭连接
+    public void disconnect() {
+        try {
+            this.connection.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+}

+ 25 - 0
platform-common/src/main/java/com/platform/common/util/iec104/J60870ClientListener.java

@@ -0,0 +1,25 @@
+package com.platform.common.util.iec104;
+
+import org.openmuc.j60870.ASdu;
+import org.openmuc.j60870.ConnectionEventListener;
+
+import java.io.IOException;
+
+public class J60870ClientListener implements ConnectionEventListener {
+    @Override
+    public void newASdu(ASdu aSdu) {
+        //打印数据,效果见下图
+        System.out.println("接受从站数据:" + aSdu.toString());
+        System.out.println("持续监听中:");
+    }
+
+    @Override
+    public void connectionClosed(IOException e) {
+        e.printStackTrace();
+    }
+
+    @Override
+    public void dataTransferStateChanged(boolean b) {
+
+    }
+}

+ 18 - 0
platform-common/src/main/java/com/platform/common/util/iec104/Test.java

@@ -0,0 +1,18 @@
+package com.platform.common.util.iec104;
+
+import java.io.IOException;
+
+public class Test {
+    public static void main(String[] args) {
+        J60870Client client = null;
+        try {
+            client = new J60870Client();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        //dog.start(); //这里不能调用 start 方法
+        //创建了 Thread 对象,把 dog 对象(实现了 Runnable ),放入了 Thread
+        Thread thread = new Thread(client);
+        thread.start();
+    }
+}

+ 103 - 0
platform-dao/src/main/java/com/platform/dao/dto/remote/RemoteDegreeDTO.java

@@ -0,0 +1,103 @@
+package com.platform.dao.dto.remote;
+
+import com.platform.common.bean.BaseDTO;
+import com.platform.common.validation.group.UpdateGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import java.math.BigDecimal;
+
+/**
+ * @Description 设备电度对应表DTO
+ * @Author xc
+ * @Date 2022-09-13 14:15:24
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class RemoteDegreeDTO extends BaseDTO implements Serializable {
+
+      /**
+     * id
+     */
+        @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
+    private String id;
+          /**
+     * 设备id
+     */
+          private String sbId;
+          /**
+     * 设备名称
+     */
+          private String sbName;
+          /**
+     * 点位
+     */
+          private Integer positionNum;
+          /**
+     * 类型
+     */
+          private Integer type;
+          /**
+     * 描述
+     */
+          private String desc;
+          /**
+     * 实时数值
+     */
+          private String value;
+          /**
+     * 系数
+     */
+          private BigDecimal ratio;
+          /**
+     * 单位
+     */
+          private String unit;
+          /**
+     * 备注
+     */
+          private String remark;
+          /**
+     * 创建人
+     */
+          private String createdUserId;
+          /**
+     * 更新人
+     */
+          private String updateUserId;
+          /**
+     * 创建日期
+     */
+        private LocalDateTime createdTime;
+      /**
+       * 创建日期开始
+       */
+      private LocalDateTime createdTimeStart;
+      /**
+       * 创建日期结束
+       */
+      private LocalDateTime createdTimeEnd;
+          /**
+     * 更新日期
+     */
+        private LocalDateTime updateTime;
+      /**
+       * 更新日期开始
+       */
+      private LocalDateTime updateTimeStart;
+      /**
+       * 更新日期结束
+       */
+      private LocalDateTime updateTimeEnd;
+        /**
+     * 关键字
+     */
+  private String keyword;
+
+}

+ 103 - 0
platform-dao/src/main/java/com/platform/dao/dto/remote/RemoteDegreeLogDTO.java

@@ -0,0 +1,103 @@
+package com.platform.dao.dto.remote;
+
+import com.platform.common.bean.BaseDTO;
+import com.platform.common.validation.group.UpdateGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import java.math.BigDecimal;
+
+/**
+ * @Description 设备电度记录表DTO
+ * @Author xc
+ * @Date 2022-09-13 14:14:35
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class RemoteDegreeLogDTO extends BaseDTO implements Serializable {
+
+      /**
+     * id
+     */
+        @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
+    private String id;
+          /**
+     * 设备id
+     */
+          private String sbId;
+          /**
+     * 设备名称
+     */
+          private String sbName;
+          /**
+     * 点位
+     */
+          private Integer positionNum;
+          /**
+     * 类型
+     */
+          private Integer type;
+          /**
+     * 描述
+     */
+          private String desc;
+          /**
+     * 实时数值
+     */
+          private String value;
+          /**
+     * 系数
+     */
+          private BigDecimal ratio;
+          /**
+     * 单位
+     */
+          private String unit;
+          /**
+     * 备注
+     */
+          private String remark;
+          /**
+     * 创建人
+     */
+          private String createdUserId;
+          /**
+     * 更新人
+     */
+          private String updateUserId;
+          /**
+     * 创建日期
+     */
+        private LocalDateTime createdTime;
+      /**
+       * 创建日期开始
+       */
+      private LocalDateTime createdTimeStart;
+      /**
+       * 创建日期结束
+       */
+      private LocalDateTime createdTimeEnd;
+          /**
+     * 更新日期
+     */
+        private LocalDateTime updateTime;
+      /**
+       * 更新日期开始
+       */
+      private LocalDateTime updateTimeStart;
+      /**
+       * 更新日期结束
+       */
+      private LocalDateTime updateTimeEnd;
+        /**
+     * 关键字
+     */
+  private String keyword;
+
+}

+ 103 - 0
platform-dao/src/main/java/com/platform/dao/dto/remote/RemoteMeasureDTO.java

@@ -0,0 +1,103 @@
+package com.platform.dao.dto.remote;
+
+import com.platform.common.bean.BaseDTO;
+import com.platform.common.validation.group.UpdateGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import java.math.BigDecimal;
+
+/**
+ * @Description 设备遥测对应表DTO
+ * @Author xc
+ * @Date 2022-09-13 14:15:40
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class RemoteMeasureDTO extends BaseDTO implements Serializable {
+
+      /**
+     * id
+     */
+        @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
+    private String id;
+          /**
+     * 设备id
+     */
+          private String sbId;
+          /**
+     * 设备名称
+     */
+          private String sbName;
+          /**
+     * 点位
+     */
+          private Integer positionNum;
+          /**
+     * 类型
+     */
+          private Integer type;
+          /**
+     * 描述
+     */
+          private String desc;
+          /**
+     * 实时数值
+     */
+          private String value;
+          /**
+     * 系数
+     */
+          private BigDecimal ratio;
+          /**
+     * 单位
+     */
+          private String unit;
+          /**
+     * 备注
+     */
+          private String remark;
+          /**
+     * 创建人
+     */
+          private String createdUserId;
+          /**
+     * 更新人
+     */
+          private String updateUserId;
+          /**
+     * 创建日期
+     */
+        private LocalDateTime createdTime;
+      /**
+       * 创建日期开始
+       */
+      private LocalDateTime createdTimeStart;
+      /**
+       * 创建日期结束
+       */
+      private LocalDateTime createdTimeEnd;
+          /**
+     * 更新日期
+     */
+        private LocalDateTime updateTime;
+      /**
+       * 更新日期开始
+       */
+      private LocalDateTime updateTimeStart;
+      /**
+       * 更新日期结束
+       */
+      private LocalDateTime updateTimeEnd;
+        /**
+     * 关键字
+     */
+  private String keyword;
+
+}

+ 90 - 0
platform-dao/src/main/java/com/platform/dao/entity/remote/RemoteDegree.java

@@ -0,0 +1,90 @@
+package com.platform.dao.entity.remote;
+
+import lombok.Data;
+
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import lombok.experimental.Accessors;
+import com.platform.common.bean.DataScope;
+import javax.persistence.Transient;
+import java.math.BigDecimal;
+
+/**
+ * @Description 设备电度对应表实体类
+ * @Author xc
+ * @Date 2022-09-13 14:15:24
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "t_remote_degree")
+public class RemoteDegree implements Serializable{
+
+    /**
+     * id
+     */
+        @Id
+    private String id;
+    /**
+     * 设备id
+     */
+    private String sbId;
+    /**
+     * 设备名称
+     */
+    private String sbName;
+    /**
+     * 点位
+     */
+    private Integer positionNum;
+    /**
+     * 类型
+     */
+    private Integer type;
+    /**
+     * 描述
+     */
+    private String desc;
+    /**
+     * 实时数值
+     */
+    private String value;
+    /**
+     * 系数
+     */
+    private BigDecimal ratio;
+    /**
+     * 单位
+     */
+    private String unit;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人
+     */
+    private String createdUserId;
+    /**
+     * 更新人
+     */
+    private String updateUserId;
+    /**
+     * 创建日期
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 更新日期
+     */
+    private LocalDateTime updateTime;
+
+   /**
+    * 数据权限
+    */
+    @Transient
+    private DataScope dataScope;
+
+}

+ 90 - 0
platform-dao/src/main/java/com/platform/dao/entity/remote/RemoteDegreeLog.java

@@ -0,0 +1,90 @@
+package com.platform.dao.entity.remote;
+
+import lombok.Data;
+
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import lombok.experimental.Accessors;
+import com.platform.common.bean.DataScope;
+import javax.persistence.Transient;
+import java.math.BigDecimal;
+
+/**
+ * @Description 设备电度记录表实体类
+ * @Author xc
+ * @Date 2022-09-13 14:14:35
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "t_remote_degree_log")
+public class RemoteDegreeLog implements Serializable{
+
+    /**
+     * id
+     */
+        @Id
+    private String id;
+    /**
+     * 设备id
+     */
+    private String sbId;
+    /**
+     * 设备名称
+     */
+    private String sbName;
+    /**
+     * 点位
+     */
+    private Integer positionNum;
+    /**
+     * 类型
+     */
+    private Integer type;
+    /**
+     * 描述
+     */
+    private String desc;
+    /**
+     * 实时数值
+     */
+    private String value;
+    /**
+     * 系数
+     */
+    private BigDecimal ratio;
+    /**
+     * 单位
+     */
+    private String unit;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人
+     */
+    private String createdUserId;
+    /**
+     * 更新人
+     */
+    private String updateUserId;
+    /**
+     * 创建日期
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 更新日期
+     */
+    private LocalDateTime updateTime;
+
+   /**
+    * 数据权限
+    */
+    @Transient
+    private DataScope dataScope;
+
+}

+ 90 - 0
platform-dao/src/main/java/com/platform/dao/entity/remote/RemoteMeasure.java

@@ -0,0 +1,90 @@
+package com.platform.dao.entity.remote;
+
+import lombok.Data;
+
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import lombok.experimental.Accessors;
+import com.platform.common.bean.DataScope;
+import javax.persistence.Transient;
+import java.math.BigDecimal;
+
+/**
+ * @Description 设备遥测对应表实体类
+ * @Author xc
+ * @Date 2022-09-13 14:15:40
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "t_remote_measure")
+public class RemoteMeasure implements Serializable{
+
+    /**
+     * id
+     */
+        @Id
+    private String id;
+    /**
+     * 设备id
+     */
+    private String sbId;
+    /**
+     * 设备名称
+     */
+    private String sbName;
+    /**
+     * 点位
+     */
+    private Integer positionNum;
+    /**
+     * 类型
+     */
+    private Integer type;
+    /**
+     * 描述
+     */
+    private String desc;
+    /**
+     * 实时数值
+     */
+    private String value;
+    /**
+     * 系数
+     */
+    private BigDecimal ratio;
+    /**
+     * 单位
+     */
+    private String unit;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人
+     */
+    private String createdUserId;
+    /**
+     * 更新人
+     */
+    private String updateUserId;
+    /**
+     * 创建日期
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 更新日期
+     */
+    private LocalDateTime updateTime;
+
+   /**
+    * 数据权限
+    */
+    @Transient
+    private DataScope dataScope;
+
+}

+ 26 - 0
platform-dao/src/main/java/com/platform/dao/mapper/remote/RemoteDegreeLogMapper.java

@@ -0,0 +1,26 @@
+package com.platform.dao.mapper.remote;
+
+import com.platform.dao.dto.remote.RemoteDegreeLogDTO;
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.entity.remote.RemoteDegreeLog;
+import com.platform.dao.vo.query.remote.RemoteDegreeLogVO;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+
+/**
+ * @Description 设备电度记录表 mapper
+ * @Author xc
+ * @Date 2022-09-13 14:14:35
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Component
+public interface RemoteDegreeLogMapper extends MyMapper<RemoteDegreeLog> {
+    /**
+     * 分页查询
+     * @param dto
+     * @return
+     */
+    List<RemoteDegreeLogVO> selectList(RemoteDegreeLogDTO dto);
+
+}

+ 26 - 0
platform-dao/src/main/java/com/platform/dao/mapper/remote/RemoteDegreeMapper.java

@@ -0,0 +1,26 @@
+package com.platform.dao.mapper.remote;
+
+import com.platform.dao.dto.remote.RemoteDegreeDTO;
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.entity.remote.RemoteDegree;
+import com.platform.dao.vo.query.remote.RemoteDegreeVO;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+
+/**
+ * @Description 设备电度对应表 mapper
+ * @Author xc
+ * @Date 2022-09-13 14:15:24
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Component
+public interface RemoteDegreeMapper extends MyMapper<RemoteDegree> {
+    /**
+     * 分页查询
+     * @param dto
+     * @return
+     */
+    List<RemoteDegreeVO> selectList(RemoteDegreeDTO dto);
+
+}

+ 26 - 0
platform-dao/src/main/java/com/platform/dao/mapper/remote/RemoteMeasureMapper.java

@@ -0,0 +1,26 @@
+package com.platform.dao.mapper.remote;
+
+import com.platform.dao.dto.remote.RemoteMeasureDTO;
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.entity.remote.RemoteMeasure;
+import com.platform.dao.vo.query.remote.RemoteMeasureVO;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+
+/**
+ * @Description 设备遥测对应表 mapper
+ * @Author xc
+ * @Date 2022-09-13 14:15:40
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Component
+public interface RemoteMeasureMapper extends MyMapper<RemoteMeasure> {
+    /**
+     * 分页查询
+     * @param dto
+     * @return
+     */
+    List<RemoteMeasureVO> selectList(RemoteMeasureDTO dto);
+
+}

+ 145 - 0
platform-dao/src/main/java/com/platform/dao/util/CustomExcelImportUtil.java

@@ -9,10 +9,14 @@ import com.platform.dao.entity.check.CheckJob;
 import com.platform.dao.entity.check.CheckStandard;
 import com.platform.dao.entity.part.PartInfo;
 import com.platform.dao.entity.purchase.*;
+import com.platform.dao.entity.remote.RemoteDegree;
+import com.platform.dao.entity.remote.RemoteMeasure;
 import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.sb.SbModel;
 import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
 import com.platform.dao.entity.store.SpareStore;
+import com.platform.dao.entity.upms.SysConfig;
+import com.platform.dao.entity.upms.SysDict;
 import com.platform.dao.enums.*;
 import com.platform.dao.vo.export.sb.ExportSbInfoVO;
 import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
@@ -956,6 +960,144 @@ public class CustomExcelImportUtil {
         return result;
     }
 
+    /**
+     * 导入电度对应表
+     * @param inputstream
+     * @param sysDictList
+     * @return
+     * @throws IOException
+     * @throws InvalidFormatException
+     */
+    public static List<RemoteDegree> importRemoteDegreeList(InputStream inputstream, List<SysDict> sysDictList) throws IOException, InvalidFormatException {
+        if (inputstream == null) {
+            return Collections.emptyList();
+        }
+        Workbook book = null;
+        if (!(inputstream.markSupported())) {
+            inputstream = new PushbackInputStream(inputstream, 8);
+        }
+        if (POIFSFileSystem.hasPOIFSHeader(inputstream)) {
+            book = new HSSFWorkbook(inputstream);
+        } else if (POIXMLDocument.hasOOXMLHeader(inputstream)) {
+            book = new XSSFWorkbook(OPCPackage.open(inputstream));
+        }
+        Sheet sheet = book.getSheetAt(0);
+        int rowCounts = sheet.getLastRowNum();
+        List<RemoteDegree> result = new ArrayList<>(rowCounts);
+        RemoteDegree record = null;
+
+        StringBuffer error = new StringBuffer();
+        for (int i = 1; i <= rowCounts; i++) {
+            record = new RemoteDegree();
+            Row row = sheet.getRow(i);
+            if(isRowEmpty(row)){
+                continue;
+            }
+
+            String index = row.getCell(0).getStringCellValue() + "";
+            try {
+                //i,j i:行 j:列
+                record.setPositionNum(Integer.valueOf(getCellValue(row.getCell(0))));
+                record.setSbName(getCellValue(row.getCell(1)));
+                record.setDesc(StringUtils.getExcelString(row.getCell(2)));
+                String type = getCellValue(row.getCell(3)).trim();
+                if(StringUtils.isNotEmpty(type)){
+                    boolean find = false;
+                    for(SysDict sysDict: sysDictList){
+                        if(sysDict.getLabel().equals(type)){
+                            record.setType(Integer.valueOf(sysDict.getValue()));
+                            find = true;
+                            break;
+                        }
+                    }
+                    if(!find){
+                        throw new BusinessException("点位类型未配置,请配置数据字典:" + type );
+                    }
+                }
+                record.setUnit(getCellValue(row.getCell(4)).trim());
+            } catch (Exception e) {
+                e.printStackTrace();
+                error.append(index).append("错误地址:第"+i+"行");
+            }
+            result.add(record);
+        }
+
+        String errorStr = error.toString();
+        if (StringUtils.isNotEmpty(errorStr)) {
+            throw new BusinessException(String.format("导入异常,以下行数据有问题:%s", errorStr.substring(0, errorStr.length())));
+        }
+        return result;
+    }
+
+    /**
+     * 导入遥测对应表-新增
+     * @param inputstream
+     * @param sysDictList
+     * @return
+     * @throws IOException
+     * @throws InvalidFormatException
+     */
+    public static List<RemoteMeasure> importRemoteMeasureList(InputStream inputstream, List<SysDict> sysDictList) throws IOException, InvalidFormatException {
+        if (inputstream == null) {
+            return Collections.emptyList();
+        }
+        Workbook book = null;
+        if (!(inputstream.markSupported())) {
+            inputstream = new PushbackInputStream(inputstream, 8);
+        }
+        if (POIFSFileSystem.hasPOIFSHeader(inputstream)) {
+            book = new HSSFWorkbook(inputstream);
+        } else if (POIXMLDocument.hasOOXMLHeader(inputstream)) {
+            book = new XSSFWorkbook(OPCPackage.open(inputstream));
+        }
+        Sheet sheet = book.getSheetAt(0);
+        int rowCounts = sheet.getLastRowNum();
+        List<RemoteMeasure> result = new ArrayList<>(rowCounts);
+        RemoteMeasure record = null;
+
+        StringBuffer error = new StringBuffer();
+        for (int i = 1; i <= rowCounts; i++) {
+            record = new RemoteMeasure();
+            Row row = sheet.getRow(i);
+            if(isRowEmpty(row)){
+                continue;
+            }
+
+            String index = row.getCell(0).getStringCellValue() + "";
+            try {
+                //i,j i:行 j:列
+                record.setPositionNum(Integer.valueOf(getCellValue(row.getCell(0))));
+                record.setSbName(getCellValue(row.getCell(1)));
+                String desc = getCellValue(row.getCell(2)).trim();
+                record.setDesc(desc);
+                if(StringUtils.isNotEmpty(desc)){
+                    boolean find = false;
+                    for(SysDict sysDict: sysDictList){
+                        if(sysDict.getLabel().equals(desc)){
+                            record.setType(Integer.valueOf(sysDict.getValue()));
+                            find = true;
+                            break;
+                        }
+                    }
+                    if(!find){
+                        throw new BusinessException("点位类型未配置,请配置电度数据字典:" + desc );
+                    }
+                }
+                record.setUnit(getCellValue(row.getCell(3)).trim());
+            } catch (Exception e) {
+                e.printStackTrace();
+                error.append(index).append("错误地址:第"+i+"行");
+            }
+            result.add(record);
+        }
+
+        String errorStr = error.toString();
+        if (StringUtils.isNotEmpty(errorStr)) {
+            throw new BusinessException(String.format("导入异常,以下行数据有问题:%s", errorStr.substring(0, errorStr.length())));
+        }
+        return result;
+    }
+
     public static List<SbInfoVO> importSbInfoListStandard(InputStream inputstream) throws IOException, InvalidFormatException {
         if (inputstream == null) {
             return Collections.emptyList();
@@ -1098,6 +1240,9 @@ public class CustomExcelImportUtil {
                 if(StringUtils.isNotBlank(tempInfo)){
                     record.setCheckPeriod(Integer.valueOf(tempInfo));
                 }
+                if(record.getCheckDate() != null && record.getCheckPeriod() != null){
+                    record.setNextCheckDate(record.getCheckDate().minusMonths(-record.getCheckPeriod()));
+                }
                 checkStandard.setCreatedUserId("1");
                 record.setCheckStandard(checkStandard);
                 record.setPartInfo(partInfo);

+ 106 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/remote/ExportRemoteDegreeLogVO.java

@@ -0,0 +1,106 @@
+package com.platform.dao.vo.export.remote;
+
+import com.platform.office.annotation.Excel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import java.math.BigDecimal;
+
+/**
+ * @Description 设备电度记录表导出VO
+ * @Author xc
+ * @Date 2022-09-13 14:14:35
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportRemoteDegreeLogVO implements Serializable {
+
+    /**
+   * id
+   */
+          @Excel(name = "id", orderNum = "1")
+      private String id;
+    
+    /**
+   * 设备id
+   */
+          @Excel(name = "设备id", orderNum = "2")
+      private String sbId;
+    
+    /**
+   * 设备名称
+   */
+          @Excel(name = "设备名称", orderNum = "3")
+      private String sbName;
+    
+    /**
+   * 点位
+   */
+          @Excel(name = "点位", orderNum = "4")
+      private Integer positionNum;
+    
+    /**
+   * 类型
+   */
+          @Excel(name = "类型", orderNum = "5")
+      private Integer type;
+    
+    /**
+   * 描述
+   */
+          @Excel(name = "描述", orderNum = "6")
+      private String desc;
+    
+    /**
+   * 实时数值
+   */
+          @Excel(name = "实时数值", orderNum = "7")
+      private String value;
+    
+    /**
+   * 系数
+   */
+          @Excel(name = "系数", orderNum = "8")
+      private BigDecimal ratio;
+    
+    /**
+   * 单位
+   */
+          @Excel(name = "单位", orderNum = "9")
+      private String unit;
+    
+    /**
+   * 备注
+   */
+          @Excel(name = "备注", orderNum = "10")
+      private String remark;
+    
+    /**
+   * 创建人
+   */
+          @Excel(name = "创建人", orderNum = "11")
+      private String createdUserId;
+    
+    /**
+   * 更新人
+   */
+          @Excel(name = "更新人", orderNum = "12")
+      private String updateUserId;
+    
+    /**
+   * 创建日期
+   */
+          @Excel(name = "创建日期", orderNum = "13")
+      private LocalDateTime createdTime;
+    
+    /**
+   * 更新日期
+   */
+          @Excel(name = "更新日期", orderNum = "14")
+      private LocalDateTime updateTime;
+    
+  
+}

+ 106 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/remote/ExportRemoteDegreeVO.java

@@ -0,0 +1,106 @@
+package com.platform.dao.vo.export.remote;
+
+import com.platform.office.annotation.Excel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import java.math.BigDecimal;
+
+/**
+ * @Description 设备电度对应表导出VO
+ * @Author xc
+ * @Date 2022-09-13 14:15:24
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportRemoteDegreeVO implements Serializable {
+
+    /**
+   * id
+   */
+          @Excel(name = "id", orderNum = "1")
+      private String id;
+    
+    /**
+   * 设备id
+   */
+          @Excel(name = "设备id", orderNum = "2")
+      private String sbId;
+    
+    /**
+   * 设备名称
+   */
+          @Excel(name = "设备名称", orderNum = "3")
+      private String sbName;
+    
+    /**
+   * 点位
+   */
+          @Excel(name = "点位", orderNum = "4")
+      private Integer positionNum;
+    
+    /**
+   * 类型
+   */
+          @Excel(name = "类型", orderNum = "5")
+      private Integer type;
+    
+    /**
+   * 描述
+   */
+          @Excel(name = "描述", orderNum = "6")
+      private String desc;
+    
+    /**
+   * 实时数值
+   */
+          @Excel(name = "实时数值", orderNum = "7")
+      private String value;
+    
+    /**
+   * 系数
+   */
+          @Excel(name = "系数", orderNum = "8")
+      private BigDecimal ratio;
+    
+    /**
+   * 单位
+   */
+          @Excel(name = "单位", orderNum = "9")
+      private String unit;
+    
+    /**
+   * 备注
+   */
+          @Excel(name = "备注", orderNum = "10")
+      private String remark;
+    
+    /**
+   * 创建人
+   */
+          @Excel(name = "创建人", orderNum = "11")
+      private String createdUserId;
+    
+    /**
+   * 更新人
+   */
+          @Excel(name = "更新人", orderNum = "12")
+      private String updateUserId;
+    
+    /**
+   * 创建日期
+   */
+          @Excel(name = "创建日期", orderNum = "13")
+      private LocalDateTime createdTime;
+    
+    /**
+   * 更新日期
+   */
+          @Excel(name = "更新日期", orderNum = "14")
+      private LocalDateTime updateTime;
+    
+  
+}

+ 106 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/remote/ExportRemoteMeasureVO.java

@@ -0,0 +1,106 @@
+package com.platform.dao.vo.export.remote;
+
+import com.platform.office.annotation.Excel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import java.math.BigDecimal;
+
+/**
+ * @Description 设备遥测对应表导出VO
+ * @Author xc
+ * @Date 2022-09-13 14:15:40
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportRemoteMeasureVO implements Serializable {
+
+    /**
+   * id
+   */
+          @Excel(name = "id", orderNum = "1")
+      private String id;
+    
+    /**
+   * 设备id
+   */
+          @Excel(name = "设备id", orderNum = "2")
+      private String sbId;
+    
+    /**
+   * 设备名称
+   */
+          @Excel(name = "设备名称", orderNum = "3")
+      private String sbName;
+    
+    /**
+   * 点位
+   */
+          @Excel(name = "点位", orderNum = "4")
+      private Integer positionNum;
+    
+    /**
+   * 类型
+   */
+          @Excel(name = "类型", orderNum = "5")
+      private Integer type;
+    
+    /**
+   * 描述
+   */
+          @Excel(name = "描述", orderNum = "6")
+      private String desc;
+    
+    /**
+   * 实时数值
+   */
+          @Excel(name = "实时数值", orderNum = "7")
+      private String value;
+    
+    /**
+   * 系数
+   */
+          @Excel(name = "系数", orderNum = "8")
+      private BigDecimal ratio;
+    
+    /**
+   * 单位
+   */
+          @Excel(name = "单位", orderNum = "9")
+      private String unit;
+    
+    /**
+   * 备注
+   */
+          @Excel(name = "备注", orderNum = "10")
+      private String remark;
+    
+    /**
+   * 创建人
+   */
+          @Excel(name = "创建人", orderNum = "11")
+      private String createdUserId;
+    
+    /**
+   * 更新人
+   */
+          @Excel(name = "更新人", orderNum = "12")
+      private String updateUserId;
+    
+    /**
+   * 创建日期
+   */
+          @Excel(name = "创建日期", orderNum = "13")
+      private LocalDateTime createdTime;
+    
+    /**
+   * 更新日期
+   */
+          @Excel(name = "更新日期", orderNum = "14")
+      private LocalDateTime updateTime;
+    
+  
+}

+ 85 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/remote/RemoteDegreeLogVO.java

@@ -0,0 +1,85 @@
+package com.platform.dao.vo.query.remote;
+
+import lombok.Data;
+import com.platform.common.bean.BaseVO;
+import com.platform.common.bean.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import java.math.BigDecimal;
+
+/**
+ * @Description 设备电度记录表VO结果类
+ * @Author xc
+ * @Date 2022-09-13 14:14:35
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class RemoteDegreeLogVO extends BaseVO implements Serializable{
+
+    /**
+     * id
+     */
+        private String id;
+        /**
+     * 设备id
+     */
+        private String sbId;
+        /**
+     * 设备名称
+     */
+        private String sbName;
+        /**
+     * 点位
+     */
+        private Integer positionNum;
+        /**
+     * 类型
+     */
+        private Integer type;
+        /**
+     * 描述
+     */
+        private String desc;
+        /**
+     * 实时数值
+     */
+        private String value;
+        /**
+     * 系数
+     */
+        private BigDecimal ratio;
+        /**
+     * 单位
+     */
+        private String unit;
+        /**
+     * 备注
+     */
+        private String remark;
+        /**
+     * 创建人
+     */
+        private String createdUserId;
+        /**
+     * 更新人
+     */
+        private String updateUserId;
+        /**
+     * 创建日期
+     */
+        private LocalDateTime createdTime;
+        /**
+     * 更新日期
+     */
+        private LocalDateTime updateTime;
+    
+
+
+}

+ 85 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/remote/RemoteDegreeVO.java

@@ -0,0 +1,85 @@
+package com.platform.dao.vo.query.remote;
+
+import lombok.Data;
+import com.platform.common.bean.BaseVO;
+import com.platform.common.bean.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import java.math.BigDecimal;
+
+/**
+ * @Description 设备电度对应表VO结果类
+ * @Author xc
+ * @Date 2022-09-13 14:15:24
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class RemoteDegreeVO extends BaseVO implements Serializable{
+
+    /**
+     * id
+     */
+        private String id;
+        /**
+     * 设备id
+     */
+        private String sbId;
+        /**
+     * 设备名称
+     */
+        private String sbName;
+        /**
+     * 点位
+     */
+        private Integer positionNum;
+        /**
+     * 类型
+     */
+        private Integer type;
+        /**
+     * 描述
+     */
+        private String desc;
+        /**
+     * 实时数值
+     */
+        private String value;
+        /**
+     * 系数
+     */
+        private BigDecimal ratio;
+        /**
+     * 单位
+     */
+        private String unit;
+        /**
+     * 备注
+     */
+        private String remark;
+        /**
+     * 创建人
+     */
+        private String createdUserId;
+        /**
+     * 更新人
+     */
+        private String updateUserId;
+        /**
+     * 创建日期
+     */
+        private LocalDateTime createdTime;
+        /**
+     * 更新日期
+     */
+        private LocalDateTime updateTime;
+    
+
+
+}

+ 85 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/remote/RemoteMeasureVO.java

@@ -0,0 +1,85 @@
+package com.platform.dao.vo.query.remote;
+
+import lombok.Data;
+import com.platform.common.bean.BaseVO;
+import com.platform.common.bean.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import java.math.BigDecimal;
+
+/**
+ * @Description 设备遥测对应表VO结果类
+ * @Author xc
+ * @Date 2022-09-13 14:15:40
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class RemoteMeasureVO extends BaseVO implements Serializable{
+
+    /**
+     * id
+     */
+        private String id;
+        /**
+     * 设备id
+     */
+        private String sbId;
+        /**
+     * 设备名称
+     */
+        private String sbName;
+        /**
+     * 点位
+     */
+        private Integer positionNum;
+        /**
+     * 类型
+     */
+        private Integer type;
+        /**
+     * 描述
+     */
+        private String desc;
+        /**
+     * 实时数值
+     */
+        private String value;
+        /**
+     * 系数
+     */
+        private BigDecimal ratio;
+        /**
+     * 单位
+     */
+        private String unit;
+        /**
+     * 备注
+     */
+        private String remark;
+        /**
+     * 创建人
+     */
+        private String createdUserId;
+        /**
+     * 更新人
+     */
+        private String updateUserId;
+        /**
+     * 创建日期
+     */
+        private LocalDateTime createdTime;
+        /**
+     * 更新日期
+     */
+        private LocalDateTime updateTime;
+    
+
+
+}

+ 97 - 0
platform-dao/src/main/resources/mapper/remote/RemoteDegreeLogMapper.xml

@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.platform.dao.mapper.remote.RemoteDegreeLogMapper">
+    <sql id="Base_Column_List">
+                             degree-log.id,
+                                     degree-log.sb_id,
+                                     degree-log.sb_name,
+                                     degree-log.position_num,
+                                     degree-log.type,
+                                     degree-log.desc,
+                                     degree-log.value,
+                                     degree-log.ratio,
+                                     degree-log.unit,
+                                     degree-log.remark,
+                                     degree-log.created_user_id,
+                                     degree-log.update_user_id,
+                                     degree-log.created_time,
+                                     degree-log.update_time
+                        </sql>
+    <sql id="Ref_Column_List">
+                                                                         degree-log.sb_id,
+                                     degree-log.sb_name,
+                                     degree-log.position_num,
+                                     degree-log.type,
+                                     degree-log.desc,
+                                     degree-log.value,
+                                     degree-log.ratio,
+                                     degree-log.unit,
+                                     degree-log.remark,
+                                                                                                                                                                                                        </sql>
+    <sql id="List_Condition">
+                                    <if test="id != null and id != ''">
+                    and degree-log.id = #{id}
+                </if>
+                                                <if test="sbId != null and sbId != ''">
+                    and degree-log.sb_id = #{sbId}
+                </if>
+                                                <if test="sbName != null and sbName != ''">
+                    and degree-log.sb_name = #{sbName}
+                </if>
+                                                <if test="positionNum != null">
+                    and degree-log.position_num = #{positionNum}
+                </if>
+                                                <if test="type != null">
+                    and degree-log.type = #{type}
+                </if>
+                                                <if test="desc != null and desc != ''">
+                    and degree-log.desc = #{desc}
+                </if>
+                                                <if test="value != null and value != ''">
+                    and degree-log.value = #{value}
+                </if>
+                                                <if test="ratio != null">
+                    and degree-log.ratio = #{ratio}
+                </if>
+                                                <if test="unit != null and unit != ''">
+                    and degree-log.unit = #{unit}
+                </if>
+                                                <if test="remark != null and remark != ''">
+                    and degree-log.remark = #{remark}
+                </if>
+                                                <if test="createdUserId != null and createdUserId != ''">
+                    and degree-log.created_user_id = #{createdUserId}
+                </if>
+                                                <if test="updateUserId != null and updateUserId != ''">
+                    and degree-log.update_user_id = #{updateUserId}
+                </if>
+                                                <if test="createdTimeStart != null">
+                    and degree-log.created_time <![CDATA[>=]]>; #{createdTimeStart}
+                </if>
+                <if test="createdTimeEnd != null">
+                    and degree-log.created_time <![CDATA[<=]]> #{createdTimeEnd}
+                </if>
+                <if test="createdTime != null">
+                    and degree-log.created_time = #{createdTime}
+                </if>
+                                                <if test="updateTimeStart != null">
+                    and degree-log.update_time <![CDATA[>=]]>; #{updateTimeStart}
+                </if>
+                <if test="updateTimeEnd != null">
+                    and degree-log.update_time <![CDATA[<=]]> #{updateTimeEnd}
+                </if>
+                <if test="updateTime != null">
+                    and degree-log.update_time = #{updateTime}
+                </if>
+                            <if test="keyword != null and keyword != ''">
+            and degree-log.id like concat(concat('%',#{keyword}),'%')
+        </if>
+    </sql>
+    <select id="selectList" parameterType="com.platform.dao.dto.remote.RemoteDegreeLogDTO" resultType="com.platform.dao.vo.query.remote.RemoteDegreeLogVO">
+        select degree-log.*
+                                                                                                                                                                                                                                                                                                        from t_remote_degree_log as degree-log
+                                                                                                                                                                                                                                                                                                        <where>
+            <include refid="List_Condition" />
+        </where>
+    </select>
+</mapper>

+ 97 - 0
platform-dao/src/main/resources/mapper/remote/RemoteDegreeMapper.xml

@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.platform.dao.mapper.remote.RemoteDegreeMapper">
+    <sql id="Base_Column_List">
+                             degree.id,
+                                     degree.sb_id,
+                                     degree.sb_name,
+                                     degree.position_num,
+                                     degree.type,
+                                     degree.desc,
+                                     degree.value,
+                                     degree.ratio,
+                                     degree.unit,
+                                     degree.remark,
+                                     degree.created_user_id,
+                                     degree.update_user_id,
+                                     degree.created_time,
+                                     degree.update_time
+                        </sql>
+    <sql id="Ref_Column_List">
+                                                                         degree.sb_id,
+                                     degree.sb_name,
+                                     degree.position_num,
+                                     degree.type,
+                                     degree.desc,
+                                     degree.value,
+                                     degree.ratio,
+                                     degree.unit,
+                                     degree.remark,
+                                                                                                                                                                                                        </sql>
+    <sql id="List_Condition">
+                                    <if test="id != null and id != ''">
+                    and degree.id = #{id}
+                </if>
+                                                <if test="sbId != null and sbId != ''">
+                    and degree.sb_id = #{sbId}
+                </if>
+                                                <if test="sbName != null and sbName != ''">
+                    and degree.sb_name = #{sbName}
+                </if>
+                                                <if test="positionNum != null">
+                    and degree.position_num = #{positionNum}
+                </if>
+                                                <if test="type != null">
+                    and degree.type = #{type}
+                </if>
+                                                <if test="desc != null and desc != ''">
+                    and degree.desc = #{desc}
+                </if>
+                                                <if test="value != null and value != ''">
+                    and degree.value = #{value}
+                </if>
+                                                <if test="ratio != null">
+                    and degree.ratio = #{ratio}
+                </if>
+                                                <if test="unit != null and unit != ''">
+                    and degree.unit = #{unit}
+                </if>
+                                                <if test="remark != null and remark != ''">
+                    and degree.remark = #{remark}
+                </if>
+                                                <if test="createdUserId != null and createdUserId != ''">
+                    and degree.created_user_id = #{createdUserId}
+                </if>
+                                                <if test="updateUserId != null and updateUserId != ''">
+                    and degree.update_user_id = #{updateUserId}
+                </if>
+                                                <if test="createdTimeStart != null">
+                    and degree.created_time <![CDATA[>=]]>; #{createdTimeStart}
+                </if>
+                <if test="createdTimeEnd != null">
+                    and degree.created_time <![CDATA[<=]]> #{createdTimeEnd}
+                </if>
+                <if test="createdTime != null">
+                    and degree.created_time = #{createdTime}
+                </if>
+                                                <if test="updateTimeStart != null">
+                    and degree.update_time <![CDATA[>=]]>; #{updateTimeStart}
+                </if>
+                <if test="updateTimeEnd != null">
+                    and degree.update_time <![CDATA[<=]]> #{updateTimeEnd}
+                </if>
+                <if test="updateTime != null">
+                    and degree.update_time = #{updateTime}
+                </if>
+                            <if test="keyword != null and keyword != ''">
+            and degree.id like concat(concat('%',#{keyword}),'%')
+        </if>
+    </sql>
+    <select id="selectList" parameterType="com.platform.dao.dto.remote.RemoteDegreeDTO" resultType="com.platform.dao.vo.query.remote.RemoteDegreeVO">
+        select degree.*
+                                                                                                                                                                                                                                                                                                        from t_remote_degree as degree
+                                                                                                                                                                                                                                                                                                        <where>
+            <include refid="List_Condition" />
+        </where>
+    </select>
+</mapper>

+ 97 - 0
platform-dao/src/main/resources/mapper/remote/RemoteMeasureMapper.xml

@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.platform.dao.mapper.remote.RemoteMeasureMapper">
+    <sql id="Base_Column_List">
+                             measure.id,
+                                     measure.sb_id,
+                                     measure.sb_name,
+                                     measure.position_num,
+                                     measure.type,
+                                     measure.desc,
+                                     measure.value,
+                                     measure.ratio,
+                                     measure.unit,
+                                     measure.remark,
+                                     measure.created_user_id,
+                                     measure.update_user_id,
+                                     measure.created_time,
+                                     measure.update_time
+                        </sql>
+    <sql id="Ref_Column_List">
+                                                                         measure.sb_id,
+                                     measure.sb_name,
+                                     measure.position_num,
+                                     measure.type,
+                                     measure.desc,
+                                     measure.value,
+                                     measure.ratio,
+                                     measure.unit,
+                                     measure.remark,
+                                                                                                                                                                                                        </sql>
+    <sql id="List_Condition">
+                                    <if test="id != null and id != ''">
+                    and measure.id = #{id}
+                </if>
+                                                <if test="sbId != null and sbId != ''">
+                    and measure.sb_id = #{sbId}
+                </if>
+                                                <if test="sbName != null and sbName != ''">
+                    and measure.sb_name = #{sbName}
+                </if>
+                                                <if test="positionNum != null">
+                    and measure.position_num = #{positionNum}
+                </if>
+                                                <if test="type != null">
+                    and measure.type = #{type}
+                </if>
+                                                <if test="desc != null and desc != ''">
+                    and measure.desc = #{desc}
+                </if>
+                                                <if test="value != null and value != ''">
+                    and measure.value = #{value}
+                </if>
+                                                <if test="ratio != null">
+                    and measure.ratio = #{ratio}
+                </if>
+                                                <if test="unit != null and unit != ''">
+                    and measure.unit = #{unit}
+                </if>
+                                                <if test="remark != null and remark != ''">
+                    and measure.remark = #{remark}
+                </if>
+                                                <if test="createdUserId != null and createdUserId != ''">
+                    and measure.created_user_id = #{createdUserId}
+                </if>
+                                                <if test="updateUserId != null and updateUserId != ''">
+                    and measure.update_user_id = #{updateUserId}
+                </if>
+                                                <if test="createdTimeStart != null">
+                    and measure.created_time <![CDATA[>=]]>; #{createdTimeStart}
+                </if>
+                <if test="createdTimeEnd != null">
+                    and measure.created_time <![CDATA[<=]]> #{createdTimeEnd}
+                </if>
+                <if test="createdTime != null">
+                    and measure.created_time = #{createdTime}
+                </if>
+                                                <if test="updateTimeStart != null">
+                    and measure.update_time <![CDATA[>=]]>; #{updateTimeStart}
+                </if>
+                <if test="updateTimeEnd != null">
+                    and measure.update_time <![CDATA[<=]]> #{updateTimeEnd}
+                </if>
+                <if test="updateTime != null">
+                    and measure.update_time = #{updateTime}
+                </if>
+                            <if test="keyword != null and keyword != ''">
+            and measure.id like concat(concat('%',#{keyword}),'%')
+        </if>
+    </sql>
+    <select id="selectList" parameterType="com.platform.dao.dto.remote.RemoteMeasureDTO" resultType="com.platform.dao.vo.query.remote.RemoteMeasureVO">
+        select measure.*
+                                                                                                                                                                                                                                                                                                        from t_remote_measure as measure
+                                                                                                                                                                                                                                                                                                        <where>
+            <include refid="List_Condition" />
+        </where>
+    </select>
+</mapper>

+ 155 - 0
platform-rest/src/main/java/com/platform/rest/controller/remote/RemoteDegreeController.java

@@ -0,0 +1,155 @@
+package com.platform.rest.controller.remote;
+
+import com.platform.common.util.R;
+import com.platform.dao.dto.remote.RemoteDegreeDTO;
+import com.platform.dao.entity.remote.RemoteDegree;
+import com.platform.service.remote.RemoteDegreeService;
+import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.vo.export.remote.ExportRemoteDegreeVO;
+import com.platform.dao.vo.query.remote.RemoteDegreeVO;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.validation.group.AddGroup;
+import com.platform.common.validation.group.UpdateGroup;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import lombok.AllArgsConstructor;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.rest.log.annotation.SysLog;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @Description 设备电度对应表 控制器
+ * @Author xc
+ * @Date 2022-09-13 14:15:24
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/remote/degrees")
+public class RemoteDegreeController {
+
+  private final  RemoteDegreeService remoteDegreeService;
+
+  /**
+   * 通过id查询单条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @GetMapping("/{id}")
+  public R<RemoteDegree> getById(@PathVariable("id") String id){
+      return new R<>(remoteDegreeService.getModelById(id));
+  }
+
+  /**
+   * 新增记录
+   *
+   * @param remoteDegreeDTO 设备电度对应表DTO
+   * @return R
+   */
+  @SysLog("新增设备电度对应表")
+  @PostMapping
+  @PreAuthorize("@pms.hasPermission('remote-degrees-add')")
+  public R save(@Validated({AddGroup.class}) @RequestBody RemoteDegreeDTO remoteDegreeDTO) {
+      return new R<>(remoteDegreeService.saveModelByDTO(remoteDegreeDTO));
+  }
+
+  /**
+   * 修改记录
+   *
+   * @param remoteDegreeDTO 设备电度对应表DTO
+   * @return R
+   */
+  @SysLog("修改设备电度对应表")
+  @PutMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('remote-degrees-edit')")
+  public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody RemoteDegreeDTO remoteDegreeDTO) {
+      remoteDegreeService.modModelByDTO(remoteDegreeDTO);
+      return new R<>();
+  }
+
+
+                                                                                      
+  /**
+   * 通过id删除一条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @SysLog("删除设备电度对应表")
+  @DeleteMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('remote-degrees-del')")
+  public R removeById(@PathVariable String id){
+    remoteDegreeService.deleteByPrimaryKey(id);
+    return new R<>();
+  }
+
+    /**
+     * 批量记录
+     *
+     * @param ids 主键
+     * @return R
+     */
+    @SysLog("批量删除设备电度对应表")
+    @DeleteMapping("")
+    @PreAuthorize("@pms.hasPermission('remote-degrees-del')")
+    public R removeIds(@RequestBody List<String> ids){
+        remoteDegreeService.batchDelete(ids);
+        return new R<>();
+    }
+
+  /**
+   * 获取分页
+   *
+   * @param pageNum 当前页码
+   * @param pageSize 每页条数
+   * @param remoteDegreeDTO 设备电度对应表DTO
+   * @return R
+   */
+  @GetMapping("/page")
+  public R<AbstractPageResultBean<RemoteDegreeVO>> query(RemoteDegreeDTO remoteDegreeDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+      return new R<>(remoteDegreeService.selectPageList(remoteDegreeDTO, pageNum, pageSize));
+  }
+
+  /**
+   * 获取列表
+   *
+   * @param remoteDegreeDTO 设备电度对应表DTO
+   * @return R
+   */
+  @GetMapping("")
+  public R query(RemoteDegreeDTO remoteDegreeDTO) {
+      return new R<>(remoteDegreeService.getModelListByDTO(remoteDegreeDTO));
+  }
+
+  /**
+     * 设备电度对应表导出
+     *
+     * @param remoteDegreeDTO 设备电度对应表DTO
+     * @return R
+     */
+  @GetMapping("/export")
+  @SysLog("设备电度对应表导出")
+  @PreAuthorize("@pms.hasPermission('remote-degrees-export')")
+  public void export(HttpServletResponse response, RemoteDegreeDTO remoteDegreeDTO) {
+    List<RemoteDegree> list = remoteDegreeService.getModelListByDTO(remoteDegreeDTO);
+    ExcelUtil.exportResponseDict(response, ExportRemoteDegreeVO.class, BeanConverterUtil.copyListProperties(list, ExportRemoteDegreeVO.class), "设备电度对应表");
+  }
+
+  /**
+   * 新增导入
+   * @param file bom excel文件
+   * @return R
+   */
+  @SysLog("新增设备电度数据导入")
+  @PostMapping("/import")
+  public R importExcel( @RequestParam("file") MultipartFile file) throws Exception {
+      String result = remoteDegreeService.importListByAdd( file);
+      return new R<>(result);
+  }
+
+}

+ 141 - 0
platform-rest/src/main/java/com/platform/rest/controller/remote/RemoteDegreeLogController.java

@@ -0,0 +1,141 @@
+package com.platform.rest.controller.remote;
+
+import com.platform.common.util.R;
+import com.platform.dao.dto.remote.RemoteDegreeLogDTO;
+import com.platform.dao.entity.remote.RemoteDegreeLog;
+import com.platform.service.remote.RemoteDegreeLogService;
+import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.vo.export.remote.ExportRemoteDegreeLogVO;
+import com.platform.dao.vo.query.remote.RemoteDegreeLogVO;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.validation.group.AddGroup;
+import com.platform.common.validation.group.UpdateGroup;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import lombok.AllArgsConstructor;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.rest.log.annotation.SysLog;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @Description 设备电度记录表 控制器
+ * @Author xc
+ * @Date 2022-09-13 14:14:35
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/remote/degree-logs")
+public class RemoteDegreeLogController {
+
+  private final  RemoteDegreeLogService remoteDegreeLogService;
+
+  /**
+   * 通过id查询单条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @GetMapping("/{id}")
+  public R<RemoteDegreeLog> getById(@PathVariable("id") String id){
+      return new R<>(remoteDegreeLogService.getModelById(id));
+  }
+
+  /**
+   * 新增记录
+   *
+   * @param remoteDegreeLogDTO 设备电度记录表DTO
+   * @return R
+   */
+  @SysLog("新增设备电度记录表")
+  @PostMapping
+  @PreAuthorize("@pms.hasPermission('remote-degree-logs-add')")
+  public R save(@Validated({AddGroup.class}) @RequestBody RemoteDegreeLogDTO remoteDegreeLogDTO) {
+      return new R<>(remoteDegreeLogService.saveModelByDTO(remoteDegreeLogDTO));
+  }
+
+  /**
+   * 修改记录
+   *
+   * @param remoteDegreeLogDTO 设备电度记录表DTO
+   * @return R
+   */
+  @SysLog("修改设备电度记录表")
+  @PutMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('remote-degree-logs-edit')")
+  public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody RemoteDegreeLogDTO remoteDegreeLogDTO) {
+      remoteDegreeLogService.modModelByDTO(remoteDegreeLogDTO);
+      return new R<>();
+  }
+
+
+                                                                                      
+  /**
+   * 通过id删除一条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @SysLog("删除设备电度记录表")
+  @DeleteMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('remote-degree-logs-del')")
+  public R removeById(@PathVariable String id){
+    remoteDegreeLogService.deleteByPrimaryKey(id);
+    return new R<>();
+  }
+
+    /**
+     * 批量记录
+     *
+     * @param ids 主键
+     * @return R
+     */
+    @SysLog("批量删除设备电度记录表")
+    @DeleteMapping("")
+    @PreAuthorize("@pms.hasPermission('remote-degree-logs-del')")
+    public R removeIds(@RequestBody List<String> ids){
+        remoteDegreeLogService.batchDelete(ids);
+        return new R<>();
+    }
+
+  /**
+   * 获取分页
+   *
+   * @param pageNum 当前页码
+   * @param pageSize 每页条数
+   * @param remoteDegreeLogDTO 设备电度记录表DTO
+   * @return R
+   */
+  @GetMapping("/page")
+  public R<AbstractPageResultBean<RemoteDegreeLogVO>> query(RemoteDegreeLogDTO remoteDegreeLogDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+      return new R<>(remoteDegreeLogService.selectPageList(remoteDegreeLogDTO, pageNum, pageSize));
+  }
+
+  /**
+   * 获取列表
+   *
+   * @param remoteDegreeLogDTO 设备电度记录表DTO
+   * @return R
+   */
+  @GetMapping("")
+  public R query(RemoteDegreeLogDTO remoteDegreeLogDTO) {
+      return new R<>(remoteDegreeLogService.getModelListByDTO(remoteDegreeLogDTO));
+  }
+
+  /**
+     * 设备电度记录表导出
+     *
+     * @param remoteDegreeLogDTO 设备电度记录表DTO
+     * @return R
+     */
+  @GetMapping("/export")
+  @SysLog("设备电度记录表导出")
+  @PreAuthorize("@pms.hasPermission('remote-degree-logs-export')")
+  public void export(HttpServletResponse response, RemoteDegreeLogDTO remoteDegreeLogDTO) {
+    List<RemoteDegreeLog> list = remoteDegreeLogService.getModelListByDTO(remoteDegreeLogDTO);
+    ExcelUtil.exportResponseDict(response, ExportRemoteDegreeLogVO.class, BeanConverterUtil.copyListProperties(list, ExportRemoteDegreeLogVO.class), "设备电度记录表");
+  }
+
+}

+ 155 - 0
platform-rest/src/main/java/com/platform/rest/controller/remote/RemoteMeasureController.java

@@ -0,0 +1,155 @@
+package com.platform.rest.controller.remote;
+
+import com.platform.common.util.R;
+import com.platform.dao.dto.remote.RemoteMeasureDTO;
+import com.platform.dao.entity.remote.RemoteMeasure;
+import com.platform.service.remote.RemoteMeasureService;
+import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.vo.export.remote.ExportRemoteMeasureVO;
+import com.platform.dao.vo.query.remote.RemoteMeasureVO;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.validation.group.AddGroup;
+import com.platform.common.validation.group.UpdateGroup;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import lombok.AllArgsConstructor;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.rest.log.annotation.SysLog;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @Description 设备遥测对应表 控制器
+ * @Author xc
+ * @Date 2022-09-13 14:15:40
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/remote/measures")
+public class RemoteMeasureController {
+
+  private final  RemoteMeasureService remoteMeasureService;
+
+  /**
+   * 通过id查询单条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @GetMapping("/{id}")
+  public R<RemoteMeasure> getById(@PathVariable("id") String id){
+      return new R<>(remoteMeasureService.getModelById(id));
+  }
+
+  /**
+   * 新增记录
+   *
+   * @param remoteMeasureDTO 设备遥测对应表DTO
+   * @return R
+   */
+  @SysLog("新增设备遥测对应表")
+  @PostMapping
+  @PreAuthorize("@pms.hasPermission('remote-measures-add')")
+  public R save(@Validated({AddGroup.class}) @RequestBody RemoteMeasureDTO remoteMeasureDTO) {
+      return new R<>(remoteMeasureService.saveModelByDTO(remoteMeasureDTO));
+  }
+
+  /**
+   * 修改记录
+   *
+   * @param remoteMeasureDTO 设备遥测对应表DTO
+   * @return R
+   */
+  @SysLog("修改设备遥测对应表")
+  @PutMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('remote-measures-edit')")
+  public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody RemoteMeasureDTO remoteMeasureDTO) {
+      remoteMeasureService.modModelByDTO(remoteMeasureDTO);
+      return new R<>();
+  }
+
+
+                                                                                      
+  /**
+   * 通过id删除一条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @SysLog("删除设备遥测对应表")
+  @DeleteMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('remote-measures-del')")
+  public R removeById(@PathVariable String id){
+    remoteMeasureService.deleteByPrimaryKey(id);
+    return new R<>();
+  }
+
+    /**
+     * 批量记录
+     *
+     * @param ids 主键
+     * @return R
+     */
+    @SysLog("批量删除设备遥测对应表")
+    @DeleteMapping("")
+    @PreAuthorize("@pms.hasPermission('remote-measures-del')")
+    public R removeIds(@RequestBody List<String> ids){
+        remoteMeasureService.batchDelete(ids);
+        return new R<>();
+    }
+
+  /**
+   * 获取分页
+   *
+   * @param pageNum 当前页码
+   * @param pageSize 每页条数
+   * @param remoteMeasureDTO 设备遥测对应表DTO
+   * @return R
+   */
+  @GetMapping("/page")
+  public R<AbstractPageResultBean<RemoteMeasureVO>> query(RemoteMeasureDTO remoteMeasureDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+      return new R<>(remoteMeasureService.selectPageList(remoteMeasureDTO, pageNum, pageSize));
+  }
+
+  /**
+   * 获取列表
+   *
+   * @param remoteMeasureDTO 设备遥测对应表DTO
+   * @return R
+   */
+  @GetMapping("")
+  public R query(RemoteMeasureDTO remoteMeasureDTO) {
+      return new R<>(remoteMeasureService.getModelListByDTO(remoteMeasureDTO));
+  }
+
+  /**
+     * 设备遥测对应表导出
+     *
+     * @param remoteMeasureDTO 设备遥测对应表DTO
+     * @return R
+     */
+  @GetMapping("/export")
+  @SysLog("设备遥测对应表导出")
+  @PreAuthorize("@pms.hasPermission('remote-measures-export')")
+  public void export(HttpServletResponse response, RemoteMeasureDTO remoteMeasureDTO) {
+    List<RemoteMeasure> list = remoteMeasureService.getModelListByDTO(remoteMeasureDTO);
+    ExcelUtil.exportResponseDict(response, ExportRemoteMeasureVO.class, BeanConverterUtil.copyListProperties(list, ExportRemoteMeasureVO.class), "设备遥测对应表");
+  }
+
+  /**
+   * 新增导入
+   * @param file bom excel文件
+   * @return R
+   */
+  @SysLog("新增设备遥测数据导入")
+  @PostMapping("/import")
+  public R importExcel( @RequestParam("file") MultipartFile file) throws Exception {
+    String result = remoteMeasureService.importListByAdd( file);
+    return new R<>(result);
+  }
+
+}

+ 35 - 0
platform-service/src/main/java/com/platform/service/remote/RemoteDegreeLogService.java

@@ -0,0 +1,35 @@
+package com.platform.service.remote;
+
+import com.platform.dao.vo.query.remote.RemoteDegreeLogVO;
+import com.platform.dao.dto.remote.RemoteDegreeLogDTO;
+import com.platform.dao.entity.remote.RemoteDegreeLog;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.service.base.IBaseService;
+import java.util.List;
+
+/**
+ * @Description 设备电度记录表 service
+ * @Author xc
+ * @Date 2022-09-13 14:14:35
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface RemoteDegreeLogService extends IBaseService<RemoteDegreeLog, RemoteDegreeLogDTO> {
+
+   /**
+    * 批量删除
+    *
+    * @param ids :
+    * @return :
+    */
+    int batchDelete(List<String> ids);
+
+    /**
+     * 分页查询
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    AbstractPageResultBean<RemoteDegreeLogVO> selectPageList(RemoteDegreeLogDTO record, int pageNum, int pageSize);
+
+                                                                                                                                                                            }

+ 38 - 0
platform-service/src/main/java/com/platform/service/remote/RemoteDegreeService.java

@@ -0,0 +1,38 @@
+package com.platform.service.remote;
+
+import com.platform.dao.vo.query.remote.RemoteDegreeVO;
+import com.platform.dao.dto.remote.RemoteDegreeDTO;
+import com.platform.dao.entity.remote.RemoteDegree;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.service.base.IBaseService;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * @Description 设备电度对应表 service
+ * @Author xc
+ * @Date 2022-09-13 14:15:24
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface RemoteDegreeService extends IBaseService<RemoteDegree, RemoteDegreeDTO> {
+
+   /**
+    * 批量删除
+    *
+    * @param ids :
+    * @return :
+    */
+    int batchDelete(List<String> ids);
+
+    /**
+     * 分页查询
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    AbstractPageResultBean<RemoteDegreeVO> selectPageList(RemoteDegreeDTO record, int pageNum, int pageSize);
+
+    String importListByAdd(MultipartFile file);
+}

+ 40 - 0
platform-service/src/main/java/com/platform/service/remote/RemoteMeasureService.java

@@ -0,0 +1,40 @@
+package com.platform.service.remote;
+
+import com.platform.dao.vo.query.remote.RemoteMeasureVO;
+import com.platform.dao.dto.remote.RemoteMeasureDTO;
+import com.platform.dao.entity.remote.RemoteMeasure;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.service.base.IBaseService;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * @Description 设备遥测对应表 service
+ * @Author xc
+ * @Date 2022-09-13 14:15:40
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface RemoteMeasureService extends IBaseService<RemoteMeasure, RemoteMeasureDTO> {
+
+   /**
+    * 批量删除
+    *
+    * @param ids :
+    * @return :
+    */
+    int batchDelete(List<String> ids);
+
+    /**
+     * 分页查询
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    AbstractPageResultBean<RemoteMeasureVO> selectPageList(RemoteMeasureDTO record, int pageNum, int pageSize);
+
+    @Transactional(rollbackFor = Exception.class)
+    String importListByAdd(MultipartFile file);
+}

+ 50 - 0
platform-service/src/main/java/com/platform/service/remote/impl/RemoteDegreeLogServiceImpl.java

@@ -0,0 +1,50 @@
+package com.platform.service.remote.impl;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.dao.bean.MyPage;
+import com.github.pagehelper.PageHelper;
+import com.platform.dao.vo.query.remote.RemoteDegreeLogVO;
+import com.platform.dao.dto.remote.RemoteDegreeLogDTO;
+import com.platform.dao.entity.remote.RemoteDegreeLog;
+import com.platform.dao.mapper.remote.RemoteDegreeLogMapper;
+import com.platform.service.remote.RemoteDegreeLogService;
+import org.springframework.stereotype.Service;
+import com.platform.service.base.impl.BaseServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.weekend.Weekend;
+import tk.mybatis.mapper.weekend.WeekendCriteria;
+import lombok.AllArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @Description 设备电度记录表 service 实现类
+ * @Author xc
+ * @Date 2022-09-13 14:14:35
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@AllArgsConstructor
+@Service("remoteDegreeLogService")
+public class RemoteDegreeLogServiceImpl extends BaseServiceImpl<RemoteDegreeLogMapper, RemoteDegreeLog, RemoteDegreeLogDTO> implements RemoteDegreeLogService {
+
+    @Override
+    public int batchDelete(List<String> ids) {
+        Weekend<RemoteDegreeLog> weekend = new Weekend<>(RemoteDegreeLog.class);
+        WeekendCriteria<RemoteDegreeLog, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(RemoteDegreeLog::getId, ids);
+        mapper.deleteByExample(weekend);
+        return 1;
+    }
+
+    @Override
+    public AbstractPageResultBean<RemoteDegreeLogVO> selectPageList(RemoteDegreeLogDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+    @Override
+    public AbstractPageResultBean<RemoteDegreeLog> selectPageInfo(RemoteDegreeLogDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+                                                                                                                                                                            }

+ 93 - 0
platform-service/src/main/java/com/platform/service/remote/impl/RemoteDegreeServiceImpl.java

@@ -0,0 +1,93 @@
+package com.platform.service.remote.impl;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.enums.DictTypeEnum;
+import com.platform.common.exception.BusinessException;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.util.IdGeneratorUtils;
+import com.platform.dao.bean.MyPage;
+import com.github.pagehelper.PageHelper;
+import com.platform.dao.entity.firm.FirmProducer;
+import com.platform.dao.entity.sb.SbInfo;
+import com.platform.dao.entity.sb.SbPosition;
+import com.platform.dao.entity.sb.SbType;
+import com.platform.dao.entity.upms.SysDict;
+import com.platform.dao.entity.upms.SysUser;
+import com.platform.dao.mapper.upms.SysDeptMapper;
+import com.platform.dao.mapper.upms.SysDictMapper;
+import com.platform.dao.util.CustomExcelImportUtil;
+import com.platform.dao.vo.query.remote.RemoteDegreeVO;
+import com.platform.dao.dto.remote.RemoteDegreeDTO;
+import com.platform.dao.entity.remote.RemoteDegree;
+import com.platform.dao.mapper.remote.RemoteDegreeMapper;
+import com.platform.dao.vo.sb.SbInfoVO;
+import com.platform.service.remote.RemoteDegreeService;
+import com.platform.service.upms.SysDictService;
+import org.springframework.stereotype.Service;
+import com.platform.service.base.impl.BaseServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.multipart.MultipartFile;
+import tk.mybatis.mapper.weekend.Weekend;
+import tk.mybatis.mapper.weekend.WeekendCriteria;
+import lombok.AllArgsConstructor;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description 设备电度对应表 service 实现类
+ * @Author xc
+ * @Date 2022-09-13 14:15:24
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@AllArgsConstructor
+@Service("remoteDegreeService")
+public class RemoteDegreeServiceImpl extends BaseServiceImpl<RemoteDegreeMapper, RemoteDegree, RemoteDegreeDTO> implements RemoteDegreeService {
+
+    private final SysDictMapper sysDictMapper;
+
+    @Override
+    public int batchDelete(List<String> ids) {
+        Weekend<RemoteDegree> weekend = new Weekend<>(RemoteDegree.class);
+        WeekendCriteria<RemoteDegree, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(RemoteDegree::getId, ids);
+        mapper.deleteByExample(weekend);
+        return 1;
+    }
+
+    @Override
+    public AbstractPageResultBean<RemoteDegreeVO> selectPageList(RemoteDegreeDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+    @Override
+    public AbstractPageResultBean<RemoteDegree> selectPageInfo(RemoteDegreeDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String importListByAdd(MultipartFile file) {
+        Weekend<SysDict> weekend = new Weekend<>(SysDict.class);
+        WeekendCriteria<SysDict, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andEqualTo(SysDict::getType, DictTypeEnum.REMOTE_DEGREE);
+        List<SysDict> sysDictList = sysDictMapper.selectByExample(weekend);
+        try {
+            List<RemoteDegree> items = CustomExcelImportUtil.importRemoteDegreeList(file.getInputStream(),sysDictList);
+            if (!CollectionUtils.isEmpty(items)) {
+                List<RemoteDegree> addItems = new ArrayList<RemoteDegree>();
+                if (!CollectionUtils.isEmpty(addItems)) {
+                    List<SbInfo> itemsAdd = BeanConverterUtil.copyListProperties(addItems, SbInfo.class);
+                    mapper.insertListforComplex(addItems);
+                }
+            }
+            return "总计新增导入:" + (items.size());
+        } catch (Exception e) {
+            throw new BusinessException(e.getMessage());
+        }
+    }
+
+                                                                                                                                                                            }

+ 84 - 0
platform-service/src/main/java/com/platform/service/remote/impl/RemoteMeasureServiceImpl.java

@@ -0,0 +1,84 @@
+package com.platform.service.remote.impl;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.enums.DictTypeEnum;
+import com.platform.common.exception.BusinessException;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.dao.bean.MyPage;
+import com.github.pagehelper.PageHelper;
+import com.platform.dao.entity.remote.RemoteDegree;
+import com.platform.dao.entity.sb.SbInfo;
+import com.platform.dao.entity.upms.SysDict;
+import com.platform.dao.mapper.upms.SysDictMapper;
+import com.platform.dao.util.CustomExcelImportUtil;
+import com.platform.dao.vo.query.remote.RemoteMeasureVO;
+import com.platform.dao.dto.remote.RemoteMeasureDTO;
+import com.platform.dao.entity.remote.RemoteMeasure;
+import com.platform.dao.mapper.remote.RemoteMeasureMapper;
+import com.platform.service.remote.RemoteMeasureService;
+import org.springframework.stereotype.Service;
+import com.platform.service.base.impl.BaseServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.multipart.MultipartFile;
+import tk.mybatis.mapper.weekend.Weekend;
+import tk.mybatis.mapper.weekend.WeekendCriteria;
+import lombok.AllArgsConstructor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description 设备遥测对应表 service 实现类
+ * @Author xc
+ * @Date 2022-09-13 14:15:40
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@AllArgsConstructor
+@Service("remoteMeasureService")
+public class RemoteMeasureServiceImpl extends BaseServiceImpl<RemoteMeasureMapper, RemoteMeasure, RemoteMeasureDTO> implements RemoteMeasureService {
+
+    private final SysDictMapper sysDictMapper;
+
+    @Override
+    public int batchDelete(List<String> ids) {
+        Weekend<RemoteMeasure> weekend = new Weekend<>(RemoteMeasure.class);
+        WeekendCriteria<RemoteMeasure, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(RemoteMeasure::getId, ids);
+        mapper.deleteByExample(weekend);
+        return 1;
+    }
+
+    @Override
+    public AbstractPageResultBean<RemoteMeasureVO> selectPageList(RemoteMeasureDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+    @Override
+    public AbstractPageResultBean<RemoteMeasure> selectPageInfo(RemoteMeasureDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String importListByAdd(MultipartFile file) {
+        Weekend<SysDict> weekend = new Weekend<>(SysDict.class);
+        WeekendCriteria<SysDict, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andEqualTo(SysDict::getType, DictTypeEnum.REMOTE_MEASURE);
+        List<SysDict> sysDictList = sysDictMapper.selectByExample(weekend);
+        try {
+            List<RemoteMeasure> items = CustomExcelImportUtil.importRemoteMeasureList(file.getInputStream(),sysDictList);
+            if (!CollectionUtils.isEmpty(items)) {
+                List<RemoteMeasure> addItems = new ArrayList<RemoteMeasure>();
+                if (!CollectionUtils.isEmpty(addItems)) {
+                    List<SbInfo> itemsAdd = BeanConverterUtil.copyListProperties(addItems, SbInfo.class);
+                    mapper.insertListforComplex(addItems);
+                }
+            }
+            return "总计新增导入:" + (items.size());
+        } catch (Exception e) {
+            throw new BusinessException(e.getMessage());
+        }
+    }
+                                                                                                                                                                            }

+ 7 - 0
platform-service/src/main/java/com/platform/service/sb/impl/SbInfoServiceImpl.java

@@ -463,6 +463,9 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
     @Override
     public void modModelByDTO(SbInfoDTO model) {
 
+        if(model.getCheckDate() != null && model.getCheckPeriod() != null && model.getNextCheckDate() == null){
+            model.setNextCheckDate(model.getCheckDate().minusMonths(-model.getCheckPeriod()));
+        }
         if (model.getIsFinancing() == null) {
             model.setIsFinancing(SbInfoFinancingEnum.NOT.getValue());
         }
@@ -1759,6 +1762,10 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
         return voList;
     }
 
+    public static void main(String[] args) {
+        LocalDateTime now = LocalDateTime.now();
+        System.out.println(DateUtils.dateToString(now.minusMonths(-12)));
+    }
     @Override
     public void generateSbCodeAll() {
         List<SbInfo> list = mapper.selectAll();