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