Procházet zdrojové kódy

1.控制台业务数据树形
2.系统数据权限树形

wuhp před 1 rokem
rodič
revize
6b41674150

+ 12 - 0
src/main/java/com/ydtech/modules/admin/controller/SysDeptController.java

@@ -248,4 +248,16 @@ public class SysDeptController extends BaseController {
         return HttpResult.ok(sysDeptService.getDataDeptTree(deptIds));
     }
 
+    /**
+     * 控制台用户数机构数
+     * @return
+     */
+    @ApiOperation(value = "控制台用户数机构数")
+    @PostMapping(value = "/getUserDeptTree")
+    public HttpResult<KztUserDeptTreeDto> getUserDeptTree(@RequestBody  SysDeptVo sysDeptVo) {
+        return HttpResult.ok(sysDeptService.getUserDeptTree(sysDeptVo));
+    }
+
+
+
 }

+ 12 - 0
src/main/java/com/ydtech/modules/admin/controller/kzt/SysUserDeptRelationshipController.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.admin.controller.kzt;
 
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.dto.SysUserDeptRelationshipDto;
 import com.ydtech.modules.admin.model.vo.SysUserDeptRelationshipVo;
 import com.ydtech.modules.admin.service.SysUserDeptRelationshipService;
@@ -56,4 +57,15 @@ public class SysUserDeptRelationshipController {
         return HttpResult.ok(sysUserDeptRelationshipService.getByUserId(userId));
     }
 
+    /**
+     * 通过用户机构获取代理人渠道
+     * @return  代理人或者渠道
+     */
+    @ApiOperation(value = "通过用户机构获取代理人渠道")
+    @PostMapping(value = "/findChannelAgent")
+    public HttpResult<BasePageResult<SysUser>> findChannelAgent(@RequestBody SysUserDeptRelationshipVo sysUserDeptRelationshipVo) {
+        return HttpResult.ok(sysUserDeptRelationshipService.findChannelAgent(sysUserDeptRelationshipVo));
+    }
+
+
 }

+ 7 - 1
src/main/java/com/ydtech/modules/admin/dao/SysDeptMapper.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.admin.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ydtech.modules.admin.model.SysDept;
+import com.ydtech.modules.admin.model.vo.SysDeptVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -54,7 +55,12 @@ public interface SysDeptMapper extends BaseMapper<SysDept> {
      */
     List<SysDept> getListByIds(@Param(value = "ids") List<String> ids);
 
-
+    /**
+     *
+     * @param sysDeptVo
+     * @return  获取五级所有机构  除总部
+     */
+    List<SysDept> getFiveLevelDept(@Param("vo") SysDeptVo sysDeptVo);
 }
 
 

+ 11 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java

@@ -10,6 +10,7 @@ import com.ydtech.modules.admin.model.dto.*;
 import com.ydtech.modules.admin.model.report.user.QianLineQDPersonnelReportDto;
 import com.ydtech.modules.admin.model.vo.*;
 import com.ydtech.modules.base.model.dto.PageDto;
+import com.ydtech.modules.order.entity.BasePageResult;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.springframework.stereotype.Repository;
@@ -475,6 +476,16 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
      */
     List<SysUser> findDxUserList();
 
+    /**
+     * 根据部门获取代理人渠道数
+     * @param sysUserDeptRelationshipVo
+     * @return
+     */
+    Page<SysUser> findQXDLUserListNew(@Param("page") Page page,@Param("vo") SysUserDeptRelationshipVo sysUserDeptRelationshipVo);
+
+
+    Page<SysUser>  getChanelList(@Param("page") Page page,@Param("vo") SysUserDeptRelationshipVo sysUserDeptRelationshipVo);
+
 }
 
 

+ 26 - 0
src/main/java/com/ydtech/modules/admin/model/vo/KztUserDeptTreeDto.java

@@ -0,0 +1,26 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ydtech.modules.admin.model.SysDept;
+import com.ydtech.modules.admin.model.SysUser;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@ApiModel(value = "控制台机构用户树形")
+public class KztUserDeptTreeDto  implements Serializable {
+    @ApiModelProperty(value = "类型")
+    private String type;
+
+    @ApiModelProperty(value = "部门树形")
+    private List<SysDeptTreeVo> deptList;
+
+    @ApiModelProperty(value = "用户树形")
+    private List<SysUser> userList;
+
+}

