Index: ssts-web/src/main/webapp/homepage/menu.jsp =================================================================== diff -u -r17322 -r17383 --- ssts-web/src/main/webapp/homepage/menu.jsp (.../menu.jsp) (revision 17322) +++ ssts-web/src/main/webapp/homepage/menu.jsp (.../menu.jsp) (revision 17383) @@ -194,7 +194,7 @@ * 《消毒供应中心质量监测报表》菜单 */ var SSTS_QualityMonitoring_Menu_1 = true; - + SSTS_QualityMonitoring_Menu_1 = false; @@ -266,6 +266,17 @@ } /** + * 《器械消毒灭菌检查情况报表》权限 + */ +var SSTS_tousseSterilizationInspectSituation = true; + + SSTS_tousseSterilizationInspectSituation = false; + +if (!sstsConfig.enableTousseSterilizationInspectSituationReport) { + SSTS_tousseSterilizationInspectSituation = true; +} + +/** * 《设备维护报表》权限 */ var SSTS_DeviceMaintenanceReport = true; Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/tousseSterilizationInspectSituation.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/reportforms/tousseSterilizationInspectSituation.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/tousseSterilizationInspectSituation.jsp (revision 17383) @@ -0,0 +1,30 @@ +<%@ page contentType="text/html; charset=UTF-8"%> +<%@ include file="/common/taglibs.jsp"%> + + + +<%@ include file="/common/includeExtJsAndCss.jsp"%> + + + + + + + + + + +器械消毒灭菌检查情况报表 + + + + + + + +
+
+
+ + \ No newline at end of file Index: ssts-web/src/main/resources/systemset/operationDefine.xml =================================================================== diff -u -r17322 -r17383 --- ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 17322) +++ ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 17383) @@ -299,6 +299,7 @@ + Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/TousseSterilizationInspectSituationBean.java =================================================================== diff -u --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/TousseSterilizationInspectSituationBean.java (revision 0) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/TousseSterilizationInspectSituationBean.java (revision 17383) @@ -0,0 +1,100 @@ +package com.forgon.disinfectsystem.jasperreports.javabeansource; +/** + * 器械消毒灭菌检查情况报表的javaBean + * @author Chenjiaru 2017-03-14 + */ +public class TousseSterilizationInspectSituationBean { + + /** + * 列组1 + */ + private String columnGroup1 = "抽查内容"; + + /** + * 列组2 + */ + private String columnGroup2; + + /** + * 列组2的序号(用于排序) + */ + private Integer columnGroup2Sequence = 0; + + /** + * 列组3 + */ + private String columnGroup3; + + /** + * 数量 + */ + private Integer amount = 0; + + /** + * 行组 + */ + private String rowGroup; + + /** + * 行组的序号(用于排序) + */ + private Integer rowGroupSequence; + + public String getColumnGroup1() { + return columnGroup1; + } + + public void setColumnGroup1(String columnGroup1) { + this.columnGroup1 = columnGroup1; + } + + public String getColumnGroup2() { + return columnGroup2; + } + + public void setColumnGroup2(String columnGroup2) { + this.columnGroup2 = columnGroup2; + } + + public String getColumnGroup3() { + return columnGroup3; + } + + public void setColumnGroup3(String columnGroup3) { + this.columnGroup3 = columnGroup3; + } + + public String getRowGroup() { + return rowGroup; + } + + public void setRowGroup(String rowGroup) { + this.rowGroup = rowGroup; + } + + public Integer getAmount() { + return amount; + } + + public void setAmount(Integer amount) { + this.amount = amount; + } + + public Integer getColumnGroup2Sequence() { + return columnGroup2Sequence; + } + + public void setColumnGroup2Sequence(Integer columnGroup2Sequence) { + this.columnGroup2Sequence = columnGroup2Sequence; + } + + public Integer getRowGroupSequence() { + return rowGroupSequence; + } + + public void setRowGroupSequence(Integer rowGroupSequence) { + this.rowGroupSequence = rowGroupSequence; + } + + +} Index: ssts-web/src/main/webapp/jasperRtp/tousseSterilizationInspectSituation.jasper =================================================================== diff -u Binary files differ Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java =================================================================== diff -u -r17365 -r17383 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 17365) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 17383) @@ -50,6 +50,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseDeliverDetailVO; import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseMorrowSendBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseOverLoadBean; +import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseSterilizationInspectSituationBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseWorkLoadVO; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordEnteringBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordItemBean; @@ -480,6 +481,15 @@ public List getSterilizationAreaWorkLoadBeans( String monthSearch, String departCoding); /** + * 获取器械消毒灭菌检查情况报表的数据 + * @param monthSearch 查询年月 如: 2017-01 + * @param sterilizationType 灭菌程序 + * @param departCoding 科室编码 + * @return + */ + public List getTousseSterilizationInspectSituationBeans( + String monthSearch, String sterilizationType, String departCoding); + /** * 获取次日下送统计 报表的数据 * @param params * @return Index: ssts-web/src/main/webapp/disinfectsystem/config/gdsy/config.js =================================================================== diff -u -r17377 -r17383 --- ssts-web/src/main/webapp/disinfectsystem/config/gdsy/config.js (.../config.js) (revision 17377) +++ ssts-web/src/main/webapp/disinfectsystem/config/gdsy/config.js (.../config.js) (revision 17383) @@ -157,5 +157,7 @@ //自定义装配界面,装配数量的处理方式,0或者未定义:清空,1:表示保留当前值,2表示设置回默认值。其他值跟1一样,保留当前值 packAmountProcessTypeInDirectPackingView:2, // 自定义装配界面,灭菌日期的处理方式,,0或者未定义:清空,1:表示保留当前值,2表示设置回默认值。其他值跟1一样,保留当前值 - disinfectionDateProcessTypeInDirectPackingView:2 + disinfectionDateProcessTypeInDirectPackingView:2, + //是否启用器械消毒灭菌检查情况报表(true为启用,false或者不配置为不启用) + enableTousseSterilizationInspectSituationReport : true } \ No newline at end of file Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r17370 -r17383 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 17370) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 17383) @@ -169,6 +169,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseItemVO; import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseMorrowSendBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseOverLoadBean; +import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseSterilizationInspectSituationBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseWorkLoadVO; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordEnteringBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordEnteringTousse; @@ -13905,4 +13906,263 @@ } return list; } + + @Override + public List getTousseSterilizationInspectSituationBeans( + String monthSearch, String sterilizationType, String departCoding) { + List list = new ArrayList(); + if (StringTools.isNotBlank(monthSearch) + && StringTools.isNotBlank(sterilizationType) + && StringTools.isNotBlank(departCoding)) { + List sterilizerNameList= sterilizerManager.getAllSterilizerName(); //灭菌炉 + String total = "合计"; + String proportion = "比率(%)"; + sterilizerNameList.add(total); + sterilizerNameList.add(proportion); + + List sterilizationTypeList = new LinkedList(Arrays.asList(sterilizationType.split(","))); + List tagList = new LinkedList(); + String chemistryResultTag = "化学监测(次)"; + String physicsResultTag = "物理监测(次)"; + String biologyResultTag = "生物监测(次)"; + tagList.add(chemistryResultTag); + tagList.add(physicsResultTag); + tagList.add(biologyResultTag); + tagList.addAll(sterilizationTypeList); + String tousseAmountTypeTag = "出炉灭菌包(件)"; + tagList.add(tousseAmountTypeTag); + Integer rowGroupSequence = 0; + Map tempMap = new HashMap(); + for (String name : sterilizerNameList) { + ++ rowGroupSequence; + Integer columnGroup2Sequence = 0; + for (String tag : tagList) { + tag = tag.trim(); + ++ columnGroup2Sequence; + + //合格 + TousseSterilizationInspectSituationBean bean1 = new TousseSterilizationInspectSituationBean(); + bean1.setRowGroup(name); + bean1.setRowGroupSequence(rowGroupSequence); + bean1.setColumnGroup2(tag); + bean1.setColumnGroup2Sequence(columnGroup2Sequence); + bean1.setColumnGroup3(SterilizationRecord.MONITOR_RESULT_QUALIFIED); + tempMap.put(name + tag + SterilizationRecord.MONITOR_RESULT_QUALIFIED, bean1); + + //不合格 + TousseSterilizationInspectSituationBean bean2 = new TousseSterilizationInspectSituationBean(); + bean2.setRowGroup(name); + bean2.setRowGroupSequence(rowGroupSequence); + bean2.setColumnGroup2(tag); + bean2.setColumnGroup2Sequence(columnGroup2Sequence); + bean2.setColumnGroup3(SterilizationRecord.MONITOR_RESULT_UNQUALIFIED); + tempMap.put(name + tag + SterilizationRecord.MONITOR_RESULT_UNQUALIFIED, bean2); + } + } + Calendar c = Calendar.getInstance(); + c.setTime(ForgonDateUtils.safelyParseDate(monthSearch)); + int lastDay = c.getActualMaximum(Calendar.DATE); + + String betweenSql = dateQueryAdapter.dateAreaSql("sr.endDate", monthSearch + "-01", monthSearch + "-" +lastDay, true); + + String sql = + "select s.name,sr.chemistryResult,sr.physicsResult,sr.biologyResult,sr.sterilizationType " + + "from SterilizationRecord sr join Sterilizer s on s.id=sr.sterilizer_id " + + "where " + betweenSql + " and sr.orgUnitCoding='" + departCoding+ "' " + ; + ResultSet result1 = objectDao.executeSql(sql); + try { + while(result1.next()){ + String name = StringTools.defaultString(result1.getString("name")); + String chemistryResult = StringTools.defaultString(result1.getString("chemistryResult")); + String physicsResult = StringTools.defaultString(result1.getString("physicsResult")); + String biologyResult = StringTools.defaultString(result1.getString("biologyResult")); + String sterilizationType2 = StringTools.defaultString(result1.getString("sterilizationType")); + + //化学监测 + TousseSterilizationInspectSituationBean bean1 = null; + TousseSterilizationInspectSituationBean bean11 = null; //合计的行 + if (StringTools.equals(chemistryResult, SterilizationRecord.MONITOR_RESULT_UNQUALIFIED)) { + bean1 = tempMap.get(name + chemistryResultTag + SterilizationRecord.MONITOR_RESULT_UNQUALIFIED); + if (bean1 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean1.setAmount(bean1.getAmount() + 1); + } + bean11 = tempMap.get(total + chemistryResultTag + SterilizationRecord.MONITOR_RESULT_UNQUALIFIED); + if (bean11 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean11.setAmount(bean11.getAmount() + 1); + } + } else { + bean1 = tempMap.get(name + chemistryResultTag + SterilizationRecord.MONITOR_RESULT_QUALIFIED); + if (bean1 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean1.setAmount(bean1.getAmount() + 1); + } + bean11 = tempMap.get(total + chemistryResultTag + SterilizationRecord.MONITOR_RESULT_QUALIFIED); + if (bean11 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean11.setAmount(bean11.getAmount() + 1); + } + } + + //物理监测 + TousseSterilizationInspectSituationBean bean2 = null; + TousseSterilizationInspectSituationBean bean22 = null; + if (StringTools.equals(physicsResult, SterilizationRecord.MONITOR_RESULT_UNQUALIFIED)) { + bean2 = tempMap.get(name + physicsResultTag + SterilizationRecord.MONITOR_RESULT_UNQUALIFIED); + if (bean2 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean2.setAmount(bean2.getAmount() + 1); + } + bean22 = tempMap.get(total + physicsResultTag + SterilizationRecord.MONITOR_RESULT_UNQUALIFIED); + if (bean22 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean22.setAmount(bean22.getAmount() + 1); + } + } else { + bean2 = tempMap.get(name + physicsResultTag + SterilizationRecord.MONITOR_RESULT_QUALIFIED); + if (bean2 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean2.setAmount(bean2.getAmount() + 1); + } + bean22 = tempMap.get(total + physicsResultTag + SterilizationRecord.MONITOR_RESULT_QUALIFIED); + if (bean22 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean22.setAmount(bean22.getAmount() + 1); + } + } + + //生物监测 + TousseSterilizationInspectSituationBean bean3 = null; + TousseSterilizationInspectSituationBean bean33 = null; + if (StringTools.equals(biologyResult, SterilizationRecord.MONITOR_RESULT_UNQUALIFIED)) { + bean3 = tempMap.get(name + biologyResultTag + SterilizationRecord.MONITOR_RESULT_UNQUALIFIED); + if (bean3 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean3.setAmount(bean3.getAmount() + 1); + } + bean33 = tempMap.get(total + biologyResultTag + SterilizationRecord.MONITOR_RESULT_UNQUALIFIED); + if (bean33 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean33.setAmount(bean33.getAmount() + 1); + } + } else { + bean3 = tempMap.get(name + biologyResultTag + SterilizationRecord.MONITOR_RESULT_QUALIFIED); + if (bean3 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean3.setAmount(bean3.getAmount() + 1); + } + bean33 = tempMap.get(total + biologyResultTag + SterilizationRecord.MONITOR_RESULT_QUALIFIED); + if (bean33 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean33.setAmount(bean33.getAmount() + 1); + } + } + + //灭菌程序(三个监测只要有一个结果失败,则说明这个灭菌程序的灭菌结果也是失败) + TousseSterilizationInspectSituationBean bean4 = null; + TousseSterilizationInspectSituationBean bean44 = null; + if (StringTools.equals(chemistryResult, SterilizationRecord.MONITOR_RESULT_UNQUALIFIED) + || StringTools.equals(physicsResult, SterilizationRecord.MONITOR_RESULT_UNQUALIFIED) + || StringTools.equals(biologyResult, SterilizationRecord.MONITOR_RESULT_UNQUALIFIED)) { + bean4 = tempMap.get(name + sterilizationType2 + SterilizationRecord.MONITOR_RESULT_UNQUALIFIED); + if (bean4 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean4.setAmount(bean4.getAmount() + 1); + } + bean44 = tempMap.get(total + sterilizationType2 + SterilizationRecord.MONITOR_RESULT_UNQUALIFIED); + if (bean44 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean44.setAmount(bean44.getAmount() + 1); + } + } else { + bean4 = tempMap.get(name + sterilizationType2 + SterilizationRecord.MONITOR_RESULT_QUALIFIED); + if (bean4 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean4.setAmount(bean4.getAmount() + 1); + } + bean44 = tempMap.get(total + sterilizationType2 + SterilizationRecord.MONITOR_RESULT_QUALIFIED); + if (bean44 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean44.setAmount(bean44.getAmount() + 1); + } + } + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(result1); + } + + + sql = + "select 'success' type,s.name name,count(*) amount " + + "from TousseInstance ti " + + "join SterilizationRecord sr on sr.id=ti.sterilizationRecord_id join Sterilizer s on s.id=sr.sterilizer_id " + + "where " + betweenSql + " and sr.orgUnitCoding='" + departCoding+ "' group by s.name " + + "union all " + + "select 'failure' type,t1.name name,count(*) amount " + + "from(" + + "select s.name " + + "from SterilizationRecord sr join Sterilizer s on s.id=sr.sterilizer_id " + + "join sterilization_reviewed sre on sre.sterilizationRecord_id=sr.id " + + "join ReviewedBasket rb on rb.id=sre.reviewedBasket_id " + + "join TousseInstance ti on ti.reviewBasket_id=rb.id " + + "where sr.status='" + SterilizationRecord.STERILIZATION_STATUS_FAILURE + "' and ti.sterilizationRecord_id is null " + + "and " + betweenSql + " and sr.orgUnitCoding='" + departCoding+ "' " + + "union all " + + "select s.name " + + "from SterilizationRecord sr join Sterilizer s on s.id=sr.sterilizer_id " + + "join sterilization_tousseInstance st on st.sterilizationRecord_id=sr.id " + + "join TousseInstance ti on ti.id=st.tousseInstance_id " + + "where sr.status='" + SterilizationRecord.STERILIZATION_STATUS_FAILURE + "' and ti.sterilizationRecord_id is null " + + "and " + betweenSql + " and sr.orgUnitCoding='" + departCoding+ "' " + + ") t1 group by t1.name " + ; + + ResultSet result2 = objectDao.executeSql(sql); + try { + while(result2.next()){ + String type = StringTools.defaultString(result2.getString("type")); + String name = StringTools.defaultString(result2.getString("name")); + int amount = result2.getInt("amount"); + //生物监测 + TousseSterilizationInspectSituationBean bean5 = null; + TousseSterilizationInspectSituationBean bean55 = null; + if (StringTools.equals(type, "success")) { + bean5 = tempMap.get(name + tousseAmountTypeTag + SterilizationRecord.MONITOR_RESULT_QUALIFIED); + if (bean5 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean5.setAmount(bean5.getAmount() + amount); + } + bean55 = tempMap.get(total + tousseAmountTypeTag + SterilizationRecord.MONITOR_RESULT_QUALIFIED); + if (bean55 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean55.setAmount(bean55.getAmount() + amount); + } + } else { + bean5 = tempMap.get(name + tousseAmountTypeTag + SterilizationRecord.MONITOR_RESULT_UNQUALIFIED); + if (bean5 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean5.setAmount(bean5.getAmount() + amount); + } + bean55 = tempMap.get(total + tousseAmountTypeTag + SterilizationRecord.MONITOR_RESULT_UNQUALIFIED); + if (bean55 != null) { //正常情况下不会出现null的,为了保险还是处理一下空指针,为空不处理 + bean55.setAmount(bean55.getAmount() + amount); + } + } + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(result2); + } + + //计算比率 + for (String tag : tagList) { + tag = tag.trim(); + TousseSterilizationInspectSituationBean qualifiedBean = tempMap.get(total + tag + SterilizationRecord.MONITOR_RESULT_QUALIFIED); //正常情况这里不会出现空指针的,所以下面没有处理空指针 + TousseSterilizationInspectSituationBean unqualifiedBean = tempMap.get(total + tag + SterilizationRecord.MONITOR_RESULT_UNQUALIFIED); + Integer qualifiedTotal = qualifiedBean.getAmount(); //合格总数 + Integer unqualifiedTotal = unqualifiedBean.getAmount(); //不合格总数 + + TousseSterilizationInspectSituationBean proportionBean1= tempMap.get(proportion + tag + SterilizationRecord.MONITOR_RESULT_QUALIFIED); + TousseSterilizationInspectSituationBean proportionBean2= tempMap.get(proportion + tag + SterilizationRecord.MONITOR_RESULT_UNQUALIFIED); + + int qualifiedProportion = new BigDecimal(qualifiedTotal) + .divide(new BigDecimal(qualifiedTotal + unqualifiedTotal),2,RoundingMode.HALF_UP) + .multiply(new BigDecimal(100)).intValue(); + + proportionBean1.setAmount(qualifiedProportion); + proportionBean2.setAmount(100 - qualifiedProportion); + } + + for (Entry entry : tempMap.entrySet()) { + list.add(entry.getValue()); + } + } + return list; + } } Index: ssts-web/src/main/webapp/jasperRtp/tousseSterilizationInspectSituation.jrxml =================================================================== diff -u --- ssts-web/src/main/webapp/jasperRtp/tousseSterilizationInspectSituation.jrxml (revision 0) +++ ssts-web/src/main/webapp/jasperRtp/tousseSterilizationInspectSituation.jrxml (revision 17383) @@ -0,0 +1,324 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="38" splitType="Stretch"> + <textField> + <reportElement uuid="09ae2d9b-5d94-41a5-8263-089742dd9ca2" x="0" y="0" width="273" height="38"/> + <textElement> + <font size="14" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$P{title}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/tousseSterilizationInspectSituation.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/reportforms/tousseSterilizationInspectSituation.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/tousseSterilizationInspectSituation.js (revision 17383) @@ -0,0 +1,179 @@ +var entityName = "器械消毒灭菌检查情况报表"; +var form; + +/** + * 加载报表的数据 + * + */ +var myMask; +function reloadReport(){ + if (!form.getForm().isValid()) { + showResult('请正确填写表单各值'); + return false; + } + + var monthSearch= $Id('monthSearch').value; + var sterilizationType= $Id('sterilizationType').value; + var departCoding = Ext.getCmp('querySupplyRoom').getValue(); + myMask = new Ext.LoadMask(Ext.getBody(), { + msg: '正在加载,请稍候!', + removeMask: true + }); + myMask.show(); + window.open(WWWROOT + "/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do" + + "?jasperreportName=tousseSterilizationInspectSituation.jasper&reportName=tousseSterilizationInspectSituation" + + "&monthSearch=" + monthSearch + + "&sterilizationType=" + sterilizationType + + "&departCoding=" + departCoding, + 'thisIframe', '_self'); +} + + +Ext.onReady(function() { + Ext.QuickTips.init(); + + //“供应室combo”的store + var supplyRoomStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/supplyRoomConfigAction!loadSupplyRoomConfigRoom.do', + method : 'POST' + }), + baseParams :{type:"12"}, + reader : new Ext.data.JsonReader({ + fields : [ + {name : 'id', mapping : 'id'}, + {name : 'departCode', mapping : 'departId'}, + {name : 'name', mapping : 'name'} + ] + }), + listeners:{ + load :function (thiz,records,options ){ + if(records.length >0){ + Ext.getCmp('querySupplyRoom').setValue(records[0].data.departCode); + } + } + } + }); + + //“灭菌程序combo”的store + var sterilizationTypeStore = new Ext.data.SimpleStore({ + fields : [ 'id','sterilizationType' ], + url : WWWROOT + '/disinfectSystem/baseData/sterilizerAction!getSterilizerType.do', + listeners : { + beforeload : function(thiz, options){ + thiz.baseParams['type'] = 'sterilizationRecord'; + } + } + }); + + form = new Ext.form.FormPanel({ + title : entityName, + region : 'north', + labelAlign : 'right', + buttonAlign : 'center', + collapsible : true, + collapseMode : 'mini', + split : true, + border : 0, + frame : true, + bodyStyle : 'padding:0px auto;margin:0px', + height : 105, + items : [{ + layout : 'column', + height : 40, + labelWidth : 70, + items : [{ + width : 180, + layout : 'form', + labelWidth : 60, + items : [new Ext.form.DateField({ + id:'monthSearch', + name : 'monthSearch', + fieldLabel : '年月', + readOnly : false, + allowBlank : false, + format:'Y-m', + altFormats:'Y-m|Y-n|y-n|y-m|y-m|y-n|Y-n|Y-m|Ym|Yn|yn|ym|ym|yn|Yn|Ym|Y/m|Y/n|y/n|y/m|y/m|y/n|Y/n|Y/m', + value : new Date(), + anchor : '95%' + })] + },{ + width : 230, + layout : 'form', + items : [{ + xtype : 'multiSelect', + fieldLabel : "灭菌程序", + valueField : 'sterilizationType', + displayField : 'sterilizationType', + store : sterilizationTypeStore, + triggerAction : 'all', + name : "sterilizationType", + id : "sterilizationType", + allowBlank : false, + readOnly:true, + anchor : '95%' + }] + },{ + width : 250, + layout : 'form', + labelSeparator : '选择供应室:', + items : [{ + xtype : 'combo', + id : 'querySupplyRoom', + name : 'querySupplyRoom', + valueField : 'departCode', + displayField : 'name', + allowBlank : false, + editable : false, + store : supplyRoomStore, + forceSelection : true, + mode : 'local', + triggerAction : 'all', + anchor : '95%', + listeners : { + render : function(_this) { + supplyRoomStore.load(); + } + } + }] + }] + }], + buttons:[{ + xtype : 'button', + text : '查询', + minWidth : 70, + iconCls : 'icon_search', + handler : function() { + reloadReport(); + } + },{ + xtype : 'button', + text : '重置', + minWidth : 70, + iconCls : 'icon_set', + handler : function() { + $Id('monthSearch').value = ""; + } + }] + }); + + + var reportForm = new Ext.Panel({ + frame:false,//渲染面板 + autoScroll:true,//自动显示滚动条 + collapsible:true,//允许展开和收缩 + bodyPadding:5, + html:'' + + }); + + var viewport = new Ext.Viewport({ + layout : 'border', + items : [form, { + region : 'center', + margins : '0 0 0 0', + layout : 'fit', + items : reportForm + }] + }); +}); \ No newline at end of file Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/barcode/service/BarcodeManager.java =================================================================== diff -u -r16834 -r17383 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/barcode/service/BarcodeManager.java (.../BarcodeManager.java) (revision 16834) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/barcode/service/BarcodeManager.java (.../BarcodeManager.java) (revision 17383) @@ -32,6 +32,10 @@ */ public BarcodeDevice getBarcodeByBarcode(String barcode); + /** + * 获取所有灭菌程序. + * @return + */ public List getSterilizationType(); public List getRinserByBarcode(); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/sterilizer/action/SterilizerAction.java =================================================================== diff -u -r16827 -r17383 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/sterilizer/action/SterilizerAction.java (.../SterilizerAction.java) (revision 16827) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/sterilizer/action/SterilizerAction.java (.../SterilizerAction.java) (revision 17383) @@ -258,6 +258,10 @@ } } + /** + * 获取指定的灭菌炉的灭菌程序,如果不指定将返回所有灭菌程序 + * return 返回格式:[[灭菌程序id1,灭菌程序名称1],[灭菌程序id2,灭菌程序名称2],[灭菌程序id3,灭菌程序名称3]...] + */ public void getSterilizerType() { List list = barcodeManager.getSterilizationType(); String sterilizerName = StrutsParamUtils.getPraramValue( Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r17365 -r17383 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 17365) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 17383) @@ -82,6 +82,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.SterilizationRecordItenBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.SummaryUseRecordForGoodsVO; import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseOverLoadBean; +import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseSterilizationInspectSituationBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordItemBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordOperatorBean; @@ -334,6 +335,17 @@ .getSterilizationAreaWorkLoadBeans(monthSearch, departCoding); return list; } + } else if (reportName.equals("tousseSterilizationInspectSituation")) { //器械消毒灭菌检查情况报表 + String monthSearch = StrutsParamUtils.getPraramValue("monthSearch", ""); + String sterilizationType = StrutsParamUtils.getPraramValue("sterilizationType", ""); + String departCoding = StrutsParamUtils.getPraramValue("departCoding", ""); + if (StringTools.isNotBlank(monthSearch) + && StringTools.isNotBlank(sterilizationType) + && StringTools.isNotBlank(departCoding)) { + List list = jasperReportManager + .getTousseSterilizationInspectSituationBeans(monthSearch, sterilizationType, departCoding); + return list; + } } else if (reportName.equals("packingUnqualifieReport")) {// 包装区工作量不合格率 return getPackingFdDateSource(); } else if (reportName.equals("deviceMaintenance")) {// 设备维护报表 @@ -1146,6 +1158,13 @@ + (StringUtils.isNotBlank(monthSearch) ? "(" + monthSearch + ")" : "")); return map; + } else if (reportName.equals("tousseSterilizationInspectSituation")) { //器械消毒灭菌检查情况报表 + String monthSearch = StrutsParamUtils.getPraramValue("monthSearch", ""); + map.put("title", + "器械消毒灭菌检查情况报表" + + (StringUtils.isNotBlank(monthSearch) ? "(" + + monthSearch + ")" : "")); + return map; } else if (reportName.equals("packingUnqualifieReport")) { String monthSearch = StrutsParamUtils.getPraramValue("month", ""); map.put("title", "包装区工作量统计表" Index: ssts-web/src/main/webapp/homepage/menuconfigure.js =================================================================== diff -u -r17381 -r17383 --- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 17381) +++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 17383) @@ -475,6 +475,7 @@ {hidden :SSTS_PackingUnqualifieReport,text:"包装区工作量及不合格率月报",href:WWWROOT+'/disinfectsystem/reportforms/packingUnqualifieReportView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_SterilizationWorkloadReport,text:"灭菌区工作量及不合格率月报",href:WWWROOT+'/disinfectsystem/reportforms/sterilizationWorkloadReportView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_sterilizationAreaWorkLoadReport,text:"灭菌区工作量统计报表",href:WWWROOT+'/disinfectsystem/reportforms/sterilizationAreaWorkLoadView.jsp',hrefTarget:linkTarget,leaf:true}, + {hidden :SSTS_tousseSterilizationInspectSituation,text:"器械消毒灭菌检查情况报表",href:WWWROOT+'/disinfectsystem/reportforms/tousseSterilizationInspectSituation.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_DeviceMaintenanceReport,text:"设备维护报表",href:WWWROOT+'/disinfectsystem/reportforms/deviceMaintenanceView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_QualityMonitoringReport,text:"质量监测报表",href:WWWROOT+'/disinfectsystem/reportforms/qualityMonitoringView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_QualityMonitoringReport,text:qualityMonthViewName,href:WWWROOT+'/disinfectsystem/reportforms/qualityMonitoringMonthView.jsp',hrefTarget:linkTarget,leaf:true},