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.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;

/**
 * <p>
 *     对账单查询实体类
 * </p>
 *
 * @author li.kui
 * @version 1.0
 * @since 2020/7/31
 */
@Data
public class CompanyAccountStatementQuery extends BasePageQuery {
    /**
     * 对账单号
     */
    private String accountStatementNo;
    /**
     * -1 全部, 1 是 ，2 否
     */
    private String paymentStatus;
    private String statementNo;
    private String createTimeStart;
    private String createTimeEnd;
    /**
     * 过账状态 1:暂存 2:待预制 3:预制失败 4:预制成功5-过账成功
     */
    private Integer postStatus;
    /**
     * 是否对账单页面 0:否 1:是
     */
    private Integer isDuiZhang;
    private String businessTypeCode;
    /**
     * 采购公司代码
     */
    private String companyCode;
    private Integer isComplete;
    private String order;

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

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

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

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

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

    /**
     * 对账单年
     */
    private String accountStatementYear;

    /**
     * 对账单月
     */
    private String accountStatementMonth;

    /**
     * 采购组
     */
    private String purchaseGroup;

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

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

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

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

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

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

    /**
     * 过账日期起
     */
    private String beginPostTime;

    /**
     * 至
     */
    private String endPostTime;

    /**
     * 付款方式
     */
    private String paymentWay;
    private Integer deleteFlag;

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

    private String statusListStr;
    private List<String> statusList;
    private String sort;

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

    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;
    }
}