+ 6 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysDeptVo.java

@@ -6,6 +6,7 @@ import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -89,4 +90,9 @@ public class SysDeptVo implements Serializable {
     private String managementSource;
 
 
+
+    @ApiModelProperty(value = "部门ids")
+    private List<String> deptIds;
+
+
 }

+ 12 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserDeptRelationshipVo.java

@@ -42,4 +42,16 @@ public class SysUserDeptRelationshipVo {
     @Min(value = 1, message = "页数最小为1")
     private int pageNum=1;
 
+    @ApiModelProperty(value = "类型 1 渠道 2 代理人")
+    private String type;
+
+    @ApiModelProperty(value = "父级id")
+    private String pid;
+
+    @ApiModelProperty(value = "领导人id")
+    private String leaderId;
+
+    @ApiModelProperty(value = "用户名称")
+    private String userName;
+
 }

+ 5 - 0
src/main/java/com/ydtech/modules/admin/model/vo/TaskStatisticsVo.java

@@ -106,8 +106,13 @@ public class TaskStatisticsVo implements Serializable {
     @ApiModelProperty(value = "管理人工号")
     private String leaderId;
 
+    @ApiModelProperty(value = "类型")
+    private String treeType;
 
 
+    @ApiModelProperty(value = "机构id")
+    private String deptId;
+
 
 
 

+ 6 - 4
src/main/java/com/ydtech/modules/admin/service/SysDeptService.java

@@ -7,10 +7,7 @@ import com.ydtech.core.page.PageRequest;
 import com.ydtech.core.page.PageResult;
 import com.ydtech.modules.admin.model.SysArea;
 import com.ydtech.modules.admin.model.SysDept;
-import com.ydtech.modules.admin.model.vo.SysDeptRemoveVo;
-import com.ydtech.modules.admin.model.vo.SysDeptTreeVo;
-import com.ydtech.modules.admin.model.vo.SysDeptVo;
-import com.ydtech.modules.admin.model.vo.TreeSysDeptVO;
+import com.ydtech.modules.admin.model.vo.*;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -130,6 +127,11 @@ public interface SysDeptService extends IService<SysDept> {
      * @return
      */
     List<SysDept> getDataDeptTree(List<String> deptIds);
+
+    List<SysDeptTreeVo> getFiveLevelDept(SysDeptVo sysDeptVo);
+
+    KztUserDeptTreeDto getUserDeptTree(SysDeptVo sysDeptVo);
+
 }
 
 

+ 8 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserDeptRelationshipService.java

@@ -2,11 +2,14 @@ package com.ydtech.modules.admin.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.dto.SysUserDeptRelationshipDto;
 import com.ydtech.modules.admin.model.po.SysUserDeptRelationship;
 import com.ydtech.modules.admin.model.vo.SysUserDeptRelationshipVo;
 import com.ydtech.modules.order.entity.BasePageResult;
 
+import java.util.List;
+
 public interface SysUserDeptRelationshipService  extends IService<SysUserDeptRelationship> {
     /**
      *  @version
@@ -30,5 +33,10 @@ public interface SysUserDeptRelationshipService  extends IService<SysUserDeptRel
      *  @Description: 回显
      */
     SysUserDeptRelationshipDto getByUserId(String userId);
+    /**
+     * 通过用户机构获取代理人渠道
+     * @return  代理人或者渠道
+     */
+    BasePageResult<SysUser>  findChannelAgent(SysUserDeptRelationshipVo sysUserDeptRelationshipVo);
 
 }

+ 112 - 4
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptServiceImpl.java

@@ -12,15 +12,15 @@ import com.ydtech.core.page.PageResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.dao.SysAreaMapper;
 import com.ydtech.modules.admin.dao.SysDeptMapper;
+import com.ydtech.modules.admin.dao.SysUserDeptRelationshipMapper;
+import com.ydtech.modules.admin.dao.SysUserMapper;
 import com.ydtech.modules.admin.model.SysArea;
 import com.ydtech.modules.admin.model.SysDept;
+import com.ydtech.modules.admin.model.po.SysUserDeptRelationship;
 import com.ydtech.modules.admin.model.report.financialReceivables.FinancialReceivablesMonthVo;
-import com.ydtech.modules.admin.model.vo.SysDeptRemoveVo;
+import com.ydtech.modules.admin.model.vo.*;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.po.SysUserTreeShowLevel;
-import com.ydtech.modules.admin.model.vo.SysDeptTreeVo;
-import com.ydtech.modules.admin.model.vo.SysDeptVo;
-import com.ydtech.modules.admin.model.vo.TreeSysDeptVO;
 import com.ydtech.modules.admin.service.SysAreaService;
 import com.ydtech.modules.admin.service.SysDeptService;
 import com.ydtech.modules.admin.service.SysUserTreeShowLevelService;
@@ -53,6 +53,11 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
 
     @Autowired
     private SysUserTreeShowLevelService sysUserTreeShowLevelService;
+    @Autowired
+    private SysUserMapper sysUserMapper;
+
+    @Autowired
+    private SysUserDeptRelationshipMapper sysUserDeptRelationshipMapper;
 
 
 
@@ -728,6 +733,22 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
         return result;
     }
 
