自动化立体仓库 - WMS系统
zc
2024-11-05 d95fc02c3cef872247693572e1bbb0f0e2ccd25d
接口对接调试
3个文件已修改
76 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/AgvHandler.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/third/erp/task/ERPOutHedTBScheduler.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -17,6 +17,7 @@
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.service.CommonService;
import com.zy.common.utils.NodeUtils;
import com.zy.third.erp.task.ERPOutHedTBScheduler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -76,6 +77,9 @@
    @Resource
    private WrkMastService wrkMastService;
    @Resource
    private ERPOutHedTBScheduler erpOutHedTBScheduler;
    @Override
@@ -215,19 +219,22 @@
        // 获取单据
        Order order = orderService.selectByNo(orderNo);
        if (order == null) {
            int i = 30;
            while (i >= 0) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
                order = orderService.selectByNo(orderNo);
                if (order != null) {
                    break;
                }
                i--;
            }
            erpOutHedTBScheduler.OutHedTBScheduler(orderNo);
            order = orderService.selectByNo(orderNo);
//            int i = 30;
//            while (i >= 0) {
//                try {
//                    Thread.sleep(1000);
//                    System.out.println(i);
//                } catch (InterruptedException e) {
//                    throw new RuntimeException(e);
//                }
//                order = orderService.selectByNo(orderNo);
//                if (order != null) {
//                    break;
//                }
//                i--;
//            }
        }
        if (order == null) {
            return R.parse("单据不存在:" + orderNo);
src/main/java/com/zy/asrs/task/handler/AgvHandler.java
@@ -71,9 +71,11 @@
        // 构造请求体
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("trayCode", wrkMast.getBarcode()); // 托盘条码
        jsonObject.put("startLocation",wrkMast.getStaNo()); // 提升机号
        jsonObject.put("endLocation",wrkMast.getInvWh()); // 地码/终点货位
        jsonObject.put("startLocation", wrkMast.getStaNo()); // 提升机号
        jsonObject.put("endLocation", wrkMast.getInvWh()); // 地码/终点货位
        jsonObject.put("taskId", wrkMast.getWrkNo()); // 任务id
        jsonObject.put("outBoundtype", "2.1.2.1原料/半成品出库");
        //jsonObject.put("erpCode", wrkDetls.get(0).getOrderNo());
        // 保存一个订单明细的单据编号
        String orderNo = "";
        JSONArray jsonArray = new JSONArray();
@@ -91,7 +93,7 @@
        if (order != null) {
            jsonObject.put("erpCode", orderNo); // 工单号
            jsonObject.put("outBoundtype", order.getDocType$()); // 入出库单据类型
            //jsonObject.put("outBoundtype", order.getDocType$()); // 入出库单据类型
        }
        String body = jsonObject.toString();
@@ -106,7 +108,7 @@
                    .doPost();
            if (!Cools.isEmpty(response)) {
                JSONObject jsonObject1 = JSONObject.parseObject(response);
                if ((Integer) jsonObject1.get("code") == 200) {
                if (jsonObject1.get("code") != null && jsonObject1.get("code").equals("200")) {
                    success = true;
                    wrkMast.setRefWrkno(1.0);
                    wrkMastService.updateById(wrkMast);
src/main/java/com/zy/third/erp/task/ERPOutHedTBScheduler.java
@@ -69,6 +69,39 @@
        }
    }
    public void OutHedTBScheduler(String orderNo) {
        //log.info("OutHedTBScheduler开始了");
        if (!erpEnabled) return;
        String sqlInHed = "select * from erp_OutHedTB where LKName='中扬二期' and BillNo = '"+ orderNo +"'";
        List<OutHedTB> inHeds = erpSqlServer.select(sqlInHed, OutHedTB.class);
        if (!inHeds.isEmpty()) {
            for (OutHedTB inHed : inHeds) {
                if (!Cools.isEmpty(inHed.getTemp3()) && inHed.getTemp3().equals("fault")) {
                    //continue;
                }
                HashMap<String, String> condition = new HashMap<>();
                condition.put("BillNo", "'" + inHed.getBillNo() + "'");
                List<OutDetTB> inDetTBS = erpSqlServer.selectList(OutDetTB.class, condition);
                HashMap<String, Object> hedAndDet = new HashMap<>();
                hedAndDet.put("hed", inHed);
                hedAndDet.put("det", inDetTBS);
                try {
                    inMS.createOutOrder(inHed, inDetTBS);
                    log.info("出库单据成功,{}", inHed);
                    move(hedAndDet);
                } catch (Exception e) {
                    log.info(e.getMessage());
//                    e.printStackTrace();
                    String sql = "UPDATE erp_OutHedTB SET Temp3 = 'fault' WHERE BillNo = '" + inHed.getBillNo() + "'";
                    erpSqlServer.update(sql);
//
                }
            }
        }
    }
    @Transactional(rollbackFor = Throwable.class)
    public void move(HashMap<String, Object> hedAndDet) {
        OutHedTB hed = (OutHedTB) hedAndDet.get("hed");