package com.pj.api.dto;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.Date;
import java.util.List;

/**
 * @Author Mechrevo
 * @Date 2023 09 01 20 31
 **/
public class TradeSettlementDto {
    private Long id;

    /**
     * 航通主键
     */
    private String platSeqNo;

    /**
     * 申报单编号
     */
    private String declareId;

    /**
     * 1-边民，2-商铺业主或其代理人，3-合作社代表，4-互助组代表
     */
    private String declareType;

    /**
     * 申报人姓名
     */
    private String declareName;

    /**
     * 身份证号码
     */
    private String idno;

    /**
     * 商铺编码
     */
    private String shopNo;

    /**
     * 商铺名称
     */
    private String shopName;

    /**
     * 申报人类别为3、4 时互助组/合作社备案编号
     */
    private String orgPutrecNo;

    /**
     * 申报人类别为3、4 时互助组/合租社名称
     */
    private String orgName;

    /**
     * 申报人类别为4 时边民合作社社会统一信用代码
     */
    private String orgScc;

    /**
     *  运输工具名称
     */
    private String veNo;

    /**
     * 业务模式, 进出口标志为进口时，01 区内交易、02 落地加工、03 原装提离。进出口标 志 为 出 口时，04：直接出口，05：出口销售。
     */
    private String btrnbBizModecd;

    /**
     * 商品流向, 进出口标志为进口时，必填，01-二次销售；02-生活自用；03-落地加工；
     */
    @JsonProperty("gFlow")
    private String gFlow;

    /**
     * 进出口标志：I进口 E 出口
     */
    @JsonProperty("iEFlag")
    private String iEFlag;

    /**
     * 监管场所编号
     */
    private String fieldCode;

    /**
     * 监管场所名称
     */
    private String fieldName;

    /**
     * 申报口岸代码
     */
    private String customsCode;

    /**
     * 1-是、0-否
     */
    private String carPool;

    /**
     * 总金额
     */
    private Double sumAmt;

    /**
     * 总毛重
     */
    private Double sumGrossWt;

    /**
     * 总净重
     */
    private Double sumNetWt;

    /**
     * 运输方式
     */
    private String trafMode;

    /**
     * 币制
     */
    private String currCode;

    /**
     * 件数，正整数
     */
    private Long packNo;

    /**
     * 申 报 时 间 ：yyyy-MM-dd HH:mm:ss
     */
    private String declTime;

    /**
     * 提运单号
     */
    private String billNo;

    /**
     * 运输工具航次(班)号
     */
    private String voyageNo;

    /**
     * 商品名称，多个用英文逗号分割
     */
    private String goodsNames;

    /**
     * 购买边民列表[     { "platSeqNo": "进出境申报单预申报编号",        "borderName": "边民姓名", "idno": "身份证号",        "borderPutrecNo": "边民备案编号",        "settleBillNo": "结算单号", "buyAmount": "申报金额", "netWt": "净重", "grossWt": "毛重",        "buyQty": "申报数量", "buyQty1": "第一数量",        "buyQty2": "第二数量", "preIeportNo": "进出口预申报单号"     }]
     */
    private String bordersList;

    /**
     * 边民购买商品列表[     { "platSeqNo": "进出境申报单预申报编号",        "borderName": "边民姓名",        "idno": "身份证号",           "borderPutrecNo": "边民备案编号",        "buyAmount": "申报金额",        "netWt": "净重",          "grossWt": "毛重",        "buyQty": "申报数量",        "buyQty1": "第一数量",        "buyQty2": "第二数量",        "preIeportNo": "进出口预申报单号",        "codeTs": "商品编码",        "goodsName": "商品名称"      }]
     */
    private String borderBuyGoodsList;

    /**
     * 商铺卖货物列表[       { "platSeqNo": "进出境申报单预申报编号",           "gNo": "预申报编号", "codeTs": "商品编码",           "gName": "商品名称", "gModel": "规格型号",           "storageEnvm": "储存条件：常温 1：冷藏，2：冷冻：3",            "useTo": "用途：01 食用、02 工业用、03 药用、04 种用、05 饲用、06 其他",           "grossWt": "毛重",            "netWt": "净重",            "originCountry": "产销国",            "gQty": "货物数量",            "qty1": "第一数量",            "qty2": "第二数量",            "gUnit": "计量单位",            "unit1": "第一计量单位",            "unit2": "第二计量单位",            "declPrice": "单价",            "declTotal": "总价"       }]
     */
    private String sellGoodsList;


    /**
     * 完成情况
     */
    private Integer finishStatus;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     *
     */
    private String preNo;

    private List<BordersListDto> bordersListDtoList ;
    private List<BorderBuyGoodsListDto> borderBuyGoodsListDtoList;

