毕设基于SSM+Vue3实现设备维修管理系统三:实体创建及A.CTable配置

  本章介绍项目实体信息规划及对应实体创建,并引入A.CTable实现实体信息和数据表表的自动对应,自动创建数据库表。

源码下载:点击下载
讲解视频:

SMM+VUE3实现设备维修管理系统毕设:系统实体创建


在这里插入图片描述

一、系统实体规划

1.1 实体基础类

  所有实体的基础类型,定义基本的属性,包括id、创建时间、备注信息等字段。

package com.junjunjun.device.entity;

import java.io.Serializable;

/**
 * 基礎類
 */
public abstract class BaseEntity implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	
}

package com.junjunjun.device.entity;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.IgnoreUpdate;
import com.gitee.sunchenbin.mybatis.actable.annotation.Index;
import com.gitee.sunchenbin.mybatis.actable.annotation.Unique;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 实体信息
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public abstract class BaseDataEntity extends BaseEntity{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	//主鍵
	@TableId(type = IdType.AUTO)
	@Column(isNull=false,isKey=true,isAutoIncrement=true,comment="主键")
	@IgnoreUpdate
	@Index
	@Unique
	private Long id ;
	
	//创建时间
	@TableField("create_date")
	@Column(isNull=false,type=MySqlTypeConstant.DATETIME,defaultValue="CURRENT_TIMESTAMP",comment="创建时间")
	@IgnoreUpdate
	@Index
	private Date createDate;
	
	//备注
	@Column(length=1024,comment="备注")
	private String remark;
}

1.2 设备信息

序号列名名称类型长度描述备注
1IDIDLong10主键
2Name名称String20
3Categoryid分类idLong10外键
4Status状态string1
5count数量double11
6date日期Date-
7xinhao型号string100
8icon图片string20
9userid使用人Long10外键
10description描述string1024
11remark备注string1024
package com.junjunjun.device.entity.device;

import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import com.junjunjun.device.entity.BaseDataEntity;
import com.junjunjun.device.enums.DeviceStatus;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 设备信息
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value="sys_device",autoResultMap =true)
@Table(name="sys_device",comment="设备信息",charset=MySqlCharsetConstant.UTF8MB4,engine=MySqlEngineConstant.InnoDB)
public class Device extends BaseDataEntity{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 名称
	 */
	@Column(isNull=false,decimalLength =50,comment="名称")
	private String name	;
	/**
	 * 状态
	 */
	@Column(isNull=false,length=1,type=MySqlTypeConstant.INT,comment="状态")
	private DeviceStatus status	;
	/**
	 * 数量
	 */
	@Column(isNull=false,decimalLength = 2,comment="数量")
	private double count	;
	/**
	 * 型号
	 */
	@Column(length=50,comment="型号")
	private String xinhao	;
	/**
	 * 图标
	 */
	@Column(length=50,comment="图标")
	private String icon	;
	/**
	 * 描述
	 */
	@Column(isNull=false,type=MySqlTypeConstant.TEXT,comment="描述")
	private String description	;

	/**
	 * 分类
	 */
	@Column(isNull=false,comment="分类")
	private Long categoryId	;
	

	/**
	 * 使用人
	 */
	@Column(comment="使用人")
	private Long userId	;
	
	/**
	 * 使用部门
	 */
	@Column(comment="使用部门")
	private Long departmentId	;
	
}

1.3 设备分类

序号列名名称类型长度描述备注
1IDIDLong10主键
2Name名称String20
3parentid上级Long10外键
4remark备注string1024
package com.junjunjun.device.entity.device;

