认证清单-获取当前用户拥有的角色列表接口开发。增加责任人、接口人角色。

This commit is contained in:
wangzhijiang
2023-03-07 10:43:54 +08:00
parent 154f1c521a
commit a0272962ba
4 changed files with 187 additions and 9 deletions
@@ -12,6 +12,9 @@ public enum ProjectRoleEnum {
ADMIN("系统管理员","12","admin"),
VIEWER("Viewer","13","Viewer"),
BRAND_ADMINISTRATOR("品牌管理员","14","BrandAdministrator"),
// 项目库-认证清单使用。
INTERFACE_PERSON("接口人","20","Interface person"),
PERSON_LIABLE("责任人","21","Person liable"),
;
String name;
@@ -2,18 +2,19 @@ package com.jero.modules.project.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.authDummy.entity.AuthDummyInventoryInfoEO;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
import com.jero.modules.project.service.IProjectCertificationInventoryEOService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.modules.system.entity.SysRole;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.springframework.beans.factory.annotation.Autowired;
@@ -179,17 +180,24 @@ public class ProjectCertificationInventoryEOController extends JeroController<Pr
return this.projectCertificationInventoryEOService.batchAdd(json);
}
@AutoLog(value = "认证虚拟清单详情表-批量设置")
@ApiOperation(value="认证虚拟清单详情表-批量设置", notes="认证虚拟清单详情表-批量设置")
@AutoLog(value = "项目库-认证清单表-批量设置")
@ApiOperation(value="项目库-认证清单表-批量设置", notes="项目库-认证清单表-批量设置")
@PostMapping(value = "/setBatch")
public Result<?> setBatch(@RequestBody ProjectCertificationInventoryEO projectCertificationInventoryEO) {
return this.projectCertificationInventoryEOService.setBatch(projectCertificationInventoryEO);
}
@AutoLog(value = "认证虚拟清单详情表-studio发布")
@ApiOperation(value="认证虚拟清单详情表-studio发布", notes="认证虚拟清单详情表-studio发布")
@AutoLog(value = "项目库-认证清单表-studio发布")
@ApiOperation(value="项目库-认证清单表-studio发布", notes="项目库-认证清单表-studio发布")
@PostMapping(value = "/issue")
public Result<?> issue(@RequestBody JSONObject json) {
return this.projectCertificationInventoryEOService.issue(json);
}
@AutoLog(value = "项目库-认证清单表-当前登录用户角色")
@ApiOperation(value="项目库-认证清单表-当前登录用户角色", notes="项目库-认证清单表-当前登录用户角色")
@GetMapping(value = "/getRoleByUserId")
public Result<List<SysRole>> getRoleByUserId(@RequestParam Map<String,Object> params) {
return this.projectCertificationInventoryEOService.getRoleByUserId(params);
}
}
@@ -5,10 +5,12 @@ import com.jero.common.api.vo.Result;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysRole;
import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO;
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
import java.util.List;
import java.util.Map;
/**
* @Description: 项目库-认证清单表
@@ -98,4 +100,6 @@ public interface IProjectCertificationInventoryEOService extends IService<Projec
void addProcessInfoEO(ProcessInfoEO processInfoEO, String projectLibraryId);
void addProcessInfoDetailEO(List<ProcessInfoDetailEO> processInfoDetailEOList, ProcessInfoEO processInfoEO);
Result<List<SysRole>> getRoleByUserId(Map<String, Object> params);
}
@@ -6,16 +6,22 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.DateUtils;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
import com.jero.modules.project.enums.*;
import com.jero.modules.project.service.IProjectRelatedPersonnelService;
import com.jero.modules.system.enums.ProjectRoleEnum;
import com.jero.modules.project.mapper.ProjectCertificationInventoryEOMapper;
import com.jero.modules.project.service.IProjectCertificationInventoryEOService;
import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysRole;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysRoleMapper;
import com.jero.modules.system.service.ISysCategoryService;
import com.jero.modules.system.service.ISysDictItemService;
import com.jero.modules.system.service.ISysUserService;
@@ -26,16 +32,14 @@ import com.jero.modules.todoCenter.enums.TodoCenterStatusEnum;
import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService;
import com.jero.modules.todoCenter.service.IProcessInfoEOService;
import com.jero.modules.wkflow.enums.FlowTypeEnum;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Date;
import java.util.*;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -67,6 +71,10 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
private IProcessInfoEOService processInfoEOService;
@Autowired
private IProcessInfoDetailEOService processInfoDetailEOService;
@Autowired
private IProjectRelatedPersonnelService projectRelatedPersonnelService;
@Autowired
private SysRoleMapper sysRoleMapper;
/**
* 保存
@@ -365,4 +373,159 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
this.processInfoDetailEOService.remove(deleteDetailWrap);
this.processInfoDetailEOService.saveBatch(processInfoDetailEOList);
}
@Override
public Result<List<SysRole>> getRoleByUserId(Map<String, Object> params) {
Result<List<SysRole>> result = new Result<>();
String projectLibraryId = (String) params.get("projectLibraryId");
String cut = (String) params.get("cut");
List<SysRole> sysRoles = new LinkedList<>();
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//项目详情中取R&H Studio和认证工程师
List<ProjectLibraryBase> projectLibraryBases = projectLibraryBaseService.queryById(projectLibraryId,null);
String certificationEngineerName = "";
if(projectLibraryBases.size() != 0){
certificationEngineerName = projectLibraryBases.get(0).getCertificationEngineerName();
String studioEngineerName = projectLibraryBases.get(0).getStudioEngineerName();
// studio
if(StringUtils.isNotBlank(studioEngineerName) && studioEngineerName.equals(loginUser.getUsername())){
SysRole sysRole = new SysRole();
sysRole.setRoleCode(ProjectRoleEnum.STUDIO_ENGINEER.getValue());
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
sysRole.setRoleName(ProjectRoleEnum.STUDIO_ENGINEER.getName());
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
sysRole.setRoleName(ProjectRoleEnum.STUDIO_ENGINEER.getCode());
}
sysRoles.add(sysRole);
}
// 认证
if((StringUtils.isNotBlank(certificationEngineerName) && certificationEngineerName.contains(loginUser.getUsername()))){
SysRole sysRole = new SysRole();
sysRole.setRoleCode(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue());
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
sysRole.setRoleName(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getName());
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
sysRole.setRoleName(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getCode());
}
sysRoles.add(sysRole);
}
// 法规
//相关人员名单中取法规工程师
List<ProjectRelatedPersonnel> projectRelatedPersonnels = this.projectRelatedPersonnelService.queryPageList(projectLibraryId,null,null,null,null);
List<String> lawEngineerNameList = new ArrayList<>();
if(projectRelatedPersonnels.size() != 0){
for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnels) {
String lawEngineerName = projectRelatedPersonnel.getLawEngineerName();
if(StringUtils.isNotBlank(lawEngineerName)){
lawEngineerName = lawEngineerName.replaceAll(" ","");
lawEngineerNameList.addAll(Arrays.asList(lawEngineerName.split(",")));
}
}
if(lawEngineerNameList.contains(loginUser.getUsername())){
SysRole sysRole = new SysRole();
sysRole.setRoleCode(ProjectRoleEnum.REGULATI_ENGINEER.getValue());
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
sysRole.setRoleName(ProjectRoleEnum.REGULATI_ENGINEER.getName());
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
sysRole.setRoleName(ProjectRoleEnum.REGULATI_ENGINEER.getCode());
}
sysRoles.add(sysRole);
}
}
// 接口人
QueryWrapper<ProjectCertificationInventoryEO> querySdtCountWrap = new QueryWrapper<>();
querySdtCountWrap.lambda().eq(ProjectCertificationInventoryEO::getSdt,loginUser.getId());
Integer sdtCount = this.baseMapper.selectCount(querySdtCountWrap);
if(sdtCount > 0){
SysRole sysRole = new SysRole();
sysRole.setRoleCode(ProjectRoleEnum.INTERFACE_PERSON.getValue());
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
sysRole.setRoleName(ProjectRoleEnum.INTERFACE_PERSON.getName());
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
sysRole.setRoleName(ProjectRoleEnum.INTERFACE_PERSON.getCode());
}
sysRoles.add(sysRole);
}
// 责任人
QueryWrapper<ProjectCertificationInventoryEO> queryDutyPersonCountWrap = new QueryWrapper<>();
queryDutyPersonCountWrap.lambda().eq(ProjectCertificationInventoryEO::getDutyPerson,loginUser.getId());
Integer dutyPersonCount = this.baseMapper.selectCount(queryDutyPersonCountWrap);
if(dutyPersonCount > 0){
SysRole sysRole = new SysRole();
sysRole.setRoleCode(ProjectRoleEnum.PERSON_LIABLE.getValue());
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
sysRole.setRoleName(ProjectRoleEnum.PERSON_LIABLE.getName());
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
sysRole.setRoleName(ProjectRoleEnum.PERSON_LIABLE.getCode());
}
sysRoles.add(sysRole);
}
}
// 领导、系统管理员、Viewer、品牌管理员 处理
List<SysRole> roleList = this.sysRoleMapper.getRoleByUserId(loginUser.getId());
if (roleList.size() != 0) {
List<SysRole> manager = roleList.stream().filter(e -> ProjectRoleEnum.MANAGER.getCode().equals(e.getRoleCode())).collect(Collectors.toList());
List<SysRole> admin = roleList.stream().filter(e -> ProjectRoleEnum.ADMIN.getCode().equals(e.getRoleCode())).collect(Collectors.toList());
List<SysRole> Viewer = roleList.stream().filter(e -> ProjectRoleEnum.VIEWER.getCode().equals(e.getRoleCode())).collect(Collectors.toList());
List<SysRole> brandAdministrator = roleList.stream().filter(e -> ProjectRoleEnum.BRAND_ADMINISTRATOR.getCode().equals(e.getRoleCode())).collect(Collectors.toList());
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
if (manager.size() != 0) {
manager.get(0).setRoleCode(ProjectRoleEnum.MANAGER.getValue());
sysRoles.addAll(manager);
}
if (admin.size() != 0) {
admin.get(0).setRoleCode(ProjectRoleEnum.ADMIN.getValue());
sysRoles.addAll(admin);
}
if (Viewer.size() != 0) {
Viewer.get(0).setRoleCode(ProjectRoleEnum.VIEWER.getValue());
sysRoles.addAll(Viewer);
}
if (brandAdministrator.size() != 0) {
brandAdministrator.get(0).setRoleCode(ProjectRoleEnum.BRAND_ADMINISTRATOR.getValue());
sysRoles.addAll(brandAdministrator);
}
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
if (manager.size() != 0) {
manager.get(0).setRoleCode(ProjectRoleEnum.MANAGER.getValue());
manager.get(0).setRoleName(ProjectRoleEnum.MANAGER.getCode());
sysRoles.addAll(manager);
}
if (admin.size() != 0) {
admin.get(0).setRoleCode(ProjectRoleEnum.ADMIN.getValue());
admin.get(0).setRoleName(ProjectRoleEnum.ADMIN.getCode());
sysRoles.addAll(admin);
}
if (Viewer.size() != 0) {
Viewer.get(0).setRoleCode(ProjectRoleEnum.VIEWER.getCode());
Viewer.get(0).setRoleName(ProjectRoleEnum.VIEWER.getCode());
sysRoles.addAll(Viewer);
}
if (brandAdministrator.size() != 0) {
brandAdministrator.get(0).setRoleCode(ProjectRoleEnum.BRAND_ADMINISTRATOR.getCode());
brandAdministrator.get(0).setRoleName(ProjectRoleEnum.BRAND_ADMINISTRATOR.getCode());
sysRoles.addAll(brandAdministrator);
}
}
}
if(sysRoles==null||sysRoles.size()<=0) {
result.error500("未找到角色信息");
}else {
result.setResult(sysRoles);
result.setSuccess(true);
}
return result;
}
}