|
|
package com.shanzhu.market.entity.domain;
|
|
|
|
|
|
import com.baomidou.mybatisplus.annotation.IdType;
|
|
|
import com.baomidou.mybatisplus.annotation.TableId;
|
|
|
import com.baomidou.mybatisplus.annotation.TableName;
|
|
|
|
|
|
import java.io.Serializable;
|
|
|
|
|
|
/**
|
|
|
* 部门实体类
|
|
|
* 功能:定义系统部门的数据模型,是组织架构的基础组成单元
|
|
|
* 实现方式:
|
|
|
* 1. 使用MyBatis-Plus提供的注解进行数据持久化
|
|
|
* 2. 采用面向对象设计,封装部门的属性和行为
|
|
|
* 3. 实现Serializable接口支持对象序列化和网络传输
|
|
|
* 数据模型说明:
|
|
|
* 1. 采用自增主键策略,确保数据唯一性
|
|
|
* 2. 包含部门基本信息:ID、名称、描述、状态
|
|
|
* 3. 支持部门状态管理(正常/禁用)
|
|
|
* 4. 使用常量定义状态值,提高代码可读性和维护性
|
|
|
* 用途:
|
|
|
* - 组织员工的归属关系
|
|
|
* - 构建企业组织架构
|
|
|
* - 支持基于部门的数据筛选和统计
|
|
|
* - 为权限管理提供组织维度的控制
|
|
|
*/
|
|
|
@TableName("department") // 指定映射的数据库表名
|
|
|
public class Dept implements Serializable {
|
|
|
/**
|
|
|
* 部门状态常量 - 正常
|
|
|
* 常量值:"0"
|
|
|
* 业务意义:表示部门处于正常使用状态
|
|
|
* 状态特性:
|
|
|
* - 可正常分配员工到此部门
|
|
|
* - 可参与部门树展示和业务查询
|
|
|
* - 可进行部门信息修改和管理操作
|
|
|
*/
|
|
|
public static final String STATE_NORMAL="0";
|
|
|
|
|
|
/**
|
|
|
* 部门状态常量 - 禁用
|
|
|
* 常量值:"-1"
|
|
|
* 业务意义:表示部门已被停用/撤销
|
|
|
* 状态特性:
|
|
|
* - 不能再分配新员工到此部门
|
|
|
* - 部门内现有员工仍可保留在该部门
|
|
|
* - 可用于软删除场景,保留历史数据
|
|
|
* 业务场景:部门合并、撤销等情况下使用
|
|
|
*/
|
|
|
public static final String STATE_BAN="-1";
|
|
|
|
|
|
/**
|
|
|
* 部门ID
|
|
|
* 数据类型:Long
|
|
|
* 映射关系:表主键,使用AUTO自增策略
|
|
|
* 业务意义:部门在系统中的唯一标识符
|
|
|
* 技术细节:
|
|
|
* - 注解@TableId(type = IdType.AUTO)指定使用数据库自增
|
|
|
* - 数据库中应设置对应字段为AUTO_INCREMENT
|
|
|
* 关联作用:作为外键用于关联员工表、业务数据等
|
|
|
*/
|
|
|
@TableId(type = IdType.AUTO) // 指定主键生成策略为自动递增
|
|
|
private Long id;
|
|
|
|
|
|
/**
|
|
|
* 部门名称
|
|
|
* 数据类型:String
|
|
|
* 业务意义:部门的正式名称,用于系统中的显示和标识
|
|
|
* 命名规范:通常采用企业标准部门名称,如"财务部"、"人力资源部"等
|
|
|
* 约束要求:
|
|
|
* - 名称应具有唯一性,避免歧义
|
|
|
* - 长度应适中,符合业务习惯
|
|
|
* - 建议使用中文名称,便于业务人员理解
|
|
|
*/
|
|
|
private String name;
|
|
|
|
|
|
/**
|
|
|
* 部门描述信息
|
|
|
* 数据类型:String
|
|
|
* 业务意义:记录部门的详细说明、职责范围、工作内容等信息
|
|
|
* 用途:
|
|
|
* - 帮助系统用户了解各部门的工作内容和职责边界
|
|
|
* - 为新员工提供部门信息参考
|
|
|
* - 辅助管理层进行部门管理和调整
|
|
|
* 最佳实践:应包含部门的主要职责、业务范围、工作目标等信息
|
|
|
*/
|
|
|
private String info;
|
|
|
|
|
|
/**
|
|
|
* 部门状态
|
|
|
* 数据类型:String
|
|
|
* 业务意义:控制部门在系统中的可用状态
|
|
|
* 取值说明:
|
|
|
* - 使用常量STATE_NORMAL("0")表示正常状态
|
|
|
* - 使用常量STATE_BAN("-1")表示禁用状态
|
|
|
* 状态管理:
|
|
|
* - 正常状态:可进行所有部门相关操作
|
|
|
* - 禁用状态:限制部分操作,如不能新增员工
|
|
|
* 建议:应使用类中定义的常量而不是直接使用字符串值,提高代码可维护性
|
|
|
*/
|
|
|
private String state;
|
|
|
|
|
|
/**
|
|
|
* 默认构造方法
|
|
|
* 用途:
|
|
|
* 1. 支持JSON反序列化,允许从JSON字符串创建对象
|
|
|
* 2. 支持MyBatis等ORM框架的对象实例化
|
|
|
* 3. 支持Spring等框架的依赖注入和反射操作
|
|
|
* 4. 允许通过setter方法逐步构建对象
|
|
|
* 调用场景:
|
|
|
* - 系统启动时框架自动创建实例
|
|
|
* - 反序列化过程中调用
|
|
|
* - 手动创建对象并通过setter设置属性
|
|
|
*/
|
|
|
public Dept() {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 全参构造方法
|
|
|
* 用途:一次性创建包含所有属性的完整部门对象
|
|
|
* 适用场景:
|
|
|
* - 已知所有属性值时快速创建对象
|
|
|
* - 测试环境中创建模拟数据
|
|
|
* - 从其他数据源转换时使用
|
|
|
* 参数说明:
|
|
|
* @param id 部门ID,可为null(新增部门时)
|
|
|
* @param name 部门名称,必填
|
|
|
* @param info 部门描述,可选
|
|
|
* @param state 部门状态,建议使用类中定义的常量
|
|
|
* 注意事项:创建新部门时,通常不需要设置id,由数据库自动生成
|
|
|
*/
|
|
|
public Dept(Long id, String name, String info, String state) {
|
|
|
this.id = id;
|
|
|
this.name = name;
|
|
|
this.info = info;
|
|
|
this.state = state;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取部门ID
|
|
|
* 功能:返回部门的唯一标识符
|
|
|
* 返回值:部门ID(Long类型)
|
|
|
* 使用场景:
|
|
|
* - 获取部门唯一标识
|
|
|
* - 进行数据关联操作
|
|
|
* - 作为参数传递给其他方法
|
|
|
* @return 部门ID
|
|
|
*/
|
|
|
public Long getId() {
|
|
|
return id;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 设置部门ID
|
|
|
* 功能:为部门对象设置唯一标识符
|
|
|
* 参数:
|
|
|
* @param id 部门ID,通常由数据库生成
|
|
|
* 注意事项:
|
|
|
* - 一般情况下不需要手动设置ID,由ORM框架自动处理
|
|
|
* - 仅在特殊情况下使用,如数据迁移、导入等
|
|
|
*/
|
|
|
public void setId(Long id) {
|
|
|
this.id = id;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取部门名称
|
|
|
* 功能:返回部门的名称
|
|
|
* 返回值:部门名称(String类型)
|
|
|
* 使用场景:
|
|
|
* - 界面展示
|
|
|
* - 数据查询和筛选
|
|
|
* - 日志记录和审计
|
|
|
* @return 部门名称
|
|
|
*/
|
|
|
public String getName() {
|
|
|
return name;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 设置部门名称
|
|
|
* 功能:为部门对象设置名称
|
|
|
* 参数:
|
|
|
* @param name 部门名称
|
|
|
* 验证建议:
|
|
|
* - 名称不能为空
|
|
|
* - 应进行唯一性检查
|
|
|
* - 长度应符合数据库约束
|
|
|
*/
|
|
|
public void setName(String name) {
|
|
|
this.name = name;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取部门描述信息
|
|
|
* 功能:返回部门的详细描述信息
|
|
|
* 返回值:部门描述(String类型)
|
|
|
* 使用场景:
|
|
|
* - 详情页面展示
|
|
|
* - 部门信息导出
|
|
|
* - 数据分析和报告生成
|
|
|
* @return 部门描述
|
|
|
*/
|
|
|
public String getInfo() {
|
|
|
return info;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 设置部门描述信息
|
|
|
* 功能:为部门对象设置详细描述信息
|
|
|
* 参数:
|
|
|
* @param info 部门描述
|
|
|
* 内容建议:
|
|
|
* - 包含部门主要职责
|
|
|
* - 描述部门业务范围
|
|
|
* - 说明与其他部门的协作关系
|
|
|
*/
|
|
|
public void setInfo(String info) {
|
|
|
this.info = info;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取部门状态
|
|
|
* 功能:返回部门的当前状态
|
|
|
* 返回值:
|
|
|
* - "0":正常状态
|
|
|
* - "-1":禁用状态
|
|
|
* 使用场景:
|
|
|
* - 状态判断和业务逻辑控制
|
|
|
* - 界面状态展示
|
|
|
* - 数据筛选和统计
|
|
|
* @return 部门状态("0"表示正常, "-1"表示禁用)
|
|
|
*/
|
|
|
public String getState() {
|
|
|
return state;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 设置部门状态
|
|
|
* 功能:修改部门的可用状态
|
|
|
* 参数:
|
|
|
* @param state 部门状态,建议使用类中定义的常量STATE_NORMAL或STATE_BAN
|
|
|
* 业务影响:
|
|
|
* - 设置为正常:部门可正常使用,可分配员工
|
|
|
* - 设置为禁用:部门暂停使用,限制部分操作
|
|
|
* 最佳实践:使用常量而非直接字符串值,如dept.setState(Dept.STATE_NORMAL)
|
|
|
*/
|
|
|
public void setState(String state) {
|
|
|
this.state = state;
|
|
|
}
|
|
|
}
|