Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/QualityMonitoringInspectMonthReportHelper.java =================================================================== diff -u -r38285 -r38286 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/QualityMonitoringInspectMonthReportHelper.java (.../QualityMonitoringInspectMonthReportHelper.java) (revision 38285) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/QualityMonitoringInspectMonthReportHelper.java (.../QualityMonitoringInspectMonthReportHelper.java) (revision 38286) @@ -103,14 +103,14 @@ + SqlUtils.getHandleDepartCodingOfQualityMonitoringDefinitionSql(orgUnitCoding) + fiOrgUnitCodingSql+ DataIndex.getIsQualifiedSql("qmi") //+ SqlUtils.get_InSql_Extra("fi.orgUnitCoding", orgUnitCoding) - + " and (fiItem.id in (select formInstanceItem_id from FormInstanceOptionValue )) " + + " and fiItem.answer<>'' and fiItem.answer is not null " + " and fdi.isReportDisplay='是' and qmi.dateTime between " + dateQueryAdapter.dateAdapter(startTime) + "and "+dateQueryAdapter.dateAdapter(endTime) + " group by " + dateQueryAdapter.dateConverAdapter3("qmi.dateTime","dd") + " ,fdi.name "; }else{ resultNameList = getResultNameList(monitoringType,inspectItem,inspectDetail,null, startTime, endTime); - // 查询细则的统计结果 - sql = "select " + dateQueryAdapter.dateConverAdapter3("qmi.dateTime","dd") +" monthstr,fiOption.answer,sum(qmd.amount) count " + // 查询细则的统计结果 单选和多选 + sql = "select monthstr,answer, sum(count) count from ( select " + dateQueryAdapter.dateConverAdapter3("qmi.dateTime","dd") +" monthstr,fiOption.answer,sum(qmd.amount) count " + " from QualityMonitoringInstance qmi,FormInstance fi,FormDefinition fd,QualityMonitoringDefinition qmdf,FormInstanceItem fiItem,FormDefinitionItem fdi,FormInstanceOptionValue fiOption,QualityMonitoringGoods qmd " + " where qmdf.id=fd.id and qmi.id=fi.id and fd.id = fi.formDefinition_id and fi.id = fiItem.formInstance_id and fiItem.formDefinitionItem_id = fdi.id and fiOption.formInstanceItem_id = fiItem.id " + " and qmi.id=qmd.qualityMonitoringInstance_id " @@ -123,6 +123,19 @@ + " and qmi.dateTime between " + dateQueryAdapter.dateAdapter(startTime) + "and "+dateQueryAdapter.dateAdapter(endTime) + " group by " + dateQueryAdapter.dateConverAdapter3("qmi.dateTime","dd") + " ,fiOption.answer "; + //不是单选和多选 + sql += " union all select " + dateQueryAdapter.dateConverAdapter3("qmi.dateTime","dd") +" monthstr,fiItem.answer,sum(qmd.amount) count " + + " from QualityMonitoringInstance qmi,FormInstance fi,FormDefinition fd,QualityMonitoringDefinition qmdf,FormInstanceItem fiItem,FormDefinitionItem fdi,QualityMonitoringGoods qmd " + + " where qmdf.id=fd.id and qmi.id=fi.id and fd.id = fi.formDefinition_id and fi.id = fiItem.formInstance_id and fiItem.formDefinitionItem_id = fdi.id " + + " and qmi.id=qmd.qualityMonitoringInstance_id " + + " and fd.formName = '" + inspectItem + "'" + + " and fd.formType = '" + monitoringType + "'"+ DataIndex.getIsQualifiedSql("qmi") + + SqlUtils.getHandleDepartCodingOfQualityMonitoringDefinitionSql(orgUnitCoding) + + fiOrgUnitCodingSql + + " and not exists (select 1 from FormInstanceOptionValue fov where fov.formInstanceItem_id=fiItem.id) and fiItem.answer is not null and fiItem.answer<>'' and fdi.isReportDisplay='是' and fdi.name = '" + inspectDetail + "'" + + " and qmi.dateTime between " + dateQueryAdapter.dateAdapter(startTime) + + "and "+dateQueryAdapter.dateAdapter(endTime) + + " group by " + dateQueryAdapter.dateConverAdapter3("qmi.dateTime","dd") + " ,fiItem.answer) t group by monthstr,answer "; } } if(StringUtils.isNotBlank(sql)){ @@ -298,7 +311,7 @@ }else{ resultNameList = getResultNameList(monitoringType,inspectItem,inspectDetail,null, startDay, endDay); // 查询细则的统计结果 - sql = "select " +" fiOption.answer,sum(qmg.amount) count " + sql = "select answer,sum(count) count from (select fiOption.answer,sum(qmg.amount) count " + " from QualityMonitoringInstance qmi,FormInstance fi,FormDefinition fd,QualityMonitoringDefinition qmdf,FormInstanceItem fiItem" + " ,FormDefinitionItem fdi,FormInstanceOptionValue fiOption,QualityMonitoringGoods qmg " + " where qmdf.id=fd.id and qmi.id=fi.id and fd.id = fi.formDefinition_id and fi.id = fiItem.formInstance_id " @@ -312,6 +325,21 @@ + " and qmi.dateTime between " + dateQueryAdapter.dateAdapter(startDay) + "and "+dateQueryAdapter.dateAdapter(endDay) + " group by "+ " fiOption.answer "; + sql += " union all select fiItem.answer,sum(qmg.amount) count " + + " from QualityMonitoringInstance qmi,FormInstance fi,FormDefinition fd,QualityMonitoringDefinition qmdf,FormInstanceItem fiItem" + + " ,FormDefinitionItem fdi,QualityMonitoringGoods qmg " + + " where qmdf.id=fd.id and qmi.id=fi.id and fd.id = fi.formDefinition_id and fi.id = fiItem.formInstance_id " + + " and fiItem.formDefinitionItem_id = fdi.id " + + " and qmi.id=qmg.qualityMonitoringInstance_id " + + " and fd.formName = '" + inspectItem + "'" + + " and fd.formType = '" + monitoringType + "'"+ DataIndex.getIsQualifiedSql("qmi") + + fiOrgUnitCodingSql + + SqlUtils.getHandleDepartCodingOfQualityMonitoringDefinitionSql(orgUnitCoding) + + " and not exists (select 1 from FormInstanceOptionValue fov where fov.formInstanceItem_id=fiItem.id) and fiItem.answer is not null and fiItem.answer<>'' " + + " and fdi.isReportDisplay='是' and fdi.name = '" + inspectDetail + "'" + + " and qmi.dateTime between " + dateQueryAdapter.dateAdapter(startDay) + + "and "+dateQueryAdapter.dateAdapter(endDay) + + " group by "+ " fiItem.answer) t group by answer "; } ResultSet rs = objectDao.executeSql(sql); // 根据需要统计的名字,初始化统计项