Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationLoadingForm.js =================================================================== diff -u -r15977 -r16011 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationLoadingForm.js (.../sterilizationLoadingForm.js) (revision 15977) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationLoadingForm.js (.../sterilizationLoadingForm.js) (revision 16011) @@ -6,6 +6,13 @@ var waitSterileLoadingTousseStore;//待灭菌装载的器械包 var waitSterileLoadingTousseGrid;//待灭菌装载的器械包 +//判断是否ie和ie7 +var isIE6OrIE7 = top.Ext4.isIE6 || top.Ext4.isIE7; +//遮罩层对象 +var objMask = { + 'processMask' : null +}; + var barcodeLable = '条码扫描'; //灭菌装载是否启用首尾条码机制(只有为true时才启用,未配置或配置其它值时则不启用) var enableBeginEndBarcodeScan = false; @@ -262,11 +269,16 @@ var containerType = obj.containerType; if(returnType=="basketNotFound"){//条码不存在 showResult("找不到该包或篮筐。"); - //Ext.getCmp('barcode').setValue(''); + Ext.getCmp('barcode').setValue(""); + Ext.getCmp('barcode').focus(); }else if(returnType == "noResult"){ showResult('未找到相应的结果'); + Ext.getCmp('barcode').setValue(""); + Ext.getCmp('barcode').focus(); }else if(returnType == "containerSterilizing"){ showResult('该灭菌筐当前状态为灭菌中,不能进行灭菌装载!'); + Ext.getCmp('barcode').setValue(""); + Ext.getCmp('barcode').focus(); }else if(returnType == "scanBasketFoundNotDeliverTousseInContainer"){ Ext.MessageBox.confirm("请确认","该篮筐有未发货的器械包,是否继续",function(button, text) { if ("yes" == button){ @@ -371,6 +383,8 @@ //console.log('barcode6='+barcode+','+new Date().format('y-m-d H:i:s') + '.' + new Date().getMilliseconds()); } else { showResult(obj.msg); + Ext.getCmp('barcode').setValue(""); + Ext.getCmp('barcode').focus(); } }else if(returnType == "multiTousseInstancesSuccess"){ @@ -400,6 +414,12 @@ } }); }); + + //由于扫描的灭菌筐条码,所以如果是首尾条码模式时,需要清除篮筐/条码(首),并得到焦点 + if(currentScanMode == 'area'){ + Ext.getCmp('barcode').setValue(""); + Ext.getCmp('barcode').focus(); + } }else{ showResult("灭菌装载只能使用灭菌筐。"); //Ext.getCmp('barcode').setValue(''); @@ -410,6 +430,8 @@ showResult('器械包【' + obj.tousseName + '】未录入代理灭菌单,无法灭菌装载'); }else{ showResult(obj.message); + Ext.getCmp('barcode').setValue(""); + Ext.getCmp('barcode').focus(); } }); } @@ -671,28 +693,19 @@ return; } - //判断是否有相应结果返回 - /*for(var i=0;i 0 && j < tousseInstances.length;j++){ var barcodeToBasket = tousseInstances[j].barcode; var barcodeAddedToBasket = false; @@ -704,79 +717,83 @@ } } if(barcodeAddedToBasket == false){ - lastAddToBasketBarcode = tousseInstances[j].barcode; + barcodeArray.push(tousseInstances[j].barcode); } } - for(var j = 0;tousseInstances && tousseInstances.length > 0 && j < tousseInstances.length;j++){ - var barcodeToBasket = tousseInstances[j].barcode; - var barcodeAddedToBasket = false; - for(var i=0;i 0){ + for(var i = 0;i < result.data.length;i++){ + var currentTousseInstance = new tousseInstanceRecord({ + tousseDefinitionName: result.data[i].tousseName, + barcode: result.data[i].barcode }); - //待灭菌装载列表数据源重新刷新 - waitSterileLoadingTousseStore.reload(); + Ext.getCmp('tousseGrid').getStore().insert(0,currentTousseInstance);//最新扫描的器械包放到第一行 } - var currentTousseInstance = new tousseInstanceRecord({ - tousseDefinitionName: result.tousseName, - barcode: result.barcode - }); - Ext.getCmp('tousseGrid').getStore().insert(0,currentTousseInstance);//最新扫描的器械包放到第一行 - } else { - showResult(result.msg); + }else{ + showResult('未找到该首尾条码范围内的器械包'); } - }, - failure : function(response, options) { - var result = Ext.decode(response.responseText); - MsgTip.msg('提示', result.cause,true,3); + + Ext.getCmp('barcode').setValue(''); + Ext.getCmp('barcodeEnd').setValue(''); + Ext.getCmp('barcode').focus(); + } else { + showResult(result.msg); } - }); - } - if(addedToBasketResultAmount == 0){ - //showResult("未找到对应的器械包"); - clearScanText(); - Ext.getCmp('barcodeEnd').setValue(''); - Ext.getCmp('barcode').focus(); - } + + if (!isIE6OrIE7){ + objMask.processMask.hide(); + } + else { + mask.hide(); + } + }, + failure : function(response, options) { + var result = Ext.decode(response.responseText); + MsgTip.msg('提示', result.cause,true,3); + } + }); } var contentHeight = document.body.scrollHeight; Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterileloading/dwr/table/SterileLoadingTableManager.java =================================================================== diff -u -r15975 -r16011 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterileloading/dwr/table/SterileLoadingTableManager.java (.../SterileLoadingTableManager.java) (revision 15975) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterileloading/dwr/table/SterileLoadingTableManager.java (.../SterileLoadingTableManager.java) (revision 16011) @@ -240,6 +240,10 @@ JSONUtil.addProperty(json, "returnType", "containerSterilizing"); return json.toString(); } + }else{ + JSONUtil.addProperty(json, "returnType", "other"); + JSONUtil.addProperty(json, "message", "请先扫描灭菌篮筐!"); + return json.toString(); } TousseInstance tousseInstance = (TousseInstance)barcodeDevice; String status = tousseInstance.getStatus(); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r15998 -r16011 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 15998) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 16011) @@ -906,7 +906,7 @@ } @Override - public void addTousseInstanceToBasket(String basketBarcode, + public List addTousseInstanceToBasket(String basketBarcode, Collection tousseInstanceBarcodes, Collection excludeBarcodes) { ReviewedBasket basket = reviewedBasketManager .getReviewedBasketButNew(basketBarcode); @@ -916,11 +916,20 @@ tousseInstanceBarcodes = CollectionUtils.subtract( tousseInstanceBarcodes, excludeBarcodes); - for (String tousseBarcode : tousseInstanceBarcodes) { + /*for (String tousseBarcode : tousseInstanceBarcodes) { TousseInstance tousseInstance = getTousseInstanceByBarcode(tousseBarcode); tousseInstance.setReviewBasket_id(basket.getId()); objectDao.saveOrUpdate(tousseInstance); - } + }*/ + + Query updateQuery = objectDao.getHibernateSession().createQuery("update TousseInstance set reviewBasket_id=" + basket.getId() + + " where barcode in :barcode"); + updateQuery.setParameterList("barcode", tousseInstanceBarcodes); + updateQuery.executeUpdate(); + + Query query = objectDao.getHibernateSession().createQuery("from TousseInstance where barcode in :barcode order by barcode"); + query.setParameterList("barcode", tousseInstanceBarcodes); + return query.list(); } @Override Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r15798 -r16011 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 15798) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 16011) @@ -476,6 +476,8 @@ + reviewedBasket.getId() + ",共有" + vos.size() + "个器械包,灭菌记录数目:" + reviewedBasket.getSterilizationRecords().size()); + + logger.debug("basketJson:"+basketJson); } HttpServletResponse response = StrutsParamUtils.getResponse(); @@ -751,7 +753,7 @@ } /** - * 往篮筐里添加器械包 + * 往篮筐里添加器械包(单个器械包条码) */ public void addToBasket() { String basketBarcode = StrutsParamUtils.getPraramValue("basketBarcode", @@ -788,6 +790,43 @@ e.printStackTrace(); } } + + /** + * 往篮筐里添加器械包(多个器械包) + */ + public void batchAddToBasket() { + String basketBarcode = StrutsParamUtils.getPraramValue("basketBarcode", + ""); + String tousseBarcodes = StrutsParamUtils.getPraramValue("tousseBarcodes", + ""); + String[] tousseBarcodeArray = StringUtils.split(tousseBarcodes, ';'); + + String saveBarcode = StrutsParamUtils.getPraramValue("saveBarcode", ""); + String[] excludeBarcodes = StringUtils.split(saveBarcode, ';'); + + JSONObject jsonObject = new JSONObject(); + List tousseInstanceList = tousseInstanceManager.addTousseInstanceToBasket( + basketBarcode, Arrays.asList(tousseBarcodeArray), Arrays.asList(excludeBarcodes)); + jsonObject.put("success", true); + jsonObject.put("msg", "成功放入篮筐"); + + try { + if(CollectionUtils.isNotEmpty(tousseInstanceList)){ + JSONArray jsonArray = new JSONArray(); + for(TousseInstance tousseInstance : tousseInstanceList){ + JSONObject json = new JSONObject(); + json.put("depart", tousseInstance.getDepart()); + json.put("tousseName", tousseInstance.getTousseName()); + json.put("barcode", tousseInstance.getBarcode()); + jsonArray.add(json); + } + jsonObject.put("data", jsonArray); + } + StrutsResponseUtils.output(jsonObject); + } catch (Exception e) { + e.printStackTrace(); + } + } public void getTodayPendingSterilizationTousseAndBasket() { try { Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r15886 -r16011 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 15886) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 16011) @@ -88,7 +88,7 @@ public List getTodayReviewedTousseInstanceByNameAndOrgUnitCode( String orgUnitCode,String name,Integer page,Integer scanAmount); - public void addTousseInstanceToBasket(String basketBarcode, + public List addTousseInstanceToBasket(String basketBarcode, Collection tousseInstanceBarcodes, Collection excludeBarcodes); public void addTousseInstanceToBasket(String basketBarcode,