姚云青 vor 3 Jahren
Ursprung
Commit
4e8308bb9c

+ 3 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/DemoLine/DemoLineConstant.java

@@ -43,6 +43,9 @@ public interface DemoLineConstant {
     //云箭目标库位
     String YUNJIAN_TARGET_STORE = "YUNJIAN_TARGET_STORE";
 
+    //云箭目标库位 是否线边库标志
+    String YUNJIAN_TARGET_XBK_FLAG = "YUNJIAN_TARGET_XBK_FLAG";
+
 
     //柔性机器人的三个点位
     String YUJIAN_SFTJ_ = "371";

+ 1 - 1
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/WorkpieceService.java

@@ -66,7 +66,7 @@ public interface WorkpieceService extends SuperService<TWorkpiece> {
     public List<Tray>traylist();
 
 
-    public void setWorkPieceStock(String completeBatchNo,String targetStorgeId,String  parentStorgeId);
+    public void setWorkPieceStock(String completeBatchNo,String currStorgeId,String parentStorgeId,String targetStorgeId);
 
 
     public Storge getWorkPieceStock(Long taskNodeId, boolean isParent);

+ 1 - 1
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/TaskNodeServiceImpl.java

@@ -1545,7 +1545,7 @@ public class TaskNodeServiceImpl extends SuperServiceImpl<TaskNodeMapper, TaskNo
         String targetStorgeId = callBackJson.getString("targetPostion");
 
         //更新目标位置
-        workpieceService.setWorkPieceStock(taskNode.getCompleteBatchNo(),targetStorgeId,"");
+        workpieceService.setWorkPieceStock(taskNode.getCompleteBatchNo(),targetStorgeId,"","");
 
         if (DemoLineConstant.DEMOLINE_STOCK_TYPE_METERIAL_RK.equals(stockType)) {
             List<BomProcedureMeterial> meterialList = bomProcedureMeterialService.list(Wraps.<BomProcedureMeterial>lbQ().eq(BomProcedureMeterial::getId, task.getProcedureMeterialId()));

+ 9 - 3
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/WorkpieceServiceImpl.java

@@ -501,12 +501,12 @@ public class WorkpieceServiceImpl extends SuperServiceImpl<WorkpieceMapper, TWor
     }
 
     @Override
-    public void setWorkPieceStock(String completeBatchNo,String targetStorgeId,String parentStorgeId) {
+    public void setWorkPieceStock(String completeBatchNo,String currStorgeId,String parentStorgeId,String targetStorgeId) {
         List<TWorkpiece>list = baseMapper.selectList(Wraps.<TWorkpiece>lbQ().eq(TWorkpiece::getCompleteBatchNo,completeBatchNo));
         if(CollectionUtil.isNotEmpty(list)){
             TWorkpiece tWorkpiece = list.get(0);
-            Storge storge = storgeMapper.selectById(targetStorgeId);
-            tWorkpiece.setStorgeId(Long.parseLong(targetStorgeId));
+            Storge storge = storgeMapper.selectById(currStorgeId);
+            tWorkpiece.setStorgeId(Long.parseLong(currStorgeId));
             tWorkpiece.setPointId(storge.getPointId());
 
             if(StringUtil.isNotEmpty(parentStorgeId)){
@@ -515,6 +515,12 @@ public class WorkpieceServiceImpl extends SuperServiceImpl<WorkpieceMapper, TWor
                 tWorkpiece.setPpointId(pstorge.getPointId());
             }
 
+            if(StringUtil.isNotEmpty(targetStorgeId)){
+                Storge tstorge = storgeMapper.selectById(targetStorgeId);
+                tWorkpiece.setTstorgeId(Long.parseLong(targetStorgeId));
+                tWorkpiece.setTpointId(tstorge.getPointId());
+            }
+
             baseMapper.updateAllById(tWorkpiece);
         }
     }

+ 23 - 6
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/service/impl/RobotNodeServiceImpl.java

@@ -351,7 +351,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
 
                     //目标地址和类型
                     Storge targetStorge = returnMap.get("store")==null?null:(Storge)returnMap.get("store");
-                    String type = returnMap.get("type")==null?null:(String)returnMap.get("store");
+                    String targetxbk = returnMap.get("targetxbk")==null?null:(String)returnMap.get("targetxbk");
 
                     //机器人手抓没被锁定,并且有空闲未知
                     if (logical(robotList,targetStorge)!=null) {
@@ -377,6 +377,9 @@ public class RobotNodeServiceImpl implements NodeOperationService {
                         //目标缓存
                         msgUtil.redis_set(DemoCacheKey.YUNJIAN_CAMP + "_" + DemoLineConstant.YUNJIAN_TARGET_STORE + nextTaskNode.getId(), targetStorge, 1, TimeUnit.DAYS);
 
+                        //目标是线边库
+                        msgUtil.redis_set(DemoCacheKey.YUNJIAN_CAMP + "_" + DemoLineConstant.YUNJIAN_TARGET_XBK_FLAG + nextTaskNode.getId(), targetxbk, 1, TimeUnit.DAYS);
+
                         //满足条件--机器人空闲,设备或线边库有一个空闲
                         dataMap.put("Data", startStore);
                         dataMap.put(DemoLineConstant.DEMOLINE_BIZ_TYPE, "moveMaterial");
@@ -411,7 +414,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
 
                 //目标地址和类型
                 Storge targetStorge = returnMap.get("store")==null?null:(Storge)returnMap.get("store");
-                String type = returnMap.get("type")==null?null:(String)returnMap.get("store");
+                String targetxbk = returnMap.get("targetxbk")==null?null:(String)returnMap.get("targetxbk");
 
                 dataMap.put("zkIp", ZK_ip_zndy);
                 dataMap.put(DemoLineConstant.DEMOLINE_BIZ_TYPE, "fetchMaterial");
@@ -423,7 +426,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
                     //目的地为机器人手臂
                     dataMap.put("toStorge", jqrStorge);
 
-                    dataMap.put("bizType", type);
+                    dataMap.put("bizType", targetxbk);
                     //锁定机器人
                     jqrStorge.setCompleteBatchNo(task.getCompleteBatchNo());
                     storgeService.lockStorge(jqrStorge, nextTaskNode.getId());
@@ -437,6 +440,9 @@ public class RobotNodeServiceImpl implements NodeOperationService {
                     msgUtil.redis_set(DemoCacheKey.YUNJIAN_CAMP + "_" + YunjianConstant.YUNJIAN_JXS + taskNode.getId(), jqrStorge, 1, TimeUnit.DAYS);
                     //目标缓存
                     msgUtil.redis_set(DemoCacheKey.YUNJIAN_CAMP + "_" + DemoLineConstant.YUNJIAN_TARGET_STORE + nextTaskNode.getId(), targetStorge, 1, TimeUnit.DAYS);
+
+                    //目标是线边库
+                    msgUtil.redis_set(DemoCacheKey.YUNJIAN_CAMP + "_" + DemoLineConstant.YUNJIAN_TARGET_XBK_FLAG + nextTaskNode.getId(), targetxbk, 1, TimeUnit.DAYS);
                     dataMap.put("result", true);
                 }
             }
@@ -468,6 +474,11 @@ public class RobotNodeServiceImpl implements NodeOperationService {
 
                     Storge handStorge = (Storge)msgUtil.redis_get(DemoCacheKey.YUNJIAN_CAMP + "_" + YunjianConstant.YUNJIAN_JXS + taskNode.getId());
                     dataMap.put("fromStorge", handStorge);
+                    String targetxbk =(String)msgUtil.redis_get(DemoCacheKey.YUNJIAN_CAMP + "_" + DemoLineConstant.YUNJIAN_TARGET_XBK_FLAG + taskNode.getId());
+                    if("1".equals(targetxbk)){
+                        dataMap.put(YunjianConstant.DEMOLINE_XBKFLAG, YunjianConstant.DEMOLINE_XBKFLAG);
+                        dataMap.put(YunjianConstant.DEMOLINE_XBKFLAG, YunjianConstant.DEMOLINE_XBKFLAG);
+                    }
                 }
             }else if (BizConstant.ROBOT_TYPE_NOCACHE.equals(zoneService.getRobotTypebyZone(zoneName))) {
                 dataMap.put("zkIp",ZK_ip_zndy);
@@ -475,6 +486,11 @@ public class RobotNodeServiceImpl implements NodeOperationService {
                 dataMap.put("toStorge", targetStorge);
                 dataMap.put("Data", targetStorge);
                 dataMap.put(DemoLineConstant.DEMOLINE_STOCK_TYPE,DemoLineConstant.DEMOLINE_STOCK_TYPE_ALL_CRK);
+                String targetxbk =(String)msgUtil.redis_get(DemoCacheKey.YUNJIAN_CAMP + "_" + DemoLineConstant.YUNJIAN_TARGET_XBK_FLAG + taskNode.getId());
+                if("1".equals(targetxbk)){
+                    dataMap.put(YunjianConstant.DEMOLINE_XBKFLAG, YunjianConstant.DEMOLINE_XBKFLAG);
+                    dataMap.put(YunjianConstant.DEMOLINE_XBKFLAG, YunjianConstant.DEMOLINE_XBKFLAG);
+                }
             }
             dataMap.put("result", true);
         }
@@ -508,7 +524,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
             if(CollectionUtil.isNotEmpty(targetList)){
                 targetStorge = storgeService.getById(targetList.get(0).getStorgeId());
                 returnMap.put("store",targetStorge);
-                returnMap.put("bizType","common");
+                returnMap.put("targetxbk","0");
             }else{//需要放到线边库
                 xbkFlag = "1";
             }
@@ -517,7 +533,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
             targetStorge = map.get("storge") ==null?null:(Storge)map.get("storge");
             if(targetStorge!=null){
                 returnMap.put("store",targetStorge);
-                returnMap.put("bizType","common");
+                returnMap.put("targetxbk","0");
             }else{//需要放到线边库
                 xbkFlag = "1";
             }
@@ -530,7 +546,8 @@ public class RobotNodeServiceImpl implements NodeOperationService {
             if(CollectionUtil.isNotEmpty(xbkList)){
                 ProductionresourcePosition position = xbkList.get(0);
                 targetStorge = storgeService.getById(position.getStorgeId());
-                returnMap.put("bizType","xbk");
+                returnMap.put("store",targetStorge);
+                returnMap.put("targetxbk","1");
             }
 
 

+ 1 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/util/MsgUtil.java

@@ -104,6 +104,7 @@ public class MsgUtil implements ApplicationContextAware {
                         jsonObject.put(taskNode.getId().toString()+"count",count);
                         //把当前节点推送到mq
                         jsonObject.put("taskNodeId",taskNode.getId().toString());
+                        jsonObject.put(YunjianConstant.DEMOLINE_XBKFLAG,YunjianConstant.DEMOLINE_XBKFLAG);
                         dynamicRabbitMq.sendMsg(taskNode.getResourceId().toString(),jsonObject.toString());
                         return;
                     }