Index: ssts-web/src/main/webapp/jasperRtp/routineMonitoringWashScopeReport.jasper =================================================================== diff -u Binary files differ Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/MonitoringItemBean.java =================================================================== diff -u -r27743 -r30632 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/MonitoringItemBean.java (.../MonitoringItemBean.java) (revision 27743) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/MonitoringItemBean.java (.../MonitoringItemBean.java) (revision 30632) @@ -42,7 +42,14 @@ * 监测实例id */ private Long qualityMonitoringInstanceId; - + /** + * 包名称 + */ + private String tousseName; + /** + * 材料名称 + */ + private String materialName; public Long getId() { return id; } @@ -154,5 +161,22 @@ public void setQualityMonitoringInstanceId(Long qualityMonitoringInstanceId) { this.qualityMonitoringInstanceId = qualityMonitoringInstanceId; } + + public String getTousseName() { + return tousseName; + } + + public void setTousseName(String tousseName) { + this.tousseName = tousseName; + } + + public String getMaterialName() { + return materialName; + + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r30556 -r30632 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 30556) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 30632) @@ -14920,6 +14920,9 @@ String extraQuery = ""; String extraJoin = ""; boolean showSterilizationInfo = false;//是否查询灭菌炉和炉次 + String extraTousseNameQuery = ""; + String extraTousseJoin = ""; + String whereTousseSql = ""; if(FORMNAMEOFADJ.equals(formName)){//从关联的灭菌记录获取 showSterilizationInfo = true; extraQuery = ",sr.frequency,s.name sterilizerName"; @@ -14928,6 +14931,11 @@ showSterilizationInfo = true; extraQuery = ",qmi.sterilizerDate,qmi.sterilizerFrequency frequency,qmi.sterilizerName"; requestParameters.put("jasperreportName", "routineMonitoringSteScopeReport.jasper"); + }else if(QualityMonitoringDefinition.SCOPE_MATERIAL_AND_TOUSSE.equals(scope) && "质量监测".equals(monitoringType)){ + extraTousseNameQuery = ",td.name tdName "; + extraTousseJoin = " left join TousseDefinition td on td.id=qmd.tousseDefinitionId "; + whereTousseSql = " and (qmd.haveMaterial is null or qmd.haveMaterial<>'是') "; + requestParameters.put("jasperreportName", "routineMonitoringWashScopeReport.jasper"); } if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate) && StringUtils.isNotBlank(formName)) { @@ -14952,13 +14960,15 @@ + " qmd.tousseName toussName,qmd.material material,qmd.amount amount,qmi.id qmiId,qmi.positionMsg positionMsg," + " fdi.name fdiName, fdi.orderNumber orderNum"+ fdioValueSql +",fiov.id,fi.createUserName,fdio.orderNumber " + extraQuery + + extraTousseNameQuery + " from QualityMonitoringInstance qmi join FormInstance fi on qmi.id=fi.id join FormDefinition fd on fi.formDefinition_id=fd.id " + " join QualityMonitoringDefinition qmdf on qmdf.id=fd.id join FormInstanceItem fiItem on qmi.id=fiItem.formInstance_id join FormDefinitionItem fdi on fiItem.formDefinitionItem_id=fdi.id" + " join FormDefinitionItemOption fdio on fdi.id=fdio.formDefinitionItem_id join QualityMonitoringGoods qmd on qmi.id=qmd.qualityMonitoringInstance_id " + extraJoin + + extraTousseJoin + " left join FormInstanceOptionValue fiov on fiov.formInstanceItem_id=fiItem.id " + " and fiov.definitionItemOption_id=fdio.id " - + " where (fdi.type = '" + FormDefinitionItem.TYPE_RADIO + "' or fdi.type ='" + FormDefinitionItem.TYPE_CHECK + "')" + " and " + whereSql + tousseNameSql; + + " where (fdi.type = '" + FormDefinitionItem.TYPE_RADIO + "' or fdi.type ='" + FormDefinitionItem.TYPE_CHECK + "')" + " and " + whereSql + tousseNameSql + whereTousseSql; addMonitoringItemBeanOptionRadioAndCHeck(list,sql,showSterilizationInfo); // 没有录入材料和包,有配了多选的细则的项 sql = " select " + dataSql + " dateStr," @@ -14978,11 +14988,13 @@ + " qmd.tousseName toussName,qmd.material material,qmd.amount amount,qmi.id qmiId,qmi.positionMsg positionMsg," + " fdi.name fdiName, fdi.orderNumber orderNum,fiItem.answer amswer,fi.createUserName " + extraQuery + + extraTousseNameQuery + " from QualityMonitoringInstance qmi join FormInstance fi on qmi.id=fi.id join FormDefinition fd on fi.formDefinition_id=fd.id " + " join QualityMonitoringDefinition qmdf on qmdf.id=fd.id join FormInstanceItem fiItem on qmi.id=fiItem.formInstance_id join FormDefinitionItem fdi on fiItem.formDefinitionItem_id=fdi.id " + " join QualityMonitoringGoods qmd on qmi.id=qmd.qualityMonitoringInstance_id " + extraJoin - + " where (fdi.type != '" + FormDefinitionItem.TYPE_RADIO + "' and fdi.type!='" + FormDefinitionItem.TYPE_CHECK + "')" + " and " + whereSql + tousseNameSql; + + extraTousseJoin + + " where (fdi.type != '" + FormDefinitionItem.TYPE_RADIO + "' and fdi.type!='" + FormDefinitionItem.TYPE_CHECK + "')" + " and " + whereSql + tousseNameSql + whereTousseSql; addMonitoringItemBeanOptionSingleResult(list,sql,showSterilizationInfo); // 没有录入材料和包,单一的结果 sql = " select " + dataSql + " dateStr," @@ -15000,13 +15012,15 @@ sql = " select " + dataSql + " dateStr," + " qmd.tousseName toussName,qmd.material material,qmd.amount amount,qmi.id qmiId,qmi.positionMsg positionMsg,fi.createUserName " + extraQuery + + extraTousseNameQuery + " from QualityMonitoringInstance qmi join FormInstance fi on qmi.id=fi.id " + " join FormDefinition fd on fi.formDefinition_id=fd.id join QualityMonitoringDefinition qmdf on qmdf.id=fd.id join QualityMonitoringGoods qmd on qmi.id=qmd.qualityMonitoringInstance_id " + " left join FormInstanceItem fiItem on qmi.id=fiItem.formInstance_id" + extraJoin + + extraTousseJoin + " where qmi.id not in (select formInstance_id from FormInstanceItem) " + " and qmi.type = '" + FormDefinition.FOMRTYPE_QUALITYMONITORING + "' " - + " and " + whereSql + tousseNameSql; + + " and " + whereSql + tousseNameSql + whereTousseSql; addMonitoringItemBeanQualityMonitoring(list,sql,showSterilizationInfo); } //是否无菌包质量抽查登记表,是则隐藏监测结果列 @@ -15025,11 +15039,19 @@ Integer qmCount = 0; // 材料或者包数量和 Integer qmTousseAndMaterialAmount = 0; - sql = " select count(0) count,sum(t.aAmount) total from QualityMonitoringInstance qmi join FormInstance fi on qmi.id=fi.id join FormDefinition fd on fi.formDefinition_id=fd.id " - + " join QualityMonitoringDefinition qmdf on qmdf.id=fd.id join ( select qmi.id qid,sum(qmd.amount) aAmount from QualityMonitoringInstance qmi,QualityMonitoringGoods qmd where qmi.id=qmd.qualityMonitoringInstance_id " - + tousseNameSql - + " group by qmi.id ) t on t.qid=qmi.id " - + " where " + whereSql; + if(StringUtils.isNotBlank(extraTousseNameQuery)){ + sql = " select sum(t.aAmount) count,sum(t.aAmount) total from QualityMonitoringInstance qmi join FormInstance fi on qmi.id=fi.id join FormDefinition fd on fi.formDefinition_id=fd.id " + + " join QualityMonitoringDefinition qmdf on qmdf.id=fd.id join ( select qmi.id qid,sum(qmd.amount) aAmount from QualityMonitoringInstance qmi,QualityMonitoringGoods qmd where qmi.id=qmd.qualityMonitoringInstance_id and (qmd.haveMaterial is null or qmd.haveMaterial<>'是') " + + tousseNameSql + + " group by qmi.id ) t on t.qid=qmi.id " + + " where " + whereSql; + }else{ + sql = " select count(0) count,sum(t.aAmount) total from QualityMonitoringInstance qmi join FormInstance fi on qmi.id=fi.id join FormDefinition fd on fi.formDefinition_id=fd.id " + + " join QualityMonitoringDefinition qmdf on qmdf.id=fd.id join ( select qmi.id qid,sum(qmd.amount) aAmount from QualityMonitoringInstance qmi,QualityMonitoringGoods qmd where qmi.id=qmd.qualityMonitoringInstance_id " + + tousseNameSql + + " group by qmi.id ) t on t.qid=qmi.id " + + " where " + whereSql; + } ResultSet rs = objectDao.executeSql(sql); try { while (rs.next()) { @@ -15942,6 +15964,8 @@ MonitoringItemBean bean = new MonitoringItemBean(); bean.setAmount(qmInstance.getAmount()); bean.setDateTime(dateStr); + bean.setMaterialName(qmInstance.getMaterial()); + bean.setTousseName(qmInstance.getTousseName()); String goodsName = qmInstance.getTousseName(); if (StringUtils.isBlank(goodsName)) { goodsName = qmInstance.getMaterial(); @@ -15961,6 +15985,8 @@ MonitoringItemBean bean = new MonitoringItemBean(); bean.setAmount(amount); bean.setDateTime(dateStr); + bean.setMaterialName(materialName); + bean.setTousseName(tousseName); String goodsName = tousseName; if (StringUtils.isBlank(goodsName)) { goodsName = materialName; @@ -16096,6 +16122,14 @@ String dataStr = null; String tousseName = rs.getString("toussName"); String materialName = rs.getString("material"); + if(StringUtils.isNotBlank(materialName)){ + try { + if(rs.findColumn("tdName") > 0){ + tousseName = rs.getString("tdName"); + } + } catch (Exception e) { + } + } int amount = rs.getInt("amount"); Long qmiId = rs.getLong("qmiId"); String positionMsg = rs.getString("positionMsg"); @@ -16269,8 +16303,12 @@ } String dataStr = rs.getString("dateStr"); String tousseName = rs.getString("toussName"); + String materialName = rs.getString("material"); + String goodName = null; if(StringUtils.isBlank(tousseName)){ - tousseName = rs.getString("material"); + goodName = materialName; + }else{ + goodName = tousseName; } int amount = rs.getInt("amount"); Long qmiId = rs.getLong("qmiId"); @@ -16285,7 +16323,7 @@ frequency = ConvertNumber.getNumberIntValue(rs.getObject("frequency"), null); sterilizerName = rs.getString("sterilizerName");; } - String key = tousseName + questionName + qmiId; + String key = goodName + questionName + qmiId; MonitoringItemBean mib = null; if(answersMap.containsKey(key)){ mib = answersMap.get(key); @@ -16294,7 +16332,9 @@ mib = new MonitoringItemBean(); mib.setAmount(amount); mib.setDateTime(dataStr); - mib.setGoodsName(tousseName); + mib.setTousseName(tousseName); + mib.setMaterialName(materialName); + mib.setGoodsName(goodName); mib.setQualityMonitoringInstanceId(qmiId); mib.setPositionMsg(positionMsg); mib.setOrderNumber(orderNum); @@ -16445,6 +16485,14 @@ String dataStr = null; String tousseName = rs.getString(2); String materialName = rs.getString(3); + if(StringUtils.isNotBlank(materialName)){ + try { + if(rs.findColumn("tdName") > 0){ + tousseName = rs.getString("tdName"); + } + } catch (Exception e) { + } + } int amount = rs.getInt(4); Long qmiId = rs.getLong(5); String positionMsg = rs.getString(6); @@ -16558,6 +16606,14 @@ String dataStr = rs.getString(1); String tousseName = rs.getString(2); String materialName = rs.getString(3); + if(StringUtils.isNotBlank(materialName)){ + try { + if(rs.findColumn("tdName") > 0){ + tousseName = rs.getString("tdName"); + } + } catch (Exception e) { + } + } int amount = rs.getInt(4); Long qmiId = rs.getLong(5); String positionMsg = rs.getString(6); Index: ssts-web/src/main/webapp/jasperRtp/routineMonitoringWashScopeReport.jrxml =================================================================== diff -u --- ssts-web/src/main/webapp/jasperRtp/routineMonitoringWashScopeReport.jrxml (revision 0) +++ ssts-web/src/main/webapp/jasperRtp/routineMonitoringWashScopeReport.jrxml (revision 30632) @@ -0,0 +1,473 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="40" splitType="Stretch"> + <textField> + <reportElement uuid="4dd1a765-4207-4079-8cf6-8b2dc4d91f3b" x="0" y="0" width="1100" height="40"/> + <textElement textAlignment="Center" verticalAlignment="Middle"> + <font size="14" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$P{title}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +