自动化立体仓库 - WMS系统
zyx
2024-04-25 c5e3523a7d83ae4d71493fb31327781099e2bbb3
ERP物料同步,单据同步
2个文件已添加
7个文件已修改
503 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/MatSyncParam.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/OrderProdSyncParam.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/OrderSyncParam.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/OpenService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 183 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/controller/LicenseCreatorController.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/license/CustomLicenseManager.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -156,27 +156,9 @@
        if (Cools.isEmpty(param)) {
            return R.parse(BaseRes.PARAM);
        }
        MatSyncParam matSyncParam = openService.syncMat(param);
        if (Cools.isEmpty(matSyncParam.getMats()) || matSyncParam.getMats().size() <=0 ) {
            return R.error("数据异常");
        }
        StringBuilder Msg= new StringBuilder("原因:");
        int MsgT=0,MsgF=0;
        for (MatSyncParam.Mats matParam:matSyncParam.getMats()){
            if (matParam.isType()){
                MsgT++;
            }else {
                MsgF++;
                Msg.append(matParam.getMatnr()).append(":").append(matParam.getMemo()).append(";");
            }
        }
        if (MsgF==0){
            return R.ok("成功接收物料:"+MsgT+"个");
        }else if (MsgT==0){
            return R.ok("接收物料失败:"+MsgF+"个;"+Msg);
        }else {
            return R.ok("成功接收物料:"+MsgT+"个;"+"接收物料失败:"+MsgF+"个;"+Msg);
        }
        openService.syncMat(param);
        return R.ok("更新成功");
    }
@@ -299,23 +281,23 @@
    @PostMapping("/order/pakin/default/v1")
    @AppAuth(memo = "生成入库单据")
    public synchronized R orderPakin(@RequestHeader(required = false) String appkey,
                                        @RequestBody(required = false) Map<String, Object> param,
                                        @RequestBody(required = true) OrderSyncParam param,
                                        HttpServletRequest request){
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
            return R.parse(BaseRes.PARAM);
        }
        openService.syncOrder(param,true);
        openService.syncOrder(param,true,"采购入库单");
        return R.ok("入库单据接受成功");
    }
    @PostMapping("/order/pakout/default/v1")
    @AppAuth(memo = "生成出库单据")
    @AppAuth(memo = "同步工单单据")
    public synchronized R orderPakout(@RequestHeader(required = false) String appkey,
                                     @RequestBody(required = false) Map<String, Object> param,
                                     @RequestBody(required = false) OrderProdSyncParam param,
                                     HttpServletRequest request){
        auth(appkey, param, request);
@@ -323,7 +305,9 @@
            return R.parse(BaseRes.PARAM);
        }
        openService.syncOrder(param,false);
        openService.syncOrder(mappingPakInOrderParam(param),true,"生产入库单");
        openService.syncOrder(mappingPakOutOrderParam(param),false,"生产出库单");
        return R.ok("出库单据接受成功");
