package cn.superdesk.uniorder.dao.entity.thirdpart.jd;

import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * @Description:  
 * @Author: linjinyu 
 * @CreateDate: 2022-06-23 17:38:15 
 * @UpdateUser: linjinyu 
 * @UpdateDate: 2022-06-23 17:38:15 
 * @UpdateRemark: 修改内容 
 * @Version: 1.0 
 */ 
@NoArgsConstructor
@AllArgsConstructor
@Builder(toBuilder = true)
@Data
@ToString
public class SysQuartzScheduleTaskStatementOfAccountJd implements Serializable {
    /**
     * Id
     */
    @ApiModelProperty(value = "Id")
    private Long id;

    /**
     * 对账单 创建维度:0-订单;1-商品;2-流水;
     */
    @ApiModelProperty(value = "对账单 创建维度:0-订单;1-商品;2-流水;")
    private Integer dimCreateBy;

    /**
     * 对账单名 eg:某某企业 12月对账单
     */
    @ApiModelProperty(value = "对账单名 eg:某某企业 12月对账单")
    private String statementOfAccountName;

    /**
     * 对账单类型 1-客户结算;2-供应商结算;21-供应商结算-京东;
     */
    @ApiModelProperty(value = "对账单类型 1-客户结算;2-供应商结算;21-供应商结算-京东;")
    private Integer statementOfAccountType;

    /**
     * 第三方账单编号 202103010000900180,202103010000900180
     */
    @ApiModelProperty(value = "第三方账单编号 202103010000900180,202103010000900180")
    private String thirdPartAccountingOrderSn;

    /**
     * 服务编码-定义:始于订单流上标志的服务编码及从订单流衍生出来的及相关数据的来源标识-引用enum CommonServiceEnum
     */
    @ApiModelProperty(value = "服务编码-定义:始于订单流上标志的服务编码及从订单流衍生出来的及相关数据的来源标识-引用enum CommonServiceEnum")
    private String serviceNo;

    /**
     * 统一订单 项目ID
     */
    @ApiModelProperty(value = "统一订单 项目ID")
    private Long sysOrgId;

    /**
     * 统一订单 企业ID
     */
    @ApiModelProperty(value = "统一订单 企业ID")
    private Long sysVirtId;

    /**
     * 服务之窗 项目ID
     */
    @ApiModelProperty(value = "服务之窗 项目ID")
    private Long outOrgId;

    /**
     * 服务之窗 企业ID
     */
    @ApiModelProperty(value = "服务之窗 企业ID")
    private Long outVirtId;

    /**
     * 商户ID 内部
     */
    @ApiModelProperty(value = "商户ID 内部")
    private Long sysMerchantId;

    /**
     * 商户ID 外部
     */
    @ApiModelProperty(value = "商户ID 外部")
    private Long outMerchantId;

    @ApiModelProperty(value = "")
    private Date cycleBeginTime;

    @ApiModelProperty(value = "")
    private Date cycleEndTime;

    /**
     * 状态：1暂停、0启用 | 单纯标记能不能去执行而已
     */
    @ApiModelProperty(value = "状态：1暂停、0启用 | 单纯标记能不能去执行而已")
    private Integer isPause;

    /**
     * sys_quartz_job.id
     */
    @ApiModelProperty(value = "sys_quartz_job.id")
    private Long jobId;

    /**
     * 产品(⑧支持核对编号查询) 批次Id
     */
    @ApiModelProperty(value = "产品(⑧支持核对编号查询) 批次Id")
    private String batchId;

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

    @ApiModelProperty(value = "")
    private Date runTime;

    /**
     * 产品(②支持导入状态下拉查询：导入状态：成功、失败) 说明 Excel的数据全部入库视之为 导入状态 成功 | 任务运行状态：-1-失败;0-待命;1-成功
     */
    @ApiModelProperty(value = "产品(②支持导入状态下拉查询：导入状态：成功、失败) 说明 Excel的数据全部入库视之为 导入状态 成功 | 任务运行状态：-1-失败;0-待命;1-成功")
    private Integer processState;

    @ApiModelProperty(value = "")
    private Date processTime;

    /**
     * 产品(④支持账单状态下拉查询：账单状态：待确认、已确认、已取消) | 对账单(结算单)状态:-1-已取消;0-未确认(待确认);1-已确认;2-已拒绝;3-待提交;
     */
    @ApiModelProperty(value = "产品(④支持账单状态下拉查询：账单状态：待确认、已确认、已取消) | 对账单(结算单)状态:-1-已取消;0-未确认(待确认);1-已确认;2-已拒绝;3-待提交;")
    private Integer accountingStatus;

    @ApiModelProperty(value = "")
    private Date accountingTime;

    /**
     * 产品(⑤支持核对状态下拉查询：核对状态：正常、异常)
     */
    @ApiModelProperty(value = "产品(⑤支持核对状态下拉查询：核对状态：正常、异常)")
    private Integer checkState;

    @ApiModelProperty(value = "")
    private Date checkTime;

    @ApiModelProperty(value = "")
    private Date finishTime;

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

    @ApiModelProperty(value = "")
    private Date createTime;

    @ApiModelProperty(value = "")
    private Long createUserId;

    @ApiModelProperty(value = "")
    private Date updateTime;

    @ApiModelProperty(value = "")
    private Long updateUserId;

    /**
     * 对账单编号
     */
    @ApiModelProperty(value = "对账单编号")
    private String accountingOrderSn;

    /**
     * 统计部分_第三方对账金额
     */
    @ApiModelProperty(value = "统计部分_第三方对账金额")
    private BigDecimal statisticsAmountDimOrderOutsider;

    /**
     * 统计部分_结算中心对账金
     */
    @ApiModelProperty(value = "统计部分_结算中心对账金")
    private BigDecimal statisticsAmountDimOrderOwnsider;

    /**
     * 统计部分_导入对账数据_订单维度_总数
     */
    @ApiModelProperty(value = "统计部分_导入对账数据_订单维度_总数")
    private Long statisticsQuantityDimOrderTotal;

    /**
     * 统计部分_导入对账数据_订单维度_正常
     */
    @ApiModelProperty(value = "统计部分_导入对账数据_订单维度_正常")
    private Long statisticsQuantityDimOrderNormal;

    /**
     * 统计部分_导入对账数据_订单维度_异常
     */
    @ApiModelProperty(value = "统计部分_导入对账数据_订单维度_异常")
    private Long statisticsQuantityDimOrderException;


    @ApiModelProperty(value = "耗时(单位ms) 解释excel,转换,持久化等等一系列操作")
    private Long timeConsumingForImport;


    @ApiModelProperty(value = "耗时(单位ms) 基于导入持久化后的数据,查找比对,锁定等等一系列操作")
    private Long timeConsumingForCompare;

    /**
     * 对账单json
     */
    @ApiModelProperty(value = "对账单json")
    private String result;

    /**
     * 参数json ,记录 什么条件生成
     */
    @ApiModelProperty(value = "参数json ,记录 什么条件生成")
    private String params;

    /**
     * 中间参数 快照
     */
    @ApiModelProperty(value = "中间参数 快照")
    private String paramsSnapshot;

    private static final long serialVersionUID = 1L;
}