Phase1AllocationSyncRequest.java 5.05 KB
package com.huaheng.api.erp.domain;

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

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

/**
 * ERP一阶段调拨单同步请求实体。
 *
 * <p>WMS在MES领料出库单作业完成后,通知ERP产生一阶段调拨单时使用。</p>
 */
@Data
public class Phase1AllocationSyncRequest 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 = "WMSRequisitionNoteCreate";
    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";

    /**
     * 唯一值,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;

        /**
         * 服务名,固定值:WMSRequisitionNoteCreate。
         */
        private String name = DEFAULT_SERVICE_NAME;

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

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

        private static final long serialVersionUID = 1L;

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

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

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

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

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

        private static final long serialVersionUID = 1L;

        /**
         * 调拨单单别。
         */
        private String indcocno;

        /**
         * 单据日期。
         */
        private String indcdocdt;

        /**
         * 调拨人员。
         */
        private String indc004;

        /**
         * 备注。
         */
        private String indc008;

        /**
         * 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 indd002;

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

        /**
         * 调拨申请数量。
         */
        private String indd103;

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

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

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

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

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

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

        /**
         * MES来源项次。
         */
        @JSONField(name = "source_seq")
        private String sourceSeq;
    }
}