Sfoglia il codice sorgente

【上下料站任务按钮】节点锁定和解锁

lxb 1 anno fa
parent
commit
5a5ac96d00

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

@@ -1432,6 +1432,10 @@ public class TaskNodeServiceImpl extends SuperServiceImpl<TaskNodeMapper, TaskNo
             return R.fail(-5, "任务不存在");
         }
 
+        //清除节点锁定
+        Object obj = msgUtil.redis_get(CacheKey.TASK_NODE_LOCK + "_" + taskNodeId);
+        if (!Objects.isNull(obj)) msgUtil.redis_del(CacheKey.TASK_NODE_LOCK + "_" + taskNodeId);
+
         //验证是否重复回调
         String repeatKey = taskNodeId + taskId;
 
@@ -2907,7 +2911,7 @@ planId));
         int isReload = tWorkpiece.getIsReload();
         boolean bool2 = true;
         if(StringUtils.isNotEmpty(srcStorgeId)){
-            bool2 = stockInfoList.get(0).getStorgeId().equals(srcStorgeId) || stockInfoList.get(1).getStorgeId().equals(srcStorgeId);
+            bool2 = stockInfoList.get(0).getStorgeId().toString().equals(srcStorgeId) || stockInfoList.get(1).getStorgeId().toString().equals(srcStorgeId);
         }
         if (CollectionUtil.isNotEmpty(stockInfoList) && bool2) {
                 boolean bool = stockInfoList.get(0).getStorgeId().equals(stockInfoList.get(1).getStorgeId());

+ 11 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/TaskServiceImpl.java

@@ -1234,6 +1234,9 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
             if(currstorge!=null){
                 jsonObject.put("updateUser", updateUser);
                 if("1".equals(processType)){
+                    //锁定当前节点
+                    msgUtil.redis_set(CacheKey.TASK_NODE_LOCK + "_" +taskNode.getId(),currstorge,1,TimeUnit.DAYS);
+
                     String meterialId = map.get("meterialId").toString();
                     String uniqueCode = map.get("uniqueCode").toString();
                     // 上料
@@ -1286,6 +1289,10 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
                     jsonObject.put(DemoLineConstant.DEMOLINE_STOCK_TYPE, DemoLineConstant.DEMOLINE_STOCK_TYPE_TRAY_CRK);
                     taskNodeService.taskNodeCallbackBiz(taskNode, tTask, taskNodeList, lg, jsonObject.toJSONString());
                 }else if("5".equals(processType)){
+
+                    //锁定当前节点
+                    msgUtil.redis_set(CacheKey.TASK_NODE_LOCK + "_" +taskNode.getId(),currstorge,1,TimeUnit.DAYS);
+
                     //工序上料
                     jsonObject.put("srcPosition", "");
                     //jsonObject.put("srcPosition", this.getTaskStorge(tTask));
@@ -1496,6 +1503,10 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
         //判断上下料站是否已经被任务锁定
         locked = storge.getLockStatus().equals("0") && StringUtil.isNotEmpty(storge.getCompleteBatchNo()) && storge.getCampId()!=null;
 
+        //判断当前节点是否被锁定(预防重复执行)
+        Object obj = msgUtil.redis_get(CacheKey.TASK_NODE_LOCK + "_" + taskNode.getId());
+        if (!Objects.isNull(obj)) locked = true;
+
         List<StockInfo> stockInfoList = stockInfoService.list(new LbqWrapper<StockInfo>().eq(StockInfo::getStorgeId, storgeId).orderByAsc(StockInfo::getGoodsType));
         int existed  = stockInfoList.size();
         // 工装零件是否适配