package com.zt.plat.module.qms.resource.record.dal.dataobject.recordapply;

import com.alibaba.fastjson2.JSONObject;
import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapplydetail.RecordApplyDetailDO;
import com.zt.plat.module.qms.resource.record.dal.dataobject.recordassign.RecordAssignDO;
import lombok.*;
import java.util.*;
    import java.time.LocalDateTime;
    import java.time.LocalDateTime;
    import java.time.LocalDateTime;
    import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
/**
* 文件记录通用申请 DO
*
* @author 后台管理
*/
@TableName("t_rcd_apl")
@KeySequence("t_rcd_apl_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
* 支持业务基类继承：isBusiness=true 时继承 BusinessBaseDO，否则继承 BaseDO
*/
public class RecordApplyDO extends BusinessBaseDO {



    /**
    * 主键
    */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /**
    * 申请标题,【字典】【jy_record_apply_bsn_type】分发、查看申请、作废、评审
    */
    @TableField("TTL")
    private String title;
    /**
    * 业务类型
    */
    @TableField("BSN_TP")
    private String businessType;
    /**
     * 业务状态
     */
    @TableField("BSN_STS")
    private String businessStatus;
    /**
     * 流程实例Id
     */
    @TableField("FLW_INSC_ID")
    private String flowInstanceId;
    /**
    * 申请人id
    */
    @TableField("APL_USER_ID")
    private Long applyUserId;
    /**
    * 申请人姓名
    */
    @TableField("APL_USER_NAME")
    private String applyUserName;
    /**
    * 部门id
    */
    @TableField("APL_DEPT_ID")
    private Long applyDepartmentId;
    /**
     * 部门名称
     */
    @TableField("APL_DEPT_NAME")
    private String applyDepartmentName;
    /**
    * 评审时间
    */
    @TableField("RVW_TM")
    private LocalDateTime reviewTime;
    /**
    * 评审范围
    */
    @TableField("RVW_RNG")
    private String reviewRange;
    /**
     * 修改标志
     */
    @TableField("MDF_FLG")
    private String modifyFlag;
    /**
    * 目标部门
    */
//    @TableField("RVW_DEPT_IDS")
    @TableField("TGT_DEPT_IDS")
    private String targetDepartmentIds;
    /**
    * 目标id
    */
//    @TableField("RVW_USER_IDS")
    @TableField("TGT_USER_IDS")
    private String targetUserIds;
    /**
     * 表单数据
     */
    @TableField("FORM_DAT")
    private String formData;
    /**
    * 申请事由
    */
    @TableField("APL_CNTT")
    private String applyContent;
    /**
    * 更改前内容
    */
    @TableField("CHG_BFR")
    private String changeBefore;
    /**
    * 更改后内容
    */
    @TableField("CHG_AFT")
    private String changeAfter;
    /**
    * 是否长期有效
    */
    @TableField("PMNT")
    private String permanently;
    /**
    * 开始日期
    */
    @TableField("APL_STRT_DT")
    private LocalDateTime applyStartDate;
    /**
    * 截止日期
    */
    @TableField("APL_END_DT")
    private LocalDateTime applyEndDate;
    /**
    * 所属部门
    */
    @TableField("SYS_DEPT_CD")
    private String systemDepartmentCode;
    /**
    * 备注
    */
    @TableField("RMK")
    private String remark;

    @TableField("IS_SBM")
    private Integer isSubmit;

    //    =========临时字段========
    @TableField(exist = false)
    private LocalDateTime expirationDate;     // TODO


//     ==========================

    @TableField(exist = false)
    private List<RecordApplyDetailDO> detailList;

    @TableField(exist = false)
    private List<RecordAssignDO> assignList;


}