Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java =================================================================== diff -u -r27448 -r27451 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 27448) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 27451) @@ -1305,6 +1305,8 @@ Set departCodings = new HashSet(); try { rs = objectDao.executeSql(sql.toString()); + List groups = departmentGroupManager.getAll(); + Map departCodingToGroupIdMap = new HashedMap(); if (rs != null) { while (rs.next()) { Long ipId = rs.getLong("id"); @@ -1337,6 +1339,7 @@ vo.setIsApplyEntireTousse(StringUtils.isBlank(isApplyEntireTousse)?"是":isApplyEntireTousse); vo.setTousseType(tousseType); vo.setDepartCoding(departCoding); + vo.setDepartGroupId(getDepartGroupId(vo.getDepartCoding(),groups,departCodingToGroupIdMap)); vo.setTousseGroupId(tousseGroupID); departCodings.add(departCoding); quickRecyclingList.add(vo); @@ -1347,8 +1350,6 @@ } finally { DatabaseUtil.closeResultSetAndStatement(rs); } - //为ExpressRecyclingVoList设置科室分组Id - setDepartGroupIdForExpressRecyclingVoList(departCodings, quickRecyclingList); //相关申请单改为已查看 if(CollectionUtils.isNotEmpty(ipIds)){ objectDao.excuteSQL("update invoicePlan set readed = "+InvoicePlan.READED+" where " + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("id", ipIds)); @@ -1357,46 +1358,40 @@ } /** - * 为ExpressRecyclingVoList设置科室分组Id - * @param departCodings - * @param quickRecyclingList - */ - private void setDepartGroupIdForExpressRecyclingVoList(Set departCodings, List quickRecyclingList){ - if(CollectionUtils.isEmpty(departCodings)){ - return; - } - Map departGroupIdMap = getDepartGroupId(departCodings); - for (ExpressRecyclingVo vo : quickRecyclingList) { - vo.setDepartGroupId(departGroupIdMap.get(vo.getDepartCoding())); - } - } - /** * 获取科室所属回收分组 - * @param departCodings 科室编码 + * @param departCoding + * @param groups + * @param departCodingToGroupIdMap * @return */ - private Map getDepartGroupId(Set departCodings){ - List groups = departmentGroupManager.getAll(); + private String getDepartGroupId(String departCoding, + List groups, + Map departCodingToGroupIdMap) { String groupId = ""; - Map result = new HashMap(); - for (DepartmentGroup departmentGroup : groups) { - String codings = departmentGroup.getDepartCodes(); - if (StringUtils.isNotBlank(codings)) { - String[] codingArray = codings.split(";"); - for (String coding : codingArray) { - //一个科室有可能属于多个分组的情况 - if (departCodings.contains(coding)) { - if(StringUtils.isNotBlank(groupId)){ - groupId += ";"; + String departGroupId = departCodingToGroupIdMap.get(departCoding); + if (departGroupId != null) { + groupId = departGroupId; + } else { + if (StringUtils.isNotBlank(departCoding) && groups != null) { + for (DepartmentGroup departmentGroup : groups) { + String codings = departmentGroup.getDepartCodes(); + if (StringUtils.isNotBlank(codings)) { + String[] codingArray = codings.split(";"); + for (String coding : codingArray) { + //一个科室有可能属于多个分组的情况 + if (departCoding.equals(coding)) { + if(StringUtils.isNotBlank(groupId)){ + groupId += ";"; + } + groupId += departmentGroup.getId().toString(); + departCodingToGroupIdMap.put(departCoding,groupId); + } } - groupId += departmentGroup.getId().toString(); - result.put(coding,groupId); - break; } } } } - return result; + return groupId; } private List getWaitingforRecyclingInvoicePlans(String sql){ List list = null;