Browse Source

配电图相关接口

jichaobo 3 năm trước cách đây
mục cha
commit
a45ca3788f
19 tập tin đã thay đổi với 1261 bổ sung0 xóa
  1. 84 0
      fiveep-controller/src/main/java/com/bizmatics/controller/web/HookupController.java
  2. 80 0
      fiveep-model/src/main/java/com/bizmatics/model/Hookup.java
  3. 157 0
      fiveep-model/src/main/java/com/bizmatics/model/HookupComponentBasics.java
  4. 152 0
      fiveep-model/src/main/java/com/bizmatics/model/HookupComponentComplete.java
  5. 152 0
      fiveep-model/src/main/java/com/bizmatics/model/vo/HookupComponentCompleteOneVo.java
  6. 140 0
      fiveep-model/src/main/java/com/bizmatics/model/vo/HookupComponentCompleteVo.java
  7. 60 0
      fiveep-model/src/main/java/com/bizmatics/model/vo/HookupOneVo.java
  8. 16 0
      fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/HookupComponentBasicsMapper.java
  9. 16 0
      fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/HookupComponentCompleteMapper.java
  10. 23 0
      fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/HookupMapper.java
  11. 33 0
      fiveep-persistence/src/main/resources/mapper/mysql/HookupComponentBasicsMapper.xml
  12. 32 0
      fiveep-persistence/src/main/resources/mapper/mysql/HookupComponentCompleteMapper.xml
  13. 32 0
      fiveep-persistence/src/main/resources/mapper/mysql/HookupMapper.xml
  14. 16 0
      fiveep-service/src/main/java/com/bizmatics/service/HookupComponentBasicsService.java
  15. 16 0
      fiveep-service/src/main/java/com/bizmatics/service/HookupComponentCompleteService.java
  16. 31 0
      fiveep-service/src/main/java/com/bizmatics/service/HookupService.java
  17. 20 0
      fiveep-service/src/main/java/com/bizmatics/service/impl/HookupComponentBasicsServiceImpl.java
  18. 20 0
      fiveep-service/src/main/java/com/bizmatics/service/impl/HookupComponentCompleteServiceImpl.java
  19. 181 0
      fiveep-service/src/main/java/com/bizmatics/service/impl/HookupServiceImpl.java

+ 84 - 0
fiveep-controller/src/main/java/com/bizmatics/controller/web/HookupController.java

@@ -0,0 +1,84 @@
+package com.bizmatics.controller.web;
+
+
+import com.bizmatics.common.core.bean.ApiResult;
+import com.bizmatics.model.Device;
+import com.bizmatics.model.DeviceAnalogVariableList;
+import com.bizmatics.model.DeviceAttribute;
+import com.bizmatics.model.vo.HookupComponentCompleteOneVo;
+import com.bizmatics.model.vo.HookupComponentCompleteVo;
+import com.bizmatics.model.vo.HookupOneVo;
+import com.bizmatics.service.HookupService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 配电图相关查询接口
+ *
+ * @author ya
+ * @since 2022-03-07
+ */
+@Controller
+@RequestMapping("/hookup")
+public class HookupController {
+
+    @Autowired
+    private HookupService hookupService;
+
+    /**
+     * 设备下拉框
+     * @param siteId 站点ID
+     * @return
+     */
+    @GetMapping("getDeviceAttributeList")
+    public ApiResult<List<DeviceAttribute>> getDeviceAttributeList(@RequestParam Integer siteId) {
+        return ApiResult.success(hookupService.getDeviceAttributeList(siteId));
+    }
+
+    /**
+     * 变量下拉框
+     * @param monitoringDeviceId 监控设备ID
+     * @return
+     */
+    @GetMapping("getDeviceAnalogVariableList")
+    public ApiResult<List<DeviceAnalogVariableList>> getDeviceAnalogVariableList(@RequestParam Integer monitoringDeviceId) {
+        return ApiResult.success(hookupService.getDeviceAnalogVariableList(monitoringDeviceId));
+    }
+
+
+    /**
+     * 配电图模板基础信息
+     * @param siteId 站点ID
+     * @return
+     */
+    @GetMapping("gethookupComponentBasics")
+    public ApiResult<List<HookupOneVo>> gethookupComponentBasics(@RequestParam(value = "siteId", required = false, defaultValue = "0") Integer siteId) {
+        return ApiResult.success(hookupService.gethookupComponentBasics(siteId));
+    }
+
+    /**
+     * 配电图数据查询
+     * @param siteId 站点ID
+     * @return
+     */
+    @GetMapping("getHookupComponentComplete")
+    public ApiResult<List<HookupComponentCompleteVo>> getHookupComponentComplete(@RequestParam Integer siteId) {
+        return ApiResult.success(hookupService.getHookupComponentComplete(siteId));
+    }
+
+    /**
+     *  配电图保存
+     * @param hookupComponentCompleteOneVoList
+     * @return
+     */
+    @PostMapping("setHookupComponentComplete")
+    public ApiResult<Void> setHookupComponentComplete(@RequestBody List<HookupComponentCompleteOneVo> hookupComponentCompleteOneVoList) {
+        hookupService.setHookupComponentComplete(hookupComponentCompleteOneVoList);
+        return ApiResult.success();
+    }
+
+}
+

