1.工作流中指定审批人接口修改,改为查询当前用户的上一级用户

main
yitonglei 3 years ago
parent 665360576a
commit 14e54dee62
  1. 26
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/controller/HomePageController.java
  2. 14
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/impl/HomePageServiceImpl.java
  3. 11
      lab-service/lab-system/src/main/java/org/springblade/system/controller/RoleController.java
  4. 2
      lab-service/lab-system/src/main/java/org/springblade/system/service/IRoleService.java
  5. 19
      lab-service/lab-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java
  6. 24
      lab-service/lab-user/src/main/java/org/springblade/system/user/feign/IRoleClient.java
  7. 4
      lab-service/lab-user/src/main/java/org/springblade/system/user/mapper/UserAppMapper.java
  8. 1
      lab-service/lab-user/src/main/java/org/springblade/system/user/mapper/UserAppMapper.xml
  9. 27
      lab-service/lab-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

@ -42,19 +42,19 @@ public class HomePageController extends BladeController {
@ApiOperation(value = "我的相关", notes = "首页的“到期提醒”、“我的待办”、“今日新增”、“今日完成”的统计") @ApiOperation(value = "我的相关", notes = "首页的“到期提醒”、“我的待办”、“今日新增”、“今日完成”的统计")
public R aboutMy() throws Exception{ public R aboutMy() throws Exception{
JSONObject result = new JSONObject(); // Future<Integer> expireNum = homePageService.expireNum();
Future<Integer> expireNum = homePageService.expireNum(); // Future<Integer> needDoNum = homePageService.needDoNum();
Future<Integer> needDoNum = homePageService.needDoNum(); // Future<Integer> todayAddNum = homePageService.todayAddNum();
Future<Integer> todayAddNum = homePageService.todayAddNum(); // Future<Integer> todayFinishNum = homePageService.todayFinishNum();
Future<Integer> todayFinishNum = homePageService.todayFinishNum(); //
// JSONObject result = new JSONObject();
result.put("needDoNum", needDoNum.get()); // result.put("needDoNum", needDoNum.get());
result.put("expireNum", expireNum.get()); // result.put("expireNum", expireNum.get());
result.put("todayAddNum" , todayAddNum.get()); // result.put("todayAddNum" , todayAddNum.get());
result.put("todayFinishNum", todayFinishNum.get()); // result.put("todayFinishNum", todayFinishNum.get());
//
return R.data(result); // return R.data(result);
// return homePageService.aboutMy(); return homePageService.aboutMy();
} }

@ -165,10 +165,12 @@ public class HomePageServiceImpl implements IHomePageService {
.orderByTaskCreateTime() .orderByTaskCreateTime()
.desc() .desc()
.taskTenantId(WfTaskUtil.getTenantId()) .taskTenantId(WfTaskUtil.getTenantId())
.taskCandidateOrAssigned(taskUser)
.taskCandidateGroupIn(Func.toStrList(taskGroup))
.active(); .active();
taskQuery.taskCandidateOrAssigned(taskUser) // taskQuery.taskCandidateOrAssigned(taskUser)
//.taskCandidateGroupIn(Func.toStrList(taskGroup)) // .taskCandidateGroupIn(Func.toStrList(taskGroup))
; // ;
List<Task> listNeedDo = taskQuery.list(); List<Task> listNeedDo = taskQuery.list();
@ -205,9 +207,11 @@ public class HomePageServiceImpl implements IHomePageService {
.orderByTaskCreateTime() .orderByTaskCreateTime()
.desc() .desc()
.taskTenantId(WfTaskUtil.getTenantId()) .taskTenantId(WfTaskUtil.getTenantId())
.taskCandidateOrAssigned(taskUser)
.taskCandidateGroupIn(Func.toStrList(taskGroup))
.active(); .active();
taskQuery.taskCandidateOrAssigned(taskUser) // taskQuery.taskCandidateOrAssigned(taskUser)
//.taskCandidateGroupIn(Func.toStrList(taskGroup)) // .taskCandidateGroupIn(Func.toStrList(taskGroup))
; ;
List<Task> listNeedDo = taskQuery.list(); List<Task> listNeedDo = taskQuery.list();

@ -10,11 +10,9 @@ import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.log.annotation.ApiLog; import org.springblade.core.log.annotation.ApiLog;
import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.annotation.PreAuth;
import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.constant.RoleConstant;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.system.cache.SysCache; import org.springblade.system.cache.SysCache;
import org.springblade.system.entity.Role; import org.springblade.system.entity.Role;
@ -135,4 +133,13 @@ public class RoleController extends BladeController {
return R.status(temp); return R.status(temp);
} }
/**
* 根据角色id获取父级角色id
*/
@GetMapping("/parentRoleIds")
@ApiOperationSupport(order = 8)
@ApiOperation(value = "根据角色id获取父级角色id", notes = "根据角色id获取父级角色id")
public List<String> parentRoleIds(@RequestParam String roleids){
return roleService.parentRoleIds(roleids);
}
} }

@ -97,4 +97,6 @@ public interface IRoleService extends IService<Role> {
List<RoleVO> search(String roleName, Long parentId); List<RoleVO> search(String roleName, Long parentId);
List<String> getRoleName(String alias); List<String> getRoleName(String alias);
List<String> parentRoleIds(String roleids);
} }

