Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/reportforms/service/ReportManagerImpl.java =================================================================== diff -u -r34199 -r35237 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/reportforms/service/ReportManagerImpl.java (.../ReportManagerImpl.java) (revision 34199) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/reportforms/service/ReportManagerImpl.java (.../ReportManagerImpl.java) (revision 35237) @@ -626,8 +626,10 @@ String sterilizerNameGroupSql = SqlUtils.getWhereSqlByfilterFieldAndStringValueAndSeparator("s.ownGroup", sterilizerNameGroup, ","); String sterilizerNameSql = SqlUtils.getWhereSqlByfilterFieldAndStringValueAndSeparator("s.name", sterilizerName, ","); String sterilisationSql = SqlUtils.getWhereSqlByfilterFieldAndStringValueAndSeparator("sr.sterilizationType", sterilisation, ","); + String orgUnitCodingSql = SqlUtils.getWhereSqlByfilterFieldAndStringValueAndSeparatorFilterAll("s.orgUnitCoding", departCoding, ","); String sql = "select count(*) amount,s.name from SterilizationRecord sr,Sterilizer s " - + " where sr.sterilizer_id = s.id and s.orgUnitCoding = '"+ departCoding +"'" + + " where sr.sterilizer_id = s.id " + + orgUnitCodingSql + sqlOfSterilizationPurpose + sterilizerNameGroupSql + sterilizerNameSql @@ -706,13 +708,14 @@ String sterilizerNameGroupSql = SqlUtils.getWhereSqlByfilterFieldAndStringValueAndSeparator("s.ownGroup", sterilizerNameGroup, ","); String sterilizerNameSql = SqlUtils.getWhereSqlByfilterFieldAndStringValueAndSeparator("s.name", sterilizerName, ","); String sterilisationSql = SqlUtils.getWhereSqlByfilterFieldAndStringValueAndSeparator("sr.sterilizationType", sterilisation, ","); + String orgUnitCodingSql = SqlUtils.getWhereSqlByfilterFieldAndStringValueAndSeparatorFilterAll("s.orgUnitCoding", departCoding, ","); String monthStr = dateQueryAdapter.dateConverAdapter3("sr.endDate","mm"); String groupSql = " group by s.id," + monthStr; String orderBySql = " order by " + monthStr; String sql = "select min(s.name) name,count(*) amount,"+ monthStr +" month from SterilizationRecord sr,Sterilizer s " +" where sr.sterilizer_id = s.id " //+ " and s.id=" + sterilizerId - +" and s.orgUnitCoding = '"+departCoding+"'" + + orgUnitCodingSql + statusSql +" and sr.endDate between "+dateQueryAdapter.dateConverAdapter2( startTime , "yyyy-mm-dd HH24:MI:SS") Index: ssts-web/src/main/webapp/jasperRtp/sterilizingStoveUseCount.jrxml =================================================================== diff -u -r33843 -r35237 --- ssts-web/src/main/webapp/jasperRtp/sterilizingStoveUseCount.jrxml (.../sterilizingStoveUseCount.jrxml) (revision 33843) +++ ssts-web/src/main/webapp/jasperRtp/sterilizingStoveUseCount.jrxml (.../sterilizingStoveUseCount.jrxml) (revision 35237) @@ -161,7 +161,7 @@ - + Index: ssts-web/src/main/webapp/jasperRtp/sterilizingStoveUseCount.jasper =================================================================== diff -u -r33843 -r35237 Binary files differ Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r35204 -r35237 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 35204) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 35237) @@ -13289,33 +13289,39 @@ SterilizingStove ss = new SterilizingStove(); List list = new ArrayList(); - Map successMap = getSuccessData(depart,departCoding,sterilizationPurpose, + Map successMap = getSuccessData(departCoding,sterilizationPurpose, startTime,endTime,SterilizationRecord.STERILIZATION_STATUS_END, sterilizerNameGroup, sterilizerName, sterilisation); - Map failureMap = getSuccessData(depart,departCoding,sterilizationPurpose, + Map failureMap = getSuccessData(departCoding,sterilizationPurpose, startTime,endTime,SterilizationRecord.STERILIZATION_STATUS_FAILURE, sterilizerNameGroup, sterilizerName, sterilisation); Iterator> iterator = successMap.entrySet().iterator(); + Map departMap = new HashMap(); while(iterator.hasNext()){ Entry next = iterator.next(); String name = next.getKey(); SterilizingStove_child ssc = next.getValue(); + String department = ssc.getDepartName(); + SterilizingStove sterilizingStove = null; + if(departMap.containsKey(department)){ + sterilizingStove = departMap.get(department); + }else{ + sterilizingStove = new SterilizingStove(); + sterilizingStove.setDepartName(ssc.getDepartName()); + departMap.put(department, sterilizingStove); + } + sterilizingStove.getList().add(ssc); if(failureMap.get(name) != null){ ssc.setFailureCount(failureMap.get(name).getFailureCount()); }else{ ssc.setFailureCount(0); } list.add(ssc); } - if(list.size()>0){ - ss.setDepartName(depart); - ss.setList(list); - ssList.add(ss); - } - return ssList; + return Arrays.asList(departMap.values().toArray()); } - private Map getSuccessData(String depart , String departCoding,String sterilizationPurpose, + private Map getSuccessData(String departCoding,String sterilizationPurpose, String startTime, String endTime, String type, String sterilizerNameGroup, String sterilizerName, String sterilisation) { String statusSql = " and sr.status = '"+type+"'"; boolean enableTheSterilizationResultJudgmentFunction = CssdUtils.getSystemSetConfigByNameBool("enableTheSterilizationResultJudgmentFunction", false); @@ -13332,10 +13338,11 @@ + SterilizationRecord.STERILIZATIONRESULT_QUALIFIED +"' "; } } - String sql = "select min(s.name) name,count(*) amount,min(s.sequence) sequence from SterilizationRecord sr,Sterilizer s " + String orgUnitCodingSql = SqlUtils.getWhereSqlByfilterFieldAndStringValueAndSeparatorFilterAll("s.orgUnitCoding", departCoding, ","); + String sql = "select min(s.name) name,count(*) amount,min(s.sequence) sequence,s.department from SterilizationRecord sr,Sterilizer s " +" where sr.sterilizer_id = s.id " + statusSql - + (StringUtils.isNotBlank(departCoding) ? (" and s.orgUnitCoding = '"+departCoding+"'") : (" and s.department = '"+depart+"'")) + + orgUnitCodingSql +" and sr.endDate between "+dateQueryAdapter.dateConverAdapter2( startTime , "yyyy-mm-dd HH24:MI") +" and "+dateQueryAdapter.dateConverAdapter2( endTime @@ -13353,7 +13360,7 @@ if(StringUtils.isNotBlank(sterilisation) && !"全部".equals(sterilisation)){ sql += SqlUtils.getWhereSqlByfilterFieldAndStringValueAndSeparator("sr.sterilizationType", sterilisation, ","); } - sql += " group by s.id "; + sql += " group by s.id,s.department "; sql = String.format("select * from (%s) t order by t.sequence,t.name ", sql); @@ -13365,7 +13372,7 @@ ssc = new SterilizingStove_child(); String name = resultSet.getString(1); int count = resultSet.getInt(2); - ssc.setDepartName(depart); + ssc.setDepartName(resultSet.getString("department")); ssc.setSterilizerName(name); if("灭菌完成".equals(type)){ ssc.setSuccessCount(count); @@ -13589,14 +13596,15 @@ +"','"+ SterilizationRecord.STERILIZATIONRESULT_UNQUALIFIED +"') "; } + String orgUnitCodingSql = SqlUtils.getWhereSqlByfilterFieldAndStringValueAndSeparatorFilterAll("po.sterilizer.orgUnitCoding", departCoding, ","); String sql = " where po.endDate between " + dateQueryAdapter.dateConverAdapter2( startTime , "yyyy-mm-dd HH24:MI") + " and " + "" + dateQueryAdapter.dateConverAdapter2( endTime , "yyyy-mm-dd HH24:MI") + statusSql - + (StringUtils.isNotBlank(departCoding) ? (" and po.sterilizer.orgUnitCoding = '"+departCoding+"'") : (" and po.sterilizer.department = '"+depart+"'")); + + orgUnitCodingSql; if(StringUtils.isNotBlank(sterilizationPurpose) && !"全部".equals(sterilizationPurpose)) { sql += " and po.sterilizationPurpose = '" + sterilizationPurpose + "' ";