export interface ReceivePlanDetailVO {
    /**
     * 主键
     */
    id: string | number;

    /**
     * 编号
     */
    receivePlanCode: string;

    /**
     * 计划回款日期
     */
    planRecelveDate: string;

    /**
     * 实际回款日期
     */
    actualRecelveDate: string;

    /**
     * 计划回款金额
     */
    planRecelveAmount: number;

    /**
     * 实际回款金额
     */
    actualRecelveAmount: number;

    /**
     * 占比
     */
    recelveRatio: number;

    /**
     * 关联订单id
     */
    orderId: string | number;

    /**
     * 审批状态
     */
    approveStatus: number;

    /**
     * 期次
     */
    periodNum: number;

    /**
     * 总期次
     */
    periodTotal: number;

    /**
     * 回款 状态
     */
    receiveStatus: number;

    /**
     * 逾期天数
     */
    overdueDay: number;

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

    /**
     * 是否删除：0未删除，1已删除
     */
    isDelete: number;

    /**
     * 是否启用:1:启用,0:不启用
     */
    enabled: number;

    customerId?: string | number;

}

export interface ReceivePlanDetailForm extends BaseEntity {
    /**
     * 主键
     */
    id?: string | number;
    customerId?: string | number;

    /**
     * 编号
     */
    receivePlanCode?: string| number;
    planReceiveDate?: string| number;
    actualReceiveDate?: string| number;
    actualReceiveAmount?: string| number;
    ReceiveRatio?: string| number;

    /**
     * 计划回款日期
     */
    planRecelveDate?: string;

    /**
     * 实际回款日期
     */
    actualRecelveDate?: string;

    /**
     * 计划回款金额
     */
    planRecelveAmount?: number;

    /**
     * 实际回款金额
     */
    actualRecelveAmount?: number;

    /**
     * 占比
     */
    recelveRatio?: number;

    /**
     * 关联订单id
     */
    orderId?: string | number;

    /**
     * 审批状态
     */
    approveStatus?: number;

    /**
     * 期次
     */
    periodNum?: number;

    /**
     * 总期次
     */
    periodTotal?: number;

    /**
     * 回款 状态
     */
    receiveStatus?: number;

    /**
     * 逾期天数
     */
    overdueDay?: number;

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

    /**
     * 是否删除：0未删除，1已删除
     */
    isDelete?: number;

    /**
     * 是否启用:1:启用,0:不启用
     */
    enabled?: number;

    receivePeriodTotal?: number | string;
    receiveIntervalUnit?: number | string;
    firstReceiveDate?: number | string;
    receiveInterval?: number | string;
    planReceiveAmount?: number | string;
    updateData?: Array<ComputedPlan>;
}

export interface ReceivePlanDetailQuery extends PageQuery {

    /**
     * 编号
     */
    receivePlanCode?: string;
    actualReceiveAmount?: string;

    /**
     * 计划回款日期
     */
    planRecelveDate?: string;

    /**
     * 实际回款日期
     */
    actualRecelveDate?: string;
    planReceiveDate?: string;

    /**
     * 计划回款金额
     */
    planRecelveAmount?: number;

    /**
     * 实际回款金额
     */
    actualRecelveAmount?: number;

    /**
     * 占比
     */
    recelveRatio?: number;

    /**
     * 关联订单id
     */
    orderId?: string | number;
    receiveRatio?: string | number;
    actualReceiveDate?: string ;

    /**
     * 审批状态
     */
    approveStatus?: number;

    /**
     * 期次
     */
    periodNum?: number;

    /**
     * 总期次
     */
    periodTotal?: number;

    /**
     * 回款 状态
     */
    receiveStatus?: number;
    planReceiveAmount?: number;

    /**
     * 逾期天数
     */
    overdueDay?: number;

    /**
     * 是否删除：0未删除，1已删除
     */
    isDelete?: number;

    /**
     * 是否启用:1:启用,0:不启用
     */
    enabled?: number;

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

    deptId?: string | number;
    customerId?: string | number;
    ownerBy?: string | number;

}

export interface ComputedPlan {
    /**
     * 首次回款日期
     */
    firstReceiveDate:  string | number;

    /**
     * 回款间隔单位，1：天 或 2：月
     */
    receiveIntervalUnit:  string | number;

    /**
     * 回款间隔时间，天 或 月
     */
    receiveInterval:  string  | number;

    /**
     * 回款期数
     */
    receivePeriodTotal:  string | number;

    /**
     * 回款金额
     */
    planReceiveAmount:  string | number | undefined;
    receiveRatio?:  string | number | undefined;
    isCreate: number;

}

