package com.jwipc.finance.model.query;

import cn.hutool.core.util.StrUtil;
import com.jwipc.query.BasePageQuery;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.util.List;
/**
 * <p>
 * 对账模块-付款计划
 * </p>
 *
 * @author 邓京术
 * @since 2025-07-14
 */
@Data
public class PaymentPlanQuery extends BasePageQuery {
    private String sort;
    private String order;

    /**
     * 付款计划ID
     */
    private String ppId;

    /**
     * 付款计划编号
     */
    private String paymentPlanNo;

    private String pgCode;

    /**
     * 供应商编码/名称
     */
    private String supCodeOrName;

    private String supplierCode;
    private String companyCode;
    private String paymentTermCode;
    private String paymentWay;
    private String currencyCode;
    /**
     * 对账单编号
     */
    private String accountStatementNo;


    private String purchaseGroup;


    /**
     * 付款月
     */
    private String paymentMonth;


    /**
     * 数据状态 -1:全部 1:暂存对账单 2:待采购确认对账单 3:采购拒绝对账单 4:待推送OA审批 5:OA审批中 6:OA审批不通过 7:待财务确认对账单 8:财务驳回对账单 9:对账单已确认
     */
    private Integer status;

    /**
     * 创建时间(起)
     */
    private String createTimeStart;
    /**
     * 创建时间(至)
     */
    private String createTimeEnd;

    /**
     * 数据状态 用于系统待办传入
     */
    private String asStatus;

    private String createUserName;
    /**
     * 数据状态集合
     */
    private List<Integer> statusList;

    /**
     * 当前登录用户(根据登录人的所属工厂编码来做数据权限)
     */
    private Long userId;
    /**
     * 角色类型 1:采购角色 2:财务角色
     */
    private Integer roleType;

    /**
     * 删除标记 1：删除也查询 0：只查询未删除数据
     */
    private Integer delFlag;

    private String purchaseUser;
    private String businessTypeCode;

//    /**
//     * 是否对账单页面 0:否 1:是
//     */
//    private Integer isDuiZhang;
    /**
     * 对账年份
     */
    private String paymentPlanYear;

    /**
     * 对账月份
     */
    private String paymentPlanMonth;
    /**
     * 汇总类型 D对账，S预付款
     */
    private String paymentType;


    /**
     * 过账状态 1:暂存 2:待预制 3:预制失败 4:预制成功5-过账成功
     */
    private Integer postStatus;


    public String getPaymentPlanNoLike(){
        return StringUtils.isEmpty(this.paymentPlanNo) ? null : "%" + this.paymentPlanNo + "%";
    }

//    public String getSupplierNameLike(){
//        return StringUtils.isEmpty(this.supplierName) ? null : "%" + this.supplierName + "%";
//    }

    public String getSupCodeOrNameLike(){
        return StringUtils.isEmpty(this.supCodeOrName) ? null : "%" + this.supCodeOrName + "%";
    }

//    public String getOpCodeLike(){
//        return StringUtils.isEmpty(this.oaProcessNo) ? null : "%" + this.oaProcessNo + "%";
//    }

    public String getSort(){
        if(StringUtils.isNotEmpty(this.sort)){
            return StrUtil.toUnderlineCase(this.sort);
        }
        return "";
    }

    public String getCreateTimeStart(){
        if(StringUtils.isNotEmpty(this.createTimeStart)){
            return this.createTimeStart + " 00:00:00";
        }
        return "";
    }

    public String getCreateTimeEnd(){
        if(StringUtils.isNotEmpty(this.createTimeEnd)){
            return this.createTimeEnd + " 23:59:59";
        }
        return "";
    }
}
