Index: ssts-web/src/main/webapp/disinfectsystem/config/dgshlyy/print/printConfig.js =================================================================== diff -u -r34413 -r34459 --- ssts-web/src/main/webapp/disinfectsystem/config/dgshlyy/print/printConfig.js (.../printConfig.js) (revision 34413) +++ ssts-web/src/main/webapp/disinfectsystem/config/dgshlyy/print/printConfig.js (.../printConfig.js) (revision 34459) @@ -1174,6 +1174,100 @@ LODOP.ADD_PRINT_HTM(tableTop,tableLeft,tableWidth,tableHeight,""+tableHtml+""); } + +//供应室出库统计表 +var monthlyReportByDeptConfig = { + title:{ + label : "供应室出库统计表", fontSize : 20 + }, + pageSize:['21.8cm','14cm'], + header : [ + // 页眉 + { + label: '统计日期:', + left: 0, + dataIndex: "date", + top: 0 + }, { + label: '第#页 / 共&页', + left: 675, + top: 0 + } + ], + goodsTable :{ + fontSize: 14, + rowHeight: 30, + tableWidth:780, + columns: [{ + align: "center", + dataIndex: "depart", + header: "科室", + width: 100 + }, { + align: "center", + dataIndex: "externalCode", + header: "物资编码", + width: 100 + }, { + align: "center", + dataIndex: "goodsName", + header: "物资名称", + width: 100 + }, { + align: "center", + dataIndex: "specification", + header: "规格", + width: 80 + }, { + align: "center", + dataIndex: "unit", + header: "单位", + width: 80 + }, { + align: "center", + dataIndex: "batchNumber", + header: "批号", + width: 80 + }, { + align: "center", + dataIndex: "price", + header: "单价", + width: 80 + }, { + align: "center", + dataIndex: "amount", + header: "数量", + width: 80 + }, { + align: "center", + dataIndex: "settlementPrice", + header: "金额", + width: 80 + }] + }, + footer:[{ + label: '发货人:', + dataIndex: "sender", + left: 0, + top: 0 + }, { + label: '收货人:', + dataIndex: "", + left: 205, + top: 0 + }, { + label: '制单人:', + dataIndex: "printUser", + left: 390, + top: 0 + }, { + label: '打印时间:', + dataIndex: "printData", + left: 555, + top: 0 + }] +} + var printConfig = { //发货计划单 invoicePlan : invoicePlanPrintConfig, @@ -1248,7 +1342,9 @@ "textOfTotalAmountOfInstruments":"总数量" }, //打印器械包明细单 - tousseDefinitionMaterials:tousseDefinitionMaterialsConfig_qifuyy + tousseDefinitionMaterials:tousseDefinitionMaterialsConfig_qifuyy, + //供应室出库统计表 + monthlyReportByDept:monthlyReportByDeptConfig }; //================================新增配置======================================= //打印机映射 Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyDetailDSInvoiceItemView.jsp =================================================================== diff -u -r30196 -r34459 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyDetailDSInvoiceItemView.jsp (.../departmentMonthlyDetailDSInvoiceItemView.jsp) (revision 30196) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyDetailDSInvoiceItemView.jsp (.../departmentMonthlyDetailDSInvoiceItemView.jsp) (revision 34459) @@ -17,6 +17,9 @@ request.setAttribute("orgUnitName",orgUnitName); request.setAttribute("orgUnitCoding",orgUnitCoding); request.setAttribute("supplyRoomType",supplyRoomType); + LoginUserData userData = AcegiHelper.getLoginUser(); + String userName = userData.getUserName(); + String userFullName = userData.getUserFullName(); %> @@ -39,7 +44,10 @@ - + + + + Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyDetailDSInvoiceItemView.js =================================================================== diff -u -r34192 -r34459 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyDetailDSInvoiceItemView.js (.../departmentMonthlyDetailDSInvoiceItemView.js) (revision 34192) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyDetailDSInvoiceItemView.js (.../departmentMonthlyDetailDSInvoiceItemView.js) (revision 34459) @@ -6,6 +6,171 @@ var limitDepart = true; var departMode; var ALL = '全部'; +var newPrintConfig; +function getHtml(obj, pageIndex, pageSize) { + var titleName = '供应室出库统计表'; + var titleSize = 15; + var headerArr = [{ + label: '统计日期:', + dataIndex: "date", + left: 0, + top: 0 + }, { + label: '第' + pageIndex + '页 / 共' + pageSize + '页', + left: 675, + top: 0 + }]; + var goodsTable = { + fontSize: 14, + rowHeight: 30, + tableWidth: 800, + columns: [{ + align: "center", + dataIndex: "depart", + header: "科室", + width: 100 + }, { + align: "center", + dataIndex: "externalCode", + header: "物资编码", + width: 100 + }, { + align: "center", + dataIndex: "goodsName", + header: "物资名称", + width: 100 + }, { + align: "center", + dataIndex: "specification", + header: "规格", + width: 80 + }, { + align: "center", + dataIndex: "unit", + header: "单位", + width: 80 + }, { + align: "center", + dataIndex: "batchNumber", + header: "批号", + width: 80 + }, { + align: "center", + dataIndex: "price", + header: "单价", + width: 80 + }, { + align: "center", + dataIndex: "amount", + header: "数量", + width: 80 + }, { + align: "center", + dataIndex: "settlementPrice", + header: "金额", + width: 80 + }] + }; + var footerArr = [{ + label: '发货人:', + dataIndex: "sender", + left: 0, + top: 0 + }, { + label: '收货人:', + dataIndex: "", + left: 205, + top: 0 + }, { + label: '制单人:', + dataIndex: "printUser", + left: 390, + top: 0 + }, { + label: '打印时间:', + dataIndex: "printData", + left: 555, + top: 0 + }]; + var startTime = Ext.getCmp('startTime').getRawValue(); + var endTime = Ext.getCmp('endTime').getRawValue(); + var startDateAndEndDate = startTime + ' 至 ' + endTime; + if (newPrintConfig) { + if (newPrintConfig.title) { + titleName = newPrintConfig.title.label || ''; + titleSize = newPrintConfig.title.fontSize || 15; + } + if (newPrintConfig.goodsTable) { + goodsTable = newPrintConfig.goodsTable; + } + if (newPrintConfig.header) { + for (var k = 0; k < newPrintConfig.header.length; k++) { + newPrintConfig.header[k].label.replace('#', pageIndex); + newPrintConfig.header[k].label.replace('&', pageSize); + } + } + if (newPrintConfig.footer) { + footerArr = newPrintConfig.footer; + } + } + var tableWidth = goodsTable.tableWidth; + var html = '