@ -13,6 +13,7 @@ import org.springblade.core.tool.constant.RoleConstant;
import org.springblade.core.tool.node.ForestNodeMerger; import org.springblade.core.tool.node.ForestNodeMerger;
import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.system.entity.Role; import org.springblade.system.entity.Role;
import org.springblade.system.entity.RoleMenu; import org.springblade.system.entity.RoleMenu;
import org.springblade.system.entity.RoleScope; import org.springblade.system.entity.RoleScope;
@ -20,6 +21,8 @@ import org.springblade.system.mapper.RoleMapper;
import org.springblade.system.service.IRoleMenuService; import org.springblade.system.service.IRoleMenuService;
import org.springblade.system.service.IRoleScopeService; import org.springblade.system.service.IRoleScopeService;
import org.springblade.system.service.IRoleService; import org.springblade.system.service.IRoleService;
import org.springblade.system.user.entity.User;
import org.springblade.system.user.feign.IUserClient;
import org.springblade.system.vo.RoleVO; import org.springblade.system.vo.RoleVO;
import org.springblade.system.wrapper.RoleWrapper; import org.springblade.system.wrapper.RoleWrapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -222,4 +225,20 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
return lists; return lists;
} }
//根据当前用户查询到该用户所属部门的上一级角色id
@Override
public List<String> parentRoleIds(String roleids){
List<String> pIds = new ArrayList<>();
//查询当前用户角色的上级角色
LambdaQueryWrapper<Role> wrapper = Wrappers.lambdaQuery();
wrapper.in(Role::getId,roleids);
List<Role> list = baseMapper.selectList(wrapper);
if(list.size() > 0){
for(Role r : list){
pIds.add(r.getParentId().toString());
}
}
return pIds;
}
} }

@ -0,0 +1,24 @@
package org.springblade.system.user.feign;
import org.springblade.core.tool.api.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @Description
* @Author ytl
* @Date 2023/2/22 0022 10:36
*/
@FeignClient(
value = "blade-system"
)
public interface IRoleClient {
String API_PREFIX = "/role";
String API_PREFIX_PARENT_ROLE_IDS = API_PREFIX + "/parentRoleIds";
@GetMapping(API_PREFIX_PARENT_ROLE_IDS)
List<String> parentRoleIds(@RequestParam String roleids);
}

@ -2,7 +2,11 @@
package org.springblade.system.user.mapper; package org.springblade.system.user.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.system.user.entity.User;
import org.springblade.system.user.entity.UserApp; import org.springblade.system.user.entity.UserApp;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/** /**
* Mapper 接口 * Mapper 接口

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.system.user.mapper.UserAppMapper"> <mapper namespace="org.springblade.system.user.mapper.UserAppMapper">
</mapper> </mapper>

@ -5,6 +5,7 @@ package org.springblade.system.user.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springblade.common.constant.CommonConstant; import org.springblade.common.constant.CommonConstant;
@ -33,6 +34,7 @@ import org.springblade.system.user.cache.UserCache;
import org.springblade.system.user.entity.*; import org.springblade.system.user.entity.*;
import org.springblade.system.user.enums.UserEnum; import org.springblade.system.user.enums.UserEnum;
import org.springblade.system.user.excel.UserExcel; import org.springblade.system.user.excel.UserExcel;
import org.springblade.system.user.feign.IRoleClient;
import org.springblade.system.user.mapper.UserMapper; import org.springblade.system.user.mapper.UserMapper;
import org.springblade.system.user.service.IUserDeptService; import org.springblade.system.user.service.IUserDeptService;
import org.springblade.system.user.service.IUserOauthService; import org.springblade.system.user.service.IUserOauthService;
@ -63,6 +65,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
private final IUserOauthService userOauthService; private final IUserOauthService userOauthService;
private final ISysClient sysClient; private final ISysClient sysClient;
private final BladeTenantProperties tenantProperties; private final BladeTenantProperties tenantProperties;
private final IRoleClient roleClient;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -254,17 +257,26 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
return UserWrapper.build().pageVO(pages); return UserWrapper.build().pageVO(pages);
} }
/**
* 根据当前用户查询到该用户所属部门的上一级用户
* @param user
* @param query
* @return
*/
@Override @Override
public IPage<UserVO> selectUserSearchToProcess(UserVO user, Query query) { public IPage<UserVO> selectUserSearchToProcess(UserVO user, Query query) {
BladeUser bladeUser = AuthUtil.getUser(); BladeUser bladeUser = AuthUtil.getUser();
String deptIdS = bladeUser.getDeptId(); String deptIdS = bladeUser.getDeptId();
String roleId = bladeUser.getRoleId();
List<String> pRoleIDS = roleClient.parentRoleIds(roleId);
LambdaQueryWrapper<User> queryWrapper = Wrappers.<User>query().lambda(); //
if (StringUtil.isNotBlank(user.getName())) { LambdaQueryWrapper<User> queryWrapper = Wrappers.<User>query().lambda();
queryWrapper.like(User::getName, user.getName()); // if (StringUtil.isNotBlank(user.getName())) {
} // queryWrapper.like(User::getName, user.getName());
// }
//
if (StringUtil.isNotBlank(deptIdS)) { if (StringUtil.isNotBlank(deptIdS)) {
queryWrapper.and(wrapper -> { queryWrapper.and(wrapper -> {
List<String> ids = Func.toStrList(deptIdS); List<String> ids = Func.toStrList(deptIdS);
@ -272,6 +284,11 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
}); });
} }
if (pRoleIDS.size() > 0) {
queryWrapper.and(wrapper -> {
pRoleIDS.forEach(id -> wrapper.like(User::getRoleId, id).or());
});
}
// if (StringUtil.isNotBlank(user.getDeptName())) { // if (StringUtil.isNotBlank(user.getDeptName())) {

Loading…
Cancel
Save