Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyView.js =================================================================== diff -u -r35654 -r35686 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyView.js (.../departmentMonthlyView.js) (revision 35654) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyView.js (.../departmentMonthlyView.js) (revision 35686) @@ -11,86 +11,58 @@ var limitDepart = true; var departMode; -function getTableHtml(data) { +function getTableHtml(data, titleInfoArr, branchesOfHospitalInfo) { if (sstsConfig.enableWheterToChargeFieldOfDisposableGoods) { var headerArr = {}; - var headerColumn = [{ - name: '一次性物品总价_可收费', - displayName: '一次性物品总价', - value: 0.0000 - }, { - name: '一次性物品总价_不可收费', - displayName: '一次性物品总价', - value: 0.0000 - }, { - name: '一次性物品总价_总价', - displayName: '一次性物品总价', - colspan: 3, - value: 0.0000 - }, { - name: '发货材料总价', - displayName: '发货材料总价', - rowspan: 2, - value: 0.0000 - }, { - name: '器械包总价', - displayName: '器械包总价', - rowspan: 2, - value: 0.0000 - }, { - name: '总价合计', - displayName: '总价合计', - value: 0.0000 - }, { - name: '一次性物品数量_可收费', - displayName: '一次性物品数量', - value: 0 - }, { - name: '一次性物品数量_不可收费', - displayName: '一次性物品数量', - value: 0 - }, { - name: '一次性物品数量_总数量', - displayName: '一次性物品数量', - colspan: 3, - value: 0 - }, { - name: '发货材料数量', - displayName: '发货材料数量', - rowspan: 2, - value: 0 - }, { - name: '器械包数量', - displayName: '器械包数量', - rowspan: 2, - value: 0 - }, { - name: '数量合计', - displayName: '数量合计', - value: 0 - }] + var headerTitle = titleInfoArr; + var thirdChildren = []; if (data.length > 0) { for (var i = 0; i < data.length; i++) { var department = data[i].department; var columnName = data[i].columnName; + var hospitalDistrict = data[i].hospitalDistrict; + if (enableMultipleBranchesOfHospital) { + department += ';' + hospitalDistrict + } if (!headerArr[department]) { headerArr[department] = {} - for (var j = 0; j < headerColumn.length; j++) { - headerArr[department][headerColumn[j].name] = headerColumn[j].value + for (var j = 0; j < headerTitle.length; j++) { + if (headerTitle[j].children) { + for (var k = 0; k < headerTitle[j].children.length; k++) { + headerArr[department][headerTitle[j].children[k].name] = 0; + var displayName = headerTitle[j].children[k].displayName; + if (displayName.indexOf('_可收费') >= 0) { + if (thirdChildren.indexOf('可收费') == -1) { + thirdChildren.push('可收费') + } + } + if (displayName.indexOf('_不可收费') >= 0) { + if (thirdChildren.indexOf('不可收费') == -1) { + thirdChildren.push('不可收费') + } + } + } + } } } if (columnName.indexOf('总价') >= 0) { headerArr[department][columnName] = data[i].money if (columnName.indexOf('一次性物品') >= 0) { - headerArr[department]['一次性物品总价_总价'] += data[i].money + headerArr[department]['一次性物品总价_总价'] += (data[i].money || 0) } - headerArr[department]['总价合计'] += data[i].money - } else if (columnName.indexOf('数量') >= 0) { + headerArr[department]['价格合计'] += data[i].money + } else if (columnName.indexOf('数量') >= 0 && columnName.indexOf('包内材料') == -1) { headerArr[department][columnName] = data[i].amount if (columnName.indexOf('一次性物品') >= 0) { - headerArr[department]['一次性物品数量_总数量'] += data[i].amount + headerArr[department]['一次性物品数量_总数'] += (data[i].amount || 0) } headerArr[department]['数量合计'] += data[i].amount + } else if (columnName.indexOf('包内材料') >= 0) { + headerArr[department][columnName] = data[i].amount + headerArr[department]['包内材料合计'] += (data[i].amount || 0) + } else if (columnName.indexOf('记支') >= 0) { + headerArr[department][columnName] = data[i].money + headerArr[department]['科室记支合计'] += (data[i].money || 0) } } } @@ -99,97 +71,124 @@ tableHtml += ""; tableHtml += ""; tableHtml += ""; - tableHtml += ""; - tableHtml += ""; - tableHtml += ""; - tableHtml += ""; - tableHtml += ""; + for (var i = 0; i < headerTitle.length; i++) { + if (headerTitle[i].rowspan && !headerTitle[i].colspan) { + tableHtml += ""; + } else if (!headerTitle[i].rowspan && headerTitle[i].colspan) { + tableHtml += ""; + } else if (headerTitle[i].rowspan && headerTitle[i].colspan) { + tableHtml += ""; + } else { + tableHtml += ""; + } + } tableHtml += ""; tableHtml += ""; - for (var i = 0; i < headerColumn.length; i++) { - if (headerColumn[i].name !== '总价合计' && headerColumn[i].name !== '数量合计' && headerColumn[i].name.indexOf('可收费') == -1) { - if (headerColumn[i].rowspan && !headerColumn[i].colspan) { - tableHtml += ""; - } else if (!headerColumn[i].rowspan && headerColumn[i].colspan) { - tableHtml += ""; - } else if (headerColumn[i].rowspan && headerColumn[i].colspan) { - tableHtml += ""; - } else { - tableHtml += ""; + for (var k = 0; k < headerTitle.length; k++) { + var headerColumn = headerTitle[k].children; + if (headerColumn) { + for (var i = 0; i < headerColumn.length; i++) { + if (headerColumn[i].name !== '价格合计' && headerColumn[i].name !== '数量合计' && headerColumn[i].name !== '科室记支合计' && headerColumn[i].name !== '包内材料合计' && headerColumn[i].displayName.indexOf('可收费') == -1) { + if (headerColumn[i].rowspan && !headerColumn[i].colspan) { + tableHtml += ""; + } else if (!headerColumn[i].rowspan && headerColumn[i].colspan) { + tableHtml += ""; + } else if (headerColumn[i].rowspan && headerColumn[i].colspan) { + tableHtml += ""; + } else { + tableHtml += ""; + } + } } } } tableHtml += ""; - tableHtml += ""; - tableHtml += ""; - tableHtml += ""; - tableHtml += ""; - tableHtml += ""; - tableHtml += ""; - tableHtml += ""; - tableHtml += ""; + if (thirdChildren.length > 0) { + tableHtml += ""; + for (var z = 0; z < thirdChildren.length; z++) { + tableHtml += ""; + } + tableHtml += ""; + for (var z = 0; z < thirdChildren.length; z++) { + tableHtml += ""; + } + tableHtml += ""; + tableHtml += ""; + } tableHtml += ""; tableHtml += ""; + var hasHospitalDistrictName = []; for (var item in headerArr) { tableHtml += ""; - tableHtml += ""; + if (enableMultipleBranchesOfHospital) { + var departName = item.split(';')[0]; + var hospitalDistrictName = item.split(';')[1]; + if (hasHospitalDistrictName.indexOf(hospitalDistrictName) == -1) { + tableHtml += ""; + hasHospitalDistrictName.push(hospitalDistrictName) + } + if (departName.indexOf('合计') == -1) { + tableHtml += ""; + } else { + tableHtml += ""; + } + } else { + tableHtml += ""; + } var child = headerArr[item]; - for (var i = 0; i < headerColumn.length; i++) { - var columnName = headerColumn[i].name; - var value = child[columnName]; - if (columnName.indexOf('总价') >= 0) { - value = parseFloat(value).toFixed(4) - } else if (columnName.indexOf('数量') >= 0) { - value = parseInt(value) + for (var k = 0; k < headerTitle.length; k++) { + var headerColumn = headerTitle[k].children; + if (headerColumn) { + for (var i = 0; i < headerColumn.length; i++) { + var columnName = headerColumn[i].displayName; + var value = child[columnName]; + if (columnName.indexOf('总价') >= 0 || columnName.indexOf('价格') >= 0) { + value = parseFloat(value || 0).toFixed(4) + } else if (columnName.indexOf('记支') >= 0) { + value = parseFloat(value || 0).toFixed(4) + } else if (columnName.indexOf('数量') >= 0) { + value = parseInt(value || 0) + } + tableHtml += ""; + } } - tableHtml += ""; } tableHtml += ""; } tableHtml += ""; } else { var headerArr = {}; - var headerColumn = [{ - name: '一次性物品总价', - value: 0.0000 - }, { - name: '发货材料总价', - value: 0.0000 - }, { - name: '器械包总价', - value: 0.0000 - }, { - name: '总价合计', - value: 0.0000 - }, { - name: '一次性物品数量', - value: 0 - }, { - name: '发货材料数量', - value: 0 - }, { - name: '器械包数量', - value: 0 - }, { - name: '数量合计', - value: 0 - }] + var headerTitle = titleInfoArr if (data.length > 0) { for (var i = 0; i < data.length; i++) { var department = data[i].department; var columnName = data[i].columnName; + var hospitalDistrict = data[i].hospitalDistrict; + if (enableMultipleBranchesOfHospital) { + department += ';' + hospitalDistrict + } if (!headerArr[department]) { headerArr[department] = {} - for (var j = 0; j < headerColumn.length; j++) { - headerArr[department][headerColumn[j].name] = headerColumn[j].value + for (var j = 0; j < headerTitle.length; j++) { + if (headerTitle[j].children) { + for (var k = 0; k < headerTitle[j].children.length; k++) { + headerArr[department][headerTitle[j].children[k].name] = 0 + } + } } } if (columnName.indexOf('总价') >= 0) { headerArr[department][columnName] = data[i].money - headerArr[department]['总价合计'] += data[i].money - } else if (columnName.indexOf('数量') >= 0) { + headerArr[department]['价格合计'] += data[i].money + } else if (columnName.indexOf('数量') >= 0 && columnName.indexOf('包内材料') == -1) { headerArr[department][columnName] = data[i].amount headerArr[department]['数量合计'] += parseInt(data[i].amount); + } else if (columnName.indexOf('包内材料') >= 0) { + headerArr[department][columnName] = data[i].amount + headerArr[department]['包内材料合计'] += parseInt(data[i].amount); + } else if (columnName.indexOf('记支') >= 0) { + headerArr[department][columnName] = data[i].money + headerArr[department]['科室记支合计'] += (data[i].money || 0) } } } @@ -198,34 +197,67 @@ tableHtml += "
部门价格统计合计数量统计合计" + headerTitle[i].displayName + "" + headerTitle[i].displayName + "" + headerTitle[i].displayName + "" + headerTitle[i].displayName + "
" + headerColumn[i].displayName + "" + headerColumn[i].displayName + "" + columns[i][j].displayName + "" + columheaderColumnns[i].displayName + "" + headerColumn[i].name + "" + headerColumn[i].name + "" + headerColumn[i].name + "" + headerColumn[i].name + "
可收费不可收费总价可收费不可收费总数量
" + thirdChildren[z] + "总价" + thirdChildren[z] + "总数量
" + item + "" + hospitalDistrictName + "" + departName + "" + departName.split('_')[0] + "" + item + "" + value + "" + value + "
"; tableHtml += ""; tableHtml += ""; - tableHtml += ""; - tableHtml += ""; - tableHtml += ""; - tableHtml += ""; - tableHtml += ""; + for (var i = 0; i < headerTitle.length; i++) { + if (headerTitle[i].rowspan && !headerTitle[i].colspan) { + tableHtml += ""; + } else if (!headerTitle[i].rowspan && headerTitle[i].colspan) { + tableHtml += ""; + } else if (headerTitle[i].rowspan && headerTitle[i].colspan) { + tableHtml += ""; + } else { + tableHtml += ""; + } + } tableHtml += ""; tableHtml += ""; - for (var i = 0; i < headerColumn.length; i++) { - if (headerColumn[i].name !== '总价合计' && headerColumn[i].name !== '数量合计') { - tableHtml += ""; + for (var j = 0; j < headerTitle.length; j++) { + var headerColumn = headerTitle[j].children; + if (headerColumn) { + for (var i = 0; i < headerColumn.length; i++) { + if (headerColumn[i].name !== '价格合计' && headerColumn[i].name !== '数量合计' && headerColumn[i].name !== '科室记支合计' && headerColumn[i].name !== '包内材料合计') { + tableHtml += ""; + } + } } } tableHtml += ""; tableHtml += ""; tableHtml += ""; + var hasHospitalDistrictName = []; for (var item in headerArr) { tableHtml += ""; - tableHtml += ""; + if (enableMultipleBranchesOfHospital) { + var departName = item.split(';')[0]; + var hospitalDistrictName = item.split(';')[1]; + if (hasHospitalDistrictName.indexOf(hospitalDistrictName) == -1) { + tableHtml += ""; + hasHospitalDistrictName.push(hospitalDistrictName) + } + if (departName.indexOf('合计') == -1) { + tableHtml += ""; + } else { + tableHtml += ""; + } + } else { + tableHtml += ""; + } var child = headerArr[item]; - for (var i = 0; i < headerColumn.length; i++) { - var columnName = headerColumn[i].name; - var value = child[columnName]; - if (columnName.indexOf('总价') >= 0) { - value = parseFloat(value).toFixed(4) - } else if (columnName.indexOf('数量') >= 0) { - value = parseInt(value) + for (var j = 0; j < headerTitle.length; j++) { + var headerColumn = headerTitle[j].children; + if (headerColumn) { + for (var i = 0; i < headerColumn.length; i++) { + var columnName = headerColumn[i].name; + var value = child[columnName]; + if (columnName.indexOf('总价') >= 0 || columnName.indexOf('价格') >= 0) { + value = parseFloat(value || 0).toFixed(4) + } else if (columnName.indexOf('记支') >= 0) { + value = parseFloat(value || 0).toFixed(4) + } else if (columnName.indexOf('数量') >= 0) { + value = parseInt(value || 0) + } + tableHtml += ""; + } } - tableHtml += ""; } tableHtml += ""; } @@ -485,14 +517,6 @@ var showAmountColumn = false; if ("dgshlyyMode" == patternOfReport) { jasperreportName = "monthReportShowBrevityCode.jasper"; - } else if (enableMultipleBranchesOfHospital) { - var brancheOfHospital = $Id('brancheOfHospital').value; - if (brancheOfHospital == "全部") { - brancheOfHospitalIds = ""; - } else { - brancheOfHospitalIds = Ext.getCmp('brancheOfHospital').value; - } - jasperreportName = "monthReportBranche.jasper"; } else if ("accountingMonthlyReportGroupByDisposableGoodsType" == patternOfReport) {//按一次性物品类型拆分的核算月报 jasperreportName = "monthReportGroupByDisposableGoodsType.jasper"; patternOfReport = "showAmountMode"; @@ -520,6 +544,14 @@ } } else { jasperreportName = "monthReport.jasper"; + if (enableMultipleBranchesOfHospital) { + var brancheOfHospital = $Id('brancheOfHospital').value; + if (brancheOfHospital == "全部") { + brancheOfHospitalIds = ""; + } else { + brancheOfHospitalIds = Ext.getCmp('brancheOfHospital').value; + } + } } if (limitDepart) {//临床科室登录,申请科室或结算科室必须有值且只能为登录科室,且不能同时为空 if (invoicePlanDepartCoding == '' && departSearch == '') { @@ -577,7 +609,7 @@ var title = result.parametMap.title; if (result.data && result.data.length > 0) { var tableHtml = "

" + title + "

"; - tableHtml += getTableHtml(result.data) + tableHtml += getTableHtml(result.data, result.parametMap.titleInfoArr, result.parametMap.branchesOfHospitalInfo) setTimeout(function () { document.getElementById('thisIframe2').contentWindow.document.getElementById('table').innerHTML = tableHtml; myMask.hide(); @@ -1036,10 +1068,7 @@ var endTime = $Id('endTime').value; var title = '核算月报(' + startTime + '至' + endTime + ')'; var data = { - fileName: title, - fileType: ".xls", - iframeName: 'thisIframe2', - html: html + fileName: title } exportMask = new Ext.LoadMask(Ext.getBody(), { msg: '正在导出文件,请稍候!', Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyView.jsp =================================================================== diff -u -r35478 -r35686 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyView.jsp (.../departmentMonthlyView.jsp) (revision 35478) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyView.jsp (.../departmentMonthlyView.jsp) (revision 35686) @@ -43,6 +43,13 @@ var supplyRoomTypeExpensiveGoods = '<%=SupplyRoomConfig.SUPPLYROOM_TYPE_EXPENSIVEGOODS_APPLY %>'; var supplyRoomType = '${supplyRoomType}'; + + + + + + +
部门价格统计合计数量统计合计" + headerTitle[i].displayName + "" + headerTitle[i].displayName + "" + headerTitle[i].displayName + "" + headerTitle[i].displayName + "
" + headerColumn[i].name + "" + headerColumn[i].displayName + "
" + item + "" + hospitalDistrictName + "" + departName + "" + departName.split('_')[0] + "" + item + "" + value + "" + value + "