package cn.superdesk.uniorder.dto.param.invoice.supplier;

import cn.superdesk.uniorder.common.pagination.AnBaseQueryCriteria;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * @Description: Java类作用描述
 * @Author: linjinyu
 * @CreateDate: 2021/11/30 下午12:06
 * @UpdateUser: linjinyu
 * @UpdateDate: 2021/11/30 下午12:06
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@Data
public class InvoiceApplySupplierPageVoListQueryCriteria extends AnBaseQueryCriteria {

	/****************************************** 导出excel start ******************************************/

	@ApiModelProperty("导出excel-有逻辑 侨城汇\n" +
			"\t//\t|---- 1. 搜索框 条件 结算集\n" +
			"\t//\t|---- 2. 搜索框 条件 结算集 后 界面上 勾选 要以 开票申请编号 分 sheet 分合并前 合并后\n" +
			"\t//\t|---- 3. 搜索框 条件 结算集 后 界面上 勾选 要以 开票申请编号 分 sheet 财务专用")
	private Integer    mode;
	@ApiModelProperty("导出excel-invoiceApplyIds")
	private List<Long> invoiceApplyIds;
	@ApiModelProperty("导出excel-请输入导出开票申请的标题内容")
	private String     remark;

	/****************************************** 所属对账单 start ******************************************/

	@ApiModelProperty("所属对账单Id-供应商结算2.0")
	private Long   accountingOrderId;
	@ApiModelProperty("所属对账单编号-供应商结算2.0")
	private String accountingOrderSn;

	/****************************************** 发票种类 start ******************************************/

	@ApiModelProperty("发票种类-发票种类Id-表(invoice_type.id)")
	private Long   invoiceTypeId;
	@ApiModelProperty("发票种类-发票种类名称-注意:只是预留")
	private String invoiceType;

	/****************************************** 发票种类 start ******************************************/

	/****************************************** 开票申请 start ******************************************/

	@ApiModelProperty("发票申请部分-开票申请Id invoice_apply_id sql(eq)")
	protected Long   invoiceApplyId;
	@ApiModelProperty("发票申请部分-开票申请号 invoice_apply_sn // 修改标记 20211201 sql(eq)")
	protected String invoiceApplySn;

	@ApiModelProperty("发票号 invoice_number sql(eq)")
	protected String invoiceNumber;

	/****************************************** 开票申请部分 start ******************************************/

	@ApiModelProperty("发票申请部分-发票申请人Id-后台帐号-供应商结算2.0")
	private Long   applyUserId;
	@ApiModelProperty("发票申请部分-发票申请人姓名-后台帐号-供应商结算2.0 ---- 不建议")
	private String applyUserName;
	@ApiModelProperty("开票申请时间 时间范围 开始时间 格式(%Y-%m-%d) apply_time")
	private String applyStartTime;
	@ApiModelProperty("开票申请时间 时间范围 结束时间 格式(%Y-%m-%d) apply_time")
	private String applyEndTime;

	/****************************************** 发票申请审核部分 start ******************************************/

	@ApiModelProperty("发票申请审核部分-审核状态:1-未审核;2-已同意;3-已拒绝; sql(eq)")
	private Integer       auditStatus;
	@ApiModelProperty("发票申请审核部分-审核状态:1-未审核;2-已同意;3-已拒绝; sql(in)")
	private List<Integer> auditStatusSelected;
	@ApiModelProperty("发票申请审核部分-审核人Id-后台帐号 sql(eq)")
	private Long          auditUserId;
	@Deprecated
	@ApiModelProperty("发票申请审核部分-审核人名字-后台帐号 ---- 不建议 sql(eq)")
	private String        auditUserName;

	/****************************************** 开票进展部分 start ******************************************/

	@ApiModelProperty("开票状态 开票进度状态 申请状态 等等意思 sql(eq) -单选")
	private Integer       invoiceStatus;
	@ApiModelProperty("开票状态 开票进度状态 申请状态 等等意思 sql(in) -多选")
	private List<Integer> invoiceStatusSelected;
	@ApiModelProperty("开票进展部分(超级前台(适用)|侨城汇(适用))-最后更新人-sysUserId sql(eq)")
	private Long          invoiceProgressingUserId;
	@Deprecated
	@ApiModelProperty("开票进展部分(超级前台(适用)|侨城汇(适用))-最后更新人-sysUserId ---- 没作用")
	private String        invoiceProgressingUserName;

	/****************************************** 开票登记部分 start ******************************************/

	@ApiModelProperty("发票登记(开票状态)部分-发票登记状态:0-未登记;1-已登记;2-重新开票(已作废 已撤消); sql(eq) -单选")
	private Integer       makeInvoiceStatus;
	@ApiModelProperty("发票登记(开票状态)部分-发票登记状态:0-未登记;1-已登记;2-重新开票(已作废 已撤消); sql(in) -多选")
	private List<Integer> makeInvoiceStatusSelected;
	@ApiModelProperty("发票登记部分-开票登记人-后台帐号 sql(eq)")
	private Long          makeInvoiceUserId;
	@Deprecated
	@ApiModelProperty("发票登记部分-开票登记人-后台帐号  ---- 不建议 sql(eq)")
	private String        makeInvoiceUserName;
	@ApiModelProperty("开票时间 时间范围 开始时间 格式(%Y-%m-%d) make_invoice_time")
	private String        makeInvoiceStartTime;
	@ApiModelProperty("开票时间 时间范围 结束时间 格式(%Y-%m-%d) make_invoice_time")
	private String        makeInvoiceEndTime;

