浏览代码

修改bug

姚云青 3 年之前
父节点
当前提交
5d62a1521c

+ 1 - 1
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/DemoLine/YunjianConstant.java

@@ -195,7 +195,7 @@ public interface YunjianConstant {
     String DEMOLINE_EXEPRO_FLAG ="DEMOLINE_EXEPRO_FLAG";
 
     //云箭多缓存位标志,
-    String YUNJIAN_XBK_CACHE_FLAG ="YUNJIAN_XBK_CACHE_FLAG";
+    String YUNJIAN_ROBORT_CACHE_FLAG ="YUNJIAN_ROBORT_CACHE_FLAG";
 
     //柔性机器人搬运标志,(不需要移动)
     String DEMOLINE_RXJQR_NOMOVE_FLAG ="DEMOLINE_RXJQR_NOMOVE_FLAG";

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

@@ -338,6 +338,8 @@ public class TaskWorkNode {
         //业务类型
         String bizType = conMap.get("bizType")== null ? "" : conMap.get("bizType").toString();
 
+        String count = conMap.get(taskNode.getId() + "count") == null ? "" : conMap.get(taskNode.getId() + "count").toString();
+
 
         //出入库类型
         String stockType = conMap.get(DemoLineConstant.DEMOLINE_STOCK_TYPE) == null ? "" : conMap.get(DemoLineConstant.DEMOLINE_STOCK_TYPE).toString();
@@ -359,6 +361,17 @@ public class TaskWorkNode {
             bizJsonObject.put(DemoLineConstant.DEMOLINE_STOCK_TYPE, stockType);
         }
 
+        //多库位标志
+        String mulCacheFlag = conMap.get(YunjianConstant.YUNJIAN_ROBORT_CACHE_FLAG) == null ? "" : conMap.get(YunjianConstant.YUNJIAN_ROBORT_CACHE_FLAG).toString();
+        if (StringUtil.isNotEmpty(mulCacheFlag)) {
+            //设定出入库类型
+            bizJsonObject.put(YunjianConstant.YUNJIAN_ROBORT_CACHE_FLAG, mulCacheFlag);
+        }
+        if (StringUtil.isNotEmpty(count)) {
+            //设定出入库类型
+            bizJsonObject.put(taskNode.getId() + "count", count);
+        }
+
         //起点、终点缓存。
         Storge fstorge =  conMap.get("fromStorge") == null?null:(Storge) conMap.get("fromStorge") ;
         Storge tstorge =  conMap.get("toStorge") == null?null:(Storge) conMap.get("toStorge") ;
@@ -454,6 +467,7 @@ public class TaskWorkNode {
         logger.info("=============进入条件检测==============" + taskNode);
         //业务类型(区分正常设备节点和线边库节点)
         String bizType = dataMap.get("bizType") == null ? "" : dataMap.get("bizType").toString();
+        String count = dataMap.get(taskNode.getId() + "count") == null ? "0" : dataMap.get(taskNode.getId() + "count").toString();
 //        //具体的搬运类型
 //        String carryType = dataMap.get("carryType") == null ? "" : dataMap.get("carryType").toString();
 
@@ -472,6 +486,7 @@ public class TaskWorkNode {
         Map<String, Object> map = Maps.newHashMap();
         map.put("taskNode", taskNode);
         map.put("task", task);
+        map.put(taskNode.getId() +"count", count);
         map.put("bizType", bizType);
         map.put("categoryName", DictionaryKey.RESOURCE_CATEGORY.get(category));
         map.put("instructions", moduleInstructions);
@@ -596,7 +611,7 @@ public class TaskWorkNode {
         if(BizConstant.ROBOT_TYPE_CACHE.equals(zoneService.getRobotTypebyZone(zone.getName()))){//有缓存位的机器人
             //执行到第几步
             dataMap.put(taskNode.getId().toString() + "count", count);
-            dataMap.put(YunjianConstant.YUNJIAN_XBK_CACHE_FLAG, "1");
+            dataMap.put(YunjianConstant.YUNJIAN_ROBORT_CACHE_FLAG, "1");
 
             if (count == 0) {//第一步的时候锁定资源
                 //判断机器人是否为空

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

@@ -172,15 +172,15 @@ public class RobotNodeServiceImpl implements NodeOperationService {
 //        String robotType = dataMap.get("robotType") == null ? "" : dataMap.get("robotType").toString();
 
         //Map<String, Object> map = new HashMap<>();
-        map.put("taskNode", taskNode);
-        map.put("task", task);
+        dataMap.put("taskNode", taskNode);
+        dataMap.put("task", task);
 
         ResourceAutoCode resourceAutoCode = taskNode.getAutoNode();
         //String moduleName = dataMap.get("moduleName") == null ? "" : dataMap.get("moduleName").toString();
         if(!taskNodeService.getRunStatus(taskNode.getResourceId())){
-            map.put("result", false);
-            map.put("msg", DictionaryKey.NodeException.RUNNING_FALSE);
-            return map;
+            dataMap.put("result", false);
+            dataMap.put("msg", DictionaryKey.NodeException.RUNNING_FALSE);
+            return dataMap;
         }
         String functionName = DictionaryKey.ROBOT_ACTION.get(resourceAutoCode.getCommand());
         //设备条件判断
@@ -288,7 +288,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
                     lastOperationTaskNode.setTargetResourceId(endAgvStation.getId());
                     taskNodeService.updateById(nextTaskNode);
                     taskNodeService.updateById(lastOperationTaskNode);
-                    map.put("bizType","agv");
+                    dataMap.put("bizType","agv");
                 }else{
 //                    // 获取机器人操作线边库
 //                    xbkArr = new String[]{DictionaryKey.YJ_ZONE_XBK.get(zoneName)};
@@ -315,37 +315,37 @@ public class RobotNodeServiceImpl implements NodeOperationService {
                 //操作质量中心边库 具有取、移动、放三种指令
                 //取放上下料站
                 //取放三坐标
-                map.put("deviceUrl", ZK_ip_zlzx);
+                dataMap.put("deviceUrl", ZK_ip_zlzx);
                 break;
             case "柔性线机器人":
                 //操作柔性线边库 具有取、移动、放三种指令
                 //取放加工设备  设备存在缓存位
-                map = this.commandHandle(map,flikustockInfos,functionName);
-                map.put("deviceUrl", ZK_ip_rxx);
+                dataMap = this.commandHandle(dataMap,flikustockInfos,functionName);
+                dataMap.put("deviceUrl", ZK_ip_rxx);
                 break;
             case "智能单元机器人":
                 //操作智能单元线边库 具有取、移动、放三种指令
                 //取放加工设备 无缓存位处理
-                map = this.commandHandle(map , flikustockInfos,functionName);
-                map.put("deviceUrl", ZK_ip_zndy);
+                dataMap = this.commandHandle(dataMap , flikustockInfos,functionName);
+                dataMap.put("deviceUrl", ZK_ip_zndy);
                 break;
             case "舱体类加工单元":
                 //操作舱体线边库 具有取、移动、放三种指令
                 //取放加工设备
-                map = this.commandHandle(map,flikustockInfos, functionName);
+                dataMap = this.commandHandle(dataMap,flikustockInfos, functionName);
                 break;
             case "智能生产保障系统":
-                map = this.commandHandle(map,flikustockInfos, functionName);
-                map.put("deviceUrl", ZK_ip_rxx);
+                dataMap = this.commandHandle(dataMap,flikustockInfos, functionName);
+                dataMap.put("deviceUrl", ZK_ip_rxx);
                 break;
             case "框体类加工单元":
-                map = this.commandHandle(map,flikustockInfos, functionName);
-                map.put("deviceUrl", ZK_ip_rxx);
+                dataMap = this.commandHandle(dataMap,flikustockInfos, functionName);
+                dataMap.put("deviceUrl", ZK_ip_rxx);
                 break;
         }
-        map.put("url",plcInfo.get("url"));
-        map.put("port",plcInfo.get("port"));
-        return map;
+        dataMap.put("url",plcInfo.get("url"));
+        dataMap.put("port",plcInfo.get("port"));
+        return dataMap;
     }
 
     @Override
@@ -381,7 +381,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
             if(BizConstant.ROBOT_TYPE_CACHE.equals(zoneService.getRobotTypebyZone(zoneName))){
                 //执行到第几步
                 dataMap.put(taskNode.getId().toString() + "count", count);
-                dataMap.put(YunjianConstant.YUNJIAN_XBK_CACHE_FLAG, "1");
+                dataMap.put(YunjianConstant.YUNJIAN_ROBORT_CACHE_FLAG, "1");
 
                 if (count == 0) {//第一步的时候锁定资源
                     //判断机器人是否为空
@@ -436,7 +436,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
                         dataMap.put("data", locationMap);
                         dataMap.put("method", "MoveRobotPosition");
                     }
-                    dataMap.put("result", po);
+                    dataMap.put("result", po!=null);
                 } else if (count == 1) {
                     jqrStorge = (Storge) msgUtil.redis_get(DemoCacheKey.YUNJIAN_CAMP + "_" + YunjianConstant.YUNJIAN_JXS + taskNode.getId());
                     dataMap.put("method", "GetServoStacker");
@@ -528,7 +528,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
             //执行到第几步
             dataMap.put(taskNode.getId().toString()+"count",count);
             if(BizConstant.ROBOT_TYPE_CACHE.equals(zoneService.getRobotTypebyZone(zoneName))){
-                dataMap.put(YunjianConstant.YUNJIAN_XBK_CACHE_FLAG, "1");
+                dataMap.put(YunjianConstant.YUNJIAN_ROBORT_CACHE_FLAG, "1");
                 if(count==0) {
                     Map locationMap = new HashMap();
                     locationMap.put("location",targetStorge.getPointId());

+ 1 - 1
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/service/impl/ZZoneServiceImpl.java

@@ -517,7 +517,7 @@ public class ZZoneServiceImpl extends SuperServiceImpl<ZZoneMapper, ZZone> imple
 
     @Override
     public String getRobotTypebyZone(String zoneName) {
-        if(zoneName.indexOf("舱体")>0||zoneName.indexOf("框体")>0){
+        if(zoneName.indexOf("舱体")>=0||zoneName.indexOf("框体")>=0){
             return BizConstant.ROBOT_TYPE_CACHE;
         }else if(zoneName.indexOf("保障")>0){
             return BizConstant.ROBOT_TYPE_NOCACHE;

+ 2 - 2
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/util/MsgUtil.java

@@ -96,7 +96,7 @@ public class MsgUtil implements ApplicationContextAware {
             TaskNode nextTaskNode = taskNodeList.get(n+1);
             jsonObject.put("taskNodeId",nextTaskNode.getId().toString());
             if(callBackJson.containsKey(DemoLineConstant.DEMOLINE_XBKFLAG)){//临时存放到了线边库,向虚拟线边库发一个MQ。
-                if(callBackJson.containsKey(YunjianConstant.YUNJIAN_XBK_CACHE_FLAG)){//带缓存位机器人的多步骤执行
+                if(callBackJson.containsKey(YunjianConstant.YUNJIAN_ROBORT_CACHE_FLAG)){//带缓存位机器人的多步骤执行
                     int count =  callBackJson.getString(taskNode.getId().toString()+"count")==null?0:Integer.parseInt(callBackJson.getString(taskNode.getId().toString()+"count"));
                     int limit =5;
                     if(count<limit){//
@@ -113,7 +113,7 @@ public class MsgUtil implements ApplicationContextAware {
             }
             else{
                 jsonObject.put("bizType", BizConstant.MQ_TASK_NODE_TYPE_COMMON);
-                if(callBackJson.containsKey(YunjianConstant.YUNJIAN_XBK_CACHE_FLAG)){//带缓存位机器人的多步骤执行
+                if(callBackJson.containsKey(YunjianConstant.YUNJIAN_ROBORT_CACHE_FLAG)){//带缓存位机器人的多步骤执行
                     int count =  callBackJson.getString(taskNode.getId().toString()+"count")==null?0:Integer.parseInt(callBackJson.getString(taskNode.getId().toString()+"count"));
                     int limit =2;
                     if(count<limit){//