export interface TaskVO {
  /**
   * 序号
   */
  id: string | number;

  /**
   * 质控名称
   */
  name: string;

  /**
   * 进度
   */
  schedule?: number;

  /**
   * 发起人
   */
  initiator: number;

  /**
   * 发起人昵称
   */
  initiatorName?: string;

  /**
   * 质控项目
   */
  projectId: string | number;

  /**
   * 质控项目名称
   */
  projectName?: string;

  /**
   * 开始时间
   */
  startDate: string;

  /**
   * 截止时间
   */
  deadline: string;

  /**
   * 状态
   */
  status: number;

  /**
   * 备注
   */
  note: string;

  /**
   * 创建者
   */
  createBy: number;

  /**
   * 创建时间
   */
  createTime: string;

  /**
   * 更新者
   */
  updateBy: number;

  /**
   * 更新时间
   */
  updateTime: string;

  /**
   * 质控任务详情列表
   */
  details?: TaskDetailVO[];
}

export interface TaskForm extends BaseEntity {
  /**
   * 序号
   */
  id?: string | number;

  /**
   * 质控名称
   */
  name?: string;

  /**
   * 发起人
   */
  initiator?: number;

  /**
   * 质控项目
   */
  projectId?: string | number;

  /**
   * 占比（整数）
   */
  proportion?: number;

  /**
   * 开始时间
   */
  startDate?: string;

  /**
   * 截止时间
   */
  deadline?: string;

  /**
   * 状态
   */
  status?: number;

  /**
   * 备注
   */
  note?: string;

  /**
   * 质控任务详情列表
   */
  details?: TaskDetailForm[];
}

export interface TaskQuery extends PageQuery {
  /**
   * 质控名称
   */
  name?: string;

  /**
   * 发起人
   */
  initiator?: number;

  /**
   * 质控项目
   */
  projectId?: string | number;

  /**
   * 开始时间
   */
  startDate?: string;

  /**
   * 截止时间
   */
  deadline?: string;

  /**
   * 状态
   */
  status?: number;

  /**
   * 创建者
   */
  createBy?: number;

  /**
   * 创建时间
   */
  createTime?: string;

  /**
   * 更新者
   */
  updateBy?: number;

  /**
   * 更新时间
   */
  updateTime?: string;

  /**
   * 日期范围参数
   */
  params?: any;
}

/**
 * 质控任务详情
 */
export interface TaskDetailVO {
  /**
   * 序号
   */
  id?: number;

  /**
   * 任务ID
   */
  taskId?: number;

  /**
   * 文档序号
   */
  documentId: number;

  /**
   * 文档名称
   */
  documentName?: string;

  /**
   * 质控人名称
   */
  executorName: string;

  /**
   * 质控人ID
   */
  executor: number;

  /**
   * 质控人状态
   */
  executorStatus?: string;

  /**
   * 状态
   */
  status?: number;

  /**
   * 备注
   */
  note?: string;

  /**
   * 创建部门
   */
  createDept?: number;

  /**
   * 创建者
   */
  createBy?: string;

  /**
   * 创建时间
   */
  createTime?: string;

  /**
   * 更新者
   */
  updateBy?: string;

  /**
   * 更新时间
   */
  updateTime?: string;

  /**
   * 参数
   */
  params?: any;
}

/**
 * 质控任务详情表单
 */
export interface TaskDetailForm {
  /**
   * 序号
   */
  id?: number;

  /**
   * 任务ID
   */
  taskId?: number;

  /**
   * 文档序号
   */
  documentId: number;

  /**
   * 质控人ID
   */
  executor: number;

  /**
   * 项目ID
   */
  projectId?: number;

  /**
   * 状态
   */
  status?: number;

  /**
   * 备注
   */
  note?: string;

  /**
   * 创建部门
   */
  createDept?: number;

  /**
   * 创建者
   */
  createBy?: number;

  /**
   * 创建时间
   */
  createTime?: string;

  /**
   * 更新者
   */
  updateBy?: number;

  /**
   * 更新时间
   */
  updateTime?: string;

  /**
   * 参数
   */
  params?: any;
}


/**
 * 质控任务详情审核表单
 */
export interface TaskDetailAuditForm {
  /**
   * 任务ID
   */
  taskId: number;

  /**
   * 详情ID
   */
  detailId: number;

  /**
   * 审核结果：1-通过，2-驳回
   */
  result: number;

  /**
   * 驳回类型（字典：qc_question_type）
   */
  rejectionType?: string;

  /**
   * 意见
   */
  opinion?: string;

  /**
   * 指定处理人ID
   */
  designatedDealer?: number;

  /**
   * 截止日期
   */
  deadline?: string;
}

/**
 * 质控任务审核记录查询参数
 */
export interface TaskLogQuery extends PageQuery {
  /**
   * 详情ID
   */
  detailId?: number;

  /**
   * 审核结果
   */
  result?: number;

  /**
   * 日期范围参数
   */
  params?: any;
}

/**
 * 质控任务审核记录
 */
export interface TaskLogVO {
  /**
   * 序号
   */
  id: number;

  /**
   * 详情ID
   */
  detailId: number;

  /**
   * 执行时间
   */
  executeTime: string;

  /**
   * 审核结果：1-通过，2-驳回
   */
  result: number;

  /**
   * 问题类型
   */
  questionType?: string;

  /**
   * 问题类型名称
   */
  questionTypeName?: string;

  /**
   * 意见
   */
  opinion?: string;

  /**
   * 指定处理人ID
   */
  designatedDealer?: number;

  /**
   * 指定处理人名称
   */
  designatedDealerName?: string;

  /**
   * 截止日期
   */
  deadline?: string;

  /**
   * 实际处理人ID
   */
  actualDealer?: number;

  /**
   * 实际处理人名称
   */
  actualDealerName?: string;

  /**
   * 处理时间
   */
  dealTime?: string;

  /**
   * 质控版本（OSS ID）
   */
  qcVersion?: string | number;

  /**
   * 处理版本（OSS ID）
   */
  dealVersion?: string | number;

  /**
   * 创建者
   */
  createBy?: number;

  /**
   * 创建者名称
   */
  createByName?: string;

  /**
   * 创建时间
   */
  createTime?: string;

  /**
   * 更新者
   */
  updateBy?: number;

  /**
   * 更新时间
   */
  updateTime?: string;
}
