From f9a12ecb4ea4b7b103b50634335704140237fef7 Mon Sep 17 00:00:00 2001
From: 朱桂飞 <zhuguifei@zhuguifeideMacBook-Air.local>
Date: 星期三, 19 二月 2025 15:11:28 +0800
Subject: [PATCH] 完成工具借用、归还相关

---
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 53 insertions(+), 7 deletions(-)

diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java
index 6ef4ace..b191443 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java
@@ -10,7 +10,12 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import org.dromara.eims.domain.EimsEqu;
+import org.dromara.eims.domain.EimsFixtureBorrow;
 import org.dromara.eims.domain.vo.EimsInventoryDetailVo;
+import org.dromara.eims.utils.DataFilterUtil;
+import org.dromara.system.domain.SysDept;
+import org.dromara.system.domain.vo.SysDeptVo;
+import org.dromara.system.mapper.SysDeptMapper;
 import org.springframework.stereotype.Service;
 import org.dromara.eims.domain.bo.EimsRepairReqBo;
 import org.dromara.eims.domain.vo.EimsRepairReqVo;
@@ -18,6 +23,7 @@
 import org.dromara.eims.mapper.EimsRepairReqMapper;
 import org.dromara.eims.service.IEimsRepairReqService;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Collection;
@@ -33,6 +39,7 @@
 public class EimsRepairReqServiceImpl implements IEimsRepairReqService {
 
     private final EimsRepairReqMapper baseMapper;
+    private final SysDeptMapper sysDeptMapper;
 
     /**
      * 鏌ヨ鏁呴殰鎶ヤ慨
@@ -41,7 +48,7 @@
      * @return 鏁呴殰鎶ヤ慨
      */
     @Override
-    public EimsRepairReqVo queryById(Long id){
+    public EimsRepairReqVo queryById(Long id) {
         return baseMapper.selectVoById(id);
     }
 
@@ -61,6 +68,7 @@
 
     @Override
     public TableDataInfo<EimsRepairReqVo> queryPageListCustom(EimsRepairReqBo bo, PageQuery pageQuery) {
+        DataFilterUtil.getInstance().filterRepairReq(bo);
         Page<EimsRepairReqVo> page = baseMapper.selectRepairReqList(pageQuery.build(), buildWrapper(bo));
         return TableDataInfo.build(page);
     }
@@ -68,24 +76,62 @@
     private QueryWrapper<EimsRepairReq> buildWrapper(EimsRepairReqBo bo) {
         Map<String, Object> params = bo.getParams();
         QueryWrapper<EimsRepairReq> qw = Wrappers.query();
-        qw.like(StringUtils.isNotBlank(bo.getCode()),"a.code", bo.getCode());
+        qw.like(StringUtils.isNotBlank(bo.getCode()), "a.code", bo.getCode());
         qw.eq(StringUtils.isNotBlank(bo.getStatus()), "a.status", bo.getStatus());
         qw.eq(bo.getReqTime() != null, "a.req_time", bo.getReqTime());
-        qw.eq(bo.getReqDept() != null, "a.req_dept", bo.getReqDept());
-        qw.eq(bo.getReqUser() != null,"a.req_user", bo.getReqUser());
+        qw.eq(bo.getReqUser() != null, "a.req_user", bo.getReqUser());
         qw.eq(StringUtils.isNotBlank(bo.getUrgencyLevel()), "a.urgency_level", bo.getUrgencyLevel());
         qw.eq(StringUtils.isNotBlank(bo.getReqType()), "a.req_type", bo.getReqType());
         qw.eq(bo.getEquId() != null, "a.equ_id", bo.getEquId());
-        qw.eq(bo.getRepairDept() != null,"a.repair_dept", bo.getRepairDept());
+        qw.eq(bo.getRepairDept() != null, "a.repair_dept", bo.getRepairDept());
         qw.eq(bo.getRepairUser() != null, "a.repair_user", bo.getRepairUser());
         qw.eq(StringUtils.isNotBlank(bo.getFaultType()), "a,fault_type", bo.getFaultType());
         qw.eq(params.containsKey("createBy"), "a.create_by", params.get("createBy"));
         qw.eq(params.containsKey("status"), "a.status", params.get("status"));
         qw.between(params.get("beginReqTime") != null && params.get("endReqTime") != null,
             "a.req_time", params.get("beginReqTime"), params.get("endReqTime"));
+
+
+        qw.eq(bo.getCreateBy()!=null, "a.create_by", bo.getCreateBy());
+        qw.eq(StringUtils.isNotEmpty(bo.getStatus()), "a.status", bo.getStatus());
+
+        /**
+         * 鏌ヨ閮ㄩ棬涓嬫墍鏈夊瓙閮ㄩ棬
+         */
+        if (bo.getReqDept() != null) {
+            List<Long> allDescendantIds = getAllDescendantIds(bo.getReqDept());
+            qw.in(bo.getReqDept() != null, "a.req_dept", 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<SysDept> sysDeptWrapper = new QueryWrapper<>();
+        sysDeptWrapper.lambda().eq(SysDept::getParentId, currentId);
+
+        List<SysDeptVo> children = sysDeptMapper.selectVoList(sysDeptWrapper);
+        if (children != null && !children.isEmpty()) {
+            for (SysDeptVo child : children) {
+                Long childId = child.getDeptId();
+                collector.add(childId);
+                collectDescendants(childId, collector);
+            }
+        }
+    }
 
     /**
      * 鏌ヨ绗﹀悎鏉′欢鐨勬晠闅滄姤淇垪琛�
@@ -149,7 +195,7 @@
     /**
      * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
      */
-    private void validEntityBeforeSave(EimsRepairReq entity){
+    private void validEntityBeforeSave(EimsRepairReq entity) {
         //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
     }
 
@@ -162,7 +208,7 @@
      */
     @Override
     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
+        if (isValid) {
             //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠�
         }
         return baseMapper.deleteByIds(ids) > 0;

--
Gitblit v1.9.3