Kaynağa Gözat

示范线接驳位点位增加映射关系,先简单一对一对应,后续需改成全部动态

yejian 3 yıl önce
ebeveyn
işleme
57fe589e65

+ 2 - 1
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/edgeLibrary/service/impl/StorgeServiceImpl.java

@@ -285,7 +285,7 @@ public class StorgeServiceImpl extends SuperCacheServiceImpl<StorgeMapper, Storg
                     if(BizConstant.STOCK_GOODS_TYPE_5.equals(p.getCategory())){
 //                    if(BizConstant.STOCK_GOODS_TYPE_5.equals(p.getCategory())&&plateMap.containsKey(p.getGoodsId())){
                         tbList.add(p);
-                        jbwCode = p.getCode();
+//                        jbwCode = p.getCode();
 //                        relMap.put(key,p);
                     }
                 }
@@ -312,6 +312,7 @@ public class StorgeServiceImpl extends SuperCacheServiceImpl<StorgeMapper, Storg
                 ProductionresourcePosition position = null;
                 for(ProductionresourcePosition productionresourcePosition : tbList){
                     position = productionresourcePosition;
+                    jbwCode = position.getCode();
                     break;
                 }
                 log.info("确定起点可用接驳位{}",position);

+ 19 - 6
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/mq/TaskWorkNode.java

@@ -329,10 +329,14 @@ public class TaskWorkNode {
                                 agvParam.putAll(agvData);
                                 //缓存执行当前节点传参
                                 msgUtil.redis_set(CacheKey.TASK_CURRENT_NODE_PARAMS + "_" + taskNode.getId(), agvParam.toJSONString());
-                                R addHikTask = agvHikOrderInfoService.addHikTask(agvData);
-////                                agvData.put("transferType","agv");
-//                                R addAgvTask = externalApiService.processTransferJob(agvData);
 
+                                String zoneType = (null == msgUtil.redis_get(ParameterKey.ZONE_TYPE)? "": ((Map<String,String>)msgUtil.redis_get(ParameterKey.ZONE_TYPE)).toString());
+                                if(zoneType.equals(ParameterKey.ZONE_SFX)){
+                                    agvData.put("transferType","agv");
+                                    R addAgvTask = externalApiService.processTransferJob(agvData);
+                                }else{
+                                    R addHikTask = agvHikOrderInfoService.addHikTask(agvData);
+                                }
                             }
                         } else {
                             if (!"04".equals(taskNode.getInterfaceType())) {
@@ -400,6 +404,7 @@ public class TaskWorkNode {
             conMap.put("result",false);
             e.printStackTrace();
         } finally {
+            logger.info("returnData={}",returnData);
             JSONObject retJson = JSONObject.parseObject(returnData);
             if (retJson != null) {
                 String code = retJson.getString("result").trim();
@@ -1064,7 +1069,7 @@ public class TaskWorkNode {
             TaskNode lastAgvTaskNode = taskNodeService.getNextNTaskNode(taskNode,1);;
             Map map = storgeService.getPlateStorgeByNo(zZone);
 
-
+            String startAgvStationCode = map.get("jbwCode") ==null?null:map.get("jbwCode").toString();
             targetStorge = map.get("storge") ==null?null:(Storge)map.get("storge");
             String targetResourceId = map.get("resourceId") ==null?null:(String)map.get("resourceId");
             // 在向下找agv终点位子
@@ -1081,8 +1086,16 @@ public class TaskWorkNode {
 
                 ProductionresourcePosition position = null;
                 for(ProductionresourcePosition productionresourcePosition : jbwBList){
-                    position = productionresourcePosition;
-                    break;
+                    String zoneType = (null == msgUtil.redis_get(ParameterKey.ZONE_TYPE)? "": ((Map<String,String>)msgUtil.redis_get(ParameterKey.ZONE_TYPE)).toString());
+                    if(zoneType.equals(ParameterKey.ZONE_SFX)){
+                        if(productionresourcePosition.getCode().equals(DictionaryKey.SFX_JBW_RELATION.get(startAgvStationCode))){
+                            position = productionresourcePosition;
+                            break;
+                        }
+                    }else{
+                        position = productionresourcePosition;
+                        break;
+                    }
                 }
                 logger.info("节点{},查询线边库轮询终点接驳位{}",taskNode.getId(),position);
                 if(null!=position){

+ 13 - 4
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/service/impl/RobotNodeServiceImpl.java

@@ -606,7 +606,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
             //获取接驳位。agvEndStationStorge
             Map map = storgeService.getPlateStorgeByNo(zZone);
 
-
+            String startAgvStationCode = map.get("jbwCode") ==null?null:map.get("jbwCode").toString();
             targetStorge = map.get("storge") ==null?null:(Storge)map.get("storge");
             String targetResourceId = map.get("resourceId") ==null?null:(String)map.get("resourceId");
             // 在向下找agv终点位子
@@ -620,11 +620,20 @@ public class RobotNodeServiceImpl implements NodeOperationService {
             List<ProductionresourcePosition> jbwBList = productionresourcePositionService.getFreeProductionresourceAgvPositionByNos(jbwArr);
 //            log.info("节点{},查询终点接驳位接驳位数量{}",taskNode.getId(),jbwBList);
             if(targetStorge!=null&&CollectionUtil.isNotEmpty(jbwBList)){
-
                 ProductionresourcePosition position = null;
                 for(ProductionresourcePosition productionresourcePosition : jbwBList){
-                    position = productionresourcePosition;
-                    break;
+
+                    String zoneType = (null == msgUtil.redis_get(ParameterKey.ZONE_TYPE)? "": ((Map<String,String>)msgUtil.redis_get(ParameterKey.ZONE_TYPE)).toString());
+                    if(zoneType.equals(ParameterKey.ZONE_SFX)){
+                        if(productionresourcePosition.getCode().equals(DictionaryKey.SFX_JBW_RELATION.get(startAgvStationCode))){
+                            position = productionresourcePosition;
+                            break;
+                        }
+                    }else{
+                        position = productionresourcePosition;
+                        break;
+                    }
+
                 }
 //                log.info("节点{},查询到终点接驳位{}",taskNode.getId(),position);
                 if(null!=position){

+ 11 - 1
imcs-admin-boot/imcs-common/src/main/java/com/github/zuihou/common/constant/DictionaryKey.java

@@ -167,5 +167,15 @@ public interface DictionaryKey {
 //            put("safeguard", new HashMap<String,String>(){{put("url", "192.168.170.61");put("port", "102");}});
         }
     };
-    List<Long> CHECK_AGV_STATION = new ArrayList<>();
+
+    Map<String, String> SFX_JBW_RELATION = new HashMap<String, String>(){
+        {
+            // TODO 后续示范线所有点位都配改成动态查找
+            // 示范线接驳位配置关系
+            put("R1", "R3");
+            put("R3", "R1");
+            put("R2", "R4");
+            put("R4", "R2");
+        }
+    };
 }

+ 4 - 0
imcs-admin-boot/imcs-common/src/main/java/com/github/zuihou/common/constant/ParameterKey.java

@@ -61,5 +61,9 @@ public interface ParameterKey {
     String PARAMETERS = "parameters";
     String AGVCALLBACKURL = "agvCallbackUrl";
 
+    // 临时常量,区分是示范线还是云箭
+    String ZONE_TYPE = "zoneType";
+    String ZONE_SFX = "sfx";
+    String ZONE_YJ = "yj";
 
 }