|
@@ -1,8 +1,11 @@
|
|
|
package com.github.zuihou.business.util;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.github.zuihou.business.externalApi.dto.ManualInfo;
|
|
|
+import com.github.zuihou.business.operationManagementCenter.entity.TaskNode;
|
|
|
import com.github.zuihou.business.productionResourceCenter.entity.ProductionresourcePosition;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
@@ -48,8 +51,13 @@ public class ManualTaskOperatorUtil {
|
|
|
JSONObject jsonParam = new JSONObject();
|
|
|
jsonParam.put("url",deviceUrl);
|
|
|
jsonParam.put("port",devicePort);
|
|
|
- jsonParam.put("taskId",manualInfo.getManualId());
|
|
|
- jsonParam.put("taskNodeId",manualInfo.getManualId());
|
|
|
+ if(StringUtils.isNotBlank(manualInfo.getTaskId())){
|
|
|
+ jsonParam.put("taskId",manualInfo.getTaskId());
|
|
|
+ jsonParam.put("taskNodeId",manualInfo.getTaskNodeId());
|
|
|
+ }else{
|
|
|
+ jsonParam.put("taskId",manualInfo.getManualId());
|
|
|
+ jsonParam.put("taskNodeId",manualInfo.getManualId());
|
|
|
+ }
|
|
|
JSONObject data = new JSONObject();
|
|
|
String manualType = manualInfo.getManualIdType();
|
|
|
|
|
@@ -80,12 +88,12 @@ public class ManualTaskOperatorUtil {
|
|
|
|
|
|
/**
|
|
|
* 处理手动模式首次任务结点信息
|
|
|
- * @param robotTaskNodes
|
|
|
- * @param robotNoMoveTaskNodes
|
|
|
+ * @param robotNodes
|
|
|
* @param manualInfo
|
|
|
+ * @param taskNodes
|
|
|
* @return
|
|
|
*/
|
|
|
- public static Map<String,Object> judgeFirstProcessInfo(ArrayList<String> robotTaskNodes, ArrayList<String> robotNoMoveTaskNodes , ManualInfo manualInfo){
|
|
|
+ public static Map<String,Object> judgeFirstProcessInfo(ArrayList<String> robotNodes, ManualInfo manualInfo, List<TaskNode> taskNodes){
|
|
|
Map<String,Object> processInfo = new HashMap<String,Object>();
|
|
|
String unit = manualInfo.getDeviceUnit();
|
|
|
String manualType = manualInfo.getManualIdType();
|
|
@@ -107,38 +115,53 @@ public class ManualTaskOperatorUtil {
|
|
|
// 舱体(智能单元) 代码先写死,6个动作,后续根据resource_code表中获取
|
|
|
// 执行第一个任务
|
|
|
int currentIndex = 0;
|
|
|
- String taskType = robotTaskNodes.get(currentIndex);
|
|
|
+ String taskType = robotNodes.get(currentIndex);
|
|
|
+ if(CollectionUtil.isNotEmpty(taskNodes)){
|
|
|
+ TaskNode taskNode = taskNodes.get(currentIndex);
|
|
|
+ manualInfo.setTaskNodeId(String.valueOf(taskNode.getId()));
|
|
|
+ manualInfo.setTaskNode(taskNode);
|
|
|
+ }
|
|
|
int nextTaskNodeIndex = currentIndex +1;
|
|
|
if("move".equals(taskType)){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/MoveRobotPosition";
|
|
|
String location = manualInfo.getStartpointId();
|
|
|
- setProcessInfo(robotTaskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}
|
|
|
- if(nextTaskNodeIndex < robotTaskNodes.size() -1){
|
|
|
+ if(nextTaskNodeIndex < robotNodes.size() -1){
|
|
|
manualInfo.setNextTaskNodeIndex(nextTaskNodeIndex);
|
|
|
}
|
|
|
}else if("framework".equals(unit)){
|
|
|
int currentIndex = 0;
|
|
|
- String taskType = robotTaskNodes.get(currentIndex);
|
|
|
+ String taskType = robotNodes.get(currentIndex);
|
|
|
+ if(CollectionUtil.isNotEmpty(taskNodes)){
|
|
|
+ TaskNode taskNode = taskNodes.get(currentIndex);
|
|
|
+ manualInfo.setTaskNodeId(String.valueOf(taskNode.getId()));
|
|
|
+ manualInfo.setTaskNode(taskNode);
|
|
|
+ }
|
|
|
int nextTaskNodeIndex = currentIndex +1;
|
|
|
if("move".equals(taskType)){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/MoveRobotPosition";
|
|
|
String location = manualInfo.getStartpointId();
|
|
|
- setProcessInfo(robotTaskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}
|
|
|
- if(nextTaskNodeIndex < robotTaskNodes.size() -1){
|
|
|
+ if(nextTaskNodeIndex < robotNodes.size() -1){
|
|
|
manualInfo.setNextTaskNodeIndex(nextTaskNodeIndex);
|
|
|
}
|
|
|
}else if("safeguard".equals(unit)){
|
|
|
// 保障平台(质量中心) 代码先写死,6个动作,后续根据resource_code表中获取
|
|
|
// 执行第一个任务
|
|
|
int currentIndex = 0;
|
|
|
- String taskType = robotNoMoveTaskNodes.get(currentIndex);
|
|
|
+ String taskType = robotNodes.get(currentIndex);
|
|
|
+ if(CollectionUtil.isNotEmpty(taskNodes)){
|
|
|
+ TaskNode taskNode = taskNodes.get(currentIndex);
|
|
|
+ manualInfo.setTaskNodeId(String.valueOf(taskNode.getId()));
|
|
|
+ manualInfo.setTaskNode(taskNode);
|
|
|
+ }
|
|
|
int nextTaskNodeIndex = currentIndex +1;
|
|
|
if("get".equals(taskType)){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/GetServoStacker";
|
|
|
String location = manualInfo.getStartpointId();
|
|
|
- setProcessInfo(robotNoMoveTaskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}
|
|
|
manualInfo.setNextTaskNodeIndex(nextTaskNodeIndex);
|
|
|
}
|
|
@@ -195,11 +218,11 @@ public class ManualTaskOperatorUtil {
|
|
|
|
|
|
/**
|
|
|
* 处理手动模式回调任务结点信息
|
|
|
- * @param taskNodes
|
|
|
+ * @param robotNodes
|
|
|
* @param manualInfo
|
|
|
* @return
|
|
|
*/
|
|
|
- public static Map<String,Object> judgeProcessInfo(ArrayList<String> taskNodes, ManualInfo manualInfo, List<ProductionresourcePosition> productionresourcePositions){
|
|
|
+ public static Map<String,Object> judgeProcessInfo(ArrayList<String> robotNodes, ManualInfo manualInfo, List<ProductionresourcePosition> productionresourcePositions){
|
|
|
String unit = manualInfo.getDeviceUnit();
|
|
|
String manualType = manualInfo.getManualIdType();
|
|
|
Map<String,Object> processInfo = new HashMap<String,Object>();
|
|
@@ -222,103 +245,103 @@ public class ManualTaskOperatorUtil {
|
|
|
if("capsule".equals(unit)){
|
|
|
int currentIndex = manualInfo.getNextTaskNodeIndex();
|
|
|
int nextTaskNodeIndex = currentIndex +1;
|
|
|
- String taskType = taskNodes.get(currentIndex);
|
|
|
+ String taskType = robotNodes.get(currentIndex);
|
|
|
|
|
|
- if(taskNodes.size() == 6){
|
|
|
+ if(robotNodes.size() == 6){
|
|
|
// 舱体(柔性线) 代码先写死,6个动作,后续根据resource_code表中获取
|
|
|
// 执行第一个任务
|
|
|
if("get".equals(taskType) && currentIndex == 1){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/GetFlexibleWire";
|
|
|
String location = manualInfo.getStartpointId();
|
|
|
- setProcessInfo(taskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}else if("put".equals(taskType) && currentIndex == 2){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/SendFlexibleWire";
|
|
|
productionresourcePositions = productionresourcePositions.stream().filter(p->null == p.getGoodsId() && "1".equals(p.getLockStatus())).collect(toList());
|
|
|
|
|
|
String location = productionresourcePositions.get(0).getPointId().toString();
|
|
|
- setProcessInfo(taskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}else if("move".equals(taskType) && currentIndex == 3){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/MoveRobotPosition";
|
|
|
String location = manualInfo.getEndpointId();
|
|
|
- setProcessInfo(taskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}if("get".equals(taskType) && currentIndex == 4){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/GetFlexibleWire";
|
|
|
productionresourcePositions = productionresourcePositions.stream().filter(p->null == p.getGoodsId() && "1".equals(p.getLockStatus())).collect(toList());
|
|
|
|
|
|
String location = productionresourcePositions.get(0).getPointId().toString();
|
|
|
- setProcessInfo(taskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}else if("put".equals(taskType) && currentIndex == 5){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/SendFlexibleWire";
|
|
|
String location = manualInfo.getEndpointId();
|
|
|
- setProcessInfo(taskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}
|
|
|
manualInfo.setNextTaskNodeIndex(nextTaskNodeIndex);
|
|
|
- }else if(taskNodes.size() == 3 && currentIndex == 1){
|
|
|
+ }else if(robotNodes.size() == 3 && currentIndex == 1){
|
|
|
if("get".equals(taskType) ){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/GetFlexibleWire";
|
|
|
String location = manualInfo.getStartpointId();
|
|
|
- setProcessInfo(taskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}else if("put".equals(taskType) && currentIndex == 2){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/SendFlexibleWire";
|
|
|
String location = manualInfo.getEndpointId();
|
|
|
- setProcessInfo(taskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}
|
|
|
}
|
|
|
}else if("framework".equals(unit)){
|
|
|
int currentIndex = manualInfo.getNextTaskNodeIndex();
|
|
|
int nextTaskNodeIndex = currentIndex +1;
|
|
|
- String taskType = taskNodes.get(currentIndex);
|
|
|
+ String taskType = robotNodes.get(currentIndex);
|
|
|
|
|
|
- if(taskNodes.size() == 6){
|
|
|
+ if(robotNodes.size() == 6){
|
|
|
// 舱体(柔性线) 代码先写死,6个动作,后续根据resource_code表中获取
|
|
|
// 执行第一个任务
|
|
|
if("get".equals(taskType) && currentIndex == 1){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/GetFlexibleWire";
|
|
|
String location = manualInfo.getStartpointId();
|
|
|
- setProcessInfo(taskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}else if("put".equals(taskType) && currentIndex == 2){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/SendFlexibleWire";
|
|
|
productionresourcePositions = productionresourcePositions.stream().filter(p->null == p.getGoodsId() && "1".equals(p.getLockStatus())).collect(toList());
|
|
|
|
|
|
String location = productionresourcePositions.get(0).getPointId().toString();
|
|
|
- setProcessInfo(taskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}else if("move".equals(taskType) && currentIndex == 3){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/MoveRobotPosition";
|
|
|
String location = manualInfo.getEndpointId();
|
|
|
- setProcessInfo(taskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}if("get".equals(taskType) && currentIndex == 4){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/GetFlexibleWire";
|
|
|
productionresourcePositions = productionresourcePositions.stream().filter(p->null == p.getGoodsId() && "1".equals(p.getLockStatus())).collect(toList());
|
|
|
|
|
|
String location = productionresourcePositions.get(0).getPointId().toString();
|
|
|
- setProcessInfo(taskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}else if("put".equals(taskType) && currentIndex == 5){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/SendFlexibleWire";
|
|
|
String location = manualInfo.getEndpointId();
|
|
|
- setProcessInfo(taskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}
|
|
|
manualInfo.setNextTaskNodeIndex(nextTaskNodeIndex);
|
|
|
- }else if(taskNodes.size() == 3){
|
|
|
+ }else if(robotNodes.size() == 3){
|
|
|
if("get".equals(taskType) && currentIndex == 1){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/GetFlexibleWire";
|
|
|
String location = manualInfo.getStartpointId();
|
|
|
- setProcessInfo(taskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}else if("put".equals(taskType) && currentIndex == 2){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/SendFlexibleWire";
|
|
|
String location = manualInfo.getEndpointId();
|
|
|
- setProcessInfo(taskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}
|
|
|
}
|
|
|
}else if("safeguard".equals(unit)){
|
|
|
int currentIndex = manualInfo.getNextTaskNodeIndex();
|
|
|
int nextTaskNodeIndex = currentIndex +1;
|
|
|
- String taskType = taskNodes.get(currentIndex);
|
|
|
+ String taskType = robotNodes.get(currentIndex);
|
|
|
// 保障平台(质量中心)
|
|
|
// 执行第一个任务
|
|
|
if("put".equals(taskType)){
|
|
|
String hostSyetemTaskUrl = hostSyetemUrl + "/api/SendServoStacker";
|
|
|
String location = manualInfo.getEndpointId();
|
|
|
- setProcessInfo(taskNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
+ setProcessInfo(robotNodes, processInfo, hostSyetemTaskUrl, location, deviceUrl, devicePort);
|
|
|
}
|
|
|
manualInfo.setNextTaskNodeIndex(nextTaskNodeIndex);
|
|
|
}
|
|
@@ -328,18 +351,18 @@ public class ManualTaskOperatorUtil {
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
- * @param taskNodes
|
|
|
+ * @param robotNodes
|
|
|
* @param processInfo
|
|
|
* @param hostSyetemTaskUrl
|
|
|
* @param location
|
|
|
* @param deviceUrl
|
|
|
* @param devicePort
|
|
|
*/
|
|
|
- private static void setProcessInfo(ArrayList<String> taskNodes, Map<String, Object> processInfo, String hostSyetemTaskUrl, String location, String deviceUrl, String devicePort) {
|
|
|
+ private static void setProcessInfo(ArrayList<String> robotNodes, Map<String, Object> processInfo, String hostSyetemTaskUrl, String location, String deviceUrl, String devicePort) {
|
|
|
processInfo.put("hostSyetemTaskUrl", hostSyetemTaskUrl);
|
|
|
processInfo.put("deviceUrl", deviceUrl);
|
|
|
processInfo.put("devicePort", devicePort);
|
|
|
processInfo.put("location", location);
|
|
|
- processInfo.put("remindTaskNodes", taskNodes);
|
|
|
+ processInfo.put("remindRobotNodes", robotNodes);
|
|
|
}
|
|
|
}
|