    public TradeSettlementDto(Long id, String platSeqNo, String declareId, String declareType, String declareName, String idno, String shopNo, String shopName, String orgPutrecNo, String orgName, String orgScc, String veNo, String btrnbBizModecd, String gFlow, String iEFlag, String fieldCode, String fieldName, String customsCode, String carPool, Double sumAmt, Double sumGrossWt, Double sumNetWt, String trafMode, String currCode, Long packNo, String declTime, String billNo, String voyageNo, String goodsNames, String bordersList, String borderBuyGoodsList, String sellGoodsList, Integer finishStatus, Date createTime, String preNo, List<BordersListDto> bordersListDtoList, List<BorderBuyGoodsListDto> borderBuyGoodsListDtoList) {
        this.id = id;
        this.platSeqNo = platSeqNo;
        this.declareId = declareId;
        this.declareType = declareType;
        this.declareName = declareName;
        this.idno = idno;
        this.shopNo = shopNo;
        this.shopName = shopName;
        this.orgPutrecNo = orgPutrecNo;
        this.orgName = orgName;
        this.orgScc = orgScc;
        this.veNo = veNo;
        this.btrnbBizModecd = btrnbBizModecd;
        this.gFlow = gFlow;
        this.iEFlag = iEFlag;
        this.fieldCode = fieldCode;
        this.fieldName = fieldName;
        this.customsCode = customsCode;
        this.carPool = carPool;
        this.sumAmt = sumAmt;
        this.sumGrossWt = sumGrossWt;
        this.sumNetWt = sumNetWt;
        this.trafMode = trafMode;
        this.currCode = currCode;
        this.packNo = packNo;
        this.declTime = declTime;
        this.billNo = billNo;
        this.voyageNo = voyageNo;
        this.goodsNames = goodsNames;
        this.bordersList = bordersList;
        this.borderBuyGoodsList = borderBuyGoodsList;
        this.sellGoodsList = sellGoodsList;
        this.finishStatus = finishStatus;
        this.createTime = createTime;
        this.preNo = preNo;
        this.bordersListDtoList = bordersListDtoList;
        this.borderBuyGoodsListDtoList = borderBuyGoodsListDtoList;
    }

    public List<BordersListDto> getBordersListDtoList() {
        return bordersListDtoList;
    }

    public void setBordersListDtoList(List<BordersListDto> bordersListDtoList) {
        this.bordersListDtoList = bordersListDtoList;
    }

    public List<BorderBuyGoodsListDto> getBorderBuyGoodsListDtoList() {
        return borderBuyGoodsListDtoList;
    }

