From a83e076952e8fccc4f8c01c9feec588c707952f6 Mon Sep 17 00:00:00 2001 From: leebj Date: Fri, 27 Dec 2024 17:02:57 +0900 Subject: [PATCH] =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=EB=B3=84=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=20=EA=B0=80=EB=8A=A5=ED=95=9C=20=EC=97=85?= =?UTF-8?q?=EB=AC=B4=20=EB=AA=A9=EB=A1=9D=20=EC=A1=B0=ED=9A=8C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EC=B5=9C=EA=B3=A0=EA=B4=80=EB=A6=AC=EC=9E=90=20=3D?= =?UTF-8?q?=20=EB=AA=A8=EB=93=A0=EC=97=85=EB=AC=B4=20=EC=8B=9C=EC=8A=A4?= =?UTF-8?q?=ED=85=9C=EA=B4=80=EB=A6=AC=EC=9E=90=20=3D=20WAS=EC=84=9C?= =?UTF-8?q?=EB=B2=84=EC=97=90=EC=84=9C=20=EC=82=AC=EC=9A=A9=EA=B0=80?= =?UTF-8?q?=EB=8A=A5=ED=95=9C=20=EC=97=85=EB=AC=B4=20=EB=98=90=EB=8A=94=20?= =?UTF-8?q?=EC=86=8C=EC=86=8D=EC=8B=9C=EA=B5=B0=EA=B5=AC=EC=97=90=EC=84=9C?= =?UTF-8?q?=20=EC=82=AC=EC=9A=A9=EA=B0=80=EB=8A=A5=ED=95=9C=20=EC=97=85?= =?UTF-8?q?=EB=AC=B4=20=EC=97=85=EB=AC=B4=EA=B4=80=EB=A6=AC=EC=9E=90=20=3D?= =?UTF-8?q?=20WAS=EC=84=9C=EB=B2=84=EC=97=90=EC=84=9C=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=EA=B0=80=EB=8A=A5=ED=95=9C=20=EC=97=85=EB=AC=B4=20=EC=9D=B4?= =?UTF-8?q?=EB=A9=B4=EC=84=9C=20=EC=86=8C=EC=86=8D=EC=8B=9C=EA=B5=B0?= =?UTF-8?q?=EA=B5=AC=EC=97=90=EC=84=9C=20=EC=82=AC=EC=9A=A9=EA=B0=80?= =?UTF-8?q?=EB=8A=A5=ED=95=9C=20=EC=97=85=EB=AC=B4=20=EC=97=85=EB=AC=B4?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=20=3D=20WAS=EC=84=9C=EB=B2=84?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EC=82=AC=EC=9A=A9=EA=B0=80=EB=8A=A5?= =?UTF-8?q?=ED=95=9C=20=EC=97=85=EB=AC=B4=20=EC=9D=B4=EB=A9=B4=EC=84=9C=20?= =?UTF-8?q?=EC=86=8C=EC=86=8D=EC=8B=9C=EA=B5=B0=EA=B5=AC=EC=97=90=EC=84=9C?= =?UTF-8?q?=20=EC=82=AC=EC=9A=A9=EA=B0=80=EB=8A=A5=ED=95=9C=20=EC=97=85?= =?UTF-8?q?=EB=AC=B4=20=EC=9D=B4=EB=A9=B4=EC=84=9C=20=EB=B6=80=EC=97=AC?= =?UTF-8?q?=ED=95=9C=20=EA=B6=8C=ED=95=9C=EB=AA=85=EC=97=90=20=EC=97=85?= =?UTF-8?q?=EB=AC=B4=EB=AA=85=ED=8F=AC=ED=95=A8=EB=90=A0=EA=B2=BD=EC=9A=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xit/fims/cmmn/service/bean/StngBean.java | 64 +++++++++++++------ 1 file changed, 45 insertions(+), 19 deletions(-) diff --git a/src/main/java/cokr/xit/fims/cmmn/service/bean/StngBean.java b/src/main/java/cokr/xit/fims/cmmn/service/bean/StngBean.java index 047d1630..a5f26316 100644 --- a/src/main/java/cokr/xit/fims/cmmn/service/bean/StngBean.java +++ b/src/main/java/cokr/xit/fims/cmmn/service/bean/StngBean.java @@ -90,39 +90,60 @@ public class StngBean extends AbstractBean { boolean isAdmin = userInfo.isAdmin(); - List taskListForServer = FimsConf.get().getTasks(); - //모든 업무 List taskList = codeBean.getCodeList((new CodeQuery()).setGroupIDs("FIM054")) .stream().map(item -> item.string("CODE")).toList(); - //사용가능한 업무 + //서버에서 사용가능한 업무 + List taskListForServer = FimsConf.get().getTasks(); + + //사용자별 사용가능한 업무 List availableTaskList = new ArrayList(); - if(userInfo.getInstitute().equals("ADMIN00")) { //최고관리자 + if(userInfo.getInstitute().equals("ADMIN00")) { //1.최고관리자 availableTaskList = taskList; - } else if(isAdmin) { //시스템 관리자 + } else { Map info = userInfo.getInfo(); if(info == null || info.get("sggCd") == null || info.get("sggCd").equals("")) { ogdpBean.initUserInfo(userInfo); } - availableTaskList = taskBean.getTasks((new CmmnQuery()).setSggCd((String)userInfo.getInfo().get("sggCd")).setUseYn("Y")) - .stream().map(item -> item.string("TASK_SE_CD")).toList(); + //사용자의 시군구에서 사용가능한 업무 + List taskListForSgg = taskBean.getTasks((new CmmnQuery()).setSggCd((String)userInfo.getInfo().get("sggCd")).setUseYn("Y")) + .stream().map(item -> item.string("TASK_SE_CD")).toList(); - } else { //업무관리자,업무사용자,일반사용자 + if(isAdmin) { //2.시스템관리자 + for(String forSgg : taskListForSgg) { + availableTaskList.add(forSgg); + } + for(String forServer : taskListForServer) { + availableTaskList.add(forServer); + } + } else { - List authorities = userInfo.getAuthorities(); + List forServerAndSgg = new ArrayList(); + for(String forServer : taskListForServer) { + for(String forSgg : taskListForSgg) { + if(forServer.equals(forSgg)) { + forServerAndSgg.add(forSgg); + } + } + } - if(authorities != null && !authorities.isEmpty()) { - for(Authority authority : authorities) { - String authId = authority.getId(); - for(String task : taskList) { - if(authId.equals("ROLE_TASK_ADMIN") || authId.contains(task)) { - if(taskListForServer.contains(task)) { - availableTaskList.add(task); + if(userInfo.hasAuthorities("ROLE_TASK_ADMIN")) { //3.업무관리자 + availableTaskList = forServerAndSgg; + } else { //4.업무사용자,일반사용자 + + List authorities = userInfo.getAuthorities(); + if(authorities != null && !authorities.isEmpty()) { + for(String task : forServerAndSgg) { + for(Authority authority : authorities) { + String authId = authority.getId(); + if(authId.contains(task)) { + availableTaskList.add(task); + } } } } @@ -142,12 +163,17 @@ public class StngBean extends AbstractBean { return; } - DataObject defaultTask = stngMapper.selectDefaultTask(userInfo.getId()); + DataObject defaultTaskInfo = stngMapper.selectDefaultTask(userInfo.getId()); - if(defaultTask == null) { + if(defaultTaskInfo == null || defaultTaskInfo.string("TASK_SE_CD").equals("")) { userInfo.getInfo().put("defaultTask", ""); } else { - userInfo.getInfo().put("defaultTask", defaultTask.string("TASK_SE_CD")); + String defaultTask = defaultTaskInfo.string("TASK_SE_CD"); + if(!availableTaskList.contains(defaultTask)) { + userInfo.getInfo().put("defaultTask", ""); + } else { + userInfo.getInfo().put("defaultTask", defaultTask); + } } }