From 1e51819b28ffb2519317df0970a8d17bbec99a7f Mon Sep 17 00:00:00 2001 From: CD <1103614279@qq.com> Date: Fri, 18 Nov 2022 14:59:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=94=B6=E9=9B=86=E6=B8=85?= =?UTF-8?q?=E5=8D=95=E3=80=81=E6=9C=AA=E7=AC=A6=E5=90=88=E9=A1=B9viewer?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E4=B8=8B=E6=9F=A5=E6=89=BE=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/service/ISysUserService.java | 3 ++ .../service/impl/SysUserServiceImpl.java | 13 +++++ .../enums/CollectManifestUserTypeEnum.java | 3 +- .../ParamsCollectManifestEOServiceImpl.java | 32 ++++++++++-- .../project/mapper/NcrTrackMapper.java | 3 ++ .../project/mapper/xml/NcrTrackMapper.xml | 52 +++++++++++++++++++ .../service/impl/NcrTrackServiceImpl.java | 15 +++++- 7 files changed, 114 insertions(+), 7 deletions(-) diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java index 311c4c00c..33766287f 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java @@ -301,4 +301,7 @@ public interface ISysUserService extends IService { boolean isRegulationOwner(LoginUser currentUser); void setBrandAndDutyTerritory(String roles, String dutyTerritories, String brands, List projectUserBrandList, List projectUserDutyTerritoryList, String userId); + + boolean isViewer(String userId); + } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java index 003994bec..798a03a79 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java @@ -749,4 +749,17 @@ public class SysUserServiceImpl extends ServiceImpl impl } } } + + @Override + public boolean isViewer(String userId) { + boolean boo = false; + List roles = sysRoleMapper.getRoleByUserId(userId); + if (ObjectUtils.isNotEmpty(roles)) { + List roleCodes = roles.stream().map(SysRole::getRoleCode).collect(Collectors.toList()); + if (ObjectUtils.isNotEmpty(roleCodes) && roleCodes.contains(ProjectRoleEnum.VIEWER.getCode())) { + boo = true; + } + } + return boo; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/enums/CollectManifestUserTypeEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/enums/CollectManifestUserTypeEnum.java index b48150942..bc7bd21ca 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/enums/CollectManifestUserTypeEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/enums/CollectManifestUserTypeEnum.java @@ -15,7 +15,8 @@ public enum CollectManifestUserTypeEnum { STUDIO("R&H Studio","R&H Studio","studio"), MANAGER("R&H Manager","R&H Manager","manager"), ADMIN("系统","Administrator","admin"), - GUEST("游客", "Guest","guest"); + GUEST("游客", "Guest","guest"), + VIEWER("Viewer", "Viewer","viewer"); String name; String enName; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java index ea5d27968..69080241c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java @@ -60,10 +60,7 @@ import com.jero.modules.system.entity.SysAnnouncement; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.entity.SysUserRole; -import com.jero.modules.system.service.ISysAnnouncementService; -import com.jero.modules.system.service.ISysDictItemService; -import com.jero.modules.system.service.ISysUserRoleService; -import com.jero.modules.system.service.ISysUserService; +import com.jero.modules.system.service.*; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; @@ -165,6 +162,9 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl dutyTerritoryList = projectUserDutyTerritoryService.queryDutyTerritoryByUserId(loginUser.getId()); + queryWrapper.and(q -> { + q.eq("sdt", loginUser.getUsername()); + q.or().eq("dre", loginUser.getUsername()); + if (ObjectUtils.isNotEmpty(dutyTerritoryList)) { + q.or().in("duty_territory", dutyTerritoryList); + } + }); + } // IPage pageInfo = paramsCollectManifestEOMapper.pageInfo(page, paramsCollectManifestEO); // 查询固定列 IPage pageInfo = page(page, queryWrapper); // 查询固定列 List list = pageInfo.getRecords(); // 查询固定列 @@ -1215,6 +1224,19 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl map = new HashMap<>(); + if (CutEnum.CN.getValue().equals(cut)) { + map.put("label", CollectManifestUserTypeEnum.VIEWER.getName()); + } else { + map.put("label", CollectManifestUserTypeEnum.VIEWER.getEnName()); + } + map.put("value", CollectManifestUserTypeEnum.VIEWER.getValue()); + userTypeList.add(map); + } + return userTypeList; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/NcrTrackMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/NcrTrackMapper.java index 1f0ab0aee..e894026e8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/NcrTrackMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/NcrTrackMapper.java @@ -14,4 +14,7 @@ import java.util.List; public interface NcrTrackMapper extends BaseMapper { List getInfoList(@Param("ncrTrackVO") NcrTrackVO ncrTrackVO); + + List getViewerInfoList(@Param("ncrTrackVO") NcrTrackVO ncrTrackVO,@Param("list") List list); + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/NcrTrackMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/NcrTrackMapper.xml index df5398987..540728821 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/NcrTrackMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/NcrTrackMapper.xml @@ -93,4 +93,56 @@ order by pli.create_time desc + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java index 8abfc2f32..b77a8b9ac 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java @@ -15,6 +15,7 @@ import com.jero.modules.project.vo.NcrTrackInfoVO; import com.jero.modules.project.vo.NcrTrackVO; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.service.IProjectUserDutyTerritoryService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import com.jero.modules.wkflow.enums.FlowTypeEnum; @@ -58,6 +59,8 @@ public class NcrTrackServiceImpl extends ServiceImpl private ProjectTaskInventoryDetailEOServiceImpl projectTaskInventoryDetailEOService; @Autowired private SysDictItemServiceImpl sysDictItemServiceImpl; + @Autowired + private IProjectUserDutyTerritoryService projectUserDutyTerritoryService; @Override public List getPageInfo(NcrTrackVO ncrTrackVO) { @@ -84,8 +87,18 @@ public class NcrTrackServiceImpl extends ServiceImpl //如果当前登录用户是系统管理员角色,可以查看所有的数据 boolean administrator = this.sysUserService.isAdministrator(); ncrTrackVO.setAdministrator(administrator ? "true":"false"); - List infoList = ncrTrackMapper.getInfoList(ncrTrackVO); + //判断是否是viewer + boolean viewer = sysUserService.isViewer(loginUser.getId()); + List viewerList = null; + if (viewer) { + List dutyTerritoryList = projectUserDutyTerritoryService.queryDutyTerritoryByUserId(loginUser.getId()); + viewerList = ObjectUtils.isNotEmpty(dutyTerritoryList) ? ncrTrackMapper.getViewerInfoList(ncrTrackVO, dutyTerritoryList) : new ArrayList<>(); + } + //如果当前登录用户是viewer,查看属于自己责任领域或者自己参与的数据 + if (!administrator && viewer) { + infoList.addAll(viewerList); + } infoList = infoList.stream().distinct().collect(Collectors.toList()); List trackVOList = new ArrayList<>(); String designName = "";