From a0272962ba37342cf05d9c61a9ea2f6ea573e688 Mon Sep 17 00:00:00 2001 From: wangzhijiang <12345678> Date: Tue, 7 Mar 2023 10:43:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A4=E8=AF=81=E6=B8=85=E5=8D=95-=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=BD=93=E5=89=8D=E7=94=A8=E6=88=B7=E6=8B=A5=E6=9C=89?= =?UTF-8?q?=E7=9A=84=E8=A7=92=E8=89=B2=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E3=80=82=E5=A2=9E=E5=8A=A0=E8=B4=A3=E4=BB=BB?= =?UTF-8?q?=E4=BA=BA=E3=80=81=E6=8E=A5=E5=8F=A3=E4=BA=BA=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/system/enums/ProjectRoleEnum.java | 3 + ...ectCertificationInventoryEOController.java | 18 +- ...rojectCertificationInventoryEOService.java | 4 + ...ctCertificationInventoryEOServiceImpl.java | 171 +++++++++++++++++- 4 files changed, 187 insertions(+), 9 deletions(-) diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java index aaf412c9c..4cf5ba39d 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java @@ -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; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectCertificationInventoryEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectCertificationInventoryEOController.java index 756ef25d4..0aabccc22 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectCertificationInventoryEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectCertificationInventoryEOController.java @@ -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 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> getRoleByUserId(@RequestParam Map params) { + return this.projectCertificationInventoryEOService.getRoleByUserId(params); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java index 9e555d330..84102adbf 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java @@ -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 processInfoDetailEOList, ProcessInfoEO processInfoEO); + + Result> getRoleByUserId(Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java index 4dd19ac32..0afa8844b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java @@ -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> getRoleByUserId(Map params) { + Result> result = new Result<>(); + String projectLibraryId = (String) params.get("projectLibraryId"); + String cut = (String) params.get("cut"); + + List sysRoles = new LinkedList<>(); + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + //项目详情中取R&H Studio和认证工程师 + List 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 projectRelatedPersonnels = this.projectRelatedPersonnelService.queryPageList(projectLibraryId,null,null,null,null); + List 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 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 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 roleList = this.sysRoleMapper.getRoleByUserId(loginUser.getId()); + if (roleList.size() != 0) { + List manager = roleList.stream().filter(e -> ProjectRoleEnum.MANAGER.getCode().equals(e.getRoleCode())).collect(Collectors.toList()); + List admin = roleList.stream().filter(e -> ProjectRoleEnum.ADMIN.getCode().equals(e.getRoleCode())).collect(Collectors.toList()); + List Viewer = roleList.stream().filter(e -> ProjectRoleEnum.VIEWER.getCode().equals(e.getRoleCode())).collect(Collectors.toList()); + List 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; + } }