package com.njzscloud.dispose.cst.order.pojo.result;

import com.baomidou.mybatisplus.annotation.TableField;
import com.njzscloud.common.mp.support.handler.j.JsonTypeHandler;
import com.njzscloud.dispose.cst.order.constant.CheckStatus;
import com.njzscloud.dispose.cst.order.constant.OrderCategory;
import com.njzscloud.dispose.cst.order.constant.OrderStatus;
import com.njzscloud.dispose.cst.order.constant.TransStatus;
import com.njzscloud.dispose.finance.constant.Unit;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 运输信息
 *
 * @author ljw
 */
@Data
public class OrderTransResult {

    private Long id;

    /**
     * 车次
     */
    private Integer trainNum;

    /**
     * 订单 Id
     */
    private Long orderId;

    /**
     * 运输状态；字典代码：trans_status，DaiPaiDan-->待派单、DaiJieDan-->待接单、YiJieDan-->已接单、YunShuZhong-->运输中、YiJinChang-->已进场、YiChuChang-->已出场、YiWanCheng-->已完成、YiQuXiao-->已取消
     */
    private TransStatus transStatus;

    /**
     * 车道名称
     */
    private String lane;

    /**
     * 指派司机时间
     */
    private LocalDateTime assignmentDriverTime;

    /**
     * 司机确认接单时间
     */
    private LocalDateTime driverConfirmTime;

    /**
     * 开始运输时间
     */
    private LocalDateTime transTime;

    /**
     * 完结时间
     */
    private LocalDateTime finishTime;

    /**
     * 看料员 Id；sys_user.id
     */
    private Long checkerId;

    /**
     * 勘料状态；字典代码：check_status，Wu-->无需勘料、YiKanLiao-->已勘料、WeiKanLiao-->未勘料
     */
    private CheckStatus checkStatus;

    /**
     * 勘料时间
     */
    private LocalDateTime checkTime;

    /**
     * 勘料照片
     */
    @TableField(typeHandler = JsonTypeHandler.class)
    private List<String> checkPhoto;

    /**
     * 勘料员备注
     */
    private String checkerMemo;

    /**
     * 司机 Id
     */
    private Long driverId;

    /**
     * 司机所属客户 Id；cst_customer.id
     */
    private Long driverCustomerId;

    /**
     * 司机所属用户 Id
     */
    private Long driverUserId;

    /**
     * 归属客户 Id；cst_customer.id
     */
    private Long truckCustomerId;

    /**
     * 归属组织
     */
    private Long truckOrgId;

    /**
     * 车辆 Id
     */
    private Long truckId;

    /**
     * 车牌号
     */
    private String truckLicensePlate;

    /**
     * 历史皮重
     */
    private Integer historyTareWeight;

    /**
     * 毛重；单位：千克
     */
    private Integer roughWeight;

    /**
     * 皮重；单位：千克
     */
    private Integer tareWeight;

    /**
     * 净重；单位：千克
     */
    private Integer settleWeight;

    /**
     * 运距；单位：米
     */
    private Integer transDistance;

    /**
     * 进场车头照片
     */
    private String inFrontPhoto;

    /**
     * 进场车斗照片
     */
    private String inBodyPhoto;

    /**
     * 出场车头照片
     */
    private String outFrontPhoto;

    /**
     * 出场车斗照片
     */
    private String outBodyPhoto;

    /**
     * 进场时间
     */
    private LocalDateTime inTime;

    /**
     * 出场时间
     */
    private LocalDateTime outTime;

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

    /**
     * 运输组织 Id；cst_org.id
     */
    private Long transOrgId;

    /**
     * 运输方客户 Id
     */
    private Long transCustomerId;

    /**
     * 指派清运公司时间
     */
    private LocalDateTime assignmentTransTime;

    /**
     * 订单类型；字典代码：order_category，HuiShouYuYue-->回收预约单、XiaoShouYuYue-->销售预约单、DuanBoRu-->短驳入、DuanBoChu-->短驳出
     */
    private OrderCategory orderCategory;

    /**
     * 订单状态；字典代码：order_status，YiYuYue-->已预约、JinXingZhong-->进行中、YiWanCheng-->已完成、YiQuXiao-->已取消
     */
    private OrderStatus orderStatus;

    /**
     * 下单人客户 Id；cst_customer.id
     */
    private Long customerId;

    /**
     * 下单时间
     */
    private LocalDateTime orderTime;

    /**
     * 产品 Id
     */
    private Long goodsId;

    /**
     * 产品名称
     */
    private String goodsName;

    /**
     * 图片
     */
    private String picture;

    /**
     * 产品编码
     */
    private String goodsSn;

    /**
     * 产品类型 Id
     */
    private Long goodsCategoryId;

    /**
     * 产品类型名称
     */
    private String goodsCategoryName;

    /**
     * 预估量
     */
    private Integer estimatedQuantity;

    /**
     * 单位
     */
    private Unit unit;

}


