模板解析功能提交
This commit is contained in:
@@ -30,6 +30,10 @@ public class BmdDto implements Serializable {
|
|||||||
@NotNull(message = "数据编号,不为空")
|
@NotNull(message = "数据编号,不为空")
|
||||||
private Integer idx;
|
private Integer idx;
|
||||||
|
|
||||||
|
@SerializedName("Phase")
|
||||||
|
@NotNull(message = "相别,不为空")
|
||||||
|
private String phase;
|
||||||
|
|
||||||
@SerializedName("Type")
|
@SerializedName("Type")
|
||||||
@NotNull(message = "数据类型,不为空")
|
@NotNull(message = "数据类型,不为空")
|
||||||
private String type;
|
private String type;
|
||||||
|
|||||||
@@ -0,0 +1,67 @@
|
|||||||
|
package com.njcn.access.pojo.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 设备告警数据表
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@TableName("cs_alm")
|
||||||
|
public class CsAlmPO extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读写操作属性:“r”
|
||||||
|
*/
|
||||||
|
private String opAttr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 告警事件名称
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "name")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 告警事件编号
|
||||||
|
*/
|
||||||
|
private Integer idx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 告警事件类别“1”“2”
|
||||||
|
*/
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 别名
|
||||||
|
*/
|
||||||
|
private String anotherName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据分类,唯一类别
|
||||||
|
*/
|
||||||
|
private String classId;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,121 @@
|
|||||||
|
package com.njcn.access.pojo.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 控制表
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@TableName("cs_ctrl")
|
||||||
|
public class CsCtrlPO extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读写操作属性:“r”
|
||||||
|
*/
|
||||||
|
private String opAttr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数名称
|
||||||
|
*/
|
||||||
|
@TableId(value = "name")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 别名
|
||||||
|
*/
|
||||||
|
private String anotherName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数编号
|
||||||
|
*/
|
||||||
|
private Integer idx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下发数据类型 “string”“float”“enum”
|
||||||
|
*/
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否需遥控校验 “1”“0”
|
||||||
|
*/
|
||||||
|
private Integer check;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否支持自动控制 “1”“0”
|
||||||
|
*/
|
||||||
|
private Integer auto;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置最大值
|
||||||
|
*/
|
||||||
|
private Integer maxNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置最小值
|
||||||
|
*/
|
||||||
|
private Integer minNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数为enum可设置的所有值序列
|
||||||
|
*/
|
||||||
|
private String ctlValue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数string可设置字符串的长度上限
|
||||||
|
*/
|
||||||
|
private Integer strlen;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否加密,“1”“0”
|
||||||
|
*/
|
||||||
|
private Integer encode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据分类,唯一类别
|
||||||
|
*/
|
||||||
|
private String classId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建用户
|
||||||
|
*/
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新用户
|
||||||
|
*/
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
package com.njcn.access.pojo.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 开入表
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@TableName("cs_di")
|
||||||
|
public class CsDiPO extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Id
|
||||||
|
*/
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读写操作属性:“r”
|
||||||
|
*/
|
||||||
|
private String opAttr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开入信号名称
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "name")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开入编号
|
||||||
|
*/
|
||||||
|
private Integer idx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否存储“1”“0”
|
||||||
|
*/
|
||||||
|
private Integer storeFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前值“1”“0”
|
||||||
|
*/
|
||||||
|
private Integer curSts;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据分类,唯一类别
|
||||||
|
*/
|
||||||
|
private String classId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据是否上送 “1”“0”
|
||||||
|
*/
|
||||||
|
private Integer tranFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上送规则 变化:“change”周期:“period”
|
||||||
|
*/
|
||||||
|
private String tranRule;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 别名
|
||||||
|
*/
|
||||||
|
private String anotherName;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
package com.njcn.access.pojo.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-18
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@TableName("cs_dict")
|
||||||
|
public class CsDict extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
private String pid;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private String anotherName;
|
||||||
|
|
||||||
|
private Boolean status;
|
||||||
|
|
||||||
|
private Integer sort;
|
||||||
|
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
package com.njcn.access.pojo.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 开出表
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@TableName("cs_do")
|
||||||
|
public class CsDoPO extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Id
|
||||||
|
*/
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读写操作属性:“r”
|
||||||
|
*/
|
||||||
|
private String opAttr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开出信号名称
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "name")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DO编号
|
||||||
|
*/
|
||||||
|
private Integer idx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前值/设定值“1”“0”
|
||||||
|
*/
|
||||||
|
private Integer curSts;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否可远程控制 “1”“0”
|
||||||
|
*/
|
||||||
|
private Integer ctlSts;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建用户
|
||||||
|
*/
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新用户
|
||||||
|
*/
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 别名
|
||||||
|
*/
|
||||||
|
private String anotherName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据分类,唯一类别
|
||||||
|
*/
|
||||||
|
private String classId;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
package com.njcn.access.pojo.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 事件表
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@TableName("cs_evt")
|
||||||
|
public class CsEvtPO extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读写操作属性:“r”
|
||||||
|
*/
|
||||||
|
private String opAttr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事件信息名称
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "name")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事件编号
|
||||||
|
*/
|
||||||
|
private Integer idx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事件类别“1”“2”
|
||||||
|
*/
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建用户
|
||||||
|
*/
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新用户
|
||||||
|
*/
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 别名
|
||||||
|
*/
|
||||||
|
private String anotherName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据分类,唯一类别
|
||||||
|
*/
|
||||||
|
private String classId;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
package com.njcn.access.pojo.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 事件参数表
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@TableName("cs_evt_parm")
|
||||||
|
public class CsEvtParmPO extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* pid
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "pid")
|
||||||
|
private String pid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事件信息名称
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "name")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数类型“string”“float”
|
||||||
|
*/
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数单位
|
||||||
|
*/
|
||||||
|
private String unit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数值
|
||||||
|
*/
|
||||||
|
private String data;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,111 @@
|
|||||||
|
package com.njcn.access.pojo.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 参数表
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("cs_parm")
|
||||||
|
public class CsParmPO extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读写操作属性:“r”
|
||||||
|
*/
|
||||||
|
private String opAttr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数名称
|
||||||
|
*/
|
||||||
|
@TableId(value = "name")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 别名
|
||||||
|
*/
|
||||||
|
private String anotherName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数编号
|
||||||
|
*/
|
||||||
|
private Integer idx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 系统参数:“sys”运行参数:“run” 功能参数:“fun”
|
||||||
|
*/
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数数据类型 “string”“float”“enum”
|
||||||
|
*/
|
||||||
|
private String dataType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否可修改 “1”“0”
|
||||||
|
*/
|
||||||
|
private Integer modifyFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置最大值
|
||||||
|
*/
|
||||||
|
private Integer maxNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置最小值
|
||||||
|
*/
|
||||||
|
private Integer minNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数为enum可设置的所有值序列
|
||||||
|
*/
|
||||||
|
private String setValue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数string可设置字符串的长度上限
|
||||||
|
*/
|
||||||
|
private Integer strlen;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数缺省值
|
||||||
|
*/
|
||||||
|
private String defaultValue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新用户
|
||||||
|
*/
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据分类,唯一类别
|
||||||
|
*/
|
||||||
|
private String classId;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,101 @@
|
|||||||
|
package com.njcn.access.pojo.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 设备定值数据表
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@TableName("cs_set")
|
||||||
|
public class CsSetPO extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读写操作属性:“r”
|
||||||
|
*/
|
||||||
|
private String opAttr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数名称
|
||||||
|
*/
|
||||||
|
@TableId(value = "name")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 别名
|
||||||
|
*/
|
||||||
|
private String anotherName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数编号
|
||||||
|
*/
|
||||||
|
private Integer idx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定值数据类型 “hex”“number”
|
||||||
|
*/
|
||||||
|
private String dataType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置最大值
|
||||||
|
*/
|
||||||
|
private Integer maxNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置最小值
|
||||||
|
*/
|
||||||
|
private Integer minNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定值缺省值
|
||||||
|
*/
|
||||||
|
private String defaultValue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据分类,唯一类别
|
||||||
|
*/
|
||||||
|
private String classId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建用户
|
||||||
|
*/
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新用户
|
||||||
|
*/
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
package com.njcn.access.pojo.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 状态表
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@TableName("cs_sts")
|
||||||
|
public class CsStsPO extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读写操作属性:“r”
|
||||||
|
*/
|
||||||
|
private String opAttr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 状态名称
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "name")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 状态编号
|
||||||
|
*/
|
||||||
|
private Integer idx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否存储“1”“0”
|
||||||
|
*/
|
||||||
|
private Integer storeFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前值“1”“0”
|
||||||
|
*/
|
||||||
|
private Integer curSts;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据分类,唯一类别
|
||||||
|
*/
|
||||||
|
private String classId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上送规则 变化:“change”周期:“period”
|
||||||
|
*/
|
||||||
|
private String tranRule;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 别名
|
||||||
|
*/
|
||||||
|
private String anotherName;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -153,7 +153,7 @@ public class MqttMessageHandler {
|
|||||||
ModelDto modelDto = gson.fromJson(new String(message.getPayload(), StandardCharsets.UTF_8), ModelDto.class);
|
ModelDto modelDto = gson.fromJson(new String(message.getPayload(), StandardCharsets.UTF_8), ModelDto.class);
|
||||||
HttpResult<CsEquipmentDeliveryVO> pojo = equipmentFeignClient.queryEquipmentByndid(nDid);
|
HttpResult<CsEquipmentDeliveryVO> pojo = equipmentFeignClient.queryEquipmentByndid(nDid);
|
||||||
if (!Objects.isNull(pojo)){
|
if (!Objects.isNull(pojo)){
|
||||||
String devType = pojo.getData().getDevType();
|
String devType = pojo.getData().getDevModel();
|
||||||
String dictCode = dicDataFeignClient.getDicDataById(devType).getData().getCode();
|
String dictCode = dicDataFeignClient.getDicDataById(devType).getData().getCode();
|
||||||
//直连设备处理
|
//直连设备处理
|
||||||
if (Objects.equals(dictCode, DicDataEnum.CONNECT_DEV.getCode())){
|
if (Objects.equals(dictCode, DicDataEnum.CONNECT_DEV.getCode())){
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.access.mapper;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsAlmPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 设备告警数据表 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface CsAlmMapper extends MppBaseMapper<CsAlmPO> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.njcn.access.mapper;
|
package com.njcn.access.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
import com.njcn.access.pojo.po.CsBmdPO;
|
import com.njcn.access.pojo.po.CsBmdPO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -11,6 +11,6 @@ import com.njcn.access.pojo.po.CsBmdPO;
|
|||||||
* @author xuyang
|
* @author xuyang
|
||||||
* @since 2023-05-11
|
* @since 2023-05-11
|
||||||
*/
|
*/
|
||||||
public interface CsBmdMapper extends BaseMapper<CsBmdPO> {
|
public interface CsBmdMapper extends MppBaseMapper<CsBmdPO> {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.access.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsCtrlPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 控制表 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface CsCtrlMapper extends BaseMapper<CsCtrlPO> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.access.mapper;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsDiPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 开入表 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface CsDiMapper extends MppBaseMapper<CsDiPO> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.access.mapper;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsDoPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 开出表 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface CsDoMapper extends MppBaseMapper<CsDoPO> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.access.mapper;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsEvtPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 事件表 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface CsEvtMapper extends MppBaseMapper<CsEvtPO> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.access.mapper;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsEvtParmPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 事件参数表 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface CsEvtParmMapper extends MppBaseMapper<CsEvtParmPO> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.access.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsParmPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 参数表 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface CsParmMapper extends BaseMapper<CsParmPO> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.access.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsSetPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 设备定值数据表 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface CsSetMapper extends BaseMapper<CsSetPO> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.access.mapper;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsStsPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 状态表 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface CsStsMapper extends MppBaseMapper<CsStsPO> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.njcn.access.service;
|
||||||
|
|
||||||
|
import com.njcn.access.pojo.po.CsAlmPO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 设备告警数据表 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface ICsAlmService {
|
||||||
|
|
||||||
|
void saveData(List<CsAlmPO> list);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,6 +2,9 @@ package com.njcn.access.service;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.njcn.access.pojo.po.CsBmdPO;
|
import com.njcn.access.pojo.po.CsBmdPO;
|
||||||
|
import com.njcn.access.pojo.po.CsEpdPqdPO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -11,6 +14,8 @@ import com.njcn.access.pojo.po.CsBmdPO;
|
|||||||
* @author xuyang
|
* @author xuyang
|
||||||
* @since 2023-05-11
|
* @since 2023-05-11
|
||||||
*/
|
*/
|
||||||
public interface ICsBmdService extends IService<CsBmdPO> {
|
public interface ICsBmdService {
|
||||||
|
|
||||||
|
void saveData(List<CsBmdPO> list);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package com.njcn.access.service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 控制表 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface ICsCtrlService {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.njcn.access.service;
|
||||||
|
|
||||||
|
import com.njcn.access.pojo.po.CsDiPO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 开入表 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface ICsDiService {
|
||||||
|
|
||||||
|
void saveData(List<CsDiPO> list);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.njcn.access.service;
|
||||||
|
|
||||||
|
import com.njcn.access.pojo.po.CsDoPO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 开出表 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface ICsDoService {
|
||||||
|
|
||||||
|
void saveData(List<CsDoPO> list);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
package com.njcn.access.service;
|
package com.njcn.access.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
|
||||||
import com.njcn.access.pojo.po.CsEpdPqdPO;
|
import com.njcn.access.pojo.po.CsEpdPqdPO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.njcn.access.service;
|
||||||
|
|
||||||
|
import com.njcn.access.pojo.po.CsEvtParmPO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 事件参数表 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface ICsEvtParmService {
|
||||||
|
|
||||||
|
boolean saveData(List<CsEvtParmPO> list);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package com.njcn.access.service;
|
||||||
|
|
||||||
|
import com.njcn.access.pojo.po.CsEvtPO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 事件表 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface ICsEvtService {
|
||||||
|
|
||||||
|
Map<String,String> saveData(List<CsEvtPO> list);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package com.njcn.access.service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 参数表 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface ICsParmService {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package com.njcn.access.service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 设备定值数据表 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface ICsSetService {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.njcn.access.service;
|
||||||
|
|
||||||
|
import com.njcn.access.pojo.po.CsStsPO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 状态表 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
public interface ICsStsService {
|
||||||
|
|
||||||
|
void saveData(List<CsStsPO> list);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.njcn.access.service.serviceImpl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.access.mapper.CsAlmMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsAlmPO;
|
||||||
|
import com.njcn.access.service.ICsAlmService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 设备告警数据表 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class CsAlmServiceImpl extends MppServiceImpl<CsAlmMapper, CsAlmPO> implements ICsAlmService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveData(List<CsAlmPO> list) {
|
||||||
|
this.saveOrUpdateBatchByMultiId(list,100);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
package com.njcn.access.service.serviceImpl;
|
package com.njcn.access.service.serviceImpl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
import com.njcn.access.mapper.CsBmdMapper;
|
import com.njcn.access.mapper.CsBmdMapper;
|
||||||
import com.njcn.access.pojo.po.CsBmdPO;
|
import com.njcn.access.pojo.po.CsBmdPO;
|
||||||
import com.njcn.access.service.ICsBmdService;
|
import com.njcn.access.service.ICsBmdService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 服务实现类
|
* 服务实现类
|
||||||
@@ -15,6 +17,10 @@ import org.springframework.stereotype.Service;
|
|||||||
* @since 2023-05-11
|
* @since 2023-05-11
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class CsBmdServiceImpl extends ServiceImpl<CsBmdMapper, CsBmdPO> implements ICsBmdService {
|
public class CsBmdServiceImpl extends MppServiceImpl<CsBmdMapper, CsBmdPO> implements ICsBmdService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveData(List<CsBmdPO> list) {
|
||||||
|
this.saveOrUpdateBatchByMultiId(list,100);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package com.njcn.access.service.serviceImpl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.njcn.access.mapper.CsCtrlMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsCtrlPO;
|
||||||
|
import com.njcn.access.service.ICsCtrlService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 控制表 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class CsCtrlServiceImpl extends ServiceImpl<CsCtrlMapper, CsCtrlPO> implements ICsCtrlService {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.njcn.access.service.serviceImpl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.access.mapper.CsDiMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsDiPO;
|
||||||
|
import com.njcn.access.service.ICsDiService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 开入表 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class CsDiServiceImpl extends MppServiceImpl<CsDiMapper, CsDiPO> implements ICsDiService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveData(List<CsDiPO> list) {
|
||||||
|
this.saveOrUpdateBatchByMultiId(list,100);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.njcn.access.service.serviceImpl;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.access.mapper.CsDoMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsDoPO;
|
||||||
|
import com.njcn.access.service.ICsDoService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 开出表 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class CsDoServiceImpl extends MppServiceImpl<CsDoMapper, CsDoPO> implements ICsDoService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveData(List<CsDoPO> list) {
|
||||||
|
this.saveOrUpdateBatchByMultiId(list,100);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.njcn.access.service.serviceImpl;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.access.mapper.CsEvtParmMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsEvtParmPO;
|
||||||
|
import com.njcn.access.service.ICsEvtParmService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 事件参数表 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class CsEvtParmServiceImpl extends MppServiceImpl<CsEvtParmMapper, CsEvtParmPO> implements ICsEvtParmService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean saveData(List<CsEvtParmPO> list) {
|
||||||
|
return this.saveOrUpdateBatchByMultiId(list,100);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package com.njcn.access.service.serviceImpl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.access.mapper.CsEvtMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsEvtPO;
|
||||||
|
import com.njcn.access.service.ICsEvtService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 事件表 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class CsEvtServiceImpl extends MppServiceImpl<CsEvtMapper, CsEvtPO> implements ICsEvtService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String,String> saveData(List<CsEvtPO> list) {
|
||||||
|
this.saveOrUpdateBatchByMultiId(list,100);
|
||||||
|
List<String> nameList = list.stream().map(CsEvtPO::getName).collect(Collectors.toList());
|
||||||
|
LambdaQueryWrapper<CsEvtPO> lambdaQueryWrapper = new LambdaQueryWrapper<CsEvtPO>();
|
||||||
|
lambdaQueryWrapper.in(CsEvtPO::getName,nameList);
|
||||||
|
List<CsEvtPO> list1 = this.baseMapper.selectList(lambdaQueryWrapper);
|
||||||
|
Map<String,String> map = new HashMap<>();
|
||||||
|
list1.forEach(item->{
|
||||||
|
map.put(item.getName(),item.getId());
|
||||||
|
});
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package com.njcn.access.service.serviceImpl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.njcn.access.mapper.CsParmMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsParmPO;
|
||||||
|
import com.njcn.access.service.ICsParmService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 参数表 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class CsParmServiceImpl extends ServiceImpl<CsParmMapper, CsParmPO> implements ICsParmService {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package com.njcn.access.service.serviceImpl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.njcn.access.mapper.CsSetMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsSetPO;
|
||||||
|
import com.njcn.access.service.ICsSetService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 设备定值数据表 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class CsSetServiceImpl extends ServiceImpl<CsSetMapper, CsSetPO> implements ICsSetService {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.njcn.access.service.serviceImpl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.access.mapper.CsStsMapper;
|
||||||
|
import com.njcn.access.pojo.po.CsStsPO;
|
||||||
|
import com.njcn.access.service.ICsStsService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 状态表 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xuyang
|
||||||
|
* @since 2023-05-19
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class CsStsServiceImpl extends MppServiceImpl<CsStsMapper, CsStsPO> implements ICsStsService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveData(List<CsStsPO> list) {
|
||||||
|
this.saveOrUpdateBatchByMultiId(list,100);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,9 +2,7 @@ package com.njcn.access.service.serviceImpl;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
import com.alibaba.nacos.shaded.com.google.gson.Gson;
|
import com.alibaba.nacos.shaded.com.google.gson.Gson;
|
||||||
import com.njcn.access.enums.AccessResponseEnum;
|
import com.njcn.access.pojo.dto.data.*;
|
||||||
import com.njcn.access.pojo.dto.data.BmdDto;
|
|
||||||
import com.njcn.access.pojo.dto.data.EpdPqdDto;
|
|
||||||
import com.njcn.access.pojo.dto.devModel.*;
|
import com.njcn.access.pojo.dto.devModel.*;
|
||||||
import com.njcn.access.pojo.param.DevModelParam;
|
import com.njcn.access.pojo.param.DevModelParam;
|
||||||
import com.njcn.access.pojo.po.*;
|
import com.njcn.access.pojo.po.*;
|
||||||
@@ -13,9 +11,6 @@ import com.njcn.access.utils.JsonUtil;
|
|||||||
import com.njcn.algorithm.api.CsDictFeignClient;
|
import com.njcn.algorithm.api.CsDictFeignClient;
|
||||||
import com.njcn.algorithm.api.DevModelFeignClient;
|
import com.njcn.algorithm.api.DevModelFeignClient;
|
||||||
import com.njcn.algorithm.pojo.dto.CsDictDTO;
|
import com.njcn.algorithm.pojo.dto.CsDictDTO;
|
||||||
import com.njcn.algorithm.pojo.param.CsDevModelAddParm;
|
|
||||||
import com.njcn.algorithm.pojo.po.CsDevModelPO;
|
|
||||||
import com.njcn.common.pojo.exception.BusinessException;
|
|
||||||
import com.njcn.oss.utils.FileStorageUtil;
|
import com.njcn.oss.utils.FileStorageUtil;
|
||||||
import com.njcn.system.api.DicDataFeignClient;
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@@ -29,7 +24,9 @@ import java.io.IOException;
|
|||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -61,6 +58,27 @@ public class DevModelServiceImpl implements IDevModelService {
|
|||||||
|
|
||||||
private final ICsEpdPqdService csEpdPqdService;
|
private final ICsEpdPqdService csEpdPqdService;
|
||||||
|
|
||||||
|
private final ICsBmdService csBmdService;
|
||||||
|
|
||||||
|
private final ICsEvtService csEvtService;
|
||||||
|
|
||||||
|
private final ICsEvtParmService csEvtParmService;
|
||||||
|
|
||||||
|
private final ICsAlmService csAlmService;
|
||||||
|
|
||||||
|
private final ICsStsService csStsService;
|
||||||
|
|
||||||
|
private final ICsDiService csDiService;
|
||||||
|
|
||||||
|
private final ICsDoService csDoService;
|
||||||
|
|
||||||
|
private final ICsParmService csParmService;
|
||||||
|
|
||||||
|
private final ICsCtrlService csCtrlService;
|
||||||
|
|
||||||
|
private final ICsSetService csSetService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void add(DevModelParam devModelParam) {
|
public void add(DevModelParam devModelParam) {
|
||||||
@@ -164,11 +182,33 @@ public class DevModelServiceImpl implements IDevModelService {
|
|||||||
//录入Bmd
|
//录入Bmd
|
||||||
List<BmdDto> bmdDto = devModDto.getDataList().get(0).getBmdDto();
|
List<BmdDto> bmdDto = devModDto.getDataList().get(0).getBmdDto();
|
||||||
if (!CollectionUtils.isEmpty(bmdDto)){
|
if (!CollectionUtils.isEmpty(bmdDto)){
|
||||||
insertEpdPqd(pqdDto);
|
insertBmd(bmdDto);
|
||||||
|
}
|
||||||
|
//录入Evt
|
||||||
|
List<EvtDto> evtDto = devModDto.getDataList().get(0).getEvtDto();
|
||||||
|
if (!CollectionUtils.isEmpty(evtDto)){
|
||||||
|
insertEvt(evtDto);
|
||||||
|
}
|
||||||
|
//录入Alm
|
||||||
|
List<AlmDto> almDto = devModDto.getDataList().get(0).getAlmDto();
|
||||||
|
if (!CollectionUtils.isEmpty(almDto)){
|
||||||
|
insertAlm(almDto);
|
||||||
|
}
|
||||||
|
//录入Alm
|
||||||
|
List<StsDto> stsDto = devModDto.getDataList().get(0).getStsDto();
|
||||||
|
if (!CollectionUtils.isEmpty(stsDto)){
|
||||||
|
insertSts(stsDto);
|
||||||
|
}
|
||||||
|
//录入Di
|
||||||
|
List<DiDto> diDto = devModDto.getDataList().get(0).getDiDto();
|
||||||
|
if (!CollectionUtils.isEmpty(diDto)){
|
||||||
|
insertDi(diDto);
|
||||||
|
}
|
||||||
|
//录入Do
|
||||||
|
List<DoDto> doDto = devModDto.getDataList().get(0).getDoDto();
|
||||||
|
if (!CollectionUtils.isEmpty(doDto)){
|
||||||
|
insertDo(doDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -200,11 +240,108 @@ public class DevModelServiceImpl implements IDevModelService {
|
|||||||
CsBmdPO csBmdPo = new CsBmdPO();
|
CsBmdPO csBmdPo = new CsBmdPO();
|
||||||
BeanUtils.copyProperties(item,csBmdPo);
|
BeanUtils.copyProperties(item,csBmdPo);
|
||||||
CsDictDTO csDictDTO = csDictFeignClient.getOwnAndFatherData(item.getName()).getData();
|
CsDictDTO csDictDTO = csDictFeignClient.getOwnAndFatherData(item.getName()).getData();
|
||||||
|
if (Objects.isNull(item.getPhase())){
|
||||||
|
csBmdPo.setPhase("M");
|
||||||
|
}
|
||||||
|
if (!CollectionUtils.isEmpty(item.getStatMethod())){
|
||||||
|
csBmdPo.setStatMethod(item.getStatMethod().stream().map(String::valueOf).collect(Collectors.joining(",")));
|
||||||
|
}
|
||||||
|
csBmdPo.setAnotherName(csDictDTO.getName());
|
||||||
|
csBmdPo.setClassId(csDictDTO.getFatherName());
|
||||||
return csBmdPo;
|
return csBmdPo;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
|
csBmdService.saveData(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Evt字典录入
|
||||||
|
*/
|
||||||
|
public void insertEvt(List<EvtDto> evtDto) {
|
||||||
|
List<CsEvtParmPO> parmList = new ArrayList<>();
|
||||||
|
List<CsEvtPO> evtList = evtDto.stream().map(item->{
|
||||||
|
CsEvtPO csEvtPo = new CsEvtPO();
|
||||||
|
BeanUtils.copyProperties(item,csEvtPo);
|
||||||
|
CsDictDTO csDictDTO = csDictFeignClient.getOwnAndFatherData(item.getName()).getData();
|
||||||
|
csEvtPo.setAnotherName(csDictDTO.getName());
|
||||||
|
csEvtPo.setClassId(csDictDTO.getFatherName());
|
||||||
|
return csEvtPo;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
Map<String,String> map = csEvtService.saveData(evtList);
|
||||||
|
evtDto.forEach(item->{
|
||||||
|
List<EvtParamDto> evtParamDtoList = item.getParam();
|
||||||
|
if (!CollectionUtils.isEmpty(evtParamDtoList)){
|
||||||
|
evtParamDtoList.forEach(item2->{
|
||||||
|
CsEvtParmPO csEvtParmPo = new CsEvtParmPO();
|
||||||
|
BeanUtils.copyProperties(item2,csEvtParmPo);
|
||||||
|
csEvtParmPo.setPid(map.get(item.getName()));
|
||||||
|
parmList.add(csEvtParmPo);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (!CollectionUtils.isEmpty(parmList)){
|
||||||
|
csEvtParmService.saveData(parmList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Alm字典录入
|
||||||
|
*/
|
||||||
|
public void insertAlm(List<AlmDto> almDto) {
|
||||||
|
List<CsAlmPO> list = almDto.stream().map(item->{
|
||||||
|
CsAlmPO csAlmPo = new CsAlmPO();
|
||||||
|
BeanUtils.copyProperties(item,csAlmPo);
|
||||||
|
CsDictDTO csDictDTO = csDictFeignClient.getOwnAndFatherData(item.getName()).getData();
|
||||||
|
csAlmPo.setAnotherName(csDictDTO.getName());
|
||||||
|
csAlmPo.setClassId(csDictDTO.getFatherName());
|
||||||
|
return csAlmPo;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
csAlmService.saveData(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sts字典录入
|
||||||
|
*/
|
||||||
|
public void insertSts(List<StsDto> stsDto) {
|
||||||
|
List<CsStsPO> list = stsDto.stream().map(item->{
|
||||||
|
CsStsPO csStsPo = new CsStsPO();
|
||||||
|
BeanUtils.copyProperties(item,csStsPo);
|
||||||
|
CsDictDTO csDictDTO = csDictFeignClient.getOwnAndFatherData(item.getName()).getData();
|
||||||
|
csStsPo.setAnotherName(csDictDTO.getName());
|
||||||
|
csStsPo.setClassId(csDictDTO.getFatherName());
|
||||||
|
return csStsPo;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
csStsService.saveData(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Di字典录入
|
||||||
|
*/
|
||||||
|
public void insertDi(List<DiDto> diDto) {
|
||||||
|
List<CsDiPO> list = diDto.stream().map(item->{
|
||||||
|
CsDiPO csDiPo = new CsDiPO();
|
||||||
|
BeanUtils.copyProperties(item,csDiPo);
|
||||||
|
CsDictDTO csDictDTO = csDictFeignClient.getOwnAndFatherData(item.getName()).getData();
|
||||||
|
csDiPo.setAnotherName(csDictDTO.getName());
|
||||||
|
csDiPo.setClassId(csDictDTO.getFatherName());
|
||||||
|
return csDiPo;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
csDiService.saveData(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do字典录入
|
||||||
|
*/
|
||||||
|
public void insertDo(List<DoDto> doDto) {
|
||||||
|
List<CsDoPO> list = doDto.stream().map(item->{
|
||||||
|
CsDoPO csDoPo = new CsDoPO();
|
||||||
|
BeanUtils.copyProperties(item,csDoPo);
|
||||||
|
CsDictDTO csDictDTO = csDictFeignClient.getOwnAndFatherData(item.getName()).getData();
|
||||||
|
csDoPo.setAnotherName(csDictDTO.getName());
|
||||||
|
csDoPo.setClassId(csDictDTO.getFatherName());
|
||||||
|
return csDoPo;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
csDoService.saveData(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user