Index: ssts-web/src/main/webapp/disinfectsystem/packing/exportTemplate.xls =================================================================== diff -u -r21550 -r22823 Binary files differ Index: ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js =================================================================== diff -u -r22771 -r22823 --- ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 22771) +++ ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 22823) @@ -207,6 +207,39 @@ {name: 'amount'} ] }); + var readerDetail = [ + {name: 'id',type: "int" }, + {name: 'packTimeStr'}, + {name: 'orgUnitName'}, + {name: 'depart'}, + {name: 'packer'}, + {name: 'tousseName'}, + {name: 'reviewer'}, + {name: 'supplierName'}, + {name: 'doctor'}, + {name: 'foreignMaterialsAmount'}, + {name: 'splitTousseName'}, + {name: 'amount'} + ]; + + var filters = new Ext.grid.GridFilters({ + filters:[ + {type: 'string', dataIndex: 'reviewer'} + ] + }); + + var columns =[ + {header: '科室', dataIndex: 'depart',width: 200}, + {header: '供应商', dataIndex: 'supplierName',width: 150}, + {header: '器械包', dataIndex: 'tousseName', width: 200,renderer:filterUnderScoreName}, + {header: '拆包名称', dataIndex: 'splitTousseName',width: 200}, + {header: '数量', dataIndex: 'amount'}, + {header: '配包人', dataIndex: 'packer'}, + {header: '审核人', dataIndex: 'reviewer',width: 100}, + {header: '装配时间', dataIndex: 'packTimeStr',width: 150}, + {header: '材料汇总', dataIndex: 'foreignMaterialsAmount',width: 200}, + {header: '医生', dataIndex: 'doctor',width: 100} + ] var packingRecordStore = Ext4.create('Ext4.data.Store', { //分页大小 @@ -224,23 +257,62 @@ }] }) function getParamsJsonObj(){ + if(Ext4.getCmp('startTimeSearch') == null){ + return { + taskGroup : taskGroup + }; + } var tousseName = Ext4.getCmp('tousseName').getValue(); var orgUnit = Ext4.getCmp('orgUnit').getValue(); var barcode = Ext4.getCmp('scanTousseBarcode').getValue(); var q_packer = Ext4.getCmp('q_packer').getValue(); + var startTimeSearch = Ext4.getCmp('startTimeSearch').getRawValue(); + var endTimeSearch = Ext4.getCmp('endTimeSearch').getRawValue(); + var params = { taskGroup : taskGroup, tousseName: tousseName, orgUnit: orgUnit, tousseBarcode: barcode, - packer: q_packer + packer: q_packer, + startTimeSearch: startTimeSearch, + endTimeSearch: endTimeSearch } return params; } + + function isQueryParamsValid(){ + var startTimeSearchCmp = Ext4.getCmp('startTimeSearch'); + var endTimeSearchCmp = Ext4.getCmp('endTimeSearch'); + if(startTimeSearchCmp == null){ + return true; + } + var startTimeSearch = Ext4.getCmp('startTimeSearch').getValue(); + var endTimeSearch = Ext4.getCmp('endTimeSearch').getValue(); + if(!startTimeSearchCmp.isValid()){ + showResult('开始时间格式不对!' , null , sstsConfig.messagePauseTimeOnPackingPage); + return false; + } + if(!endTimeSearchCmp.isValid()){ + showResult('结束时间格式不对!' , null , sstsConfig.messagePauseTimeOnPackingPage); + return false; + } + if(!isUndefinedOrNullOrEmpty(startTimeSearch) && !isUndefinedOrNullOrEmpty(endTimeSearch)){ + if(startTimeSearch > endTimeSearch){ + showResult('开始时间不能大于结束时间!' , null , sstsConfig.messagePauseTimeOnPackingPage); + return false; + } + } + return true; + } function initQueryValueAndReload() { - - packingRecordStore .load({ - params: getParamsJsonObj()}); + if(!isQueryParamsValid()){ + return; + } + var store = Ext4.getCmp("todayHisPackingRecordPanel").getStore(); + store.reload(); +// packingRecordStore .load({ +// params: getParamsJsonObj()}); } // 从树种查找标识牌的装配任务 @@ -3643,6 +3715,7 @@ ,materialGrid ] },{ + id: 'packingViewTab1', title: '今天本组装配记录', layout : 'border', height : document.body.clientHeight-25, @@ -3655,23 +3728,84 @@ var s = JSON.stringify(params); location.href = WWWROOT + "/disinfectsystem/packing/exportPackingRecord.jsp?params="+encodeURI(s); } + },{ + xtype:'button', + text : '打印', + id:"printPackingRecords", + handler: function(){ + var params = getParamsJsonObj(); + var s = JSON.stringify(params); + var url = WWWROOT + '/disinfectSystem/packingAction!loadPackingRecord.do'; + var myMask = new Ext4.LoadMask({msg:"正在打印,请稍候...",target:Ext4.getCmp('packingViewTab1')}); + myMask.show(); + Ext4.Ajax.request({ + url : url, + params : params, + success : function(result){ + + var jsonObj = Ext4.JSON.decode(result.responseText); + var rows = jsonObj.rows; + if(!jsonObj.rows || jsonObj.rows.length == 0){ + showResult('没有要打印的记录' , null , sstsConfig.messagePauseTimeOnPackingPage); + return; + } + jsonObj.goods = jsonObj.rows; + jsonObj.printType = 0; + defaultprintPackingRecords(jsonObj); + myMask.destroy(); + }, + failure : function(){myMask.destroy();} + }); + } }], items : [{ - layout : 'column', region : 'north', - height : 30, - labelWidth : 70, + height : 60, +// width : 800, items : [{ - width : 250, +// width : 140, + columnWidth : 0.2, layout : 'form', - labelWidth : 80, items : [{ + xtype : 'timefield', + id : 'startTimeSearch', + name : 'startTimeSearch', + fieldLabel : '开始时间', + 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', + readOnly : false, + labelWidth : 65, + width : 75, + format : 'H:i', + value : '00:00' + }] + }, { +// width : 140, + columnWidth : 0.2, + layout : 'form', + items : [{ + xtype : 'timefield', + id : 'endTimeSearch', + name : 'endTimeSearch', + fieldLabel : '结束时间', + altFormats:'H:i|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', + readOnly : false, + labelWidth : 65, + width : 75, + value : '23:59', + format : 'H:i' + }] + },{ +// width : 250, + columnWidth : 0.3, + layout : 'form', + items : [{ xtype : 'combo', id : 'tousseName', name : 'tousseName', fieldLabel : '器械包名称', queryParam : 'spell', + labelWidth : 80, minChars : 0, valueField : 'name', displayField : 'displayName', @@ -3708,7 +3842,8 @@ } }] },{ - width : 250, +// width : 250, + columnWidth : 0.3, layout : 'form', items : [{ xtype : 'combo', @@ -3730,7 +3865,8 @@ anchor : '95%' }] },{ - width : 200, +// width : 200, + columnWidth : 0.2, layout : 'form', items : [{ xtype : 'textfield', @@ -3757,7 +3893,8 @@ } }] },{ - width : 200, +// width :200, + columnWidth : 0.2, layout : 'form', items : [{ xtype : 'textfield', @@ -3808,6 +3945,9 @@ Ext4.getCmp('orgUnit').setValue(""); Ext4.getCmp('scanTousseBarcode').setValue(""); Ext4.getCmp('q_packer').setValue(""); + + Ext4.getCmp('startTimeSearch').setValue("00:00"); + Ext4.getCmp('endTimeSearch').setValue("23:59"); // $Id('tousseName').value = ""; } }] @@ -3819,63 +3959,145 @@ layout:'fit', items: [ - Ext4.create('Ext4.grid.Panel', { - store : packingRecordStore, - columnLines: true, - width: 800, -// autoScroll: true, - overflowX: 'auto', -// overflowX: 'scroll', - id : 'todayHisPackingRecordPanel', -// height: document.body.clientHeight-25, - viewConfig : {loadMask : {msg : '正在加载,请稍候...'}}, - columns: [ - {header: '科室', dataIndex: 'depart',width: 200}, - {header: '供应商', dataIndex: 'supplierName',width: 150}, - {header: '器械包', dataIndex: 'tousseName', width: 200,renderer:filterUnderScoreName}, - {header: '拆包名称', dataIndex: 'splitTousseName',width: 200}, - {header: '数量', dataIndex: 'amount'}, - {header: '配包人', dataIndex: 'packer'}, - {header: '审核人', dataIndex: 'reviewer',width: 100}, - {header: '装配时间', dataIndex: 'packTimeStr',width: 150}, - {header: '材料汇总', dataIndex: 'foreignMaterialsAmount',width: 200}, - {header: '医生', dataIndex: 'doctor',width: 100} - ], - autoExpandColumn : 'packer', - dockedItems: [ - { - xtype: 'pagingtoolbar', - store: packingRecordStore, - dock: 'bottom', //分页 位置 - emptyMsg: '没有数据', - displayInfo: true, - displayMsg: '当前显示{0}-{1}条记录 / 共{2}条记录 ', - beforePageText: '第', - afterPageText: '页/共{0}页' - }], - listeners: { - itemclick: function (dv, record, item, index, e) { - var packingRecordId = record.get('id'); - var cfg = { - packingRecordId:packingRecordId, - SSTS_HistoryPacking_Update:SSTS_HistoryPacking_Update, - SSTS_HistoryPacking_Change_Patient:SSTS_HistoryPacking_Change_Patient, - onClose: function(){ - packingRecordStore.reload(); - } - } - rePrintBarcodeWinForPacking2(cfg); - } - } - }) +// Ext4.create('Ext4.grid.Panel', { +// store : packingRecordStore, +// columnLines: true, +// width: 800, +//// autoScroll: true, +// overflowX: 'auto', +//// overflowX: 'scroll', +// id : 'todayHisPackingRecordPanel', +//// height: document.body.clientHeight-25, +// viewConfig : {loadMask : {msg : '正在加载,请稍候...'}}, +// columns: [ +// {header: '科室', dataIndex: 'depart',width: 200}, +// {header: '供应商', dataIndex: 'supplierName',width: 150}, +// {header: '器械包', dataIndex: 'tousseName', width: 200,renderer:filterUnderScoreName}, +// {header: '拆包名称', dataIndex: 'splitTousseName',width: 200}, +// {header: '数量', dataIndex: 'amount'}, +// {header: '配包人', dataIndex: 'packer'}, +// {header: '审核人', dataIndex: 'reviewer',width: 100}, +// {header: '装配时间', dataIndex: 'packTimeStr',width: 150}, +// {header: '材料汇总', dataIndex: 'foreignMaterialsAmount',width: 200}, +// {header: '医生', dataIndex: 'doctor',width: 100} +// ], +// autoExpandColumn : 'packer', +// dockedItems: [ +// { +// xtype: 'pagingtoolbar', +// store: packingRecordStore, +// dock: 'bottom', //分页 位置 +// emptyMsg: '没有数据', +// displayInfo: true, +// displayMsg: '当前显示{0}-{1}条记录 / 共{2}条记录 ', +// beforePageText: '第', +// afterPageText: '页/共{0}页' +// }], +// listeners: { +// itemclick: function (dv, record, item, index, e) { +// var packingRecordId = record.get('id'); +// var cfg = { +// packingRecordId:packingRecordId, +// SSTS_HistoryPacking_Update:SSTS_HistoryPacking_Update, +// SSTS_HistoryPacking_Change_Patient:SSTS_HistoryPacking_Change_Patient, +// onClose: function(){ +// packingRecordStore.reload(); +// } +// } +// rePrintBarcodeWinForPacking2(cfg); +// } +// } +// }) +// + +// forgonpage +// new Ext.ux.ForgonPageGrid({ +// title : '', +// id : 'todayHisPackingRecordPanel', +// pageSize : 20, +// defaultSortField : 'id', +// defaultSortDirection : 'DESC', +// searchDisableIndexes : ['invoiceStatus'], +// isCheckboxSelectionModel : true, +// rememberSelected : false, +// isShowSearchField : true, +// columns : columns, +// plugins: filters, +// autoExpandColumn : 'operationRemark', +// renderTo : 'gridDiv', +// frame : false, +// listeners:{ +// 'render' : function(){ +// +// } +// } +// }, +// readerDetail, +// PackingTableManager.loadPackingRecord, +// null +// ) + + +// forgon4 grid + Ext4.create('ExtJs.forgon4.Grid', { + title : '', + id : 'todayHisPackingRecordPanel', + width: 800, + overflowX: 'auto', + dataUrl : WWWROOT + '/disinfectSystem/packingAction!loadPackingRecord.do', + fields : readerDetail, + columns : columns, +// showRowNumber: true, + sorters : { property : 'id', direction: 'DESC'}, + extraParams : {}, //如果你要自定义参数,这里一定要先给一个空的对象,要不然会报空异常 + showRightClick : false, + storeListeners: { + beforeload: function(thiz, options) { +// alert(123) + if(!isQueryParamsValid()){ + return false; + } + var grid = Ext4.getCmp("todayHisPackingRecordPanel"); + var p = getParamsJsonObj(); + +// alert(thiz.baseParams.taskGroup) + Ext4.apply(grid.extraParams,p); + } + }, + listeners: { + itemclick: function (dv, record, item, index, e) { + var packingRecordId = record.get('id'); + var cfg = { + packingRecordId:packingRecordId, + SSTS_HistoryPacking_Update:SSTS_HistoryPacking_Update, + SSTS_HistoryPacking_Change_Patient:SSTS_HistoryPacking_Change_Patient, + onClose: function(){ + packingRecordStore.reload(); + } + } + rePrintBarcodeWinForPacking2(cfg); + } + } + }) ] }] } ] }); -packingRecordStore.loadPage(1); +//var store = Ext4.getCmp("todayHisPackingRecordPanel").getStore(); +//store.on("beforeload", function(thiz, options) { +// alert(123) +// if(!isQueryParamsValid()){ +// return false; +// } +// var p = getParamsJsonObj(); +// alert(thiz.baseParams.taskGroup) +// Ext4.applyIf(thiz.baseParams,p); +//}); + +//packingRecordStore.loadPage(1); Ext4.getCmp('basketBarcodeInput').focus('', 10); if (jobType_pack_name != "") { Index: ssts-web/src/main/webapp/disinfectsystem/config/zsyy/print/printConfig.js =================================================================== diff -u -r22647 -r22823 --- ssts-web/src/main/webapp/disinfectsystem/config/zsyy/print/printConfig.js (.../printConfig.js) (revision 22647) +++ ssts-web/src/main/webapp/disinfectsystem/config/zsyy/print/printConfig.js (.../printConfig.js) (revision 22823) @@ -1907,6 +1907,36 @@ LODOP.ADD_PRINT_HTM(0,0,"95%","100%","
"+tableHtml+""); LODOP.PRINT(); } + +var packingRecordsListConfig = { + fixed:true, + headerFooter : [ + // 页眉名称 + ], + currentPageNumber : {label : "第#页", fontSize : 9, position : ["1cm","80%","90%",5]}, + totalPageAmount : {label : "共&页", fontSize : 9, position : ["1cm","85%","90%",5]}, + goodsTable :{ + rowHeight : 20, + //position : ["50","1%","96%","6.0cm"], + fontSize:12, + position : ["1.9cm","0.2cm","1550px","27cm"], + headRepeat : true, + donotPrintTotal:true,//不打印合计 + columns : [ + {header : "科室", dataIndex : 'depart', width : 200, align : 'center'}, + {header : "供应商", dataIndex : 'supplierName', width : 200, align : 'center'}, + //{header : "出库仓库", dataIndex : 'warehouseName', width : 60, align : 'center'}, + {header : "器械包", dataIndex : 'tousseName', width : 200, align : 'center'}, + {header : "拆包名称", dataIndex : 'splitTousseName', width : 200, align : 'center'}, + {header : "数量", dataIndex : 'amount', width : 60, align : 'center'}, + {header : "配包人", dataIndex : 'packer', width : 60, align : 'center'}, + {header : "审核人", dataIndex : 'reviewer', width : 60, align : 'center'}, + {header : "装配时间", dataIndex : 'packTimeStr', width : 100, align : 'center'}, + {header : "材料汇总", dataIndex : 'foreignMaterialsAmount', width : 200, align : 'center'}, + {header : "医生", dataIndex : 'doctor', width : 100, align : 'center'} + ] + } +} var printConfig = { //发货计划单 invoicePlan : invoicePlanPrintConfig, @@ -1974,5 +2004,7 @@ //灭菌交接记录单 sterilizationTransitionRecord:sterilizationTransitionRecordConfig, //签收记录打印。 - signRecordDetail : signRecordDetailConfig + signRecordDetail : signRecordDetailConfig, + // 装配记录 + packingRecordsList: packingRecordsListConfig }; Index: ssts-web/src/main/webapp/disinfectsystem/packing/packingView.jsp =================================================================== diff -u -r21626 -r22823 --- ssts-web/src/main/webapp/disinfectsystem/packing/packingView.jsp (.../packingView.jsp) (revision 21626) +++ ssts-web/src/main/webapp/disinfectsystem/packing/packingView.jsp (.../packingView.jsp) (revision 22823) @@ -128,6 +128,7 @@ <%@ include file="/common/include_Ext2_Js.jsp"%> <%@ include file="/common/include_Ext42_Js.jsp"%> +<%@include file="/common/include_UseForgonGrid4_Js.jsp"%> Index: ssts-web/src/main/webapp/disinfectsystem/print/print.js =================================================================== diff -u -r22254 -r22823 --- ssts-web/src/main/webapp/disinfectsystem/print/print.js (.../print.js) (revision 22254) +++ ssts-web/src/main/webapp/disinfectsystem/print/print.js (.../print.js) (revision 22823) @@ -1722,6 +1722,53 @@ LODOP.PREVIEW(); } } +// 装配记录打印 +function defaultprintPackingRecords(obj){ + formTypeOfPrinted = 'packingRecordsList'; + doGetLodop(); + var configObj = printConfig[formTypeOfPrinted]; + if(isUndefinedOrNullOrEmpty(configObj)){ + printConfig[formTypeOfPrinted] = printPackingRecords_default; + } + LODOP.PRINT_INIT(""); + setPrinterByConfig(); + print2(obj); + if(obj.printType == 0){//直接打印 + LODOP.PRINT(); + }else{//打印预览 + LODOP.SET_SHOW_MODE("HIDE_PAPER_BOARD",1); + LODOP.PREVIEW(); + } +} +var printPackingRecords_default = { + fixed:true, + headerFooter : [ + // 页眉名称 + ], + currentPageNumber : {label : "第#页", fontSize : 9, position : ["1cm","80%","90%",5]}, + totalPageAmount : {label : "共&页", fontSize : 9, position : ["1cm","85%","90%",5]}, + goodsTable :{ + rowHeight : 20, + //position : ["50","1%","96%","6.0cm"], + fontSize:12, + position : ["1.9cm","0.2cm","1550px","27cm"], + headRepeat : true, + donotPrintTotal:true,//不打印合计 + columns : [ + {header : "科室", dataIndex : 'depart', width : 200, align : 'center'}, + {header : "供应商", dataIndex : 'supplierName', width : 200, align : 'center'}, + //{header : "出库仓库", dataIndex : 'warehouseName', width : 60, align : 'center'}, + {header : "器械包", dataIndex : 'tousseName', width : 200, align : 'center'}, + {header : "拆包名称", dataIndex : 'splitTousseName', width : 200, align : 'center'}, + {header : "数量", dataIndex : 'amount', width : 60, align : 'center'}, + {header : "配包人", dataIndex : 'packer', width : 60, align : 'center'}, + {header : "审核人", dataIndex : 'reviewer', width : 60, align : 'center'}, + {header : "装配时间", dataIndex : 'packTimeStr', width : 100, align : 'center'}, + {header : "材料汇总", dataIndex : 'foreignMaterialsAmount', width : 200, align : 'center'}, + {header : "医生", dataIndex : 'doctor', width : 100, align : 'center'} + ] + } +} //一次性物品采购计划 function printPurchasePlanInfo(obj,printType) { formTypeOfPrinted = "purchasePlan";