Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r16320 -r16333 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 16320) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 16333) @@ -2805,10 +2805,13 @@ if (isDefined){ validUntil = (Date)JSONObject.toBean(expirationObj.optJSONObject("validUntil"), Date.class); warningUntil = (Date)JSONObject.toBean(expirationObj.optJSONObject("warningUntil"), Date.class); + if(validUntil != null){ + validDateToPrint = Constants.SIMPLEDATEFORMAT_YYYYMMDD.format(validUntil); + } + if(sterileStartTime != null){ + sterilizationDateToPrint = Constants.SIMPLEDATEFORMAT_YYYYMMDD.format(sterileStartTime); + } - validDateToPrint = Constants.SIMPLEDATEFORMAT_YYYYMMDD.format(validUntil); - sterilizationDateToPrint = Constants.SIMPLEDATEFORMAT_YYYYMMDD.format(sterileStartTime); - markTousse = expirationObj.optBoolean("markTousse"); } Index: ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js =================================================================== diff -u -r16306 -r16333 --- ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 16306) +++ ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 16333) @@ -450,7 +450,8 @@ var showName = tousseName; var applicationid = record.get('applicationID'); var packageType = record.get('packageType'); - str += ""; + var sterilingMethod = record.get('sterilingMethod'); + str += ""; } } return str; Index: ssts-web/src/main/webapp/disinfectsystem/packing/splitForeignTousseView.js =================================================================== diff -u -r16306 -r16333 --- ssts-web/src/main/webapp/disinfectsystem/packing/splitForeignTousseView.js (.../splitForeignTousseView.js) (revision 16306) +++ ssts-web/src/main/webapp/disinfectsystem/packing/splitForeignTousseView.js (.../splitForeignTousseView.js) (revision 16333) @@ -1,253 +1,140 @@ -//拆分外来器械包 -var leftMaterialGridPanel; -var leftMaterialStore; -var addSplitMaterial; -var rightMaterialGridPanel; -var rightMaterialStore; - -var childPackagePanel; -var childPackageStore; -var addMaterial; - -var splitforeignPanel; - var tempforeignTousseName=""; -var packageTypeStoreExt2 = new Ext.data.SimpleStore({ - fields : [ 'typeName' ], - url : WWWROOT + '/disinfectSystem/baseData/expirationDateInfoAction!getPackageType.do' -}); -packageTypeStoreExt2.load(); - -var isBigPackageStore = new Ext.data.SimpleStore( { - fields : ['result'], - data : [['是'],['否']] -}); - function validateValidUntil(foreignTousseName,supplierName){ - var showResult = ""; - for ( var i = 0; i < childPackageStore.getCount(); i++) { - var record = childPackageStore.getAt(i); - var packageType = record.get("packingType"); - DWREngine.setAsync(false); - var date = new Date(); - ExpirationDateInfoTableManager.getExpirationDate(date,packageType,function(result){ - var json = JSON.parse(result); - if (!json.isDefined){ - showResult += (packageType + ","); - } - }); - DWREngine.setAsync(true); - } - return showResult; + var showResult = ""; + var splitedTousseStore = top.Ext4.getCmp("splitedTousseGrid").getStore(); + for ( var i = 0; i < splitedTousseStore.getCount(); i++) { + var record = splitedTousseStore.getAt(i); + var packageType = record.get("packingType"); + DWREngine.setAsync(false); + var date = new Date(); + ExpirationDateInfoTableManager.getExpirationDate(date,packageType,function(result){ + var json = JSON.parse(result); + if (!json.isDefined){ + showResult += (packageType + ","); + } + }); + DWREngine.setAsync(true); + } + return showResult; } function resetTotolAmount(){ var totalAmount = 0; - for ( var n = 0; n < rightMaterialStore.getCount(); n++) { - var record = rightMaterialStore.getAt(n); + var splitedMaterialStore = top.Ext4.getCmp("splitedMaterialGrid").getStore(); + for ( var n = 0; n < splitedMaterialStore.getCount(); n++) { + var record = splitedMaterialStore.getAt(n); var amount = record.get('materialAmount'); totalAmount += amount; } var str = "            "; str += "            "; str += "     "; - rightMaterialGridPanel.setTitle("已拆分的材料" + str + "材料数量:" + totalAmount); -} + top.Ext4.getCmp("splitedMaterialGrid").setTitle("已拆分的材料" + str + "材料数量:" + totalAmount); +} -function toRightGrid(){ - var records = leftMaterialGridPanel.getSelectionModel().getSelections(); - if (records.length == 0) { - showResult("请选择!"); - return false; - } - //添加 - for ( var j = 0; j < records.length; j++) { - var materialName = records[j].data['materialName']; - var splitAmount = records[j].data['splitAmount']; - var materialAmount = records[j].data['materialAmount']; - var includeImplant = records[j].data['includeImplant']; - if(splitAmount > materialAmount){ - showResult("拆分数量不能大于剩余数量!"); - return false; - } - if(splitAmount == 0){ - continue; - } - var b = false; - for ( var n = 0; n < rightMaterialStore.getCount(); n++) { - var record = rightMaterialStore.getAt(n); - var name =record.get('materialName'); - var amount = record.get('materialAmount'); - if(name == materialName){ - b =true; - var num = Number(amount) + Number(splitAmount); - record.set('materialAmount', num); - } - } - if(!b){ - var record = new addSplitMaterial({ - materialName : materialName, - materialAmount : splitAmount, - includeImplant : includeImplant - }); - rightMaterialStore.addSorted(record); - } - } - //删除 - var rows = top.Ext.getCmp('splitMaterialGrid2').getSelectionModel().getSelections();// 返回值为 - if (rows) { - for ( var i = 0; i < rows.length; i++) { - var splitAmount = rows[i].data['splitAmount']; - var materialAmount = rows[i].data['materialAmount']; - if(splitAmount == materialAmount){ - leftMaterialStore.remove(rows[i]); - }else{ - var num = Number(materialAmount) - Number(splitAmount); - rows[i].set('splitAmount', num); - rows[i].set('materialAmount', num); - } - } - } - resetTotolAmount(); +function addMaterialToSplitGrid(splitedMaterialStore,materialName,materialAmount,includeImplant){ + if(materialAmount <= 0){ + return false; + } + var index = splitedMaterialStore.findExact("materialName", materialName); + if (index == -1){ + var addItem = [{ + materialName : materialName, + materialAmount : materialAmount, + splitAmount : materialAmount, + includeImplant : includeImplant + }] + splitedMaterialStore.insert(0,addItem); + }else{ + var splitRecord = splitedMaterialStore.getAt(index); + splitRecord.set('materialAmount', materialAmount + splitRecord.get("materialAmount")); + } } -function allToRightGrid(){ - var objArray = new Array(); - for ( var i = 0; i < leftMaterialStore.getCount(); i++) { - var record = leftMaterialStore.getAt(i); - var name =record.get('materialName'); - var amount = record.get('splitAmount'); - var materialAmount = record.get('materialAmount'); - var includeImplant = record.get('includeImplant'); - if(Number(amount) > Number(materialAmount)){ - amount = materialAmount; - } - if(Number(amount) < Number(materialAmount)){ - var num = Number(materialAmount) - Number(amount); - record.set('splitAmount', num); - record.set('materialAmount', num); - } - - var b =false; - for ( var n = 0; n < rightMaterialStore.getCount(); n++) { - var rightRecord = rightMaterialStore.getAt(n); - var rightName =rightRecord.get('materialName'); - var rightAmount = rightRecord.get('materialAmount'); - if(rightName == name){ - b = true; - var num = Number(rightAmount) + Number(amount); - rightRecord.set('materialAmount', num); - } +function toSplitedGrid(isAllMove){ + + var waitSplitMaterialGrid = top.Ext4.getCmp("waitSplitMaterialGrid"); + var waitSplitMaterialStore = waitSplitMaterialGrid.getStore(); + var splitedMaterialStore = top.Ext4.getCmp("splitedMaterialGrid").getStore(); + + if(isAllMove){ + var store = waitSplitMaterialGrid.getStore(); + for(var i = 0 ; i < store.getCount() ; i++){ + var record = store.getAt(i); + addMaterialToSplitGrid(splitedMaterialStore,record.get("materialName"),record.get("materialAmount"),record.get("includeImplant")); + } + waitSplitMaterialStore.removeAll(); + }else{ + var records = waitSplitMaterialGrid.getSelectionModel().getSelection(); + if (records.length == 0) { + showResult("请选择!"); + return false; + } + for(var i = 0 ; i < records.length ; i++){ + var materialName = records[i].data["materialName"]; + var splitAmount = records[i].data['splitAmount'];//拆分数量 + var materialAmount = records[i].data["materialAmount"];//总数量 + var includeImplant = records[i].data["includeImplant"]; + + if(splitAmount > materialAmount){ + showResult("拆分数量不能大于剩余数量!"); + return false; } - if(!b){ - var rightrecord = new addSplitMaterial({ - materialName : name, - materialAmount : amount, - includeImplant:includeImplant - }); - rightMaterialStore.add(rightrecord); - } - - if(amount == materialAmount){ - var index = objArray.length; - objArray[index] = record; - } - } - if(objArray.length > 0){ - for ( var j = 0; j < objArray.length; j++) { - leftMaterialStore.remove(objArray[j]); - } - } + addMaterialToSplitGrid(splitedMaterialStore,materialName,splitAmount,includeImplant); + + if(splitAmount == materialAmount){ + waitSplitMaterialStore.remove(records[i]); + }else{ + var num = Number(materialAmount) - Number(splitAmount); + records[i].set('splitAmount', num); + records[i].set('materialAmount', num); + } + } + } resetTotolAmount(); } -function allToLeftGrid(){ - for ( var i = 0; i < rightMaterialStore.getCount(); i++) { - var record = rightMaterialStore.getAt(i); - var name =record.get('materialName'); - var amount = record.get('materialAmount'); - var includeImplant = record.get('includeImplant'); - - var b = false; - for ( var n = 0; n < leftMaterialStore.getCount(); n++) { - var leftRecord = leftMaterialStore.getAt(n); - var leftName =leftRecord.get('materialName'); - var leftAmount = leftRecord.get('materialAmount'); - if(leftName == name){ - b =true; - var num = Number(leftAmount) + Number(amount); - leftRecord.set('materialAmount', num); - leftRecord.set('splitAmount', num); - - } - } - if(!b){ - var rightrecord = new addSplitMaterial({ - materialName : name, - splitAmount : amount, - materialAmount : amount, - includeImplant:includeImplant - }); - leftMaterialStore.addSorted(rightrecord); - } - } - rightMaterialStore.removeAll(); - resetTotolAmount(); -} -function toLeftGrid(){ - var records = rightMaterialGridPanel.getSelectionModel().getSelections(); - if (records.length == 0) { - showResult("请选择!"); - return false; - } - for ( var j = 0; j < records.length; j++) { - var materialName = records[j].data['materialName']; - var materialAmount = records[j].data['materialAmount']; - var includeImplant = records[j].data['includeImplant']; - - var b = false; - for ( var n = 0; n < leftMaterialStore.getCount(); n++) { - var record = leftMaterialStore.getAt(n); - var name =record.get('materialName'); - var amount = record.get('materialAmount'); - if(name == materialName){ - b =true; - var num = Number(amount) + Number(materialAmount); - record.set('materialAmount', num); - record.set('splitAmount', num); - } - } - if(!b){ - var record = new addSplitMaterial({ - materialName : materialName, - splitAmount : materialAmount, - materialAmount : materialAmount, - includeImplant:includeImplant - }); - leftMaterialStore.add(record); - } - } - //删除 - var rows = top.Ext.getCmp('splitMaterialGrid3').getSelectionModel().getSelections();// 返回值为 - if (rows) { - for ( var i = 0; i < rows.length; i++) { - rightMaterialStore.remove(rows[i]); - } - } +function toWaitSplitGrid(isAllMove){ + + var splitedMaterialGrid = top.Ext4.getCmp("splitedMaterialGrid"); + var splitedMaterialStore = splitedMaterialGrid.getStore(); + var waitSplitMaterialStore = top.Ext4.getCmp("waitSplitMaterialGrid").getStore(); + + if(isAllMove){ + for(var i = 0 ; i < splitedMaterialStore.getCount() ; i++){ + var record = splitedMaterialStore.getAt(i); + addMaterialToSplitGrid(waitSplitMaterialStore,record.get("materialName"),record.get("materialAmount"),record.get("includeImplant")); + } + splitedMaterialStore.removeAll(); + }else{ + var records = splitedMaterialGrid.getSelectionModel().getSelection(); + if (records.length == 0) { + showResult("请选择!"); + return false; + } + for(var i = 0 ; i < records.length ; i++){ + var materialName = records[i].data["materialName"]; + var materialAmount = records[i].data["materialAmount"];//总数量 + var includeImplant = records[i].data["includeImplant"]; + addMaterialToSplitGrid(waitSplitMaterialStore,materialName,materialAmount,includeImplant); + splitedMaterialStore.remove(records[i]); + } + } resetTotolAmount(); } -//拆包 -var j = 1; -function createChildPackage(){ - var materialsStr = ""; + +function toSplitTousseGrid(tousseName,splitTousseNum){ + var success = false; + var materialsStr = ""; var toolAmount = 0; // 工具数量 var implantAmount = 0; // 植入物数量 var materialsArray = []; - for ( var i = 0; i < rightMaterialStore.getCount(); i++) { - var record = rightMaterialStore.getAt(i); + var splitedMaterialStore = top.Ext4.getCmp("splitedMaterialGrid").getStore(); + for ( var i = 0; i < splitedMaterialStore.getCount(); i++) { + var record = splitedMaterialStore.getAt(i); var includeImplant = record.get('includeImplant'); if(includeImplant == "是"){ @@ -267,36 +154,41 @@ materialObj.name = record.get('materialName'); materialObj.includeImplant = includeImplant; materialObj.materialAmount = record.get('materialAmount'); - materialsArray.push(materialObj); } + var packageName = (tousseName + "(部分" + splitTousseNum + ")"); + var type = top.Ext4.getCmp("foreignToussePackageType").getValue(); - var packageName = tempforeignTousseName + "(部分"+j+")"; - var type = top.Ext.getCmp("foreignToussePackageType").getValue(); + var splitedTousseStore = top.Ext4.getCmp("splitedTousseGrid").getStore(); + if(materialsStr != ""){ - j++; - var record = new addMaterial({ + var item = [{ tousseName : packageName, materialNames : materialsStr, materialsJsonArray : materialsArray, packingType : type, bigPackage : "否", toolAmount : toolAmount, implantAmount : implantAmount - }); - childPackageStore.add(record); + }]; + + splitedTousseStore.add(item); //删除 - rightMaterialStore.removeAll(); + splitedMaterialStore.removeAll(); + success = true; }else{ showResult("请选择拆分的材料!"); } + + return success; } //获取拆分的包的数据 function getSplitForeignTousse(){ var packages = []; - for ( var i = 0; i < childPackageStore.getCount(); i++) { - var record = childPackageStore.getAt(i); + var splitedTousseStore = top.Ext4.getCmp("splitedTousseGrid").getStore(); + for ( var i = 0; i < splitedTousseStore.getCount(); i++) { + var record = splitedTousseStore.getAt(i); var tousse = {}; tousse.tousseName = record.get('tousseName'); @@ -310,17 +202,17 @@ } if(packages.length > 0){ - top.Ext.getCmp('splitPackages').setValue(JSON.stringify(packages)); + top.Ext4.getCmp('splitPackages').setValue(JSON.stringify(packages)); return true; }else{ - top.Ext.getCmp('splitPackages').setValue(null); + top.Ext4.getCmp('splitPackages').setValue(null); return false; } } function loadReviewerByBarcode(barcodeField,elementName,elementCode){ - var nameTextfieldObj = top.Ext.getCmp(elementName); - var codeTextfieldObj = top.Ext.getCmp(elementCode); + var nameTextfieldObj = top.Ext4.getCmp(elementName); + var codeTextfieldObj = top.Ext4.getCmp(elementCode); var peopleOfBarcode = barcodeField.getValue(); if(peopleOfBarcode){ @@ -334,7 +226,7 @@ nameTextfieldObj.setValue(result.fullName); codeTextfieldObj.setValue(result.name); if(elementName == "operator2"){ - top.Ext.getCmp('reviewerBarcode2').focus('', 10); + top.Ext4.getCmp('reviewerBarcode2').focus('', 10); } } }else{ @@ -347,24 +239,229 @@ barcodeField.setValue(""); } -function splitForeignTousse(packTaskId,foreignTousseName,showName,applicationid,thizAmount,supplierName,basketBarcode,packageType){ - //器械报基础信息 - tempforeignTousseName = showName; +function splitForeignTousse(packTaskId,foreignTousseName,showName,applicationid,thizAmount,supplierName,basketBarcode,packageType,sterilingType){ + + var splitTousseNum = 1; + + top.Ext4.define('cellEditingGrid',{ + extend: 'top.Ext4.grid.Panel', + xtype: 'cell-editing', + useArrows: true, + columnLines: true, + rowLines: true, + cls: 'no-leaf-icons', + initComponent: function() { + this.cellEditing = new top.Ext4.grid.plugin.CellEditing({ + clicksToEdit: 1 + }); + Ext4.apply(this, { + plugins: [this.cellEditing] + }); + this.superclass.initComponent.call(this); + } + }); + + var fToussePackageTypeStore = new Ext4.data.Store({ + proxy : { + type : 'ajax', + url : WWWROOT + '/disinfectSystem/baseData/expirationDateInfoAction!getPackageTypeAndExpirationDateInfo.do', + reader : { + type : 'array' + } + }, + fields : ['typeName','validDate','validDateUnit','warningDate'], + autoLoad : true + }); + + var isBigPackageStore = new Ext4.data.SimpleStore( { + fields : ['result'], + data : [['是'],['否']] + }); + var fTousseSterilizerTypeStore = new Ext4.data.Store({ + proxy : { + type : 'ajax', + url : WWWROOT + '/disinfectSystem/baseData/sterilizerAction!getSterilizerTypeAndSterilizationPurpose.do', + reader : { + type : 'array' + } + }, + fields : [ 'id','typeName','typeNameAndPurpose' ], + autoLoad : true + }); + + var fTousseSterilizerJsonStore = new Ext4.data.Store({ + proxy : { + type : 'ajax', + url : WWWROOT + '/disinfectSystem/baseData/sterilizerAction!getAllSterilizer.do?includeNone=yes', + reader : { + type : 'array' + } + }, + fields : [ 'sterilizerName' ], + autoLoad : true + }); + + var waitSplitMaterialGrid = top.Ext4.create('cellEditingGrid', { + id : 'waitSplitMaterialGrid', + title : '待拆分的材料', + height: 250, + border : false, + store: new Ext4.data.Store({ + autoLoad : true, + proxy : { + type : 'ajax', + url : WWWROOT + '/disinfectSystem/packingAction!getTousseIncludeMaterials.do?packTaskId='+packTaskId, + reader : { + type : 'json', + root : 'data' + } + },fields : [ + {name : 'materialName',mapping : 'materialName'}, + {name : 'splitAmount',mapping : 'splitAmount'}, + {name : 'materialAmount',mapping : 'materialAmount'}, + {name : 'includeImplant',mapping : 'includeImplant'} + ] + }), + columns:[{ + header : "材料名称", + dataIndex : 'materialName', + width : 190 + }, { + header : "拆分数量", + dataIndex : 'splitAmount', + width : 70, + editor : { + xtype: 'numberfield', + allowDecimals : false, + minValue : 0, + allowBlank: false, + listeners:{ + focus : function(thiz){ + thiz.selectText(); + } + } + } + }, { + header : "剩余数量", + dataIndex : 'materialAmount', + width : 70 + },{ + header : "植入物", + width : 50, + dataIndex : 'includeImplant' + }] + }); + + var splitedMaterialGrid = top.Ext4.create('cellEditingGrid', { + id : 'splitedMaterialGrid', + title : '已拆分的材料', + height : 250, + border : false, + store: new Ext4.data.Store({ + proxy : { + type : 'ajax', + url : WWWROOT + '/disinfectSystem/packingAction!getTousseIncludeMaterials.do', + reader : { + type : 'json', + root : 'data' + } + },fields : [ + {name : 'materialName',mapping : 'materialName'}, + {name : 'splitAmount',mapping : 'splitAmount'}, + {name : 'materialAmount',mapping : 'materialAmount'}, + {name : 'includeImplant',mapping : 'includeImplant'} + ] + }), + columns:[{ + header : "材料名称", + dataIndex : 'materialName', + width : 210 + }, { + header : "数量", + dataIndex : 'materialAmount', + width : 80 + },{ + header : "植入物", + dataIndex : 'includeImplant', + width : 80 + }] + }); + + var splitedTousseGrid = top.Ext4.create('cellEditingGrid', { + id : 'splitedTousseGrid', + title : '已拆分的器械包', + width:300, + height: 300, + border : false, + store: new Ext4.data.Store({ + fields : [ + {name : 'tousseName',mapping : 'tousseName'}, + {name : 'bigPackage',mapping : 'bigPackage'}, + {name : 'packingType',mapping : 'packingType'}, + {name : 'materialNames',mapping : 'materialNames'}, + {name : 'toolAmount',mapping : 'toolAmount'}, + {name : 'materialsJsonArray',mapping : 'materialsJsonArray'}, + {name : 'implantAmount',mapping : 'implantAmount'} + ] + }), + columns:[{ + header : "器械包名称", + dataIndex : 'tousseName', + width : 260 + },{ + header : "超大超重包", + dataIndex : 'bigPackage', + width : 80, + editor : new top.Ext4.form.field.ComboBox({ + typeAhead: true, + valueField : 'result', + displayField : 'result', + triggerAction: 'all', + allowBlank : false, + store: isBigPackageStore + }) + },{ + header : "包装类型", + dataIndex : 'packingType', + width : 120, + editor : new top.Ext4.form.field.ComboBox({ + typeAhead: true, + valueField : 'typeName', + displayField : 'typeName', + triggerAction: 'all', + allowBlank : false, + store: fToussePackageTypeStore + }) + }, { + header : "包含的材料", + dataIndex : 'materialNames', + width : 200 + },{ + header:"工具件数", + width : 80, + align : 'center', + dataIndex:'toolAmount' + },{ + header:"植入物件数", + width : 90, + align : 'center', + dataIndex:'implantAmount' + }] + }); + var isShowDefaultPackerOfSplitForeignTousse = getBoolValueFromJs("sstsConfig.isShowDefaultPackerOfSplitForeignTousse",true); - splitforeignPanel = new top.Ext.form.FormPanel( { - labelAlign : 'right', - buttonAlign : 'center', - collapsible : true, - collapseMode : 'mini', - split : true, - border : 0, - labelSeparator : ':', -// bodyStyle : 'padding: 10px 10px 0 10px;', - frame : true, - layout: 'column', - bodyStyle : 'padding:0px auto;margin:0px',// padding:1px;padding-top:5px; + var foreignToussePanel = new top.Ext4.form.Panel( { + id : 'foreignToussePanel', + region: 'center', + border: true, + frame:true, + buttonAlign : 'center', + layout: "column", + bodyStyle: { + background: '#EBF5ED' + }, items : [{ xtype : 'hidden', id : 'selectTousseName2', @@ -398,228 +495,244 @@ name : 'foreignToussePackageType', value : packageType },{ + xtype : 'textfield', columnWidth : .33, - layout : 'form', labelWidth : 70, - items : [{ - xtype : 'textfield', - fieldLabel : "配包人条码", - name : "packerBarcode", - id : "packerBarcode2", - allowBlank : true, - listeners : { - specialkey : function(thiz, e){ - if(e.getKey() == 13){ - loadReviewerByBarcode(thiz,"operator2","operatorCode2"); - } + bodyStyle: { + background: '#EBF5ED' + }, + fieldLabel : "配包人条码", + name : "packerBarcode", + id : "packerBarcode2", + labelAlign:'right', + allowBlank : true, + listeners : { + specialkey : function(thiz, e){ + if(e.getKey() == 13){ + loadReviewerByBarcode(thiz,"operator2","operatorCode2"); } - }, - anchor : '80%' -// allowBlank :false - }] + } + }, + anchor : '80%' },{ + xtype : 'textfield', + fieldLabel : '配包人', columnWidth : .33, - layout : 'form', labelWidth : 70, - items : [{ - xtype : 'textfield', - fieldLabel : '配包人', - maxLength : '16', - id : 'operator2', - name : 'operator', - value : (isShowDefaultPackerOfSplitForeignTousse ? $Id('userName').value : ""), - allowBlank : false, - readOnly : true, - anchor : '80%' - }] + bodyStyle: { + background: '#EBF5ED' + }, + maxLength : '16', + id : 'operator2', + name : 'operator', + labelAlign:'right', + componentCls:'formItemMgn', + value : (isShowDefaultPackerOfSplitForeignTousse ? $Id('userName').value : ""), + allowBlank : false, + readOnly : true, + anchor : '80%' },{ + xtype : 'textfield', columnWidth : .33, - layout : 'form', labelWidth : 70, hidden: sstsConfig.hideReviewerField, - items : [{ - xtype : 'textfield', - fieldLabel : "审核人条码", - name : "reviewerBarcode", - id : "reviewerBarcode2", - hidden: sstsConfig.hideReviewerField, - allowBlank : true, - listeners : { - specialkey : function(thiz, e){ - if(e.getKey() == 13){ - loadReviewerByBarcode(thiz,"reviewer2","reviewerCode2"); - } + bodyStyle: { + background: '#EBF5ED' + }, + fieldLabel : "审核人条码", + name : "reviewerBarcode", + id : "reviewerBarcode2", + labelAlign:'right', + componentCls:'formItemMgn', + hidden: sstsConfig.hideReviewerField, + allowBlank : true, + listeners : { + specialkey : function(thiz, e){ + if(e.getKey() == 13){ + loadReviewerByBarcode(thiz,"reviewer2","reviewerCode2"); } - }, - anchor : '80%' - }] + } + }, + anchor : '80%' },{ + xtype : 'textfield', columnWidth : .33, - layout : 'form', labelWidth : 70, hidden: sstsConfig.hideReviewerField, - items : [{ - xtype : 'textfield', - fieldLabel : "审核人", - name : "reviewer", - id : "reviewer2", - hidden: sstsConfig.hideReviewerField, -// allowBlank : false, - anchor : '80%', - value : Ext.state.Manager.getProvider().get('reviewer2'), - readOnly: true - }] + margin :'5 0 0 0', + bodyStyle: { + background: '#EBF5ED' + }, + fieldLabel : "审核人", + name : "reviewer", + id : "reviewer2", + labelAlign:'right', + hidden: sstsConfig.hideReviewerField, + anchor : '80%', + value : jobType_review_name, + readOnly: true },{ + xtype : 'textfield', columnWidth : .33, - layout : 'form', labelWidth : 70, hidden : !sstsConfig.showSterileField, - items : [{ - xtype : 'textfield', - fieldLabel : "灭菌人条码", - name : "sterileBarcode", - id : "sterileBarcode2", - allowBlank : true, - listeners : { - specialkey : function(thiz, e){ - if(e.getKey() == 13){ - loadReviewerByBarcode(thiz,"sterileUser2","sterileCode2"); - } + bodyStyle: { + background: '#EBF5ED' + }, + fieldLabel : "灭菌人条码", + name : "sterileBarcode", + id : "sterileBarcode2", + labelAlign:'right', + margin :'5 0 0 0', + allowBlank : true, + listeners : { + specialkey : function(thiz, e){ + if(e.getKey() == 13){ + loadReviewerByBarcode(thiz,"sterileUser2","sterileCode2"); } - }, - anchor : '80%' - }] + } + }, + anchor : '80%' },{ + xtype : 'textfield', columnWidth : .33, - layout : 'form', labelWidth : 70, hidden : !sstsConfig.showSterileField, - items : [{ - xtype : 'textfield', - fieldLabel : "灭菌人", - name : "sterileUser", - id : "sterileUser2", - allowBlank : true, - anchor : '80%', - value : jobType_sterile_name, - readOnly: true - }] + bodyStyle: { + background: '#EBF5ED' + }, + fieldLabel : "灭菌人", + name : "sterileUser", + id : "sterileUser2", + labelAlign:'right', + margin :'5 0 0 0', + allowBlank : true, + anchor : '80%', + value : jobType_sterile_name, + readOnly: true }, { + xtype : "combo", columnWidth : .33, - layout : 'form', labelWidth : 70, - items : [{ - xtype : 'combo', - fieldLabel : "灭菌程序", - valueField : 'typeName', - displayField : 'typeNameAndPurpose', - store : sterilizerTypeStore, - forceSelection : true, - editable : false, - triggerAction : 'all', - name : "sterilingType", - id : "sterilingType2", - anchor : '80%', - allowBlank : false - }] + bodyStyle: { + background: '#EBF5ED' + }, + fieldLabel : "灭菌程序", + valueField : "typeName", + displayField : "typeNameAndPurpose", + labelAlign:'right', + margin :'5 0 0 0', + store : fTousseSterilizerTypeStore, + forceSelection : true, + editable : false, + triggerAction : "all", + name : "sterilingType", + id : "sterilingType2", + anchor : "80%", + value : sterilingType, + allowBlank : false },{ + xtype : 'combo', columnWidth : .33, - layout : 'form', labelWidth : 70, hidden : !sstsConfig.showSterilizer, - items : [{ - xtype : 'combo', - fieldLabel : '灭菌炉', - id : 'sterilizer2', - name : 'sterilizer', - valueField : 'sterilizerName', - displayField : 'sterilizerName', - store : sterilizerJsonStore, - triggerAction : 'all', - mode : 'remote', - editable : false, - forceSelection : true, - allowBlank : !sstsConfig.sterilizerNotAllowBlank, - anchor : '80%', - listeners : { - select : function(combo, record, index) { - SterilizationRecordTableManager.getMaxFrequency(combo.value,0,function(frequency){ - top.Ext.getCmp('frequency2').setValue(frequency); - }); - } + bodyStyle: { + background: '#EBF5ED' + }, + fieldLabel : '灭菌炉', + id : 'sterilizer2', + name : 'sterilizer', + valueField : 'sterilizerName', + displayField : 'sterilizerName', + labelAlign:'right', + margin :'5 0 0 0', + store : fTousseSterilizerJsonStore, + triggerAction : 'all', + mode : 'remote', + editable : false, + forceSelection : true, + allowBlank : !sstsConfig.sterilizerNotAllowBlank, + anchor : '80%', + listeners : { + select : function(combo, record, index) { + SterilizationRecordTableManager.getMaxFrequency(combo.value,0,function(frequency){ + top.Ext4.getCmp('frequency2').setValue(frequency); + }); } - }] + } },{ + xtype : 'numberfield', columnWidth : .33, - layout : 'form', labelWidth : 70, hidden : !sstsConfig.showSterilizer, - items : [{ - xtype : 'numberfield', - fieldLabel : '炉次', - allowDecimals : false, - allowNegative : false, - minValue : 1, - id : 'frequency2', - name : 'frequency', - allowBlank : !sstsConfig.sterilizerNotAllowBlank, - value : 1, - anchor : '80%' - }] + bodyStyle: { + background: '#EBF5ED' + }, + fieldLabel : '炉次', + allowDecimals : false, + allowNegative : false, + minValue : 1, + id : 'frequency2', + name : 'frequency', + labelAlign:'right', + margin :'5 0 0 0', + allowBlank : !sstsConfig.sterilizerNotAllowBlank, + value : 1, + anchor : '80%' },{ + xtype : 'textfield', columnWidth : 0.33, - layout : 'form', labelWidth : 70, - items : [{ - xtype : 'textfield', - fieldLabel : '装配数量', - maxLength : '16', - id : 'packAmount2', - name : 'packAmount', - allowBlank : true, - value : 1, - readOnly :true, - anchor : '80%' - }] + bodyStyle: { + background: '#EBF5ED' + }, + fieldLabel : '装配数量', + maxLength : '16', + id : 'packAmount2', + name : 'packAmount', + labelAlign:'right', + margin :'5 0 0 0', + allowBlank : true, + value : 1, + readOnly :true, + anchor : '80%' }], buttons : [{ text : packingBtnText, handler : function() { - - if (!splitforeignPanel.form.isValid()) { + if (!foreignToussePanel.form.isValid()) { showResult('请正确填写表单各值'); this.enable(); return false; } packingToussesArray = []; // 清除所装配的器械包数组 - var v = leftMaterialStore.getCount(); + var waitSplitMaterialStore = top.Ext4.getCmp("waitSplitMaterialGrid").getStore(); + var splitedMaterialStore = top.Ext4.getCmp("splitedMaterialGrid").getStore(); + + var v = waitSplitMaterialStore.getCount(); if(v > 0){ showResult("待拆分的材料部分未拆分!"); return false; } - v = rightMaterialStore.getCount(); + v = splitedMaterialStore.getCount(); if(v > 0){ showResult("已拆分的材料部分未拆分!"); return false; } - top.Ext.getCmp('taskGroup2').setValue(taskGroup); + top.Ext4.getCmp('taskGroup2').setValue(taskGroup); var ids = packTaskId; if(ids == ""){ showResult("请选择要装配的器械包!"); return false; } - var reviewer = top.Ext.getCmp('reviewer2'); + var reviewer = top.Ext4.getCmp('reviewer2'); if(reviewer.isVisible() && !reviewer.getValue()){ showResult("请扫描审核人条码!"); return false; } - - if(!splitforeignPanel.getForm().isValid()){ - return false; - } //验证失效期 var result = validateValidUntil(foreignTousseName,supplierName); if(result != ""){ @@ -632,21 +745,21 @@ } - operator = top.Ext.getCmp('operator2').getValue(); - operatorCode = top.Ext.getCmp('operatorCode2').getValue(); - reviewer = top.Ext.getCmp('reviewer2').getValue(); - reviewerCode = top.Ext.getCmp('reviewerCode2').getValue(); - sterileUserName = top.Ext.getCmp('sterileUser2').getValue(); - sterileUserCode = top.Ext.getCmp('sterileCode2').getValue(); + operator = top.Ext4.getCmp('operator2').getValue(); + operatorCode = top.Ext4.getCmp('operatorCode2').getValue(); + reviewer = top.Ext4.getCmp('reviewer2').getValue(); + reviewerCode = top.Ext4.getCmp('reviewerCode2').getValue(); + sterileUserName = top.Ext4.getCmp('sterileUser2').getValue(); + sterileUserCode = top.Ext4.getCmp('sterileCode2').getValue(); var packageType = ""; - var sterilingType = top.Ext.getCmp('sterilingType2').getValue(); + var sterilingType = top.Ext4.getCmp('sterilingType2').getValue(); var stock = ""; - var packAmount = top.Ext.getCmp('packAmount2').getValue(); - var splitPackages = top.Ext.getCmp('splitPackages').getValue(); + var packAmount = top.Ext4.getCmp('packAmount2').getValue(); + var splitPackages = top.Ext4.getCmp('splitPackages').getValue(); var idCardBarcode = ""; - var sterilizer = top.Ext.getCmp("sterilizer2").getValue(); - var frequency = top.Ext.getCmp("frequency2").getValue(); + var sterilizer = top.Ext4.getCmp("sterilizer2").getValue(); + var frequency = top.Ext4.getCmp("frequency2").getValue(); var sterileDate = new Date(); //灭菌日期默认为当天 @@ -699,304 +812,46 @@ var tousseObj = tousses[i]; // 必须先调用此代码,然后才能调用Ext.MessageBox.updateProgress - top.Ext.MessageBox.progress('打印中', '请稍候...'); - top.Ext.MessageBox.updateProgress((pi*tousses.length+i + 1)/(printAmount*tousses.length),'第'+ (pi+1)+ '次打印,共'+printAmount+'次,第'+(i + 1) + '个包,共' + tousses.length + '个包'); + top.Ext4.MessageBox.progress('打印中', '请稍候...'); + top.Ext4.MessageBox.updateProgress((pi*tousses.length+i + 1)/(printAmount*tousses.length),'第'+ (pi+1)+ '次打印,共'+printAmount+'次,第'+(i + 1) + '个包,共' + tousses.length + '个包'); printLabel(tousseObj); } } - hideMessageBox(true); + hideMessageBox4(true); } Ext4.getCmp('waitPackingTreeGrid').getStore().reload(); Ext4.getCmp('basketTreeGrid').getStore().reload(); - window.close(); + + top.Ext4.getCmp("foreignTousseWin").close(); } else{ showResult(result.message); } - } - }); DWREngine.setAsync(true); } }] }); - // 设置外来器械包默认灭菌程序 - var method = ''; - DWREngine.setAsync(false); - PackingTableManager.getForeignTousseDefaultSterilingMethod(function(result){ - method = result; - }); - DWREngine.setAsync(true); - top.Ext.getCmp('sterilingType2').setValue(method); - /**********************待拆分区域**************************************************************/ - var leftMaterialCm = new Ext.grid.ColumnModel( [ { - header : "材料名称", - dataIndex : 'materialName', - width : 200, - menuDisabled: true - }, { - id:'materialAmount', - header : "拆分数量", - dataIndex : 'splitAmount', - width : 60, - menuDisabled: true, - editor : new Ext.form.NumberField({ - allowBlank : false, - listeners : { - focus : function(thiz){ - thiz.selectText(); - } - } - }) - }, { - id:'materialAmount2', - header : "剩余数量", - dataIndex : 'materialAmount', - width : 60, - menuDisabled: true - },{ - id:'includeImplant', - header : "植入物", - width : 50, - dataIndex : 'includeImplant' - }]); - - var rightMaterialCm = new Ext.grid.ColumnModel( [ { - header : "材料名称", - dataIndex : 'materialName', - width : 200, - menuDisabled: true - }, { - id:'materialAmount', - header : "数量", - dataIndex : 'materialAmount', - width : 60, - menuDisabled: true - },{ - id:'includeImplant', - header : "植入物", - dataIndex : 'includeImplant', - width : 60 - }]); - - - var splitMaterialRd = new Ext.data.JsonReader({ - fields : [ - {name : 'materialName'}, - {name : 'splitAmount'}, - {name : 'materialAmount'}, - {name : 'includeImplant'} - ] - }); - //初始化加载器械包 - leftMaterialStore = new top.Ext.data.Store({ - proxy : new Ext.data.HttpProxy({ - url : WWWROOT + '/disinfectSystem/packingAction!getTousseIncludeMaterials.do', - method : 'POST' - }), - reader : splitMaterialRd - }); - - leftMaterialStore.on("beforeload", function(thiz, options) { - thiz.baseParams["packTaskId"] = packTaskId; - }); - leftMaterialStore.load(); - - leftMaterialGridPanel = new top.Ext.grid.EditorGridPanel( { - id : 'splitMaterialGrid2', - height : 250, - store : leftMaterialStore, - cm : leftMaterialCm, - title : '待拆分的材料', - clicksToEdit : 1,// 设置点击几次才可编辑 - selModel : new top.Ext.grid.RowSelectionModel({ - singleSelect : false - }), - viewConfig: { - forceFit:true - }, - frame : false, - border : true, - autoExpandColumn : 'materialAmount', - stripeRows : true, - bodyStyle : 'border:1px solid #afd7af;padding-left:5px' - }); - - - - /**************分类区*************/ - addSplitMaterial = Ext.data.Record.create( [{ - name : 'materialName' - }, { - name : 'materialAmount' - }]); - - rightMaterialStore = new top.Ext.data.Store({ - proxy : new Ext.data.HttpProxy({ - url : WWWROOT + '/disinfectSystem/packingAction!getTousseIncludeMaterials.do', - method : 'POST' - }), - reader : splitMaterialRd - }); - - rightMaterialGridPanel = new top.Ext.grid.GridPanel( { - id : 'splitMaterialGrid3', - height : 250, - store : rightMaterialStore, - cm : rightMaterialCm, - enableHdMenu : false, - clicksToEdit : 1,// 设置点击几次才可编辑 - selModel : new top.Ext.grid.RowSelectionModel({ - singleSelect : false - }), - viewConfig: { - forceFit:true - }, - title : '已拆分的材料', -// frame : false, -// border : true, - autoExpandColumn : 'materialAmount', - bodyStyle : 'border:1px solid #afd7af;padding-left:5px' - }); - - - /*************************已拆分区域*************************************************************************************/ - - - addMaterial = Ext.data.Record.create( [{ - name : 'tousseName' - }, { - name : 'materialNames' - }, { - name : 'materialsJsonArray' - },{ - name : 'packingType' - }, { - name : 'toolAmount' - }, { - name : 'implantAmount' - },{ - name : 'bigPackage' - }]); - - var materialCm = new top.Ext.grid.ColumnModel( [ { - header : "器械包名称", - dataIndex : 'tousseName', - width : 160, - menuDisabled: true - },{ - id : 'bigPackage', - header : "超大超重包", - dataIndex : 'bigPackage', - width : 60, - editor :new top.Ext.form.ComboBox({ - fieldLabel : '是否装配', - valueField : 'result', - displayField : 'result', - store : isBigPackageStore, - forceSelection : true, - allowBlank : false, - triggerAction : 'all', - mode : 'local', - anchor : '97%' - }) - },{ - id : 'packingType', - header : "包装类型", - dataIndex : 'packingType', - width : 50, - editor :new top.Ext.form.ComboBox({ - fieldLabel : '包装类型', - valueField : 'typeName', - displayField : 'typeName', - listWidth : 150, - store : packageTypeStoreExt2, - forceSelection : true, - allowBlank : false, - triggerAction : 'all', - mode : 'local', - anchor : '97%' - }) - }, { - id:'materialNames', - header : "包含的材料", - dataIndex : 'materialNames', - width : 200, - menuDisabled: true - },{ - id:"toolAmount", - header:"工具件数", - width : 60, - align : 'center', - dataIndex:'toolAmount' - },{ - id:"implantAmount", - header:"植入物件数", - width : 70, - align : 'center', - dataIndex:'implantAmount' - }]); - - - var rd = new Ext.data.JsonReader({ - fields : [ - {name : 'tousseName'}, - {name : 'materialNames'}, - {name : 'packingType'}, - {name : 'total'}, - {name : 'bigPackage'} - - ] - }); - //初始化加载器械包 - childPackageStore = new top.Ext.data.Store({ - proxy : new Ext.data.HttpProxy({ - url : WWWROOT + '/disinfectSystem/recyclingApplicationAction!loadTousseInstaceByid.do', - method : 'POST' - }), - reader : rd - }); - //拆分列表区 - childPackagePanel = new top.Ext.grid.EditorGridPanel( { - id : 'splitMaterialGrid', - height : 200, - width : 800, - store : childPackageStore, - cm : materialCm, - title : '已拆分的器械包', - frame : false, - border : true, - selModel : new top.Ext.grid.RowSelectionModel({ - singleSelect : false - }), - viewConfig: { - forceFit:true - }, -// autoExpandColumn : 'materialNames', - stripeRows : true, - bodyStyle : 'border:1px solid #afd7af;padding-left:5px' - }); - - var window = new top.Ext.Window( { - id : 'invoiceWin', - layout : 'border', + var foreignTousseWin = new top.Ext4.window.Window( { + id : 'foreignTousseWin', title : '['+showName + ']拆分', width : 850, - height:630, - autoHeight : false, - border : false, - plain : true, - modal :true, + height: 630, + resizable :false, + modal : true, + border : false, + plain : true, + layout : 'border', items : [{ region : 'north', height : 130, layout : 'fit', - items : [splitforeignPanel] + items : [foreignToussePanel] }, { region : 'center', height : 250, @@ -1005,64 +860,73 @@ { layout : 'form', columnWidth : 0.47, - items : [ leftMaterialGridPanel ] + items : [ waitSplitMaterialGrid ] },{ layout : 'form', columnWidth : 0.06, buttonAlign:'center', height : 250, items : [ - { height :100, + { height :60, border:false }, { xtype :'button', text : '>>', minWidth:48, - handler : toRightGrid + handler : function(){ + toSplitedGrid(false); + } }, { xtype :'button', text : '<<', minWidth:48, - handler : toLeftGrid + handler : function(){ + toWaitSplitGrid(false); + } }, { xtype :'button', text : '>>>>', minWidth:48, - handler : allToRightGrid + handler : function(){ + toSplitedGrid(true); + } }, { xtype :'button', text : '<<<<', minWidth:48, - handler : allToLeftGrid + handler : function(){ + toWaitSplitGrid(true); + } },{ - xtype :'button', - text:'拆分', - border:false, - minWidth:48, - frame : false, - handler : createChildPackage - - } ] + xtype :'button', + text:'拆分', + border:false, + minWidth:48, + handler : function(){ + var success = toSplitTousseGrid(showName,splitTousseNum); + if(success){ + splitTousseNum++; + } + } + } ] }, { layout : 'form', columnWidth : 0.47, - items : [ rightMaterialGridPanel ] + items : [ splitedMaterialGrid ] } ] }, { region : 'south', height : 220, layout : 'fit', - items : [ childPackagePanel ] - } ] + items : [ splitedTousseGrid ] + }] }); - window.on('beforeclose',function(){ - j=1; - }); - window.show(); + foreignTousseWin.show(); + if (sstsConfig.printLabelWhenReviewing == true){ - var reviewer2 = top.Ext.getCmp("reviewer2"); - var reviewerBarcode2 = top.Ext.getCmp("reviewerBarcode2"); + var reviewer2 = top.Ext4.getCmp("reviewer2"); + var reviewerBarcode2 = top.Ext4.getCmp("reviewerBarcode2"); hideField(reviewer2); hideField(reviewerBarcode2); }