Index: forgon-core/src/main/java/com/forgon/oa/onlineusers/service/OnlineUserManager.java =================================================================== diff -u -r35030 -r35079 --- forgon-core/src/main/java/com/forgon/oa/onlineusers/service/OnlineUserManager.java (.../OnlineUserManager.java) (revision 35030) +++ forgon-core/src/main/java/com/forgon/oa/onlineusers/service/OnlineUserManager.java (.../OnlineUserManager.java) (revision 35079) @@ -136,7 +136,21 @@ } return users; } - + /** + * 获取一级供应室内的所有未禁用的用户名 + * @param orgUnitId + * @return + */ + public Set getFirstSupplyRoomUserName(){ + String sql = "select distinct s.name from " + + OrgUserRelation.class.getSimpleName() + + " our join SS_USERS s on s.id=our.userId " + + "join "+ OrgUnit.class.getSimpleName() + + " ou on ou.id=our.orgUnitId " + + "join SupplyRoomConfig src on src.orgUnitCoding=ou.orgUnitCoding " + + "where src.supplyRoomType=1 and s.status=1"; + return objectDao.getStringSet(sql, "空"); + } private boolean userExist(List users, User user) { boolean userExist = false; for (User u : users) { @@ -163,26 +177,18 @@ * @return */ public JSONObject getFirstSupplyRoomConfigOnlineUserDate(){ - Long orgUnitId = objectDao.getALongNum("select max(ou.id) id from OrgUnit ou " - + "join SupplyRoomConfig sr on sr.orgUnitCoding=ou.orgUnitCoding " - + "where supplyRoomType=1", "id"); - String orgUnitIdStr = ""; - if(orgUnitId != null){ - orgUnitIdStr = orgUnitId + ""; - } - List users = getUserByOrgIdsInOrder(orgUnitIdStr); + Set allUserNames = getFirstSupplyRoomUserName(); Set userNames = getAllOnlineUserIds(); Set onlineUserNames = new HashSet(); - for (User user : users) { - String userName = user.getName(); + for (String userNameOfAll : allUserNames) { for (String onlineUserName : userNames) { - if (onlineUserName.equals(userName)) { - onlineUserNames.add(userName); + if (onlineUserName.equals(userNameOfAll)) { + onlineUserNames.add(userNameOfAll); } } } JSONObject resultObj = new JSONObject(); - resultObj.put("userAmount", users.size()); + resultObj.put("userAmount", allUserNames.size()); resultObj.put("onlineUserAmount", onlineUserNames.size()); return resultObj; }