Index: ssts-web/src/main/java/com/forgon/disinfectsystem/directory/dwr/table/UserTableManager.java =================================================================== diff -u -r12560 -r13725 --- ssts-web/src/main/java/com/forgon/disinfectsystem/directory/dwr/table/UserTableManager.java (.../UserTableManager.java) (revision 12560) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/directory/dwr/table/UserTableManager.java (.../UserTableManager.java) (revision 13725) @@ -9,6 +9,9 @@ import java.util.Map; import java.util.Set; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; + import org.apache.commons.lang.StringUtils; import org.hibernate.Hibernate; @@ -202,31 +205,54 @@ list.addAll(relations); totalResults = list.size(); }*/ - StringBuffer json = new StringBuffer("{\"totalResults\":"); - json.append(totalResults + ",\"rows\":["); + + JSONObject obj = new JSONObject(); + obj.put("totalResults", totalResults); + JSONArray userArray = new JSONArray(); + + Set existUserIds = new HashSet(); + if (null != list && list.size() > 0) { for (OrgUserRelation orgUserRelation : list) { User user = orgUserRelation.getUser(); - json.append("{\"id\":\"" + user.getId() + "\","); - json.append("user:{\"fullName\":\"" + user.getFullName() - + "\","); - json.append("\"id\":\"" + user.getId() + "\","); - json.append("\"name\":\"" + user.getName() + "\","); - json.append("\"barcode\":\"" + user.getBarcode() + "\","); + + // 如果一个用户属于多个科室,会有多个OrgUserRelation,只返回一个到页面进行显示 + Long userId = user.getId(); + if (existUserIds.contains(userId)){ + continue; + } + else{ + existUserIds.add(userId); + } + + JSONObject userObj = new JSONObject(); + userObj.put("id", userId); + userObj.put("name", user.getName()); + userObj.put("barcode", user.getBarcode()); + + JSONObject userDetail = new JSONObject(); + userDetail.put("fullName", user.getFullName()); + userDetail.put("id", userId); + userDetail.put("name", user.getName()); + userDetail.put("barcode", user.getBarcode()); + String orgName = user.getOrgUnitNames(); if(orgName != null && orgName.contains("组织机构-")){ orgName = orgName.replace("组织机构-", ""); } - json.append("\"orgUnitNames\":\"" + orgName - + "\","); - json.append("\"roleNames\":\"" + user.getRoleNames() + "\"}},"); + + userDetail.put("orgUnitNames", orgName); + userDetail.put("roleNames", user.getRoleNames()); + + userObj.put("user", userDetail); + userArray.add(userObj); + } - json.delete(json.length() - 1, json.length()); } - json.append("],"); - json.append("\"selectSqlWhereCondition\":\"" + selectSqlWhereCondition - + "\"}"); - return json.toString(); + + obj.put("selectSqlWhereCondition", selectSqlWhereCondition); + obj.put("rows", userArray); + return obj.toString(); }