|
|
@@ -286,17 +286,17 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
startStore = storgeMapper.selectById(flikustockInfos.get(0).getStorgeId());
|
|
|
}
|
|
|
|
|
|
- //目标库位,可能是
|
|
|
- Map returnMap = getTargetStorge(nextTaskNode,taskNode.getFindAgvFlag(),bomProcedure.getType());
|
|
|
- //目标地址和类型
|
|
|
- Storge targetStorge = returnMap.get("store")==null?null:(Storge)returnMap.get("store");
|
|
|
- String targetxbk = returnMap.get("targetxbk")==null?null:(String)returnMap.get("targetxbk");
|
|
|
-
|
|
|
-
|
|
|
- ProductionresourcePosition po = logical(robotList,targetStorge,flikustockInfos,taskNode);
|
|
|
- //机器人手抓没被锁定,并且有空闲未知
|
|
|
-
|
|
|
+ // begin modify by yejian on 20220510 for 条件检验先检查机器人,在检查目标库位
|
|
|
+ ProductionresourcePosition po = logical(robotList,flikustockInfos,taskNode);
|
|
|
+ log.info("节点{}检查机器人资源条件返回{}",taskNode.getId(),po);
|
|
|
if (po!=null) {
|
|
|
+ // 机器人可用,判断目标地址
|
|
|
+ //目标库位,可能是
|
|
|
+ Map returnMap = getTargetStorge(nextTaskNode,taskNode.getFindAgvFlag(),bomProcedure.getType());
|
|
|
+ log.info("节点{}检查目标库位是否满足返回{}",taskNode.getId(),returnMap);
|
|
|
+ //目标地址和类型
|
|
|
+ Storge targetStorge = returnMap.get("store")==null?null:(Storge)returnMap.get("store");
|
|
|
+ String targetxbk = returnMap.get("targetxbk")==null?null:(String)returnMap.get("targetxbk");
|
|
|
jqrStorge = storgeService.getById(jqrMap.get(DemoLineConstant.DEMOLINE_RJQR_ZS).get(0).getStorgeId());
|
|
|
jqrStorge.setCompleteBatchNo(task.getCompleteBatchNo());
|
|
|
storgeService.lockStorge(jqrStorge, nextTaskNode.getId());
|
|
|
@@ -327,8 +327,10 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
locationMap.put("location",startStore.getPointId());
|
|
|
dataMap.put("data", locationMap);
|
|
|
dataMap.put("method", "MoveRobotPosition");
|
|
|
+ dataMap.put("result", true);
|
|
|
}
|
|
|
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", "GetFlexibleWire");
|
|
|
@@ -361,22 +363,21 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
}
|
|
|
}else if (BizConstant.ROBOT_TYPE_NOCACHE.equals(zoneService.getRobotTypebyZone(zoneName))) {
|
|
|
TaskNode nextTaskNode = taskNodeService.getNextNTaskNode(taskNode, 1);
|
|
|
- Map returnMap = getTargetStorge(nextTaskNode,taskNode.getFindAgvFlag(),bomProcedure.getType());
|
|
|
|
|
|
//获取当前位置
|
|
|
if(CollectionUtil.isNotEmpty(flikustockInfos)){//
|
|
|
startStore = storgeMapper.selectById(flikustockInfos.get(0).getStorgeId());
|
|
|
}
|
|
|
-
|
|
|
- //目标地址和类型
|
|
|
- Storge targetStorge = returnMap.get("store")==null?null:(Storge)returnMap.get("store");
|
|
|
- String targetxbk = returnMap.get("targetxbk")==null?null:(String)returnMap.get("targetxbk");
|
|
|
- Storge agvEndStationStorge = returnMap.get("agvEndStationStorge")==null?null:(Storge)returnMap.get("agvEndStationStorge");
|
|
|
-
|
|
|
dataMap.put("method", "GetServoStacker");
|
|
|
- ProductionresourcePosition po = logical(robotList,targetStorge,flikustockInfos,taskNode);
|
|
|
-
|
|
|
- if (po!=null) {//机器人只有一只手
|
|
|
+ // begin modify by yejian on 20220510 for 条件检验先检查机器人,在检查目标库位
|
|
|
+ ProductionresourcePosition po = logical(robotList,flikustockInfos,taskNode);
|
|
|
+ log.info("节点{}检查机器人资源条件返回{}",taskNode.getId(),po);
|
|
|
+ if (po!=null) {
|
|
|
+ Map returnMap = getTargetStorge(nextTaskNode,taskNode.getFindAgvFlag(),bomProcedure.getType());
|
|
|
+ log.info("节点{}检查目标库位是否满足返回{}",taskNode.getId(),returnMap);
|
|
|
+ //目标地址和类型
|
|
|
+ Storge targetStorge = returnMap.get("store")==null?null:(Storge)returnMap.get("store");
|
|
|
+ String targetxbk = returnMap.get("targetxbk")==null?null:(String)returnMap.get("targetxbk");
|
|
|
jqrStorge = storgeService.getById(robotList.get(0).getStorgeId());
|
|
|
|
|
|
dataMap.put("fromStorge", startStore);
|
|
|
@@ -413,8 +414,9 @@ 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);
|
|
|
+ }else{
|
|
|
+ dataMap.put("result", po!=null);
|
|
|
}
|
|
|
- dataMap.put("result", po!=null);
|
|
|
}
|
|
|
}else if ("放".equals(functionName)) {
|
|
|
Storge targetStorge = msgUtil.redis_get(DemoCacheKey.YUNJIAN_CAMP + "_" + DemoLineConstant.YUNJIAN_TARGET_STORE + taskNode.getId())==null?null:(Storge)msgUtil.redis_get(DemoCacheKey.YUNJIAN_CAMP + "_" + DemoLineConstant.YUNJIAN_TARGET_STORE + taskNode.getId());
|
|
|
@@ -520,6 +522,8 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
TaskNode lastAgvTaskNode = taskNodeService.getNextNTaskNode(taskNode,1);;
|
|
|
//获取接驳位。agvEndStationStorge
|
|
|
Map map = storgeService.getPlateStorgeByNo(zZone);
|
|
|
+
|
|
|
+
|
|
|
targetStorge = map.get("storge") ==null?null:(Storge)map.get("storge");
|
|
|
String targetResourceId = map.get("resourceId") ==null?null:(String)map.get("resourceId");
|
|
|
// 在向下找agv终点位子
|
|
|
@@ -530,7 +534,8 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
zoneId = zoneProductionresource.getZoneId();
|
|
|
zZone = zoneService.getById(zoneId);
|
|
|
String[] jbwArr = DictionaryKey.YJ_ZONE_JBW.get(zZone.getName()).split(",");
|
|
|
- List<ProductionresourcePosition> jbwBList = productionresourcePositionService.getFreeProductionresourcePositionByNos(jbwArr);
|
|
|
+ List<ProductionresourcePosition> jbwBList = productionresourcePositionService.getFreeProductionresourceAgvPositionByNos(jbwArr);
|
|
|
+ log.info("节点{},查询终点接驳位接驳位数量{}",taskNode.getId(),jbwBList);
|
|
|
if(targetStorge!=null&&CollectionUtil.isNotEmpty(jbwBList)){
|
|
|
|
|
|
ProductionresourcePosition position = null;
|
|
|
@@ -538,9 +543,9 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
position = productionresourcePosition;
|
|
|
break;
|
|
|
}
|
|
|
+ log.info("节点{},查询到起点接驳位{}",taskNode.getId(),position);
|
|
|
if(null!=position){
|
|
|
agvEndStationStorge =storgeService.getById(position.getStorgeId());
|
|
|
-
|
|
|
//更新到targetresourceid
|
|
|
// TaskNode nextTaskNode = taskNodeService.getNextNTaskNode(taskNode,1);
|
|
|
taskNode.setTargetResourceId(Long.parseLong(targetResourceId));
|
|
|
@@ -548,6 +553,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
lastAgvTaskNode.setResourceId(taskNode.getTargetResourceId());
|
|
|
taskNodeService.updateById(taskNode);
|
|
|
taskNodeService.updateById(lastAgvTaskNode);
|
|
|
+ log.info("节点{},更新相应节点接驳位信息完成",taskNode.getId());
|
|
|
}
|
|
|
|
|
|
returnMap.put("store",targetStorge);
|
|
|
@@ -603,6 +609,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
//目标设备
|
|
|
if(resourceId!=null){
|
|
|
targetList = productionresourcePositionService.getFreeProductionresourcePositionByIds(new String[] {resourceId.toString()});
|
|
|
+ log.info("节点{},查找目标设备可用信息{}",taskNode.getId(),targetList);
|
|
|
if(CollectionUtil.isNotEmpty(targetList)){
|
|
|
targetStorge = storgeService.getById(targetList.get(0).getStorgeId());
|
|
|
returnMap.put("store",targetStorge);
|
|
|
@@ -625,6 +632,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
//获取机器人操作线边库
|
|
|
xbkArr = DictionaryKey.YJ_ZONE_XBK.get(zoneName).split(",");
|
|
|
xbkList = productionresourcePositionService.getFreeProductionresourcePositionByNos(xbkArr);
|
|
|
+ log.info("查找线边库库位{}",xbkList);
|
|
|
if(CollectionUtil.isNotEmpty(xbkList)){
|
|
|
ProductionresourcePosition position = xbkList.get(0);
|
|
|
targetStorge = storgeService.getById(position.getStorgeId());
|
|
|
@@ -642,7 +650,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
* @param robotList
|
|
|
* @return
|
|
|
*/
|
|
|
- public ProductionresourcePosition logical(List<ProductionresourcePosition> robotList,Storge targetStorge,List<StockInfo>flikustockInfos,TaskNode taskNode){
|
|
|
+ public ProductionresourcePosition logical(List<ProductionresourcePosition> robotList,List<StockInfo>flikustockInfos,TaskNode taskNode){
|
|
|
if(taskNode.getCompleteBatchSort()==1){
|
|
|
if(CollectionUtil.isEmpty(flikustockInfos)){
|
|
|
return null;
|
|
|
@@ -661,10 +669,10 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- if(targetStorge==null){
|
|
|
-// map.put("msg", DictionaryKey.NodeException.NO_RESOURCE);
|
|
|
- return null;
|
|
|
- }
|
|
|
+// if(targetStorge==null){
|
|
|
+//// map.put("msg", DictionaryKey.NodeException.NO_RESOURCE);
|
|
|
+// return null;
|
|
|
+// }
|
|
|
|
|
|
return robotList.get(0);
|
|
|
}
|