MrShi
2025-08-19 30e858fa504b268b9b436afca0a1259cf6e8c488
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;
@@ -107,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
@@ -166,7 +180,7 @@
        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);
        List<CompanyMember> memberList = null;
        if(type == 1){
@@ -175,7 +189,8 @@
                    .selectAs(Member::getName,CompanyMember::getMemberName)
                    .leftJoin(Member.class,Member::getId,CompanyMember::getMemberId)
                    .eq(Member::getIsdeleted,Constants.ZERO )
                    .eq(CompanyMember::getIsdeleted,Constants.ZERO ));
                    .eq(CompanyMember::getIsdeleted,Constants.ZERO )
                    .orderByAsc(Member::getName));
        }
        CompanyTree treeBuild = new CompanyTree(companyList, 0,memberList);
        companyList = treeBuild.buildTree();