import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import com.junjunjun.device.entity.BaseDataEntity;
import com.junjunjun.device.enums.DeviceStatus;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 设备信息
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value="sys_device",autoResultMap =true)
@Table(name="sys_device",comment="设备信息",charset=MySqlCharsetConstant.UTF8MB4,engine=MySqlEngineConstant.InnoDB)
public class Device extends BaseDataEntity{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 名称
	 */
	@Column(isNull=false,decimalLength =50,comment="名称")
	private String name	;
	/**
	 * 状态
	 */
	@Column(isNull=false,length=1,type=MySqlTypeConstant.INT,comment="状态")
	private DeviceStatus status	;
	/**
	 * 数量
	 */
	@Column(isNull=false,decimalLength = 2,comment="数量")
	private double count	;
	/**
	 * 型号
	 */
	@Column(length=50,comment="型号")
	private String xinhao	;
	/**
	 * 图标
	 */
	@Column(length=50,comment="图标")
	private String icon	;
	/**
	 * 描述
	 */
	@Column(isNull=false,type=MySqlTypeConstant.TEXT,comment="描述")
	private String description	;

	/**
	 * 分类
	 */
	@Column(isNull=false,comment="分类")
	private Long categoryId	;
	

	/**
	 * 使用人
	 */
	@Column(comment="使用人")
	private Long userId	;
	
	/**
	 * 使用部门
	 */
	@Column(comment="使用部门")
	private Long departmentId	;
	
}

1.4 设备使用记录

序号列名名称类型长度描述备注
1IDIDLong10主键
2userid使用人Long10外键
3startdate开始日期Date-
4enddate结束日期Date-
5departmentid部门idLong10外键
6remark备注string1024
package com.junjunjun.device.entity.device;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import com.junjunjun.device.entity.BaseDataEntity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 设备使用记录
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value="sys_device_use_record",autoResultMap =true)
@Table(name="sys_device_use_record",comment="设备使用记录",charset=MySqlCharsetConstant.UTF8MB4,engine=MySqlEngineConstant.InnoDB)
public class DeviceUserRecord extends BaseDataEntity {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 使用人
	 */
	@Column(isNull=false,comment="使用人")
	private Long userId	;
	
	/**
	 * 开始时间
	 */
	@Column(isNull=false,type=MySqlTypeConstant.DATETIME,comment="开始时间")
	@TableField("start")
	private Date start;

	/**
	 * 截至时间
	 */
	@Column(type=MySqlTypeConstant.DATETIME,comment="截至时间")
	@TableField("end")
	private Date end;

	/**
	 * 使用部门
	 */
	@Column(isNull=false,comment="使用部门")
	private Long departmentId	;


	/**
	 * 设备
	 */
	@Column(isNull=false,comment="设备")
	private Long deviceId	;
	
}

1.5 验收记录

序号列名名称类型长度描述备注
1IDIDLong10主键
2userid验收人Long10外键
3requestid申请idLong10外键
4status状态string1
5equipmentid设备idLong10外键
6content维修明细string2048
7Detailid维修清单Long10外键
8startdate开始时间Date-
9Enddate开始时间Date-
10Recordid维修记录Long10外键
11result验收结果string2048
12remark备注string1024
package com.junjunjun.device.entity.repair;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import com.junjunjun.device.entity.BaseDataEntity;
import com.junjunjun.device.enums.CheckStatus;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 验收记录
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value="sys_check_record",autoResultMap =true)
@Table(name="sys_check_record",comment="验收记录",charset=MySqlCharsetConstant.UTF8MB4,engine=MySqlEngineConstant.InnoDB)
public class CheckRecord extends BaseDataEntity{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 验收结果
	 */
	@Column(type=MySqlTypeConstant.TEXT,comment="验收结果")
	private String result;

	/**
	 * 维修明细
	 */
	@Column(isNull=false,type=MySqlTypeConstant.LONGTEXT,comment="维修明细")
	private String content;
	/**
	 *状态
	 */
	@Column(isNull=false,length=1,type=MySqlTypeConstant.INT,comment="状态")
	private CheckStatus status;
	/**
	 * 验收人
	 */
	@Column(comment="验收人")
	private Long userId	;
	/**
	 * 开始时间
	 */
	@Column(isNull=false,type=MySqlTypeConstant.DATETIME,comment="开始时间")
	@TableField("start")
	private Date start;

	/**
	 * 截至时间
	 */
	@Column(type=MySqlTypeConstant.DATETIME,comment="截至时间")
	@TableField("end")
	private Date end;


