package cn.estsh.i3plus.pojo.wms.modelbean;

import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import cn.estsh.i3plus.pojo.base.enumutil.WmsEnumUtil;
import cn.estsh.i3plus.pojo.wms.bean.WmsMoveSn;
import cn.estsh.i3plus.pojo.wms.bean.WmsStockSn;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;

import java.util.List;

/**
 * @Description : GCDC集装箱model
 * @Reference :
 * @Author : jimmy.zeng
 * @CreateDate : 2020-11-24 18:17
 * @Modify:
 **/
@Data
@Api("GCDC集装箱model")
public class WmsGcdcContainerModel extends BaseBean {

    @ApiParam("移库单号号")
    public String orderNo;

    @ApiParam("库存移动单号")
    public String moveNo;

    @ApiParam("条码")
    public String sn;

    @ApiParam(value = "ERP单号")
    private String erpSrcNo;

    @ApiParam(value = "客户编号")
    private String custNo;

    @ApiParam(value = "单据状态")
    public Integer orderStatus;

    @ApiParam(value = "库存移动单状态")
    public Integer itemStatus;

    @ApiParam(value = "包装编号")
    private String packageNo;

    @ApiParam("集装箱号")
    private String containerNo;

    @ApiParam("产地")
    private String productPlace;

    @ApiParam("托盘重量")
    private Double packageWeight;

    @ApiParam(value = "客户名称")
    public String custNameRdd;

    @ApiParam(value = "业务类型")
    public Integer busiType;

    @ApiParam(value = "交易类型代码")
    private String transTypeCode;

    @ApiParam(value = "物料号")
    public String partNo;

    @ApiParam(value = "物料号")
    public String partNameRdd;

    @ApiParam(value = "客户地址")
    private String custAddr;

    @ApiParam(value = "客户联系人")
    private String custOwner;

    @ApiParam(value = "客户电话号码")
    private String custTel;

    @ApiParam(value = "是否集装箱号")
    private Integer isContainer;

    @ApiParam("移库单号集合")
    private List<String> orderNoList;

    @ApiParam("库存移动单号集合")
    private List<String> moveNoList;

    @ApiParam("库存移动单条码集合")
    private List<WmsMoveSn> moveSnList;

    @ApiParam("库存条码集合")
    private List<WmsStockSn> stockSnList;

    @ApiParam(value = "仓库代码")
    private String whNo;

    @ApiParam(value = "存储区编号")
    private String zoneNo;

    @ApiParam(value = "库位代码")
    private String locateNo;

    @ApiParam(value = "客户发往地名称")
    private String flagName;

    @ApiParam(value = "客户发往地代码")
    private String flagNo;

    @ApiParam(value = "是否绑定发运")
    private Integer isBindingShip = WmsEnumUtil.TRUE_OR_FALSE.FALSE.getValue();

    @ApiParam("交易类型名称")
    private String transTypeName;

    public WmsGcdcContainerModel() {
    }

    public WmsGcdcContainerModel(Long id, String orderNo, String moveNo, String erpSrcNo, String custNo,
                                 Integer orderStatus, String createDatetime, String createUser) {
        this.id = id;
        this.orderNo = orderNo;
        this.moveNo = moveNo;
        this.erpSrcNo = erpSrcNo;
        this.custNo = custNo;
        this.orderStatus = orderStatus;
        this.createDatetime = createDatetime;
        this.createUser = createUser;
    }

    public WmsGcdcContainerModel(Long id, String orderNo,String transTypeCode, String moveNo, String erpSrcNo, String custNo,
                                 Integer itemStatus, String createDatetime, String createUser, Integer busiType) {
        this.id = id;
        this.orderNo = orderNo;
        this.transTypeCode = transTypeCode;
        this.moveNo = moveNo;
        this.erpSrcNo = erpSrcNo;
        this.custNo = custNo;
        this.itemStatus = itemStatus;
        this.createDatetime = createDatetime;
        this.createUser = createUser;
        this.busiType = busiType;
    }

    public WmsGcdcContainerModel(Long id, String orderNo, String packageNo, Double packageWeight, String custNo, String partNo, String flagNo) {
        this.id = id;
        this.orderNo = orderNo;
        this.packageNo = packageNo;
        this.packageWeight = packageWeight;
        this.custNo = custNo;
        this.partNo = partNo;
        this.flagNo = flagNo;
    }

    public WmsGcdcContainerModel(Long id, String organizeCode, Double packageWeight, String packageNo, String zoneNo,
                                 String locateNo, String whNo, String partNo, String partNameRdd, String custNo, String flagNo) {
        this.id = id;
        this.organizeCode = organizeCode;
        this.packageWeight = packageWeight;
        this.packageNo = packageNo;
        this.zoneNo = zoneNo;
        this.locateNo = locateNo;
        this.whNo = whNo;
        this.partNo = partNo;
        this.partNameRdd = partNameRdd;
        this.custNo = custNo;
        this.flagNo = flagNo;
    }
}
