设计人员

This commit is contained in:
zt
2025-09-24 12:35:19 +08:00
parent 4d6c7fe2c0
commit 7f1971248a
7 changed files with 112 additions and 2 deletions

View File

@ -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);
}

View File

@ -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));
}
/**

View File

@ -44,4 +44,10 @@ public class BusLoginUserProjectRelevancyVo implements Serializable {
* 用户类型(0系统管理员 1普通人员 2项目管理员)
*/
private String userType;
/**
* 班组
*/
private Long teamId;
}

View File

@ -115,6 +115,8 @@ public interface IBusUserProjectRelevancyService extends IService<BusUserProject
*/
List<BusLoginUserProjectRelevancyVo> queryListByUserId(Long userId);
List<BusLoginUserProjectRelevancyVo> appQueryListByUserId(Long userId);
/**
* 获取当前登录用户项目分页
*

View File

@ -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();
}
/**
* 获取当前登录用户项目分页
*

View File

@ -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);
}

View File

@ -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)
);
}
}