Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/foreignProxyDisinfectionView.js =================================================================== diff -u -r14618 -r14649 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/foreignProxyDisinfectionView.js (.../foreignProxyDisinfectionView.js) (revision 14618) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/foreignProxyDisinfectionView.js (.../foreignProxyDisinfectionView.js) (revision 14649) @@ -1,5 +1,6 @@ var entityName = "外部代理灭菌"; var grid; +var form = null; var foreignItemStore; var mustScanBasketForForeignProxy = true; @@ -715,6 +716,34 @@ reSetWin.show(); } +function validateForSubmit(){ + if(!form.getForm().isValid()){ + showResult('请正确填写表单各值'); + return false; + } + + if(foreignItemStore.getCount()<1){ + showResult(entityName+'物品列表不能为空'); + return false; + } + + var msg = ""; + if(mustScanBasketForForeignProxy){ + for ( var i = 0; i < foreignItemStore.getCount(); i++) { + var record = foreignItemStore.getAt(i); + if(record.get('basketBarcode') == ""){ + msg = record.get('tousseName') + ",未放入篮筐!"; + break; + } + + } + } + if(msg.length > 0){ + showResult(msg); + return false; + } + return true; +} function addAndEditForeignProxyDisinfection(id) { var updateTousse = false; @@ -845,7 +874,7 @@ } }]); - var form = new top.Ext.FormPanel( { + form = new top.Ext.FormPanel( { id : 'proxyDisinfectionForm', frame : true, border : 0, @@ -1388,7 +1417,7 @@ }], buttonAlign :'center', buttons : [{ - id :'saveAndPrintBtn', + id :'viewTousseInstances', text : '查看器械包', handler : function(){ var applicant = top.Ext.getCmp('applicant').getValue(); @@ -1443,36 +1472,58 @@ } },{ id :'saveAndPrintBtn', +// hidden: (id != ""), text : '装配并打印标签', disabled : SSTS_ForeignProxyDisinfection_Update, handler : function(){ top.Ext.MessageBox.confirm("请确认","是否提交"+entityName+"单信息?",function(btn) { if(btn=='yes') { - if(!form.getForm().isValid()){ - showResult('请正确填写表单各值'); + if(!validateForSubmit()){ return false; } - if(foreignItemStore.getCount()<1){ - showResult(entityName+'物品列表不能为空'); - return false; - } + //获取grid数据 + getEditerGridData(); - var msg = ""; - if(mustScanBasketForForeignProxy){ - for ( var i = 0; i < foreignItemStore.getCount(); i++) { - var record = foreignItemStore.getAt(i); - if(record.get('basketBarcode') == ""){ - msg = record.get('tousseName') + ",未放入篮筐!"; - break; - } - + var submitActionUrl = WWWROOT + '/disinfectSystem/foreignProxyDisinfectionAction!saveForeignProxyDisinfection.do'; + form.form.submit({ + url : submitActionUrl, + method : 'POST', + timeout : 10000000, + waitMsg : '正在后台进行处理,请稍候', + waitTitle : '提交表单', + params : {isPackingAndPrint :true}, + success : function(form, action) { + if(action.result.success){ + id = action.result.foreignProxyDisinfection.id; + //打印条码 + printBarcode(action.result); +// window.close(); +// grid.dwrReload(); + disableButtonsAfterPacking(); + }else{ + showResult(action.result.msg); + } + }, + failure : function(form, action) { + showResult(action.failureType); } + }); + } + }); + } + },{ + id :'packAndPrintApplicationBtn', + text : '装配并打印申请单', +// hidden: (id != ""), + disabled : SSTS_ForeignProxyDisinfection_Update, + handler : function(){ + top.Ext.MessageBox.confirm("请确认","是否提交"+entityName+"单信息?",function(btn) { + if(btn=='yes') { + if(!validateForSubmit()){ + return false; } - if(msg.length > 0){ - showResult(msg); - return; - } + //获取grid数据 getEditerGridData(); @@ -1485,9 +1536,10 @@ waitTitle : '提交表单', params : {isPackingAndPrint :true}, success : function(form, action) { - if(!action.result.failure){ - //打印条码 - printBarcode(action.result); + if(action.result.success){ + // 打印申请单 + var depart = top.Ext.getCmp("depart").getValue(); + batchPrintForeignProxyDisinfectionApplications(action.result.foreignProxyDisinfection.id,depart ,0); window.close(); grid.dwrReload(); }else{ @@ -1551,6 +1603,7 @@ if(!action.result.isEditable){ top.Ext.getCmp('saveBtn').disable(); top.Ext.getCmp('saveAndPrintBtn').disable(); + top.Ext.getCmp('packAndPrintApplicationBtn').disable(); } }, failure : function(form, action) { @@ -1574,6 +1627,11 @@ } +function disableButtonsAfterPacking(){ + top.Ext.getCmp('saveBtn').disable(); + top.Ext.getCmp('saveAndPrintBtn').disable(); + top.Ext.getCmp('packAndPrintApplicationBtn').disable(); +} function printBarcode(data){ var hospitalName = ""; var sterilizer = top.Ext.getCmp('sterilizer').getValue(); Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/foreignproxydisinfection/action/ForeignProxyDisinfectionAction.java =================================================================== diff -u -r14237 -r14649 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/foreignproxydisinfection/action/ForeignProxyDisinfectionAction.java (.../ForeignProxyDisinfectionAction.java) (revision 14237) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/foreignproxydisinfection/action/ForeignProxyDisinfectionAction.java (.../ForeignProxyDisinfectionAction.java) (revision 14649) @@ -36,6 +36,7 @@ import com.forgon.disinfectsystem.sterilizationmanager.foreignproxydisinfection.service.ForeignProxyDisinfectionManager; import com.forgon.disinfectsystem.vo.PrintApplicationItemVO; import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.StrutsResponseUtils; import com.forgon.tools.json.JsonPropertyFilter; import com.opensymphony.xwork2.ModelDriven; import com.opensymphony.xwork2.Preparable; @@ -108,32 +109,24 @@ if(StringUtils.isBlank(foreignProxyDisinfection.getHandleDepartCoding())){ foreignProxyDisinfection.setHandleDepartCoding(AcegiHelper.getCurrentOrgUnitCode()); } - String json = ""; + JSONObject jsonObj = new JSONObject(); try { - JSONArray printParamList = foreignProxyDisinfectionManager .saveProxyDisinfectionWithParam(foreignProxyDisinfection, itemInfoList, isPackingAndPrint); - - Map map = new HashMap(); - map.put("success", true); - map.put("result", printParamList); - JSONObject jsonObj = JSONObject.fromObject(map); - json = jsonObj.toString(); + jsonObj.put("success", true); + jsonObj.put("result", printParamList); + JSONObject foreignProxyDisinfectionJson = new JSONObject(); + foreignProxyDisinfectionJson.put("id", foreignProxyDisinfection.getId()); + jsonObj.put("foreignProxyDisinfection", foreignProxyDisinfectionJson); } catch (Exception e) { e.printStackTrace(); - json = "{success:true,failure:true,msg:'" + e.getMessage() + "'}"; + jsonObj.put("success", false); + jsonObj.put("failure", true); + jsonObj.put("msg", e.getMessage()); } - HttpServletResponse res = StrutsParamUtils.getResponse(); - res.setCharacterEncoding("UTF-8"); - try { - PrintWriter out = res.getWriter(); - out.print(json); - out.close(); - } catch (IOException e) { - e.printStackTrace(); - } + StrutsResponseUtils.output(jsonObj); long t2 = System.currentTimeMillis(); @@ -253,10 +246,11 @@ boolean isEditable = false;// 是否可以编辑 String deliverStatus = foreignProxyDisinfection.getDeliverStatus(); - if (InvoicePlan.DELIVERSTATUS_DELIVERED.equals(deliverStatus) - || InvoicePlan.DELIVERSTATUS_PARTDELIVERED.equals(deliverStatus)) { - isEditable = true; - } else { +// if (InvoicePlan.DELIVERSTATUS_DELIVERED.equals(deliverStatus) +// || InvoicePlan.DELIVERSTATUS_PARTDELIVERED.equals(deliverStatus)) { +// isEditable = true; +// } else + { Boolean isPackingAndPrint = foreignProxyDisinfectionManager .checkToussesInForeignProxyItemIsPackingAndPrint(foreignProxyDisinfection .getId());