+ 80 - 0
fiveep-model/src/main/java/com/bizmatics/model/Hookup.java

@@ -0,0 +1,80 @@
+package com.bizmatics.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ya
+ * @since 2022-03-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class Hookup implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 接线图元器件数据表ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 外层Type
+     */
+    @TableField("outerType")
+    private String outerType;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 样式模板
+     */
+    private String template;
+
+    /**
+     * 所需道具
+     */
+    private String props;
+
+    /**
+     * 默认颜色
+     */
+    private String defaultColor;
+
+    /**
+     * 图片路径
+     */
+    private String priviewImg;
+
+    /**
+     * 所属站点ID
+     */
+    private Integer siteId;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+
+}

+ 157 - 0
fiveep-model/src/main/java/com/bizmatics/model/HookupComponentBasics.java

@@ -0,0 +1,157 @@
+package com.bizmatics.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ya
+ * @since 2022-03-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class HookupComponentBasics implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 接线图元器件详细数据关联表ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 类别
+     */
+    private Integer sort;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 内部类型
+     */
+    @TableField("innerType")
+    private String innerType;
+
+    /**
+     * 类型名称
+     */
+    @TableField("typeName")
+    private String typeName;
+
+    /**
+     * 元器件颜色
+     */
+    @TableField("svgColor")
+    private String svgColor;
+
+    /**
+     * 元器件X坐标
+     */
+    @TableField("svgPositionX")
+    private Integer svgPositionX;
+
+    /**
+     * 元器件Y坐标
+     */
+    @TableField("svgPositionY")
+    private Integer svgPositionY;
+
+    /**
+     * 大小
+     */
+    private Integer size;
+
+    /**
+     * 高度
+     */
+    private Integer height;
+
+    /**
+     * 宽度
+     */
+    private Integer width;
+
+    /**
+     * 字体大小
+     */
+    @TableField("fontSize")
+    private Integer fontSize;
+
+    /**
+     * 元器件描述
+     */
+    @TableField("svgText")
+    private String svgText;
+
+    /**
+     * 角度
+     */
+    private Integer angle;
+
+    /**
+     * 表行数
+     */
+    @TableField("tableRowCount")
+    private Integer tableRowCount;
+
+    /**
+     * 表列数
+     */
+    @TableField("tableColCount")
+    private Integer tableColCount;
+
+    /**
+     * 表数据
+     */
+    @TableField("tableData")
+    private String tableData;
+
+    @TableField("elementBool")
+    private String elementBool;
+
+    /**
+     * 所属站点ID
+     */
+    private Integer siteId;
+
+    /**
+     * 所属设备ID
+     */
+    private Integer deviceId;
+
+    /**
+     * 主表id
+     */
+    private Integer hookupId;
+
+    /**
+     * 所属变量ID
+     */
+    private Integer variableId;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+
+}

+ 152 - 0
fiveep-model/src/main/java/com/bizmatics/model/HookupComponentComplete.java

