| | |
| | | import com.zy.asrs.wcs.core.utils.*; |
| | | import com.zy.asrs.wcs.rcs.News; |
| | | import com.zy.asrs.wcs.rcs.cache.SlaveConnection; |
| | | import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant; |
| | | import com.zy.asrs.wcs.rcs.entity.Device; |
| | | import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType; |
| | | import com.zy.asrs.wcs.rcs.model.enums.SlaveType; |
| | |
| | | |
| | | Double similarity = navigateUtils.similarityPath(originPath, finalPath); |
| | | if (similarity <= similarityRef) { |
| | | Object object = redisUtil.get(DeviceRedisConstant.SIMILARITY_TIMES + motion.getTaskNo()); |
| | | if (object == null) { |
| | | redisUtil.set(DeviceRedisConstant.SIMILARITY_TIMES + motion.getTaskNo(), System.currentTimeMillis(), 60 * 60 * 24); |
| | | }else { |
| | | long similarityTimeoutRef = 20L;//默认超时20s |
| | | Dict similarityTimeoutDict = dictService.getOne(new LambdaQueryWrapper<Dict>() |
| | | .eq(Dict::getFlag, "similarityTimeout") |
| | | .eq(Dict::getStatus, 1)); |
| | | if (similarityTimeoutDict != null) { |
| | | similarityTimeoutRef = Long.parseLong(similarityTimeoutDict.getValue()); |
| | | } |
| | | |
| | | long recordTime = Long.parseLong(object.toString()); |
| | | if (System.currentTimeMillis() - recordTime > (60 * similarityTimeoutRef)) { |
| | | //超时,直接放行 |
| | | return true; |
| | | } |
| | | } |
| | | News.error("{} dash {} path similarity mismatch!", motion.getOrigin(), motion.getTarget()); |
| | | return false; |
| | | } |