package cn.superdesk.uniorder.dto.receive.consumer.superdeskappservices.flashdeliver;

import cn.superdesk.uniorder.dto.receive.consumer.BaseReceiveParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * @Description: Java类作用描述
 * @Author: linjinyu
 * @CreateDate: 2021/7/12 下午6:22
 * @UpdateUser: linjinyu
 * @UpdateDate: 2021/7/12 下午6:22
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@Data
public class FlashDeliverOrderPatchUnifiedOrderFieldOutVirt extends BaseReceiveParam {

	private Long id;

	/**
	 * 订单号
	 */
	private String orderSn;

	/**
	 * 外部订单号
	 */
	private String orderSnOutTrade;

	/**
	 * 订单类型
	 */
	private String serviceName;

	/**
	 * 服务编码
	 */
	private String serviceNo;

	/**
	 * 项目ID
	 */
	private Long projectId;

	/**
	 * 项目
	 */
	private String projectName;

	/**
	 * 采购方-企业
	 */
	private Long purchaseVirtId;

	/**
	 * 采购方-企业
	 */
	private String purchaseVirtName;

	@ApiModelProperty("下单人Id")
	private Long   purchaseUserId;
	@ApiModelProperty("下单人姓名")
	private String purchaseUserName;
	@ApiModelProperty("下单人联系电话")
	private String purchasePhone;

	/**
	 * 销售方
	 */
	private Long saleId;

	/**
	 * 销售方
	 */
	private String saleName;

	/**
	 * 销售金额
	 */
	private BigDecimal amount;

	/**
	 * 成本金额
	 */
	private BigDecimal costAmount;

	/**
	 * 运费
	 */
	private BigDecimal transportAmount;

	/**
	 * 商户承担运费
	 */
	private BigDecimal transportMerchantAssumeAmount;

	/**
	 * 商品销售金额(统一订单)
	 */
	private BigDecimal goodsAmount;

	/**
	 * 商品成本金额(统一订单)
	 */
	private BigDecimal goodsCostAmount;

	/**
	 * 退品销售金额(统一订单)
	 */
	private BigDecimal refundGoodsAmount;

	/**
	 * 退品成本金额(统一订单)
	 */
	private BigDecimal refundGoodsCostAmount;

	/**
	 * 完成状态
	 */
	private Integer completState;

	/**
	 * 客户对账锁定:0-正常;1-销定
	 */
	private Integer orderLockingCustomer;

	/**
	 * 供应商对账锁定:0-正常;1-销定
	 */
	private Integer orderLockingSupplier;

	/**
	 * 供应商对账:1-已对账;2-未对账
	 */
	private Integer accountingStateSupplier;

	/**
	 * 客户对账:1-已对账;2-未对账
	 */
	private Integer accountingStateCustomer;

	/**
	 * 支付方式
	 */
	private Integer payType;

	/**
	 * 支付方式名称
	 */
	private String payTypeName;

	/**
	 * 付款状态
	 */
	private Integer payState;

	/**
	 * 支付状态名称
	 */
	private String payStateName;

	/**
	 * 订单状态
	 */
	private Integer orderState;

	/**
	 * 订单状态(中文名字-各系统的)
	 */
	private String orderStateName;

	/**
	 * 结算类型
	 */
	private Integer settlementType;

	/**
	 * 评价状态
	 */
	private Integer appraiseState;

	/**
	 * 来源渠道
	 */
	private Integer sourceChannel;

	/**
	 * 其他属性
	 */
	private String otherParams;

	/**
	 * 操作类型
	 */
	private String userType;

	/**
	 * 操作者
	 */
	private String userName;

	/**
	 * 2-未开票,1-已开票,3-部分开票
	 */
	private Integer invState;

	private Date createTime;

	private Long createUserId;

	private Date updateTime;

	private Long updateUserId;

	/**
	 * 订单类型:1-订单;2-退单;
	 */
	private Integer orderType;

	/**
	 * 退单号
	 */
	private String refundOrderSn;

//	private Long   recUserid;
//	private String recUsername;
//	private String recUserphone;
//	private String recAddress;

	@ApiModelProperty("收货人Id 必须")
	private Long   recUserId;
	@ApiModelProperty("收货人姓名 必须")
	private String recUserName;
	@ApiModelProperty("收货人手机号 必须")
	private String recUserPhone;
	@ApiModelProperty("收货人地址 必须")
	private String recAddress;

	/**
	 * 物流单号
	 */
	private String expressSn;

	/**
	 * 快递拼音简写
	 */
	private String express;

	/**
	 * 快递名称 eg:京东快递;韵达快运
	 */
	private String expressCompany;

	private String remarks;

	private String invoiceNumber;

	private String invoiceApplySn;

	/**
	 * 代客下单 代理操作人账号
	 */
	private String operAccount;

	/**
	 * 代客下单 代理操作人姓名
	 */
	private String operName;

	/**
	 * 订单 支付时间
	 */
	private Date payTime;

	/**
	 * 订单 发货时间
	 */
	private Date sendTime;

	/**
	 * 订单 完成时间
	 */
	private Date finishTime;

	/**
	 * 0-未回款;1-部分回款;2-全部回款
	 */
	private Integer backAccountStatus;

	private static final long serialVersionUID = 1L;
}