    public void setBorderBuyGoodsListDtoList(List<BorderBuyGoodsListDto> borderBuyGoodsListDtoList) {
        this.borderBuyGoodsListDtoList = borderBuyGoodsListDtoList;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getPlatSeqNo() {
        return platSeqNo;
    }

    public void setPlatSeqNo(String platSeqNo) {
        this.platSeqNo = platSeqNo;
    }

    public String getDeclareId() {
        return declareId;
    }

    public void setDeclareId(String declareId) {
        this.declareId = declareId;
    }

    public String getDeclareType() {
        return declareType;
    }

    public void setDeclareType(String declareType) {
        this.declareType = declareType;
    }

    public String getDeclareName() {
        return declareName;
    }

    public void setDeclareName(String declareName) {
        this.declareName = declareName;
    }

    public String getIdno() {
        return idno;
    }

    public void setIdno(String idno) {
        this.idno = idno;
    }

    public String getShopNo() {
        return shopNo;
    }

    public void setShopNo(String shopNo) {
        this.shopNo = shopNo;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public String getOrgPutrecNo() {
        return orgPutrecNo;
    }

    public void setOrgPutrecNo(String orgPutrecNo) {
        this.orgPutrecNo = orgPutrecNo;
    }

    public String getOrgName() {
        return orgName;
    }

    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }

    public String getOrgScc() {
        return orgScc;
    }

    public void setOrgScc(String orgScc) {
        this.orgScc = orgScc;
    }

    public String getVeNo() {
        return veNo;
    }

    public void setVeNo(String veNo) {
        this.veNo = veNo;
    }

    public String getBtrnbBizModecd() {
        return btrnbBizModecd;
    }

    public void setBtrnbBizModecd(String btrnbBizModecd) {
        this.btrnbBizModecd = btrnbBizModecd;
    }

    public String getgFlow() {
        return gFlow;
    }

    public void setgFlow(String gFlow) {
        this.gFlow = gFlow;
    }

    public String getiEFlag() {
        return iEFlag;
    }

    public void setiEFlag(String iEFlag) {
        this.iEFlag = iEFlag;
    }

    public String getFieldCode() {
        return fieldCode;
    }

    public void setFieldCode(String fieldCode) {
        this.fieldCode = fieldCode;
    }

    public String getFieldName() {
        return fieldName;
    }

    public void setFieldName(String fieldName) {
        this.fieldName = fieldName;
    }

    public String getCustomsCode() {
        return customsCode;
    }

    public void setCustomsCode(String customsCode) {
        this.customsCode = customsCode;
    }

    public String getCarPool() {
        return carPool;
    }

    public void setCarPool(String carPool) {
        this.carPool = carPool;
    }

    public Double getSumAmt() {
        return sumAmt;
    }

    public void setSumAmt(Double sumAmt) {
        this.sumAmt = sumAmt;
    }

    public Double getSumGrossWt() {
        return sumGrossWt;
    }

    public void setSumGrossWt(Double sumGrossWt) {
        this.sumGrossWt = sumGrossWt;
    }

    public Double getSumNetWt() {
        return sumNetWt;
    }

    public void setSumNetWt(Double sumNetWt) {
        this.sumNetWt = sumNetWt;
    }

    public String getTrafMode() {
        return trafMode;
    }

    public void setTrafMode(String trafMode) {
        this.trafMode = trafMode;
    }

    public String getCurrCode() {
        return currCode;
    }

    public void setCurrCode(String currCode) {
        this.currCode = currCode;
    }

    public Long getPackNo() {
        return packNo;
    }

    public void setPackNo(Long packNo) {
        this.packNo = packNo;
    }

    public String getDeclTime() {
        return declTime;
    }

    public void setDeclTime(String declTime) {
        this.declTime = declTime;
    }

    public String getBillNo() {
        return billNo;
    }

    public void setBillNo(String billNo) {
        this.billNo = billNo;
    }

    public String getVoyageNo() {
        return voyageNo;
    }

    public void setVoyageNo(String voyageNo) {
        this.voyageNo = voyageNo;
    }

    public String getGoodsNames() {
        return goodsNames;
    }

    public void setGoodsNames(String goodsNames) {
        this.goodsNames = goodsNames;
    }

    public String getBordersList() {
        return bordersList;
    }

    public void setBordersList(String bordersList) {
        this.bordersList = bordersList;
    }

    public String getBorderBuyGoodsList() {
        return borderBuyGoodsList;
    }

    public void setBorderBuyGoodsList(String borderBuyGoodsList) {
        this.borderBuyGoodsList = borderBuyGoodsList;
    }

    public String getSellGoodsList() {
        return sellGoodsList;
    }

    public void setSellGoodsList(String sellGoodsList) {
        this.sellGoodsList = sellGoodsList;
    }

    public Integer getFinishStatus() {
        return finishStatus;
    }

    public void setFinishStatus(Integer finishStatus) {
        this.finishStatus = finishStatus;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getPreNo() {
        return preNo;
    }

    public void setPreNo(String preNo) {
        this.preNo = preNo;
    }

    public TradeSettlementDto(Long id, String platSeqNo, String declareId, String declareType, String declareName, String idno, String shopNo, String shopName, String orgPutrecNo, String orgName, String orgScc, String veNo, String btrnbBizModecd, String gFlow, String iEFlag, String fieldCode, String fieldName, String customsCode, String carPool, Double sumAmt, Double sumGrossWt, Double sumNetWt, String trafMode, String currCode, Long packNo, String declTime, String billNo, String voyageNo, String goodsNames, String bordersList, String borderBuyGoodsList, String sellGoodsList, Integer finishStatus, Date createTime, String preNo) {
        this.id = id;
        this.platSeqNo = platSeqNo;
        this.declareId = declareId;
        this.declareType = declareType;
        this.declareName = declareName;
        this.idno = idno;
        this.shopNo = shopNo;
        this.shopName = shopName;
        this.orgPutrecNo = orgPutrecNo;
        this.orgName = orgName;
        this.orgScc = orgScc;
        this.veNo = veNo;
        this.btrnbBizModecd = btrnbBizModecd;
        this.gFlow = gFlow;
        this.iEFlag = iEFlag;
        this.fieldCode = fieldCode;
        this.fieldName = fieldName;
        this.customsCode = customsCode;
        this.carPool = carPool;
        this.sumAmt = sumAmt;
        this.sumGrossWt = sumGrossWt;
        this.sumNetWt = sumNetWt;
        this.trafMode = trafMode;
        this.currCode = currCode;
        this.packNo = packNo;
        this.declTime = declTime;
        this.billNo = billNo;
        this.voyageNo = voyageNo;
        this.goodsNames = goodsNames;
        this.bordersList = bordersList;
        this.borderBuyGoodsList = borderBuyGoodsList;
        this.sellGoodsList = sellGoodsList;
        this.finishStatus = finishStatus;
        this.createTime = createTime;
        this.preNo = preNo;
    }

    public TradeSettlementDto() {
    }
}