	/**
	 * 申请单
	 */
	@Column(isNull=false,comment="申请单")
	private Long requestId	;
	

	/**
	 * 设备
	 */
	@Column(isNull=false,comment="设备")
	private Long deviceId	;
	

	/**
	 * 维修明细
	 */
	@Column(isNull=false,comment="设备")
	private Long detailId	;
	

	/**
	 * 维修记录
	 */
	@Column(isNull=false,comment="维修记录")
	private Long recordId	;
	
}

1.6 维修明细数据

序号列名名称类型长度描述备注
1IDIDLong10主键
2userid评估人Long10外键
3requestid申请idLong10外键
4examineuserid审核人Long10外键
5examinedate审核时间Date-
6examineinfo审核信息string2048
7type维修类型string1
8status状态string1
9content维修明细string2048
10Date审核时间Date-
11equipmentid设备idLong10外键
12remark备注string1024
package com.junjunjun.device.entity.repair;

import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import com.junjunjun.device.entity.BaseDataEntity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 维修明细
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value="sys_repair_detail",autoResultMap =true)
@Table(name="sys_repair_detail",comment="维修明细",charset=MySqlCharsetConstant.UTF8MB4,engine=MySqlEngineConstant.InnoDB)
public class RepairDetail extends BaseDataEntity{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 故障类型
	 */
	@Column(isNull=false,length=100,comment="故障类型")
	private String type;

	/**
	 * 维修明细
	 */
	@Column(isNull=false,type=MySqlTypeConstant.LONGTEXT,comment="维修明细")
	private String content;
	/**
	 * 评估人
	 */
	@Column(isNull=false,comment="评估人")
	private Long userId	;


	/**
	 * 申请单
	 */
	@Column(isNull=false,comment="申请单")
	private Long requestId	;
	
	/**
	 * 使用人
	 */
	@Column(isNull=false,comment="设备")
	private Long deviceId	;
}

1.7 维修记录数据

序号列名名称类型长度描述备注
1IDIDLong10主键
2userid维修人Long10外键
3requestid申请idLong10外键
4type维修类型string1
5status状态string1
6content维修明细string2048
7Detailid维修清单Long10外键
8startdate开始时间Date-
9Enddate开始时间Date-
10equipmentid设备idLong10外键
11remark备注string1024
package com.junjunjun.device.entity.repair;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import com.junjunjun.device.entity.BaseDataEntity;
import com.junjunjun.device.enums.RequestStatus;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 维修记录
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value="sys_repair_record",autoResultMap =true)
@Table(name="sys_repair_record",comment="维修记录",charset=MySqlCharsetConstant.UTF8MB4,engine=MySqlEngineConstant.InnoDB)
public class RepairRecord extends BaseDataEntity{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 故障类型
	 */
	@Column(isNull=false,length=100,comment="故障类型")
	private String type;

	/**
	 * 维修明细
	 */
	@Column(type=MySqlTypeConstant.LONGTEXT,comment="维修明细")
	private String content;
	/**
	 * 状态
	 */
	@Column(isNull=false,length=1,type=MySqlTypeConstant.INT,comment="状态")
	private RequestStatus status;
	/**
	 * 审核描述
	 */
	@Column(length=2048,comment="维修明细")
	private String exmaineinfo;
	/**
	 * 评估人
	 */
	@Column(comment="评估人")
	private Long userId	;
	/**
	 * 开始时间
	 */
	@Column(isNull=false,type=MySqlTypeConstant.DATETIME,comment="开始时间")
	@TableField("start")
	private Date start;

	/**
	 * 截至时间
	 */
	@Column(type=MySqlTypeConstant.DATETIME,comment="截至时间")
	@TableField("end")
	private Date end;


	/**
	 * 申请单
	 */
	@Column(isNull=false,comment="申请单")
	private Long requestId	;

	/**
	 * 设备
	 */
	@Column(isNull=false,comment="设备")
	private Long deviceId	;

	/**
	 * 维修明细
	 */
	@Column(comment="维修明细")
	private Long detailId	;

