Phase1AllocationPostRequest.java 5.39 KB
package com.huaheng.api.erp.domain;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * ERP2过账一阶段调拨单请求实体。
 *
 * <p>WMS回传ERP过账一阶段调拨单时使用。</p>
 */
@Data
public class Phase1AllocationPostRequest implements Serializable {

    private static final long serialVersionUID = 1L;

    public static final String DEFAULT_KEY = "f5458f5c0f9022db743a7c0710145903";
    public static final String DEFAULT_TYPE = "sync";
    public static final String DEFAULT_CLIENT_PROD = "WMS";
    public static final String DEFAULT_LANG = "zh_CN";
    public static final String DEFAULT_SERVICE_PROD = "T100";
    public static final String DEFAULT_SERVICE_NAME = "public.allocation.postupd";
    public static final String DEFAULT_SERVICE_IP = "10.1.1.200";
    public static final String SERVICE_ID_PROD = "topprd";
    public static final String SERVICE_ID_TEST = "toptst";
    public static final String DEFAULT_DATA_TYPE = "POST";

    /**
     * 唯一值,ERP接口固定值。
     */
    private String key = DEFAULT_KEY;

    /**
     * 请求类型,固定值:sync。
     */
    private String type = DEFAULT_TYPE;

    /**
     * 客户端产品,固定值:WMS。
     */
    private String prod = DEFAULT_CLIENT_PROD;

    /**
     * 客户端主机信息。
     */
    private Host host = new Host();

    /**
     * ERP服务信息。
     */
    private Service service = new Service();

    /**
     * 业务数据。
     */
    private DataKey datakey = new DataKey();

    /**
     * 客户端主机信息。
     */
    @Data
    public static class Host implements Serializable {

        private static final long serialVersionUID = 1L;

        /**
         * WMS客户端IP。
         */
        private String ip;

        /**
         * 语言别,固定值:zh_CN。
         */
        private String lang = DEFAULT_LANG;
    }

    /**
     * ERP服务调用信息。
     */
    @Data
    public static class Service implements Serializable {

        private static final long serialVersionUID = 1L;

        /**
         * 用户编号。
         */
        private String acct;

        /**
         * 时间戳,17位。例如:20201015123204361。
         */
        private String timestamp;

        /**
         * 服务端,固定值:T100。
         */
        private String prod = DEFAULT_SERVICE_PROD;

        /**
         * 服务名,固定值:public.allocation.postupd。
         */
        private String name = DEFAULT_SERVICE_NAME;

        /**
         * ERP服务端IP。
         */
        private String ip = DEFAULT_SERVICE_IP;

        /**
         * ERP环境产品。正式区:topprd,测试区:toptst。
         */
        private String id;
    }

    /**
     * ERP业务数据。
     */
    @Data
    public static class DataKey implements Serializable {

        private static final long serialVersionUID = 1L;

        /**
         * 企业代号。
         */
        @JSONField(name = "EntId")
        private String entId;

        /**
         * 营运据点。
         */
        @JSONField(name = "CompanyId")
        private String companyId;

        /**
         * 过账一阶段调拨单参数。
         */
        private Parameter parameter = new Parameter();
    }

    /**
     * 过账一阶段调拨单参数。
     */
    @Data
    public static class Parameter implements Serializable {

        private static final long serialVersionUID = 1L;

        /**
         * 业务操作,固定值:POST。
         */
        @JSONField(name = "data_type")
        private String dataType = DEFAULT_DATA_TYPE;

        /**
         * 调拨单主档。
         */
        private Master master = new Master();
    }

    /**
     * 调拨单主档。
     */
    @Data
    public static class Master implements Serializable {

        private static final long serialVersionUID = 1L;

        /**
         * ERP调拨单号。
         */
        private String indcdocno;

        /**
         * 过账日期。
         */
        private String indc022;

        /**
         * WMS单号。
         */
        @JSONField(name = "source_no")
        private String sourceNo;

        /**
         * 调拨单明细。
         */
        private List<Detail> detail;
    }

    /**
     * 调拨单明细。
     */
    @Data
    public static class Detail implements Serializable {

        private static final long serialVersionUID = 1L;

        /**
         * 项次。
         */
        private String inddseq;

        /**
         * 料号。
         */
        private String indd002;

        /**
         * 单位。
         */
        private String indd006;

        /**
         * 实际数量。
         */
        private BigDecimal indd021;

        /**
         * 拨出库位。
         */
        private String indd022;

        /**
         * 拨出储位。
         */
        private String indd023;

        /**
         * 拨出批号。
         */
        private String indd024;

        /**
         * 拨入库位。
         */
        private String indd032;

        /**
         * 拨入储位。
         */
        private String indd033;

        /**
         * 拨入批号。
         */
        private String indd034;

        /**
         * 调拨理由。
         */
        private String indd151;
    }
}