Index: ssts-web/src/main/webapp/disinfectsystem/config/gzzyyfs/config.js
===================================================================
diff -u -r33653 -r35388
--- ssts-web/src/main/webapp/disinfectsystem/config/gzzyyfs/config.js (.../config.js) (revision 33653)
+++ ssts-web/src/main/webapp/disinfectsystem/config/gzzyyfs/config.js (.../config.js) (revision 35388)
@@ -69,6 +69,8 @@
enableUseRecordByChiefSurgeonDoctorsAccountingDepartment:true,
//启用一次性物品定义的是否收费字段
enableWheterToChargeFieldOfDisposableGoods:true,
+ //器械包工作量统计报表扩展列配置
+ extendedColumnConfigOfTousseWork:["tousseGroupName","urgentAmount","packagingAmount"],
//是否启用加急功能
enableUrgentFunction:true
}
\ No newline at end of file
Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/tousseWorkLoadView.js
===================================================================
diff -u -r35382 -r35388
--- ssts-web/src/main/webapp/disinfectsystem/reportforms/tousseWorkLoadView.js (.../tousseWorkLoadView.js) (revision 35382)
+++ ssts-web/src/main/webapp/disinfectsystem/reportforms/tousseWorkLoadView.js (.../tousseWorkLoadView.js) (revision 35388)
@@ -1,6 +1,323 @@
var entityName = sstsConfig.tousseWorkLoadName ? sstsConfig.tousseWorkLoadName : "器械包工作量统计报表";
var form;
+var widthArr = [];
+var tousseGroupNameConfig = false;
+var urgentAmountConfig = false;
+var packagingAmountConfig = false;
+var is2Column = true;
+if (sstsConfig.extendedColumnConfigOfTousseWork) {
+ if (sstsConfig.extendedColumnConfigOfTousseWork.indexOf("tousseGroupName") >= 0) {
+ tousseGroupNameConfig = true;
+ }
+ if (sstsConfig.extendedColumnConfigOfTousseWork.indexOf("urgentAmount") >= 0) {
+ urgentAmountConfig = true;
+ }
+ if (sstsConfig.extendedColumnConfigOfTousseWork.indexOf("packagingAmount") >= 0) {
+ packagingAmountConfig = true;
+ }
+}
+
+function getTableHtml(result, statType) {
+ var materialColumnName = "";
+ if (result.parametMap) {
+ materialColumnName = result.parametMap.materialColumnName;
+ }
+ var html = "
";
+ return html;
+}
+//获取表内容的html
+function getTableBodyHtml(data, statType) {
+ var html = '';
+ var tousseAmount = 0;
+ var tousseGroupAmount = 0;
+ var applicationAmountSum = 0;
+ var recycleAmountSum = 0;
+ var inventoryAmountSum = 0;
+ var inventoryMaterialAmountSum = 0;
+ var washAmountSum = 0;
+ var washMaterialAmountSum = 0;
+ var packingAmountSum = 0;
+ var packingMaterialAmountSum = 0;
+ var reviewAmountSum = 0;
+ var sterilizationAmountSum = 0;
+ var invoiceAmountSum = 0;
+ var invoiceMaterialAmountSum = 0;
+ var packagingAmountSum = 0;
+ var packagingMaterialAmountSum = 0;
+ var signAmountSum = 0;
+ var urgentAmountSum = 0;
+ var tousseGroupArr = [];
+ for (var i = 0; i < data.length; i++) {
+ var dataItem = data[i];
+ var childrens = dataItem.childrens;
+ for (var j = 0; j < childrens.length; j++) {
+ var childrensItem = childrens[j];
+ html += '';
+ if (j == 0) {
+ html += getBodyTd(dataItem.tousseType, childrens.length, 1);
+ }
+ if (statType == 'detailQuery') {
+ html += getBodyTd(childrensItem.tousseName, 1, 1);
+ if (tousseGroupNameConfig) {
+ html += getBodyTd(childrensItem.tousseGroupName, 1, 1);
+ if (childrensItem.tousseGroupName !== '') {
+ if (tousseGroupArr.indexOf(childrensItem.tousseGroupName) == -1) {
+ tousseGroupArr.push(childrensItem.tousseGroupName)
+ tousseGroupAmount++;
+ }
+ }
+ }
+ }
+ html += getBodyTd(childrensItem.applicationAmount, 1, 1);
+ html += getBodyTd(childrensItem.recycleAmount, 1, 1);
+ html += getBodyTd(childrensItem.inventoryAmount, 1, 1);
+ html += getBodyTd(childrensItem.inventoryMaterialAmount, 1, 1);
+ html += getBodyTd(childrensItem.washAmount, 1, 1);
+ html += getBodyTd(childrensItem.washMaterialAmount, 1, 1);
+ html += getBodyTd(childrensItem.packingAmount, 1, 1);
+ html += getBodyTd(childrensItem.packingMaterialAmount, 1, 1);
+ if (packagingAmountConfig) {
+ html += getBodyTd(childrensItem.packagingAmount, 1, 1);
+ html += getBodyTd(childrensItem.packagingMaterialAmount, 1, 1);
+ }
+ html += getBodyTd(childrensItem.reviewAmount, 1, 1);
+ html += getBodyTd(childrensItem.sterilizationAmount, 1, 1);
+ html += getBodyTd(childrensItem.invoiceAmount, 1, 1);
+ html += getBodyTd(childrensItem.invoiceMaterialAmount, 1, 1);
+ if (urgentAmountConfig) {
+ html += getBodyTd(childrensItem.urgentAmount || 0, 1, 1);
+ urgentAmountSum += childrensItem.urgentAmount || 0;
+ }
+ html += getBodyTd(childrensItem.signAmount, 1, 1);
+ html += ' ';
+ tousseAmount++;
+ applicationAmountSum += childrensItem.applicationAmount;
+ recycleAmountSum += childrensItem.recycleAmount;
+ inventoryAmountSum += childrensItem.inventoryAmount;
+ inventoryMaterialAmountSum += childrensItem.inventoryMaterialAmount;
+ washAmountSum += childrensItem.washAmount;
+ washMaterialAmountSum += childrensItem.washMaterialAmount;
+ packingAmountSum += childrensItem.packingAmount;
+ packingMaterialAmountSum += childrensItem.packingMaterialAmount;
+ reviewAmountSum += childrensItem.reviewAmount;
+ sterilizationAmountSum += childrensItem.sterilizationAmount;
+ invoiceAmountSum += childrensItem.invoiceAmount;
+ invoiceMaterialAmountSum += childrensItem.invoiceMaterialAmount;
+ packagingAmountSum += childrensItem.packagingAmount;
+ packagingMaterialAmountSum += childrensItem.packagingMaterialAmount;
+ signAmountSum += childrensItem.signAmount;
+ }
+ }
+ html += '';
+ html += getHeadTd('合计', '', 1, 1);
+ if (statType == 'detailQuery') {
+ html += getHeadTd(tousseAmount, '', 1, 1);
+ if (tousseGroupNameConfig) {
+ html += getHeadTd(tousseGroupAmount, 1, 1);
+ }
+ }
+ html += getHeadTd(applicationAmountSum, '', 1, 1);
+ html += getHeadTd(recycleAmountSum, '', 1, 1);
+ html += getHeadTd(inventoryAmountSum, '', 1, 1);
+ html += getHeadTd(inventoryMaterialAmountSum, '', 1, 1);
+ html += getHeadTd(washAmountSum, '', 1, 1);
+ html += getHeadTd(washMaterialAmountSum, '', 1, 1);
+ html += getHeadTd(packingAmountSum, '', 1, 1);
+ html += getHeadTd(packingMaterialAmountSum, '', 1, 1);
+ if (packagingAmountConfig) {
+ html += getHeadTd(packagingAmountSum, '', 1, 1);
+ html += getHeadTd(packagingMaterialAmountSum, '', 1, 1);
+ }
+ html += getHeadTd(reviewAmountSum, '', 1, 1);
+ html += getHeadTd(sterilizationAmountSum, '', 1, 1);
+ html += getHeadTd(invoiceAmountSum, '', 1, 1);
+ html += getHeadTd(invoiceMaterialAmountSum, '', 1, 1);
+ if (urgentAmountConfig) {
+ html += getHeadTd(urgentAmountSum, '', 1, 1);
+ }
+ html += getHeadTd(signAmountSum, '', 1, 1);
+ html += ' ';
+ return html;
+}
+//获取表头html
+function getTableHeadHtml(materialColumnName, statType) {
+ var html = '';
+ var columnNameArray = getTableHeaderColumnArray(materialColumnName, statType);
+ html += '';
+ for (var i = 0; i < columnNameArray.length; i++) {
+ var item = columnNameArray[i];
+ if (item.children) {
+ html += getHeadTd(item.name, item.width, 1, 2);
+ } else {
+ html += getHeadTd(item.name, item.width, 2, 1);
+ }
+ widthArr.push(columnNameArray[i].width);
+ }
+ html += ' ';
+ html += '';
+ for (var i = 0; i < columnNameArray.length; i++) {
+ var item = columnNameArray[i];
+ if (item.children) {
+ for (var j = 0; j < item.children.length; j++) {
+ html += getHeadTd(item.children[j].name, item.children[j].width, 1, 1);
+ }
+ }
+ }
+ html += ' ';
+ return html;
+}
+//获取表头列
+function getTableHeaderColumnArray(materialColumnName, statType) {
+ var columnNameArray = [{
+ name: '器械包类型',
+ width: 80
+ }];
+ if (statType == 'detailQuery') {
+ columnNameArray.push({
+ name: '器械包名称',
+ width: 120
+ })
+ if (tousseGroupNameConfig) {
+ columnNameArray.push({
+ name: '器械包分组',
+ width: 120
+ })
+ }
+ }
+ columnNameArray.push({
+ name: '申请数量',
+ width: 80
+ }, {
+ name: '回收数量',
+ width: 80
+ }, {
+ name: '清点数量',
+ width: 120,
+ children: [{
+ name: '包数',
+ width: 60
+ }, {
+ name: '件数',
+ width: 60
+ }]
+ }, {
+ name: '清洗数量',
+ width: 120,
+ children: [{
+ name: '包数',
+ width: 60
+ }, {
+ name: '件数',
+ width: 60
+ }]
+ }, {
+ name: '装配数量',
+ width: 120,
+ children: [{
+ name: '包数',
+ width: 60
+ }, {
+ name: '件数',
+ width: 60
+ }]
+ })
+ if (packagingAmountConfig) {
+ columnNameArray.push({
+ name: '包装数量',
+ width: 120,
+ children: [{
+ name: '包数',
+ width: 60
+ }, {
+ name: '件数',
+ width: 60
+ }]
+ })
+ }
+ columnNameArray.push({
+ name: '审核数量',
+ width: 80
+ }, {
+ name: '灭菌数量',
+ width: 80
+ }, {
+ name: '发货数量',
+ width: 120,
+ children: [{
+ name: '包数',
+ width: 60
+ }, {
+ name: '件数',
+ width: 60
+ }]
+ })
+ if (urgentAmountConfig) {
+ columnNameArray.push({
+ name: '加急数量',
+ width: 80
+ })
+ }
+ columnNameArray.push({
+ name: '签收数量',
+ width: 80
+ })
+ return columnNameArray;
+}
+
+//获取表头的td
+function getHeadTd(name, width, rowspan, colspan) {
+ var html = '' + name + ' ';
+ return html;
+}
+
+//获取表格的td
+function getBodyTd(value, rowspan, colspan, background) {
+ var html = '' + value + ' ';
+ return html;
+}
+
+//判断是否IE浏览器
+function isIE() {
+ if (!!window.ActiveXObject || "ActiveXObject" in window) {
+ return true;
+ } else {
+ return false;
+ }
+}
+
+function exportExcel(data, thisID) {
+ var fileName = data.fileName + data.fileType;
+ if (isIE()) {
+ var tableHtml = ' ';
+ tableHtml += data.html;
+ tableHtml += '';
+ tableHtml = Base64.encode(encodeURI(tableHtml));
+ var htmlTable = LZString.compressToEncodedURIComponent(tableHtml)
+ var jsFileName = "\\disinfectsystem\\reportforms\\js\\LZString.js";
+ document.getElementById('thisIframe').contentWindow.document.getElementById('htmlFileName').value = fileName;
+ document.getElementById('thisIframe').contentWindow.document.getElementById('jsFileName').value = jsFileName;
+ document.getElementById('thisIframe').contentWindow.document.getElementById('htmlTable').value = htmlTable;
+ document.getElementById('thisIframe').contentWindow.document.getElementById('submitForm').click();
+ exportMask.hide();
+ } else {
+ XSExport.excelExport(
+ thisID,
+ data.fileName,
+ is2Column,
+ widthArr
+ );
+ exportMask.hide();
+ }
+}
+
/**
* 加载报表的数据
*
@@ -56,7 +373,7 @@
jasperreportName = 'tousseWorkLoadSum.jasper';
}
}
- var url = WWWROOT + '/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do';
+ var url = WWWROOT + '/jasperreports/jasperreportsAction!queryDataSourceList.do';
var params = {
jasperreportName: jasperreportName,
startDay: startTime,
@@ -84,7 +401,22 @@
params.instrumentSetTypes = instrumentSetTypes;
}
- searchReport(url, params);
+ Ext.Ajax.request({
+ url: url,
+ async: false,
+ params: params,
+ success: function (response) {
+ var result = Ext.decode(response.responseText);
+ title = result.parametMap.title;
+ var tableHtml = "" + title + "
";
+ tableHtml += getTableHtml(result, statType);
+ document.getElementById('thisIframe').contentWindow.document.getElementById('table').innerHTML = tableHtml;
+ myMask.hide();
+ },
+ failure: function (response, options) {
+ showResult(response.responseText);
+ }
+ });
}
@@ -733,7 +1065,31 @@
autoScroll: true,//自动显示滚动条
collapsible: true,//允许展开和收缩
bodyPadding: 5,
- html: ''
+ tbar: [{
+ text: '导出',
+ handler: function () {
+ var html = document.getElementById('thisIframe').contentWindow.document.getElementById('table').innerHTML;
+ if (html !== '') {
+ var startTime = $Id('startTime').value;
+ var endTime = $Id('endTime').value;
+ var title = '器械包工作量统计报表(' + startTime + ' ~ ' + endTime + ')';
+ var data = {
+ fileName: title,
+ fileType: ".xls",//文档类型 经测试 可以doc xls html 其他的自己去试
+ html: html
+ }
+ exportMask = new Ext.LoadMask(Ext.getBody(), {
+ msg: '正在导出文件,请稍候!',
+ removeMask: true
+ });
+ exportMask.show();
+ setTimeout(function () {
+ exportExcel(data, document.getElementById('thisIframe').contentWindow.document.getElementById('table'));
+ }, 1000);
+ }
+ }
+ }],
+ html: ''
});
Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/tousseWorkLoadView.jsp
===================================================================
diff -u -r29513 -r35388
--- ssts-web/src/main/webapp/disinfectsystem/reportforms/tousseWorkLoadView.jsp (.../tousseWorkLoadView.jsp) (revision 29513)
+++ ssts-web/src/main/webapp/disinfectsystem/reportforms/tousseWorkLoadView.jsp (.../tousseWorkLoadView.jsp) (revision 35388)
@@ -17,7 +17,14 @@
-
+
+
+
+
+
+
+
+