	/**
	 * 审核人
	 */
	@Column(comment="审核人")
	private Long exmaineuserId	;
	/**
	 * 审核时间
	 */
	@Column(type=MySqlTypeConstant.DATETIME,comment="审核时间")
	@TableField("exmainedate")
	private Date exmainedate;
	
}

1.8 维修申请记录

序号列名名称类型长度描述备注
1IDIDLong10主键
2userid申请人Long10外键
3startdate开始日期Date-
4enddate结束日期Date-
5departmentid部门idLong10外键
6equipmentid设备idLong10外键
7guzhang故障描述string2048
8type故障类型string1
9status状态string1
10examineuserid审核人Long10外键
11examinedate审核时间Date-
12examineinfo审核信息string2048
13remark备注string1024
package com.junjunjun.device.entity.repair;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import com.junjunjun.device.entity.BaseDataEntity;
import com.junjunjun.device.enums.RequestStatus;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 維修申请记录
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value="sys_repair_request",autoResultMap =true)
@Table(name="sys_repair_request",comment="維修申请记录",charset=MySqlCharsetConstant.UTF8MB4,engine=MySqlEngineConstant.InnoDB)
public class Request extends BaseDataEntity{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 故障类型
	 */
	@Column(isNull=false,length=100,comment="故障类型")
	private String type;
	/**
	 * 审核结果
	 */
	@Column(isNull=false,length=1,type=MySqlTypeConstant.INT,comment="审核结果")
	private RequestStatus status;
	/**
	 * 审核描述
	 */
	@Column(length=2048,comment="审核描述")
	private String exmaineinfo;
	/**
	 * 申请人
	 */
	@Column(isNull=false,comment="申请人")
	private Long userId	;

	/**
	 * 部门
	 */
	@Column(isNull=false,comment="部门")
	private Long departmentId	;

	/**
	 * 设备
	 */
	@Column(isNull=false,comment="设备")
	private Long deviceId	;

	/**
	 * 审核人
	 */
	@Column(comment="审核人")
	private Long exmaineuserId	;
	/**
	 * 审核时间
	 */
	@Column(type=MySqlTypeConstant.DATETIME,comment="审核时间")
	@TableField("exmainedate")
	private Date exmainedate;
}

1.9 维修申请审核处理

序号列名名称类型长度描述备注
1IDIDLong10主键
2userid申请人Long10外键
3requestid申请idLong10外键
4examineuserid审核人Long10外键
5examinedate审核时间Date-
6examineinfo审核信息string2048
7type故障类型string1
8status状态string1
9remark备注string1024
package com.junjunjun.device.entity.repair;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import com.junjunjun.device.entity.BaseDataEntity;
import com.junjunjun.device.enums.RequestStatus;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 *审核记录
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value="sys_repair_request_examine_record",autoResultMap =true)
@Table(name="sys_repair_request_examine_record",comment="审核记录",charset=MySqlCharsetConstant.UTF8MB4,engine=MySqlEngineConstant.InnoDB)
public class RequestExamineRecord extends BaseDataEntity{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	/**
	 * 审核结果
	 */
	@Column(isNull=false,length=1,type=MySqlTypeConstant.INT,comment="审核结果")
	private RequestStatus status;
	/**
	 * 审核描述
	 */
	@Column(isNull=false,length=2048,comment="审核描述")
	private String exmaineinfo;
	/**
	 * 使用人
	 */
	@Column(isNull=false,comment="使用人")
	private Long userId	;

	/**
	 * 审核记录
	 */
	@Column(isNull=false,comment="使用人")
	private Long requestId	;
	

	/**
	 * 使用人
	 */
	@Column(isNull=false,comment="使用人")
	private Long deviceId	;

	/**
	 * 审核人
	 */
	@Column(isNull=false,comment="审核人")
	private Long exmaineuserId	;
	/**
	 * 审核时间
	 */
	@Column(isNull=false,type=MySqlTypeConstant.DATETIME,comment="审核时间")
	@TableField("exmainedate")
	private Date exmainedate;
}

1.10 部门数据管理

