Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/YearWorkloadReportHelper.java =================================================================== diff -u -r36094 -r37170 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/YearWorkloadReportHelper.java (.../YearWorkloadReportHelper.java) (revision 36094) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/YearWorkloadReportHelper.java (.../YearWorkloadReportHelper.java) (revision 37170) @@ -32,6 +32,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationRecord; +import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectRecord; import com.forgon.disinfectsystem.jasperreports.javabeansource.YearWorkloadBean; import com.forgon.disinfectsystem.jasperreports.service.dataindex.DataIndex; import com.forgon.disinfectsystem.reportforms.vo.ReportQueryParams; @@ -153,6 +154,8 @@ Map disposableGoodsSendMap = new HashMap();//一次性物品发放数量map Map endoscopicMap = new HashMap();//内窥镜map Map nextSendAmountMap = new HashMap();//下收下送map + Map manualWashAmountMap = new HashMap();//器械手工清洗总件数map + Map rinserTotalUseAmountMap = new HashMap();//灭菌炉使用次数map SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Map amountTotalMap = new HashMap(); @@ -194,6 +197,28 @@ DatabaseUtil.closeResultSetAndStatement(totalTousseRs); } } + if(dataIndexSources.contains("器械手工清洗件数")){ + // 处理器械总件数 + params.extraQuery= " and wr.rinserId not in (select id from Rinser where isManualClean='是') "; + sql = String.format("select sum(tl.amount) amount, monthstr from (" + +dataIndex.getWorkAmountByMaterialSQL("清洗数量", params, dataSoureOfMaterialsCountOfToussesInReports) + + ") tl group by monthstr "); + ResultSet totalTousseRs = null; + try { + logger.debug("消毒供应中心年度工作量统计报表器械手工清洗总件数查询:"+sql); + totalTousseRs = objectDao.executeSql(sql); + while (totalTousseRs.next()) { + Integer totalTousseAmount = totalTousseRs.getInt("amount"); + String month = DateTools.getSpliceZeroString(totalTousseRs.getString("monthStr")); + manualWashAmountMap.put(month, totalTousseAmount); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(totalTousseRs); + } + params.extraQuery = ""; + } // 处理外来器械总件数 params.tousseTypes = TousseDefinition.PACKAGE_TYPE_FOREIGN; params.tousseTypeAndPackageSizeSql = DataIndex.getTousseTypesAndPackageSizesFilterSQL(TousseDefinition.PACKAGE_TYPE_FOREIGN, null); @@ -505,6 +530,30 @@ DatabaseUtil.closeResultSetAndStatement(rs8); } } + if(dataIndexSources.contains("清洗机使用炉次")){ + monthlyStr = dateQueryAdapter.dateConverAdapter3("wr.startDate",mmOrdd); + String rinserTotalUseAmountSql = " select count(*) amount," + + monthlyStr + + " monthStr from "+ WashAndDisinfectRecord.class.getSimpleName() +" wr " + + " where wr.orgUnitCoding='" + querySupplyRoom + "' " + + " and wr.startDate between " + startDay + " and " + endDay + + " and wr.rinserId not in (select id from Rinser where isManualClean='是' ) group by " + + monthlyStr; + ResultSet rs = null; + try { + logger.debug("消毒供应中心年度工作量统计报表清洗机使用炉次数量查询:"+rinserTotalUseAmountSql); + rs = objectDao.executeSql(rinserTotalUseAmountSql); + while (rs.next()) { + Integer amount = rs.getInt("amount"); + String month = DateTools.getSpliceZeroString(rs.getString("monthStr")); + rinserTotalUseAmountMap.put(month, amount); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + } //核算月报 if(orgUnitCodes.size() > 0){ monthlyStr = dateQueryAdapter.dateConverAdapter3("tempTable.sendTime",mmOrdd); @@ -785,6 +834,26 @@ amountTotalMap.put(dataIndexNameForDisplay, MathTools.add(amount8 , amountTotalMap.get(dataIndexNameForDisplay)).intValue()); list.add(bean8); + }else if("清洗机使用炉次".equals(dataIndexSource)){ + if(MapUtils.isNotEmpty(rinserTotalUseAmountMap)){ + if(rinserTotalUseAmountMap.containsKey(month)){ + amountTotalMap.put(dataIndexNameForDisplay, MathTools.add(rinserTotalUseAmountMap.get(month) + , amountTotalMap.get(dataIndexNameForDisplay)).intValue()); + } + addYearWorkLoadBean(i, month, rinserTotalUseAmountMap, num, dataIndexNameForDisplay, list, yearMonth); + }else{ + removeTitles.add(dataIndexSource); + } + }else if("器械手工清洗件数".equals(dataIndexSource)){ + if(MapUtils.isNotEmpty(manualWashAmountMap)){ + if(manualWashAmountMap.containsKey(month)){ + amountTotalMap.put(dataIndexNameForDisplay, MathTools.add(manualWashAmountMap.get(month) + , amountTotalMap.get(dataIndexNameForDisplay)).intValue()); + } + addYearWorkLoadBean(i, month, manualWashAmountMap, num, dataIndexNameForDisplay, list, yearMonth); + }else{ + removeTitles.add(dataIndexSource); + } } } }