Browse Source

Merge remote-tracking branch 'origin/master' into master

yejian 3 years ago
parent
commit
5bf5e557a3

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

@@ -311,7 +311,8 @@ public class TaskWorkNode {
         TaskNode taskNode = (TaskNode) conMap.get("taskNode");
         TTask task = (TTask) conMap.get("task");
         //业务类型
-        String bizType = conMap.get("bizType").toString();
+        String bizType = conMap.get("bizType")== null ? "" : conMap.get("bizType").toString();
+
         //出入库类型
         String stockType = conMap.get(DemoLineConstant.DEMOLINE_STOCK_TYPE) == null ? "" : conMap.get(DemoLineConstant.DEMOLINE_STOCK_TYPE).toString();
 
@@ -320,6 +321,7 @@ public class TaskWorkNode {
         jsonObject.put("taskId", taskNode.getTaskId());
         jsonObject.put("taskNodeId", taskNode.getId());
         jsonObject.put("data", conMap.get("data"));
+        jsonObject.put("bizType", bizType);
         //jsonObject.put("uid", taskNode.getCreateUser() + "");
         jsonObject.put("url",  task.getIp());
         jsonObject.put("port", task.getPort());

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

@@ -282,8 +282,6 @@ public class RobotNodeServiceImpl implements NodeOperationService {
             }
         }
 
-        //目的库位
-        Storge jqrStorge = storgeService.getById(robotList.get(0).getStorgeId());
         //目标地址判断
 //        if(map.containsKey("useXbk")){
 //            //目标地址是线边库
@@ -301,26 +299,26 @@ public class RobotNodeServiceImpl implements NodeOperationService {
             case "柔性线机器人":
                 //操作柔性线边库 具有取、移动、放三种指令
                 //取放加工设备  设备存在缓存位
-                map = this.commandHandle(map, currStore, jqrStorge, functionName);
+                map = this.commandHandle(map, currStore, functionName);
                 map.put("deviceUrl", ZK_ip_rxx);
                 break;
             case "智能单元机器人":
                 //操作智能单元线边库 具有取、移动、放三种指令
                 //取放加工设备 无缓存位处理
-                map = this.commandHandle(map, currStore, jqrStorge, functionName);
+                map = this.commandHandle(map, currStore, functionName);
                 map.put("deviceUrl", ZK_ip_zndy);
                 break;
             case "舱体类加工单元":
                 //操作舱体线边库 具有取、移动、放三种指令
                 //取放加工设备
-                map = this.commandHandle(map, currStore, jqrStorge, functionName);
+                map = this.commandHandle(map, currStore, functionName);
                 break;
             case "智能生产保障系统":
-                map = this.commandHandle(map, currStore, jqrStorge, functionName);
+                map = this.commandHandle(map, currStore, functionName);
                 map.put("deviceUrl", ZK_ip_rxx);
                 break;
             case "框体类加工单元":
-                map = this.commandHandle(map, currStore, jqrStorge, functionName);
+                map = this.commandHandle(map, currStore, functionName);
                 map.put("deviceUrl", ZK_ip_rxx);
                 break;
         }
@@ -348,11 +346,12 @@ public class RobotNodeServiceImpl implements NodeOperationService {
     }
 
     //机器人功能操作
-    private Map<String, Object>  commandHandle(Map<String, Object> dataMap, Storge startStore, Storge jqrStorge, String functionName){
+    private Map<String, Object>  commandHandle(Map<String, Object> dataMap, Storge startStore, String functionName){
         TaskNode taskNode = (TaskNode) dataMap.get("taskNode");
         TTask task = (TTask) dataMap.get("task");
         int count = Integer.parseInt(dataMap.get(taskNode.getId().toString() + "count") == null ? "0" : dataMap.get(taskNode.getId().toString() + "count").toString());
-
+        //目的库位
+        Storge jqrStorge = null;
         //缓存位判断处理
         if ("取".equals(functionName)) {
             if(BizConstant.ROBOT_TYPE_CACHE.equals(zoneService.getRobotTypebyZone(zoneName))){
@@ -367,7 +366,6 @@ public class RobotNodeServiceImpl implements NodeOperationService {
                     TaskNode nextTaskNode = taskNodeService.getNextNTaskNode(taskNode, 1);
                     //目标库位,可能是
                     Map returnMap = getTargetStorge(nextTaskNode);
-
                     //目标地址和类型
                     Storge targetStorge = returnMap.get("store")==null?null:(Storge)returnMap.get("store");
                     String targetxbk = returnMap.get("targetxbk")==null?null:(String)returnMap.get("targetxbk");
@@ -436,7 +434,9 @@ public class RobotNodeServiceImpl implements NodeOperationService {
                 String targetxbk = returnMap.get("targetxbk")==null?null:(String)returnMap.get("targetxbk");
 
                 dataMap.put("method", "GetServoStacker");
-                if (logical(robotList,targetStorge)!=null) {
+                if (logical(robotList,targetStorge)!=null) {//机器人只有一只手
+                    jqrStorge = storgeService.getById(robotList.get(0).getStorgeId());
+
                     dataMap.put("fromStorge", startStore);
                     dataMap.put("Data", startStore);
                     //出入库类型
@@ -463,7 +463,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
                     msgUtil.redis_set(DemoCacheKey.YUNJIAN_CAMP + "_" + DemoLineConstant.YUNJIAN_TARGET_XBK_FLAG + nextTaskNode.getId(), targetxbk, 1, TimeUnit.DAYS);
                     dataMap.put("result", true);
                 }
-                dataMap.put("result", logical(robotList,targetStorge));
+                dataMap.put("result", logical(robotList,targetStorge)!=null);
             }
         }else if ("放".equals(functionName)) {
             Object targetStorge = msgUtil.redis_get(DemoCacheKey.YUNJIAN_CAMP + "_" + DemoLineConstant.YUNJIAN_TARGET_STORE + taskNode.getId());
@@ -521,6 +521,9 @@ public class RobotNodeServiceImpl implements NodeOperationService {
      * @return
      */
     public boolean checkRobot(){
+        if(CollectionUtil.isEmpty(robotList)){
+            return false;
+        }
         if(BizConstant.ROBOT_TYPE_NOCACHE.equals(zoneService.getRobotTypebyZone(zoneName))){
             return CollectionUtil.isNotEmpty(robotList) && robotList.size() == 1;
         }else if(BizConstant.ROBOT_TYPE_CACHE.equals(zoneService.getRobotTypebyZone(zoneName))){//手抓必须空闲。