序号列名名称类型长度描述备注
1IDIDLong10主键
2Name名称String20
3userid负责人IDLong10外键
4parentid上级Long10外键
5remark备注string1024
package com.junjunjun.device.entity.system;

import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.junjunjun.device.entity.BaseDataEntity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 部门信息
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value = "sys_department", autoResultMap = true)
@Table(name = "sys_department", comment = "部门信息", charset = MySqlCharsetConstant.UTF8MB4, engine = MySqlEngineConstant.InnoDB)
public class Department extends BaseDataEntity {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 名称
	 */
	@Column(isNull = false, length = 40, comment = "名称")
	private String name;
	/**
	 * 上级
	 */
	@Column(comment = "上级")
	private Long parentId;
	/**
	 * 负责人
	 */
	@Column(comment = "负责人")
	private Long userId;
}

1.11 数据字典管理

序号列名名称类型长度描述备注
1IDIDLong10主键
2Name名称string20
3Key标识string20
4Valluestring1024
5Sort顺序Int8
6remark备注string1024
package com.junjunjun.device.entity.system;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.junjunjun.device.entity.BaseDataEntity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 数据字典
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value="sys_dict",autoResultMap =true)
@Table(name="sys_dict",comment="数据字典",charset=MySqlCharsetConstant.UTF8MB4,engine=MySqlEngineConstant.InnoDB)
public class Dict extends BaseDataEntity{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 标识
	 */
	@TableField("key_")
	@Column(isNull=false,length=40,comment="标识")
	private String key	;
	/**
	 * 名称
	 */
	@Column(isNull=false,length=40,comment="名称")
	private String name	;
	/**
	 * 值
	 */
	@Column(length=1024,comment="值")
	private String value	;

	/**
	 * 顺序
	 */
	@TableField("sort_")
	@Column(comment="顺序")
	private int sort;
}

1.12 系统日志管理

序号列名名称类型长度描述备注
1IDIDLong10主键
2userid用户IDLong10外键
3ipipstring30
4msg操作内容string1024
5date操作时间Date-
6remark备注string1024
package com.junjunjun.device.entity.system;

import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import com.junjunjun.device.entity.BaseDataEntity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 操作日志
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value="sys_log",autoResultMap =true)
@Table(name="sys_log",comment="操作日志",charset=MySqlCharsetConstant.UTF8MB4,engine=MySqlEngineConstant.InnoDB)
public class Log extends BaseDataEntity{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * IP
	 */
	@Column(isNull=false,length=30,comment="IP")
	private String ip	;
	/**
	 * 操作类型
	 */
	@Column(isNull=false,length=20,comment="操作类型")
	private String type;
	/**
	 * 访问明细
	 */
	@Column(isNull=false,length=20480,comment="參數")
	private String pama;
	/**
	 * 访问明细
	 */
	@Column(isNull=false,length=300,comment="访问地址")
	private String url;
	/**
	 * 访问明细
	 */
	@Column(isNull=false,type=MySqlTypeConstant.LONGTEXT,comment="返回參數")
	private String result;
	/**
	 * 访问明细
	 */
	@Column(isNull=false,length=300,comment="執行方法")
	private String method;
	/**
	 * 访问明细
	 */
	@Column(isNull=false,type=MySqlTypeConstant.LONGTEXT,comment="访问明细")
	private String msg	;
	/**
	 * 操作用户
	 */
	@Column(comment="操作用户")
	private Long userId	;
	
}

1.13 系统菜单管理

序号列名名称类型长度描述备注
1IDIDLong10主键
2Name名称string10
3Path路径string20
4compentent组件string50
5Icon图标string20
6Sort顺序Int8
7permission权限标识string50
8parent上级Long10外键
9remark备注string1024
package com.junjunjun.device.entity.system;

