package cn.superdesk.uniorder.dto.param.scheduler;

import cn.superdesk.uniorder.common.json.deserializer.DateConvertDeserializer;
import cn.superdesk.uniorder.common.pagination.AnBaseQueryCriteria;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.util.Date;

/**
 * 定时任务-时刻任务-对账单
 *
 * @author linjinyu
 * @email linjinyu@avic-s.com
 * @date 2021-10-12 11:29:24
 */
@Data
@ToString
public class SysQuartzScheduleTaskStatementOfAccountJdQueryCriteria extends AnBaseQueryCriteria {


//【京东线上对账需求讲解】 https://www.tapd.cn/33003868/prong/stories/view/1133003868001003091
//需求3：查询条件
//①支持账单类型下拉查询：账单类型：京东 DN
//②支持导入状态下拉查询：导入状态：成功、失败 DN
//③支持任务状态下拉查询：任务状态：待执行、执行中、执行成功、执行失败 DN
//④支持账单状态下拉查询：账单状态：待确认、已确认、已取消 DN
//⑤支持核对状态下拉查询：核对状态：正常、异常 DN
//⑥支持结算周期查询，导入账单时输入的周期 DN
//⑦支持创建日期查询 DN
//⑧支持核对编号查询 DN

	//	@ApiModelProperty("ID")
//	private Long    id;
//	@ApiModelProperty("对账单 创建维度:0-订单;1-商品;2-流水;")
//	private Integer dimCreateBy;
//	@ApiModelProperty("对账单名 eg:某某企业 12月对账单")
//	private String  statementOfAccountName;
	@ApiModelProperty("产品(账单类型：京东) 对账单类型 1-客户结算;2-供应商结算;21-供应商结算-京东;")
	private Integer statementOfAccountType;


//	@ApiModelProperty("")
//	private Integer serviceId;
//	@ApiModelProperty("")
//	private String  serviceNo;
//	@ApiModelProperty("订单类型-订单来源渠道")
//	private String  serviceName;
//	@ApiModelProperty("统一订单 项目ID")
//	private Long    sysOrgId;
//	@ApiModelProperty("统一订单 企业ID")
//	private Long    sysVirtId;
//	@ApiModelProperty("服务之窗 项目ID")
//	private Long    outOrgId;
//	@ApiModelProperty("服务之窗 企业ID")
//	private Long    outVirtId;
//	@ApiModelProperty("商户ID 内部")
//	private Long    sysMerchantId;
//	@ApiModelProperty("商户ID 外部")
//	private Long    outMerchantId;

	@ApiModelProperty("产品(⑥支持结算周期查询，导入账单时输入的周期) eg 2021-01-01")
	//	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd")
//	@JsonDeserialize(using = DateConvertDeserializer.class)
	private Date cycleBeginTime;
	@ApiModelProperty("产品(⑥支持结算周期查询，导入账单时输入的周期) eg 2021-01-30")
	//	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd")
//	@JsonDeserialize(using = DateConvertDeserializer.class)
	private Date cycleEndTime;

	//	@ApiModelProperty("状态：1暂停、0启用 | 单纯标记能不能去执行而已")
//	private Integer isPause;
//	@ApiModelProperty("任务名称")
//	private Long    jobId;
	@ApiModelProperty("产品(⑧支持核对编号查询) 批次Id")
	private String batchId;


	@ApiModelProperty("产品(③支持任务状态下拉查询：任务状态：待执行、执行中、执行成功、执行失败) 说明 前端上传完Excel与提交完表单后 后端创建任务 任务状态为 待执行 | ")
	private Integer runState;
	@ApiModelProperty("产品(②支持导入状态下拉查询：导入状态：成功、失败) 说明 Excel的数据全部入库视之为 导入状态 成功 | 任务运行状态：-1-失败;0-待命;1-成功")
	private Integer processState;
	@ApiModelProperty("产品(⑤支持核对状态下拉查询：核对状态：正常、异常) 添加个 初始状态为 初始 0")
	private Integer checkState;
	@ApiModelProperty("产品(④支持账单状态下拉查询：账单状态：待确认、已确认、已取消) 初始状态为 待确认 0  | 对账单(结算单)状态:-1-已取消;0-未确认(待确认);1-已确认;2-已拒绝;3-待提交;")
	private Integer accountingStatus;

//	@ApiModelProperty("对账单编号(在供应商结算 京东对账 列表 当任务点击 确认账单 才会真的去生成统一订单的对账单 才会有这个 对账单编辑)")
//	private String accountingOrderSn;

//	@ApiModelProperty("备注")
//	private String  remark;


	//	private Date createTime;
//	params.put("startTime", getString("startTime"));
//	params.put("endTime", getString("endTime"));
	@ApiModelProperty("产品(⑦支持创建日期查询)")
//	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd")
//	@JsonDeserialize(using = DateConvertDeserializer.class)
	private Date startTime;
	@ApiModelProperty("产品(⑦支持创建日期查询)")
//	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd")
//	@JsonDeserialize(using = DateConvertDeserializer.class)
	private Date endTime;


//	@ApiModelProperty("")
//	private Long createUserId;

//	@ApiModelProperty("")
//	private Date updateTime;
//	@ApiModelProperty("")
//	private Long updateUserId;

//	@ApiModelProperty("")
//	private Date    runTime;
//	@ApiModelProperty("")
//	private Date    finishTime;


//	@ApiModelProperty("对账单json")
//	private String  result;
//	@ApiModelProperty("参数json ,记录 什么条件生成")
//	private String  params;
//	@ApiModelProperty("中间参数 快照")
//	private String  paramsSnapshot;


}