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/EimsSpareTypeServiceImpl.java |  188 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 188 insertions(+), 0 deletions(-)

diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareTypeServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareTypeServiceImpl.java
new file mode 100644
index 0000000..870b9f4
--- /dev/null
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareTypeServiceImpl.java
@@ -0,0 +1,188 @@
+package org.dromara.eims.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.lang.tree.Tree;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.constant.UserConstants;
+import org.dromara.common.core.service.SpareTypeService;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.SpringUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.core.utils.TreeBuildUtils;
+import org.dromara.eims.domain.EimsEquType;
+import org.dromara.eims.domain.EimsSpareType;
+import org.dromara.eims.domain.bo.EimsSpareTypeBo;
+import org.dromara.eims.domain.vo.EimsEquTypeVo;
+import org.dromara.eims.domain.vo.EimsSpareTypeVo;
+import org.dromara.eims.mapper.EimsSpareTypeMapper;
+import org.dromara.eims.service.IEimsSpareTypeService;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 澶囦欢绫诲瀷Service涓氬姟灞傚鐞�
+ *
+ * @author zhuguifei
+ * @date 2025-03-20
+ */
+@RequiredArgsConstructor
+@Service
+public class EimsSpareTypeServiceImpl implements IEimsSpareTypeService, SpareTypeService {
+
+    private final EimsSpareTypeMapper baseMapper;
+
+    /**
+     * 鏌ヨ澶囦欢绫诲瀷
+     *
+     * @param id 涓婚敭
+     * @return 澶囦欢绫诲瀷
+     */
+    @Override
+    public EimsSpareTypeVo queryById(Long id){
+        return baseMapper.selectVoById(id);
+    }
+
+
+    /**
+     * 鏌ヨ绗﹀悎鏉′欢鐨勫浠剁被鍨嬪垪琛�
+     *
+     * @param bo 鏌ヨ鏉′欢
+     * @return 澶囦欢绫诲瀷鍒楄〃
+     */
+    @Override
+    public List<EimsSpareTypeVo> queryList(EimsSpareTypeBo bo) {
+        LambdaQueryWrapper<EimsSpareType> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<EimsSpareType> buildQueryWrapper(EimsSpareTypeBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<EimsSpareType> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getTypeName()), EimsSpareType::getTypeName, bo.getTypeName());
+        lqw.eq(StringUtils.isNotBlank(bo.getTypeCode()), EimsSpareType::getTypeCode, bo.getTypeCode());
+        lqw.eq(StringUtils.isNotBlank(bo.getMenuType()), EimsSpareType::getMenuType, bo.getMenuType());
+        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), EimsSpareType::getStatus, bo.getStatus());
+        return lqw;
+    }
+
+    /**
+     * 鏂板澶囦欢绫诲瀷
+     *
+     * @param bo 澶囦欢绫诲瀷
+     * @return 鏄惁鏂板鎴愬姛
+     */
+    @Override
+    public Boolean insertByBo(EimsSpareTypeBo bo) {
+        EimsSpareType add = MapstructUtils.convert(bo, EimsSpareType.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 淇敼澶囦欢绫诲瀷
+     *
+     * @param bo 澶囦欢绫诲瀷
+     * @return 鏄惁淇敼鎴愬姛
+     */
+    @Override
+    public Boolean updateByBo(EimsSpareTypeBo bo) {
+        EimsSpareType update = MapstructUtils.convert(bo, EimsSpareType.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+     */
+    private void validEntityBeforeSave(EimsSpareType entity){
+        //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+    }
+
+    /**
+     * 鏍¢獙骞舵壒閲忓垹闄ゅ浠剁被鍨嬩俊鎭�
+     *
+     * @param ids     寰呭垹闄ょ殑涓婚敭闆嗗悎
+     * @param isValid 鏄惁杩涜鏈夋晥鎬ф牎楠�
+     * @return 鏄惁鍒犻櫎鎴愬姛
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠�
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+    @Override
+    public boolean hasChildBySpareTypeId(Long id) {
+        return baseMapper.exists(new LambdaQueryWrapper<EimsSpareType>().eq(EimsSpareType::getParentId, id));
+    }
+
+    @Override
+    public List<Tree<Long>> selectSpareTypeTreeList(EimsSpareTypeBo bo) {
+        // 鍙煡璇㈡湭绂佺敤绫诲瀷
+        bo.setStatus(UserConstants.DEPT_NORMAL);
+        LambdaQueryWrapper<EimsSpareType> lqw = buildQueryWrapper(bo);
+        List<EimsSpareTypeVo> typeVoList = baseMapper.selectVoList(lqw);
+
+        for (int i = 0; i < typeVoList.size(); i++) {
+            EimsSpareTypeVo typeVo = typeVoList.get(i);
+            if(typeVo.getParentId() == null){
+                typeVoList.get(i).setParentId(0L);
+            }
+        }
+        //鍔犳牴鐩綍
+        EimsSpareTypeVo root = new EimsSpareTypeVo();
+        root.setId(0L);
+        root.setMenuType("M");
+        root.setTypeName("鎵�鏈夊浠�");
+        root.setStatus("0");
+        root.setTypeCode("0");
+        root.setOrderNum(0L);
+        root.setIcon("#");
+        typeVoList.add(root);
+        typeVoList.sort((o1, o2) -> o1.getId().compareTo(o2.getId()));
+
+
+        return buildEquTypeTreeSelect(typeVoList);
+    }
+    /**
+     * 鏋勫缓鍓嶇鎵�闇�瑕佷笅鎷夋爲缁撴瀯
+     *
+     * @param typeVoList 绫诲瀷鍒楄〃
+     * @return 涓嬫媺鏍戠粨鏋勫垪琛�
+     */
+    public List<Tree<Long>> buildEquTypeTreeSelect(List<EimsSpareTypeVo> typeVoList) {
+        if (CollUtil.isEmpty(typeVoList)) {
+            return CollUtil.newArrayList();
+        }
+        return TreeBuildUtils.build(typeVoList, (dept, tree) ->
+            tree.setId(dept.getId())
+                .setParentId(dept.getParentId())
+                .setName(dept.getTypeName())
+                .setWeight(dept.getOrderNum()));
+    }
+
+    @Override
+    public String selectSpareTypeNameByIds(String spareTypeIds) {
+        List<String> list = new ArrayList<>();
+        for (Long id : StringUtils.splitTo(spareTypeIds, Convert::toLong)) {
+            EimsSpareTypeVo vo = SpringUtils.getAopProxy(this).queryById(id);
+            if (ObjectUtil.isNotNull(vo)) {
+                list.add(vo.getTypeName());
+            }
+        }
+        return String.join(StringUtils.SEPARATOR, list);
+    }
+}

--
Gitblit v1.9.3