yejian 3 years ago
parent
commit
920f9f9253

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

@@ -253,8 +253,8 @@ public class TaskWorkNode {
                     //动态调用接口和新增指令执行时间
                     log.setMethod(conMap.get("method").toString()).setExecuteTime(new Date());
                     String instructionUrl = DictionaryKey.INSTRUCTION_URL +"/api/"+ conMap.get("method").toString() ;
-                    logger.info("instructionUrl=", instructionUrl);
-                    logger.info("jsonParam=", jsonParam);
+                    System.out.println("instructionUrl="+instructionUrl);
+                    System.out.println("jsonParam="+jsonParam);
                     returnData = restTemplate.postForObject(instructionUrl, formEntity, String.class);
 
                     logger.info("returnData=", returnData);
@@ -270,8 +270,8 @@ public class TaskWorkNode {
         }
         logger.info("===============================接口返回" + returnData);
         JSONObject retJson = JSONObject.parseObject(returnData);
-        String code = retJson.getString("code").trim();
-        if(code == "1") {
+        String code = retJson.getString("result").trim();
+        if(code == "true") {
             //回调处理
             taskNode.setExeStatus("3").setEndTime(new Date()).setExeResult("1");
             taskNodeService.updateAllById(taskNode);

+ 5 - 75
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/TaskServiceImpl.java

@@ -25,6 +25,7 @@ import com.github.zuihou.business.edgeLibrary.service.StockLogService;
 import com.github.zuihou.business.edgeLibrary.service.StorgeService;
 import com.github.zuihou.business.operationManagementCenter.dao.*;
 import com.github.zuihou.business.operationManagementCenter.entity.*;
+import com.github.zuihou.business.operationManagementCenter.service.TaskNodeService;
 import com.github.zuihou.business.operationManagementCenter.service.TaskService;
 import com.github.zuihou.business.operationManagementCenter.service.WorkpieceService;
 import com.github.zuihou.business.productionReadyCenter.dao.*;
@@ -123,7 +124,7 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
     @Autowired
     private StockInfoMapper stockInfoMapper;
     @Autowired
-    private TaskNodeMapper taskNodeMapper;
+    private TaskNodeService taskNodeService;
     @Autowired
     private MsgUtil msgUtil;
     @Autowired
@@ -1041,7 +1042,7 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
                 baseMapper.updateById(tTask);
             }
         }else if("end".equals(type)) {
-            TaskNode taskNode = taskNodeMapper.selectOne(Wraps.<TaskNode>lbQ().eq(TaskNode::getTaskId, tTask.getId()).eq(TaskNode::getExeStatus,"2"));
+            TaskNode taskNode = taskNodeService.getOne(Wraps.<TaskNode>lbQ().eq(TaskNode::getTaskId, tTask.getId()).eq(TaskNode::getExeStatus,"2"));
             String id = taskNode.getId().toString();
             //验证是否重复回调
             String cacheId = msgUtil.redis_get(id) == null ? "" : msgUtil.redis_get(id).toString();
@@ -1080,7 +1081,7 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
 
             JSONObject jsonObject = new JSONObject();
             //根据任务查出所有的自动化节点
-            List<TaskNode> taskNodeList = taskNodeMapper.selectList(Wraps.<TaskNode>lbQ().eq(TaskNode::getCompleteBatchNo, tTask.getCompleteBatchNo()));
+            List<TaskNode> taskNodeList = taskNodeService.list(Wraps.<TaskNode>lbQ().eq(TaskNode::getCompleteBatchNo, tTask.getCompleteBatchNo()));
 
 //            Storge jbwFromStorge = (Storge) msgUtil.redis_get(DemoCacheKey.DEMOLINE_CIRCULATION_STORAGE + "_" + tTask.getCompleteBatchNo());
 //            //2、取出上下料站
@@ -1092,83 +1093,12 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
             //入库
             jsonObject.put(DemoLineConstant.DEMOLINE_STOCK_TYPE, DemoLineConstant.DEMOLINE_STOCK_TYPE_METERIAL_RK);
             //节点完成业务
-            this.taskNodeCallbackBiz(taskNode, tTask, taskNodeList, lg, jsonObject.toJSONString());
+            taskNodeService.taskNodeCallbackBiz(taskNode, tTask, taskNodeList, lg, jsonObject.toJSONString());
 
         }
         return  R.success();
     }
 
