|
|
@ -531,9 +531,27 @@ public class AutoTaskServiceImpl implements AutoTaskService { |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
if(lockResult == 0){ |
|
|
if(lockResult == 0){ |
|
|
// 乐观锁更新失败,说明站点已被其他线程占用 - rqrq |
|
|
|
|
|
System.out.println("警告:乐观锁更新目标站点状态失败,站点可能已被占用 - rqrq"); |
|
|
|
|
|
// 注意:这里不抛出异常,允许创建预约任务,但目标站点可能不是空闲状态 - rqrq |
|
|
|
|
|
|
|
|
// 乐观锁更新失败,说明站点已被其他线程占用,自动改为区域预约 - rqrq |
|
|
|
|
|
System.out.println("警告:乐观锁更新目标站点状态失败,站点已被占用,自动改为区域预约 - rqrq"); |
|
|
|
|
|
|
|
|
|
|
|
// 查询目标站点的区域信息 - rqrq |
|
|
|
|
|
AgvStation targetStation = wcsIntegrationMapper.getAgvStation(inData.getToLocation()); |
|
|
|
|
|
if(targetStation != null && StringUtils.hasText(targetStation.getAreaType())){ |
|
|
|
|
|
String areaType = targetStation.getAreaType(); |
|
|
|
|
|
System.out.println("查询到目标站点所属区域 - rqrq,areaType=" + areaType); |
|
|
|
|
|
|
|
|
|
|
|
// 更新任务记录的to_location为null,to_area为区域代码 - rqrq |
|
|
|
|
|
wcsIntegrationMapper.updateWTTToLocationForId(inData.getSite(), task.getTaskNo(), null); |
|
|
|
|
|
wcsIntegrationMapper.updateTransportTaskToArea(inData.getSite(),task.getTaskNo(), areaType); |
|
|
|
|
|
|
|
|
|
|
|
System.out.println("已自动改为区域预约 - rqrq,toArea=" + areaType); |
|
|
|
|
|
} else { |
|
|
|
|
|
// 查询不到区域信息,回滚并抛出异常 - rqrq |
|
|
|
|
|
System.out.println("错误:无法获取目标站点的区域信息 - rqrq"); |
|
|
|
|
|
wcsIntegrationMapper.updateAgvStationStatus(inData.getFromLocation(), 1, "有货"); |
|
|
|
|
|
wcsIntegrationMapper.deleteTransportTask(task.getTaskNo()); |
|
|
|
|
|
throw new RuntimeException("目标站点【" + inData.getToLocation() + "】已被占用且无法获取区域信息,无法创建预约任务"); |
|
|
|
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
System.out.println("成功更新目标站点状态为待放货 - rqrq"); |
|
|
System.out.println("成功更新目标站点状态为待放货 - rqrq"); |
|
|
} |
|
|
} |
|
|
|