Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js =================================================================== diff -u -r21971 -r21984 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 21971) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 21984) @@ -1803,6 +1803,7 @@ sterilizationRecordWin.getEl().unmask(); showResult(result.message); updateFail(); + top.Ext.getCmp('saveBtn').enable(); } //每次修改数量后,进行统计 statisticsTousseAndBasket(); @@ -1930,8 +1931,6 @@ }); formObj.getEl().mask("正在加载,请稍候..."); - - //ajax请求后台传递待灭菌的条码(灭菌筐及包实例的条码集合) Ext.Ajax.timeout=90000; Ext.Ajax.request({ url : WWWROOT + '/disinfectSystem/sterilization/sterilizationRecordAction!batchAddToRecord.do', @@ -1940,7 +1939,8 @@ loadTousseNamesInBasket : true, //是否要加载篮筐里的器械包名称 //sterilizationRecordId : sterilizationRecordId, //灭菌记录id checkProxyDisinfection : 'yes', //是否需要检查代理灭菌是否已录入代理灭菌单 - saveBarcode : getAlreadyScanBarcodes() //此次扫描之前已经扫描的条码集合 + saveBarcode : getAlreadyScanBarcodes(), //此次扫描之前已经扫描的条码集合 + myBarcode : myBarcodes //此次扫描之前已经扫描的固定条码集合 }, waitMsg : '正在处理,请稍候...', success : function(response, options) { Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java =================================================================== diff -u -r21971 -r21984 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 21971) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 21984) @@ -677,19 +677,46 @@ JSONArray resultJsonArray = new JSONArray(); String barcodes = StrutsParamUtils.getPraramValue("barcodes", ""); String savedBarcodes = StrutsParamUtils.getPraramValue("saveBarcode", ""); + String myBarcodes = StrutsParamUtils.getPraramValue("myBarcodes", ""); + myBarcodes = myBarcodes.replace("\"","").replace("[","").replace("]","").replace(" ", ""); + List barcodeList = new ArrayList(); + JSONObject validateResultJsonObject = new JSONObject(); if(StringUtils.isNotBlank(barcodes)){ String[] barcodeArr = barcodes.split(";"); for(String barcode : barcodeArr){ - JSONObject validateResultJsonObject = validateBarcodeForBarcodeDevice(barcode , savedBarcodes); - if(validateResultJsonObject.optBoolean("success")){ - resultJsonArray.add(validateResultJsonObject.optJSONObject("dataList")); - }else{ - jsonObject.put("success", false); - jsonObject.put("message", validateResultJsonObject.optString("message")); - StrutsResponseUtils.output(jsonObject); - return; - } + //判断条码是否为固定条码,是则返回包定义ID + String tousseDefinitionId = tousseInstanceManager.checkIsFixedBarcode(barcode); + + //如果是固定条码,则去获取下面的包实例条码,按每次扫描数量去获取 + if(tousseDefinitionId!=""){ + barcodeList = tousseInstanceManager.getTousseInsDataByFixedBarcode + (barcode, myBarcodes," and status = '"+TousseInstance.STATUS_REVIEWED+"'","barcode",1); + //循环该固定条码下的包实例去校验 + for (String barcodeStr : barcodeList) { + validateResultJsonObject = validateBarcodeForBarcodeDevice(barcodeStr , savedBarcodes); + if(validateResultJsonObject.optBoolean("success")){ + resultJsonArray.add(validateResultJsonObject.optJSONObject("dataList")); + }else{ + jsonObject.put("success", false); + jsonObject.put("message", validateResultJsonObject.optString("message")); + StrutsResponseUtils.output(jsonObject); + return; + } + } + }else{//唯一条码 + validateResultJsonObject = validateBarcodeForBarcodeDevice(barcode , savedBarcodes); + if(validateResultJsonObject.optBoolean("success")){ + resultJsonArray.add(validateResultJsonObject.optJSONObject("dataList")); + }else{ + jsonObject.put("success", false); + jsonObject.put("message", validateResultJsonObject.optString("message")); + StrutsResponseUtils.output(jsonObject); + return; + } + } } + + jsonObject.put("success", true); jsonObject.put("datas", resultJsonArray); } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r21977 -r21984 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 21977) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 21984) @@ -3760,6 +3760,9 @@ public List getTousseInsDataByFixedBarcode(String fixedBarcode,String barcodes ,String sqlStatus,String paramsName,int type){ String idStr = checkIsFixedBarcode(fixedBarcode); TousseDefinition td = null; + if(barcodes.startsWith(",")){ + barcodes = new StringBuilder(barcodes).replace(0, 1, "").toString(); + } if(StringUtils.isNotBlank(idStr)){ td = (TousseDefinition) objectDao.getByProperty(TousseDefinition.class.getSimpleName(), "id", Long.parseLong(idStr)); } @@ -3801,7 +3804,7 @@ findSql+=sqlStatus; findSql+=rownum; findSql+=" order by ti.reviewTime asc"; - + ResultSet rs = objectDao.executeSql(findSql); List barcodeList = new ArrayList(); try {