@@ -0,0 +1,152 @@
+package com.bizmatics.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ya
+ * @since 2022-03-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class HookupComponentComplete implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 接线图元器件详细数据关联表ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 类别
+     */
+    private Integer sort;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 内部类型
+     */
+    @TableField("innerType")
+    private String innerType;
+
+    /**
+     * 类型名称
+     */
+    @TableField("typeName")
+    private String typeName;
+
+    /**
+     * 元器件颜色
+     */
+    @TableField("svgColor")
+    private String svgColor;
+
+    /**
+     * 元器件X坐标
+     */
+    @TableField("svgPositionX")
+    private Integer svgPositionX;
+
+    /**
+     * 元器件Y坐标
+     */
+    @TableField("svgPositionY")
+    private Integer svgPositionY;
+
+    /**
+     * 大小
+     */
+    private Integer size;
+
+    /**
+     * 高度
+     */
+    private Integer height;
+
+    /**
+     * 宽度
+     */
+    private Integer width;
+
+    /**
+     * 字体大小
+     */
+    @TableField("fontSize")
+    private Integer fontSize;
+
+    /**
+     * 元器件描述
+     */
+    @TableField("svgText")
+    private String svgText;
+
+    /**
+     * 角度
+     */
+    private Integer angle;
+
+    /**
+     * 表行数
+     */
+    @TableField("tableRowCount")
+    private Integer tableRowCount;
+
+    /**
+     * 表列数
+     */
+    @TableField("tableColCount")
+    private Integer tableColCount;
+
+    /**
+     * 表数据
+     */
+    @TableField("tableData")
+    private String tableData;
+
+    @TableField("elementBool")
+    private String elementBool;
+
+    /**
+     * 所属站点ID
+     */
+    private Integer siteId;
+
+    /**
+     * 所属设备ID
+     */
+    private Integer deviceId;
+
+    /**
+     * 所属变量ID
+     */
+    private Integer variableId;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+
+}

+ 152 - 0
fiveep-model/src/main/java/com/bizmatics/model/vo/HookupComponentCompleteOneVo.java

@@ -0,0 +1,152 @@
+package com.bizmatics.model.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ya
+ * @since 2022-03-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class HookupComponentCompleteOneVo implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 接线图元器件详细数据关联表ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 类别
+     */
+    private Integer sort;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 内部类型
+     */
+    private String type;
+
+    /**
+     * 类型名称
+     */
+    @TableField("typeName")
+    private String typeName;
+
+    /**
+     * 元器件颜色
+     */
+    @TableField("svgColor")
+    private String svgColor;
+
+    /**
+     * 元器件X坐标
+     */
+    @TableField("svgPositionX")
+    private Integer svgPositionX;
+
+    /**
+     * 元器件Y坐标
+     */
+    @TableField("svgPositionY")
+    private Integer svgPositionY;
+
+    /**
+     * 大小
+     */
+    private Integer size;
+
+    /**
+     * 高度
+     */
+    private Integer height;
+
+    /**
+     * 宽度
+     */
+    private Integer width;
+
+    /**
+     * 字体大小
+     */
+    @TableField("fontSize")
+    private Integer fontSize;
+
+    /**
+     * 元器件描述
+     */
+    @TableField("svgText")
+    private String svgText;
+
+    /**
+     * 角度
+     */
+    private Integer angle;
+
+    /**
+     * 表行数
+     */
+    @TableField("tableRowCount")
+    private Integer tableRowCount;
+
+    /**
+     * 表列数
+     */
+    @TableField("tableColCount")
+    private Integer tableColCount;
+
+    /**
+     * 表数据
+     */
+    @TableField("tableData")
+    private Object tableData;
+
+    @TableField("elementBool")
+    private Object elementBool;
+
+    /**
+     * 所属站点ID
+     */
+    private Integer siteId;
+
+    /**
+     * 所属设备ID
+     */
+    private Integer deviceId;
+
+    /**
+     * 所属变量ID
+     */
+    private Integer variableId;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+
+}

+ 140 - 0
fiveep-model/src/main/java/com/bizmatics/model/vo/HookupComponentCompleteVo.java