+    @Override
+    public List<SysDeptTreeVo> getFiveLevelDept(SysDeptVo sysDeptVo) {
+        SysDept sysDept = getById("9");
+        List<SysDept> sysDeptList = baseMapper.getFiveLevelDept(sysDeptVo);
+        sysDeptList.add(sysDept);//添加总部 总部没有等级机构
+        List<SysDeptTreeVo> sysDeptTreeVos = BeanUtil.copyToList(sysDeptList, SysDeptTreeVo.class);
+        Map<String, List<SysDeptTreeVo>> map = sysDeptTreeVos.stream().sorted(Comparator.comparing(SysDeptTreeVo::getId))
+                .collect(Collectors.groupingBy(SysDeptTreeVo::getParentId));
+        sysDeptTreeVos.forEach(i -> {
+            i.setChildren(map.getOrDefault(i.getId(), new ArrayList<>()));
+            i.setDeptCount(i.getChildren().size());
+        });
+        return map.get(sysDept.getParentId());
+    }
+
+
     private void buildDeptTree(SysDept dept, Map<String, SysDept> deptMap) {
         List<SysDept> children = new ArrayList<>();
         dept.setChildren(children);
@@ -740,6 +761,93 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
             }
         }
     }
+
+    /**
+     *  前线只要机构 后线人员(按照领导人)  机构
+     * @param sysDeptVo
+     * @return
+     */
+    @Override
+    public KztUserDeptTreeDto  getUserDeptTree(SysDeptVo sysDeptVo) {
+        KztUserDeptTreeDto kztUserDeptTreeDto = new KztUserDeptTreeDto();
+        String userId = BaseController.getUserId();
+        if (userId.contains("M")) {
+            kztUserDeptTreeDto.setType("1"); //前线
+        } else {
+            kztUserDeptTreeDto.setType("2"); //代理
+        }
+            SysUser byUserId = sysUserMapper.getByUserId(userId);
+            List<SysDeptTreeVo> resultDeptList = this.getFiveLevelDeptKzt(byUserId);
+            kztUserDeptTreeDto.setDeptList(resultDeptList);
+            if (!userId.contains("M")) {
+              List<SysUser>  resultList =this.getUserTreeHx(byUserId);
+                kztUserDeptTreeDto.setUserList(resultList);
+            }
+
+        return kztUserDeptTreeDto;
+    }
+
+    private List<SysUser> getUserTreeHx(SysUser sysUser) {
+        //获取领导字段不为空的人的ID
+        QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
+        queryWrapper.isNotNull("leader_id");
+
+        List<SysUser> users = sysUserMapper.selectList(queryWrapper);
+        if (users == null || users.size() == 0) {
+            return new ArrayList<>();
+        }
+        List<SysUser> topUsers = new ArrayList<>(); //存放1级用户,即没有直接上级的用户
+        // 根据组织结构展示级别,筛选顶层节点并构建组织结构树
+        if("admin".equals(sysUser.getName())){
+            topUsers.add(sysUserMapper.selectById("99D1501"));
+        }else {
+            topUsers.add(sysUser);
+        }
+        // 递归构建用户树结构
+        buildUserTree(topUsers, users);
+        return topUsers;
+    }
+
+    private List<SysDeptTreeVo> getFiveLevelDeptKzt(SysUser byUserId) {
+        SysDept sysDept = getById("9");
+        SysDeptVo sysDeptVo = new SysDeptVo();
+        String id = byUserId.getId();
+        List<String> deptIds = new ArrayList<>();
+        if("admin".equals(byUserId.getId())){
+            List<SysDept> sysDeptList = baseMapper.getFiveLevelDept(sysDeptVo);
+            deptIds.addAll(sysDeptList.stream().map(SysDept::getId).collect(Collectors.toList()));
+        }else {
+            List<SysUserDeptRelationship> relationships = sysUserDeptRelationshipMapper.selectList(new QueryWrapper<SysUserDeptRelationship>().eq("user_id", id));
+            deptIds.addAll(relationships.stream().map(SysUserDeptRelationship::getDeptId).collect(Collectors.toList()));
+        }
+        List<SysDept> sysDeptList = baseMapper.getFiveLevelDept(sysDeptVo);
+        sysDept.setComlevel("1");
+        sysDeptList.add(sysDept);
+
+        List<SysDeptTreeVo> sysDeptTreeVos = BeanUtil.copyToList(sysDeptList, SysDeptTreeVo.class);
+        Map<String, List<SysDeptTreeVo>> map = sysDeptTreeVos.stream().sorted(Comparator.comparing(SysDeptTreeVo::getId))
+                .collect(Collectors.groupingBy(SysDeptTreeVo::getParentId));
+        sysDeptTreeVos.forEach(i -> {
+            if(Integer.parseInt(i.getComlevel())<=5){
+                i.setChildren(map.getOrDefault(i.getId(), new ArrayList<>()));
+                i.setDeptCount(i.getChildren().size());
+            }
+        });
+        return map.get(sysDept.getParentId());
+    }
+    private void buildUserTree(List<SysUser> topUsers, List<SysUser> users) {
+        for (SysUser user : topUsers) {
+            List<SysUser> children = new ArrayList<>();
+            for (SysUser childUser : users) {
+                if (user.getId().equals(childUser.getLeaderId())) {
+                    children.add(childUser);
+                    // 递归查找下一级
+                    buildUserTree(children, users);
+                }
+            }
+            user.setChildren(children);
+        }
+    }
 }
 
 

