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

import com.alibaba.excel.annotation.ExcelProperty;
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/9 3:01 下午
 * @UpdateUser: linjinyu
 * @UpdateDate: 2022/6/9 3:01 下午
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder(toBuilder = true)
@Data
@ToString
public class AccountingUnifiedSupplierOrderJdCheckUpReportListItemVo implements Serializable {

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

    @ApiModelProperty(value = "批次Id")
    private String batchId;

    @ExcelProperty(value = "ID", index = 0)
    @ApiModelProperty(value = "accountingUnifiedSupplierOrderJdId")
    private Long accountingUnifiedSupplierOrderJdId;

    @ApiModelProperty(value = "京东 账单编号 202103010000900180 直接")
    private String jdAccountingOrderSn;

    @ExcelProperty(value = "第三方订单编号", index = 1)
    @ApiModelProperty(value = "订单编号 215961349611")
    private String jdOrderSn;

    @ApiModelProperty(value = "原始订单号 215276644920")
    private String jdOriginalOrderSn;

    @ExcelProperty(value = "第三方对账金额", index = 2)
    @ApiModelProperty(value = "订单金额 159.18(京东总体订单金额)")
    private BigDecimal jdOrderAmount;
    @ExcelProperty(value = "结算中心对账金额", index = 5)
    @ApiModelProperty(value = "订单金额 159.18(结算中心总体订单金额)")
    private BigDecimal wholeOrderAmount;

    @ApiModelProperty(value = "还款金额 0.00")
    private BigDecimal jdRepaymentAmount;
    @ApiModelProperty(value = "退款金额 106.12")
    private BigDecimal jdRefundAmount;
    @ApiModelProperty(value = "未结清 53.06")
    private BigDecimal jdOutStandingAmount;

    @ApiModelProperty(value = "京东 订单状态 ++")
    private Integer jdOrderState;
    @ApiModelProperty(value = "京东 订单状态 已完成 部分退货")
    private String  jdOrderStateName;
    @ApiModelProperty(value = "京东 入账状态 ++")
    private Integer wereAccountedState;
    @ApiModelProperty(value = "京东 入账状态 已入账")
    private String  wereAccountedStateName;
    @ApiModelProperty(value = "售后状态")
    private Integer afterSaleState;
    @ApiModelProperty(value = "售后状态 未进售后 售后完成 已进售后")
    private String  afterSaleStateName;


    @ApiModelProperty(value = "统一订单-第三方订单编号")
    private String orderSn;

    @ApiModelProperty(value = "统一订单-订单-销售金额")
    private BigDecimal orderAmount;
    @ApiModelProperty(value = "统一订单-订单-成本金额")
    private BigDecimal orderCostAmount;
    @ApiModelProperty(value = "统一订单-订单-销售金额")
    private BigDecimal refundOrderAmount;
    @ApiModelProperty(value = "统一订单-订单-成本金额")
    private BigDecimal refundOrderCostAmount;
    @ApiModelProperty(value = "统一订单-订单-商户承担运费")
    private BigDecimal transportAmount;
    @ApiModelProperty(value = "统一订单-订单-商户承担运费")
    private BigDecimal transportMerchantAssumeAmount;
    @ApiModelProperty(value = "统一订单-订单-商品销售金额(包含运费)")
    private BigDecimal goodsAmount;
    @ApiModelProperty(value = "统一订单-订单-商品成本金额(包含运费)")
    private BigDecimal goodsCostAmount;
    @ApiModelProperty(value = "统一订单-订单-退品销售金额(包含运费)")
    private BigDecimal refundGoodsAmount;
    @ApiModelProperty(value = "统一订单-订单-退品成本金额(包含运费)")
    private BigDecimal refundGoodsCostAmount;


    @ApiModelProperty(value = "统一订单-订单-订单状态")
    private Integer orderState;
    @ApiModelProperty(value = "统一订单-订单-完成状态")
    private Integer completState;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    private Integer processResult;
    @ExcelProperty(value = "对账结果", index = 6)
    @ApiModelProperty("对账结果:0-待对账;1-正常;2-异常; 引用 enum ScheduleTaskCheckStateEnum")
    private String  processResultName;

    @ApiModelProperty("差异原因")
    private String processReport;


    @ExcelProperty(value = "对账差异金额", index = 7)
    @ApiModelProperty(value = "比对后(原则是第三方对账金额-结算中心对账金额) 总体差额")
    private BigDecimal comparedWholeAmount;
    @ApiModelProperty(value = "比对后(原则是第三方对账金额-结算中心对账金额) 正单部分差额")
    private BigDecimal comparedOrderAmount;
    @ApiModelProperty(value = "比对后(原则是第三方对账金额-结算中心对账金额) 总退单差额")
    private BigDecimal comparedRefundOrderAmount;
    @ApiModelProperty(value = "比对后(原则是第三方对账金额-结算中心对账金额) 运费部分差额")
    private BigDecimal comparedTransportAmount;


    @ApiModelProperty(value = "产品要求的错误定义 引用 enum SysQuartzScheduleTaskStatementOfAccountDefineErrorEnum")
    private Integer defineError;
    @ExcelProperty(value = "差异原因", index = 8)
    @ApiModelProperty(value = "产品要求的错误定义")
    private String  defineErrorName;

    @ApiModelProperty(value = "比对时记录订单的供应商对账状态")
    private Integer orderAccountingStateSupplier;
    @ApiModelProperty(value = "比对时记录订单商品数量")
    private Integer orderGoodsItemQuantity;
    @ApiModelProperty(value = "比对时统计出订单商品的供应商对账状态数量-不对账")
    private Integer goodsAccountingStateSupplierEqMinus1;
    @ApiModelProperty(value = "比对时统计出订单商品的供应商对账状态数量-未对账")
    private Integer goodsAccountingStateSupplierEq2;
    @ApiModelProperty(value = "比对时统计出订单商品的供应商对账状态数量-已对账")
    private Integer goodsAccountingStateSupplierEq1;
    @ApiModelProperty(value = "比对时统计出订单商品的供应商对账状态数量-已锁定")
    private Integer goodsAccountingStateSupplierEq4;

    /**************************************** 关系表 start ****************************************/


    @ApiModelProperty(value = "")
    private String  doggodOrderSnAsWhole;
    @ApiModelProperty(value = "")
    private Integer doggodOrderAccountingStateSupplier;
    @ApiModelProperty(value = "")
    private Integer doggodGoodsAccountingStateSupplier;
    @ExcelProperty(value = "结算中心订单编号", index = 3)
    @ApiModelProperty(value = "第三方商城的订单Sn")
    private String  goddogOrderSn;
    @ApiModelProperty(value = "")
    private Integer goddogProcessResult;

    @ApiModelProperty(value = "统一订单-Id")
    private Long       unifiedOrderId;
    @ApiModelProperty(value = "统一订单商品-Id")
    private Long       unifiedOrderGoodsId;
    @ApiModelProperty(value = "第三方商城的商品表Id")
    private Long       goodsId;
    @ApiModelProperty(value = "订单商品-数量")
    private Integer    goodsQuantity;
    @ApiModelProperty(value = "订单商品-成本价")
    private BigDecimal goodsCostPrice;
    @ExcelProperty(value = "订单结算金额", index = 4)
    @ApiModelProperty(value = "订单商品-成本金额=成本价x数量")
    private BigDecimal goodsCostPriceXQuantity;

    /**************************************** 关系表   end ****************************************/


}
