diff --git a/servers/boe-server-all/src/main/java/com/xboe/data/outside/OutSideDataServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/data/outside/OutSideDataServiceImpl.java index 47f5e2b8..19ab5860 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/data/outside/OutSideDataServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/data/outside/OutSideDataServiceImpl.java @@ -228,6 +228,7 @@ public class OutSideDataServiceImpl implements IOutSideDataService { public UserOrgIds getOrgIds() { UserOrgIds uids=new UserOrgIds(); List orgIds = new ArrayList<>(); + uids.setIds(orgIds); String token = TokenProxy.getToken(request); String type="application/json"; @@ -259,12 +260,29 @@ public class OutSideDataServiceImpl implements IOutSideDataService { // orgIds.add(elements.next().toString()); // } // } + Set orgSetIds = new HashSet<>();//用于排重判断 - if(rootNode.get("result")!=null & rootNode.get("result").get("mainList")!=null) { - JsonNode result = rootNode.get("result").get("mainList"); - Iterator elements = result.elements(); - while (elements.hasNext()){ - orgIds.add(elements.next().toString()); + if(rootNode.get("result")!=null) { + JsonNode mainList = rootNode.get("result").get("mainList"); + JsonNode readOnlyList = rootNode.get("result").get("readOnlyList"); + //主列表 + if(mainList!=null && !mainList.isEmpty()) { + Iterator elements = mainList.elements(); + while (elements.hasNext()){ + String oid=elements.next().toString(); + orgIds.add(oid); + orgSetIds.add(oid); + } + } + //只读列表 + if(readOnlyList!=null && !readOnlyList.isEmpty()) { + Iterator elements = readOnlyList.elements(); + while (elements.hasNext()){ + String oid=elements.next().toString(); + if(!orgSetIds.contains(oid)) { + orgIds.add(oid); + } + } } }