+ 24 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserDeptRelationshipServiceImpl.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.dao.SysUserDeptRelationshipMapper;
+import com.ydtech.modules.admin.dao.SysUserMapper;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.dto.SysUserDeptRelationshipDto;
 import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementDto;
 import com.ydtech.modules.admin.model.po.SysUserDeptRelationship;
@@ -12,6 +14,7 @@ import com.ydtech.modules.admin.model.vo.SysUserDeptRelationshipVo;
 import com.ydtech.modules.admin.service.SysUserDeptRelationshipService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.entity.BasePageResult;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -23,6 +26,8 @@ import java.util.stream.Collectors;
 
 @Service
 public class SysUserDeptRelationshipServiceImpl extends ServiceImpl<SysUserDeptRelationshipMapper, SysUserDeptRelationship> implements SysUserDeptRelationshipService {
+    @Autowired
+    private SysUserMapper sysUserMapper;
 
     /**
      * @version
@@ -76,4 +81,23 @@ public class SysUserDeptRelationshipServiceImpl extends ServiceImpl<SysUserDeptR
         sysUserDeptRelationshipDto.setUserId(userId);
         return sysUserDeptRelationshipDto;
     }
+    /**
+     * 通过用户机构获取代理人渠道
+     * @return  代理人或者渠道
+     */
+    @Override
+    public BasePageResult<SysUser> findChannelAgent(SysUserDeptRelationshipVo sysUserDeptRelationshipVo) {
+        Page<SysUserLinkPtlAgreementDto> page = new Page<>(sysUserDeptRelationshipVo.getPageNum(),
+                sysUserDeptRelationshipVo.getPageSize());
+            if ("2".equals(sysUserDeptRelationshipVo.getType())) {
+//                2代理人
+                Page<SysUser>  qxdlUserListNew = sysUserMapper.findQXDLUserListNew(page, sysUserDeptRelationshipVo);
+                return new BasePageResult<>(sysUserDeptRelationshipVo.getPageNum(), page.getSize(), qxdlUserListNew.getTotal(), page.getPages(),
+                        qxdlUserListNew.getRecords());
+            }else {  // 1渠道
+                Page<SysUser> chanelList = sysUserMapper.getChanelList(page, sysUserDeptRelationshipVo);
+                return new BasePageResult<>(sysUserDeptRelationshipVo.getPageNum(), page.getSize(), chanelList.getTotal(), page.getPages(),
+                        chanelList.getRecords());
+            }
+    }
 }

