From 3baaad59171ded6aca17340fcc907acbeeb45b7b Mon Sep 17 00:00:00 2001
From: zhuguifei <zhuguifei@zhuguifeideiMac.local>
Date: 星期二, 08 四月 2025 08:14:43 +0800
Subject: [PATCH] Merge branch 'main' of http://lanpucloud.cn:1111/r/eims-master

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

diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsFaultKnowServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsFaultKnowServiceImpl.java
new file mode 100644
index 0000000..48c0827
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsFaultKnowServiceImpl.java
@@ -0,0 +1,191 @@
+package org.dromara.eims.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+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.EimsFaultKnowBo;
+import org.dromara.eims.domain.vo.EimsFaultKnowVo;
+import org.dromara.eims.domain.EimsFaultKnow;
+import org.dromara.eims.mapper.EimsFaultKnowMapper;
+import org.dromara.eims.service.IEimsFaultKnowService;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 鏁呴殰鐭ヨ瘑Service涓氬姟灞傚鐞�
+ *
+ * @author zhuguifei
+ * @date 2025-03-18
+ */
+@RequiredArgsConstructor
+@Service
+public class EimsFaultKnowServiceImpl implements IEimsFaultKnowService {
+
+    private final EimsFaultKnowMapper baseMapper;
+    private final EimsEquTypeMapper equTypeMapper;
+
+    /**
+     * 鏌ヨ鏁呴殰鐭ヨ瘑
+     *
+     * @param id 涓婚敭
+     * @return 鏁呴殰鐭ヨ瘑
+     */
+    @Override
+    public EimsFaultKnowVo queryById(Long id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 鍒嗛〉鏌ヨ鏁呴殰鐭ヨ瘑鍒楄〃
+     *
+     * @param bo        鏌ヨ鏉′欢
+     * @param pageQuery 鍒嗛〉鍙傛暟
+     * @return 鏁呴殰鐭ヨ瘑鍒嗛〉鍒楄〃
+     */
+    @Override
+    public TableDataInfo<EimsFaultKnowVo> queryPageList(EimsFaultKnowBo bo, PageQuery pageQuery) {
+        QueryWrapper<EimsFaultKnow> qw = buildWrapper(bo);
+        Page<EimsFaultKnowVo> result = baseMapper.selectFaultKnowList(pageQuery.build(), qw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 鏌ヨ绗﹀悎鏉′欢鐨勬晠闅滅煡璇嗗垪琛�
+     *
+     * @param bo 鏌ヨ鏉′欢
+     * @return 鏁呴殰鐭ヨ瘑鍒楄〃
+     */
+    @Override
+    public List<EimsFaultKnowVo> queryList(EimsFaultKnowBo bo) {
+        LambdaQueryWrapper<EimsFaultKnow> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<EimsFaultKnow> buildQueryWrapper(EimsFaultKnowBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<EimsFaultKnow> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getEquId() != null, EimsFaultKnow::getEquId, bo.getEquId());
+        lqw.eq(bo.getEquType() != null, EimsFaultKnow::getEquType, bo.getEquType());
+        lqw.eq(StringUtils.isNotBlank(bo.getEquPart()), EimsFaultKnow::getEquPart, bo.getEquPart());
+        lqw.eq(StringUtils.isNotBlank(bo.getFaultCode()), EimsFaultKnow::getFaultCode, bo.getFaultCode());
+        lqw.eq(StringUtils.isNotBlank(bo.getFaultType()), EimsFaultKnow::getFaultType, bo.getFaultType());
+        lqw.eq(StringUtils.isNotBlank(bo.getFaultReason()), EimsFaultKnow::getFaultReason, bo.getFaultReason());
+        lqw.eq(StringUtils.isNotBlank(bo.getReqDesc()), EimsFaultKnow::getReqDesc, bo.getReqDesc());
+        lqw.eq(StringUtils.isNotBlank(bo.getResHandle()), EimsFaultKnow::getResHandle, bo.getResHandle());
+        return lqw;
+    }
+    private QueryWrapper<EimsFaultKnow> buildWrapper(EimsFaultKnowBo bo) {
+        Map<String, Object> params = bo.getParams();
+        QueryWrapper<EimsFaultKnow> qw = Wrappers.query();
+        qw.eq(bo.getEquId() != null, "fk.equ_id", bo.getEquId());
+        qw.eq(bo.getEquType() != null,"fk.equ_type", bo.getEquType());
+        qw.like(bo.getEquName() != null,"eu.equ_name", bo.getEquName());
+        qw.like(bo.getAssetNo() != null,"eu.asset_no", bo.getAssetNo());
+        qw.eq(StringUtils.isNotBlank(bo.getEquPart()), "fk.equ_part", bo.getEquPart());
+        qw.like(StringUtils.isNotBlank(bo.getFaultCode()), "fk.fault_code", bo.getFaultCode());
+        qw.eq(StringUtils.isNotBlank(bo.getFaultType()), "fk.fault_type", bo.getFaultType());
+        qw.eq(StringUtils.isNotBlank(bo.getFaultReason()), "fk.fault_reason", bo.getFaultReason());
+        qw.like(StringUtils.isNotBlank(bo.getReqDesc()),"fk.req_desc", bo.getReqDesc());
+        qw.like(StringUtils.isNotBlank(bo.getResHandle()), "fk.res_handle", bo.getResHandle());
+
+        if (bo.getEquTypeId() != null && bo.getEquTypeId() > 0) {
+            List<Long> allDescendantIds = getAllDescendantIds(bo.getEquTypeId());
+            qw.in("et.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 鏁呴殰鐭ヨ瘑
+     * @return 鏄惁鏂板鎴愬姛
+     */
+    @Override
+    public Boolean insertByBo(EimsFaultKnowBo bo) {
+        EimsFaultKnow add = MapstructUtils.convert(bo, EimsFaultKnow.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 淇敼鏁呴殰鐭ヨ瘑
+     *
+     * @param bo 鏁呴殰鐭ヨ瘑
+     * @return 鏄惁淇敼鎴愬姛
+     */
+    @Override
+    public Boolean updateByBo(EimsFaultKnowBo bo) {
+        EimsFaultKnow update = MapstructUtils.convert(bo, EimsFaultKnow.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+     */
+    private void validEntityBeforeSave(EimsFaultKnow entity){
+        //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+    }
+
+    /**
+     * 鏍¢獙骞舵壒閲忓垹闄ゆ晠闅滅煡璇嗕俊鎭�
+     *
+     * @param ids     寰呭垹闄ょ殑涓婚敭闆嗗悎
+     * @param isValid 鏄惁杩涜鏈夋晥鎬ф牎楠�
+     * @return 鏄惁鍒犻櫎鎴愬姛
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠�
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

--
Gitblit v1.9.3