Browse Source

刀具管理功能处理

oyq28 3 weeks ago
parent
commit
c02c2bce41

+ 17 - 59
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/strategy/impl/ToolRobotStrategy.java

@@ -232,7 +232,7 @@ public class ToolRobotStrategy implements RobotStrategy {
 
 
         Map locationMap = new HashMap();
         Map locationMap = new HashMap();
         locationMap.put("location", startStorge.getPointId());  //零件当前位置
         locationMap.put("location", startStorge.getPointId());  //零件当前位置
-        locationMap.put("destLocation", targetStorge.getPointId()); //机器人缓存
+        locationMap.put("destLocation", targetStorge.getPointId()); //机器人目标
 
 
         TTask task = taskService.getById(taskNode.getTaskId());
         TTask task = taskService.getById(taskNode.getTaskId());
         OrderTask orderTask = orderTaskService.getOne(new LbqWrapper<OrderTask>().eq(OrderTask::getOrderId, task.getOrderId()).last("LIMIT 1"));
         OrderTask orderTask = orderTaskService.getOne(new LbqWrapper<OrderTask>().eq(OrderTask::getOrderId, task.getOrderId()).last("LIMIT 1"));
@@ -267,70 +267,26 @@ public class ToolRobotStrategy implements RobotStrategy {
         ZZone zZone = (ZZone) robotInfo.get("zZone");
         ZZone zZone = (ZZone) robotInfo.get("zZone");
         String zoneName = zZone.getName();
         String zoneName = zZone.getName();
         List<ProductionresourcePosition> xbkList = productionresourcePositionService.getFreeProductionresourcePositionByNos(DictionaryKey.YJ_ZONE_XBK.get(zoneName+"-tool").split(","));
         List<ProductionresourcePosition> xbkList = productionresourcePositionService.getFreeProductionresourcePositionByNos(DictionaryKey.YJ_ZONE_XBK.get(zoneName+"-tool").split(","));
-
+        if(orderTask.getIsXbk().equals(0)){
+            dataMap.put("result", false);
+            dataMap.put("resultMsg", "自定义订单不支持刀具线边库");
+            return dataMap;
+        }
         Map returnMap = this.robotTarget(taskNode, orderTask, xbkList, bomProcedure, dataMap);
         Map returnMap = this.robotTarget(taskNode, orderTask, xbkList, bomProcedure, dataMap);
-        return returnMap;
+        Long targetStorgeResourceId = !returnMap.containsKey("storeResourceId") ? null : Long.valueOf(returnMap.get("storeResourceId").toString());
+        if(null == targetStorgeResourceId || xbkList.size()==0){
+            dataMap.put("result", false);
+            dataMap.put("resultMsg", "刀具线边库条件不允许");
+            return dataMap;
+        }
+        Map putMap = this.robotPut(returnMap, taskNode, startStorge, endStorge, xbkList, "1", targetStorgeResourceId);
+        return putMap;
     }
     }
 
 
     //获取目标地址
     //获取目标地址
     public Map robotTarget(TaskNode taskNode, OrderTask orderTask, List<ProductionresourcePosition> xbkList, BomProcedure bomProcedure, Map<String, Object> returnMap) {
     public Map robotTarget(TaskNode taskNode, OrderTask orderTask, List<ProductionresourcePosition> xbkList, BomProcedure bomProcedure, Map<String, Object> returnMap) {
         List<ProductionresourcePosition> targetList = null;
         List<ProductionresourcePosition> targetList = null;
         Long targetResourceId = taskNode.getTargetResourceId();
         Long targetResourceId = taskNode.getTargetResourceId();
-/*
-        if(targetResourceId == null){
-            //msgUtil.createWarnLog("刀具节点目标位数据为空","DataException");
-            returnMap.put("resultMsg","刀具节点目标位数据为空");
-            returnMap.put("result", false);
-            return null;
-        }
-        targetList = productionresourcePositionService.getFreeProductionresourcePositionByIds(new String[]{targetResourceId.toString()});
-        if(CollectionUtil.isEmpty(targetList)){
-            //msgUtil.createWarnLog("刀具节点目标位被占用","DataException");
-            returnMap.put("resultMsg","刀具节点目标位被占用");
-            returnMap.put("result", false);
-            return null;
-        }
-        //按类型获取目标库位
-        Storge targetStorge = null;
-        if(StringUtil.isNotEmpty(orderTask.getGoal())){
-            String pointId = orderTask.getGoal().replace("CT_", "");
-            List<ProductionresourcePosition> positionList = targetList.stream().filter(item->item.getPointId().equals(pointId)).collect(Collectors.toList());
-            targetStorge = storgeService.getById(positionList.get(0).getStorgeId());
-        }else{
-            targetStorge = storgeService.getById(targetList.get(0).getStorgeId());
-        }
-        //CCS判断目标位点位是否允许放置判断
-        boolean bool = true;
-        String pointId = targetStorge.getPointId();
-        if(pointId.contains(DemoLineConstant.DEMOLINE_CUT_TOOL_TYPE_CNCT)){
-            //从机床刀具库放需要预置处理
-            Object cutToolAction = msgUtil.redis_get(DemoLineConstant.DEMOLINE_CUT_DEVICE_ACTION);
-            if(ObjectUtil.isEmpty(cutToolAction)){
-                this.CNCTActionHandle(taskNode, true, pointId, orderTask);
-                msgUtil.redis_set(DemoLineConstant.DEMOLINE_CUT_DEVICE_ACTION, taskNode.getId().toString(),10, TimeUnit.MINUTES);
-
-                returnMap.put("resultMsg","机床CNC状态转动指令已下发");
-                returnMap.put("result", false);
-                return null;
-            }
-        }
-
-        //todo 与ccs联调需要释放  $需要换地址$
-        String resultMsg = null;
-        if(imcsTOccsEnable){
-            String resultData = this.cutToolActionCondition("/api/getCutterDeviceIsPut", taskNode, pointId);
-            JSONObject resultObj = JSONObject.parseObject(resultData);
-            resultMsg = resultObj.getString("resultMsg");
-            bool = resultObj.getBoolean("result");
-        }
-
-        if(!bool){
-//            msgUtil.createWarnLog("刀具节点目标位放置条件不满足","DataException");
-            returnMap.put("resultMsg",resultMsg ==null? "刀具节点目标位放置条件不满足": resultMsg);
-            returnMap.put("result", false);
-            return null;
-
- */
         String xbkFlag = "";
         String xbkFlag = "";
         Storge startStorge = null;
         Storge startStorge = null;
         Storge targetStorge = null;
         Storge targetStorge = null;
@@ -380,7 +336,9 @@ public class ToolRobotStrategy implements RobotStrategy {
                 }
                 }
             }
             }
         }
         }