@@ -0,0 +1,140 @@
+package com.bizmatics.model.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ya
+ * @since 2022-03-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class HookupComponentCompleteVo implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 接线图元器件详细数据关联表ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 类别
+     */
+    private Integer sort;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 内部类型
+     */
+    private String type;
+
+    /**
+     * 类型名称
+     */
+    @TableField("typeName")
+    private String typeName;
+
+    /**
+     * 元器件颜色
+     */
+    @TableField("svgColor")
+    private String svgColor;
+
+    /**
+     * 元器件X坐标
+     */
+    @TableField("svgPositionX")
+    private Integer svgPositionX;
+
+    /**
+     * 元器件Y坐标
+     */
+    @TableField("svgPositionY")
+    private Integer svgPositionY;
+
+    /**
+     * 大小
+     */
+    private Integer size;
+
+    /**
+     * 高度
+     */
+    private Integer height;
+
+    /**
+     * 宽度
+     */
+    private Integer width;
+
+    /**
+     * 字体大小
+     */
+    @TableField("fontSize")
+    private Integer fontSize;
+
+    /**
+     * 元器件描述
+     */
+    @TableField("svgText")
+    private String svgText;
+
+    /**
+     * 角度
+     */
+    private Integer angle;
+
+    /**
+     * 表行数
+     */
+    @TableField("tableRowCount")
+    private Integer tableRowCount;
+
+    /**
+     * 表列数
+     */
+    @TableField("tableColCount")
+    private Integer tableColCount;
+
+    /**
+     * 表数据
+     */
+    @TableField("tableData")
+    private Object tableData;
+
+    @TableField("elementBool")
+    private Object elementBool;
+
+    /**
+     * 所属站点ID
+     */
+    private Integer siteId;
+
+    /**
+     * 所属设备ID
+     */
+    private Integer deviceId;
+
+    /**
+     * 所属变量ID
+     */
+    private Integer variableId;
+}

+ 60 - 0
fiveep-model/src/main/java/com/bizmatics/model/vo/HookupOneVo.java

@@ -0,0 +1,60 @@
+package com.bizmatics.model.vo;
+
+import com.bizmatics.model.HookupComponentBasics;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author ya
+ * @since 2022-03-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class HookupOneVo implements Serializable {
+
+
+    /**
+     * 外层Type
+     */
+    private String type;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 样式模板
+     */
+    private String template;
+
+    /**
+     * 所需道具
+     */
+    private Object props;
+
+    /**
+     * 默认颜色
+     */
+    private String defaultColor;
+
+    /**
+     * 图片路径
+     */
+    private String priviewImg;
+
+    /**
+     * 所属站点ID
+     */
+    private HookupComponentBasics array;
+
+
+}

+ 16 - 0
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/HookupComponentBasicsMapper.java

@@ -0,0 +1,16 @@
+package com.bizmatics.persistence.mapper;
+
+import com.bizmatics.model.HookupComponentBasics;
+import com.bizmatics.common.mvc.base.CrudMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ya
+ * @since 2022-03-07
+ */
+public interface HookupComponentBasicsMapper extends CrudMapper<HookupComponentBasics> {
+
+}

+ 16 - 0
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/HookupComponentCompleteMapper.java

@@ -0,0 +1,16 @@
+package com.bizmatics.persistence.mapper;
+
+import com.bizmatics.model.HookupComponentComplete;
+import com.bizmatics.common.mvc.base.CrudMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ya
+ * @since 2022-03-07
+ */
+public interface HookupComponentCompleteMapper extends CrudMapper<HookupComponentComplete> {
+
+}

+ 23 - 0
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/HookupMapper.java

@@ -0,0 +1,23 @@
+package com.bizmatics.persistence.mapper;
+
+import com.bizmatics.model.Hookup;
+import com.bizmatics.common.mvc.base.CrudMapper;
+import com.bizmatics.model.vo.DeviceOneVo;
+import com.bizmatics.model.vo.HookupVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ya
+ * @since 2022-03-07
+ */
+public interface HookupMapper extends CrudMapper<Hookup> {
+
+    List<HookupVo> hookupList(@Param("siteId") Integer siteId);
+
+}

+ 33 - 0
fiveep-persistence/src/main/resources/mapper/mysql/HookupComponentBasicsMapper.xml

@@ -0,0 +1,33 @@
+<?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.bizmatics.persistence.mapper.HookupComponentBasicsMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.bizmatics.model.HookupComponentBasics">
+        <id column="id" property="id" />
+        <result column="sort" property="sort" />
+        <result column="title" property="title" />
+        <result column="innerType" property="innerType" />
+        <result column="typeName" property="typeName" />
+        <result column="svgColor" property="svgColor" />
+        <result column="svgPositionX" property="svgPositionX" />
+        <result column="svgPositionY" property="svgPositionY" />
+        <result column="size" property="size" />
+        <result column="height" property="height" />
+        <result column="width" property="width" />
+        <result column="fontSize" property="fontSize" />
+        <result column="svgText" property="svgText" />
+        <result column="angle" property="angle" />
+        <result column="tableRowCount" property="tableRowCount" />
+        <result column="tableColCount" property="tableColCount" />
+        <result column="tableData" property="tableData" />
+        <result column="elementBool" property="elementBool" />
+        <result column="site_id" property="siteId" />
+        <result column="device_id" property="deviceId" />
+        <result column="hookup_id" property="hookupId" />
+        <result column="variable_id" property="variableId" />
+        <result column="creator" property="creator" />
+        <result column="create_time" property="createTime" />
+    </resultMap>
+
+</mapper>

