Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r19575 -r19671 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 19575) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 19671) @@ -176,6 +176,9 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.SignGoodsItemVo; import com.forgon.disinfectsystem.jasperreports.javabeansource.StatisticalWorkload; import com.forgon.disinfectsystem.jasperreports.javabeansource.SterilizationAreaWorkLoadBean; +import com.forgon.disinfectsystem.jasperreports.javabeansource.SterilizationRecordItenBean; +import com.forgon.disinfectsystem.jasperreports.javabeansource.SterilizerQualiyBean; +import com.forgon.disinfectsystem.jasperreports.javabeansource.SterilizerQualiyBean_Child; import com.forgon.disinfectsystem.jasperreports.javabeansource.SterilizingStove; import com.forgon.disinfectsystem.jasperreports.javabeansource.SterilizingStove_child; import com.forgon.disinfectsystem.jasperreports.javabeansource.SummaryUseRecordForGoodsVO; @@ -14648,7 +14651,7 @@ + " and fd.formName = '" + inspectItem + "'" + " and fd.formType = '" + monitoringType + "'" + " and fi.orgUnitCoding = '"+ orgUnitCoding + "'" - + " and (fiItem.id in (select formInstanceItem_id from FormInstanceOptionValue)) " + + " and (fiItem.id in (select formInstanceItem_id from FormInstanceOptionValue )) " + " and qmi.dateTime between " + dateQueryAdapter.dateAdapter(startTime) + "and "+dateQueryAdapter.dateAdapter(endTime) + " group by " + dateQueryAdapter.dateConverAdapter3("qmi.dateTime","day") + " ,fdi.name "; @@ -18155,4 +18158,275 @@ calendar.set(Calendar.MONTH, month-1); return calendar.getActualMaximum(Calendar.DATE); } + @Override + public List getSterilizerQualiyDataSource(Map paramMap){ + String reportType = paramMap.get("reportTypeStr"); + if("typeDetail".equals(reportType)){ + return getSterilizerQualiyDataDetail(paramMap); + }else { + return getSterilizerQualiyDataTotal(paramMap); + } + } + private List getSterilizerQualiyDataDetail(Map paramMap) { + List list = new ArrayList(); + String startDate = paramMap.get("startDate"); + String endDate = paramMap.get("endDate"); + + String querySupplyRoom = paramMap.get("querySupplyRoom"); + String sterilizerName =paramMap.get("sterilizerName"); + String sendDepart = paramMap.get("sendDepart"); + String frequency = paramMap.get("frequency"); + + String sql = " select ti.sterilizerName,ti.sterileFrequency,ti.tousseName,ti.locationForDisplay," + + " ti.sterileEndTime,ti.sterilizationUser,count(*) amount from tousseinstance ti "; + + String endSql = " group by ti.sterilizerName,ti.sterileFrequency,ti.tousseName," + +" ti.locationForDisplay,ti.sterileEndTime,ti.sterilizationUser,ti.status" + +" order by ti.sterileEndTime desc"; + if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) { + + sql += " where ti.sterileStartTime between '" + + startDate+" 00:00:00'" + + " and '" + endDate+" 23:59:59'" + + " and ti.status <> '"+TousseInstance.STATUS_REVIEWED+"' " + ; + + // 器械包的供应室 + if(StringUtils.isNotBlank(querySupplyRoom)){ + sql += " and ti.orgUnitCoding = '" + querySupplyRoom + "'"; + } + // 送货科室 + if(StringUtils.isNotBlank(sendDepart)){ + sql += " and ti.locationForDisplay = '" + sendDepart + "'"; + } + if(StringUtils.isNotBlank(sterilizerName) + && !StringUtils.equals(Constants.STR_ALL, sterilizerName)){ + sql += " and ti.sterilizerName = '" + sterilizerName + "'"; + } + if(StringUtils.isNotBlank(frequency)){ + sql += " and ti.sterileFrequency = '" + frequency + "'"; + } + sql += endSql; + ResultSet resultSet = objectDao.executeSql(sql); + list = (List)getSterilizerQualiyBeanList(resultSet); + } + // 获取没有添加包的灭菌记录 + startDate = dateQueryAdapter.dateAdapter(startDate + " 00:00:00"); + endDate = dateQueryAdapter.dateAdapter(endDate + " 23:59:59"); + sql = " where po.startDate between " + startDate + " and " + endDate + + " and po.amount = 0 "; + List srRecords = (List)objectDao.findBySql(SterilizationRecord.class.getSimpleName(), sql); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if(CollectionUtils.isNotEmpty(srRecords)){ + for(SterilizationRecord sr : srRecords){ + SterilizerQualiyBean bean = new SterilizerQualiyBean(); + bean.setSterilizerName(sr.getSterilizerName()); + bean.setFrequency(sr.getFrequency()); + if(sr.getStartDate() != null){ + bean.setSterilizationFinishTime(sdf.format(sr.getStartDate())); + } + SterilizerQualiyBean_Child child = new SterilizerQualiyBean_Child(); + child.setTousseAmount(0); + List clist = new ArrayList(); + clist.add(child); + bean.setChildrens(clist); + list.add(bean); + } + } + Collections.sort(list, + new Comparator() { + @Override + public int compare(SterilizerQualiyBean o1, + SterilizerQualiyBean o2) { + String str1 = o1.getSterilizationFinishTime(); + String str2 = o2.getSterilizationFinishTime(); + if(str1== null || str2 == null){ + return 1; + }else{ + return str2.compareTo(str1); + } + } + }); + return list; + } + private List getSterilizerQualiyBeanList(ResultSet rs){ + List list = new ArrayList(); + Map map = new HashMap(); + if( rs != null){ + try { + while (rs.next()) { +// SterilizerQualiyBean bean = new SterilizerQualiyBean(); + // 从数据库里面查出来的数据依次是:灭菌炉、炉次、器械包名称、发货科室、灭菌时间、灭菌员、数量 + // 有灭菌炉,炉次,时间组成key + String key = rs.getString(1) + rs.getString(2) + rs.getString(5); + if(rs.getString(1) == null){ + continue; + } + SterilizerQualiyBean_Child child = new SterilizerQualiyBean_Child(); + + String str = rs.getString(3); + if(StringUtils.isNotBlank(str)){ + child.setTousseName(str); + } + str = rs.getString(4); + if(StringUtils.isNotBlank(str)){ + child.setSendDepart(str); + } + str = rs.getString(6); + if(StringUtils.isNotBlank(str)){ + child.setSterilizationUser(str); + } + child.setTousseAmount(rs.getInt(7)); + SterilizerQualiyBean bean; + if(map.containsKey(key)){ + bean = map.get(key); + }else{ + bean = new SterilizerQualiyBean(); + } + str = rs.getString(1); + if(StringUtils.isNotBlank(str)){ + bean.setSterilizerName(str); + } + str = rs.getString(2); + if(StringUtils.isNotBlank(str)){ + try{ + bean.setFrequency(Integer.valueOf(str)); + }catch(Exception e){ + e.printStackTrace(); + } + } + str = rs.getString(5); + if(StringUtils.isNotBlank(str)){ + bean.setSterilizationFinishTime(str); + } + if(bean.getChildrens() != null){ + bean.getChildrens().add(child); + }else{ + bean.setChildrens(new ArrayList()); + bean.getChildrens().add(child); + } + map.put(key, bean); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + } + for(SterilizerQualiyBean bean : map.values()){ + list.add(bean); + } + return list; + } + private List getSterilizerQualiyDataTotal(Map paramMap){ + List list = new ArrayList(); + String startDate = paramMap.get("startDate"); + String endDate = paramMap.get("endDate"); + startDate = dateQueryAdapter.dateAdapter(startDate + " 00:00:00"); + endDate = dateQueryAdapter.dateAdapter(endDate + " 23:59:59"); + String sql = " where po.startDate between " + startDate + " and " + endDate ; + List srRecords = (List)objectDao.findBySql(SterilizationRecord.class.getSimpleName(), sql); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if(CollectionUtils.isNotEmpty(srRecords)){ + for(SterilizationRecord sr : srRecords){ + SterilizerQualiyBean bean = new SterilizerQualiyBean(); + String srName = sr.getSterilizerName(); + String startData = sdf.format(sr.getStartDate()); + String freStr = sr.getFrequency().toString(); + String qmSql = " where ((po.sterilizerName = '" + srName + "'" + + " and po.sterilizerDate = '" + startData + "'" + + " and po.sterilizerFrequency = '" + freStr + "'" + + " ) " + + " or po.sterilizationRecordId = '" + sr.getId() + "')" + + " and po.formDefinition.formType = '" + FormDefinition.FOMRTYPE_QUALITYMONITORING + "'"; + + List qms = (List)objectDao.findBySql(QualityMonitoringInstance.class.getSimpleName(), qmSql); + String qmMSg = ""; + if(CollectionUtils.isNotEmpty(qms)){ + qmMSg = getQmiMsg(qms); + } + bean.setSterilizerName(srName); + bean.setFrequency(sr.getFrequency()); + bean.setSterilizationFinishTime(startData); + bean.setAmount(sr.getAmount()); + bean.setSterilizerUser(sr.getSterilizationUser()); + if(StringUtils.isBlank(qmMSg)){ + bean.setQualityRssult("合格"); + }else{ + bean.setQualityRssult("不合格"); + } + bean.setQualityMsg(qmMSg); + list.add(bean); + } + } + Collections.sort(list, + new Comparator() { + @Override + public int compare(SterilizerQualiyBean o1, + SterilizerQualiyBean o2) { + String str1 = o1.getSterilizationFinishTime(); + String str2 = o2.getSterilizationFinishTime(); + if(str1== null || str2 == null){ + return 1; + }else{ + return str2.compareTo(str1); + } + } + }); + return list; + } + // 获取质量监测信息,包括包,登记的信息等 + private String getQmiMsg(List qms){ + String msg = ""; + Integer index = 1; + if(CollectionUtils.isNotEmpty(qms)){ + for(QualityMonitoringInstance qmi : qms){ + msg += index + "、 " + qmi.getName() + " : "; + // 获取包和材料登记的信息 + String sql = " select qmd.tousseName,qmd.material,qmd.amount from QualityMonitoringInstance qmi join FormInstance fi on qmi.id=fi.id " + + " join FormDefinition fd on fi.formDefinition_id=fd.id " + + " join QualityMonitoringGoods qmd on qmi.id=qmd.qualityMonitoringInstance_id " + + " where qmi.id = " + qmi.getId() ; + ResultSet rs = objectDao.executeSql(sql); + try { + while(rs.next()){ + String tousseName = rs.getString(1); + String material = rs.getString(2); + String amount = rs.getString(3); + String goodsName = tousseName; + if(StringUtils.isBlank(goodsName)){ + goodsName = material; + } + msg += goodsName + "*" + amount + ", "; + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + // 获取细则和结果数据 + sql = " select fiItem.answer amswer,fdi.name from " + + " QualityMonitoringInstance qmi join FormInstance fi on qmi.id=fi.id join FormDefinition fd on fi.formDefinition_id=fd.id " + + " join FormInstanceItem fiItem on qmi.id=fiItem.formInstance_id join FormDefinitionItem fdi on fiItem.formDefinitionItem_id=fdi.id " + + " where qmi.id=" + qmi.getId() ; + ResultSet result = objectDao.executeSql(sql); + try { + while(result.next()){ + String answer = result.getString(1); + String itemName = result.getString(2); + if(StringUtils.isNotBlank(answer)){ + msg += itemName + ":" + answer + ", "; + } + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(result); + } + index++; + } + } + return msg; + } + } Index: ssts-web/src/main/webapp/jasperRtp/SterilizerQualityReportTotal.jrxml =================================================================== diff -u --- ssts-web/src/main/webapp/jasperRtp/SterilizerQualityReportTotal.jrxml (revision 0) +++ ssts-web/src/main/webapp/jasperRtp/SterilizerQualityReportTotal.jrxml (revision 19671) @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="38" splitType="Stretch"> + <textField> + <reportElement uuid="3ef5ef90-ca6c-42eb-855c-ff2336f47b62" x="0" y="0" width="970" height="38"/> + <textElement textAlignment="Center" verticalAlignment="Middle"> + <font size="14" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$P{title}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: ssts-web/src/main/webapp/jasperRtp/SterilizerQualityReportTotal.jasper =================================================================== diff -u Binary files differ Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/SterilizerQualiyBean_Child.java =================================================================== diff -u --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/SterilizerQualiyBean_Child.java (revision 0) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/SterilizerQualiyBean_Child.java (revision 19671) @@ -0,0 +1,41 @@ +package com.forgon.disinfectsystem.jasperreports.javabeansource; + +/** + * 灭菌质量信息javaBean + * @author JC 2017-08-21 + * + */ +public class SterilizerQualiyBean_Child { + // 灭菌员 + private String sterilizationUser; + // 器械包名字 + private String tousseName; + // 器械包数量 + private Integer tousseAmount; + // 送货科室 + private String sendDepart; + public String getSterilizationUser() { + return sterilizationUser; + } + public void setSterilizationUser(String sterilizationUser) { + this.sterilizationUser = sterilizationUser; + } + public String getTousseName() { + return tousseName; + } + public void setTousseName(String tousseName) { + this.tousseName = tousseName; + } + public Integer getTousseAmount() { + return tousseAmount; + } + public void setTousseAmount(Integer tousseAmount) { + this.tousseAmount = tousseAmount; + } + public String getSendDepart() { + return sendDepart; + } + public void setSendDepart(String sendDepart) { + this.sendDepart = sendDepart; + } +} Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r19566 -r19671 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 19566) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 19671) @@ -322,6 +322,10 @@ }else if(reportName.equals("SterilizationRecord")){ // 灭菌记录信息 return getSterilizationRecordDataSource(); } + else if(reportName.equals("SterilizerQualityReport")){ // 灭菌物品质量监测统计报表 + Map params = StrutsParamUtils.getParameters(); + return jasperReportManager.getSterilizerQualiyDataSource(params); + } else if (reportName.equals("departSatisfyReport")) {// 满意度调查报表 return getSatisfyDataSource(); } else if (reportName.equals("quotaReprot")) {// 十八项指标 @@ -1254,7 +1258,13 @@ String endTime = StrutsParamUtils.getPraramValue("endDate", ""); map.put("title", "灭菌记录信息"); map.put("createDate", " " + startTime + " ~ " + endTime ); + }else if(reportName.equals("SterilizerQualityReport")){ + String startTime = StrutsParamUtils.getPraramValue("startDate", ""); + String endTime = StrutsParamUtils.getPraramValue("endDate", ""); + map.put("title", "灭菌物品质量监测统计"); + map.put("createDate", " " + startTime + " ~ " + endTime ); }else if (reportName.equals("QualityMonitoring")) {// 质量监测 + return getQualityMonitoringParamet(); }else if(reportName.equals("formInstanceReport")){ String title = StrutsParamUtils.getPraramValue("title", ""); Index: ssts-web/src/main/webapp/homepage/menuconfigure.js =================================================================== diff -u -r19414 -r19671 --- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 19414) +++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 19671) @@ -517,7 +517,8 @@ {hidden :SSTS_SterilizationRecordInfoReport,text:"灭菌情况报表",href:WWWROOT+'/disinfectsystem/reportforms/sterilizationRecordInfoView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :!sstsConfig.enableTousseOverloadReport,text:"器械包实际负载组合统计报表",href:WWWROOT+'/disinfectsystem/reportforms/tousseOverLoad.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :!sstsConfig.enableTousseMorrowSend,text:"器械包次日下送率统计报表",href:WWWROOT+'/disinfectsystem/reportforms/tousseMorrowSend.jsp',hrefTarget:linkTarget,leaf:true}, - {hidden :!sstsConfig.enableNurseWorkload,text:"护理工作质量指标报表",href:WWWROOT+'/disinfectsystem/reportforms/nurseWorkload.jsp',hrefTarget:linkTarget,leaf:true} + {hidden :!sstsConfig.enableNurseWorkload,text:"护理工作质量指标报表",href:WWWROOT+'/disinfectsystem/reportforms/nurseWorkload.jsp',hrefTarget:linkTarget,leaf:true}, + {hidden :!sstsConfig.showSterilizerQualityReport,text:"灭菌物品质量监测统计报表",href:WWWROOT+'/disinfectsystem/reportforms/sterilizerQuality.jsp',hrefTarget:linkTarget,leaf:true} ] },{ text:"财务核算及物品发放报表", Index: ssts-web/src/main/webapp/disinfectsystem/config/dgszyy/config.js =================================================================== diff -u -r19627 -r19671 --- ssts-web/src/main/webapp/disinfectsystem/config/dgszyy/config.js (.../config.js) (revision 19627) +++ ssts-web/src/main/webapp/disinfectsystem/config/dgszyy/config.js (.../config.js) (revision 19671) @@ -141,5 +141,7 @@ //是否限制同一个科室只能在科室申领那里申请一张申请单(为true需要限制,为false或者没配都不限制) limitApply : true, // 清洗篮筐有顺序 - haveWashOrder : true + haveWashOrder : true, + // 是否显示灭菌物品质量监测统计报表 + showSterilizerQualityReport : true } \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/sterilizerQuality.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/reportforms/sterilizerQuality.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/sterilizerQuality.jsp (revision 19671) @@ -0,0 +1,49 @@ +<%@ page contentType="text/html; charset=UTF-8"%> +<%@ include file="/common/taglibs.jsp"%> + + + +<%@ include file="/common/includeExtJsAndCss.jsp"%> +<%@ include file="/common/includeExtJs4_2.jsp"%> + + + + + + + + + + + +灭菌情况报表 + + + + + + + +
+
+
+ + +
+ + +
+ + \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/sterilizerQuality.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/reportforms/sterilizerQuality.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/sterilizerQuality.js (revision 19671) @@ -0,0 +1,317 @@ +var entityName = "灭菌物品质量监测统计报表"; +var grid; + +var rd = new Ext.data.JsonReader( { + fields : [ + {name : 'id'}, + {name : 'departId'}, + {name : 'name'} + + ] +}); + +// 申请科室Store +var sendDepartJsonStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/supplyRoomConfigAction!getDepartNameJson.do', + method : 'POST' + }), + reader : new Ext.data.JsonReader({ + root : 'data' + },[ + {name : 'id',mapping : 'id'}, + {name : 'name',mapping : 'name'} + ] + ) +}); + +var supplyRoomStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/supplyRoomConfigAction!loadSupplyRoomConfigRoom.do', + method : 'POST' + }), + baseParams :{type:"12"}, + reader : rd, + listeners :{ + 'load' : function(thiz,records,options){ + if(records.length > 0){ + var record = records[0]; + Ext.getCmp('querySupplyRoom').setValue(record.get('departId')); + } + } + } +}); + +var reportTypeStore = new Ext.data.SimpleStore( { + fields : [ 'value' ], + data : [['明细'], ['汇总']] +}); + +var myMask; +Ext.onReady(function() { + Ext.QuickTips.init(); + // 记录cookie(3步) + function reloadReport(){ + var startDate = $Id('startDate').value; + var endDate = $Id('endDate').value; + var sterilizerName = ""; + var querySupplyRoom = Ext.getCmp('querySupplyRoom').getValue(); + var sendDepart = ""; + var frequency = ""; + var reportType = Ext.getCmp('reportType').getValue(); + + var reportTypeStr = "typeDetail"; + var reportFile = "SterilizerQualityReport.jasper"; + if(reportType == "汇总"){ + reportTypeStr = "typeSum"; + reportFile = "SterilizerQualityReportTotal.jasper"; + } + myMask = new Ext.LoadMask(Ext.getBody(), { + msg: '正在加载,请稍候!', + removeMask: true + }); + myMask.show(); + +// window.open(WWWROOT+"/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do?jasperreportName="+reportFile+"&reportName=SterilizationRecord&startDate="+startDate+"&endDate="+endDate+"&sendDepart="+sendDepart+"&querySupplyRoom="+querySupplyRoom+"&sterilizerName="+sterilizerName+"&frequency="+frequency+"",'thisIframe','_self'); + /* + * 因为window.open只能用get方式提交,有些参数的值有“#”会被当成锚点,“#”后面的内容会被截掉,导致后台得到的值发生变化 + * 所以这里改成了post方式提交 + * + */ + + var newWindow = window.open('', 'thisIframe', '_self'); + var url = WWWROOT+"/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do"; + formString = '
' + +'' + +'' + +'' + +'' + +'' + +'' + +'' + +'' + +'' + +'
'; + + newWindow.document.body.innerHTML = formString; + newWindow.document.forms[0].submit(); + } + + var columns = [ + {id :'depart',header : "科室",width : 180,dataIndex : 'depart'}, + {header : "物品名称",width : 200,dataIndex : 'goodsName'}, + {header : "数量",width : 100,dataIndex : 'amount'}, + {header : "单价(元)",width : 100,dataIndex : 'price'}, + {header : "金额(元)",width : 100,dataIndex : 'totalPrice'}, + {header : "批次",width : 100,dataIndex : 'batchNumber'}, + {id : 'total',header : "总计(元)",width : 120,dataIndex : 'total' + }]; + + var readerDetail = [{ + name : 'id' + },{ + name : 'depart' + }, { + name : 'goodsName' + }, { + name : 'amount' + }, { + name : 'price' + }, { + name : 'totalPrice' + }, { + name : 'batchNumber' + }, { + name : 'total' + }]; + + var sign = true; + var dwrCallParams = null; + + var tbar = [{ + text : '导出Excel', + iconCls : 'btn_ext_refresh', + id : 'editTbar', + handler : function() { + var month = Ext.getCmp('monthSearch').getRawValue(); + var depart = Ext.getCmp('departSearch').getValue(); + location.href=WWWROOT + "/disinfectsystem/reportforms/departmentMonthlyExport.jsp?depart="+depart+"&month="+month+"&reportType=科室月报明细"; + } + } ]; + + Ext.ux.ForgonPageGrid.prototype.getGridParameterMap = function() { + + }; + + var departRecord = Ext.data.Record.create([ { + name : 'id' + }, { + name : 'name' + } ]); + + var materialDefinitionStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/materialDefinitionAction!getMaterialDefinitionDataForMaterial.do', + method : 'POST' + }), + reader : new Ext.data.JsonReader({ + totalProperty : 'totalCount', + root : 'data' + }, [ + {name : 'id',mapping : 'id'}, + {name : 'spelling',mapping : 'spelling'}, + {name : 'type',mapping : 'type'}, + {name : 'name',mapping : 'name'} + ]) + }); + + var form = new Ext.form.FormPanel({ + title : '灭菌物品质量监测统计报表', + region : 'north', + labelAlign : 'right', + buttonAlign : 'center', + collapsible : true, + collapseMode : 'mini', + split : true, + border : 0, + // bodyStyle : 'padding: 10px 10px 0px 10px;', + frame : true, + bodyStyle : 'padding:0px auto;margin:0px',// padding:1px;padding-top:5px; + height : 140, + items : [{ + layout : 'column', + height : 60, + labelWidth : 70, + items : [{ + columnWidth : .2, + layout : 'form', + labelWidth : 60, + items : [new Ext.form.DateField({ + id:'startDate', + name : 'startDate', + fieldLabel : '开始日期', + readOnly : false, + format:'Y-m-d', + value : new Date(), + anchor : '95%', + listeners : { + specialkey : function(field, ee) { + if (ee.getKey() == Ext.EventObject.ENTER) { + var isOK = field.validate(); + if(isOK){ + var value = field.getValue(); + field.setValue(value); + reloadReport(); + } + } + } + } + })] + },{ + columnWidth : .2, + layout : 'form', + labelWidth : 60, + items : [new Ext.form.DateField({ + id:'endDate', + name : 'endDate', + fieldLabel : '结束日期', + readOnly : false, + format:'Y-m-d', + value : new Date(), + anchor : '95%', + listeners : { + specialkey : function(field, ee) { + if (ee.getKey() == Ext.EventObject.ENTER) { + var isOK = field.validate(); + if(isOK){ + var value = field.getValue(); + field.setValue(value); + reloadReport(); + } + } + } + } + })] + },{ + columnWidth : .25, + layout : 'form', + labelWidth : 70, + items : [{ + xtype : 'combo', + id : 'querySupplyRoom', + name : 'querySupplyRoom', + valueField : 'departId', + displayField : 'name', + fieldLabel : "选择供应室", + allowBlank : true, + editable : false, + store : supplyRoomStore, + forceSelection : true, + mode : 'local', + triggerAction : 'all', + anchor : '95%' + }] + },{ + columnWidth : .2, + layout : 'form', + labelWidth : 60, + items : [{ + xtype : 'combo', + fieldLabel : "查询类型", + valueField : 'value', + displayField : 'value', + store : reportTypeStore, + triggerAction : 'all', + editable : false, + mode : 'local', + forceSelection : false, + name : "reportType", + id : "reportType", + anchor : '95%', + value:'明细' + }] + }] + }], + buttons:[{ + text : '查询', + minWidth : 70, + iconCls : 'icon_search', + handler : function() { + reloadReport(); + } + },{ + text : '重置', + minWidth : 70, + iconCls : 'icon_set', + handler : function() { + Ext.getCmp('startDate').setValue(""); + Ext.getCmp('endDate').setValue(""); + Ext.getCmp('sendDepart').setValue(""); + Ext.getCmp('frequency').setValue(""); + Ext.getCmp('sterilizerName').setValue(""); + Ext.getCmp('querySupplyRoom').setValue(""); + } + }] + }); + + + 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 + }] + }); + supplyRoomStore.load(); + + }); \ No newline at end of file Index: ssts-web/src/main/webapp/jasperRtp/SterilizerQualityReport.jasper =================================================================== diff -u Binary files differ Index: ssts-web/src/main/webapp/jasperRtp/SterilizerQualityReport_child.jrxml =================================================================== diff -u --- ssts-web/src/main/webapp/jasperRtp/SterilizerQualityReport_child.jrxml (revision 0) +++ ssts-web/src/main/webapp/jasperRtp/SterilizerQualityReport_child.jrxml (revision 19671) @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: ssts-web/src/main/webapp/jasperRtp/SterilizerQualityReport.jrxml =================================================================== diff -u --- ssts-web/src/main/webapp/jasperRtp/SterilizerQualityReport.jrxml (revision 0) +++ ssts-web/src/main/webapp/jasperRtp/SterilizerQualityReport.jrxml (revision 19671) @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="38" splitType="Stretch"> + <textField> + <reportElement uuid="3ef5ef90-ca6c-42eb-855c-ff2336f47b62" x="0" y="0" width="970" height="38"/> + <textElement textAlignment="Center" verticalAlignment="Middle"> + <font size="14" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$P{title}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java =================================================================== diff -u -r19643 -r19671 --- ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java (.../QualityMonitoringInstanceManagerImpl.java) (revision 19643) +++ ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java (.../QualityMonitoringInstanceManagerImpl.java) (revision 19671) @@ -523,6 +523,9 @@ qmInstance.setSterilizerName(ti.getSterilizerName()); qmInstance.setSterilizerFrequency(ti.getSterileFrequency()); qmInstance.setTousseName(ti.getTousseDefinitionName()); + if(StringUtils.isBlank(qmInstance.getSterilizationRecordId()) || "0".equals(qmInstance.getSterilizationRecordId())){ + qmInstance.setSterilizationRecordId(ti.getSterilizationRecord_id().toString()); + } } } String positionMsg = ""; Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java =================================================================== diff -u -r19566 -r19671 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 19566) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 19671) @@ -614,6 +614,11 @@ * @return */ public List getWashUnUnqualifiedData(String startTime, String endTime, String reportTypeStr); - + /** + * 获取 灭菌物品质量监测统计报表 + * @param paramMap 参数的Map + * @return + */ + public List getSterilizerQualiyDataSource(Map paramMap); } Index: ssts-web/src/main/webapp/jasperRtp/SterilizerQualityReport_child.jasper =================================================================== diff -u Binary files differ Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/SterilizerQualiyBean.java =================================================================== diff -u --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/SterilizerQualiyBean.java (revision 0) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/SterilizerQualiyBean.java (revision 19671) @@ -0,0 +1,93 @@ +package com.forgon.disinfectsystem.jasperreports.javabeansource; + +import java.util.ArrayList; +import java.util.List; + +/** + * 灭菌质量信息javaBean + * @author JC 2017-08-21 + * + */ +public class SterilizerQualiyBean { + /* + * 炉次 + */ + private Integer frequency; + /* + * 灭菌炉 + */ + private String sterilizerName; + /* + * 灭菌完成时间 + */ + private String sterilizationFinishTime; + /* + * 灭菌包总数 + */ + private Integer amount; + /* + * 灭菌员 + */ + private String sterilizerUser; + /* + * 质量监测结果 合格和不合格 + */ + private String qualityRssult ; + /* + * 质量监测信息 + */ + private String qualityMsg; + /** + * 子报表的bean + */ + private List childrens = new ArrayList(); + + public Integer getFrequency() { + return frequency; + } + public void setFrequency(Integer frequency) { + this.frequency = frequency; + } + public String getSterilizerName() { + return sterilizerName; + } + public void setSterilizerName(String sterilizerName) { + this.sterilizerName = sterilizerName; + } + public String getSterilizationFinishTime() { + return sterilizationFinishTime; + } + public void setSterilizationFinishTime(String sterilizationFinishTime) { + this.sterilizationFinishTime = sterilizationFinishTime; + } + public List getChildrens() { + return childrens; + } + public void setChildrens(List childrens) { + this.childrens = childrens; + } + public Integer getAmount() { + return amount; + } + public void setAmount(Integer amount) { + this.amount = amount; + } + public String getSterilizerUser() { + return sterilizerUser; + } + public void setSterilizerUser(String sterilizerUser) { + this.sterilizerUser = sterilizerUser; + } + public String getQualityRssult() { + return qualityRssult; + } + public void setQualityRssult(String qualityRssult) { + this.qualityRssult = qualityRssult; + } + public String getQualityMsg() { + return qualityMsg; + } + public void setQualityMsg(String qualityMsg) { + this.qualityMsg = qualityMsg; + } +}