import org.springframework.security.core.GrantedAuthority;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.junjunjun.device.entity.BaseDataEntity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 系統菜單
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value="sys_menu",autoResultMap =true)
@Table(name="sys_menu",comment="系統菜單",charset=MySqlCharsetConstant.UTF8MB4,engine=MySqlEngineConstant.InnoDB)
public class Menu extends BaseDataEntity implements GrantedAuthority{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 *名称
	 */
	@Column(isNull=false,length=40,comment="名称")
	private String name	;
	/**
	 * 路径
	 */
	@Column(length=40,comment="路径")
	private String path	;
	/**
	 * 权限标识
	 */
	@Column(length=40,comment="权限标识")
	private String permission	;
	/**
	 * 前端的组件
	 */
	@Column(length=40,comment="名称")
	private String compentent	;
	/**
	 * 图标
	 */
	@Column(length=40,comment="名称")
	private String icon	;
	/**
	 * 顺序
	 */
	@TableField("sort_")
	@Column(comment="名称")
	private int sort	;
	/**
	 * 上级
	 */
	@Column(comment="上级")
	private Long parentId	;
	/**
	 * 是否前端展示
	 */
	@Column(comment="是否前端展示")
	private Boolean isShow;
	
	@Override
	public String getAuthority() {
		return permission;
	}
}

1.14 系统角色管理

序号列名名称类型长度描述备注
1IDIDLong10主键
2Name名称string20
3remark备注string1024
package com.junjunjun.device.entity.system;

import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.junjunjun.device.entity.BaseDataEntity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 角色表
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value="sys_role",autoResultMap =true)
@Table(name="sys_role",comment="角色表",charset=MySqlCharsetConstant.UTF8MB4,engine=MySqlEngineConstant.InnoDB,excludeFields= {"serialVersionUID","menus"})
public class Role extends BaseDataEntity {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 名称
	 */
	@Column(isNull=false,length=40,comment="名称")
	private String name	;
	/**
	 * 权限标识
	 */
	@Column(length=40,comment="权限标识")
	private String permission	;
	
	/**
	 * 角色关联的菜单信息
	 */
	@TableField(exist = false)
	private List<Menu> menus;
	
}

1.15 角色菜单关联表

序号列名名称类型长度描述备注
1role_id角色IDLong10外键
2menu_id菜单IDLong10外键
package com.junjunjun.device.entity.system;

import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.junjunjun.device.entity.BaseEntity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 角色菜单关联表 
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value="sys_role_menu",autoResultMap =true)
@Table(name="sys_role_menu",comment="角色菜单关联表 ",charset=MySqlCharsetConstant.UTF8MB4,engine=MySqlEngineConstant.InnoDB,excludeFields= {"serialVersionUID"})
public class RoleMenuItem extends BaseEntity{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	/**
	 * 菜单
	 */
	@Column(isNull=false,comment="菜单")
	private Long menuId	;
	
	/**
	 * 角色
	 */
	@Column(isNull=false,comment="角色")
	private Long roleId	;
}

1.16 系统配置数据

序号列名名称类型长度描述备注
1IDIDLong10主键
2Name名称string20
3Key标识string20
4Valluestring1024
5remark备注string1024
package com.junjunjun.device.entity.system;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.annotation.Unique;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.junjunjun.device.entity.BaseDataEntity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 系統配置
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value="sys_setting",autoResultMap =true)
@Table(name="sys_setting",comment="系統配置",charset=MySqlCharsetConstant.UTF8MB4,engine=MySqlEngineConstant.InnoDB)
public class Setting extends BaseDataEntity{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 标识
	 */
	@TableField("key_")
	@Column(isNull=false,length=40,comment="标识")
	@Unique
	private String key	;
	/**
	 * 名称
	 */
	@Column(isNull=false,length=40,comment="名称")
	private String name	;
	/**
	 * 值
	 */
	@Column(length=1024,comment="值")
	private String value	;
	
}

1.17 系统用户管理数据

序号列名名称类型长度描述备注
1IDIDLong10主键
2account账号string10
3name姓名string5
4sex性别string1
5phone电话string11
6password密码string50
7job职位string50
8deparemnt部门Long10外键
9remark备注string1024
package com.junjunjun.device.entity.system;

import java.util.Collection;
import java.util.List;

