|
|
@@ -291,6 +291,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
int count = Integer.parseInt(dataMap.get(taskNode.getId().toString() + "count") == null ? "0" : dataMap.get(taskNode.getId().toString() + "count").toString());
|
|
|
|
|
|
Storge startStore = workpieceService.getWorkPieceStock(taskNode.getCompleteBatchNo(), false);
|
|
|
+
|
|
|
//目的库位
|
|
|
Storge jqrStorge = null;
|
|
|
|
|
|
@@ -317,18 +318,20 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
if(CollectionUtil.isNotEmpty(flikustockInfos)){//
|
|
|
startStore = storgeMapper.selectById(flikustockInfos.get(0).getStorgeId());
|
|
|
}
|
|
|
-
|
|
|
+ log.info("节点{}查找物料所在位子{}",taskNode.getId(),startStore.getPointId());
|
|
|
// begin modify by yejian on 20220510 for 条件检验先检查机器人,在检查目标库位
|
|
|
ProductionresourcePosition po = logical(robotList,flikustockInfos,taskNode);
|
|
|
- log.info("节点{}检查机器人资源条件返回{}",taskNode.getId(),po);
|
|
|
- if (po!=null) {
|
|
|
+ log.info("节点{}检查机器人资源{}点位返回{}",taskNode.getId(),po.getResourceId(),po.getPointId());
|
|
|
+ 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");
|
|
|
+ log.info("节点{}检查目标库位是否满足返回{}",taskNode.getId(),targetStorge.getPointId());
|
|
|
if(null != targetStorge){
|
|
|
+
|
|
|
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());
|
|
|
@@ -342,7 +345,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
//锁定目标库位
|
|
|
targetStorge.setCompleteBatchNo(task.getCompleteBatchNo());
|
|
|
storgeService.lockStorge(targetStorge, nextTaskNode.getId());
|
|
|
-
|
|
|
+ log.info("节点{}提前占用机器人抓手{},缓存位{},目标库位{}",taskNode.getId(),jqrStorge.getPointId(),hcwStorge.getPointId(),targetStorge.getPointId());
|
|
|
//抓手缓存
|
|
|
msgUtil.redis_set(DemoCacheKey.YUNJIAN_CAMP + "_" + YunjianConstant.YUNJIAN_JXS + nextTaskNode.getId(), jqrStorge, 1, TimeUnit.DAYS);
|
|
|
msgUtil.redis_set(DemoCacheKey.YUNJIAN_CAMP + "_" + YunjianConstant.YUNJIAN_JXS + taskNode.getId(), jqrStorge, 1, TimeUnit.DAYS);
|
|
|
@@ -361,7 +364,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
dataMap.put("data", locationMap);
|
|
|
dataMap.put("method", "MoveRobotPosition");
|
|
|
dataMap.put("result", true);
|
|
|
- // dataMap.put("bizType", targetxbk);
|
|
|
+// dataMap.put("bizType", targetxbk);
|
|
|
// begin modify by yejian on 20220520 for 解决资源抢占时机器人是空闲状态但是实际上面有料不能操作的时候请求指令接口返回失败后进入死循环问题
|
|
|
// TODO 后续可改成信号对接判断,先如果返回失败释放资源进去队列重新轮训
|
|
|
// 返回内容中记录当前任务占用资源
|
|
|
@@ -424,10 +427,11 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
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");
|
|
|
+ log.info("节点{}检查目标库位是否满足返回{}",taskNode.getId(),targetStorge.getPointId());
|
|
|
|
|
|
// 立库取子盘到人工上下料站资源不可用时不能进入线边库
|
|
|
if(taskNode.getCompleteBatchSort()==1 && "1".equals(targetxbk)){
|
|
|
@@ -452,7 +456,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
//目的地为机器人手臂
|
|
|
dataMap.put("toStorge", jqrStorge);
|
|
|
|
|
|
- dataMap.put("bizType", targetxbk);
|
|
|
+// dataMap.put("bizType", targetxbk);
|
|
|
//锁定机器人
|
|
|
jqrStorge.setCompleteBatchNo(task.getCompleteBatchNo());
|
|
|
storgeService.lockStorge(jqrStorge, nextTaskNode.getId());
|
|
|
@@ -614,7 +618,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
ZZone agvGoalZone = zoneService.getById(agvGoalZoneId);
|
|
|
String[] jbwArr = DictionaryKey.YJ_ZONE_JBW.get(agvGoalZone.getName()).split(",");
|
|
|
List<ProductionresourcePosition> jbwBList = productionresourcePositionService.getFreeProductionresourceAgvPositionByNos(jbwArr);
|
|
|
- log.info("节点{},查询终点接驳位接驳位数量{}",taskNode.getId(),jbwBList);
|
|
|
+// log.info("节点{},查询终点接驳位接驳位数量{}",taskNode.getId(),jbwBList);
|
|
|
if(targetStorge!=null&&CollectionUtil.isNotEmpty(jbwBList)){
|
|
|
|
|
|
ProductionresourcePosition position = null;
|
|
|
@@ -622,7 +626,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
position = productionresourcePosition;
|
|
|
break;
|
|
|
}
|
|
|
- log.info("节点{},查询到终点接驳位{}",taskNode.getId(),position);
|
|
|
+// log.info("节点{},查询到终点接驳位{}",taskNode.getId(),position);
|
|
|
if(null!=position){
|
|
|
agvEndStationStorge =storgeService.getById(position.getStorgeId());
|
|
|
//更新到targetresourceid
|
|
|
@@ -632,7 +636,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
lastAgvTaskNode.setResourceId(taskNode.getTargetResourceId());
|
|
|
taskNodeService.updateById(taskNode);
|
|
|
taskNodeService.updateById(lastAgvTaskNode);
|
|
|
- log.info("节点{},更新相应节点接驳位信息完成",taskNode.getId());
|
|
|
+// log.info("节点{},更新相应节点接驳位信息完成",taskNode.getId());
|
|
|
}
|
|
|
|
|
|
returnMap.put("store",targetStorge);
|
|
|
@@ -690,7 +694,6 @@ 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);
|
|
|
@@ -721,7 +724,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
|
xbkArr = DictionaryKey.YJ_ZONE_XBK.get(zoneName).split(",");
|
|
|
xbkList = productionresourcePositionService.getFreeProductionresourcePositionByNos(xbkArr);
|
|
|
}
|
|
|
- log.info("查找线边库库位{}",xbkList);
|
|
|
+ log.info("查找线边库库位{}",xbkList.get(0).getPointId());
|
|
|
if(CollectionUtil.isNotEmpty(xbkList)){
|
|
|
ProductionresourcePosition position = xbkList.get(0);
|
|
|
targetStorge = storgeService.getById(position.getStorgeId());
|