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