package com.gaotao.modules.check.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.util.Date; /** * 盘点主表实体类 - 直接映射数据库表 - rqrq * *

数据库表名:count_header

* *

表索引:

* * *

核心字段说明:

* * *

状态流转:

*
 * DRAFT(草稿) -> RELEASED(已下达) -> CHECKING(盘点中) -> APPROVED(已审批) -> COMPLETED(已完成)
 *     |                                                       
 *     +---------> CANCELLED(已取消) <----------------------------------------+
 * 
 * 审批规则:
 * 1. 点击"已审批":检查是否还有未盘点的栈板,有则不允许审批
 * 2. 已审批状态:不允许创建复核任务
 * 3. 已审批状态:可以处理异常的盘点结果
 * 4. 点击"已完成":检查盘点结果中是否有"结果不是OK且handle_flag=N"的数据,有则不允许完成
 * 
* * @author rqrq * @date 2025/12/16 */ @Data @TableName("count_header") public class CountHeader { /** * 自增ID(非主键) */ @TableId(type = IdType.AUTO) private Long id; /** * 工厂编码(联合主键) */ @TableField("site") private String site; /** * 盘点单号(联合主键) *

格式:CT + yyyyMMdd + 4位序号

*

示例:CT2025121600001

*/ @TableField("count_no") private String countNo; /** * 盘点类型 *

枚举值说明:

* */ @TableField("count_type") private String countType; /** * 盘点状态 *

枚举值说明:

* */ @TableField("status") private String status; /** * 循环盘点百分比(0-50) *

仅循环盘点时使用,表示本次盘点占立库标签总数的百分比

*/ @TableField("count_percent") private Integer countPercent; /** * 申请人 */ @TableField("apply_user") private String applyUser; /** * 申请日期 */ @TableField("apply_date") private Date applyDate; /** * 下达人 */ @TableField("release_user") private String releaseUser; /** * 下达日期 */ @TableField("release_date") private Date releaseDate; /** * 完成人 */ @TableField("complete_user") private String completeUser; /** * 完成日期 */ @TableField("complete_date") private Date completeDate; /** * 备注 */ @TableField("remark") private String remark; /** * 创建人 */ @TableField("created_by") private String createdBy; /** * 创建时间 */ @TableField("created_date") private Date createdDate; /** * 修改人 */ @TableField("modified_by") private String modifiedBy; /** * 修改时间 */ @TableField("modified_date") private Date modifiedDate; // ==================== 常量定义 ==================== /** 盘点类型:循环盘点 */ public static final String COUNT_TYPE_CYCLE = "CYCLE"; /** 盘点类型:手工盘点 */ public static final String COUNT_TYPE_MANUAL = "MANUAL"; /** 盘点类型:日常盘点(WCS日常RFID盘点)- rqrq */ public static final String COUNT_TYPE_DAILY = "DAILY"; /** 盘点类型:年中盘点(年度盘点报告,写入 count_header.count_type)- rqrq */ public static final String COUNT_TYPE_MID_YEAR = "MID_YEAR"; /** 盘点类型:年末盘点(年度盘点报告,写入 count_header.count_type)- rqrq */ public static final String COUNT_TYPE_YEAR_END = "YEAR_END"; /** 状态:草稿 */ public static final String STATUS_DRAFT = "DRAFT"; /** 状态:已下达 */ public static final String STATUS_RELEASED = "RELEASED"; /** 状态:盘点中 */ public static final String STATUS_CHECKING = "CHECKING"; /** 状态:已审批(盘点完成待处理异常)- rqrq */ public static final String STATUS_APPROVED = "APPROVED"; /** 状态:已完成 */ public static final String STATUS_COMPLETED = "COMPLETED"; /** 状态:已取消 */ public static final String STATUS_CANCELLED = "CANCELLED"; }