785834757 il y a 1 an
Parent
commit
507358403e

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/vo/SysDeptVo.java

@@ -73,6 +73,9 @@ public class SysDeptVo implements Serializable {
     @Schema(description = "机构ids")
     private List<String> deptIds;
 
+    @Schema(description = "部门下的人数")
+    private String userCount;
+
     public SysDeptVo(){}
 
     public SysDeptVo(SysDept sysDept){

+ 9 - 0
commons/src/main/java/com/jzg/commons/entity/vo/SysOrganizationUserLinkQueryVo.java

@@ -0,0 +1,9 @@
+package com.jzg.commons.entity.vo;
+
+import com.jzg.commons.core.base.PageRequest;
+import lombok.Data;
+
+@Data
+public class SysOrganizationUserLinkQueryVo extends PageRequest {
+    private String id;
+}

+ 17 - 0
commons/src/main/java/com/jzg/commons/entity/vo/SysOrganizationUserLinkVo.java

@@ -0,0 +1,17 @@
+package com.jzg.commons.entity.vo;
+
+import com.jzg.commons.core.base.PageRequest;
+import lombok.Data;
+
+@Data
+public class SysOrganizationUserLinkVo{
+    private String id;
+    private String userId;
+    private String mobile;
+    private String uname;
+    private String type;
+    private String deptId;
+    private String deptName;
+    private String status;
+    private String accountStatus;
+}

+ 14 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/DeptController.java

@@ -1,5 +1,6 @@
 package com.jzg.organization.controller;
 
+import com.jzg.commons.annotation.IgnoreTenant;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.SysDeptParam;
@@ -69,6 +70,19 @@ public class DeptController extends BaseController {
         return HttpResult.ok(deptTree);
     }
 
+
+    @IgnoreTenant
+    @Operation(summary = "机构树形查询")
+    @PostMapping(value = "/getDeptTreePlatform")
+    public HttpResult<List<SysDeptVo>> getDeptTreePlatform(@RequestBody SysDeptParam param){
+        String deptId = "";
+        if(StringUtils.isEmpty(param.getSysCode())){
+            deptId = getUserDeptId();
+        }
+        List<SysDeptVo> deptTree = sysDeptService.getDeptTreePlatform(deptId,param);
+        return HttpResult.ok(deptTree);
+    }
+
     /**
      * 机构信息查询
      * @param id

+ 8 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/SysOrganizationController.java

@@ -1,9 +1,11 @@
 package com.jzg.organization.controller;
 
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.*;
 import com.jzg.commons.entity.po.SysOrganization;
+import com.jzg.commons.entity.vo.SysOrganizationUserLinkQueryVo;
 import com.jzg.commons.util.idgen.IdGenerate;
 import com.jzg.organization.service.SysOrganizationService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -140,4 +142,10 @@ public class SysOrganizationController {
         return sysOrganizationService.setResponsiblePerson(setPerson);
     }
 
+    @Operation(summary = "团队、渠道、电销组 人员查询")
+    @PostMapping("getTeamUserPage")
+    public HttpResult getTeamUserPage(@Validated @RequestBody SysOrganizationUserLinkQueryVo sysOrganizationUserLinkQueryVo){
+        Page page = sysOrganizationUserLinkQueryVo.getPage();
+        return HttpResult.ok(sysOrganizationService.getTeamUserPage(page,sysOrganizationUserLinkQueryVo));
+    }
 }

+ 3 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysDeptMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.jzg.commons.entity.po.SysDept;
+import com.jzg.commons.entity.vo.SysDeptVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -20,4 +21,6 @@ public interface SysDeptMapper extends BaseMapper<SysDept> {
      * @return
      */
     List<SysDept> selectDeptList(@Param(Constants.WRAPPER) Wrapper<SysDept> queryWrapper);
+
+    List<SysDeptVo> selectDeptVoList(@Param("deptId")String deptId,@Param("sysCode")String sysCode);
 }

+ 4 - 3
tenant/organization/src/main/java/com/jzg/organization/mapper/SysOrganizationMapper.java

@@ -1,11 +1,10 @@
 package com.jzg.organization.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.entity.dto.SysOrganizationParam;
 import com.jzg.commons.entity.po.SysOrganization;
-import com.jzg.commons.entity.vo.LeftSysOrganizationVo;
-import com.jzg.commons.entity.vo.SysOrganizationUserDetailsVo;
-import com.jzg.commons.entity.vo.SysOrganizationVo;
+import com.jzg.commons.entity.vo.*;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
@@ -22,4 +21,6 @@ public interface SysOrganizationMapper extends BaseMapper<SysOrganization> {
 
 
     List<LeftSysOrganizationVo> selectLeftList(@Param("params") SysOrganizationParam sysOrganizationParam);
+
+    Page<SysOrganizationUserLinkVo> getTeamUserPage(Page page, @Param("param")SysOrganizationUserLinkQueryVo sysOrganizationUserLinkQueryVo);
 }

+ 1 - 0
tenant/organization/src/main/java/com/jzg/organization/service/SysDeptService.java

@@ -38,6 +38,7 @@ public interface SysDeptService extends IService<SysDept> {
      * 机构树
      */
     List<SysDeptVo> getDeptTree(String deptId, SysDeptParam param);
+    List<SysDeptVo> getDeptTreePlatform(String deptId, SysDeptParam param);
 
     /**
      * 设置机构负责人

+ 12 - 0
tenant/organization/src/main/java/com/jzg/organization/service/SysOrganizationService.java

@@ -1,9 +1,13 @@
 package com.jzg.organization.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.*;
 import com.jzg.commons.entity.po.SysOrganization;
+import com.jzg.commons.entity.po.SysOrganizationUserLink;
+import com.jzg.commons.entity.vo.SysOrganizationUserLinkQueryVo;
+import com.jzg.commons.entity.vo.SysOrganizationUserLinkVo;
 import com.jzg.commons.entity.vo.SysOrganizationVo;
 
 public interface SysOrganizationService extends IService<SysOrganization> {
@@ -25,4 +29,12 @@ public interface SysOrganizationService extends IService<SysOrganization> {
     HttpResult getDetails(Long userId);
 
     HttpResult updateByIdDelete(String id);
+
+
+    /**
+     * 获取团队下的人员列表分页
+     * @param sysOrganizationUserLinkQueryVo
+     * @return
+     */
+    Page<SysOrganizationUserLinkVo> getTeamUserPage(Page page,SysOrganizationUserLinkQueryVo sysOrganizationUserLinkQueryVo);
 }

+ 70 - 1
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysDeptServiceImpl.java

@@ -85,7 +85,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
         if (StringUtils.isNotEmpty(sysDeptVo.getSystemCode())){
             sysDept.setSystemCode(sysDeptVo.getSystemCode());
         }
-        if (sysDept.getLeaderId().isEmpty()){
+        if (Objects.isNull(sysDept.getLeaderId()) || sysDept.getLeaderId().isEmpty()){
             sysDept.setLeaderId(null);
         }
         return this.save(sysDept);
@@ -166,12 +166,79 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
         List<SysDeptVo> sysDepts = new ArrayList<>();
         SysDept sysDept = getById(deptId);
         SysDeptVo sysDeptVo = new SysDeptVo(sysDept);
+//        LambdaQueryWrapper<SysDept> lqw = new LambdaQueryWrapper<>();
+//        if(!deptId.equals("")) {
+//            lqw.likeRight(SysDept::getRoute, deptId);
+//        }
+//        lqw.eq(StringUtils.isNotEmpty(sysCode),SysDept::getSystemCode, sysCode);
+//        List<SysDept> sysDeptList = list(lqw);
+        List<SysDeptVo> voDept = baseMapper.selectDeptVoList(deptId, sysCode);
+//        List<SysDeptVo> voDept = new ArrayList<>();
+//        sysDeptVos.forEach(item->{
+//            voDept.add(item);
+//        });
+
+        voDept.forEach(item->{
+            List<String> areas = new ArrayList<>();
+            areas.add(item.getProvince());
+            areas.add(item.getCity());
+            areas.add(item.getArea());
+            List<SysArea> sysAreaVos = sysAreaService.queryAllByAreaCode(areas);
+            String areaString = "";
+            for(int i=0;i<sysAreaVos.size();i++){
+                areaString = areaString + sysAreaVos.get(i).getAreaCname() + "-";
+            }
+            if(areaString.length()>0) {
+                item.setDivision(areaString.substring(0, areaString.length() - 1));
+            }
+            if(!Objects.isNull(item.getLeaderId())){
+                SysUserJzgInfo userByUserId = sysUserJzgInfoService.getUserByUserId(item.getLeaderId());
+                if(!Objects.isNull(userByUserId)){
+                    item.setLeaderName(userByUserId.getName());
+                }
+            }
+        });
+
+        Map<String, List<SysDeptVo>> map = voDept.stream().collect(Collectors.groupingBy(SysDeptVo::getParentId));
+        voDept.forEach(i -> i.setChildren(map.getOrDefault(i.getId(), new ArrayList<>())));
+        if(!Objects.isNull(sysDept)) {
+            sysDepts = map.get(sysDeptVo.getParentId());
+        }else{
+            sysDepts = map.get("0");
+        }
+        List<SysDeptVo> newResultDept = new ArrayList<>();
+        SysDeptVo baseDept = new SysDeptVo(sysDept);
+        baseDept.setId("0");
+        baseDept.setName(bySysCode.getSysName());
+        baseDept.setChildren(sysDepts);
+        newResultDept.add(baseDept);
+        return newResultDept;
+    }
+
+
+    @Override
+    public List<SysDeptVo> getDeptTreePlatform(String deptId, SysDeptParam param) {
+        if(Objects.isNull(deptId)){
+            deptId = "";
+        }
+        String sysCode = param.getSysCode();
+        String userSystemCode = null;
+        if (StringUtils.isEmpty(sysCode)){
+            userSystemCode = baseController.getUserSystemCode();
+        }else{
+            userSystemCode = sysCode;
+        }
+        SysSystem bySysCode = sysSystemService.getBySysCode(userSystemCode);
+        List<SysDeptVo> sysDepts = new ArrayList<>();
+        SysDept sysDept = getById(deptId);
+        SysDeptVo sysDeptVo = new SysDeptVo(sysDept);
         LambdaQueryWrapper<SysDept> lqw = new LambdaQueryWrapper<>();
         if(!deptId.equals("")) {
             lqw.likeRight(SysDept::getRoute, deptId);
         }
         lqw.eq(StringUtils.isNotEmpty(sysCode),SysDept::getSystemCode, sysCode);
         List<SysDept> sysDeptList = list(lqw);
+
         List<SysDeptVo> voDept = new ArrayList<>();
         sysDeptList.forEach(item->{
             SysDeptVo sysDeptv = new SysDeptVo(item);
@@ -215,6 +282,8 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
         return newResultDept;
     }
 
+
+
     @Override
     public boolean setDeptLeader(DeptLeaderVo deptLeaderVo) {
         List<SysDept> depts = this.list(new LambdaQueryWrapper<SysDept>()

+ 8 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysOrganizationServiceImpl.java

@@ -6,12 +6,15 @@ import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.*;
 import com.jzg.commons.entity.po.SysOrganization;
 import com.jzg.commons.entity.po.SysOrganizationUserLink;
 import com.jzg.commons.entity.vo.LeftSysOrganizationVo;
+import com.jzg.commons.entity.vo.SysOrganizationUserLinkQueryVo;
+import com.jzg.commons.entity.vo.SysOrganizationUserLinkVo;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.organization.mapper.SysOrganizationMapper;
 import com.jzg.organization.service.SysOrganizationService;
@@ -126,4 +129,9 @@ public class SysOrganizationServiceImpl extends ServiceImpl<SysOrganizationMappe
                 .set(SysOrganization::getIsDelete, 1);
         return sysOrganizationMapper.update(updateWrapper) > 0 ? HttpResult.ok("删除成功") : HttpResult.error("删除失败");
     }
+
+    @Override
+    public Page<SysOrganizationUserLinkVo> getTeamUserPage(Page page,SysOrganizationUserLinkQueryVo sysOrganizationUserLinkQueryVo) {
+        return baseMapper.getTeamUserPage(page,sysOrganizationUserLinkQueryVo);
+    }
 }

+ 23 - 10
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserServiceImpl.java

@@ -231,15 +231,17 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         SysUser sysUser = baseMapper.getUserByMobile(sysUserVo.getMobile());
         String sysUserJzgInfoId = "",sysUserId = "";
         if (!Objects.isNull(sysUser)) {
-            verifyUser(sysUserVo.getTypeAttr(),sysUserVo.getDeptId(),sysUserVo.getIdentity(),sysUser.getId(),sysUserVo.getLeaderId(),sysUserVo.getReferrerId());
-            SysUserJzgInfo sysUserJzgInfo = new SysUserJzgInfo();
-            BeanUtils.copyProperties(sysUserVo, sysUserJzgInfo);
-            sysUserJzgInfo.setUserId(sysUser.getId());
-            sysUserJzgInfoService.save(sysUserJzgInfo);
-            sysUserJzgInfoId = sysUserJzgInfo.getId();
-            sysUserId = sysUser.getId();
-            saveOrganization(sysUserVo.getOrganizationId(), sysUserJzgInfo.getId());
-            saveFile(sysUserVo.getSfz1(), sysUserVo.getSfz2(), sysUserVo.getQualification(), sysUserVo.getContract(), sysUserVo.getApplicant(), sysUserVo.getSalaryTable(), sysUserVo.getLeaveTable(),sysUserJzgInfo.getId());
+//            verifyUser(sysUserVo.getTypeAttr(),sysUserVo.getDeptId(),sysUserVo.getIdentity(),sysUser.getId(),sysUserVo.getLeaderId(),sysUserVo.getReferrerId());
+//            SysUserJzgInfo sysUserJzgInfo = new SysUserJzgInfo();
+//            BeanUtils.copyProperties(sysUserVo, sysUserJzgInfo);
+//            sysUserJzgInfo.setUserId(sysUser.getId());
+//            sysUserJzgInfoService.save(sysUserJzgInfo);
+//            sysUserJzgInfoId = sysUserJzgInfo.getId();
+//            sysUserId = sysUser.getId();
+//            saveOrganization(sysUserVo.getOrganizationId(), sysUserJzgInfo.getId());
+//            saveFile(sysUserVo.getSfz1(), sysUserVo.getSfz2(), sysUserVo.getQualification(), sysUserVo.getContract(), sysUserVo.getApplicant(), sysUserVo.getSalaryTable(), sysUserVo.getLeaveTable(),sysUserJzgInfo.getId());
+            //系统中已存在业务员
+            throw new SystemException("用户信息已存在,无法添加");
         } else {
             // 如果手机号为新号 重新生成SysUser 设置默认密码
             SysUser sysUser1 = new SysUser(sysUserVo.getMobile(),sysUserVo.getMobile());
@@ -404,6 +406,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         });
         sysUserRoleService.saveBatch(sysUserRoleList);
 
+        //修改团队信息
+        sysOrganizationUserLinkService.remove(new LambdaQueryWrapper<SysOrganizationUserLink>()
+               .eq(SysOrganizationUserLink::getUserId, sysUserVo.getId())
+                .eq(SysOrganizationUserLink::getOrganizationId,sysUserVo.getOrganizationId()));
+        SysOrganizationUserLink sysOrganizationUserLink = new SysOrganizationUserLink();
+        sysOrganizationUserLink.setId(IdGenerate.nextId());
+        sysOrganizationUserLink.setUserId(sysUserVo.getUserId());
+        sysOrganizationUserLink.setOrganizationId(sysUserVo.getOrganizationId());
+        sysOrganizationUserLinkService.save(sysOrganizationUserLink);
+
         return HttpResult.ok("修改业务员成功");
     }
 
@@ -446,7 +458,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             sysUserJzgInfo.setReferrerName(referrerName);
         }
         SysOrganizationUserLink sysOrganizationUserLink = sysOrganizationUserLinkService.getOne
