From 34c674d503e23c0cf6d0b6dec063f3049885e5f8 Mon Sep 17 00:00:00 2001
From: 朱桂飞 <zhuguifei@zhuguifeideMacBook-Air.local>
Date: 星期一, 10 二月 2025 13:17:10 +0800
Subject: [PATCH] 新增盘点明细

---
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInventoryDetailServiceImpl.java |   45 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInventoryDetailServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInventoryDetailServiceImpl.java
index 16528cb..f0a9401 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInventoryDetailServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInventoryDetailServiceImpl.java
@@ -9,6 +9,10 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
+import org.dromara.eims.domain.EimsEqu;
+import org.dromara.eims.domain.EimsEquType;
+import org.dromara.eims.domain.vo.EimsEquTypeVo;
+import org.dromara.eims.mapper.EimsEquTypeMapper;
 import org.springframework.stereotype.Service;
 import org.dromara.eims.domain.bo.EimsInventoryDetailBo;
 import org.dromara.eims.domain.vo.EimsInventoryDetailVo;
@@ -16,6 +20,7 @@
 import org.dromara.eims.mapper.EimsInventoryDetailMapper;
 import org.dromara.eims.service.IEimsInventoryDetailService;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Collection;
@@ -31,6 +36,7 @@
 public class EimsInventoryDetailServiceImpl implements IEimsInventoryDetailService {
 
     private final EimsInventoryDetailMapper baseMapper;
+    private final EimsEquTypeMapper equTypeMapper;
 
     /**
      * 鏌ヨ鐩樼偣鏄庣粏
@@ -82,10 +88,49 @@
         qw.eq(StringUtils.isNotBlank(bo.getStatus()), "a.status", bo.getStatus());
 
         qw.like(StringUtils.isNotBlank(bo.getEquName()), "c.equ_name", bo.getEquName());
+        qw.like(StringUtils.isNotBlank(bo.getEquCode()), "c.equ_code", bo.getEquCode());
+        qw.like(StringUtils.isNotBlank(bo.getEquAssetNo()), "c.asset_no", bo.getEquAssetNo());
+        qw.like(StringUtils.isNotBlank(bo.getLocation()), "c.location", bo.getLocation());
+        qw.like(StringUtils.isNotBlank(bo.getEquStatus()), "c.status", bo.getEquStatus());
+        /**
+         * equTypeId = 0 鏃舵煡璇㈡墍鏈夎澶囷紙榛樿鏍圭洰褰昳d涓�0锛岃瑙丼ysEquTypeServiceImpl涓璼electEquTypeTreeList锛�
+         * equTypeId   涓哄叾浠栧�兼椂鍙煡褰撳墠璁惧绫诲瀷id鍜屽悗浠h澶囩被鍨媔d
+         */
+        if (bo.getEquTypeId() != null && bo.getEquTypeId() > 0) {
+            List<Long> allDescendantIds = getAllDescendantIds(bo.getEquTypeId());
+            qw.in("c.equ_type_id", allDescendantIds);
+        }
+
         return qw;
     }
 
     /**
+     * 鏍规嵁id锛岃幏鍙栨墍鏈夊悗浠d
+     * @param rootId
+     * @return
+     */
+    public List<Long> getAllDescendantIds(Long rootId) {
+        List<Long> result = new ArrayList<>();
+        result.add(rootId);
+        collectDescendants(rootId, result);
+        return result;
+    }
+
+    private void collectDescendants(Long currentId, List<Long> collector) {
+        QueryWrapper<EimsEquType> equTypeWrapper = new QueryWrapper<>();
+        equTypeWrapper.lambda().eq(EimsEquType::getParentId, currentId);
+
+        List<EimsEquTypeVo> children = equTypeMapper.selectVoList(equTypeWrapper);
+        if (children != null && !children.isEmpty()) {
+            for (EimsEquTypeVo child : children) {
+                Long childId = child.getEquTypeId();
+                collector.add(childId);
+                collectDescendants(childId, collector);
+            }
+        }
+    }
+
+    /**
      * 鏂板鐩樼偣鏄庣粏
      *
      * @param bo 鐩樼偣鏄庣粏

--
Gitblit v1.9.3