自动化立体仓库 - WCS系统
pang.jiabao
2024-11-08 0877d8e7cd85f20ee2efbab6a61aa6f0195df541
出库呼叫agv先绑定
1个文件已添加
1个文件已修改
86 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/constant/AgvSiteConstant.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -14,6 +14,7 @@
import com.zy.asrs.utils.RouteUtils;
import com.zy.asrs.utils.Utils;
import com.zy.asrs.utils.VersionUtils;
import com.zy.common.constant.AgvSiteConstant;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.MatDto;
import com.zy.common.model.SearchLocParam;
@@ -40,7 +41,6 @@
import com.zy.core.model.protocol.CrnProtocol;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.BarcodeThread;
import com.zy.core.thread.LedThread;
import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
@@ -2075,7 +2075,7 @@
                }
                ForwardAGVTaskParam forwardAGVTaskParam = new ForwardAGVTaskParam();
                getAgvTaskParam(forwardAGVTaskParam,wrkMast,staProtocol.getSiteId());
                String request = forwardAGVHttpRequest(forwardAGVTaskParam, "10.0.100.110:8182", "/rcms/services/rest/hikRpcService/genAgvSchedulingTask");
                String request = forwardAGVHttpRequest(wrkMast.getStaNo(),forwardAGVTaskParam, "10.0.100.110:8182", "/rcms/services/rest/hikRpcService/genAgvSchedulingTask");
                if ("SUCCESS".equals(request)) {
                    wrkMast.setWrkSts(14L);
                    boolean update = wrkMastService.updateById(wrkMast);
@@ -2123,7 +2123,12 @@
    }
    private String forwardAGVHttpRequest(Object requestParam, String url, String path){
    private String forwardAGVHttpRequest(int sta, Object requestParam, String url, String path){
        // 先绑定
        boolean flag = bindPodAndBerth(String.valueOf(sta));
        if (!flag) {
            return "error";
        }
        String response = "";
        String success = "error";
        try {
@@ -2148,6 +2153,56 @@
        }
        return success;
    }
    private boolean bindPodAndBerth(String sta) {
        String staMap = AgvSiteConstant.SiteMap.get(sta);
        if (staMap == null) {
            log.error("没有找到该站点的入库映射:{}",sta);
            return false;
        }
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("reqCode",UUID.randomUUID().toString().replace("-", "")); // 请求唯一值
        jsonObject.put("ctnrTyp","2"); // 容器类型2
        jsonObject.put("stgBinCode",staMap); // 仓位编号,根据客仓编号转换
        jsonObject.put("indBind","1"); // 1绑定,0解绑
        String body = jsonObject.toJSONString();
        String response = "";
        boolean success = false;
        String url = "10.0.100.110:8182";
        String path = "/rcms/services/rest/hikRpcService/bindCtnrAndBin";
        try {
            response = new HttpHandler.Builder()
                    .setUri(url)
                    .setPath(path)
                    .setJson(body)
                    .build()
                    .doPost();
            JSONObject res = JSON.parseObject(response);
            if (res.getInteger("code").equals(0)) {
                success = true;
            } else {
                log.error("出库调用agv绑定仓位失败!!!url:{};request:{};response:{}", url + path, body, response);
            }
        } catch (Exception e) {
            log.error("出库调用agv绑定仓位异常", e);
        } finally {
//            try {
                // 保存接口日志
//                apiLogService.save(
//                        "调用agv绑定仓位",
//                        ApiInterfaceConstant.AGV_IP + ApiInterfaceConstant.AGV_BIND_PATH,
//                        null,
//                        "127.0.0.1",
//                        body,
//                        response,
//                        success
//                );
//            } catch (Exception e) {
//                log.error("", e);
//            }
        }
        return success;
    }
src/main/java/com/zy/common/constant/AgvSiteConstant.java
New file
@@ -0,0 +1,25 @@
package com.zy.common.constant;
import java.util.HashMap;
import java.util.Map;
/**
 * @author pang.jiabao
 * @description Agv站点和仓位编号对应
 * @createDate 2024/11/7 10:49
 */
public class AgvSiteConstant {
   public static final Map<String,String> SiteMap = new HashMap<String,String>(){{
       put("a1","700001EE501013");put("a2","700002EE501013");put("a3","700003EE501013");put("a4","700004EE501013");
       put("a5","700005EE501013");put("a6","700006EE501013");put("a7","700007EE501013");put("a8","700008EE501013");
       put("b1","820001EE501013");put("b2","820002EE501013");put("b3","820003EE501013");put("b4","820004EE501013");
       put("b5","820005EE501013");put("b6","820006EE501013");
       put("c1","830001EE501013");put("c2","830002EE501013");put("c3","830003EE501013");put("c4","830004EE501013");
       put("c5","830005EE501013");put("c6","830006EE501013");
       put("1040","800001FF501013");put("1042","800002FF501013");
       put("2010","600001XX501013");put("2012","600002XX501013");
       put("3010","400001GG501013");put("3012","400002GG501013");
   }};
}