-                (new LambdaQueryWrapper<SysOrganizationUserLink>().eq(SysOrganizationUserLink::getUserId, sysUserJzgInfo.getId()));
+                (new LambdaQueryWrapper<SysOrganizationUserLink>().eq(SysOrganizationUserLink::getUserId, sysUserJzgInfo.getUserId()));
 
 
         if(!Objects.isNull(sysOrganizationUserLink)){
@@ -483,6 +495,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     public void verifyUser(String typeAttr,String deptId,String identity,String userId,String leaderId,String referrerId){
         SysDept sysDept = sysDeptService.getById(deptId);
+
         List<SysUserJzgInfo> sysUserJzgInfos  = sysUserJzgInfoService.getUserInfoByIdentity(identity, userId);
         SysUserJzgInfo sysUserJzgInfoByLeaderId = sysUserJzgInfoService.getOne
                 (new LambdaQueryWrapper<SysUserJzgInfo>().eq(SysUserJzgInfo::getId,leaderId).eq(SysUserJzgInfo::getIsDelete,0));

+ 24 - 0
tenant/organization/src/main/resources/mapper/SysDeptMapper.xml

@@ -20,4 +20,28 @@
         </if>
         from sys_dept ${ew.getCustomSqlSegment}
     </select>
+
+    <select id="selectDeptVoList" resultType="com.jzg.commons.entity.vo.SysDeptVo">
+        SELECT
+            sd.*,
+            COALESCE(COUNT(suji.user_id), 0) AS user_count
+        FROM
+            sys_dept sd
+                LEFT JOIN
+            sys_user_jzg_info suji ON suji.dept_id = sd.id
+        where
+            1=1
+            <if test="deptId!=null and deptId!=''">
+
+                route like CONCAT(#{deptId}, '%')
+            </if>
+            <if test="sysCode!=null and sysCode!=''">
+                and sd.sys_code = #{sysCode}
+            </if>
+
+        GROUP BY
+            sd.id
+        ORDER BY
+            user_count DESC;
+    </select>
 </mapper>

+ 15 - 0
tenant/organization/src/main/resources/mapper/SysOrganizationMapper.xml

@@ -30,6 +30,21 @@
         </where>
     </select>
 
+    <select id="getTeamUserPage" resultType="com.jzg.commons.entity.vo.SysOrganizationUserLinkVo">
+        select
+            su.*,
+            suji.*,
+        sd.name as dept_name
+        from sys_organization so
+                          INNER join sys_organization_user_link soul on so.id = soul.organization_id
+                            inner join sys_user su on su.id = soul.user_id
+                          INNER join sys_user_jzg_info suji on suji.user_id = soul.user_id
+                            left join sys_dept sd on suji.dept_id  = sd.id
+        where 1 = 1
+        <if test="param.id != null and param.id != ''">
+            and so.id = #{param.id}
+        </if>
 
+    </select>
 
 </mapper>