wl
2022-10-27 3e3b289a1dbedd82bcb737db750d69d268ef412e
解决部门bug
7个文件已修改
142 ■■■■ 已修改文件
ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/mapper/depart/UmsDepartMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/service/user/UmsDepartManageService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/service/user/impl/UmsDepartManageServiceImpl.java 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/resources/mapper/depart/UmsDepartMapper.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java
@@ -9,9 +9,7 @@
import com.ycl.api.BasePageVO;
import com.ycl.api.CommonResult;
import com.ycl.controller.BaseController;
import com.ycl.entity.depart.DepartManager;
import com.ycl.entity.depart.UmsDepart;
import com.ycl.entity.user.UmsDepartManage;
import com.ycl.service.depart.UmsDepartService;
import com.ycl.service.user.UmsDepartManageService;
import com.ycl.utils.auth.UserAuthUtil;
@@ -126,19 +124,31 @@
    @ApiOperation("用户修改角色")
    @PutMapping(value = "/user_update_Role")
    public CommonResult userUpdateRole(@RequestParam Long id,
                                     @RequestParam List<Long> roles) {
                                       @RequestParam List<Long> roles) {
        umsAdminDepartService.userUpdateRoles(id, roles);
        return CommonResult.success("update success");
    }
    @ApiOperation("用户修改部门")
    @PutMapping(value = "/user_update_depart")
    public CommonResult userUpdateDepart(@RequestParam Long id,
                                     @RequestParam List<UmsDepartManage> departmentIds) {
        umsAdminDepartService.userUpdateDepart(id, departmentIds);
    public CommonResult userUpdateDepart(@RequestParam Long userId,
                                         @RequestParam Long departId) {
        umsAdminDepartService.userUpdateDepart(userId,departId);
        return CommonResult.success("update success");
    }
    @ApiOperation("查询不在部门的剩余人员")
    @GetMapping("/query_surplus_user")
    public CommonResult searchSurplusUser() {
        return CommonResult.success(departService.selectSurplusUser());
    }
    @ApiOperation("查询不在部门的剩余人员和已在部门的人")
    @GetMapping("/query_surplus_exist_user")
    public CommonResult searchSurplusUser(@RequestParam Long id) {
        return CommonResult.success(departService.selectSurplusUserAndExistUser(id));
    }
    @ApiOperation("查询顶级部门")
    @GetMapping(value = "/query_father")
    public CommonResult search() {
ycl-common/src/main/java/com/ycl/mapper/depart/UmsDepartMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ycl.entity.depart.UmsDepart;
import com.ycl.entity.user.UmsAdmin;
import com.ycl.vo.depart.UmsDepartVO;
import org.apache.ibatis.annotations.Param;
@@ -20,4 +21,8 @@
    List<UmsDepart> selectDepartList();
    List<UmsDepartVO> selectPageByName(@Param("departName") String departName, @Param("offset") Long offset, @Param("size") Long size);
    List<UmsAdmin> selectSurplusUser();
    List<UmsAdmin> selectSurplusUserAndExistUser(@Param("id") Long id);
}
ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.entity.depart.UmsDepart;
import com.ycl.entity.user.UmsAdmin;
import com.ycl.vo.depart.DepartVO;
import com.ycl.vo.depart.UmsDepartVO;
import org.springframework.web.bind.annotation.RequestParam;
@@ -70,4 +71,7 @@
     */
    void updateStatus(DepartVO.StatusDepartVO params);
    List<UmsAdmin> selectSurplusUser();
    List<UmsAdmin> selectSurplusUserAndExistUser(Long id);
}
ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.entity.depart.UmsDepart;
import com.ycl.entity.user.UmsAdmin;
import com.ycl.enums.common.ResultCode;
import com.ycl.exception.ApiException;
import com.ycl.mapper.depart.UmsDepartMapper;
@@ -146,6 +147,15 @@
        }
    }
    @Override
    public List<UmsAdmin> selectSurplusUser() {
        return sccgDepartMapper.selectSurplusUser();
    }
    @Override
    public List<UmsAdmin> selectSurplusUserAndExistUser(Long id) {
        return sccgDepartMapper.selectSurplusUserAndExistUser(id);
    }
    /**
     * 利用递归将最后一级空集合变为null,前端联级选择器最后才不会出现 暂无数据的bug
ycl-common/src/main/java/com/ycl/service/user/UmsDepartManageService.java
@@ -8,7 +8,7 @@
/**
 * <p>
 *  服务类
 * 服务类
 * </p>
 *
 * @author lyq
@@ -26,5 +26,5 @@
    void userUpdateRoles(Long id, List<Long> roles);
    void userUpdateDepart(Long id, List<UmsDepartManage> roles);
    void userUpdateDepart(Long userId,Long departId);
}
ycl-common/src/main/java/com/ycl/service/user/impl/UmsDepartManageServiceImpl.java
@@ -15,6 +15,7 @@
import com.ycl.service.user.UmsDepartManageService;
import com.ycl.vo.depart.DepartVO;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
@@ -113,40 +114,40 @@
            }
        }
        //绑定菜单于用户
            ArrayList<UmsRoleMenuRelation> umsRoleMenuRelations = new ArrayList<>();
            for (Long role : roles) {
                umsRoleMenuRelations.addAll(roleMenuRelationMapper
                        .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>()
                                .eq(UmsRoleMenuRelation::getRoleId, role)));
            }
            umsRoleMenuRelations
                    .stream()
                    .map(item->item.getMenuId())
                    .collect(Collectors.toList())
                    .stream()
                    .distinct()
                    .collect(Collectors.toList())
                    .stream()
                    .forEach(item -> {
                        AdminMenuRelation adminMenuRelation = new AdminMenuRelation();
                        adminMenuRelation.setAdminId(id);
                        adminMenuRelation.setMenuId(item);
                        adminMenuRelationMapper.insert(adminMenuRelation);
                    });
        ArrayList<UmsRoleMenuRelation> umsRoleMenuRelations = new ArrayList<>();
        for (Long role : roles) {
            umsRoleMenuRelations.addAll(roleMenuRelationMapper
                    .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>()
                            .eq(UmsRoleMenuRelation::getRoleId, role)));
        }
        umsRoleMenuRelations
                .stream()
                .map(item -> item.getMenuId())
                .collect(Collectors.toList())
                .stream()
                .distinct()
                .collect(Collectors.toList())
                .stream()
                .forEach(item -> {
                    AdminMenuRelation adminMenuRelation = new AdminMenuRelation();
                    adminMenuRelation.setAdminId(id);
                    adminMenuRelation.setMenuId(item);
                    adminMenuRelationMapper.insert(adminMenuRelation);
                });
    }
    @Override
    public void userUpdateDepart(Long id, List<UmsDepartManage> departIds) {
        umsDepartManageMapper.delete(new LambdaQueryWrapper<UmsDepartManage>().eq(UmsDepartManage::getUserId,id));
        departIds
                .stream()
                .forEach(item->{
                    UmsDepartManage umsDepartManage = new UmsDepartManage();
                    umsDepartManage.setDepartId(item.getDepartId());
                    umsDepartManage.setUserId(id);
                    umsDepartManage.setIsLeader(item.getIsLeader());
                    umsDepartManage.setCreateTime(new Date());
                    umsDepartManageMapper.insert(umsDepartManage);
                });
    @Transactional(rollbackFor = Exception.class)
    public void userUpdateDepart(Long userId,Long departId) {
        umsDepartManageMapper.delete(new LambdaQueryWrapper<UmsDepartManage>().eq(UmsDepartManage::getUserId,userId));
        UmsDepartManage umsDepartManage = new UmsDepartManage();
        umsDepartManage.setUserId(userId);
        umsDepartManage.setCreateTime(new Date());
        umsDepartManage.setDepartId(departId);
        umsDepartManageMapper.insert(umsDepartManage);
        UmsAdmin umsAdmin = new UmsAdmin();
        umsAdmin.setDepartmentId(departId);
        umsAdmin.setId(userId);
        umsAdminService.updateById(umsAdmin);
    }
}
ycl-common/src/main/resources/mapper/depart/UmsDepartMapper.xml
@@ -61,5 +61,37 @@
        left join ums_depart as pd on t_0.parent_id = pd.id
    </select>
    <select id="selectSurplusUser" resultType="com.ycl.entity.user.UmsAdmin">
        SELECT
            t.id,
            t3.username
        FROM
            ( SELECT t1.id FROM ums_admin t1 UNION ALL SELECT t2.user_id FROM ums_depart_manager t2 ) t
                LEFT JOIN ums_admin t3  on t3.id =t.id
        GROUP BY
            id
        HAVING
            count( * )= 1
    </select>
    <select id="selectSurplusUserAndExistUser" resultType="com.ycl.entity.user.UmsAdmin" parameterType="java.lang.Long">
        SELECT
            t4.id,
            t4.username
        FROM
            ums_depart_manager t3
                LEFT JOIN ums_admin t4 ON t3.user_id = t4.id
        WHERE
            t3.depart_id = #{id} UNION ALL
        SELECT
            t.id,
            t3.username
        FROM
            ( SELECT t1.id FROM ums_admin t1 UNION ALL SELECT t2.user_id FROM ums_depart_manager t2 ) t
                LEFT JOIN ums_admin t3 ON t3.id = t.id
        GROUP BY
            id
        HAVING
            count( * )= 1
    </select>
</mapper>