Files
klp-oa/klp-wms/src/main/java/com/klp/service/IWmsBatchService.java
Joshi 59bd751cd7 feat(wms): 优化批次分配策略以解决死锁和进程冲突问题
- 新增 checkDeadlock 方法检测任务执行是否会产生死锁
- 改进 generateNonDeadlockBatches 方法,增加对死锁和进程冲突的处理
- 实现增强版 DFS 检测环,并收集环中的节点- 添加进程依赖图构建和冲突进程对查找功能
- 优化批次分组算法,确保所有任务都被合理分配
2025-08-15 11:25:48 +08:00

68 lines
1.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.klp.service;
import com.klp.domain.vo.BatchGroupVo;
import com.klp.domain.vo.WmsBatchVo;
import com.klp.domain.bo.WmsBatchBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 批次合并相同工艺的任务Service接口
*
* @author klp
* @date 2025-08-14
*/
public interface IWmsBatchService {
/**
* 查询批次(合并相同工艺的任务)
*/
WmsBatchVo queryById(Long batchId);
/**
* 查询批次(合并相同工艺的任务)列表
*/
TableDataInfo<WmsBatchVo> queryPageList(WmsBatchBo bo, PageQuery pageQuery);
/**
* 查询批次(合并相同工艺的任务)列表
*/
List<WmsBatchVo> queryList(WmsBatchBo bo);
/**
* 新增批次(合并相同工艺的任务)
*/
Boolean insertByBo(WmsBatchBo bo);
/**
* 修改批次(合并相同工艺的任务)
*/
Boolean updateByBo(WmsBatchBo bo);
/**
* 校验并批量删除批次(合并相同工艺的任务)信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 检测任务执行是否会产生死锁
*
* @param rows 任务执行顺序数组
* @return 是否存在死锁
*/
boolean checkDeadlock(List<List<Map<String, Object>>> rows);
/**
* 生成不会产生死锁的批次分配方案
*
* @param rows 任务执行顺序数组
* @return 批次分配方案
*/
List<BatchGroupVo> generateNonDeadlockBatches(List<List<Map<String, Object>>> rows);
}