Compare commits

...

4 Commits

@ -0,0 +1 @@
undefined

@ -0,0 +1,251 @@
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;
}
}
Loading…
Cancel
Save