From 30e858fa504b268b9b436afca0a1259cf6e8c488 Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期二, 19 八月 2025 11:01:40 +0800 Subject: [PATCH] 优化 --- server/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java | 43 +++++++++++++++++++++++++++++++++++++++---- 1 files changed, 39 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java index 4fa54b3..031718b 100644 --- a/server/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java +++ b/server/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java @@ -1,5 +1,6 @@ package com.doumee.service.business.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -15,7 +16,9 @@ import com.doumee.core.utils.qiyeweixin.QywxUtil; import com.doumee.core.utils.qiyeweixin.model.response.QywxDepartInfoResponse; import com.doumee.dao.business.CompanyMapper; +import com.doumee.dao.business.CompanyMemberMapper; import com.doumee.dao.business.model.Company; +import com.doumee.dao.business.model.CompanyMember; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.vo.CompanyTree; import com.doumee.dao.system.model.SystemUser; @@ -47,6 +50,8 @@ private RedisTemplate<Object, Serializable> redisTemplate; @Autowired private CompanyMapper companyMapper; + @Autowired + private CompanyMemberMapper companyMemberMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @@ -103,8 +108,21 @@ @Override public List<Company> findList(Company company) { - QueryWrapper<Company> wrapper = new QueryWrapper<>(company); - return companyMapper.selectList(wrapper); + MPJLambdaWrapper<Company> wrapper = new MPJLambdaWrapper<Company>(); + wrapper.selectAll(Company.class ) + .select(" (select count(1) from company t1 where t1.isdeleted=0 and t1.parent_id = t.id )",Company::getChildNum) + .isNull(company.getParentId()==null,Company::getParentId) + .eq(company.getParentId()!=null,Company::getParentId,company.getParentId()) + .eq(Company::getIsdeleted,Constants.ZERO) + .orderByAsc(Company::getName); + List<Company> companyList = companyMapper.selectJoinList(Company.class,wrapper); + + if(companyList.size()>0){ + for (Company c : companyList){ + c.setHasChildren(Constants.formatIntegerNum(c.getChildNum())>0); + } + } + return companyList; } @Override @@ -151,6 +169,9 @@ @Override public List<Company> companyTree( ) { + return companyTreeBiz(0); + } + public List<Company> companyTreeBiz(int type ) { MPJLambdaWrapper<Company> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Company.class); queryWrapper.selectAs(SystemUser::getUsername,Company::getEditorName); @@ -159,12 +180,26 @@ queryWrapper.leftJoin(Company.class,Company::getId,Company::getParentId); queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,Company::getEditor); queryWrapper.eq(Company::getIsdeleted,Constants.ZERO); - queryWrapper.orderByAsc( "t.code"); + queryWrapper.orderByAsc( "t.name"); List<Company> companyList = companyMapper.selectJoinList(Company.class,queryWrapper); - CompanyTree treeBuild = new CompanyTree(companyList, 0); + List<CompanyMember> memberList = null; + if(type == 1){ + memberList = companyMemberMapper.selectJoinList(CompanyMember.class,new MPJLambdaWrapper<CompanyMember>() + .selectAll(CompanyMember.class) + .selectAs(Member::getName,CompanyMember::getMemberName) + .leftJoin(Member.class,Member::getId,CompanyMember::getMemberId) + .eq(Member::getIsdeleted,Constants.ZERO ) + .eq(CompanyMember::getIsdeleted,Constants.ZERO ) + .orderByAsc(Member::getName)); + } + CompanyTree treeBuild = new CompanyTree(companyList, 0,memberList); companyList = treeBuild.buildTree(); return companyList; } + @Override + public List<Company> companyTreeWithMember() { + return companyTreeBiz(1); + } @Override public int syncAll(Company company) { -- Gitblit v1.9.3