' + titleName + '

'; + html += '
'; + for (var k = 0; k < headerArr.length; k++) { + var value = headerArr[k].label; + if (headerArr[k].dataIndex == 'date') { + value = headerArr[k].label + startDateAndEndDate; + } + html += '' + value + ''; + } + html += '
'; + html += '
'; + html += ''; + html += ''; + html += ''; + for (var m = 0; m < goodsTable.columns.length; m++) { + html += ''; + } + html += ''; + html += ''; + html += ''; + for (var k = 0; k < obj.items.length; k++) { + html += ''; + if (k == 0) { + var dataIndex = goodsTable.columns[0].dataIndex; + html += ''; + } + for (var m = 1; m < goodsTable.columns.length; m++) { + var dataIndex = goodsTable.columns[m].dataIndex; + var value = obj.items[k][dataIndex] || ''; + html += ''; + } + html += ''; + } + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += '
' + goodsTable.columns[m].header + '
' + obj[dataIndex] + '' + value + '
合计:' + obj.totalPrice + '
'; + html += '
'; + html += '
'; + for (var k = 0; k < footerArr.length; k++) { + var value = ''; + if (footerArr[k].dataIndex == 'sender') { + value = currentUserFullName + } else if (footerArr[k].dataIndex == 'printUser') { + value = currentUserFullName + } else if (footerArr[k].dataIndex == 'printData') { + var dt = new Date(); + value = dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/" + dt.getDate(); + } + html += '' + footerArr[k].label + value + ''; + } + html += '
'; + return html; +} + Ext.onReady(function () { Ext.QuickTips.init(); if (supplyRoomType == supplyRoomTypeFirstSupplyRoom || supplyRoomType == supplyRoomTypeSecondSupplyRoom || supplyRoomType == supplyRoomTypeExpensiveGoods) { @@ -58,7 +223,7 @@ } return patternOfReport; } - function reloadReport() { + function getSearchValue(searchStatus) { var startTime = $Id('startTime').value; var endTime = $Id('endTime').value; //var departSearch = $Id('departSearch').value; @@ -170,47 +335,76 @@ if ("DepartmentMonthDetail.jasper" == jasperreportFileName && sstsConfig.hasOwnProperty('showMaterialsAmountColumnOfDetailMonthReport') && sstsConfig.showMaterialsAmountColumnOfDetailMonthReport) { jasperreportFileName = "departmentMonthDetailShowMaterialsAmount.jasper"; } - if(showSendTime){ - if("DepartmentMonthDetail.jasper" == jasperreportFileName){ + if (showSendTime) { + if ("DepartmentMonthDetail.jasper" == jasperreportFileName) { jasperreportFileName = "departmentMonthDetailShowSendTime.jasper"; - }else if("DepartmentMonthDetailIntegral.jasper" == jasperreportFileName){ + } else if ("DepartmentMonthDetailIntegral.jasper" == jasperreportFileName) { jasperreportFileName = "DepartmentMonthDetailIntegralShowSendTime.jasper"; - }else if("DepartmentMonthDetailOfSingleDepart.jasper" == jasperreportFileName){ + } else if ("DepartmentMonthDetailOfSingleDepart.jasper" == jasperreportFileName) { showResult('单个科室的明细核算月报不支持显查询发货日期'); Ext.getCmp('showSendTime').focus(); return false; - }else if("DepartmentMonthDetailSupplierNameAndDiscountPrice.jasper" == jasperreportFileName){ + } else if ("DepartmentMonthDetailSupplierNameAndDiscountPrice.jasper" == jasperreportFileName) { jasperreportFileName = "DepartmentMonthDetailSupplierNameAndDiscountPriceAndSendTime.jasper"; - }else if("DepartmentMonthDetailDiscountPrice.jasper" == jasperreportFileName){ + } else if ("DepartmentMonthDetailDiscountPrice.jasper" == jasperreportFileName) { jasperreportFileName = "DepartmentMonthDetailDiscountPriceAndSendTime.jasper"; - }else if("DepartmentMonthDetailSupplierName.jasper" == jasperreportFileName){ + } else if ("DepartmentMonthDetailSupplierName.jasper" == jasperreportFileName) { jasperreportFileName = "DepartmentMonthDetailSupplierNameAndSendTime.jasper"; - }else if("departmentMonthDetailShowMaterialsAmount.jasper" == jasperreportFileName){ + } else if ("departmentMonthDetailShowMaterialsAmount.jasper" == jasperreportFileName) { jasperreportFileName = "departmentMonthDetailShowMaterialsAmountAndSendTime.jasper"; } } - var url = WWWROOT + "/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do"; - var params = { - jasperreportName: jasperreportFileName, - departSearch: departSearch, - invoicePlanDepartCoding: invoicePlanDepartCoding, - startTime: startTime, - endTime: endTime, - tousseType: tousseType, - goodsType: goodsType, - searchType: searchType, - batch: batch, - showSendTime:showSendTime, - departCoding: departCoding, - disposableGoodsType: disposableGoodsType, - showCustonTousseAmount: showCustonTousseAmount, - patternOfReport: patternOfReport, - goodsNameSearch: goodsSearch, - showBatch: showBatch, - whetherToCharge:whetherToCharge, - departGroup: departGroupValue, - reportName: 'departmentMonthDetail' + if (searchStatus == 0) { + var params = { + jasperreportName: jasperreportFileName, + departSearch: departSearch, + invoicePlanDepartCoding: invoicePlanDepartCoding, + startTime: startTime, + endTime: endTime, + tousseType: tousseType, + goodsType: goodsType, + searchType: searchType, + batch: batch, + showSendTime: showSendTime, + departCoding: departCoding, + disposableGoodsType: disposableGoodsType, + showCustonTousseAmount: showCustonTousseAmount, + patternOfReport: patternOfReport, + goodsNameSearch: goodsSearch, + showBatch: showBatch, + whetherToCharge: whetherToCharge, + departGroup: departGroupValue, + reportName: 'departmentMonthDetail' + } + return params; + } else { + var params = { + departSearch: departSearch, + invoicePlanDepartCoding: invoicePlanDepartCoding, + startTime: startTime, + endTime: endTime, + tousseType: tousseType, + goodsType: goodsType, + searchType: searchType, + batch: batch, + showSendTime: showSendTime, + departCoding: departCoding, + disposableGoodsType: disposableGoodsType, + showCustonTousseAmount: showCustonTousseAmount, + patternOfReport: patternOfReport, + goodsNameSearch: goodsSearch, + showBatch: showBatch, + whetherToCharge: whetherToCharge, + departGroup: departGroupValue, + printByDepart: true, + reportName: 'departmentMonthDetail' + } + return params; } + } + function reloadReport() { + var params = getSearchValue(0); + var url = WWWROOT + "/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do"; searchReport(url, params); } @@ -623,7 +817,7 @@ allowBlank: true, store: invoicePlanDepartStore, mode: departMode, - multiSelectIsClear:false, + multiSelectIsClear: false, triggerAction: 'all', anchor: '95%', listeners: { @@ -657,7 +851,7 @@ allowBlank: true, store: appDepartJsonStore, mode: departMode, - multiSelectIsClear:false, + multiSelectIsClear: false, triggerAction: 'all', anchor: '95%', listeners: { @@ -690,7 +884,7 @@ queryParam: 'spell', allowBlank: true, store: departGroupStore, - multiSelectIsClear:false, + multiSelectIsClear: false, editable: false, mode: 'remote', triggerAction: 'all', @@ -735,7 +929,7 @@ triggerAction: 'all', anchor: '95%' }] - },{ + }, { columnWidth: .25, layout: 'form', labelWidth: 120, @@ -761,7 +955,7 @@ columnWidth: .25, layout: 'form', labelWidth: 150, - hidden:!sstsConfig.enableWheterToChargeFieldOfDisposableGoods, + hidden: !sstsConfig.enableWheterToChargeFieldOfDisposableGoods, items: [{ xtype: 'combo', fieldLabel: '一次性物品是否收费', @@ -771,7 +965,7 @@ displayField: 'value', store: new Ext.data.SimpleStore({ fields: ['value'], - data: [['全部'],['是'], ['否']] + data: [['全部'], ['是'], ['否']] }), forceSelection: true, value: '全部', @@ -883,6 +1077,43 @@ } departGroupStore.load(); } + }, { + xtype: 'button', + text: '按科室单独打印', + minWidth: 70, + hidden: !sstsConfig.seperatePrintDetailedAccountingMonthlyReportByDept, + handler: function () { + var url = WWWROOT + '/jasperreports/jasperreportsAction!queryDataSourceList.do'; + var params = getSearchValue(1); + Ext.Ajax.request({ + url: url, + async: false, + params: params, + success: function (response) { + var result = Ext.decode(response.responseText); + if (result.data.length > 0) { + doGetLodop(); + newPrintConfig = printConfig.monthlyReportByDept; + if (newPrintConfig && newPrintConfig.pageSize) { + LODOP.SET_PRINT_PAGESIZE(1, newPrintConfig.pageSize[0], newPrintConfig.pageSize[1], ''); + } else { + LODOP.SET_PRINT_PAGESIZE(1, '21.8cm', '14cm', ''); + } + for (var i = 0; i < result.data.length; i++) { + var html = getHtml(result.data[i], (i + 1), result.data.length); + LODOP.ADD_PRINT_HTM(10, 10, "95%", "100%", "" + html + ""); + LODOP.PRINT(); + } + } else { + showResult('暂无数据!'); + } + myMask.hide(); + }, + failure: function (response, options) { + showResult(response.responseText); + } + }); + } }] }); Index: ssts-web/src/main/webapp/disinfectsystem/config/dgshlyy/config.js =================================================================== diff -u -r34413 -r34459 --- ssts-web/src/main/webapp/disinfectsystem/config/dgshlyy/config.js (.../config.js) (revision 34413) +++ ssts-web/src/main/webapp/disinfectsystem/config/dgshlyy/config.js (.../config.js) (revision 34459) @@ -178,5 +178,7 @@ // 发货界面启用保存并打印按钮 // enableSaveAndPrintWhenInvoice: true, // 打印标识牌时,是否在单独的一行打印标识牌的编号 - printIdNumberOnSeperateRow: true + printIdNumberOnSeperateRow: true, + //启用按科室单独打印明细核算月报 + seperatePrintDetailedAccountingMonthlyReportByDept:true } \ No newline at end of file