From d1791f762791428af91467b8855de83d54f015f9 Mon Sep 17 00:00:00 2001
From: zhuguifei <312353457@qq.com>
Date: 星期五, 17 四月 2026 15:23:21 +0800
Subject: [PATCH] feat: 1.新增物料、物料类型、材料检验统计等表维护功能 2.完善判定依据-判断依据明细 3.新增判断依据、物料管理等字典翻译类 4.成品物料批次-原始数据维护页面
---
RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/service/impl/QmJudgeDetailsServiceImpl.java | 45 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 45 insertions(+), 0 deletions(-)
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/service/impl/QmJudgeDetailsServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/service/impl/QmJudgeDetailsServiceImpl.java
index ccfb91d..c76b09c 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-qa/src/main/java/org/dromara/qa/qm/service/impl/QmJudgeDetailsServiceImpl.java
+++ b/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 鍏宠仈椤笽D
+ * @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();
--
Gitblit v1.9.3