From ff087240b3dee29ce4e14ad0836e76b9fdf312cf Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期二, 19 八月 2025 09:28:07 +0800 Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/lianhelihua_sh --- server/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java | 48 ++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 44 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 fe36d4b..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; @@ -24,9 +27,12 @@ import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import javax.annotation.Resource; +import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -40,8 +46,12 @@ @Service public class CompanyServiceImpl implements CompanyService { + @Resource(name="sessionRedisTemplate") + private RedisTemplate<Object, Serializable> redisTemplate; @Autowired private CompanyMapper companyMapper; + @Autowired + private CompanyMemberMapper companyMemberMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @@ -98,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 @@ -146,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); @@ -154,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