feat(wms): 添加钢卷加工链追溯功能

- 在IWmsMaterialCoilService中新增queryCoilChain方法实现双向追溯
- 在WmsMaterialCoilController中添加/chain/all/{coilId}接口
- 在WmsMaterialCoilMapper中新增selectByParentCoilIds批量查询方法
- 在Mapper XML中实现FIND_IN_SET匹配逗号分隔的parent_coil_id查询
- 实现完整的双向追溯逻辑:向上追溯祖先向下查找后代支持合卷场景
- 创建CoilChainVo数据传输对象包含追溯结果和节点关系信息
- 实现BFS算法构建完整的加工链父子关系映射和深度计算
This commit is contained in:
2026-06-17 16:49:19 +08:00
parent 605f7b85a1
commit 585017873c
6 changed files with 343 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
package com.klp.domain.vo;
import lombok.Data;
import java.util.List;
/**
* 钢卷加工链追溯结果
*
* @author Joshi
* @date 2026-06-17
*/
@Data
public class CoilChainVo {
/**
* 当前查询的钢卷
*/
private WmsMaterialCoilVo self;
/**
* 祖先钢卷列表(从直接父级 → 根,按追溯顺序排列)
*/
private List<CoilChainNode> ancestors;
/**
* 后代钢卷列表(所有子孙节点)
*/
private List<CoilChainNode> descendants;
/**
* 加工链扁平列表(按加工顺序排列:根 → ... → 当前 → ... → 叶子)
* 每个节点标注 depth0=根,正数向下)和 relation
*/
private List<CoilChainNode> traceList;
/**
* 链条上钢卷总数
*/
private int totalCount;
/**
* 加工链节点
*/
@Data
public static class CoilChainNode {
/** 钢卷信息 */
private WmsMaterialCoilVo coil;
/** 相对当前钢卷的深度:负数=祖先0=自身,正数=后代 */
private int depth;
/** 节点关系类型 */
private String relation;
/** 此节点的直接父级ID列表逗号分隔时会有多个 */
private String parentCoilId;
}
}