package com.jwipc.finance.model.query;

import com.jwipc.query.BasePageQuery;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;

/**
 * @author shenyang.ou
 * @date 2025/10/22 15:24
 * @desc
 */
@Data
public class CostMatchingQuery extends BasePageQuery {

    /**
     * 流水号
     */
    private String code;
    private String paymentNoticeDetailCode;
    private Integer deleteFlag;

    /**
     * 单据类型；0-货款；1-扣款
     */
    private String type;

    /**
     * miro凭证号
     */
    private String invoicedCode;

    /**
     * 采购公司代码
     */
    private String companyCode;

    /**
     * 供应商代码
     */
    private String supplierCode;

    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 供应商信息
     */
    private String supplierInfo;

    /**
     * 采购组编码
     */
    private String purchaseGroupCode;

    /**
     * 货币代码
     */
    private String currencyCode;

    /**
     * 未税金额
     */
    private BigDecimal notTaxAmount;

    /**
     * 含税金额
     */
    private BigDecimal taxAmount;

    /**
     * 差异金额
     */
    private BigDecimal differenceAmount;

    /**
     * 备注
     */
    private String remark;

    /**
     * 数据状态 1:暂存 2:待采购确认 3:采购拒绝 4:待推送OA审批 5:OA审批中 6:OA审批不通过 7:待财务确认 8:财务拒绝 9:确认通过
     */
    private String status;
    private String postStatus;

    /**
     * 创建用户
     */
    private String createUserName;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 开始时间
     */
    private String beginTime;

    /**
     * 结束时间
     */
    private String endTime;

    /**
     * 开始时间
     */
    private String beginPostTime;

    /**
     * 结束时间
     */
    private String endPostTime;

    /**
     * 影像编码
     */
    private String imgCode;

    /**
     * 创建用户ID
     */
    private Long userId;

    private String statusListStr;
    private List<String> statusList;
    private String inStockStartDate;
    private String inStockEndDate;

    public List<String> getStatusList(){
        if (StringUtils.isNotEmpty(this.statusListStr)){
            return  Arrays.asList(StringUtils.split(this.statusListStr, ","));
        }
        return null;
    }

    public String getStatus(){
        if (",".equals(this.status)){
            return null;
        }
        return this.status;
    }
}
