package com.dxhy.extend.entity;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dxhy.common.vo.UserInfo;
import com.github.pagehelper.util.StringUtil;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang.StringUtils;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * 功能描述
 *
 * @author 陈刚扬
 * @date 2020/10/28
 * @return
 */

@SuppressWarnings({"AlibabaUndefineMagicConstant", "rawtypes", "DuplicatedCode"})
@Data
public class BaseCustomsVO {

    private List<String> gfTaxNo;
    /**
     * 购方税号，唯一
     */
    private String gfsh;
    /**
     * 缴款书号码
     */
    private String customsCode;

    private String buyerName;

    /**
     * 默认去年上月第一天
     */
    private String fillInDateStart;
    /**
     * 默认当前日期
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param null
     * @return
     */
    private String fillInDateEnd;
    /**
     * 所属期开始
     */
    private String belongDateStart;
    /**
     * 所属期结束
     */
    private String belongDateEnd;
    /**
     * 税款金额开始
     */
    private String taxAmountStart;
    /**
     * 税款金额结束
     */
    private String taxAmountEnd;
    /**
     * 签收状态
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param null
     * @return
     */
    private String signStatus;

    /**
     * 签收日期开始
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param null
     * @return
     */
    private String signDateStart;
    /**
     * 签收日期结束
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param null
     * @return
     */
    private String signDateEnd;

    /**
     * 所属期
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param null
     * @return
     */
    private String belongDate;
    /**
     * 认证时间
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param null
     * @return
     */
    private String rzhDate;
    /**
     * 管理状态
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param null
     * @return
     */
    private String manageStatus;
    /**
     * 认证状态
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param null
     * @return
     */
    private String confirmStatus;
    /**
     * 认证处理状态
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param null
     * @return
     */
    private String authStatus;
    /**
     * 认证人
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param null
     * @return
     */
    private String confirmUser;

    /**
     * 认证日期开始
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param null
     * @return
     */
    private String rzhDateStart;
    /**
     * 认证日期结束
     *
     * @author 陈刚扬
     * @date 2020/10/30
     * @param null
     * @return
     */
    private String rzhDateEnd;

    private List<Long> idList;

    private List<String> ids;

    private String dataList;

    public void setParam(Page page) throws Exception {
        if ("99".equals(gfsh)) {
            this.gfsh = null;
        }
        if ("99".equals(signStatus)) {
            this.signStatus = null;
        }
        if ("99".equals(authStatus)) {
            this.authStatus = null;
        }
        if ("99".equals(manageStatus)) {
            this.manageStatus = null;
        }
        if ("99".equals(confirmStatus)) {
            this.confirmStatus = null;
        }
        if (StringUtil.isNotEmpty(belongDate)) {
            Date date = new SimpleDateFormat("yyyy-MM").parse(belongDate);
            belongDate = new SimpleDateFormat("yyyyMM").format(date);
        }
        if (this.getGfTaxNo() != null && this.getGfTaxNo().size() > 0) {
            for (String str : this.getGfTaxNo()) {
                if (this.isAll(str)) {
                    this.gfTaxNo = null;
                    break;
                }
            }
        }
        this.setPage(page);
    }

    private String dbName;
    private String index;
    private Long curr;
    private Long size;

    /**
     * 用户信息
     */
    private UserInfo userInfo;

    public void setPage(Page page) {
        page.setCurrent(this.curr);
        page.setSize(this.size);
    }

    public boolean isAll(String str) {
        return StringUtils.isNotBlank(str) && ("99".equals(str) || "全部".equals(str));
    }
}
