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},