Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r25138 -r25140 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 25138) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 25140) @@ -1612,11 +1612,25 @@ String supplyroomType = AcegiHelper.getLoginUser() .getOrgUnitCodingFromSupplyRoomConfig(); - String sql = "select case d.tousseType when '外来器械拆分小包' then '外来器械包' else d.tousseType end,sum(case d.tousseType when '" + TousseDefinition.PACKAGE_TYPE_DISINFECTION + "' then t.statisticsAmount else 1 end) " - + "from TousseInstance t,TousseDefinition d where t.tousseDefinition_id = d.id and t.operationTime between " - + dateQueryAdapter.dateAdapter(startDate) + " and " + dateQueryAdapter.dateAdapter(endDate)+" and t.orgUnitCoding='" - + deptCode + "' group by d.tousseType"; +// String sql = "select case d.tousseType when '外来器械拆分小包' then '外来器械包' else d.tousseType end,sum(case d.tousseType when '" + TousseDefinition.PACKAGE_TYPE_DISINFECTION + "' then t.statisticsAmount else 1 end) " +// + "from TousseInstance t,TousseDefinition d where t.tousseDefinition_id = d.id and t.operationTime between " +// + dateQueryAdapter.dateAdapter(startDate) + " and " + dateQueryAdapter.dateAdapter(endDate)+" and t.orgUnitCoding='" +// + deptCode + "' group by d.tousseType"; + ReportQueryParams params = new ReportQueryParams(); + params.betweenSql = String.format(" between %s and %s ", + dateQueryAdapter.dateAdapter(startDate), + dateQueryAdapter.dateAdapter(endDate)); + params.querySupplyRoom = supplyroomType; + params.sqlLengthFunctionName = DatabaseUtil.getSqlLengthFunctionName(dbConnection); + + // 取配包数量 + String sql = String.format("select tl.tousseType,sum(tl.amount) amount from (" + + DataIndex.getWorkAmountByPackageSQL("配包数量", params) + + ") tl group by tl.tousseType "); + + + ResultSet rs = objectDao.executeSql(sql); Map tousseTypeMap = new HashMap(); Integer totalAmount = 0; @@ -1626,6 +1640,11 @@ if(isHideDisinfection == true && "消毒物品".equals(tousseType)){ continue; } + // 将外来器械拆分小包的类型转为外来器械包类型进行统计 + if (TousseDefinition.PACKAGE_TYPE_SPLIT.equals(tousseType)){ + tousseType = TousseDefinition.PACKAGE_TYPE_FOREIGN; + } + Integer amount = rs.getInt(2); totalAmount += amount; if(tousseTypeMap.containsKey(tousseType)){