import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Index;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.annotation.Unique;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import com.google.common.collect.Lists;
import com.junjunjun.device.entity.BaseDataEntity;
import com.junjunjun.device.enums.Grade;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 用户表
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value="sys_user",autoResultMap =true)
@Table(name="sys_user",comment="用户表",charset=MySqlCharsetConstant.UTF8MB4,engine=MySqlEngineConstant.InnoDB,excludeFields= {"serialVersionUID","roles"})
public class User extends BaseDataEntity implements UserDetails{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 登录账号
	 */
	@Column(isNull=false,length=20,comment="登录账号")
	@Unique
	@Index
	private String account	;
	//状态
	private boolean status;
	/**
	 * 姓名
	 */
	@Column(isNull=false,length=40,comment="登录账号")
	private String name	;
	/**
	 * 性别
	 */
	@Column(type=MySqlTypeConstant.INT,comment="性别")
	private Grade sex	;
	/**
	 * 电话
	 */
	@Column(isNull=false,length=11,comment="电话")
	@Unique
	@Index
	private String phone	;
	/**
	 * 密碼
	 */
	@Column(isNull=false,length=100,comment="密碼")
	private String password	;
	/**
	 * 职位
	 */
	@Column(length=20,comment="职位")
	private String job	;
	/**
	 * 部门
	 */
	@Column(comment="部门")
	private Long departmentId	;
	
	/**
	 * 用户的角色信息
	 */
	@TableField(exist = false)
	private List<Role> roles;
	
	@Override
	public Collection<? extends GrantedAuthority> getAuthorities() {
		List<GrantedAuthority>  results = Lists.newArrayList();
		if(roles!=null) {
			roles.forEach(item->{
				if(item.getMenus()!=null) {
					item.getMenus().forEach(menuItem->{
						results.add(menuItem);
					});
				}
				results.add(new SimpleGrantedAuthority(item.getPermission()));
			});
		}
		return results;
	}
	@Override
	public String getUsername() {
		return account;
	}
}

1.18 用户角色关联表

序号列名名称类型长度描述备注
1role_id角色IDLong10外键
2User_id用户IDLong10外键
package com.junjunjun.device.entity.system;

import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlEngineConstant;
import com.junjunjun.device.entity.BaseEntity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 *用戶角色关联表
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value="sys_user_role",autoResultMap =true)
@Table(name="sys_user_role",comment="用戶角色关联表",charset=MySqlCharsetConstant.UTF8MB4,engine=MySqlEngineConstant.InnoDB)
public class UserRoleItem extends BaseEntity{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	/**
	 * 用戶
	 */
	@Column(isNull=false,comment="用戶")
	private Long userId	;
	
	/**
	 * 角色
	 */
	@Column(isNull=false,comment="角色")
	private Long roleId	;
	
}

二、A.Ctable配置

maven引入:

<dependency>
		    <groupId>com.gitee.sunchenbin.mybatis.actable</groupId>
		    <artifactId>mybatis-enhance-actable</artifactId>
		    <version>1.5.0.RELEASE</version>
		    <exclusions>
            <!-- 排除spring-boot-starter-web中的tomcat依赖 -->
            <exclusion>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-annotation</artifactId>
            </exclusion>
        </exclusions>
		</dependency>

启动类上添加扫描配置:

@MapperScan({ "com.baomidou.mybatisplus.samples.quickstart.mapper", "com.gitee.sunchenbin.mybatis.actable.dao.*",
		"com.junjunjun.device.dao.*" })
@ComponentScan({"com.gitee.sunchenbin.mybatis.actable.manager.*","com.junjunjun.device.*"})

配置文件中添加相关配置:

@MapperScan({ "com.baomidou.mybatisplus.samples.quickstart.mapper", "com.gitee.sunchenbin.mybatis.actable.dao.*",
		"com.junjunjun.device.dao.*" })
@ComponentScan({"com.gitee.sunchenbin.mybatis.actable.manager.*","com.junjunjun.device.*"})

A.Ctable官网文档:https://gitee.com/sunchenbin/mybatis-enhance

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

军军君01

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值