feat(wms-batch):增加死锁检测和批次分配功能

- 在 IWmsBatchService 接口中添加了 checkDeadlock 和 generateNonDeadlockBatches 方法
- 在 WmsBatchController 中添加了对应的控制器方法
- 在 WmsBatchServiceImpl 中实现了死锁检测和批次分配的逻辑
- 新增了构建依赖图、检测环、拓扑排序等辅助方法
This commit is contained in:
2025-08-14 16:35:46 +08:00
parent 970c550590
commit add788c148
3 changed files with 295 additions and 3 deletions

View File

@@ -7,6 +7,7 @@ import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 批次合并相同工艺的任务Service接口
@@ -45,4 +46,21 @@ public interface IWmsBatchService {
* 校验并批量删除批次(合并相同工艺的任务)信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 检测任务执行是否会产生死锁
*
* @param rows 任务执行顺序数组
* @return 是否存在死锁
*/
boolean checkDeadlock(List<List<Map<String, Object>>> rows);
/**
* 生成不会产生死锁的批次分配方案
*
* @param rows 任务执行顺序数组
* @return 批次分配方案
*/
List<String> generateNonDeadlockBatches(List<List<Map<String, Object>>> rows);
}