Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsInstanceView.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsInstanceView.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsInstanceView.js (revision 20862) @@ -0,0 +1,555 @@ +var entityName = "高值耗材"; +var grid; +var root; +var formObj; +var formWindow; +var autoFillExternalCodeOfDisposableGoods = false; +var SUPPLIER_TYPE_SUPPLIER = '高值耗材供应商'; +function addExpensiveGoods(id) {} + +var diposableGoodsBatchNumStore = null; +var BatchRecord = null; +var selCertification = null; +function onSelCertification(){ + if(selCertification == null){ + return; + } + top.Ext.getCmp('certificationId').setValue(selCertification.id); + top.Ext.getCmp('registrationCertification').setValue(selCertification.certification); +} +function setBatchNumbers(batches,fireSelect) { + for(var i = 0;i 0){ + top.Ext.Msg.show({ + title: '输入框', + msg: '打印数量:', + width: 100, + buttons: Ext.MessageBox.OKCANCEL, + prompt : true, + fn: function(bu, txt) { + if(bu == 'ok'){ + if(isNaN(txt) == false){ + var godownEntryItem = barcodeStr.split(";"); + var specification = top.Ext.getCmp('specification').getValue(); + for(var j = 0 ; j< Number(txt) ; j++){ + for ( var i = 0; i < godownEntryItem.length; i++) { + var resultItem = godownEntryItem[i].split("#&"); + var name =resultItem[0]; + var barcode = resultItem[1]; + var expDate = resultItem[2]; + var supplierName = resultItem[3]; + var batchNumber = resultItem[4]; + printExpensiveGoodsInfo(barcode,name,expDate,supplierName,batchNumber,0,specification); + } + } + }else{ + showResult("打印数量必须是数字,请重新输入!"); + } + } + }, + animEl: 'addAddressBtn', + value:'1' + }); + } +} + +function submitForSaveDisposableGoods(){ + formObj.form.submit( { + url : WWWROOT + '/disinfectSystem/expensiveGoodsAction!saveExpensiveGoods.do', + method : 'POST', + waitMsg : '正在保存数据,请稍候', + waitTitle : '提交表单', + success : function(form, action) { + var result = Ext.decode(action.response.responseText); + if(isUndefinedOrNullOrEmpty(result.errorMessage)){ + showResult('保存成功'); + formWindow.close(); + grid.dwrReload(); + }else{ + showResult('保存出错, ' + result.errorMessage); + top.Ext.getCmp('saveBtn').enable(); + } + }, + failure : function(form, action) { + showResult('保存出错'); + top.Ext.getCmp('saveBtn').enable(); + } + }); +} +function validateAndSubmit(){ +// var originalGoodsType = top.Ext.getCmp("originalGoodsType").getValue(); +// var goodsType = top.Ext.getCmp("goodsType").getValue(); + var orginalName = top.Ext.getCmp("orginalName").getValue(); + var orginalSpecification = top.Ext.getCmp("orginalSpecification").getValue(); + var name = top.Ext.getCmp("name").getValue(); + var specification = top.Ext.getCmp("specification").getValue(); + var msg = ''; + var id = top.Ext.getCmp('id').getValue(); + + if(id != null && id != ''){ + if(!stringLooksEquals(orginalName,name) && (!stringLooksEquals(orginalSpecification,specification))){ + msg = "是否确定修改名称和规格?" + }else if(!stringLooksEquals(orginalName,name)){ + msg = "是否确定修改高值耗材名称?" + }else if(!stringLooksEquals(orginalSpecification,specification)){ + msg = "是否确定修改高值耗材规格?" + } + } + +// if(!stringLooksEquals(originalGoodsType,goodsType)){ +// msg += "是否确定更改物品类型?" +// } + if(msg == ''){ + submitForSaveDisposableGoods(); + return; + } + top.Ext.MessageBox.confirm("请确认",msg, + function(button, text) { + if ("yes" == button){ + submitForSaveDisposableGoods(); + }else{ + top.Ext.getCmp('saveBtn').enable(); + } + }); +} + +function save(){ + //if(!form.getForm().isValid()){ + if(!formObj.getForm().isValid()){ + showResult('请正确填写表单各值'); + return false; + } + var max = top.Ext.getCmp('maxStorage').getValue(); + var min = top.Ext.getCmp('minStorage').getValue(); + var minApply = top.Ext.getCmp('minApplyAmount').getValue(); + var maxApply = top.Ext.getCmp('maxApplyAmount').getValue(); + if(typeof max == 'number' && typeof min == 'number'){ + if(min>max){ + showResult('最小库存不能大于最大库存'); + top.Ext.getCmp('minStorage').focus(); + return false; + } + if(minApply > maxApply){ + showResult('最小申请数不能大于最大申请数'); + top.Ext.getCmp('minApplyAmount').focus(); + return false; + } + } + + this.disable(); + validateAndSubmit(); +} + +function printBatchNum(barcodeStr){ + if(barcodeStr!=null && barcodeStr.length > 0){ + Ext.Msg.show({ + title: '输入框', + msg: '打印数量:', + width: 100, + buttons: Ext.MessageBox.OKCANCEL, + prompt : true, + fn: function(bu, txt) { + if(bu == 'ok'){ + if(isNaN(txt) == false){ + var godownEntryItem = barcodeStr.split(";"); + for(var j = 0 ; j< Number(txt) ; j++){ + for ( var i = 0; i < godownEntryItem.length; i++) { + var resultItem = godownEntryItem[i].split("#&"); + var name =resultItem[0]; + var barcode = resultItem[1]; + var expDate = resultItem[2]; + var supplierName = resultItem[3]; + var batchNumber = resultItem[4]; + var specification = resultItem[5]; + printExpensiveGoodsInfo(barcode,name,expDate,supplierName,batchNumber,0,specification); + } + } + }else{ + showResult("打印数量必须是数字,请重新输入!"); + } + } + }, + animEl: 'addAddressBtn', + value:'1' + }); + } +} +function onStorageRecordDetail(grid){ + var records = grid.getSelectionModel().getSelections(); + if(records.length == 0){ + showResult("请选择高值耗材"); + return; + } + if(records.length != 1){ + showResult("只能选择一个高值耗材"); + return; + } + + var storageRecord = new StorageRecord(); + storageRecord.setDisposableGoodsId(records[0].data['id']); + storageRecord.showDetail(); +} + +function printExpensiveDisposableGoodsBarcode(grid){ + var records = grid.getSelectionModel().getSelections(); + if(records.length == 0){ + showResult("请选择要打印的物品"); + }else{ + var ids = ""; + for(var i = 0,len=records.length;i 1) { + showResult("一次只能修改一个高值耗材!"); + return false; + } + id = records[0].data['id']; + addExpensiveGoods(id); + top.Ext.getCmp('expensiveGoodsForm').form.load({ + url : WWWROOT + '/disinfectSystem/expensiveGoodsAction!loadExpensiveGoods.do', + method : 'GET', + waitMsg : '正在加载数据,请稍候', + params : {id : id}, + success : function(form, action) { + var expensiveGoods = action.result.data; + top.Ext.getCmp("orginalName").setValue(expensiveGoods.name); + top.Ext.getCmp("orginalSpecification").setValue(expensiveGoods.specification); + top.Ext.getCmp("registrationCertification").setValue(expensiveGoods.registrationCertification); + }, + failure : function(form, action) { + } + }); +}; + +function reloadGrid(type){ + $Id("parm_s_type").value = type; + grid.dwrReload(); +} + +function modify(){ + loadFormData(grid); +} + +function rendeColor(v, p, record){ + var data = record.data; + var amount = data.amount; + if(typeof amount=='number'){ + if((typeof data.minStorage=='number' && data.minStorage>amount) || (typeof data.maxStorage=='number' && data.maxStorage" + v + "

"; + } + } + return "" + v + ""; +} + +Ext.onReady(function() { + Ext.QuickTips.init(); + + //********* 1、Tree *********** + root = new Ext.tree.AsyncTreeNode({ + text:'高值耗材类型', + id:'0', + draggable:false, + listeners:{ + click:function(node,event){ + reloadGrid(""); + } + } + }); + + var myLoader = new Ext.tree.TreeLoader({dataUrl:WWWROOT + '/disinfectSystem/expensiveGoodsAction!treeLoad.do'}); + + //********* 2、ForgonGrid *********** + var columns = [ + {header : "条码",width : 100,dataIndex : 'barcode'}, + {id : 'expensiveGoodsName',header : "名称",width : 150,dataIndex : 'expensiveGoods.name'}, + {header : "规格",width : 100,dataIndex : 'expensiveGoods.specification'}, + {header : "入库日期",width : 150,dataIndex : 'entryDate'}, + {header : "入库类型",width : 80,dataIndex : 'entryType'}, + {header : "打印时间",width : 80,dataIndex : 'printTime'}, + {header : "单价",width : 80,dataIndex : 'price'}, + {header : "状态",width : 80,dataIndex : 'status'}, + {header : "科室",width : 80,dataIndex : 'locationForDisplay'}, + {header : "自带条码1",width : 120,dataIndex : 'firstBodyCode'}, + {header : "自带条码2",width : 120,dataIndex : 'secondBodyCode'}, + {header : "自带条码3",width : 120,dataIndex : 'thirdBodyCode'} +// {header : "类别",width : 80,dataIndex : 'expensiveGoods.grade'}, +// {header : "包装规格",width : 80,dataIndex : 'expensiveGoods.packageSpec'}, +// {header : "参考价",width : 60,dataIndex : 'expensiveGoods.referencePrice'} +// {header : "单位",width : 50,dataIndex : 'expensiveGoods.unit'}, +// {header : "顺序号",width : 50,dataIndex : 'expensiveGoods.sequence'} +// {header : "拼音码",width : 90,dataIndex : 'expensiveGoods.spelling'}, +// {header : "五笔码",width : 90,dataIndex : 'expensiveGoods.wbCode'} + + ]; + + var readerDetail = [ + {name : 'id'}, + {name : 'barcode'}, + {name : 'expensiveGoods.externalCode'}, + {name : 'expensiveGoods.name'}, + {name : 'expensiveGoods.specification'}, + {name : 'entryDate'}, + {name : 'entryType'}, + {name : 'printTime'}, + {name : 'price'}, + {name : 'status'}, + {name : 'locationForDisplay'}, + {name : 'firstBodyCode'}, + {name : 'secondBodyCode'}, + {name : 'thirdBodyCode'}, + {name : 'expensiveGoods.grade'}, + {name : 'expensiveGoods.packageSpec'}, + {name : 'expensiveGoods.referencePrice'}, + {name : 'expensiveGoods.unit'}, + {name : 'expensiveGoods.sequence'}, + {name : 'expensiveGoods.spelling'}, + {name : 'expensiveGoods.wbCode'} + ]; + + var filters = new Ext.grid.GridFilters({ + filters:[ + {type: 'string', dataIndex: 'name'}, + {type: 'string', dataIndex: 'externalCode'}, + {type: 'numeric', dataIndex: 'amount'}, + {type: 'numeric', dataIndex: 'minApplyAmount'}, + {type: 'numeric', dataIndex: 'maxApplyAmount'}, + {type: 'string', dataIndex: 'unit'}, + {type: 'numeric', dataIndex: 'sequence'}, + {type: 'numeric', dataIndex: 'minStorage'}, + {type: 'numeric', dataIndex: 'maxStorage'}, + {type: 'string', dataIndex: 'spelling'}, + {type: 'string', dataIndex: 'wbCode'}, + {type: 'string', dataIndex: 'isPartOfTousseMaterial'}, + {type: 'string', dataIndex: 'isApplicationMaterial'}, + {type: 'string', dataIndex: 'isSupplyRoomGoods'}, + {type: 'numeric', dataIndex: 'referencePrice'} + ]} + ); + + var tbar = [ { + text : '添加', +// hidden : SSTS_ExpensiveGoods_Create, + hidden : true, + iconCls : 'btn_ext_application_add', + handler : function() { + addExpensiveGoods(0); + } + }, '-', { + text : '修改', +// hidden : SSTS_ExpensiveGoods_Update, + hidden : true, + iconCls : 'btn_ext_application_edit', + id : 'editTbar', + handler : function() { + loadFormData(grid); + } + }, '-', { + text : '删除', +// hidden : SSTS_ExpensiveGoods_Delete, + hidden : true, + iconCls : 'btn_ext_application_del', + handler : function() { + deleteExpensiveGoods(grid); + } + },'-',{ + text : '出入库记录', + hidden: true, + iconCls : 'btn_ext_refresh', + handler : function(){ + onStorageRecordDetail(grid); + } + }, '-' , { + text : '打印高值耗材', + hidden: true, + iconCls : 'icon_print', + handler : function(){ + printExpensiveDisposableGoodsBarcode(grid); + } + }/* + , '-' , { + //用于程序员调试 + text : '更新旧数据', + hidden : false, + handler : function() { + ExpensiveGoodsTableManager.updateOldData(function(msg){showResult(msg);}); + } + }, '-' , { + //将属于供应室领用的高值耗材进行分类 + text : '分类供应室领用类型', + hadden : false, + handler : function() { + ExpensiveGoodsTableManager.updateSupplyRoomExpensiveGoodsType(function(msg){showResult('更新成功,请刷新页面')}); + } + } + , '-' , { + text : '导出高值耗材库存', + handler : function() { + window.location.href = WWWROOT+"/disinfectsystem/reportforms/expensiveGoodsStorageReportExportForm.jsp"; + } + }, '-' , { + text : '导出物资收发存汇总', + handler : function() { + window.location.href = WWWROOT+"/disinfectsystem/reportforms/expensiveGoodsPriceStatisticsReportExportForm.jsp"; + } + }, '-' , { + //用于程序员调试 + text : '更新旧数据', + hidden : false, + handler : function() { + ExpensiveGoodsTableManager.updateOldData(function(msg){showResult(msg);}); + } + }, '-', { + text : '导入高值耗材库存EXCEL', + hidden : false, + handler : function() { + location.href = WWWROOT + + "/disinfectsystem/basedatamanager/importbasedata/amendExpensiveGoodsStorage.mhtml"; + } + } + */ + ]; + + grid = new Ext.ux.ForgonPageGrid( { + tbar : tbar, + pageSize : 20, + defaultSortField : 'barcode', + title : '高值耗材列表', + defaultSortDirection : 'ASC', + isCheckboxSelectionModel : true, + rememberSelected : false, + isShowSearchField : true, + plugins: filters, + columns : columns, +// autoExpandColumn : 'expensiveGoodsName', + renderTo : 'gridDiv', + frame : false + }, readerDetail, + ExpensiveGoodsTableManager.findExpensiveGoodsInstanceTableList, + null + ); + + var viewport = new Ext.Viewport({ + layout:'border', + items:[{ + region:'west', + id:'west-panel', + lines : false, + margins : '0 0 5 5', + cmargins : '0 0 0 0', + layout : 'accordion', + layoutConfig : {animate : true}, + collapsible: true, //允许折叠 + animCollapse:true, //折叠时是否有动画效果 + split: true, //是否允许拖动大小,与下面的折叠形式配合 + collapseMode:'mini', //折叠形式 + width: 200, + minSize : 130, + maxSize : 400, + xtype: 'treepanel', + loader: myLoader, //数据加载 + autoScroll: true, + root: root, + tbar:[ + new Ext.Action({ + text: '展开所有', + handler: function(){ + var treePanel = viewport.findById('west-panel'); + treePanel.expandAll(); + } + }), + new Ext.Action({ + text: '折叠所有', + handler: function(){ + var treePanel = viewport.findById('west-panel'); + treePanel.collapseAll(); + } + }) + ] + },{ + region:'center', + margins:'0 5 5 0', + xtype : 'panel', + autoScroll:true, + layout: 'fit', + items:grid + }] + }); + + root.expand(false, /*no anim*/ false); +}); \ No newline at end of file Index: ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/dwr/table/ExpensiveGoodsTableManager.java =================================================================== diff -u -r20845 -r20862 --- ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/dwr/table/ExpensiveGoodsTableManager.java (.../ExpensiveGoodsTableManager.java) (revision 20845) +++ ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/dwr/table/ExpensiveGoodsTableManager.java (.../ExpensiveGoodsTableManager.java) (revision 20862) @@ -26,6 +26,7 @@ import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveDisposablegoods; import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveGoods; +import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveGoodsInstance; import com.forgon.disinfectsystem.entity.basedatamanager.datasynchronization.HisMaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.datasynchronization.HisMaterialType; import com.forgon.disinfectsystem.entity.basedatamanager.supplier.RegistrationCertification; @@ -135,6 +136,27 @@ null); } + public String findExpensiveGoodsInstanceTableList( + Map> parameterMap) { + Map sqlWhereParamMap = gridManager + .getParamFromView(parameterMap); + + // 关键字查询-》把小写字母转换成大写字母 + if (!parameterMap.get("grid_search_query").isEmpty()) { + List keyList = parameterMap.get("grid_search_query"); + List queryKey = new ArrayList(keyList.size()); + for (int i = 0; i < keyList.size(); i++) { + queryKey.add(((String) keyList.get(i)).toUpperCase()); + } + parameterMap.put("grid_search_query", queryKey); + } + + return gridManager.renderGrid(parameterMap, + ExpensiveGoodsInstance.class.getSimpleName(), null, + null); + } + + // 高值耗材使用记录 public String findExpensiveDisposableGoodsUseRecordList( Map> parameterMap) { Index: ssts-web/src/main/webapp/homepage/menuconfigure.js =================================================================== diff -u -r20850 -r20862 --- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 20850) +++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 20862) @@ -321,6 +321,7 @@ hidden:SSTS_ExpensiveGoods_Menu, children:[ {hidden :SSTS_ExpensiveGoods_Menu,text:"高值耗材管理",href:WWWROOT+'/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsView.jsp',hrefTarget:linkTarget,leaf:true}, + {hidden :SSTS_ExpensiveGoods_Menu,text:"高值耗材实例列表",href:WWWROOT+'/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsInstanceView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_ExpensiveGoods_Menu,text:"高值耗材使用记录",href:WWWROOT+'/disinfectsystem/assestManagement/expensiveGoods/expensiveDisposableGoodsUseRecordView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_ExpensiveGoods_Menu,text:"高值耗材库存",href:WWWROOT+'/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsStockView.jsp',hrefTarget:linkTarget,leaf:true}, //{hidden :SSTS_ExpensiveGoods_Menu,text:"高值耗材出入库记录",href:WWWROOT+'/disinfectsystem/assestManagement/expensiveGoods/storageRecordView.jsp',hrefTarget:linkTarget,leaf:true}, Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsInstanceView.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsInstanceView.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsInstanceView.jsp (revision 20862) @@ -0,0 +1,63 @@ +<%@ page contentType="text/html; charset=UTF-8"%> +<%@ include file="/common/taglibs.jsp"%> +<%@page import="com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods,com.forgon.Constants"%> + + + + +一次性物品信息 + + +<%@ include file="/common/includeExtJsAndCss.jsp"%> + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + \ No newline at end of file