	/****************************************** 寄票登记部分 start ******************************************/

	@ApiModelProperty("寄票登记(寄票状态)部分-寄票状态:0-未寄票;1-已寄票; - 目前侨城汇 不要 预留 sql(eq) -单选")
	private Integer       mailTickStatus;
	@ApiModelProperty("寄票登记(寄票状态)部分-寄票状态:0-未寄票;1-已寄票; - 目前侨城汇 不要 预留 sql(in) -多选")
	private List<Integer> mailTickStatusSelected;
	@ApiModelProperty("寄票登记部分-寄票登记人-后台帐号 sql(eq)")
	private Long          mailTickUserId;
	@Deprecated
	@ApiModelProperty("寄票登记部分(超级前台(适用)|侨城汇(适用))-寄票登记人名称-后台帐号 ---- 没作用 sql(eq)") // 标记 数据库现在好像是没有
	private String        mailTickUserName;

	/****************************************** 收票登记部分 start ******************************************/

	@ApiModelProperty(value = "收票登记部分 - 收票状态:0-未收票;1-已收票; sql(eq) -单选")
	private Integer       receiveInvoiceStatus;
	@ApiModelProperty(value = "收票登记部分 - 收票状态:0-未收票;1-已收票; sql(in) -多选")
	private List<Integer> receiveInvoiceStatusSelected;
	@ApiModelProperty(value = "收票登记部分 - 最后更新人 - sysUserId sql(eq)")
	private Long          receiveInvoiceUserId;
	@Deprecated
	@ApiModelProperty(value = "收票登记部分 - 最后更新人 - sysUserId ---- 没作用")
	private String        receiveInvoiceUserName;
	@ApiModelProperty("收票时间 时间范围 开始时间 格式(%Y-%m-%d) receive_invoice_time")
	private String        receiveInvoiceStartTime;
	@ApiModelProperty("收票时间 时间范围 结束时间 格式(%Y-%m-%d) receive_invoice_time")
	private String        receiveInvoiceEndTime;

	/****************************************** 付款登记部分 start ******************************************/

	@ApiModelProperty("付款(结清)登记部分登记部分(超级前台(适用)|侨城汇(适用))-付款登记部分-付款状态:0-待付款;1-部分付款(供应商结算2.0不用);10-付款中;2-已付款;67-蓝冲发票(供应商结算2.0不用);69-红冲发票(供应商结算2.0不用); sql(eq) -单选")
	private Integer       payoffAccountStatus;
	@ApiModelProperty("付款(结清)登记部分登记部分(超级前台(适用)|侨城汇(适用))-付款登记部分-付款状态:0-待付款;1-部分付款(供应商结算2.0不用);10-付款中;2-已付款;67-蓝冲发票(供应商结算2.0不用);69-红冲发票(供应商结算2.0不用); sql(in) -多选")
	private List<Integer> payoffAccountStatusSelected;
	@ApiModelProperty("付款(结清)登记部分(超级前台(适用)|侨城汇(适用))-最后更新人-sysUserId sql(eq)")
	private Long          payoffAccountUserId;
	@Deprecated
	@ApiModelProperty("付款(结清)登记部分(超级前台(适用)|侨城汇(适用))-最后更新人-sysUserId ---- 没作用 sql(eq)")
	private String        payoffAccountUserName;
	@ApiModelProperty("付款时间 时间范围 开始时间 格式(%Y-%m-%d) payoff_account_time")
	private String        payoffAccountStartTime;
	@ApiModelProperty("付款时间 时间范围 结束时间 格式(%Y-%m-%d) payoff_account_time")
	private String        payoffAccountEndTime;


	/****************************************** 供应商信息部分 start ******************************************/

	@ApiModelProperty("供应商|商户Id 特指 在统一订单入库后的 Id 预留 目前需求没作用 mark by linjinyu at 20211210 sql(eq)")
	private Long   sysSupplierId;
	@Deprecated
	@ApiModelProperty("供应商|商户Id 特指 在统一订单入库后的 名称 一般情况下 与 outSaleName 是一致的  预留 目前需求没作用 mark by linjinyu at 20211210")
	private String sysSupplierName;


	@ApiModelProperty("供应商|商户Id 特指 非统一订单产生 来源于业务系统 Id sql(eq)")
	private Long   outSaleId;
	@Deprecated
	@ApiModelProperty("供应商|商户Id 特指 非统一订单产生 来源于业务系统 名称 sql(like %XXX%)")
	private String outSaleName;
	@ApiModelProperty("引用Enum CommonSourceFromEnum-支持多选")
	private List<String> sourceFromsSelected;
	@ApiModelProperty("引用Enum CommonServiceNoEnum-支持多选")
	private List<String> serviceNosSelected;

}