-    private void taskNodeCallbackBiz(TaskNode taskNode, TTask task, List<TaskNode> taskNodeList, AAutoNodeLog lg, String bizCallBackData) {
-        //回调的参数
-        JSONObject callBackJson = JSONObject.parseObject(bizCallBackData);
-
-        //获取当前自动化节点的顺序
-        int n = taskNode.getCompleteBatchSort() - 1;
-
-        updateBizStatus(taskNode, task, taskNodeList, lg, callBackJson);
-
-        //websocket推送TODO临时注释
-//        msgUtil.pushTask(task);
-
-        //推送到消息队列
-        msgUtil.pushToNextMq(taskNode, task, taskNodeList, n, callBackJson);
-
-    }
-
-    private void updateBizStatus(TaskNode taskNode, TTask task, List<TaskNode> taskNodeList, AAutoNodeLog lg, JSONObject callBackJson) {
-        //如果是推送当前节点到mq(一个节点执行多次。就不需要更新数据状态)
-        if (this.checkPushNextNode(taskNode, callBackJson)){
-            //获取当前自动化节点的顺序
-            int n = taskNode.getCompleteBatchSort() - 1;
-            //插入执行日志
-            lg.setExeStatus("3");
-            lg.setExeResult("1").setEndTime(new Date());
-            autoNodeLogMapper.updateAllById(lg);
-            //更新节点任务
-            taskNode.setExeStatus("3").setExeResult("1").setEndTime(new Date());
-            taskNodeMapper.updateById(taskNode);
-            //把当前完成的节点放入缓存,用于推送任务完成的百分比
-            NumberFormat numberFormat = NumberFormat.getInstance();
-            numberFormat.setMaximumFractionDigits(2);
-
-            msgUtil.redis_set(CacheKey.TASK_CURRENT_NODE_PERCENT + "_" + task.getResourceId(), numberFormat.format(100 * (float) (n + 1) / (float) taskNodeList.size()));
-            task.setProcess(Double.parseDouble(numberFormat.format(100 * (float) (n + 1) / (float) taskNodeList.size())));
-
-            //更新订单表里的完成数量等等字段
-            if (n == 0 && "1".equals(task.getFirstProcedureFlag())) {
-                Order order = orderMapper.selectById(task.getOrderId());
-                order.setProduceNum((order.getProduceNum() == null ? 0 : order.getProduceNum()) + 1);
-                orderMapper.updateAllById(order);
-            }
-            //解锁相关资源
-            unlockResource(taskNode, task);
-        }
-    }
-
-    private void unlockResource(TaskNode taskNode, TTask task) {
-        //删除当前节点的锁定
-        List<Storge> storgeList = storgeService.list(Wraps.<Storge>lbQ().eq(Storge::getCampId, taskNode.getId()));
-        if (CollectionUtil.isNotEmpty(storgeList)) {
-            storgeService.unlockStorgeList(storgeList);
-        }
-    }
-
-    private boolean checkPushNextNode(TaskNode taskNode, JSONObject callBackJson) {
-        if (callBackJson.containsKey(DemoLineConstant.DEMOLINE_RXJQR_FLAG)) {//柔性机器人的多步骤执行
-            int count = callBackJson.getString(taskNode.getId().toString() + "count") == null ? 0 : Integer.parseInt(callBackJson.getString(taskNode.getId().toString() + "count"));
-            if (count < 2) {//
-                return false;
-            }
-        } else if (callBackJson.containsKey(DemoLineConstant.DEMOLINE_CHANGEHAND_FLAG) || callBackJson.containsKey(DemoLineConstant.DEMOLINE_RXJQR_NOMOVE_FLAG)) {//机器人换手或无需移动的柔性机器人
-            int count = callBackJson.getString(taskNode.getId().toString() + "count") == null ? 0 : Integer.parseInt(callBackJson.getString(taskNode.getId().toString() + "count"));
-            if (count < 1) {//
-                return false;
-            }
-        }
-        return true;
-
-    }
-
     @Override
     public R releaseClamp(Map<String, Object> map){
         TTask tTask = baseMapper.selectById(Long.valueOf(map.get("id").toString()));