+ 32 - 0
fiveep-persistence/src/main/resources/mapper/mysql/HookupComponentCompleteMapper.xml

@@ -0,0 +1,32 @@
+<?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.bizmatics.persistence.mapper.HookupComponentCompleteMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.bizmatics.model.HookupComponentComplete">
+        <id column="id" property="id" />
+        <result column="sort" property="sort" />
+        <result column="title" property="title" />
+        <result column="innerType" property="innerType" />
+        <result column="typeName" property="typeName" />
+        <result column="svgColor" property="svgColor" />
+        <result column="svgPositionX" property="svgPositionX" />
+        <result column="svgPositionY" property="svgPositionY" />
+        <result column="size" property="size" />
+        <result column="height" property="height" />
+        <result column="width" property="width" />
+        <result column="fontSize" property="fontSize" />
+        <result column="svgText" property="svgText" />
+        <result column="angle" property="angle" />
+        <result column="tableRowCount" property="tableRowCount" />
+        <result column="tableColCount" property="tableColCount" />
+        <result column="tableData" property="tableData" />
+        <result column="elementBool" property="elementBool" />
+        <result column="site_id" property="siteId" />
+        <result column="device_id" property="deviceId" />
+        <result column="variable_id" property="variableId" />
+        <result column="creator" property="creator" />
+        <result column="create_time" property="createTime" />
+    </resultMap>
+
+</mapper>

+ 32 - 0
fiveep-persistence/src/main/resources/mapper/mysql/HookupMapper.xml

@@ -0,0 +1,32 @@
+<?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.bizmatics.persistence.mapper.HookupMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.bizmatics.model.Hookup">
+        <id column="id" property="id" />
+        <result column="outerType" property="outerType" />
+        <result column="title" property="title" />
+        <result column="template" property="template" />
+        <result column="props" property="props" />
+        <result column="default_color" property="defaultColor" />
+        <result column="priview_img" property="priviewImg" />
+        <result column="site_id" property="siteId" />
+        <result column="creator" property="creator" />
+        <result column="create_time" property="createTime" />
+    </resultMap>
+
+    <select id="hookupList" resultType="com.bizmatics.model.vo.HookupVo">
+        SELECT
+        *
+        FROM
+        hookup AS a
+        LEFT JOIN hookup_component_basics AS b ON a.id = b.hookup_id
+        <where>
+            <if test="siteId != null and siteId != 0">
+                a.site_id = #{siteId}
+            </if>
+        </where>
+    </select>
+
+</mapper>

+ 16 - 0
fiveep-service/src/main/java/com/bizmatics/service/HookupComponentBasicsService.java

@@ -0,0 +1,16 @@
+package com.bizmatics.service;
+
+import com.bizmatics.model.HookupComponentBasics;
+import com.bizmatics.common.mvc.base.CrudService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ya
+ * @since 2022-03-07
+ */
+public interface HookupComponentBasicsService extends CrudService<HookupComponentBasics> {
+
+}

+ 16 - 0
fiveep-service/src/main/java/com/bizmatics/service/HookupComponentCompleteService.java

@@ -0,0 +1,16 @@
+package com.bizmatics.service;
+
+import com.bizmatics.model.HookupComponentComplete;
+import com.bizmatics.common.mvc.base.CrudService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ya
+ * @since 2022-03-07
+ */
+public interface HookupComponentCompleteService extends CrudService<HookupComponentComplete> {
+
+}

+ 31 - 0
fiveep-service/src/main/java/com/bizmatics/service/HookupService.java