+ 9 - 5
src/main/java/com/ydtech/modules/admin/service/impl/TaskStatisticsServiceImpl.java

@@ -362,12 +362,16 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
      **/
     @Override
     public IPage<BusinessAgentData> getBusinessAgentData(TaskStatisticsVo taskStatisticsVo) {
-        if(StringUtils.isNotEmpty(taskStatisticsVo.getTreeUserId())){
-            List<String> userIds=this.getNextLevel(taskStatisticsVo.getTreeUserId());
-            if(!userIds.isEmpty()){
-                taskStatisticsVo.setUserIds(userIds);
+        if(StringUtils.isNotEmpty(taskStatisticsVo.getTreeType())){
+            if(StringUtils.isNotEmpty(taskStatisticsVo.getTreeUserId()) && "2".equals(taskStatisticsVo.getTreeType())){
+                List<String> userIds=this.getNextLevel(taskStatisticsVo.getTreeUserId());
+                if(!userIds.isEmpty()){
+                    taskStatisticsVo.setUserIds(userIds);
+                }
+            }else if ("1".equals(taskStatisticsVo.getTreeType())){
+                taskStatisticsVo.setDeptId(taskStatisticsVo.getTreeUserId());
+                taskStatisticsVo.setTreeUserId(null);
             }
-
         }
         PageVo<TaskStatisticsVo> pageVo = new PageVo<>();
         Page page = new Page(taskStatisticsVo.getPageNum(), taskStatisticsVo.getPageSize());

+ 17 - 0
src/main/resources/mapper/modules/admin/SysDeptMapper.xml

@@ -131,4 +131,21 @@
         </foreach>
     </select>
 
+
+    <select id="getFiveLevelDept" resultType="com.ydtech.modules.admin.model.SysDept">
+        select * from
+        sys_dept sd
+        <where>
+            sd.del_flag ='0'
+            AND sd.id LIKE concat('%','9','%')
+            AND sd.comlevel is not null
+            <if test="vo.deptIds !=null and  vo.deptIds!=''  and  vo.deptIds.size()>0">
+                AND sd.id  in
+                <foreach collection="vo.deptIds" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
 </mapper>

+ 64 - 0
src/main/resources/mapper/modules/admin/SysUserMapper.xml

@@ -1590,4 +1590,68 @@
           AND t1.id LIKE '%M%'
           AND t2.management_source = 3
     </select>
+
+    <select id="findQXDLUserListNew" resultType="com.ydtech.modules.admin.model.SysUser">
+        SELECT
+        su.id as "id",
+        su.leader_id as "leaderId",
+        su.leader_name as "leaderName",
+        su.name as "name",
+        sd.management_source as "managementSource"
+        FROM
+        sys_user su
+        LEFT JOIN sys_user_info info ON info.id = su.id
+        LEFT JOIN sys_dept sd ON su.dept_id = sd.id
+        LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
+        WHERE
+        (t3.role_id = 20 or t3.role_id = 21)
+        and sd.management_source = 2
+        AND sd.del_flag = '0'
+        AND su.STATUS = 1
+        <if test="vo.deptId !=null and  vo.deptId!=''">
+            and su.dept_id like concat('%',#{vo.deptId},'%')
+        </if>
+
+        <if test="vo.userId !=null  and  vo.userId!='' ">
+            and su.id =#{vo.userId}
+        </if>
+        <if test="vo.leaderId !=null  and  vo.leaderId!='' ">
+            and su.leader_id =#{vo.leaderId}
+        </if>
+
+         <if test="vo.userName !=null  and  vo.userName!='' ">
+            and su.name =#{vo.userName}
+        </if>
+    </select>
+
+    <select id="getChanelList" resultType="com.ydtech.modules.admin.model.SysUser">
+        SELECT
+        su.id as "id",
+        su.leader_id as "leaderId",
+        su.leader_name as "leaderName",
+        su.name as "name",
+        sd.management_source as "managementSource"
+        FROM
+        sys_user su
+        LEFT JOIN sys_user_info info ON info.id = su.id
+        LEFT JOIN sys_dept sd ON su.dept_id = sd.id
+        WHERE
+         sd.management_source = 1
+        AND sd.del_flag = '0'
+        AND su.STATUS = 1
+        <if test="vo.deptId !=null and  vo.deptId!=''">
+            and su.dept_id like concat('%',#{vo.deptId},'%')
+        </if>
+        <if test="vo.userId !=null  and  vo.userId!='' ">
+            and su.id =#{vo.userId}
+        </if>
+        <if test="vo.leaderId !=null  and  vo.leaderId!='' ">
+            and su.leader_id =#{vo.leaderId}
+        </if>
+
+        <if test="vo.userName !=null  and  vo.userName!='' ">
+            and su.name =#{vo.userName}
+        </if>
+    </select>
+
 </mapper>

+ 22 - 15
src/main/resources/mapper/modules/admin/TaskStatisticsMapper.xml

@@ -24,13 +24,14 @@
                 DATE_FORMAT( #{vo.createtimeEnd}, '%Y-%m-%d')
             </if>
 
-            <if test="vo.days !=null  and vo.days !=''  and vo.days != 0 ">
-                and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{vo.days} DAY)
-            </if>
-
-            <if test="vo.userId !=null  and vo.userId!=''">
-                and su.id=#{vo.userId}
-            </if>
+            <choose>
+                <when test="vo.userId !=null  and vo.userId!='' and vo.managementSource  ='1' ">
+                    and su.id=#{vo.userId}
+                </when>
+                <when test="vo.userId !=null  and vo.userId!='' and vo.managementSource  ='2' ">
+                    and su.leader_id=#{vo.userId}
+                </when>
+            </choose>
 
             <if test="vo.managementSource !=null  and vo.managementSource!=''">
                 and sd.management_source=#{vo.managementSource}
@@ -49,11 +50,8 @@
                 </foreach>
             </if>
 
-            <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
-                AND io.userid  in
-                <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
+            <if test="vo.deptId !=null  and vo.deptId!=''">
+                and io.deptid like concat('%',#{vo.deptId},'%')
             </if>
 
             <if test="vo.userName !=null  and vo.userName!=''">
@@ -89,9 +87,14 @@
                 and su.name=#{vo.userName}
             </if>
 
-            <if test="vo.userId !=null  and vo.userId!=''">
-                and su.id=#{vo.userId}
-            </if>
+            <choose>
+                <when test="vo.userId !=null  and vo.userId!='' and vo.managementSource  ='1' ">
+                    and su.id=#{vo.userId}
+                </when>
+                <when test="vo.userId !=null  and vo.userId!='' and vo.managementSource  ='2' ">
+                    and su.leader_id=#{vo.userId}
+                </when>
+            </choose>
 
             <if test="vo.userIds  !=null  and vo.userIds!=''  and vo.userIds.size()>0">
                 and su.id in
@@ -100,6 +103,10 @@
                 </foreach>
             </if>
 
+            <if test="vo.deptId !=null  and vo.deptId!=''">
+                and io.deptid like concat('%',#{vo.deptId},'%')
+            </if>
+
             <if test="vo.managementSource !=null  and vo.managementSource!=''">
                 and sd.management_source=#{vo.managementSource}
             </if>