Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/reportforms/service/ReportManagerImpl.java =================================================================== diff -u -r30804 -r33139 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/reportforms/service/ReportManagerImpl.java (.../ReportManagerImpl.java) (revision 30804) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/reportforms/service/ReportManagerImpl.java (.../ReportManagerImpl.java) (revision 33139) @@ -14,6 +14,7 @@ import net.sf.json.JSONObject; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -360,27 +361,48 @@ }finally { DatabaseUtil.closeResultSetAndStatement(sterileForeignRs); } - //6.灭菌炉分组(动态查询) - List sterialGroupList = getAllSterilerGroup(); - if(CollectionUtils.isNotEmpty(sterialGroupList)){ - for (String sterialGroup : sterialGroupList) { - String qutoaName = ReportConstant.CSSD_WORKLOAD_STERILERPOWEREDAMOUNT[0] + "_" + sterialGroup; - String querySql = "select tedd.dateNum "+ ReportConstant.CSSD_WORKLOAD_REPORTDATE[0] +", " + - " count(tmp.id) "+ qutoaName +" " + - " from tempEveryDateData tedd " + - " left join (select sr.id , sr.endDate from SterilizationRecord sr,Sterilizer s where " + - " sr.sterilizer_id = s.id and (sr.status = '"+ SterilizationRecord.STERILIZATION_STATUS_END +"' or sr.status = '"+ SterilizationRecord.STERILIZATION_STATUS_FAILURE +"') " + - " and sr.orgUnitCoding = '"+ departCoding +"' " + - " and s.ownGroup = '"+ sterialGroup +"') tmp on tmp.enddate >= tedd.beginTime and tmp.enddate <= tedd.endTime " + - " where tedd.beginTime >= "+ queryBeginDateExpress + " and tedd.endTime <= "+ queryEndDateExpress + - " and tedd.type='"+ queryReportDateType +"' " + - " group by tedd.dateNum order by tedd.dateNum"; - //key为报表结果的日期,value为各指标的值 - result = countCssdWorkloadQuota(querySql , qutoaName); - mergeQuotaMapToDataList(result , datas); + //6.灭菌炉分组(动态查询) + // 清空过滤条件 + params.tousseTypeAndPackageSizeSql = ""; + Map> sterilizerUseAmountMap = new HashMap>();//灭菌炉使用次数map + String monthlyStr = dateQueryAdapter.dateConverAdapter3("sr.enddate","mm"); + //获取所有灭菌炉分组 + String sql3 = "select count(*) amount,s.ownGroup,"+ monthlyStr +" monthStr from SterilizationRecord sr,Sterilizer s where " + + " sr.sterilizer_id = s.id and (sr.status = '灭菌完成' or sr.status = '灭菌失败') and sr.enddate " + + betweenSql + + SqlUtils.get_InSql_Extra("sr.orgUnitCoding", departCoding) + + "group by s.ownGroup," + + monthlyStr; + ResultSet rs3 = null; + try { + rs3 = objectDao.executeSql(sql3); + while (rs3.next()) { + Integer amount5 = rs3.getInt("amount"); + String ownGroup = rs3.getString("ownGroup"); + String monthStr = rs3.getString("monthStr"); + Map itemMap = null; + if(sterilizerUseAmountMap.containsKey(ownGroup)){ + itemMap = sterilizerUseAmountMap.get(ownGroup); + }else{ + itemMap = new HashMap(); + sterilizerUseAmountMap.put(ownGroup, itemMap); + } + itemMap.put(monthStr, amount5); } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs3); } - + if(MapUtils.isNotEmpty(sterilizerUseAmountMap)){ + for (Entry> entry : sterilizerUseAmountMap.entrySet()) { + String ownGroup = entry.getKey(); + Map ownGroupMap = entry.getValue(); + Map> sterileForeignMap = new TreeMap>(new MapKeyComparator()); + supplementMonthsWithoutData(dayList, yearMonthMap, ownGroupMap, sterileForeignMap, ReportConstant.CSSD_WORKLOAD_STERILERPOWEREDAMOUNT[0] + "_" + ownGroup); + mergeQuotaMapToDataList(sterileForeignMap , datas); + } + } //7.器械包发放数量 // 清空过滤条件 params.tousseTypeAndPackageSizeSql = "";