@@ -0,0 +1,31 @@
+package com.bizmatics.service;
+
+import com.bizmatics.model.DeviceAnalogVariableList;
+import com.bizmatics.model.DeviceAttribute;
+import com.bizmatics.model.Hookup;
+import com.bizmatics.common.mvc.base.CrudService;
+import com.bizmatics.model.vo.HookupComponentCompleteOneVo;
+import com.bizmatics.model.vo.HookupComponentCompleteVo;
+import com.bizmatics.model.vo.HookupOneVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ya
+ * @since 2022-03-07
+ */
+public interface HookupService extends CrudService<Hookup> {
+    public List<DeviceAttribute> getDeviceAttributeList(Integer siteId);
+
+    public List<DeviceAnalogVariableList> getDeviceAnalogVariableList(Integer monitoringDeviceId);
+
+    public List<HookupOneVo> gethookupComponentBasics(Integer siteId);
+
+    public List<HookupComponentCompleteVo> getHookupComponentComplete(Integer siteId);
+
+    public void setHookupComponentComplete(List<HookupComponentCompleteOneVo> hookupComponentCompleteOneVoList);
+}

+ 20 - 0
fiveep-service/src/main/java/com/bizmatics/service/impl/HookupComponentBasicsServiceImpl.java

@@ -0,0 +1,20 @@
+package com.bizmatics.service.impl;
+
+import com.bizmatics.model.HookupComponentBasics;
+import com.bizmatics.persistence.mapper.HookupComponentBasicsMapper;
+import com.bizmatics.service.HookupComponentBasicsService;
+import com.bizmatics.common.mvc.base.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ya
+ * @since 2022-03-07
+ */
+@Service
+public class HookupComponentBasicsServiceImpl extends AbstractCrudService<HookupComponentBasicsMapper, HookupComponentBasics> implements HookupComponentBasicsService {
+
+}

+ 20 - 0
fiveep-service/src/main/java/com/bizmatics/service/impl/HookupComponentCompleteServiceImpl.java

@@ -0,0 +1,20 @@
+package com.bizmatics.service.impl;
+
+import com.bizmatics.model.HookupComponentComplete;
+import com.bizmatics.persistence.mapper.HookupComponentCompleteMapper;
+import com.bizmatics.service.HookupComponentCompleteService;
+import com.bizmatics.common.mvc.base.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ya
+ * @since 2022-03-07
+ */
+@Service
+public class HookupComponentCompleteServiceImpl extends AbstractCrudService<HookupComponentCompleteMapper, HookupComponentComplete> implements HookupComponentCompleteService {
+
+}

+ 181 - 0
fiveep-service/src/main/java/com/bizmatics/service/impl/HookupServiceImpl.java

