diff --git a/web-app/src/main/java/com/zcloud/domain/command/query/ProjectTaskQueryExe.java b/web-app/src/main/java/com/zcloud/domain/command/query/ProjectTaskQueryExe.java index 2806bdb..03f86ff 100644 --- a/web-app/src/main/java/com/zcloud/domain/command/query/ProjectTaskQueryExe.java +++ b/web-app/src/main/java/com/zcloud/domain/command/query/ProjectTaskQueryExe.java @@ -111,18 +111,43 @@ public class ProjectTaskQueryExe { }else{ projectTaskScoreInfoCO.setIsScore(false); } - //判断不是企业,并且不是自己 + + // 判断是否可以查看/设置评分 + boolean canViewScore = checkScorePermission(projectTaskScoreInfoCO); + if(canViewScore){ + projectTaskScoreInfoCO.setScoreFlag(true); + }else{ + projectTaskScoreInfoCO.setScore(null); + projectTaskScoreInfoCO.setScoreFlag(false); + } + /*//判断不是企业,并且不是自己 if((!CorpInfoE.isCorp() && !AuthContext.getUserId().equals(projectTaskScoreInfoCO.getUserId())) && (AuthContext.getRoleIds()!=null && !AuthContext.getRoleIds().contains(2008483105201106946L))) { projectTaskScoreInfoCO.setScore(null); projectTaskScoreInfoCO.setScoreFlag(false); }else{ projectTaskScoreInfoCO.setScoreFlag(true); - } + }*/ }); projectTaskDetailsCO.setProjectTaskScoreInfoCOList(projectTaskScoreInfoCOS); } return projectTaskDetailsCO; } + private boolean checkScorePermission(ProjectTaskScoreInfoCO scoreInfo) { + // 1. 企业账号且数据属于本企业 + if (CorpInfoE.isCorp() && AuthContext.getTenantId().equals(scoreInfo.getCorpinfoId())) { + return true; + } + // 2. 评分人员本人 + if (AuthContext.getUserId().equals(scoreInfo.getUserId())) { + return true; + } + // 3. 拥有特殊管理角色 + if (AuthContext.getRoleIds() != null && + AuthContext.getRoleIds().contains(2008483105201106946L)) { + return true; + } + return false; + } }