using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using APT.Infrastructure.Core;
using APT.MS.Domain.Enums;
using System;
using System.Collections.Generic;
using System.ComponentModel;
namespace APT.MS.Domain.Entities.BS
{
    /// 
    /// 隐患上报表
    /// 
    [Description("隐患上报表")]
    [DataRuleField("DEPARTMENT_ID")]
    public class T_BS_RISK_SUBMIT : MesEntityBase
    {
        /// 
        /// 编码
        /// 
        [Description("编码")]
        [CUnique]
        [CodeRule((int)PFCodeRuleType.RiskSubmit)]
        [DataFieldLength(30)]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public string CODE { get; set; }
        /// 
        /// 隐患上报名称
        /// 
        [Description("隐患上报名称")]
        [DataFieldLength(100)]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public string NAME { get; set; }
        /// 
        /// 上报类型
        /// 
        [Description("上报类型")]
        [EnumName("SUBMIT_TYPE")]
        [FormFieldEdit]
        public int SUBMIT_TYPE { get; set; } = (int)APT.MS.Domain.Enums.SUBMIT_TYPE.Check;
        /// 
        /// 检查类型
        /// 
        [Description("检查类型")]
        [DataFieldForeignKey("Nav_CheckType")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        public Guid? CHECK_TYPE_ID { get; set; }
        /// 
        /// 导航:检查类型表
        /// 
        [Description("导航:检查类型")]
        public virtual T_BS_CHECK_TYPE Nav_CheckType { get; set; }
        /// 
        /// 检查层级
        /// 
        [Description("检查层级")]
        [DataFieldForeignKey("Nav_CheckTypeLevel")]
        [FormFieldTable]
        [FormFieldEdit]
        public Guid? CHECK_TYPE_LEVEL_ID { get; set; }
        /// 
        /// 导航:检查层级
        /// 
        [Description("导航:检查层级")]
        public virtual T_BS_CHECK_TYPE_LEVEL Nav_CheckTypeLevel { get; set; }
        /// 
        /// 检查任务
        /// 
        [Description("检查任务")]
        [DataFieldForeignKey("Nav_Check")]
        [FormFieldTable]
        [FormFieldEdit]
        [FormFieldQuery]
        public Guid? CHECK_ID { get; set; }
        /// 
        /// 导航:安全检查任务表
        ///// 
        [Description("导航:安全检查任务表")]
        public virtual T_BS_SAFE_CHECK Nav_Check { get; set; }
        /// 
        /// 检查时间
        /// 
        [Description("检查时间")]
        [FormFieldTable]
        [FormFieldEdit]
        public DateTime? CHECKTIME { get; set; }
        /// 
        /// 状态
        /// 
        [Description("状态")]
        [EnumName("BSSubmitStatusEnum")]
        [FormFieldEdit]
        public int? SUBMIT_STATUS { get; set; } = 10;
        /// 
        /// 导航:隐患上报附件表
        /// 
        [Description("导航:隐患上报附件表")]
        public virtual List Nav_Files { get; set; }
        /// 
        /// 导航:隐患上报子表
        /// 
        [Description("导航:隐患上报子表")]
        [FormFieldEdit]
        public virtual List Nav_ListRiskSubmitContent { get; set; }
        /// 
        /// 提交人
        /// 
        [Description("提交人")]
        [DataFieldForeignKey("Nav_User")]
        public Guid? USER_ID { get; set; }
        /// 
        /// 导航:提交人表
        /// 
        [Description("导航:提交人表")]
        public virtual T_FM_USER Nav_User { get; set; }
        /// 
        /// 部门Id
        /// 
        [Description("部门Id")]
        [DataFieldForeignKey("Nav_Department")]
        public Guid? DEPARTMENT_ID { get; set; }
        /// 
        /// 导航:部门
        /// 
        [Description("导航:部门")]
        public virtual T_FM_DEPARTMENT Nav_Department { get; set; }
        /// 
        /// 检查审批流编号
        /// 
        [Description("安全检查审批流")]
        [DataFieldForeignKey("Nav_ApproveCheckAudit")]
        public Guid? APPROVE_ID { get; set; }
        /// 
        /// 安全检查审批流
        /// 
        [Description("安全检查审批流")]
        public T_PF_APPROVE Nav_ApproveCheckAudit { get; set; }
        /// 
        /// 审批流表单编码参数
        /// 
        [Description("审批流表单编码参数")]
        [DataFieldIngore]
        public string FORM_CODE { get; set; }
        /// 
        /// 明细中每个都完成 回调 整单完成
        /// 
        [Description("是否整单完成")]
        public bool ISORDEREND { get; set; } = false;
        /// 
        /// 任务传达时间
        /// 取隐患待上报 任务传达时间
        /// 
        [Description("开始时间")]
        public DateTime? STARTTIME { get; set; }
        /// 
        /// 上报完成时间
        /// 
        [Description("上报完成时间")]
        public DateTime? SUBMITFINISHTIME { get; set; }
        /// 
        /// 是否上报按时完成
        /// 
        [Description("是否上报按时完成")]
        public bool? ISSUBMITFINISHINTTIME { get; set; }
        /// 
        /// 是否按时完成
        /// 
        [Description("是否按时完成")]
        public bool? ISFINISHINTTIME { get; set; }
        [DataFieldIngore]
        public int IS_OVERTIME { get; set; }
        /// 
        /// 外界ID(TPM)
        /// 
        public Guid? DATAID { get; set; }
        /// 
        /// 完善人
        /// 
        [Description("完善人")]
        [DataFieldIngore]
        public string CREATE_NAME { get; set; }
        /// 
        /// 检查对象
        /// 
        [Description("检查对象")]
        [FormFieldTable]
        [FormFieldEdit]
        public BSMineTypeEnum? CHECKOBJECT { get; set; }
    }
}