diff --git a/src/main/java/cn/palmte/work/service/ProjectSummaryService.java b/src/main/java/cn/palmte/work/service/ProjectSummaryService.java index adf9483..a4d8b18 100644 --- a/src/main/java/cn/palmte/work/service/ProjectSummaryService.java +++ b/src/main/java/cn/palmte/work/service/ProjectSummaryService.java @@ -40,18 +40,28 @@ public class ProjectSummaryService { @Autowired private ProjectSettleService projectSettleService; + @Autowired + private SysRoleRepository sysRoleRepository; + @Autowired private Pagination pagination; public List getList(ConcurrentHashMap searchInfo, String time, Admin admin) { + List projectList = null; - String sql = "select proj.id, proj.name, proj.approve_status_settle from project_settle_cost psc left join project proj on psc.project_id = proj.id where psc.time = ? and " + - " (proj.creator_id=? OR proj.id in (SELECT pv1.project_id FROM project_visible pv1 WHERE pv1.type=1 AND pv1.tid=? UNION SELECT pv2.project_id FROM project_visible pv2 WHERE pv2.type=2 AND pv2.tid=?)) group by proj.id order by proj.id asc"; //项目可见性,根据角色和人员id int roleId = admin.getRoleId(); Integer adminId = admin.getId(); - //自己创建的肯定能看见 - projectList = pagination.find(sql, Project.class, time, adminId, roleId, adminId); + String sql = "select proj.id, proj.name, proj.approve_status_settle from project_settle_cost psc left join project proj on psc.project_id = proj.id where psc.time = ? "; + //自己创建的肯定能看见,配置的可以看见,系统管理员可以看见 + SysRole sysRole = sysRoleRepository.findSysRoleById(roleId); + if(SysRole.ROLE_TYPE_SYSTEM != sysRole.getType()){ + sql = sql + "and (p.creator_id=? OR p.id in (SELECT pv1.project_id FROM project_visible pv1 WHERE pv1.type=1 AND pv1.tid=? UNION SELECT pv2.project_id FROM project_visible pv2 WHERE pv2.type=2 AND pv2.tid=?)) group by proj.id order by proj.id asc"; + projectList = pagination.find(sql, Project.class, time, adminId, roleId, adminId); + } else { + sql = sql + " group by proj.id order by proj.id asc"; + projectList = pagination.find(sql, Project.class, time); + } List projects = new ArrayList<>(); List projectInt = new ArrayList<>(); for (Project project : projectList) {