Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r26693 -r26699 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 26693) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 26699) @@ -13077,16 +13077,7 @@ String sterilizeTotalSql = buildSqlOfSterilizeTotalSql(reportParams.betweenSql); // 获取灭菌不合格物品的sql String qmDataSql = dateQueryAdapter.dateToVarchar2("qmi.dateTime"); - String sterilizeUQSql = "select " + qmDataSql +" dataStr,sum(qmd.amount) count,src.orgUnitName " - + " from QualityMonitoringInstance qmi,FormInstance fi,FormDefinition fd , " - + " SupplyRoomConfig src ,QualityMonitoringGoods qmd " - + " where qmi.id=fi.id and fd.id = fi.formDefinition_id and (src.supplyroomtype = 1 or src.supplyroomtype = 2) " - + " and src.orgUnitCoding = fi.orgUnitCoding and qmi.id=qmd.qualityMonitoringInstance_id " - + " and ( fd.formName = '" + "灭菌失败事件"+ "' or fd.formName = '"+ "湿包" - + "' or fd.formName = '"+ "破包"+ "' or fd.formName = '"+ "指示卡变色不均匀有水渍"+ "' )" - + " and qmi.dateTime between " + dateQueryAdapter.dateAdapter(startDay) - + " and "+dateQueryAdapter.dateAdapter(endDay) - + " group by " + qmDataSql + " ,src.orgUnitName "; + String sterilizeUQSql = buildSqlOfSterilizeUQSql(startDay, endDay); sterilizeUQMap = getAmountMapBySql(sterilizeUQSql); sterilizeTotalMap = getAmountMapBySql(sterilizeTotalSql); @@ -13281,11 +13272,28 @@ * @return */ private String buildSqlOfSterilizeTotalSql(String betweenSql){ - String monthlyStr = dateQueryAdapter.dateToVarchar2(dateQueryAdapter.stringFieldToDate("endDate")); + String monthlyStr = dateQueryAdapter.dateToVarchar2("endDate"); return String.format(" select %s monthstr, sum(tousseAmount) + sum(foreignTousseAmount) + sum(dressingTousseAmount)+sum(proxyTousseAmount) amount ,ou.name" + " from SterilizationRecord sr inner join OrgUnit ou on ou.orgUnitCoding=sr.orgUnitCoding " + " where endDate %s and status='%s' group by %s ,ou.name ", monthlyStr,betweenSql,SterilizationRecord.STERILIZATION_STATUS_END,monthlyStr); } + /** + * 构建查询不合格总数的sql + * @param startDay 开始时间 + * @param endDay 结束时间 + * @return + */ + private String buildSqlOfSterilizeUQSql(String startDay, String endDay){ + String monthStr = dateQueryAdapter.dateToVarchar2("qi.dateTime"); + return String.format("select %s dataStr,sum(qmd.amount), fi.orgunit from QualityMonitoringInstance qi ,FormInstance fi," + + "FormDefinition fd,QualityMonitoringDefinition qd,QualityMonitoringGoods qmd " + + " where qi.id = fi.id and fi.formDefinition_id = fd.id and fd.id = qd.id " + + " and qi.id=qmd.qualityMonitoringInstance_id " + + " and qd.responsibilitypart = '灭菌管理' and fd.formType = '质量监测' " + + " and qi.datetime between %s and %s" + + " group by fi.orgunit, %s ", monthStr,dateQueryAdapter.dateAdapter(startDay), + dateQueryAdapter.dateAdapter(endDay),monthStr); + } // 通过sql获取统计的数量 private Map getAmountMapBySql(String sql){ Map map = new HashMap();