Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r33459 -r33513 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 33459) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 33513) @@ -7802,6 +7802,7 @@ params.tousseGroupSqlWithAliasOfTousseDefinitionIsTd = ""; params.tousseTypeAndPackageSizeSql = ""; params.sqlLengthFunctionName = sqlLengthFunctionName; + params.isGroup = true; params.monthlyStr = dateQueryAdapter.dateConverAdapter3("wr.endDate",mmOrdd); // 处理器械总件数 String sql = String.format("select sum(tl.amount) amount, monthstr from (" @@ -7848,17 +7849,46 @@ params.tousseTypeAndPackageSizeSql = DataIndex .getTousseTypesAndPackageSizesFilterSQL( TousseDefinition.PACKAGE_TYPE_DISINFECTION, null); - String monthlyStr = dateQueryAdapter.dateConverAdapter3("i.sendTime",mmOrdd); - params.extraSelectColumns = "," + monthlyStr + "monthstr"; - params.extraGroupBy = ""; - params.groupBySql = " group by " + monthlyStr; - sql = String.format("select sum(tl.amount) amount,monthstr from (" - +dataIndex.getWorkAmountByMaterialSQL("发货数量", params, dataSoureOfMaterialsCountOfToussesInReports) - + ") tl group by monthstr"); - ResultSet disinfectionRs = null; + String monthlyStr = null; + int statisticSourceOfDisinfectGoodsAmount = CssdUtils.getSystemSetConfigByNameInt("statisticSourceOfDisinfectGoodsAmount", 1); + String disinfectionSql = ""; + params.tousseTypes = TousseDefinition.PACKAGE_TYPE_DISINFECTION; + if(statisticSourceOfDisinfectGoodsAmount == 2){ + monthlyStr = dateQueryAdapter.dateConverAdapter3("i.sendTime",mmOrdd); + params.extraSelectColumns = "," + monthlyStr + "monthstr"; + params.extraGroupBy = ""; + params.groupBySql = " group by " + monthlyStr; + disinfectionSql = String.format("select sum(tl.amount) amount,monthstr from (" + +dataIndex.getWorkAmountByMaterialSQL("发货数量", params, dataSoureOfMaterialsCountOfToussesInReports) + + ") tl group by monthstr"); + }else if(statisticSourceOfDisinfectGoodsAmount == 3){ + monthlyStr = dateQueryAdapter.dateConverAdapter3("ti.operationTime",mmOrdd); + params.extraGroupBy = ""; + params.extraSelectColumns = ""; + params.monthlyStr = monthlyStr; + disinfectionSql = String.format("select sum(tl.amount) amount,monthstr from (" + + dataIndex.getWorkAmountByPackageSQL("配包数量", params) + + ") tl group by monthstr"); + }else if(statisticSourceOfDisinfectGoodsAmount == 4){ + monthlyStr = dateQueryAdapter.dateConverAdapter3("ti.operationTime",mmOrdd); + params.extraSelectColumns = "," + monthlyStr + "monthstr"; + params.extraGroupBy = monthlyStr; + disinfectionSql = String.format("select sum(tl.amount) amount,monthstr from (" + +dataIndex.getWorkAmountByMaterialSQL("配包数量", params, dataSoureOfMaterialsCountOfToussesInReports) + + ") tl group by monthstr"); + }else{ + monthlyStr = dateQueryAdapter.dateConverAdapter3("i.sendTime",mmOrdd); + params.extraSelectColumns = "," + monthlyStr + "monthstr"; + params.groupBySql = " group by " + monthlyStr; + params.extraGroupBy = monthlyStr; + disinfectionSql = String.format("select sum(tl.amount) amount,monthstr from (" + +dataIndex.getWorkAmountByPackageSQL("发货数量", params) + + ") tl group by monthstr"); + } + ResultSet disinfectionRs = null; try { - logger.debug("消毒供应中心年度工作量统计报表消毒物品数量查询:"+sql); - disinfectionRs = objectDao.executeSql(sql); + logger.debug("消毒供应中心年度工作量统计报表消毒物品数查询:"+disinfectionSql); + disinfectionRs = objectDao.executeSql(disinfectionSql); while (disinfectionRs.next()) { Integer disinfectionAmount = disinfectionRs.getInt("amount"); String month = disinfectionRs.getString("monthstr"); @@ -7869,11 +7899,13 @@ }finally { DatabaseUtil.closeResultSetAndStatement(disinfectionRs); } + params.tousseTypes = ""; params.monthlyStr = tiSterileEndTime; params.extraSelectColumns = ""; params.groupBySql = ""; // 灭菌无菌包数 params.tousseTypeAndPackageSizeSql = ""; + params.extraGroupBy = ""; String sterileSql = String.format("select sum(tl.amount) amount,monthstr from (" +dataIndex.getWorkAmountByPackageSQL("灭菌数量", params) + ") tl group by monthstr");