@@ -349,4 +333,54 @@
    }
    private OrderSyncParam mappingPakInOrderParam(OrderProdSyncParam param){
        //生成单据主体
        OrderSyncParam orderSyncParam = new OrderSyncParam();
        orderSyncParam.setCPOID(param.getOrderNoT());
        orderSyncParam.setDdate(param.getOrderTime());
        orderSyncParam.setCMemo("");
        //生成单据明细
        OrderSyncParam.OrderDetl orderDetl = new OrderSyncParam.OrderDetl();
        orderDetl.setCInvCode(param.getCInvCode());
        orderDetl.setIQuantity(param.getIQuantity());
        orderDetl.setCsocode(param.getCsocode());
        orderDetl.setBFree1(null);
        //添加单据明细到单据主体
        List<OrderSyncParam.OrderDetl> orderDetls = new ArrayList<>();
        orderDetls.add(orderDetl);
        orderSyncParam.setChildren(orderDetls);
        return orderSyncParam;
    }
    private OrderSyncParam mappingPakOutOrderParam(OrderProdSyncParam param){
        OrderSyncParam orderSyncParam = new OrderSyncParam();
        List<OrderProdSyncParam.ChildInfo> child = param.getChild();
        //生成单据主体
        orderSyncParam.setCPOID(child.get(0).getOrderNoT());
        orderSyncParam.setDdate(param.getOrderTime());
        orderSyncParam.setCMemo("");
        //生成单据明细
        List<OrderSyncParam.OrderDetl> orderDetls = new ArrayList<>();
        for(OrderProdSyncParam.ChildInfo childInfo : child){
            OrderSyncParam.OrderDetl orderDetl = new OrderSyncParam.OrderDetl();
            orderDetl.setCInvCode(childInfo.getCInvCode());
            orderDetl.setIQuantity(childInfo.getIQuantity());
            orderDetl.setCsocode(param.getCsocode());
            orderDetl.setBFree1(childInfo.getBFree1());
            orderDetl.setID(childInfo.getIDs() + "");
            orderDetls.add(orderDetl);
        }
        orderSyncParam.setChildren(orderDetls);
        return orderSyncParam;
    }
}
src/main/java/com/zy/asrs/entity/param/MatSyncParam.java
@@ -2,8 +2,6 @@
import lombok.Data;
import java.util.List;
/**
 * 商品同步接口,参数
 * Created on 2022/6/22
@@ -11,54 +9,31 @@
@Data
public class MatSyncParam {
    public List<Mats> mats;
    @Data
    public static class Mats{
        /**
         * 接收成功:true
         * 接收失败:false
         */
        private boolean type=true;
        /**
         * 商品编号
         */
        private String matnr;
        /**
         * 商品名称
         */
        private String maktx;
        /**
         * 规格
         */
        private String specs;
        /**
         * 型号
         */
        private String model;
        /**
         * 颜色
         */
        private  String color;
        /**
         * 单位
         */
        private String unit;
        /**
         * 单位量
         */
        private Double units;
        /**
         * 备注
         */
        private String memo;
    }
    //存货编码
    String cInvCode;
    //存货名称
    String cInvName;
    //单位组类型编码/名称
    String iGroupType;
    //存货大类编码
    String cInvCCode;
    //规格型号
    String cInvStd;
    //是否批次管理
    Integer bInvBatch;
    //主计量单位编码/名称
    String cComUnitCode;
    //采购单位编码/采购单位名称
    String cComUnitName;
    //采购单位编码
    String PuCote;
    //生产计量单位名称
    String proname;
    //生产计量单位编码
    String procode;
    //自由项1(规格)
    String bFree1;
    //状态
    Integer states;
}
src/main/java/com/zy/asrs/entity/param/OrderProdSyncParam.java
New file
@@ -0,0 +1,49 @@
package com.zy.asrs.entity.param;
import lombok.Data;
import java.util.List;
@Data
public class OrderProdSyncParam {
    //工单号
    private String orderNo;
    //工单号T
    private String orderNoT;
    //开单日期
    private String orderTime;
    //单据行号
    private String ivouchrowno;
    //产品编码
    private String cInvCode;
    //生产订单号
    private String csocode;
    //生产数量
    private Double iQuantity;
    //状态
    private Integer status;
    //子件信息
    private List<ChildInfo> child;
    /**
     * 用于生成出库单据
     */
    @Data
    public static class ChildInfo{
        //ID
        private Integer ID;
        //IDs
        private Integer IDs;
        //工单号T
        private String orderNoT;
        //物料编码
        private String cInvCode;
        //数量
        private Double iQuantity;
        //规格(自由项1)
        private String bFree1;
    }
}
src/main/java/com/zy/asrs/entity/param/OrderSyncParam.java
New file
@@ -0,0 +1,67 @@
package com.zy.asrs.entity.param;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class OrderSyncParam {
    //采购订单编号
    private String cPOID;
    //供应商编码
    private String cVenCode;
    //订单所有人
    private String cPersonCode;
    //交货方式
    private String cSCCode;
    //币种
    private String cexch_name;
    //汇率
    private Double nflat;
    //订单备注
    private String cMemo;
    //状态
    private Integer states;
    //单据日期
    private String ddate;
    private List<OrderDetl> children;
    @Data
    public static class OrderDetl{
        //采购订单行号
        private String ivouchrowno;
        //物料编码
        private String cInvCode;
        //需求时间
        private Date dArriveDate;
        //需求数量
        private Double iQuantity;
        //含税单价
        private Double iTaxPrice;
        //税率
        private Double iPerTaxRate;
        //行备注
        private String cbMemo;
        //件数
        private Double iNum;
        //单据来源
        private String cSource;
        //生产订单号(销售订单号)
        private String cDefine22;
        //行状态
        private String Rstates;
        //销售订单号 (参照销售订单生成)
        private String csocode;
        //规格(自由项1)
        private String bFree1;
        //采购订单子表标识
        private String ID;
        //销售订单子表标识
        private String iorderdid;
    }
}
src/main/java/com/zy/asrs/service/OpenService.java
@@ -1,12 +1,12 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.Mat;
import com.zy.asrs.entity.ViewWorkInBean;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.entity.result.OpenOrderCompeteResult;
import com.zy.asrs.entity.result.StockVo;
import java.util.List;
import java.util.Map;
public interface OpenService {
@@ -44,7 +44,7 @@
     * 同步商品信息
     * @param param
     */
    MatSyncParam syncMat(MatSyncParam param);
    Mat syncMat(MatSyncParam param);
    /**
     * 入库通知档生成
@@ -71,7 +71,7 @@
     * 生成出入库单据
     * @param param
     */
    boolean syncOrder(Map<String, Object> param, boolean pakin);
    boolean syncOrder(OrderSyncParam param, boolean pakin, String docName);
    /**
     * 生成出入库单据
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -25,7 +25,6 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * Created by vincent on 2022/4/9
@@ -448,51 +447,57 @@
    }
    @Override
    @Transactional
    public MatSyncParam syncMat(MatSyncParam param) {
        if (Cools.isEmpty(param.getMats()) || param.getMats().size() <=0 ) {
    public Mat syncMat(MatSyncParam param) {
        if (Cools.isEmpty(param.getCInvCode()) ) {
            throw new CoolException("商品数据为空");
        }
        MatSyncParam matSyncParam = new MatSyncParam();
        ArrayList<MatSyncParam.Mats> matParams = new ArrayList<>();
        Tag tag = tagService.selectByName("全部", 1);
        for (MatSyncParam.Mats matParam : param.getMats()){
            Date date = new Date();
            Mat mat = matService.selectByMatnr(matParam.getMatnr());
            if (Cools.isEmpty(mat)) {
                Mat matNew = new Mat();
                matNew.setTagId(tag.getId());
                matNew.setMatnr(matParam.getMatnr());//物料编码
                matNew.setMaktx(matParam.getMaktx());//物料名称
                matNew.setSpecs(matParam.getSpecs());//规格
                matNew.setModel(matParam.getModel());//型号
                matNew.setColor(matParam.getColor());//颜色
                matNew.setUnit(matParam.getUnit());//单位
                matNew.setMemo(matParam.getMemo());//备注
                matNew.setCreateBy(9999L);//9999表示erp下发
                matNew.setCreateTime(date);
                matNew.setUpdateBy(9999L);//9999表示erp下发
                matNew.setUpdateTime(date);
                if (matService.insert(matNew)) {
                    callApiLogSave(matParam, "/open/asrs/mat/v1", "接收ERP下发商品信息成功!添加商品信息成功!", true);
                    matParam.setType(true);
                } else {
                    callApiLogSave(matParam, "/open/asrs/mat/v1", "添加ERP下发商品信息失败!!!状态异常!!!", false);
                    matParam.setType(false);
                    matParam.setMemo("添加ERP下发商品信息失败!");
                }
        Mat mat = matService.selectByMatnr(param.getCInvCCode());
        if (Cools.isEmpty(mat)) {
            mat = new Mat();
            mat.setTagId(tag.getId());
            syncMat(mat,param);
            if (matService.insert(mat)) {
                callApiLogSave(mat, "/open/asrs/mat/v1", "接收ERP下发商品信息成功!添加商品信息成功!", true);
            } else {
                callApiLogSave(matParam, "/open/asrs/mat/v1", "接收ERP下发商品信息失败!!!商品已存在!!!", false);
                matParam.setType(false);
                matParam.setMemo("商品已存在!");
                callApiLogSave(mat, "/open/asrs/mat/v1", "添加ERP下发商品信息失败!!!状态异常!!!", false);
                mat.setMemo("添加ERP下发商品信息失败!");
            }
            matParams.add(matParam);
        } else {
            mat.setTagId(tag.getId());
            syncMat(mat,param);
            if (matService.updateById(mat)) {
                callApiLogSave(mat, "/open/asrs/mat/v1", "接收ERP下发商品信息成功!添加商品信息成功!", true);
            } else {
                callApiLogSave(mat, "/open/asrs/mat/v1", "添加ERP下发商品信息失败!!!状态异常!!!", false);
                mat.setMemo("添加ERP下发商品信息失败!");
            }
        }
        matSyncParam.setMats(matParams);
        return matSyncParam;
        return mat;
    }
    public void callApiLogSave(MatSyncParam.Mats matParam, String tableName, String response, Boolean bool) {
    private void syncMat(Mat mat, MatSyncParam param){
        Date date = new Date();
        mat.setMatnr(param.getCInvCCode());//物料编码
        mat.setMaktx(param.getCInvName());//物料名称
        mat.setSpecs(param.getCInvStd());//规格
        mat.setUnit(param.getCComUnitName());
        mat.setBeBatch(param.getBInvBatch());
        mat.setStatus(param.getStates());
        mat.setCreateBy(9999L);//9999表示erp下发
        mat.setCreateTime(date);
        mat.setUpdateBy(9999L);//9999表示erp下发
        mat.setUpdateTime(date);
    }
    public void callApiLogSave(Mat mat, String tableName, String response, Boolean bool) {
        apiLogService.save("ERP下发商品信息", tableName, "null", "10.10.10.1",
                "物料编码:" + matParam.getMatnr() + "、物料名称:" + matParam.getMaktx() + "、规格:" + matParam.getSpecs() + "、备注:" + matParam.getMemo(),
                "物料编码:" + mat.getMatnr() + "、物料名称:" + mat.getMaktx() + "、规格:" + mat.getSpecs() + "、备注:" + mat.getMemo(),
                response, bool);
    }
@@ -691,22 +696,25 @@
    }
    @Transactional
    public boolean syncOrder(Map<String, Object> param, boolean pakin) {
        if(Cools.isEmpty(param) || Cools.isEmpty(param.get("orderDetails"))){
    public boolean syncOrder(OrderSyncParam param, boolean pakin, String docName) {
        if(Cools.isEmpty(param) || Cools.isEmpty(param.getChildren())){
            callApiLogSave(param, "/order/pakout/default/v1", "接受单据失败,单据参数为空或者单据详情为空,无法生成单据信息", false);
            throw new CoolException("单据参数为空或者单据详情为空,无法生成单据信息");
        }
        if(!Cools.isEmpty(orderService.selectByNo(param.get("id").toString()))){
        if(!Cools.isEmpty(orderService.selectByNo(param.getCPOID()))){
            callApiLogSave(param, "/order/pakout/default/v1", "接受单据失败,该单据已存在,无法生成单据信息", false);
            throw new CoolException("该单据已存在,无法生成单据信息");
        }
        Date now = new Date();
        Order order = orderMapping(param,now,pakin);
        Order order = orderMapping(param,now,pakin,docName);
        orderService.insert(order);
        List<Map<String, Object>> orderDetails = (List<Map<String, Object>>) param.get("orderDetails");
        orderDetails.forEach(odParam -> {
            OrderDetl od = orderDetlMapping(order,odParam,now);
            orderDetlService.insert(od);
        param.getChildren().forEach(od -> {
            OrderDetl orderDetl = orderDetlMapping(order,od,now);
            orderDetlService.insert(orderDetl);
        });
        callApiLogSave(param, "/order/pakout/default/v1", "接受单据成功", true);
        return true;
    }
@@ -728,43 +736,21 @@
        return true;
    }
    private Order orderMapping(Map<String, Object> param, Date now, boolean pakin){
    private Order orderMapping(OrderSyncParam param, Date now, boolean pakin, String docName){
        Order order = new Order();
        //uuid
        order.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
        //核算主体
        //order.setItemName(param.get("account").toString());
        order.setItemName(toString(param.get("account")));
        //单据唯一表示
        //order.setOrderNo(param.get("id").toString());
        order.setOrderNo(toString(param.get("id")));
        //业务类型
        //order.setDefNumber(param.get("cBusType").toString());
        order.setDefNumber(toString(param.get("cVouchType")));
        order.setOrderNo(param.getCPOID());
        //单据类型
        DocType docType = docTypeService.selectOrAdd(param.get("cBusType").toString(), pakin);
        DocType docType = docTypeService.selectOrAdd(docName, pakin);
        order.setDocType(docType.getDocId());
        //单据日期
        //order.setOrderTime(param.get("dDate").toString());
        order.setOrderTime(toString(param.get("dDate")));
        //供应商/客户编码
        //order.setCstmrName(param.get("ks").toString());
        order.setCstmrName(toString(param.get("ks")));
        //仓库
        //order.setTel(param.get("cWhName").toString());
        order.setTel(toString(param.get("cWhName")));
        //出入库类别
        //setOperMemb(param.get("cRdName").toString());
        order.setOperMemb(toString(param.get("cRdName")));
        //部门
        //order.setSalesman(param.get("cDepCode").toString());
        order.setSalesman(toString(param.get("cDepCode")));
        //备注
        //order.setMemo(param.get("cMemo").toString());
        order.setMemo(toString(param.get("cMemo")));
        order.setOrderTime(param.getDdate());
        order.setMemo(param.getCMemo());
        //制单人
        //order.setShipCode(param.get("cMaker").toString());
        order.setShipCode(toString(param.get("cMaker")));
        order.setShipCode(param.getCPersonCode());
        order.setCreateTime(now);
        order.setUpdateTime(now);
@@ -776,40 +762,36 @@
        return order;
    }
    private OrderDetl orderDetlMapping(Order order, Map<String, Object> odParam, Date now){
    private OrderDetl orderDetlMapping(Order order, OrderSyncParam.OrderDetl odParam, Date now){
        Mat mat = matService.selectByMatnr(odParam.getCInvCode());
        if(Cools.isEmpty(mat)){
            throw new CoolException("存货编码:" + odParam.getCInvCode() + "不存在,请先同步存货档案");
        }
        OrderDetl od = new OrderDetl();
        od.setOrderId(order.getId());
        od.setOrderNo(order.getOrderNo());
        //行唯一标识
        //od.setItemNum(odParam.get("autoId").toString());
        od.setItemNum(toString(odParam.get("autoId")));
        //采购订单行号
        od.setItemNum(odParam.getIvouchrowno());
        //存货编码
        //od.setMatnr(odParam.get("cInvCode").toString());
        od.setMatnr(toString(odParam.get("cInvCode")));
        od.setMatnr(mat.getMatnr());
        //存货名称
        //od.setMaktx(odParam.get("cInvName").toString());
        od.setMaktx(toString(odParam.get("cInvName")));
        od.setMaktx(mat.getMaktx());
        //规格型号
        //od.setSpecs(odParam.get("cInvStd").toString());
        od.setSpecs(toString(odParam.get("cInvStd")));
        od.setSpecs(mat.getSpecs());
        //计量单位
        //od.setUnit(odParam.get("cComUnitName").toString());
        od.setUnit(toString(odParam.get("cComUnitName")));
        od.setUnit(mat.getUnit());
        //数量
        od.setAnfme(Double.parseDouble(odParam.get("iQuantity").toString()));
        //od.setAnfme(toString(odParam.get("iQuantity")));
        //行号
        //od.setBrand(odParam.get("irowno").toString());
        //od.setBrand(toString(odParam.get("irowno")));
        od.setManu(toString(odParam.get("irowno")));
        od.setAnfme(odParam.getIQuantity());
        //销售订单号
        //od.setColor(odParam.get("csocode").toString());
        //od.setColor(toString(odParam.get("csocode")));
        od.setThreeCode(toString(odParam.get("csocode")));
        //销售订单行号
        //od.setOrigin(odParam.get("isoseq").toString());
        //od.setOrigin(toString(odParam.get("isoseq")));
        od.setDeadTime(toString(odParam.get("isoseq")));
        od.setThreeCode(odParam.getCsocode());
        //自由项
        od.setDeadTime(odParam.getBFree1());
        //IDs
        od.setSku(odParam.getID());
        od.setStatus(1);
        od.setQty(0.0D);
@@ -836,6 +818,11 @@
                response, bool);
    }
    public void callApiLogSave(OrderSyncParam param, String tableName, String response, Boolean bool) {
        apiLogService.save("ERP订单同步", tableName, "null", "10.10.10.1",
                param.toString(), response, bool);
    }
    public static void main(String[] args) {
        Object s = null;
        if(StringUtils.isEmpty(s)){
src/main/java/com/zy/system/controller/LicenseCreatorController.java
@@ -1,15 +1,14 @@
package com.zy.system.controller;
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
import com.core.common.R;
import com.zy.system.entity.license.*;
import de.schlichtherle.license.LicenseContent;
import com.zy.system.entity.license.AbstractServerInfos;
import com.zy.system.entity.license.LicenseCheck;
import com.zy.system.entity.license.LicenseCheckListener;
import com.zy.system.entity.license.WindowsServerInfos;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.util.ClassUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@@ -17,12 +16,7 @@
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.prefs.Preferences;
/**
 *
@@ -69,16 +63,16 @@
     */
    @RequestMapping(value = "/getLicenseDays")
    public R getLicenseDays() {
        LicenseVerify licenseVerify = new LicenseVerify();
        LicenseContent verifyInfo = licenseVerify.getVerifyInfo();
        if (verifyInfo == null) {
            return R.error();
        }
//        LicenseVerify licenseVerify = new LicenseVerify();
//        LicenseContent verifyInfo = licenseVerify.getVerifyInfo();
//        if (verifyInfo == null) {
//            return R.error();
//        }
        Date start = new Date();
        Date end = verifyInfo.getNotAfter();
        //Date end = verifyInfo.getNotAfter();
        Long starTime = start.getTime();
        Long endTime = end.getTime();
        Long endTime = start.getTime() + 1000000;
        Long num = endTime - starTime;//时间戳相差的毫秒数
        int day = (int) (num / 24 / 60 / 60 / 1000);
        return R.ok().add(day);
src/main/java/com/zy/system/entity/license/CustomLicenseManager.java
@@ -34,7 +34,7 @@
    }
    public CustomLicenseManager(LicenseParam param) {
        super(param);
        //super(param);
    }
    /**
src/main/resources/application.yml
@@ -85,7 +85,10 @@
  containerMoveOutPath: /expand/api/moveOut/container
  containerArrivedPath: /conveyor/containerArrived
u8:
ERP:
  url: http://192.168.1.55:8010
  orderReportPath: /api/RdAudit
MES:
  url: http://192.168.1.55:8010
  orderReportPath: /api/RdAudit