广丰卷烟厂数采质量分析系统
baoshiwei
3 小时以前 e97b55310155a2dd691bd698a10295a4d867f60c
RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/service/impl/QmJudgeDetailsServiceImpl.java
@@ -70,6 +70,51 @@
        return baseMapper.selectVoList(lqw);
    }
    /**
     * 查询树形结构数据
     *
     * @param judgeId 判定主标识
     * @return 树形结构列表
     */
    @Override
    public List<QmJudgeDetailsVo> queryTreeListByJudgeId(String judgeId) {
        if (StringUtils.isBlank(judgeId)) {
            return new java.util.ArrayList<>();
        }
        // 1. 查询根节点 (rid is null)
        List<QmJudgeDetailsVo> roots = selectTreeNodes(judgeId, null);
        for (QmJudgeDetailsVo root : roots) {
            // 2. 查询第一级子节点 (rid = root.itemCod)
            List<QmJudgeDetailsVo> children = selectTreeNodes(judgeId, root.getItemCod());
            for (QmJudgeDetailsVo child : children) {
                // 3. 查询第二级子节点 (rid = child.itemCod)
                List<QmJudgeDetailsVo> grandchildren = selectTreeNodes(judgeId, child.getItemCod());
                child.setChildren(grandchildren);
            }
            root.setChildren(children);
        }
        return roots;
    }
    /**
     * 查询树节点
     *
     * @param judgeId 判定主标识
     * @param rid     关联项ID
     * @return 节点列表
     */
    private List<QmJudgeDetailsVo> selectTreeNodes(String judgeId, String rid) {
        LambdaQueryWrapper<QmJudgeDetails> lqw = Wrappers.lambdaQuery();
        lqw.eq(QmJudgeDetails::getJudgeId, judgeId);
        if (rid == null) {
            lqw.isNull(QmJudgeDetails::getRid);
        } else {
            lqw.eq(QmJudgeDetails::getRid, rid);
        }
        lqw.orderByAsc(QmJudgeDetails::getId);
        return baseMapper.selectVoList(lqw);
    }
    private LambdaQueryWrapper<QmJudgeDetails> buildQueryWrapper(QmJudgeDetailsBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<QmJudgeDetails> lqw = Wrappers.lambdaQuery();