import { ProjectReportForm } from '@/api/oa/erp/projectReport/types';
export interface ProjectReportDetailVO extends BaseEntity, extraInfo {
  /**
   * 项目周报明细ID
   */
  reportDetailId: string | number;

  /**
   * 项目周报ID
   */
  reportId: string | number;

  /**
   * 项目ID
   */
  projectId: string | number;

  /**
   * 填写日期
   */
  fillTime: string;

  /**
   * 所在的工作周
   */
  currentWorkWeek: string;

  /**
   * 所属里程碑
   */
  milestonePlan: string;

  /**
   * 二级进度阶段
   */
  secondaryPhase: string;

  /**
   * 本周完成工作
   */
  tasksCompleted: string;

  /**
   * 下周计划
   */
  nextPlan: string;

  /**
   * 风险及解决措施
   */
  riskResolution: string;

  /**
   * 计划完成率
   */
  plannedCompletionRate: number;

  /**
   * 周报情况说明
   */
  informationNote: string;

  /**
   * 项目状态（1正常 2拖期风险 3已拖期）
   */
  scheduleStatus: string;

  /**
   * 周报状态(1暂存 2审批中 3可用)
   */
  projectReportStatus: string;

  /**
   * 流程状态
   */
  flowStatus: string;

  /**
   * 排序号
   */
  sortOrder: number;

  /**
   * 项目阶段(预留)
   */
  projectPhases: string;

  /**
   * 合同ID(预留)
   */
  contractId: string | number;

  /**
   * 附件ID
   */
  ossId: string | number;

  /**
   * 备注
   */
  remark: string;

  /**
   * 激活标识（1是 0否）
   */
  activeFlag: string;
}

export interface ProjectReportDetailForm extends BaseEntity, extraInfo {
  /**
   * 项目周报明细ID
   */
  reportDetailId?: string | number;

  /**
   * 项目周报ID
   */
  reportId?: string | number;

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

  /**
   * 填写日期
   */
  fillTime?: string;

  /**
   * 所在的工作周
   */
  currentWorkWeek?: string;

  /**
   * 所属里程碑
   */
  milestonePlan?: string;

  /**
   * 二级进度阶段
   */
  secondaryPhase?: string;

  /**
   * 本周完成工作
   */
  tasksCompleted?: string;

  /**
   * 下周计划
   */
  nextPlan?: string;

  /**
   * 风险及解决措施
   */
  riskResolution?: string;

  /**
   * 计划完成率
   */
  plannedCompletionRate?: number;

  /**
   * 周报情况说明
   */
  informationNote?: string;

  /**
   * 项目状态（1正常 2拖期风险 3已拖期）
   */
  scheduleStatus?: string;

  /**
   * 周报状态(1暂存 2审批中 3可用)
   */
  projectReportStatus?: string;

  /**
   * 流程状态
   */
  flowStatus?: string;

  /**
   * 排序号
   */
  sortOrder?: number;

  /**
   * 项目阶段(预留)
   */
  projectPhases?: string;

  /**
   * 合同ID(预留)
   */
  contractId?: string | number;

  /**
   * 附件ID
   */
  ossId?: string | number;

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

  /**
   * 激活标识（1是 0否）
   */
  activeFlag?: string;
}

export interface ProjectReportDetailQuery extends PageQuery, extraInfo {
  /**
   * 项目周报ID
   */
  reportId?: string | number;

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

  /**
   * 填写日期
   */
  fillTime?: string;

  /**
   * 所在的工作周
   */
  currentWorkWeek?: string;

  /**
   * 所属里程碑
   */
  milestonePlan?: string;

  /**
   * 二级进度阶段
   */
  secondaryPhase?: string;

  /**
   * 本周完成工作
   */
  tasksCompleted?: string;

  /**
   * 下周计划
   */
  nextPlan?: string;

  /**
   * 风险及解决措施
   */
  riskResolution?: string;

  /**
   * 计划完成率
   */
  plannedCompletionRate?: number;

  /**
   * 周报情况说明
   */
  informationNote?: string;

  /**
   * 项目状态（1正常 2拖期风险 3已拖期）
   */
  scheduleStatus?: string;

  /**
   * 周报状态(1暂存 2审批中 3可用)
   */
  projectReportStatus?: string;

  /**
   * 流程状态
   */
  flowStatus?: string;

  /**
   * 排序号
   */
  sortOrder?: number;

  /**
   * 项目阶段(预留)
   */
  projectPhases?: string;

  /**
   * 合同ID(预留)
   */
  contractId?: string | number;

  /**
   * 附件ID
   */
  ossId?: string | number;

  /**
   * 激活标识（1是 0否）
   */
  activeFlag?: string;

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

export interface extraInfo {
  deptName?: string;

  managerName?: string;

  chargeName?: string;

  deputyName?: string;

  beginDate?: string;

  endDate?: string;
}
// 扩展的项目周报明细表单类型（包含流程相关字段）
export type ProjectReportDetailFormEx = ProjectReportDetailForm & {
  flowCode?: string;
  variables?: Record<string, any>;
  bizExt?: Record<string, any>;
  flowStatus?: string;
  projectReportStatus?: string;
  file?: any;
};

// 项目周报和明细包装类类型
export type ProjectReportAndDetailWrapper = {
  projectReport: ProjectReportForm;
  projectDetailReport: ProjectReportDetailFormEx;
};
