From 549288b2c29015dad4a4769654fb23221580c2e2 Mon Sep 17 00:00:00 2001 From: OathK1per Date: Tue, 7 Dec 2021 10:39:30 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=B1=87=E6=80=BB=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=94=BE=E5=BC=80admin=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../work/service/ProjectSummaryService.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) 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) {