Index: ssts-web/src/main/webapp/jasperRtp/summaryUseRecordDepartOfPatientReport.jrxml
===================================================================
diff -u
--- ssts-web/src/main/webapp/jasperRtp/summaryUseRecordDepartOfPatientReport.jrxml (revision 0)
+++ ssts-web/src/main/webapp/jasperRtp/summaryUseRecordDepartOfPatientReport.jrxml (revision 27366)
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java
===================================================================
diff -u -r27180 -r27366
--- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 27180)
+++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 27366)
@@ -62,6 +62,7 @@
import com.forgon.disinfectsystem.jasperreports.javabeansource.SterilizingStove;
import com.forgon.disinfectsystem.jasperreports.javabeansource.SterilizingStove_child;
import com.forgon.disinfectsystem.jasperreports.javabeansource.SummaryUseRecordForDepartmentVO;
+import com.forgon.disinfectsystem.jasperreports.javabeansource.SummaryUseRecordVO;
import com.forgon.disinfectsystem.jasperreports.javabeansource.SupplyRoomQualityQuota;
import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseApplyDepartment;
import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseApplySummary;
@@ -589,10 +590,20 @@
* @param endTime
* @param departCoding
* @param operatorSearch
+ * @param departColumnName 第二列部门 病区或病人所在科室
+ * @param departOfpatientSearch 病人所在科室过滤
* @return
*/
- public List getSummaryUseRecordForGoodsVO(String startTime, String endTime, String departSearch, String goodsSearch);
-
+ public List getSummaryUseRecordForGoodsVO(String startTime, String endTime, String departSearch, String goodsSearch, String departColumnName, String departOfpatientSearch);
+ /**
+ * 获取"使用记录物品汇总表"的javabean
+ * @param startTime 开始时间
+ * @param endTime 结束时间
+ * @param departOfpatientSearch 病人所在科室
+ * @return
+ */
+ public List getSummaryUseRecordVO(String startTime, String endTime, String departOfpatientSearch);
+
public List getFormInstanceData(String startDate,String endDate,String departCoding,String formDefinitionId);
public List getQualityMonitoringDataSource();
Index: ssts-web/src/main/webapp/disinfectsystem/useRecord/useRecordForm.js
===================================================================
diff -u -r27335 -r27366
--- ssts-web/src/main/webapp/disinfectsystem/useRecord/useRecordForm.js (.../useRecordForm.js) (revision 27335)
+++ ssts-web/src/main/webapp/disinfectsystem/useRecord/useRecordForm.js (.../useRecordForm.js) (revision 27366)
@@ -776,7 +776,7 @@
top.Ext.getCmp('depart').enable();
setFormParams(formObj.form, [ 'id', 'washHandNurse','circuitNurse', 'operationRoom','treatmentNum',
'hospitalNum', 'patientName','patientAge', 'patientSex', 'roomNumber',
- 'bedNumber', 'patientIDCard', 'doctorName', 'surgeon','operationName','specialInfection','operationTime','operationScheduleId', 'remark' ]);
+ 'bedNumber', 'patientIDCard', 'doctorName', 'surgeon','operationName','specialInfection','operationTime','operationScheduleId', 'remark','departCodeOfpatient' ]);
// 设置表单上的item参数(因为struts2版本会对前台传过来日期的时分秒部分截掉,所以手术时间需要单独传)
setFormItems(useItemsStore);
formObj.form.submit( {
@@ -887,7 +887,7 @@
top.Ext.getCmp('depart').enable();
setFormParams(formObj.form, [ 'id', 'washHandNurse','circuitNurse', 'operationRoom','treatmentNum',
'hospitalNum', 'patientName','patientAge', 'patientSex', 'roomNumber',
- 'bedNumber', 'patientIDCard', 'doctorName','operationName','specialInfection','operationTime','operationScheduleId', 'remark' ]);
+ 'bedNumber', 'patientIDCard', 'doctorName','operationName','specialInfection','operationTime','operationScheduleId', 'remark','departCodeOfpatient']);
// 设置表单上的item参数
setFormItems(useItemsStore);
formObj.form.submit( {
@@ -1369,7 +1369,7 @@
width : formWidth,
// autoHeight : true,
autoScroll : true,
- labelWidth : 80,
+ labelWidth : 90,
items : [ {
xtype : "fieldset",
title : "基础数据",
@@ -1399,8 +1399,12 @@
xtype : 'hidden',
name : 'originalFormParams',
id : 'originalFormParams'
- }, {
+ },{
xtype : 'hidden',
+ name : 'departCodeOfpatient',
+ id : 'departCodeOfpatient'
+ },{
+ xtype : 'hidden',
name : 'tousseInstanceBarcodes',
id : 'tousseInstanceBarcodes'
}, {
@@ -1741,8 +1745,34 @@
name : 'patientArea',
anchor : '96%'
}]
- }, {
+ },{
+ columnWidth : .33,
layout : 'form',
+ hidden:fromDepartmentUseRecord,
+ items : [{
+ xtype : 'combo',
+ id : 'departNameOfpatient',
+ name : 'departNameOfpatient',
+ queryParam : 'spell',
+ fieldLabel : '病人所在科室',
+ minChars : 0,
+ valueField : 'id',
+ displayField : 'name',
+ store : departJsonStore,
+ forceSelection : true,
+ lazyInit : true,
+ triggerAction : 'all',
+ typeAhead : false,
+ allowBlank : true,
+ anchor : '96%',
+ listeners : {
+ select : function(combo, record, index) {
+ top.Ext.getCmp('departCodeOfpatient').setValue(record.data.id);
+ }
+ }
+ }]
+ },{
+ layout : 'form',
columnWidth : 0.33,
hidden:fromDepartmentUseRecord,
items : [{
@@ -2248,12 +2278,13 @@
top.Ext.getCmp('reviewTime').setValue(formatDateYear(action.result.data.reviewTime));
top.Ext.getCmp('applicationTime').setValue(formatDateYear(action.result.data.applicationTime));
top.Ext.getCmp('operationTime').setValue(formatDateYear(action.result.data.operationTime));
- top.Ext.getCmp('tempBarcode').focus(true);
+ top.Ext.getCmp('departNameOfpatient').setValue(action.result.data.departCodeOfpatient);
+ top.Ext.getCmp('tempBarcode').focus(true);
// 保存原始数据,只需要保存需要修改的属性
setOriginalFormParams(form, [ 'id', 'washHandNurse','circuitNurse', 'operationRoom','treatmentNum',
'hospitalNum', 'patientName','patientAge', 'patientSex', 'roomNumber',
- 'bedNumber', 'patientIDCard', 'doctorName', 'surgeon','operationName','specialInfection', 'remark' ]);
+ 'bedNumber', 'patientIDCard', 'doctorName', 'surgeon','operationName','specialInfection', 'remark','departCodeOfpatient' ]);
},
failure : function(form, action) {
Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java
===================================================================
diff -u -r27180 -r27366
--- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 27180)
+++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 27366)
@@ -1216,9 +1216,15 @@
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;
- } else if("tousseOverLoadReport".equals(reportName)){
+ String departOfpatientSearch = StrutsParamUtils.getPraramValue("departOfpatientSearch", "");
+ String departColumnName = StrutsParamUtils.getPraramValue("departColumnName", "病区");
+ return jasperReportManager.getSummaryUseRecordForGoodsVO(startDay, endDay, departSearch, goodsSearch,departColumnName,departOfpatientSearch);
+ } else if("summaryUseRecord".equals(reportName)){
+ String startDay = StrutsParamUtils.getPraramValue("startDay", "");
+ String endDay = StrutsParamUtils.getPraramValue("endDay", "");
+ String departOfpatientSearch = StrutsParamUtils.getPraramValue("departOfpatientSearch", "");
+ return jasperReportManager.getSummaryUseRecordVO(startDay, endDay, departOfpatientSearch);
+ }else if("tousseOverLoadReport".equals(reportName)){
return jasperReportManager.getTousseOverLoadData(requestParameters);
}else if("tousseMorrowSendReport".equals(reportName)){
return jasperReportManager.getTousseMorrwoSendData(requestParameters);
@@ -2204,7 +2210,14 @@
String startDay = StrutsParamUtils.getPraramValue("startDay", "");
String endDay = StrutsParamUtils.getPraramValue("endDay", "");
String title = "使用记录物品分类汇总表 (" + startDay + " ~ " + endDay + ")";
+ String departColumnName = StrutsParamUtils.getPraramValue("departColumnName", "病区");
+ map.put("departColumnName", departColumnName);
map.put("title", title);
+ }else if("summaryUseRecord".equals(reportName)){
+ String startDay = StrutsParamUtils.getPraramValue("startDay", "");
+ String endDay = StrutsParamUtils.getPraramValue("endDay", "");
+ String title = "使用记录物品汇总表 (" + startDay + " ~ " + endDay + ")";
+ map.put("title", title);
}else if (reportName.equals("QualityMonitoringInspectMonthReport")) {
String year = StrutsParamUtils.getPraramValue("queryYear", null);
String queryMonth = StrutsParamUtils.getPraramValue("queryMonth", null);
Index: ssts-web/src/main/webapp/jasperRtp/summaryUseRecordForDepartmentAndDepart.jrxml
===================================================================
diff -u
--- ssts-web/src/main/webapp/jasperRtp/summaryUseRecordForDepartmentAndDepart.jrxml (revision 0)
+++ ssts-web/src/main/webapp/jasperRtp/summaryUseRecordForDepartmentAndDepart.jrxml (revision 27366)
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordForGoodsAndDepartView.jsp
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordForGoodsAndDepartView.jsp (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordForGoodsAndDepartView.jsp (revision 27366)
@@ -0,0 +1,52 @@
+<%@page import="org.apache.commons.lang.StringUtils"%>
+<%@ 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.getCurrentOrgUnitCode();
+ String orgName = userData.getOrgUnitNameCodingFromSupplyRoomConfig();
+ String firstRoomCode = configManager.getFirstSupplyRoomConfig().getOrgUnitCoding();
+ request.setAttribute("currentOrgCode", currentUserOfCoding);
+ request.setAttribute("orgName", orgName);
+ request.setAttribute("userName", userData.getUserFullName());
+ if(StringUtils.equals(currentUserOfCoding,firstRoomCode)){
+ request.setAttribute("isFirstRoomPeople", true);
+ }else{
+ request.setAttribute("isFirstRoomPeople", false);
+ }
+%>
+
+使用记录物品分类汇总表
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: ssts-web/src/main/webapp/disinfectsystem/useRecord/useRecordView.js
===================================================================
diff -u -r27127 -r27366
--- ssts-web/src/main/webapp/disinfectsystem/useRecord/useRecordView.js (.../useRecordView.js) (revision 27127)
+++ ssts-web/src/main/webapp/disinfectsystem/useRecord/useRecordView.js (.../useRecordView.js) (revision 27366)
@@ -13,8 +13,17 @@
addAndEditUseRecord('', '','');
setTimeout("top.Ext.getCmp('hospitalNum').focus(true)", 500);
}
-
-
+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'
+ },
+ [{name : 'id',mapping : 'id'},{name : 'name',mapping : 'name'}])
+});
+departJsonStore.load();
/**
* 批量设置状态为已回收
* @param ids
@@ -709,7 +718,6 @@
dismissDelay: 0,
showDelay: 0
});
-
//隐藏列名
var hiddenColumnsOfUseRecordListView = sstsConfig.hiddenColumnsOfUseRecordListView;
var patientNameColumnHeader = "病人";
Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java
===================================================================
diff -u -r27331 -r27366
--- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 27331)
+++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 27366)
@@ -2150,6 +2150,13 @@
modifyContent.add("主刀医生由"+ originalSurgeon +"修改为"+ surgeon);
}
+ //departCodeOfpatient病人所在科室的编码
+ String originalDepartCodeOfpatient = original.getDepartCodeOfpatient();
+ String departCodeOfpatient = modified.getDepartCodeOfpatient();
+ if (!StringUtils.equals(originalDepartCodeOfpatient, departCodeOfpatient)) {
+ curUseRecord.setDepartCodeOfpatient(departCodeOfpatient);
+ modifyContent.add("病人所在科室由"+ originalDepartCodeOfpatient +"修改为"+ departCodeOfpatient);
+ }
//聚合包内的子包使用数据也需要复制到新的使用记录对象中
curUseRecord.setTousseInstanceList(modified.getTousseInstanceList());
curUseRecord.setSubComboTousseUseRecordList(modified.getSubComboTousseUseRecordList());
Index: ssts-web/src/main/webapp/jasperRtp/summaryUseRecordForPatientAreaAndDepart.jrxml
===================================================================
diff -u
--- ssts-web/src/main/webapp/jasperRtp/summaryUseRecordForPatientAreaAndDepart.jrxml (revision 0)
+++ ssts-web/src/main/webapp/jasperRtp/summaryUseRecordForPatientAreaAndDepart.jrxml (revision 27366)
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: ssts-web/src/main/webapp/jasperRtp/summaryUseRecordForDepartmentAndDepart.jasper
===================================================================
diff -u
Binary files differ
Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordView.js
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordView.js (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordView.js (revision 27366)
@@ -0,0 +1,155 @@
+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 departOfpatientSearch = $Id('departOfpatientSearch').value;
+ myMask = new Ext.LoadMask(Ext.getBody(), {
+ msg: '正在加载,请稍候!',
+ removeMask: true
+ });
+ myMask.show();
+ window.open(WWWROOT+"/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do" +
+ "?jasperreportName=summaryUseRecordDepartOfPatientReport.jasper&reportName=summaryUseRecord" +
+ "&startDay=" + startTime +
+ "&endDay=" + endTime +
+ "&departOfpatientSearch=" + departOfpatientSearch,
+ '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 dt = new Date();
+ var startDayofMonth = dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/01";
+
+ 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',
+ labelWidth : 60,
+ items : [{
+ layout:'form',
+ width:230,
+ items:[{
+ xtype : 'datefieldWithMin',
+ fieldLabel : '开始日期',
+ id : 'startTime',
+ name : 'startTime',
+ format : 'Y-m-d H:i:s',
+ allowBlank : true,
+ anchor : '95%',
+ theHours : 0,
+ theMinutes : 0,
+ value: new Date(startDayofMonth)
+ }]
+ },{
+ layout:'form',
+ width:230,
+ items:[{
+ xtype : 'datefieldWithMin',
+ fieldLabel : '结束日期',
+ id : 'endTime',
+ name : 'endTime',
+ format : 'Y-m-d H:i:s',
+ allowBlank : true,
+ anchor : '95%',
+ theHours : 23,
+ theMinutes : 59,
+ value: new Date()
+ }]
+ },{
+ layout:'form',
+ width:260,
+ labelWidth:100,
+ items:[{
+ xtype : 'combo',
+ id : 'departOfpatientSearch',
+ name : 'departOfpatientSearch',
+ queryParam : 'spell',
+ fieldLabel : '病人所在科室',
+ minChars : 0,
+ valueField : 'id',
+ displayField : 'name',
+ store : departJsonStore,
+ forceSelection : true,
+ lazyInit : true,
+ anchor : '95%',
+ listWidth:200,
+ disabled :!isFirstRoomPeople,
+ value : !isFirstRoomPeople ? orgName : '',
+ triggerAction : 'all',
+ hideTrigger : true,
+ typeAhead : false,
+ allowBlank : true
+ }]
+ }]
+ }],
+ buttons:[{
+ xtype : 'button',
+ text : '查询',
+ minWidth : 70,
+ iconCls : 'icon_search',
+ handler : function() {
+ reloadReport();
+ }
+ },{
+ xtype : 'button',
+ text : '重置',
+ minWidth : 70,
+ iconCls : 'icon_set',
+ handler : function() {
+ form.getForm().reset();
+ $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
+ }]
+ });
+});
\ No newline at end of file
Index: ssts-web/src/main/webapp/jasperRtp/summaryUseRecordDepartOfPatientReport.jasper
===================================================================
diff -u
Binary files differ
Index: ssts-web/src/main/webapp/jasperRtp/summaryUseRecordForGoodsAndDepart.jrxml
===================================================================
diff -u
--- ssts-web/src/main/webapp/jasperRtp/summaryUseRecordForGoodsAndDepart.jrxml (revision 0)
+++ ssts-web/src/main/webapp/jasperRtp/summaryUseRecordForGoodsAndDepart.jrxml (revision 27366)
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordView.jsp
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordView.jsp (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordView.jsp (revision 27366)
@@ -0,0 +1,52 @@
+<%@page import="org.apache.commons.lang.StringUtils"%>
+<%@ 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.getCurrentOrgUnitCode();
+ String orgName = userData.getOrgUnitNameCodingFromSupplyRoomConfig();
+ String firstRoomCode = configManager.getFirstSupplyRoomConfig().getOrgUnitCoding();
+ request.setAttribute("currentOrgCode", currentUserOfCoding);
+ request.setAttribute("orgName", orgName);
+ request.setAttribute("userName", userData.getUserFullName());
+ if(StringUtils.equals(currentUserOfCoding,firstRoomCode)){
+ request.setAttribute("isFirstRoomPeople", true);
+ }else{
+ request.setAttribute("isFirstRoomPeople", false);
+ }
+%>
+
+使用记录物品分类汇总表
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/useRecord/UseRecord.java
===================================================================
diff -u -r27323 -r27366
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/useRecord/UseRecord.java (.../UseRecord.java) (revision 27323)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/useRecord/UseRecord.java (.../UseRecord.java) (revision 27366)
@@ -208,7 +208,10 @@
* 手术时间
*/
private Date operationTime;
-
+ /**
+ * 病人所在科室编码
+ */
+ private String departCodeOfpatient;
@JsonIgnore
private List tousseInstanceList;// 用于页面传参
@@ -783,6 +786,7 @@
jsonObject.put("washHandNurse", getWashHandNurse());
jsonObject.put("dataType", getDataType());
jsonObject.put("reviewOperateUserCode", getReviewOperateUserCode());
+ jsonObject.put("departCodeOfpatient", getDepartCodeOfpatient());
if(CollectionUtils.isNotEmpty(tousseInstanceList)){
JSONArray array = new JSONArray();
@@ -832,4 +836,12 @@
this.dataType = dataType;
}
+ public String getDepartCodeOfpatient() {
+ return departCodeOfpatient;
+ }
+
+ public void setDepartCodeOfpatient(String departCodeOfpatient) {
+ this.departCodeOfpatient = departCodeOfpatient;
+ }
+
}
Index: ssts-web/src/main/resources/systemset/operationDefine.xml
===================================================================
diff -u -r27214 -r27366
--- ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 27214)
+++ ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 27366)
@@ -446,6 +446,7 @@
+
Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java
===================================================================
diff -u -r27364 -r27366
--- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 27364)
+++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 27366)
@@ -160,6 +160,7 @@
import com.forgon.log.model.Log;
import com.forgon.log.service.LogManager;
import com.forgon.security.model.User;
+import com.forgon.security.service.OperationManager;
import com.forgon.systemsetting.model.HttpOption;
import com.forgon.systemsetting.service.HttpOptionManager;
import com.forgon.tools.MathTools;
@@ -244,6 +245,8 @@
private WorkQualityCollectionDataIndex workQualityCollectionDataIndex;
@Autowired
private SterilisationManager sterilisationManager;
+ @Autowired
+ private OperationManager operationManager;
public static final String FORMNAMEOFADJ = "无菌包质量抽查登记表";
/**
* 利用sql语句做数据源创建JasperPrint对象
@@ -12671,7 +12674,7 @@
@Override
public List getSummaryUseRecordForGoodsVO(
String startTime, String endTime, String departSearch,
- String goodsSearch) {
+ String goodsSearch, String departColumnName, String departOfpatientSearch) {
List list = new ArrayList();
if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)) {
@@ -12680,6 +12683,24 @@
String betweenSql = " and ur.enteringDate between "
+ dateQueryAdapter.dateConverAdapter2(startTime, "yyyy-mm-dd HH24:MI")
+ " and " + dateQueryAdapter.dateConverAdapter2(endTime, "yyyy-mm-dd HH24:MI") + " ";
+ String departSql = null;
+ String departOfpatientSearchSql = "";
+ String departLimitSql = "";//科室权限过滤
+ //是否有权限查看所有科室,如果没有只能查看自己科室
+ boolean seeAllDepart = operationManager.isCurrentUserHaveAnyOperation("SSTS_USERECORD_ForGoodsAndDepart");
+ seeAllDepart = false;
+ if("病区".equals(departColumnName)){
+ departSql = "ur.patientArea";
+ }else{//病人所在科室
+ departSql = "(select ou.name from OrgUnit ou where departCodeOfpatient is not null and ou.orgUnitCoding=ur.departCodeOfpatient)";
+ if(StringUtils.isNotBlank(departOfpatientSearch)){
+ departOfpatientSearchSql = String.format(" and t1.patientArea='%s' ", departOfpatientSearch);
+ }
+ if (!seeAllDepart) {
+ String departCoding = AcegiHelper.getCurrentOrgUnitCode();
+ departLimitSql = String.format(" and ur.departCoding='%s' ", departCoding);
+ }
+ }
//按科室过滤
String departSearchSql = "";
@@ -12694,16 +12715,16 @@
}
String sql = String.format("select t1.departCode,min(t1.departName) departName,t1.patientArea,min(t1.goodsName) goodsName,t1.price,sum(t1.amount) amount,sum(t1.amount*t1.price) total from ("
- + "select 'tousse' type,ti.tousseDefinition_id goodsId,ur.depart departName,ur.departCoding departCode,ti.tousseName goodsName,1 amount,ur.patientArea patientArea,ti.fluctuationPrice price "
- + "from UseRecord ur inner join TousseInstance ti on ti.useRecord_id=ur.id where 1=1 %s"
+ + "select 'tousse' type,ti.tousseDefinition_id goodsId,ur.depart departName,ur.departCoding departCode,ti.tousseName goodsName,1 amount,%s patientArea,ti.fluctuationPrice price "
+ + "from UseRecord ur inner join TousseInstance ti on ti.useRecord_id=ur.id where 1=1 %s %s"
+ "union all "
- + "select 'disposableGoods' type,udgi.disposableGoodsId goodsId,ur.depart departName,ur.departCoding departCode,udgi.name goodsName,udgi.amount amount,ur.patientArea patientArea,case when dgb.cost is not null then dgb.cost else edg.price end price "
+ + "select 'disposableGoods' type,udgi.disposableGoodsId goodsId,ur.depart departName,ur.departCoding departCode,udgi.name goodsName,udgi.amount amount,%s patientArea,case when dgb.cost is not null then dgb.cost else edg.price end price "
+ "from UseRecord ur inner join UseDiposableGoodsItem udgi on udgi.userecord_id=ur.id "
+ "inner join barcodeDevice bd on bd.barcode=udgi.barcode "
- + "left join DisposableGoodsBatch dgb on dgb.id=bd.id left join ExpensiveDisposablegoods edg on edg.id=bd.id where 1=1 %s "
- + ") t1 where 1=1 %s %s "
+ + "left join DisposableGoodsBatch dgb on dgb.id=bd.id left join ExpensiveDisposablegoods edg on edg.id=bd.id where 1=1 %s %s"
+ + ") t1 where 1=1 %s %s %s"
+ "group by t1.departCode,t1.patientArea,t1.type,t1.goodsId,t1.price",
- betweenSql, betweenSql, departSearchSql, goodsSearchSql);
+ departSql, betweenSql,departLimitSql, departSql, betweenSql,departLimitSql, departSearchSql, goodsSearchSql, departOfpatientSearchSql);
ResultSet result = objectDao.executeSql(sql);
@@ -12794,8 +12815,65 @@
}
return list;
}
-
@Override
+ public List getSummaryUseRecordVO(String startTime,
+ String endTime, String departOfpatientSearch) {
+
+ List list = new ArrayList();
+ if (StringUtils.isBlank(startTime) || StringUtils.isBlank(endTime)) {
+ return list;
+ }
+ //按时间段过滤
+ String betweenSql = " and ur.enteringDate between "
+ + dateQueryAdapter.dateConverAdapter2(startTime, "yyyy-mm-dd HH24:MI")
+ + " and " + dateQueryAdapter.dateConverAdapter2(endTime, "yyyy-mm-dd HH24:MI") + " ";
+ String departSql = "(select ou.name from OrgUnit ou where departCodeOfpatient is not null and ou.orgUnitCoding=ur.departCodeOfpatient)";
+ String departOfpatientSearchSql = "";
+ if(StringUtils.isNotBlank(departOfpatientSearch)){//病人所在科室过滤
+ departOfpatientSearchSql = String.format(" and t1.departName='%s' ", departOfpatientSearch);
+ }
+ //是否有权限查看所有科室,如果没有只能查看自己科室
+ boolean seeAllDepart = operationManager.isCurrentUserHaveAnyOperation("SSTS_USERECORD_ForGoodsAndDepart");
+ String departSearchSql = "";
+ if (!seeAllDepart) {
+ String departCoding = AcegiHelper.getCurrentOrgUnitCode();
+ departSearchSql = String.format(" and ur.departCoding='%s' ", departCoding);
+ System.out.println("-false");
+ }else{
+ System.out.println("-true");
+ }
+ String sql = String.format("select t1.departName,sum(t1.amount) totalAmount,sum(t1.amount*t1.price) totalPrice from ("
+ + "select 1 amount,%s departName,ur.departCoding departCode,ti.fluctuationPrice price "
+ + "from UseRecord ur inner join TousseInstance ti on ti.useRecord_id=ur.id where 1=1 %s %s"
+ + "union all "
+ + "select udgi.amount amount,%s departName,ur.departCoding departCode,case when dgb.cost is not null then dgb.cost else edg.price end price "
+ + "from UseRecord ur inner join UseDiposableGoodsItem udgi on udgi.userecord_id=ur.id "
+ + "inner join barcodeDevice bd on bd.barcode=udgi.barcode "
+ + "left join DisposableGoodsBatch dgb on dgb.id=bd.id left join ExpensiveDisposablegoods edg on edg.id=bd.id where 1=1 %s %s "
+ + ") t1 where 1=1 %s"
+ + "group by t1.departName",
+ departSql, betweenSql, departSearchSql, departSql, betweenSql, departSearchSql, departOfpatientSearchSql);
+ ResultSet result = objectDao.executeSql(sql);
+ try {
+ while(result.next()){
+ String departName = StringTools.defaultString(result.getString("departName"));
+ Long totalAmount = result.getLong("totalAmount");
+ Double totalPrice = result.getDouble("totalPrice");
+ totalPrice = (totalPrice != null ? totalPrice : 0D);
+ SummaryUseRecordVO item = new SummaryUseRecordVO();
+ item.setDepartName(departName);
+ item.setTotalAmount(totalAmount);
+ item.setTotalPrice(totalPrice);
+ list.add(item);
+ }
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }finally {
+ DatabaseUtil.closeResultSetAndStatement(result);
+ }
+ return list;
+ }
+ @Override
public List getFormInstanceData(String startDate,String endDate,String departCoding,String formName) {
List vos = new ArrayList();
if (StringUtils.isNotBlank(startDate)
Index: ssts-web/src/main/webapp/jasperRtp/summaryUseRecordForPatientAreaAndDepart.jasper
===================================================================
diff -u
Binary files differ
Index: ssts-web/src/main/webapp/jasperRtp/summaryUseRecordForGoodsAndDepart.jasper
===================================================================
diff -u
Binary files differ
Index: ssts-web/src/main/webapp/homepage/menuconfigure.js
===================================================================
diff -u -r27208 -r27366
--- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 27208)
+++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 27366)
@@ -597,6 +597,8 @@
{hidden :SSTS_USERECORD_Item,text:"使用记录录入明细报表",href:WWWROOT+'/disinfectsystem/reportforms/useRecordItemView.jsp',hrefTarget:linkTarget,leaf:true},
{hidden :SSTS_USERECORD_OperatorTotal,text:"使用记录人员汇总报表",href:WWWROOT+'/disinfectsystem/reportforms/useRecordOperatorTotalView.jsp',hrefTarget:linkTarget,leaf:true},
{hidden :SSTS_USERECORD_ForGoods,text:"使用记录物品分类汇总表",href:WWWROOT+'/disinfectsystem/reportforms/summaryUseRecordForGoodsView.jsp',hrefTarget:linkTarget,leaf:true},
+ {hidden :!sstsConfig.enableUseRecordByPatientDept,text:"使用记录物品分类汇总表 -病人所在科室",href:WWWROOT+'/disinfectsystem/reportforms/summaryUseRecordForGoodsAndDepartView.jsp',hrefTarget:linkTarget,leaf:true},
+ {hidden :!sstsConfig.enableUseRecordByPatientDept,text:"使用记录物品汇总表",href:WWWROOT+'/disinfectsystem/reportforms/summaryUseRecordView.jsp',hrefTarget:linkTarget,leaf:true},
{hidden :SSTS_SterilizingStoveUseCountReport,text:"灭菌炉使用次数统计报表",href:WWWROOT+'/disinfectsystem/reportforms/sterilizingStoveUseCountView.jsp',hrefTarget:linkTarget,leaf:true},
{hidden :SSTS_TousseWorkLoadTotalReport,text:(sstsConfig.tousseWorkLoadName ? sstsConfig.tousseWorkLoadName : "器械包工作量统计报表"),href:WWWROOT+'/disinfectsystem/reportforms/tousseWorkLoadView.jsp',hrefTarget:linkTarget,leaf:true},
{hidden :SSTS_CleaningAreaWorkloadForUser,text:'清洗区人员工作量统计报表',href:WWWROOT+'/disinfectsystem/reportforms/cleaningAreaWorkloadForUser.jsp',hrefTarget:linkTarget,leaf:true},
Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordForGoodsAndDepartView.js
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordForGoodsAndDepartView.js (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/reportforms/summaryUseRecordForGoodsAndDepartView.js (revision 27366)
@@ -0,0 +1,231 @@
+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 departSearch = $Id('departSearch').value;
+ var departOfpatientSearch = $Id('departOfpatientSearch').value;
+ var goodsSearch = $Id('goodsSearch').value;
+
+ myMask = new Ext.LoadMask(Ext.getBody(), {
+ msg: '正在加载,请稍候!',
+ removeMask: true
+ });
+ myMask.show();
+ window.open(WWWROOT+"/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do" +
+ "?jasperreportName=summaryUseRecordForDepartmentAndDepart.jasper&reportName=summaryUseRecordForGoods" +
+ "&startDay=" + startTime +
+ "&endDay=" + endTime +
+ "&departColumnName=" + "病人所在科室" +
+ "&departSearch=" + departSearch +
+ "&departOfpatientSearch=" + departOfpatientSearch +
+ "&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 : 'name',mapping : 'name'}
+ ]);
+ //物品选择下拉框数据源
+ var comboGoodsStore = new Ext.data.Store({
+ proxy : new Ext.data.HttpProxy({
+ url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!searchAllTousseAndAllDisposableGoods.do'
+ }),
+ reader : new Ext.data.JsonReader({
+ root : 'data'
+ },comboGoodsRecord)
+ });
+
+
+ var dt = new Date();
+ var startDayofMonth = dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/01";
+
+ 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',
+ labelWidth : 60,
+ items : [{
+ layout:'form',
+ width:230,
+ items:[{
+ xtype : 'datefieldWithMin',
+ fieldLabel : '开始日期',
+ id : 'startTime',
+ name : 'startTime',
+ format : 'Y-m-d H:i:s',
+ allowBlank : true,
+ anchor : '95%',
+ theHours : 0,
+ theMinutes : 0,
+ value: new Date(startDayofMonth)
+ }]
+ },{
+ layout:'form',
+ width:230,
+ items:[{
+ xtype : 'datefieldWithMin',
+ fieldLabel : '结束日期',
+ id : 'endTime',
+ name : 'endTime',
+ format : 'Y-m-d H:i:s',
+ allowBlank : true,
+ anchor : '95%',
+ theHours : 23,
+ theMinutes : 59,
+ value: new Date()
+ }]
+ },{
+ layout:'form',
+ width:260,
+ labelWidth:100,
+ 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,
+ value : !isFirstRoomPeople ? orgName : '',
+ triggerAction : 'all',
+ hideTrigger : true,
+ typeAhead : false,
+ allowBlank : true
+ }]
+ },{
+ layout:'form',
+ width:260,
+ labelWidth:100,
+ items:[{
+ xtype : 'combo',
+ id : 'departOfpatientSearch',
+ name : 'departOfpatientSearch',
+ queryParam : 'spell',
+ fieldLabel : '病人所在科室',
+ minChars : 0,
+ valueField : 'id',
+ displayField : 'name',
+ store : departJsonStore,
+ forceSelection : true,
+ lazyInit : true,
+ anchor : '95%',
+ listWidth:200,
+ disabled :!isFirstRoomPeople,
+ value : !isFirstRoomPeople ? orgName : '',
+ triggerAction : 'all',
+ hideTrigger : true,
+ typeAhead : false,
+ allowBlank : true
+ }]
+ },{
+ layout:'form',
+ width:300,
+ 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();
+ }
+ }
+ }
+ }]
+ }]
+ }],
+ buttons:[{
+ xtype : 'button',
+ text : '查询',
+ minWidth : 70,
+ iconCls : 'icon_search',
+ handler : function() {
+ reloadReport();
+ }
+ },{
+ xtype : 'button',
+ text : '重置',
+ minWidth : 70,
+ iconCls : 'icon_set',
+ handler : function() {
+ form.getForm().reset();
+ $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
+ }]
+ });
+});
\ No newline at end of file
Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/SummaryUseRecordVO.java
===================================================================
diff -u
--- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/SummaryUseRecordVO.java (revision 0)
+++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/SummaryUseRecordVO.java (revision 27366)
@@ -0,0 +1,48 @@
+package com.forgon.disinfectsystem.jasperreports.javabeansource;
+
+/**
+ * 使用记录物品汇总表的javabean(病人所属科室)
+ * @author zc.li 2019-12-17
+ */
+public class SummaryUseRecordVO {
+
+ /**
+ * 病人所在科室
+ */
+ private String departName;
+
+ /**
+ * 器械包总价
+ */
+ private Double totalPrice;
+
+ /**
+ * 器械包总数
+ */
+ private Long totalAmount;
+
+ public String getDepartName() {
+ return departName;
+ }
+
+ public void setDepartName(String departName) {
+ this.departName = departName;
+ }
+
+ public Double getTotalPrice() {
+ return totalPrice;
+ }
+
+ public void setTotalPrice(Double totalPrice) {
+ this.totalPrice = totalPrice;
+ }
+
+ public Long getTotalAmount() {
+ return totalAmount;
+ }
+
+ public void setTotalAmount(Long totalAmount) {
+ this.totalAmount = totalAmount;
+ }
+
+}