|
@@ -877,6 +877,149 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
return page1;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Page<UserVO> selectUserList2(Page<UserVO> page, UserDTO userDTO, HnqzUser user) {
|
|
|
+
|
|
|
+ List<Long> areas;
|
|
|
+ if (CollUtil.isNotEmpty(userDTO.getAreaCodes())) {
|
|
|
+ areas = userDTO.getAreaCodes();
|
|
|
+ } else {
|
|
|
+ areas = userAreaService.listUserAreas(Long.valueOf(user.getId()));
|
|
|
+ if (CollUtil.isNotEmpty(areas)) {
|
|
|
+ areas = areaEntityService.list(Wrappers.<SysAreaEntity>lambdaQuery()
|
|
|
+ .in(SysAreaEntity::getAreaId, areas)
|
|
|
+ .eq(SysAreaEntity::getAreaStatus, Boolean.TRUE)
|
|
|
+ .eq(SysAreaEntity::getAreaType, UpmsType.AreaType.DISTRICT))
|
|
|
+ .stream()
|
|
|
+ .mapToLong(SysAreaEntity::getAreaId).boxed().distinct().collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Integer> userid = userAreaService.listAreaUser(areas).stream().map(Long::intValue).collect(Collectors.toList());
|
|
|
+
|
|
|
+ userDTO.setUserIdList(userid);
|
|
|
+
|
|
|
+ if (SecurityUtils.getRoles().contains(1)) {
|
|
|
+ return baseMapper.getUserVosPage(page, userDTO, new DataScope());
|
|
|
+ }
|
|
|
+ // 系统管理员
|
|
|
+ else if (SecurityUtils.getRoles().contains(50)){
|
|
|
+
|
|
|
+ // 3营管理员
|
|
|
+ // 4域管理员
|
|
|
+ // 5职学术推广员
|
|
|
+ // 37服务供应商管理员
|
|
|
+ // 38营销中心分管领导
|
|
|
+ // 39事业部总经理
|
|
|
+ // 40商务管理员
|
|
|
+ // 41事业部分管领导
|
|
|
+ // 42市场管理员
|
|
|
+ // 43地市管理员
|
|
|
+ // 44安全管理员
|
|
|
+ // 45审计管理员
|
|
|
+ // 47事业部医药代表备案管理员
|
|
|
+ // 48平台监察员
|
|
|
+ // 49生产企业监察员
|
|
|
+ // 50事业部管理员
|
|
|
+
|
|
|
+ List<Integer> role = userDTO.getRole();
|
|
|
+ if (CollUtil.isEmpty(role)) {
|
|
|
+ userDTO.setRole(ListUtil.of( 3, 4, 5, 37, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 49, 50));
|
|
|
+ }
|
|
|
+
|
|
|
+ return baseMapper.getUserVosPage(page, userDTO, new DataScope());
|
|
|
+ }
|
|
|
+ else if (SecurityUtils.getRoles().contains(2) /*|| SecurityUtils.getRoles().contains(35)*/) {
|
|
|
+ // 人数据权限
|
|
|
+ List<Integer> bcRoles = Stream.of(2, 3, 4, 5, 6, 7, 9, 10, 11, 13, 19, 31, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50).collect(Collectors.toList());
|
|
|
+ if (CollUtil.isNotEmpty(userDTO.getRole())) {
|
|
|
+ Collection<Integer> intersection = CollUtil.intersectionDistinct(bcRoles, userDTO.getRole());
|
|
|
+ if (CollUtil.isEmpty(intersection)) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+ userDTO.setRole(new ArrayList<>(intersection));
|
|
|
+ } else {
|
|
|
+ userDTO.setRole(bcRoles);
|
|
|
+ }
|
|
|
+ return baseMapper.getUserVosPage(page, userDTO, new DataScope());
|
|
|
+ }
|
|
|
+ // 备案管理员
|
|
|
+ else if (SecurityUtils.getRoles().contains(47)) {
|
|
|
+ userDTO.setRole(ListUtil.of(5, 6));
|
|
|
+ return baseMapper.getUserVosPage(page, userDTO, new DataScope());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Integer deptId = userDTO.getDeptId();
|
|
|
+ userDTO.setDeptId(SecurityUtils.getUser().getDeptId());
|
|
|
+ List<UserVO> userList = sysUserMapper.selectByDeptId1(userDTO);
|
|
|
+
|
|
|
+ // 查询下游企业
|
|
|
+ SysDeptRelation sysDeptRelation = new SysDeptRelation();
|
|
|
+ sysDeptRelation.setAncestor(userDTO.getDeptId());
|
|
|
+ List<SysDeptRelation> sysDeptRelationList = sysDeptRelationMapper.selectListByAncestor(sysDeptRelation);
|
|
|
+ List<Integer> ids1 = sysDeptRelationList.stream().map(SysDeptRelation::getDescendant).collect(Collectors.toList());
|
|
|
+
|
|
|
+
|
|
|
+ List<UserVO> userList2 = new ArrayList<>();
|
|
|
+
|
|
|
+ // for (Integer id : ids1) {
|
|
|
+ // userDTO.setDeptId(id);
|
|
|
+ // List<UserVO> userList3 = sysUserMapper.selectByDeptId1(userDTO);
|
|
|
+ // userList1.addAll(userList3);
|
|
|
+ // }
|
|
|
+
|
|
|
+ List<UserVO> userList1 = ids1.parallelStream().flatMap(id -> {
|
|
|
+ userDTO.setDeptId(id);
|
|
|
+ return sysUserMapper.selectByDeptId1(userDTO).stream();
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<Integer> ids2 = userList1.stream().map(UserVO::getUserId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ for (int i = 0; i < userList1.size(); i++) {
|
|
|
+ if (CollUtil.isNotEmpty(userList1.get(i).getRoleList())) {
|
|
|
+ if (userList1.get(i).getRoleList().get(0).getRoleId().equals(4)) {
|
|
|
+ userDTO.setUserId(ids2.get(i));
|
|
|
+ UserVO userVO = sysUserMapper.selectByUserId1(userDTO);
|
|
|
+ userList2.add(userVO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ userList.addAll(userList2);
|
|
|
+
|
|
|
+ List<Integer> ids = userList.stream().map(UserVO::getUserId).collect(Collectors.toList());
|
|
|
+ for (int i = 0; i < userList.size(); i++) {
|
|
|
+ List<SysRole> sysRoleList1 = sysRoleService.findRolesByUserId(ids.get(i));
|
|
|
+ userList.get(i).setRoleList(sysRoleList1);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (null != deptId) {
|
|
|
+ userList = userList.stream().filter(item -> deptId.equals(item.getDeptId())).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 每页数据条数
|
|
|
+ Page<UserVO> page1 = new Page<>();
|
|
|
+ int current = Long.valueOf(page.getCurrent()).intValue();
|
|
|
+ int size = Long.valueOf(page.getSize()).intValue();
|
|
|
+
|
|
|
+ int count = userList.size();
|
|
|
+ List<UserVO> pageList = new ArrayList<>();
|
|
|
+ // 计算当前页第一条数据的下标
|
|
|
+ int currId = current > 1 ? (current - 1) * size : 0;
|
|
|
+ for (int i = 0; i < size && i < count - currId; i++) {
|
|
|
+ pageList.add(userList.get(currId + i));
|
|
|
+ }
|
|
|
+ page1.setSize(size);
|
|
|
+ page1.setCurrent(current);
|
|
|
+ page1.setTotal(count);
|
|
|
+ // 计算分页总页数
|
|
|
+ page1.setPages(count % 10 == 0 ? count / 10 : count / 10 + 1);
|
|
|
+ page1.setRecords(pageList);
|
|
|
+ return page1;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public Page<UserVO> selectUserList1(Page<UserVO> page, UserDTO userDTO, HnqzUser user) {
|
|
|
|