export interface ErpProjectPlanVO {
  /**
   * 项目计划ID
   */
  projectPlanId: string | number;

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

  /**
   * 项目计划编号
   */
  projectPlanCode?: string;

  /**
   * 项目经理
   */
  managerId: string | number;

  /**
   * 部门负责人
   */
  chargeId: string | number;

  /**
   * 付款方式
   */
  paymentMethod: string;

  /**
   * 项目计划状态(1暂存 2审批中 3可用)
   */
  projectPlanStatus: string;

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

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

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

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

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

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

  /**
   * 项目计划阶段列表
   */
  planStageList?: any[];

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

  /**
   * 项目编号
   */
  projectCode?: string;

  /**
   * 项目经理名称
   */
  managerName?: string;

  /**
   * 部门负责人名称
   */
  chargeName?: string;

  /**
   * 合同名称
   */
  contractName?: string;

  /**
   * 创建人别称
   */
  createName?: string;

  /**
   * 项目经理部门名称
   */
  managerDeptName?: string;

}

export interface ErpProjectPlanForm extends BaseEntity {
  /**
   * 项目计划ID
   */
  projectPlanId?: string | number;

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

  /**
   * 项目计划编号
   */
  projectPlanCode?: string;

  /**
   * 项目经理
   */
  managerId?: string | number;

  /**
   * 部门负责人
   */
  chargeId?: string | number;

  /**
   * 付款方式
   */
  paymentMethod?: string;

  /**
   * 项目计划状态(1暂存 2审批中 3可用)
   */
  projectPlanStatus?: string;

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

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

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

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

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

  /**
   * 项目经理部门名称（展示用）
   */
  managerDeptName?: string;

  /**
   * 项目经理名称（展示用）
   */
  managerName?: string;

  /**
   * 部门负责人名称（展示用）
   */
  chargeName?: string;

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

  /**
   * 项目计划阶段列表
   */
  planStageList?: any[];

  /**
   * 流程定义编码
   */
  flowCode?: any;

  /**
   * 流程变量
   */
  variables?: any;

  /**
   * 流程业务扩展信息
   */
  bizExt?: any;

  /**
   * 创建人别称
   */
  createName?: string;

}

export interface ErpProjectPlanQuery extends PageQuery {

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

  /**
   * 项目计划编号
   */
  projectPlanCode?: string;

  /**
   * 项目编号（关联项目信息检索）
   */
  projectCode?: string;

  /**
   * 项目经理
   */
  managerId?: string | number;

  /**
   * 部门负责人
   */
  chargeId?: string | number;

  /**
   * 付款方式
   */
  paymentMethod?: string;

  /**
   * 项目计划状态(1暂存 2审批中 3可用)
   */
  projectPlanStatus?: string;

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

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

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

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

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

  /**
   * 创建人别称
   */
  createName?: string;

  /**
   * 合同名称（合同回款页查询）
   */
  contractName?: string;

  /**
   * 合同编号（合同回款页查询）
   */
  contractNo?: string;

  /**
   * 订单编号（合同回款页查询）
   */
  orderNo?: string;

  /**
   * 订单名称（合同回款页查询）
   */
  orderName?: string;

  /**
   * 部门（合同回款页查询）
   */
  deptName?: string;

}

export interface ContractCollectionPageVO {
  projectPlanId: string | number;
  projectId: string | number;
  contractId: string | number;
  orderNo: string;
  contractName: string;
  orderName: string;
  contractNo: string;
  businessDirection: string;
  orderType: string;
  deptName: string;
  amount: number;
  paymentRate: number;
}

export interface ContractCollectionStageDetailVO {
  paymentMethodId: string | number;
  contractId: string | number;
  paymentStageId: string | number;
  stageName: string;
  collectionStage?: string;
  repaymentRate: number;
  paymentPercentage: number;
  paymentAmount: number;
  paymentDeadline: number;
  paymentDescription: string;
  planStageId: string | number;
  repaymentAmount?: number;
  /** 合同订单金额(erp_project_info.amount)，实际回款比例分母 */
  contractTotalPrice?: number;
  receivableDate: string;
  actualRepaymentAmount: number;
  actualRepaymentRate?: number;
  collectionConfirmUserId: string | number;
  collectionConfirmNickName?: string;
  collectionConfirmTime: string;
  collectionConfirmStatus: string;
  collectionConfirmRemark: string;
}



