package cn.superdesk.uniorder.dto.param.thirdpart.jd;

import cn.superdesk.uniorder.common.pagination.AnBaseQueryCriteria;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.SuperBuilder;

/**
 * @Description: 定时任务-时刻任务-对账单
 * @Author: linjinyu
 * @CreateDate: 2022/6/8 4:51 下午
 * @UpdateUser: linjinyu
 * @UpdateDate: 2022/6/8 4:51 下午
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder(toBuilder = true)
@Data
@ToString
public class SysQuartzScheduleTaskStatementOfAccountJdQueryCriteria extends AnBaseQueryCriteria {

    @ApiModelProperty("sysQuartzScheduleTaskStatementOfAccountJdId opList 上的Id")
    private Long   sysQuartzScheduleTaskStatementOfAccountJdId;

    @ApiModelProperty("1.2.4.1 (5)对账单号:对当前列表数据`对账单号`字段内容,`精确`查询; 批次Id")
    private String batchId;
    @ApiModelProperty(value = "1.2.4.1 (6)结算中心账单编号:对当前列表数据`结算中心账单编号`字段内容,`精确`查询;")
    private String accountingOrderSn;
    @ApiModelProperty(value = "1.2.4.1 (7)第三方账单编号:对当前列表数据`第三方账单编号`字段内容,`精确`查询,多条对账任务数据可能存在同样的账单编号; 第三方账单编号 202103010000900180,202103010000900180")
    private String thirdPartAccountingOrderSn;


    @ApiModelProperty("1.2.4.1 (8)第三方订单编号:对当前列表对账任务中导入第三方账单中的`订单编号`内容,`精确`查询,多条对账任务数据可能存在同样的第三方订单编号;")
    private String quoteOrderSn;
    @ApiModelProperty("1.2.4.1 (9)结算中心订单编号:对当前列表对账任务中比对的结算中心的`订单编号`内容,`精确`查询,多条对账任务数据可能存在同样的结算中心订单编号;")
    private String referenceOrderSn;


    @ApiModelProperty(value = "1.2.4.1 (10)创建人:对当前列表数据`创建人`字段内容,`模糊`查询;")
    private Long createUserId;
    @ApiModelProperty(value = "1.2.4.1 (11)更新人:对当前列表数据`更新人`字段内容,`模糊`查询;")
    private Long updateUserId;

    @ApiModelProperty("产品(账单类型:京东) 对账单类型 1-客户结算;2-供应商结算;21-供应商结算-京东;")
    private Integer statementOfAccountType;


    @ApiModelProperty("")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private String cycleBeginTime;
    @ApiModelProperty("")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private String cycleEndTime;

    @ApiModelProperty("1.2.4.9 账单日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private String cycleTime;

    @ApiModelProperty("1.2.4.10 创建日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private String createTimeStartTime;
    @ApiModelProperty("1.2.4.10 创建日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private String createTimeEndTime;


    //    1.2.4.2 供应商
//(1)初始:默认显示为`请选择`,即全部;
//(2)数据:
//①来源:取侨城汇结算中心供应商管理中所有的供应商,含已删除|已禁用的供应商,
//数据内容:供应商名称(服务编号)
//②若无数据,即下拉列表为空显示,
//③排序:按结算中心该供应商ID从小到大依次排列显示,
//(3)显示:供应商名称若当前名称内容显示不全时,末尾`...`省略显示,
//(4)下拉选框:支持按供应商名称内容`模糊`搜索,单选,
    @ApiModelProperty(value = "1.2.4.2 供应商 商户ID 内部")
    private Long sysMerchantId;
    @ApiModelProperty(value = "1.2.4.2 供应商 商户ID 外部")
    private Long outMerchantId;


//1.2.4.3 导入状态
//(1)初始:默认`全部`,显示为`请选择`,
//(2)选择:单选,`导入中|导入成功|导入失败`,
//导入中:指该对账任务正在上传服务端中的状态,对账任务创建的初始状态,
//导入成功:指该对账任务上传服务端成功And符合数据检查条件的状态,
//导入失败:指该对账任务上传服务失败或其他异常或不符合数据检查条件的状态,

    @ApiModelProperty("1.2.4.3 导入状态")
    private Integer processState;


    //    1.2.4.4 对账状态
//(1)初始:默认`全部`,显示为`请选择`,
//(2)选择:单选,`待对账|对账中|对账完成`,
//待对账:指该对账任务还未开始进行与结算中心供应商未结算商品订单对账的状态,
//对账中:指该对账任务正在与结算中心供应商未结算商品订单进行对账,还未完成进行中的状态,
//对账完成:指该对账任务已全部对账完成的状态,
    @ApiModelProperty("1.2.4.4 对账状态")
    private Integer accountingStatus;


    //    1.2.4.5 对账结果
//(1)初始:默认`全部`,显示为`请选择`,
//(2)选择:单选,`正常|异常|待对账`,
//正常:指该对账任务下所有第三方订单的对账结果全部为`正常`的状态,
//异常:指该对账任务下所有第三方订单的对账结果存在部分`异常`或`待对账`的状态,
//待对账:指该对账任务下所有第三方订单的对账结果全部为`待对账`的状态,
    @ApiModelProperty("1.2.4.5 对账结果;对账结果:0-待对账;1-正常;2-异常; 引用 enum ScheduleTaskCheckStateEnum")
    private Integer checkState;


    /**************************************** 供应商结算 对账单 部分 start ****************************************/

//1.2.4.6 对账单状态
//(1)初始:默认`全部`,显示为`请选择`;
//(2)选择:单选,`待确认|已确认|已取消`;
//指该对账任务确认对账后在`结算中心-供应商结算-对账单`列表该对账单状态;
//若该对账任务的对账单状态初始均为`待确认`;
    @ApiModelProperty("1.2.4.6 对账单状态")
    private Integer ausuAccountingStatus;


    //    1.2.4.7 申请状态
//(1)初始:默认`全部`,显示为`请选择`;
//(2)选择:单选,`未申请|待开票|待收票|待付款|已完成|已作废`;
//指该对账任务确认对账后在`结算中心-供应商结算-对账单`列表该对账单的申请状态;
//若该对账任务对账单的申请状态初始均为`未申请`;
    @ApiModelProperty("1.2.4.7 申请状态")
    private Integer ausuInvoiceStatus;


    //    1.2.4.8 付款状态
//(1)初始:默认`全部`,显示为`请选择`;
//(2)选择:单选,`未付款|付款中|已付款`;
//指该对账任务确认对账后在`结算中心-供应商结算-对账单`列表该对账单的付款状态;
//若该对账任务对账单的付款状态初始均为`未付款`;
    @ApiModelProperty("1.2.4.8 付款状态")
    private Integer ausuBackAccountStatus;


    /**************************************** 供应商结算 对账单 部分   end ****************************************/


    @ApiModelProperty("产品(③支持任务状态下拉查询:任务状态:待执行、执行中、执行成功、执行失败) 说明 前端上传完Excel与提交完表单后 后端创建任务 任务状态为 待执行 | ")
    private Integer runState;


}