@@ -0,0 +1,181 @@
+package com.bizmatics.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.bizmatics.common.core.exception.BusinessException;
+import com.bizmatics.common.mvc.base.AbstractCrudService;
+import com.bizmatics.model.*;
+import com.bizmatics.model.system.SysUser;
+import com.bizmatics.model.vo.HookupComponentCompleteOneVo;
+import com.bizmatics.model.vo.HookupComponentCompleteVo;
+import com.bizmatics.model.vo.HookupOneVo;
+import com.bizmatics.persistence.mapper.HookupMapper;
+import com.bizmatics.service.*;
+import com.bizmatics.service.util.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+
+import java.sql.Date;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author ya
+ * @since 2022-03-07
+ */
+@Service
+public class HookupServiceImpl extends AbstractCrudService<HookupMapper, Hookup> implements HookupService {
+
+    @Autowired
+    private DeviceAttributeService deviceAttributeService;
+
+    @Autowired
+    private DeviceAnalogVariableListService deviceAnalogVariableListService;
+
+    @Autowired
+    private HookupComponentBasicsService hookupComponentBasicsService;
+
+    @Autowired
+    private HookupComponentCompleteService hookupComponentCompleteService;
+
+    @Override
+    public List<DeviceAttribute> getDeviceAttributeList(Integer siteId) {
+        LambdaQueryWrapper<DeviceAttribute> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(DeviceAttribute::getStatus, 1).eq(DeviceAttribute::getSiteId, siteId);
+        List<DeviceAttribute> deviceAttributeList = deviceAttributeService.list(queryWrapper);
+        return deviceAttributeList;
+    }
+
+    @Override
+    public List<DeviceAnalogVariableList> getDeviceAnalogVariableList(Integer monitoringDeviceId) {
+        LambdaQueryWrapper<DeviceAnalogVariableList> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(DeviceAnalogVariableList::getStatus, 1).eq(DeviceAnalogVariableList::getMonitoringEquipment, monitoringDeviceId);
+        List<DeviceAnalogVariableList> deviceAnalogVariableList = deviceAnalogVariableListService.list(queryWrapper);
+        return deviceAnalogVariableList;
+    }
+
+    @Override
+    public List<HookupOneVo> gethookupComponentBasics(Integer siteId) {
+        LambdaQueryWrapper<Hookup> queryWrapper = Wrappers.lambdaQuery();
+        if (siteId != 0) {
+            queryWrapper.eq(Hookup::getSiteId, siteId);
+        }
+        List<Hookup> hookupList = this.list(queryWrapper);
+        LambdaQueryWrapper<HookupComponentBasics> queryWrapperOne = Wrappers.lambdaQuery();
+        if (siteId != 0) {
+            queryWrapperOne.eq(HookupComponentBasics::getSiteId, siteId);
+        }
+        List<HookupComponentBasics> hookupComponentBasicsList = hookupComponentBasicsService.list(queryWrapperOne);
+        List<HookupOneVo> hookupOneVoList = new ArrayList<HookupOneVo>();
+        if (hookupList.size() > 0) {
+            for (int i = 0; i < hookupList.size(); i++) {
+                HookupOneVo hookupOneVo = new HookupOneVo();
+                hookupOneVo.setType(hookupList.get(i).getOuterType());
+                hookupOneVo.setTemplate(hookupList.get(i).getTemplate());
+                hookupOneVo.setProps(hookupList.get(i).getProps().split(","));
+                hookupOneVo.setDefaultColor(hookupList.get(i).getDefaultColor());
+                hookupOneVo.setPriviewImg(hookupList.get(i).getPriviewImg());
+                for (int j = 0; j < hookupComponentBasicsList.size(); j++) {
+                    if (hookupList.get(i).getId() == hookupComponentBasicsList.get(j).getHookupId()) {
+                        hookupOneVo.setArray(hookupComponentBasicsList.get(j));
+                    }
+                }
+                hookupOneVoList.add(hookupOneVo);
+            }
+        }
+        return hookupOneVoList;
+    }
+
+    @Override
+    public List<HookupComponentCompleteVo> getHookupComponentComplete(Integer siteId){
+        LambdaQueryWrapper<HookupComponentComplete> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(HookupComponentComplete::getSiteId, siteId);
+        List<HookupComponentComplete> hookupComponentComplete = hookupComponentCompleteService.list(queryWrapper);
+        List<HookupComponentCompleteVo> hookupComponentCompleteVoLsit = new ArrayList<HookupComponentCompleteVo>();
+        if (hookupComponentComplete.size()>0){
+            for (int i = 0; i < hookupComponentComplete.size(); i++){
+                HookupComponentCompleteVo hookupComponentCompleteVo = new HookupComponentCompleteVo();
+                hookupComponentCompleteVo.setId(hookupComponentComplete.get(i).getId());
+                hookupComponentCompleteVo.setSort(hookupComponentComplete.get(i).getSort());
+                hookupComponentCompleteVo.setTitle(hookupComponentComplete.get(i).getTitle());
+                hookupComponentCompleteVo.setType(hookupComponentComplete.get(i).getInnerType());
+                hookupComponentCompleteVo.setTypeName(hookupComponentComplete.get(i).getTypeName());
+                hookupComponentCompleteVo.setSvgColor(hookupComponentComplete.get(i).getSvgColor());
+                hookupComponentCompleteVo.setSvgPositionX(hookupComponentComplete.get(i).getSvgPositionX());
+                hookupComponentCompleteVo.setSvgPositionY(hookupComponentComplete.get(i).getSvgPositionY());
+                hookupComponentCompleteVo.setSize(hookupComponentComplete.get(i).getSize());
+                hookupComponentCompleteVo.setHeight(hookupComponentComplete.get(i).getHeight());
+                hookupComponentCompleteVo.setWidth(hookupComponentComplete.get(i).getWidth());
+                hookupComponentCompleteVo.setFontSize(hookupComponentComplete.get(i).getFontSize());
+                hookupComponentCompleteVo.setSvgText(hookupComponentComplete.get(i).getSvgText());
+                hookupComponentCompleteVo.setAngle(hookupComponentComplete.get(i).getAngle());
+                hookupComponentCompleteVo.setTableRowCount(hookupComponentComplete.get(i).getTableRowCount());
+                hookupComponentCompleteVo.setTableColCount(hookupComponentComplete.get(i).getTableColCount());
+                hookupComponentCompleteVo.setTableData(hookupComponentComplete.get(i).getTableData());
+                if (hookupComponentComplete.get(i).getElementBool().equals("")){
+                    hookupComponentCompleteVo.setElementBool("");
+                }else {
+                    hookupComponentCompleteVo.setElementBool(hookupComponentComplete.get(i).getElementBool().split(","));
+                }
+                hookupComponentCompleteVo.setDeviceId(hookupComponentComplete.get(i).getDeviceId());
+                hookupComponentCompleteVo.setSiteId(hookupComponentComplete.get(i).getSiteId());
+                hookupComponentCompleteVo.setVariableId(hookupComponentComplete.get(i).getVariableId());
+                hookupComponentCompleteVoLsit.add(hookupComponentCompleteVo);
+            }
+        }
+        return hookupComponentCompleteVoLsit;
+    }
+
+    @Override
+    @Transactional
+    public void setHookupComponentComplete(List<HookupComponentCompleteOneVo> hookupComponentCompleteOneVoList){
+        try {
+            SysUser user = SecurityUtils.getLoginUser().getUser();
+            for (int i = 0; i < hookupComponentCompleteOneVoList.size(); i++){
+                HookupComponentComplete hookupComponentComplete = new HookupComponentComplete();
+                hookupComponentComplete.setSort(hookupComponentCompleteOneVoList.get(i).getSort());
+                hookupComponentComplete.setTitle(hookupComponentCompleteOneVoList.get(i).getTitle());
+                hookupComponentComplete.setInnerType(hookupComponentCompleteOneVoList.get(i).getType());
+                hookupComponentComplete.setTypeName(hookupComponentCompleteOneVoList.get(i).getTypeName());
+                hookupComponentComplete.setSvgColor(hookupComponentCompleteOneVoList.get(i).getSvgColor());
+                hookupComponentComplete.setSvgPositionX(hookupComponentCompleteOneVoList.get(i).getSvgPositionX());
+                hookupComponentComplete.setSvgPositionY(hookupComponentCompleteOneVoList.get(i).getSvgPositionY());
+                hookupComponentComplete.setSize(hookupComponentCompleteOneVoList.get(i).getSize());
+                hookupComponentComplete.setHeight(hookupComponentCompleteOneVoList.get(i).getHeight());
+                hookupComponentComplete.setWidth(hookupComponentCompleteOneVoList.get(i).getWidth());
+                hookupComponentComplete.setFontSize(hookupComponentCompleteOneVoList.get(i).getFontSize());
+                hookupComponentComplete.setSvgText(hookupComponentCompleteOneVoList.get(i).getSvgText());
+                hookupComponentComplete.setAngle(hookupComponentCompleteOneVoList.get(i).getAngle());
+                hookupComponentComplete.setTableRowCount(hookupComponentCompleteOneVoList.get(i).getTableRowCount());
+                hookupComponentComplete.setTableColCount(hookupComponentCompleteOneVoList.get(i).getTableColCount());
+                if (hookupComponentCompleteOneVoList.get(i).getTableData()==null){
+                    hookupComponentComplete.setTableData("");
+                }else {
+                    hookupComponentComplete.setTableData(hookupComponentCompleteOneVoList.get(i).getTableData().toString());
+                }
+                if (hookupComponentCompleteOneVoList.get(i).getElementBool()==null){
+                    hookupComponentComplete.setElementBool("");
+                }else {
+                    hookupComponentComplete.setElementBool(hookupComponentCompleteOneVoList.get(i).getElementBool().toString());
+                }
+                hookupComponentComplete.setSiteId(hookupComponentCompleteOneVoList.get(i).getSiteId());
+                hookupComponentComplete.setDeviceId(hookupComponentCompleteOneVoList.get(i).getDeviceId());
+                hookupComponentComplete.setVariableId(hookupComponentCompleteOneVoList.get(i).getVariableId());
+                hookupComponentComplete.setCreator(user.getUserName());
+                hookupComponentComplete.setCreateTime(LocalDateTime.now());
+                hookupComponentCompleteService.save(hookupComponentComplete);
+            }
+
+        }catch (Exception e){
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            throw  new BusinessException("数据错误,新增失败");
+        }
+    }
+}