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

import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: Java类作用描述
 * @Author: linjinyu
 * @CreateDate: 2022/6/8 10:46 上午
 * @UpdateUser: linjinyu
 * @UpdateDate: 2022/6/8 10:46 上午
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder(toBuilder = true)
@Data
@ToString
public class SysQuartzScheduleTaskStatementOfAccountJdListItemVo implements Serializable {

    @ApiModelProperty(value = "Id")
    private Long id;

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

    @ApiModelProperty(value = "对账单名 eg:某某企业 12月对账单")
    private String  statementOfAccountName;
    @ApiModelProperty(value = "对账单类型 1-客户结算;2-供应商结算;21-供应商结算-京东;")
    private Integer statementOfAccountType;
    private String  statementOfAccountTypeName;

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

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

    private String sourceFrom;
    private String sourceFromName;


    @ApiModelProperty(value = "统一订单 项目ID")
    private Long sysOrgId;
    @ApiModelProperty(value = "统一订单 企业ID")
    private Long sysVirtId;
    @ApiModelProperty(value = "服务之窗 项目ID")
    private Long outOrgId;
    @ApiModelProperty(value = "服务之窗 企业ID")
    private Long outVirtId;

    @ApiModelProperty(value = "商户ID 内部")
    private Long   sysMerchantId;
    @ApiModelProperty(value = "商户ID 外部")
    private Long   outMerchantId;
    @ApiModelProperty(value = "供应商|商户名称")
    private String saleName;

    @ApiModelProperty(value = "")
    private Date   cycleBeginTime;
    @ApiModelProperty(value = "")
    private Date   cycleEndTime;
    @ApiModelProperty(value = "")
    private String cycleBeginTimeFormat;
    @ApiModelProperty(value = "")
    private String cycleEndTimeFormat;

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

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

    @ApiModelProperty(value = "1.2.4.1 (5)对账单号:对当前列表数据`对账单号`字段内容,`精确`查询; 批次Id")
    private String batchId;

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

    @ApiModelProperty(value = "导入状态:0-导入中;1-导入成功;2-导入失败; 引用 enum ScheduleTaskProcessStateEnum")
    private Integer processState;
    @ApiModelProperty(value = "导入状态:0-导入中;1-导入成功;2-导入失败; 引用 enum ScheduleTaskProcessStateEnum")
    private String  processStateName;
    @ApiModelProperty(value = "")
    private Date    processTime;
    @ApiModelProperty(value = "")
    private String  processTimeFormat;

    @ApiModelProperty(value = "对账状态:0-待对账;1-对账完成;10-对账中; 引用 enum ScheduleTaskAccountingStatusEnum")
    private Integer accountingStatus;
    @ApiModelProperty(value = "对账状态:0-待对账;1-对账完成;10-对账中; 引用 enum ScheduleTaskAccountingStatusEnum")
    private String  accountingStatusName;
    @ApiModelProperty(value = "")
    private Date    accountingTime;
    @ApiModelProperty(value = "")
    private String  accountingTimeFormat;

    @ApiModelProperty(value = "对账结果:0-待对账;1-正常;2-异常; 引用 enum ScheduleTaskCheckStateEnum")
    private Integer checkState;
    @ApiModelProperty(value = "对账结果:0-待对账;1-正常;2-异常; 引用 enum ScheduleTaskCheckStateEnum")
    private String  checkStateName;
    @ApiModelProperty(value = "")
    private Date    checkTime;
    @ApiModelProperty(value = "")
    private String  checkTimeFormat;

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

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

    @ApiModelProperty(value = "")
    private Date   createTime;
    @ApiModelProperty(value = "")
    private String createTimeFormat;
    @ApiModelProperty(value = "")
    private Long   createUserId;
    @ApiModelProperty(value = "")
    private String createUserName;

    @ApiModelProperty(value = "")
    private Date   updateTime;
    @ApiModelProperty(value = "")
    private String updateTimeFormat;
    @ApiModelProperty(value = "")
    private Long   updateUserId;
    @ApiModelProperty(value = "")
    private String updateUserName;

    @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 = "对账单json")
    private String result;
    @ApiModelProperty(value = "参数json ,记录 什么条件生成")
    private String params;
    @ApiModelProperty(value = "中间参数 快照")
    private String paramsSnapshot;

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


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

    /**
     * 未最终生成 结算中心的对账单前 这些属性都是空的
     */

    @ApiModelProperty(value = "供应商结算 对账单 编号")
    private String ausuAccountingOrderSn;

    @ApiModelProperty(value = "供应商结算 对账单 状态:3-待提交;0-未确认;1-已确认;2-已拒绝;-1-已取消;")
    private Integer ausuAccountingStatus;
    @ApiModelProperty(value = "供应商结算 对账单 发票单-开票状态:0-未申请;1-待开票;2-已作废;20-待寄票;30-待收票;40-待付款;99-已完成;")
    private Integer ausuInvoiceStatus;
    @ApiModelProperty(value = "供应商结算 对账单 回款标记:0-未回款;1-部分回款;2-全部回款;")
    private Integer ausuBackAccountStatus;

    @ApiModelProperty(value = "供应商结算 对账单 状态:3-待提交;0-未确认;1-已确认;2-已拒绝;-1-已取消;")
    private String ausuAccountingStatusName;
    @ApiModelProperty(value = "供应商结算 对账单 发票单-开票状态:0-未申请;1-待开票;2-已作废;20-待寄票;30-待收票;40-待付款;99-已完成;")
    private String ausuInvoiceStatusName;
    @ApiModelProperty(value = "供应商结算 对账单 回款标记:0-未回款;1-部分回款;2-全部回款;")
    private String ausuBackAccountStatusName;


    @ApiModelProperty(value = "供应商结算 对账单 供应商部分-供应商Id(外部)")
    private Long   ausuSaleId;
    @ApiModelProperty(value = "供应商结算 对账单 供应商部分-供应商名称")
    private String ausuSaleName;

    @ApiModelProperty(value = "供应商结算 对账单 服务编码-定义:始于订单流上标志的服务编码及从订单流衍生出来的及相关数据的来源标识-引用enum CommonServiceEnum")
    private String ausuServiceNo;
    @ApiModelProperty(value = "供应商结算 对账单 来源-定义:始于操作(不限于界面 内部接口 第三方接口等等);1-superdesk-uniorder;2-superdesk-app;3-superdesk-mall;4-qchqyscjc-mall;")
    private String ausuSourceFrom;

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


}
