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:
55
klp-wms/src/main/java/com/klp/domain/vo/CoilChainVo.java
Normal file
55
klp-wms/src/main/java/com/klp/domain/vo/CoilChainVo.java
Normal 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;
|
||||
|
||||
/**
|
||||
* 加工链扁平列表(按加工顺序排列:根 → ... → 当前 → ... → 叶子)
|
||||
* 每个节点标注 depth(0=根,正数向下)和 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user