Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java =================================================================== diff -u -r15743 -r15803 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 15743) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 15803) @@ -39,6 +39,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.ReturnGoodsVo; import com.forgon.disinfectsystem.jasperreports.javabeansource.SignGoodsItemVo; import com.forgon.disinfectsystem.jasperreports.javabeansource.SterilizingStove; +import com.forgon.disinfectsystem.jasperreports.javabeansource.SummaryUseRecordForGoodsVO; import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseDeliverDetailVO; import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseWorkLoadVO; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordEnteringBean; @@ -340,6 +341,15 @@ * @param departCoding * @return */ - public List getforeignTousseAfterUseDeliveryVOList( - String startTime, String endTime, String departCoding); + public List getforeignTousseAfterUseDeliveryVOList(String startTime, String endTime, String departCoding); + + /** + * 获取"使用记录物品分类汇总表"的javabean + * @param startTime + * @param endTime + * @param departCoding + * @param operatorSearch + * @return + */ + public List getSummaryUseRecordForGoodsVO(String startTime, String endTime, String departSearch, String goodsSearch); } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/SummaryUseRecordForGoodsVO.java =================================================================== diff -u --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/SummaryUseRecordForGoodsVO.java (revision 0) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/SummaryUseRecordForGoodsVO.java (revision 15803) @@ -0,0 +1,54 @@ +package com.forgon.disinfectsystem.jasperreports.javabeansource; + +/** + * 2016-11-16 + * @author Chenjiaru + * 使用记录物品分类汇总表的javabean + * + */ +public class SummaryUseRecordForGoodsVO { + + /** + * 科室名称 + */ + private String depart; + + /** + * 物品名称 + */ + private String goodsName; + + /** + * 数量 + */ + private Integer amount; + + + + public String getDepart() { + return depart; + } + + public void setDepart(String depart) { + this.depart = depart; + } + + public String getGoodsName() { + return goodsName; + } + + public void setGoodsName(String goodsName) { + this.goodsName = goodsName; + } + + public Integer getAmount() { + return amount; + } + + public void setAmount(Integer amount) { + this.amount = amount; + } + + + +} Index: ssts-web/src/main/webapp/homepage/menuconfigure.js =================================================================== diff -u -r15716 -r15803 --- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 15716) +++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 15803) @@ -431,6 +431,7 @@ {hidden :SSTS_USERECORD_TOTAL_VIEW,text:"使用记录录入统计报表",href:WWWROOT+'/disinfectsystem/reportforms/useRecordTotalView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_USERECORD_TOTAL_VIEW,text:"使用记录录入明细报表",href:WWWROOT+'/disinfectsystem/reportforms/useRecordItemView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_USERECORD_TOTAL_VIEW,text:"使用记录人员汇总报表",href:WWWROOT+'/disinfectsystem/reportforms/useRecordOperatorTotalView.jsp',hrefTarget:linkTarget,leaf:true}, + {hidden :SSTS_USERECORD_TOTAL_VIEW,text:"使用记录物品分类汇总表",href:WWWROOT+'/disinfectsystem/reportforms/summaryUseRecordForGoodsView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_SterilizingStoveUseCountReport,text:"灭菌炉使用次数统计报表",href:WWWROOT+'/disinfectsystem/reportforms/sterilizingStoveUseCountView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_TousseWorkLoadTotalReport,text:"器械包工作量统计报表",href:WWWROOT+'/disinfectsystem/reportforms/tousseWorkLoadView.jsp',hrefTarget:linkTarget,leaf:true} ] Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r15782 -r15803 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 15782) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 15803) @@ -77,6 +77,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.SatisfyInfo; import com.forgon.disinfectsystem.jasperreports.javabeansource.SatisfyItem; import com.forgon.disinfectsystem.jasperreports.javabeansource.SterilizationRecordItenBean; +import com.forgon.disinfectsystem.jasperreports.javabeansource.SummaryUseRecordForGoodsVO; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordItemBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordOperatorBean; @@ -762,6 +763,13 @@ List foreignTousseAfterUseDeliveryVOList = jasperReportManager.getforeignTousseAfterUseDeliveryVOList(startTime, endTime, departCoding); return foreignTousseAfterUseDeliveryVOList; + } else if ("summaryUseRecordForGoods".equals(reportName)) { + String startDay = StrutsParamUtils.getPraramValue("startDay", ""); + String endDay = StrutsParamUtils.getPraramValue("endDay", ""); + String departSearch = StrutsParamUtils.getPraramValue("departSearch", ""); + String goodsSearch = StrutsParamUtils.getPraramValue("goodsSearch", ""); + List summaryUseRecordForGoodsVOList = jasperReportManager.getSummaryUseRecordForGoodsVO(startDay, endDay, departSearch, goodsSearch); + return summaryUseRecordForGoodsVOList; } return null; } @@ -1264,6 +1272,11 @@ String endDay = StrutsParamUtils.getPraramValue("endDay", ""); String title = "外来器械使用后交接报表 (" + startDay + "~" + endDay + ")"; map.put("title", title); + } else if (reportName.equals("summaryUseRecordForGoods")) { + String startDay = StrutsParamUtils.getPraramValue("startDay", ""); + String endDay = StrutsParamUtils.getPraramValue("endDay", ""); + String title = "使用记录物品分类汇总表 (" + startDay + "~" + endDay + ")"; + map.put("title", title); } return map; Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordForGoodsView.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordForGoodsView.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordForGoodsView.js (revision 15803) @@ -0,0 +1,195 @@ +var entityName = "使用记录物品分类汇总表"; + +var myMask; +function reloadReport(isFirstRoomPeople,departName,goodsSearch){ + var startTime= $Id('startTime').value; + var endTime = $Id('endTime').value; + var departSearch = ""; + //不是一级供应室 + if(!isFirstRoomPeople){ + departSearch = departName; + }else{ + departSearch = $Id('departSearch').value; + } + myMask = new Ext.LoadMask(Ext.getBody(), { + msg: '正在加载,请稍候!', + removeMask: true + }); + myMask.show(); + window.open(WWWROOT+"/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do?jasperreportName=summaryUseRecordForGoods.jasper&startDay="+startTime+"&endDay="+endTime+"&reportName=summaryUseRecordForGoods&departSearch="+departSearch+"&goodsSearch="+goodsSearch,'thisIframe','_self'); +} +Ext.onReady(function(){ + Ext.QuickTips.init(); + var departRecord = Ext.data.Record.create([ { + name : 'id' + }, { + name : 'name' + } ]); + var departJsonStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/supplyRoomConfigAction!getAllOrgUnitName.do', + method : 'POST' + }), + reader : new Ext.data.JsonReader({ + root : 'data' + },departRecord) + }); + + var comboGoodsRecord = Ext.data.Record.create([ + {name : 'id',mapping : 'id'}, + {name : 'tousseDefinitionID'}, + {name : 'type',mapping : 'type'}, + {name : 'tousseType',mapping : 'tousseType'}, + {name : 'name',mapping : 'name'} + ]); + //物品选择下拉框数据源 + var comboGoodsStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!searchComboGoodsData.do' + }), + reader : new Ext.data.JsonReader({ + root : 'data' + },comboGoodsRecord) + }); + + + var dt = new Date(); + var startDayofMonth = dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/01"; + + var form = new Ext.form.FormPanel({ + title : '使用记录物品分类汇总表', + 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', + labelWidth : 60, + items : [{ + layout:'form', + columnWidth:.2, + items:[{ + xtype : 'datefieldWithMin', + fieldLabel : '开始日期', + id : 'startTime', + name : 'startTime', + readOnly : true, + format : 'Y-m-d H:i:s', + allowBlank : true, + anchor : '95%', + value: new Date(startDayofMonth) + }] + },{ + layout:'form', + columnWidth:.2, + items:[{ + xtype : 'datefieldWithMin', + fieldLabel : '结束日期', + id : 'endTime', + name : 'endTime', + readOnly : true, + format : 'Y-m-d H:i:s', + allowBlank : true, + anchor : '95%', + value: new Date() + }] + },{ + layout:'form', + columnWidth:.22, + labelWidth:40, + items:[{ + xtype : 'combo', + id : 'departSearch', + name : 'departSearch', + queryParam : 'spell', + fieldLabel : '科室', + minChars : 0, + valueField : 'id', + displayField : 'name', + store : departJsonStore, + forceSelection : true, + lazyInit : true, + anchor : '95%', + listWidth:200, + disabled :!isFirstRoomPeople, + triggerAction : 'all', + hideTrigger : true, + typeAhead : false, + allowBlank : true + }] + },{ + layout:'form', + columnWidth:.18, + labelWidth:60, + items:[{ + xtype : 'combo', + id : 'goodsSearch', + name : 'goodsSearch', + queryParam : 'spell', + fieldLabel : '物品', + minChars : 0, + valueField : 'id', + displayField : 'name', + store : comboGoodsStore, + forceSelection : true, + lazyInit : true, + anchor : '95%', + triggerAction : 'all', + hideTrigger : true, + typeAhead : false, + allowBlank : true, + listeners:{ + specialkey:function(field,event){ + if(event.getKey()==Ext.EventObject.ENTER){ + reloadReport(isFirstRoomPeople,orgName,field.getRawValue()); + } + } + } + }] + }] + }], + buttons:[{ + xtype : 'button', + text : '查询', + minWidth : 70, + iconCls : 'icon_search', + handler : function() { + reloadReport(isFirstRoomPeople,orgName,Ext.getCmp('goodsSearch').getRawValue()); + } + },{ + xtype : 'button', + text : '重置', + minWidth : 70, + iconCls : 'icon_set', + handler : function() { + form.getForm().reset(); + } + }] + }); + + + 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-web/src/main/webapp/jasperRtp/summaryUseRecordForGoods.jrxml =================================================================== diff -u --- ssts-web/src/main/webapp/jasperRtp/summaryUseRecordForGoods.jrxml (revision 0) +++ ssts-web/src/main/webapp/jasperRtp/summaryUseRecordForGoods.jrxml (revision 15803) @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + <band height="33" splitType="Stretch"> + <textField> + <reportElement uuid="0b76e71d-fcf0-4cba-89d4-8bc0ffd7cfd5" x="0" y="0" width="475" height="33"/> + <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/summaryUseRecordForGoods.jasper =================================================================== diff -u Binary files differ Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r15781 -r15803 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 15781) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 15803) @@ -136,6 +136,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.SignGoodsItemVo; import com.forgon.disinfectsystem.jasperreports.javabeansource.SterilizingStove; import com.forgon.disinfectsystem.jasperreports.javabeansource.SterilizingStove_child; +import com.forgon.disinfectsystem.jasperreports.javabeansource.SummaryUseRecordForGoodsVO; import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseDeliverDetailVO; import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseItemVO; import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseWorkLoadVO; @@ -11791,4 +11792,56 @@ return voList; } + + @Override + public List getSummaryUseRecordForGoodsVO( + String startTime, String endTime, String departSearch, + String goodsSearch) { + + List voList = new ArrayList(); + if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)) { + String betweenSql = "between " + + dateQueryAdapter.dateConverAdapter2(startTime, "yyyy-mm-dd HH24:MI") + + " and " + dateQueryAdapter.dateConverAdapter2(endTime, "yyyy-mm-dd HH24:MI") + " "; + + String sql = + "select t1.departName departName,t1.goodsName goodsName,sum(t1.amount) total " + + "from (select ur.depart departName,ti.tousseName goodsName,1 amount,ur.enteringDate enteringDate " + + "from UseRecord ur " + + "inner join TousseInstance ti on ti.useRecord_id=ur.id " + + "union all " + + "select ur.depart departName,udgi.name goodsName,udgi.amount amount,ur.enteringDate enteringDate " + + "from UseRecord ur " + + "inner join UseDiposableGoodsItem udgi on udgi.userecord_id=ur.id) t1 " + + "where 1=1 " + + (StringUtils.isNotBlank(departSearch)?"and t1.departName='"+departSearch+"' ":"") + + (StringUtils.isNotBlank(goodsSearch)?"and t1.goodsName='"+goodsSearch+"' ":"") + + "and t1.enteringDate " + betweenSql + + "group by t1.departName,t1.goodsName" + ; + ResultSet result = objectDao.executeSql(sql); + + try { + while(result.next()){ + String departName = StringTools.defaultString(result.getString("departName")); + String goodsName = StringTools.defaultString(result.getString("goodsName")); + Integer total = result.getInt("total"); + SummaryUseRecordForGoodsVO vo = new SummaryUseRecordForGoodsVO(); + vo.setDepart(departName); + vo.setGoodsName(goodsName); + vo.setAmount(total==null?0:total); + + voList.add(vo); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(result); + } + + } + + return voList; + } + } Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordForGoodsView.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordForGoodsView.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordForGoodsView.jsp (revision 15803) @@ -0,0 +1,51 @@ +<%@ page import="com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager"%> +<%@ page contentType="text/html; charset=UTF-8"%> +<%@ include file="/common/taglibs.jsp"%> +<%@ include file="/common/includeExtJsAndCss.jsp"%> + + +<% + SupplyRoomConfigManager configManager =(SupplyRoomConfigManager) SpringBeanManger.getBean("supplyRoomConfigManager"); + LoginUserData userData = AcegiHelper.getLoginUser(); + String currentUserOfCoding = userData.getOrgUnitCodingFromSupplyRoomConfig(); + String orgName = userData.getOrgUnitNameCodingFromSupplyRoomConfig(); + String firstRoomCode = configManager.getFirstSupplyRoomConfig().getOrgUnitCoding(); + request.setAttribute("currentOrgCode", currentUserOfCoding); + request.setAttribute("orgName", orgName); + request.setAttribute("userName", userData.getUserFullName()); + if(currentUserOfCoding.equals(firstRoomCode)){ + request.setAttribute("isFirstRoomPeople", true); + }else{ + request.setAttribute("isFirstRoomPeople", false); + } +%> + +使用记录物品分类汇总表 + + + + + + + + + + + + + + + + + + +
+
+
+ + \ No newline at end of file