Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java =================================================================== diff -u -r33774 -r33964 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 33774) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 33964) @@ -39,6 +39,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.ForeignTousseSizeReportBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.ForeignTousseSterilizationMonitorAndDeliveryVO; import com.forgon.disinfectsystem.jasperreports.javabeansource.ForeignTousseSupplierStatisticsReportVO; +import com.forgon.disinfectsystem.jasperreports.javabeansource.FormDefinitionReportColumnVo; import com.forgon.disinfectsystem.jasperreports.javabeansource.FormInstanceVo; import com.forgon.disinfectsystem.jasperreports.javabeansource.GodownEntryItemVo; import com.forgon.disinfectsystem.jasperreports.javabeansource.GodownEntryStatistic_main; @@ -1118,9 +1119,10 @@ * 获取获取质量监测报表数据列头数据,用于前端做成table显示 * @param formName 表单名称 * @param modeType 类型 有回收情况,清洗情况,灭菌清况 + * @param voMap 监测元素信息map * @return */ - public JSONObject queryFormDefinitionDynamicColumnInfo(String formName, String modeType); + public JSONObject queryFormDefinitionDynamicColumnInfo(String formName, String modeType, Map voMap); /** * 查询手术室器械包使用分摊费用明细报表 * @param startDate Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r33962 -r33964 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 33962) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 33964) @@ -25086,7 +25086,7 @@ return formDefinitionItemNameMap; } @Override - public JSONObject queryFormDefinitionDynamicColumnInfo(String formName, String modeType) { + public JSONObject queryFormDefinitionDynamicColumnInfo(String formName, String modeType, Map voMap) { StringBuilder sbf = new StringBuilder(500); String startDate = StrutsParamUtils.getPraramValue("startDate", ""); String endDate = StrutsParamUtils.getPraramValue("endDate", ""); @@ -25114,7 +25114,7 @@ Map columnWidthMap = new LinkedHashMap(); int maxNum = 0;//列最大序号 boolean haveRequirement = false; - Map voMap = new HashMap(); + try { rs = objectDao.executeSql(sbf.toString()); Map fdiOrderNumberMap = new HashMap(); @@ -25290,9 +25290,57 @@ }else if(Constants.STR_YES.equals(recordSterilizatioInformation) && QualityMonitoringDefinition.QUALITYMONITORING_MODULE_NAME_STERILIZATION.equals(responsibilityPart)){//灭菌情况 modeType = "recordSterilizatioInformation"; } - JSONObject dynamicColumnObj = queryFormDefinitionDynamicColumnInfo(formName,modeType); + //监测元素属性map + Map formDefinitionItemNameMap = new HashMap(); + JSONObject dynamicColumnObj = queryFormDefinitionDynamicColumnInfo(formName,modeType, formDefinitionItemNameMap); String instrumentSetTypes = StrutsParamUtils.getPraramValue("instrumentSetTypes", ""); List monitoringItemBeans = getQualityMonitoringDataSource(instrumentSetTypes, formName, responsibilityPart, recordRinseInformation, scope, requestParameters,dynamicColumnObj.optBoolean("haveRequirement"), isShowTousseMaerialSumAmount); + if(!CollectionUtils.isEmpty(monitoringItemBeans)){ + if(!MapUtils.isEmpty(formDefinitionItemNameMap)){ + Iterator it = monitoringItemBeans.iterator(); + while(it.hasNext()){ + MonitoringItemBean monitoringItemBean = it.next(); + String questionName = monitoringItemBean.getQuestionName(); + if(StringUtils.isBlank(questionName)){ + continue; + } + String option = monitoringItemBean.getOption(); + if("-".equals(questionName)){ + if(formDefinitionItemNameMap.containsKey(option + "-")){ + FormDefinitionReportColumnVo thisFormDefinitionItem = formDefinitionItemNameMap.get(option + "-"); + monitoringItemBean.setDisplayFormat(thisFormDefinitionItem.getDisplayFormat()); + monitoringItemBean.setWidth(thisFormDefinitionItem.getWidth()); + } + }else{ + String optionKey = ""; + if(StringUtils.isNotBlank(option) && option.contains("P+")){ + int index = option.indexOf("P+") + 2; + optionKey = option.substring(index); + }else{ + optionKey = option; + } + if(formDefinitionItemNameMap.containsKey(questionName + "-" + optionKey)){ + FormDefinitionReportColumnVo thisFormDefinitionItem = formDefinitionItemNameMap.get(questionName + "-" + optionKey); + if(FormDefinitionItem.FORMAT_ALL.equals(thisFormDefinitionItem.getDisplayFormat())){ + if(!"√".equals(monitoringItemBean.getAnswer())){ + it.remove(); + continue; + } + if(option.contains("P+")){ + monitoringItemBean.setAnswer(monitoringItemBean.getOption().substring(option.indexOf("P+") + 2)); + }else{ + monitoringItemBean.setAnswer(monitoringItemBean.getOption()); + } + monitoringItemBean.setOption(monitoringItemBean.getQuestionName()); + monitoringItemBean.setQuestionName("-"); + } + monitoringItemBean.setDisplayFormat(thisFormDefinitionItem.getDisplayFormat()); + monitoringItemBean.setWidth(thisFormDefinitionItem.getWidth()); + } + } + } + } + } String dataType = requestParameters.get("dataType"); if("监测范围为灭菌炉记录的定期监测数据".equals(dataType)){ Map>>> dataTimeMap = new HashMap>>>();