设计人员
This commit is contained in:
@ -15,10 +15,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.design.domain.dto.desUser.DesUserBatchDto;
|
||||
import org.dromara.system.domain.SysUserRole;
|
||||
import org.dromara.system.domain.bo.SysUserBo;
|
||||
import org.dromara.system.domain.vo.SysDictDataVo;
|
||||
import org.dromara.system.domain.vo.SysUserVo;
|
||||
import org.dromara.system.service.ISysDictDataService;
|
||||
import org.dromara.system.service.ISysRoleService;
|
||||
import org.dromara.system.service.ISysUserService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.design.domain.bo.DesUserBo;
|
||||
@ -26,6 +28,7 @@ import org.dromara.design.domain.vo.DesUserVo;
|
||||
import org.dromara.design.domain.DesUser;
|
||||
import org.dromara.design.mapper.DesUserMapper;
|
||||
import org.dromara.design.service.IDesUserService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
@ -49,6 +52,8 @@ public class DesUserServiceImpl extends ServiceImpl<DesUserMapper, DesUser> impl
|
||||
|
||||
private final ISysUserService sysUserService;
|
||||
|
||||
private final ISysRoleService roleService;
|
||||
|
||||
/**
|
||||
* 查询设计人员
|
||||
*
|
||||
@ -151,9 +156,32 @@ public class DesUserServiceImpl extends ServiceImpl<DesUserMapper, DesUser> impl
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean batchAddOrUpdate(DesUserBatchDto dto) {
|
||||
baseMapper.delete(Wrappers.<DesUser>lambdaQuery().eq(DesUser::getProjectId, dto.getProjectId()));
|
||||
|
||||
//1961314792461586433 校审员 3
|
||||
//1961315028017893378 审核员 5
|
||||
//1961315147199041537 审定员 4
|
||||
|
||||
List<DesUser> desUsers = MapstructUtils.convert(dto.getList(), DesUser.class);
|
||||
|
||||
roleService.deleteDesignUser(dto.getProjectId());
|
||||
List<SysUserRole> sysUserRoles = new ArrayList<>();
|
||||
for (DesUserBo bo : dto.getList()) {
|
||||
SysUserRole sysUserRole = new SysUserRole();
|
||||
if("3".equals(bo.getUserType())){
|
||||
sysUserRole.setRoleId(1961314792461586433L);
|
||||
}else if("5".equals(bo.getUserType())){
|
||||
sysUserRole.setRoleId(1961315028017893378L);
|
||||
}else if("4".equals(bo.getUserType())){
|
||||
sysUserRole.setRoleId(1961315147199041537L);
|
||||
}
|
||||
sysUserRole.setUserId(bo.getUserId());
|
||||
sysUserRole.setProjectId(dto.getProjectId());
|
||||
sysUserRoles.add(sysUserRole);
|
||||
}
|
||||
roleService.insertUserRoleBatch(sysUserRoles);
|
||||
//todo:发消息
|
||||
return saveBatch(desUsers);
|
||||
}
|
||||
|
||||
@ -60,7 +60,7 @@ public class BusProjectAppController {
|
||||
@GetMapping("/login/list")
|
||||
public R<List<BusLoginUserProjectRelevancyVo>> listByLoginUser() {
|
||||
Long userId = LoginHelper.getUserId();
|
||||
return R.ok(userProjectRelevancyService.queryListByUserId(userId));
|
||||
return R.ok(userProjectRelevancyService.appQueryListByUserId(userId));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -44,4 +44,10 @@ public class BusLoginUserProjectRelevancyVo implements Serializable {
|
||||
* 用户类型(0系统管理员 1普通人员 2项目管理员)
|
||||
*/
|
||||
private String userType;
|
||||
|
||||
/**
|
||||
* 班组
|
||||
*/
|
||||
private Long teamId;
|
||||
|
||||
}
|
||||
|
||||
@ -115,6 +115,8 @@ public interface IBusUserProjectRelevancyService extends IService<BusUserProject
|
||||
*/
|
||||
List<BusLoginUserProjectRelevancyVo> queryListByUserId(Long userId);
|
||||
|
||||
List<BusLoginUserProjectRelevancyVo> appQueryListByUserId(Long userId);
|
||||
|
||||
/**
|
||||
* 获取当前登录用户项目分页
|
||||
*
|
||||
|
||||
@ -16,6 +16,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.project.constant.BusProjectConstant;
|
||||
import org.dromara.project.domain.BusProject;
|
||||
import org.dromara.project.domain.BusProjectTeamMember;
|
||||
import org.dromara.project.domain.BusUserProjectRelevancy;
|
||||
import org.dromara.project.domain.dto.project.BusProjectBatchByProjectListReq;
|
||||
import org.dromara.project.domain.dto.userprojectrelevancy.BusUserProjectRelevancyCreateReq;
|
||||
@ -25,6 +26,7 @@ import org.dromara.project.domain.vo.userprojectrelevancy.BusLoginUserProjectRel
|
||||
import org.dromara.project.domain.vo.userprojectrelevancy.BusUserProjectRelevancyVo;
|
||||
import org.dromara.project.mapper.BusUserProjectRelevancyMapper;
|
||||
import org.dromara.project.service.IBusProjectService;
|
||||
import org.dromara.project.service.IBusProjectTeamMemberService;
|
||||
import org.dromara.project.service.IBusUserProjectRelevancyService;
|
||||
import org.dromara.system.service.ISysUserService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
@ -52,6 +54,10 @@ public class BusUserProjectRelevancyServiceImpl extends ServiceImpl<BusUserProje
|
||||
@Resource
|
||||
private ISysUserService userService;
|
||||
|
||||
@Lazy
|
||||
@Resource
|
||||
private IBusProjectTeamMemberService projectMemberService;
|
||||
|
||||
/**
|
||||
* 查询系统用户与项目关联
|
||||
*
|
||||
@ -329,6 +335,54 @@ public class BusUserProjectRelevancyServiceImpl extends ServiceImpl<BusUserProje
|
||||
.toList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BusLoginUserProjectRelevancyVo> appQueryListByUserId(Long userId) {
|
||||
// 添加查询条件,根据当前用户,获取数据
|
||||
LambdaQueryWrapper<BusUserProjectRelevancy> queryWrapper = Wrappers.lambdaQuery();
|
||||
queryWrapper.eq(BusUserProjectRelevancy::getUserId, userId);
|
||||
// 查询数据库,获取数据
|
||||
List<BusUserProjectRelevancy> list = this.list(queryWrapper);
|
||||
List<Long> projectIdList = list.stream().map(BusUserProjectRelevancy::getProjectId).toList();
|
||||
if (CollUtil.isEmpty(projectIdList)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
Map<Long, List<BusProject>> projectMap = projectService.lambdaQuery()
|
||||
.select(BusProject::getId, BusProject::getPId, BusProject::getProjectName, BusProject::getShortName)
|
||||
.in(BusProject::getId, projectIdList)
|
||||
.eq(BusProject::getPId, BusProjectConstant.PARENT_ID)
|
||||
.list()
|
||||
.stream().collect(Collectors.groupingBy(BusProject::getId));
|
||||
|
||||
Map<Long, Long> teamMap = projectMemberService.lambdaQuery().eq(BusProjectTeamMember::getMemberId, userId).list()
|
||||
.stream().collect(Collectors.toMap(BusProjectTeamMember::getProjectId, BusProjectTeamMember::getTeamId));
|
||||
|
||||
|
||||
// 获取封装
|
||||
return list.stream()
|
||||
.map(userProjectRelevancy -> {
|
||||
Long projectId = userProjectRelevancy.getProjectId();
|
||||
BusProject project = null;
|
||||
if (projectMap.containsKey(projectId)) {
|
||||
project = projectMap.get(projectId).getFirst();
|
||||
}
|
||||
if (project != null && project.getPId().equals(BusProjectConstant.PARENT_ID)) {
|
||||
BusLoginUserProjectRelevancyVo loginUserProjectRelevancy = new BusLoginUserProjectRelevancyVo();
|
||||
loginUserProjectRelevancy.setId(userProjectRelevancy.getId());
|
||||
loginUserProjectRelevancy.setUserId(userProjectRelevancy.getUserId());
|
||||
loginUserProjectRelevancy.setProjectId(projectId);
|
||||
loginUserProjectRelevancy.setProjectName(project.getProjectName());
|
||||
loginUserProjectRelevancy.setShortName(project.getShortName());
|
||||
loginUserProjectRelevancy.setTeamId(teamMap.get(projectId));
|
||||
return loginUserProjectRelevancy;
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
})
|
||||
.filter(Objects::nonNull)
|
||||
.toList();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前登录用户项目分页
|
||||
*
|
||||
|
||||
@ -3,6 +3,7 @@ package org.dromara.system.service;
|
||||
import org.dromara.common.core.domain.vo.SysProjectRolePermissionVo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.design.domain.DesUser;
|
||||
import org.dromara.system.domain.SysUserRole;
|
||||
import org.dromara.system.domain.bo.SysRoleBo;
|
||||
import org.dromara.system.domain.dto.role.SysRoleProjectDto;
|
||||
@ -208,4 +209,10 @@ public interface ISysRoleService {
|
||||
|
||||
void cleanOnlineUser(List<Long> userIds);
|
||||
|
||||
void insertUserRoleBatch(List<SysUserRole> list);
|
||||
|
||||
/**
|
||||
* 批量删除审核审定校审
|
||||
*/
|
||||
void deleteDesignUser(Long projectId);
|
||||
}
|
||||
|
||||
@ -96,7 +96,7 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
||||
.orderByAsc("r.role_sort").orderByAsc("r.create_time");
|
||||
// 添加部门ID或角色ID在2,3,4中的条件
|
||||
if (ObjectUtil.isNotNull(bo.getDeptId())) {
|
||||
wrapper.and(w -> w.eq("r.dept_id", bo.getDeptId()).or().in("r.role_id", Arrays.asList(2L, 3L, 4L)));
|
||||
wrapper.and(w -> w.eq("r.dept_id", bo.getDeptId()).or().eq("r.dept_id", 99L));
|
||||
}
|
||||
return wrapper;
|
||||
}
|
||||
@ -627,4 +627,17 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertUserRoleBatch(List<SysUserRole> list) {
|
||||
userRoleMapper.insertBatch(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteDesignUser(Long projectId) {
|
||||
List<Long> list1 = Arrays.asList(1961314792461586433L, 1961315028017893378L, 1961315147199041537L);
|
||||
userRoleMapper.delete(Wrappers.lambdaQuery(SysUserRole.class)
|
||||
.eq(SysUserRole::getProjectId, projectId)
|
||||
.in(SysUserRole::getRoleId, list1)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user