-        if ("1".equals(xbkFlag)) {
+
+        //天轨机器人目标去刀具上下料站 可以激活刀架线边库模式
+        if ("1".equals(xbkFlag) && orderTask.getIsXbk().equals("1")) {
             ProductionresourcePosition position = xbkList.get(0);
             ProductionresourcePosition position = xbkList.get(0);
             targetStorge = storgeService.getById(position.getStorgeId());
             targetStorge = storgeService.getById(position.getStorgeId());
             returnMap.put("storeResourceId", position.getResourceId());
             returnMap.put("storeResourceId", position.getResourceId());

+ 6 - 2
imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/productionResourceCenter/StationUserController.java

@@ -268,9 +268,13 @@ public class StationUserController extends SuperController<StationUserService, L
         params.put("orderProductList", orderProductList);
         params.put("orderProductList", orderProductList);
 
 
         Order order = orderService.save(params);
         Order order = orderService.save(params);
-        //String goal = model.containsKey("goal")? model.get("goal").toString() : "BZ_367";
+        String goalType = model.containsKey("goalType")? model.get("goalType").toString() : null;
+        String start = model.containsKey("start")? model.get("start").toString() : null;
+        if(StringUtil.isEmpty(goalType) || StringUtil.isEmpty(start)) return R.fail("传参有误");
+        //目标位是刀具上下料站 则启用天轨线边库刀架支持
+        String isXbk = (goalType.contains("365") || goalType.contains("366")) && start.contains("CNC0") ? "1": "0";
         OrderTask orderTask = OrderTask.builder().orderId(order.getId())
         OrderTask orderTask = OrderTask.builder().orderId(order.getId())
-                .hasMaterial("0").isMachine("0").isXbk("1").start(model.get("start").toString()).goal(model.get("goal").toString())
+                .hasMaterial("0").isMachine("0").isXbk(isXbk).start(model.get("start").toString()).goal(model.get("goal").toString())
                 .cutStartNo(model.get("cutStartNo").toString()).cutGoalNo(model.get("cutGoalNo").toString())
                 .cutStartNo(model.get("cutStartNo").toString()).cutGoalNo(model.get("cutGoalNo").toString())
                 .build();
                 .build();
         orderTaskService.save(orderTask);
         orderTaskService.save(orderTask);