Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/disposableGoodsDeliverStatisticsView.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/reportforms/disposableGoodsDeliverStatisticsView.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/disposableGoodsDeliverStatisticsView.js (revision 25160) @@ -0,0 +1,214 @@ +var entityName = "一次性物品发放表"; +var form; +/** + * 加载报表的数据 + * + */ +var myMask; +function reloadReport(){ + + if (!form.getForm().isValid()) { + showResult('请正确填写表单各值'); + return false; + } + + var startTime= $Id('startTime').value; + var endTime = $Id('endTime').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=disposableGoodsInvoiceStatistics.jasper&reportName=disposableGoodsInvoiceStatistics" + + "&startDay=" + startTime + + "&endDay=" + endTime + + "&orgUnitCoding=" + departCoding, + 'thisIframe', '_self'); + +} + +Ext.onReady(function() { + Ext.QuickTips.init(); + + /** + * “供应室combo”的store(注意使用此store的“供应室combo”的id必须为querySupplyRoom) + */ + 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); + } + } + } + }); + + 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',// padding:1px;padding-top:5px; + height : 105, + items : [{ + layout : 'column', + height : 40, + labelWidth : 60, + items : [{ + width : 200, + layout : 'form', + items : [{ + xtype : 'datefield', + fieldLabel : '开始日期', + id : 'startTime', + name : 'startTime', + editable : false, + format : 'Y-m-d', + altFormats:'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', + allowBlank : false, + anchor : '95%', + value: new Date(), + listeners : { + specialkey : function(field, e) { + if (e.getKey() == Ext.EventObject.ENTER) { + var isOK = field.validate(); + if(isOK){ + var value = field.getValue(); + field.setValue(value); + var endTime = Ext.getCmp('endTime'); + endTime.selectText(); + endTime.focus(); + } + + } + } + } + }] + },{ + width : 200, + layout : 'form', + items : [{ + xtype : 'datefield', + fieldLabel : '结束日期', + id : 'endTime', + name : 'endTime', + editable : false, + format : 'Y-m-d', + altFormats:'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', + allowBlank : false, + anchor : '95%', + value: new Date(), + listeners : { + specialkey : function(field, e) { + if (e.getKey() == Ext.EventObject.ENTER) { + var isOK = field.validate(); + if(isOK){ + var value = field.getValue(); + field.setValue(value); + reloadReport(); + } + } + } + } + }] + },{ + width : 300, + layout : 'form', + labelWidth : 70, + labelSeparator : '选择供应室:', + items : [{ + xtype : 'combo', + id : 'querySupplyRoom', + name : 'querySupplyRoom', + valueField : 'departCode', + displayField : 'name', + allowBlank : true, + 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('startTime').value = ""; + $Id('endTime').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 + }] + }); + + Ext.Ajax.request({ + url : WWWROOT + '/system/serverTimeAction!getServerDateTime.do', + params:{dateformat:"yyyy/MM/dd"}, + success : function(response, options) { + var result = Ext.decode(response.responseText); + if(result.success){ + var servertime = result.serverTime; + Ext.getCmp('startTime').setValue(new Date(servertime)); + Ext.getCmp('endTime').setValue(new Date(servertime)); + reloadReport(); + } + }, + failure : function(response, options) { + } + }); +}); \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/disposableGoodsDeliverStatisticsView.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/reportforms/disposableGoodsDeliverStatisticsView.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/disposableGoodsDeliverStatisticsView.jsp (revision 25160) @@ -0,0 +1,32 @@ +<%@ 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 -r24641 -r25160 --- ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 24641) +++ ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 25160) @@ -439,6 +439,7 @@ + Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r25158 -r25160 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 25158) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 25160) @@ -72,6 +72,7 @@ import com.forgon.disinfectsystem.entity.useRecord.UseRecord; import com.forgon.disinfectsystem.jasperreports.javabeansource.EighteenQuotaBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.ForeignTousseAfterUseDeliveryVO; +import com.forgon.disinfectsystem.jasperreports.javabeansource.InvoiceQueryItem; import com.forgon.disinfectsystem.jasperreports.javabeansource.MaterialDamageBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.MaterialDamageItemBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.MaterialDamageTotal_child; @@ -1087,6 +1088,17 @@ return materialErrorDamageSummaryData; } } + }else if("disposableGoodsInvoiceStatistics".equals(reportName)){//GGSRMYY-51 增加一次性物品发放表 + String startDay = StrutsParamUtils.getPraramValue("startDay", ""); + String endDay = StrutsParamUtils.getPraramValue("endDay", ""); + String orgUnitCoding = StrutsParamUtils.getPraramValue("orgUnitCoding", ""); + if(StringUtils.isBlank(orgUnitCoding)){ + orgUnitCoding = AcegiHelper.getCurrentOrgUnitCode(); + } + if (StringTools.isNotBlank(startDay) && StringTools.isNotBlank(endDay)) { + List disposableGoodsInvoiceStatisticsData = jasperReportManager.getDisposableGoodsInvoiceStatistics(startDay, endDay, orgUnitCoding); + return disposableGoodsInvoiceStatisticsData; + } } return null; } @@ -1335,7 +1347,7 @@ * @param reportName * @return */ - public Map getParametMap(String reportName) { + private Map getParametMap(String reportName) { Map map = new HashMap(); // 设置子报表的默认位置 @@ -1800,6 +1812,12 @@ String startDate = StrutsParamUtils.getPraramValue("startDate", ""); String endDate = StrutsParamUtils.getPraramValue("endDate", ""); map.put("title", String.format("器械返消统计报表(%s至%s)", startDate, endDate)); + }else if("disposableGoodsInvoiceStatistics".equals(reportName)){ + String startDay = StrutsParamUtils.getPraramValue("startDay", ""); + String endDay = StrutsParamUtils.getPraramValue("endDay", ""); + map.put("startDay",startDay); + map.put("endDay", endDay); + map.put("title", String.format("一次性物品发放表(%s至%s)", startDay, endDay)); } return map; } @@ -2549,7 +2567,7 @@ * @param reportName 报表模块名称 * @return */ - public Map getParameterMap(String reportName) { + private Map getParameterMap(String reportName) { Map map = new HashMap(); String rootPath = StrutsParamUtils.getRequest().getSession() .getServletContext().getRealPath(""); Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r25158 -r25160 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 25158) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 25160) @@ -20835,4 +20835,43 @@ return dataList; } + @Override + public List getDisposableGoodsInvoiceStatistics( + String startDay, String endDay, String orgUnitCoding) { + List list = null; + ResultSet rs = null; + try { + String querySql = "select dg.name,dg.specification,dg.unit,di.fluctuationPrice price,sum(di.amount) amount,sum(di.amount * di.fluctuationPrice) totalPrice from "+ Invoice.class.getSimpleName() +" i " + + " join "+ DiposableGoodsItem.class.getSimpleName() +" di on i.id=di.id " + + " join "+ DisposableGoods.class.getSimpleName() +" dg on dg.id=di.disposableGoodsID " + + " where i.orgUnitCoding='"+ orgUnitCoding +"' and " + dateQueryAdapter.dateAreaSql("i.sendTime", startDay + " 00:00:00", endDay + " 23:59:59") + + " group by dg.name,dg.specification,dg.unit,di.fluctuationPrice"; + rs = objectDao.executeSql(querySql); + long sequence = 1; + while(rs.next()){ + if(list == null){ + list = new ArrayList(); + } + InvoiceQueryItem item = new InvoiceQueryItem(); + item.setSequence(sequence); + item.setGoodsName(rs.getString("name")); + item.setSpecification(rs.getString("specification")); + item.setUnit(rs.getString("unit")); + Object amount = rs.getObject("amount"); + Object price = rs.getObject("price"); + Object totalPrice = rs.getObject("totalPrice"); + item.setAmount((amount != null && amount instanceof Number) ? ((Number)amount).intValue() : null); + item.setPrice((price != null && price instanceof Number) ? ((Number)price).doubleValue() : null); + item.setTotalPrice((totalPrice != null && totalPrice instanceof Number) ? ((Number)totalPrice).doubleValue() : null); + list.add(item); + sequence++; + } + } catch (Exception e) { + e.printStackTrace(); + }finally{ + DatabaseUtil.closeResultSetAndStatement(rs); + } + return list; + } + } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java =================================================================== diff -u -r25158 -r25160 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 25158) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 25160) @@ -34,6 +34,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.GoodsAmountSummaryByGrade; import com.forgon.disinfectsystem.jasperreports.javabeansource.InvoiceAmountContrastBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.InvoiceQuery; +import com.forgon.disinfectsystem.jasperreports.javabeansource.InvoiceQueryItem; import com.forgon.disinfectsystem.jasperreports.javabeansource.MaterialErrorDamageSummaryOfDepartmentVO; import com.forgon.disinfectsystem.jasperreports.javabeansource.MaterialErrorDamageVO; import com.forgon.disinfectsystem.jasperreports.javabeansource.MaterialTypeWorkloadReport; @@ -808,5 +809,14 @@ public List getWashAndDisinfectRecordDataSource(String startDate , String endDate , String querySupplyRoom , String rinserName , String disinfectProgram , String tousseName); + /** + * GGSRMYY-51 增加一次性物品发放表 + * @param startDay 开始日期 + * @param endDay 结束日期 + * @param orgUnitCoding 发放的供应室编码 + * @return + */ + public List getDisposableGoodsInvoiceStatistics(String startDay,String endDay, String orgUnitCoding); + } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/InvoiceQueryItem.java =================================================================== diff -u -r15631 -r25160 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/InvoiceQueryItem.java (.../InvoiceQueryItem.java) (revision 15631) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/InvoiceQueryItem.java (.../InvoiceQueryItem.java) (revision 25160) @@ -15,13 +15,27 @@ * 2014-4-14 下午4:57:28 */ public class InvoiceQueryItem { + + /** + * 序号 + */ + private Long sequence; private String barcode; - + + /** + * 物品名称 + */ private String goodsName; - + + /** + * 单价 + */ private double price; - + + /** + * 数量 + */ private Integer amount; private String time; @@ -41,7 +55,10 @@ private String expDate; private String batch; - + + /** + * 金额、小计 + */ private double totalPrice; /** * 一次性物品外部编码 @@ -61,6 +78,16 @@ private String sterileEndTime; + /** + * 规格(针对GGSRMYY-51 增加一次性物品发放表新增字段) + */ + private String specification; + + /** + * 单位(针对GGSRMYY-51 增加一次性物品发放表新增字段) + */ + private String unit; + public String getExternalCode() { return externalCode; } @@ -202,5 +229,29 @@ public void setHospitalNumber(String hospitalNumber) { this.hospitalNumber = hospitalNumber; } - + + public String getSpecification() { + return specification; + } + + public void setSpecification(String specification) { + this.specification = specification; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public Long getSequence() { + return sequence; + } + + public void setSequence(Long sequence) { + this.sequence = sequence; + } + } Index: ssts-web/src/main/webapp/homepage/menu.jsp =================================================================== diff -u -r25135 -r25160 --- ssts-web/src/main/webapp/homepage/menu.jsp (.../menu.jsp) (revision 25135) +++ ssts-web/src/main/webapp/homepage/menu.jsp (.../menu.jsp) (revision 25160) @@ -407,7 +407,7 @@ * 《财务核算及物品发放报表》菜单 */ var SSTS_DepartmentMonthly_Menu = true; - + if (!notInWhiteList(sstsConfig, 'financeAccountRelatedReports')) { SSTS_DepartmentMonthly_Menu = false; } @@ -474,6 +474,14 @@ /** + * 《一次性物品发放表》权限 + */ +var SSTS_DisposableGoodsDeliverReport = true; + +SSTS_DisposableGoodsDeliverReport = false; + + +/** * 《外来器械申请单统计报表》权限 */ var SSTS_ForeignTousseReport = true; Index: ssts-web/src/main/webapp/homepage/menuconfigure.js =================================================================== diff -u -r25135 -r25160 --- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 25135) +++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 25160) @@ -615,6 +615,7 @@ {hidden :SSTS_ReturnGoodsDetailReport,text:"退货统计报表",href:WWWROOT+'/disinfectsystem/reportforms/returnGoodsDetailView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_GoodsDistributeReportChart,text:"物品发放分布饼图",href:WWWROOT+'/disinfectsystem/reportforms/goodsDistributeReportChartView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_TousseDeliverReport,text:"器械包发货统计报表",href:WWWROOT+'/disinfectsystem/reportforms/tousseDeliverStatisticsView.jsp',hrefTarget:linkTarget,leaf:true}, + {hidden :SSTS_DisposableGoodsDeliverReport,text:"一次性物品发放表",href:WWWROOT+'/disinfectsystem/reportforms/disposableGoodsDeliverStatisticsView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_ForeignTousseReport,text:"外来器械申请单统计报表",href:WWWROOT+'/disinfectsystem/reportforms/foreignTousseApplicationReport.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_ApparatusInfusionisType,text:"各类型输液器报表",href:WWWROOT+'/disinfectsystem/reportforms/apparatusInfusionisTypeView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_TousseMaterialMonthCheckReport,text:"消毒供应中心器械月盘点统计报表",href:WWWROOT+'/disinfectsystem/reportforms/supplyRoomApplianceMonthStatisticsView.jsp',hrefTarget:linkTarget,leaf:true},