Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r21834 -r21855 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 21834) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 21855) @@ -3182,6 +3182,8 @@ } catch (SQLException e) { e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); } if(StringUtils.isNotBlank(sb)){ return objectDao.findByHql("from TousseInstance po where " @@ -3288,6 +3290,8 @@ } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException ("系统发生异常,请联系管理员"); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); } } @@ -3382,6 +3386,8 @@ } catch (SQLException e) { e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); } return ""; } @@ -3410,6 +3416,8 @@ } catch (SQLException e) { e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); } return false; } @@ -3430,7 +3438,6 @@ * @return */ public boolean isCountBarcode(String barcode){ - long start=System.currentTimeMillis(); String sql="select td.isTraceable,b.barcode from barcodeDevice b " + "left join TousseInstance ti on ti.id=b.id left join TousseDefinition td on td.id=ti.tousseDefinition_id where b.barcode='"+barcode+"'"; ResultSet rs = objectDao.executeSql(sql); @@ -3445,21 +3452,19 @@ } catch (SQLException e) { e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); } - long end=System.currentTimeMillis(); - return false; } //根据barcode 判断是否追溯 true“是”或者“false否” public boolean isCountBarcodeFor(String barcode){ - long start=System.currentTimeMillis(); - + String sql="select td.isTraceable,b.barcode from barcodeDevice b " + + " join TousseInstance ti on ti.id=b.id join TousseDefinition td on td.id=ti.tousseDefinition_id where b.barcode='"+barcode+"'"; + ResultSet rs = objectDao.executeSql(sql); try { - String sql="select td.isTraceable,b.barcode from barcodeDevice b " - + " join TousseInstance ti on ti.id=b.id join TousseDefinition td on td.id=ti.tousseDefinition_id where b.barcode='"+barcode+"'"; - ResultSet rs = objectDao.executeSql(sql); String isTraceable=""; while(rs.next()){ isTraceable = rs.getString("isTraceable");//是否追溯:“是”或者“否” 能不能根据barcode查询isTraceable这一个列 要查多少张表 @@ -3471,9 +3476,9 @@ } catch (Exception e) { e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); } - long end=System.currentTimeMillis(); - return false; } @@ -3526,7 +3531,6 @@ List toussesOutsideBasketOfToday = getTodayReviewedTousseInstanceWithOutBasket(orgUnitCoding); - long start=System.currentTimeMillis(); // 遍历加载放入灭菌篮筐的器械包 for (ReviewedBasket basket : reviewedBaskets) { Container container = basket.getContainer(); @@ -3554,7 +3558,6 @@ //灭菌筐里面器械包的全部的灭菌程序,至少要有一个是属于此灭菌分组或者此灭菌炉(或者至少有一个器械包的灭菌程序为“无”)才会显示(没选灭菌炉就按灭菌分组过滤) boolean flag = false; Map bMap=Maps.newHashMap(); - long start11=System.currentTimeMillis(); for (TousseSimpleVO vo : vos) { if (sterilingTypeMap == null || Constants.HAS_TYPE_NO.equals(vo.getSterilingType()) || sterilingTypeMap.get(vo.getSterilingType()) != null) { @@ -3563,7 +3566,7 @@ String key =vo.getDefinitionName(); boolean isCountBarcode="是".equals(vo.getIsTraceable())?true:false; String objName=vo.getDefinitionName(); - if(bMap.containsKey(key) && isCountBarcode){//只有支持扫固定条码的包,才去统计 + if(bMap.containsKey(key) && !isCountBarcode){//只有支持扫固定条码的包,才去统计 //已存在 则取出该对象,对象中 objAmount 累加。 JSONObject obj = bMap.get(key); int amt=(int) obj.get("objAmount"); @@ -3576,15 +3579,13 @@ }else{ JSONObject tousseInBasket = new JSONObject(); String isUrgentTousse = vo.getIsUrgentTousse(); - boolean isTimeout =false; - // 判断是否超时的java代码 处理缓慢 isTimeout =timeoutManager.isTimeouted(vo.getReviewTime(),timeoutSetting); - //isTimeout=timeoutManager.isTimeouted(vo.getReviewTime(), hour, minute); //自测速度跟上一段代码一样 tousseInBasket.put("depart", vo.getDepart()); tousseInBasket.put("objName",objName ); tousseInBasket.put("objBarcode", vo.getBarcode()); + tousseInBasket.put("objAmount", 1); tousseInBasket.put("reviewTime", vo.getReviewTime()); tousseInBasket.put("type", "TOUSSE_IN"); tousseInBasket.put("uiProvider", "col"); @@ -3601,7 +3602,7 @@ }else{ tousseInBasket.put("isUrgent", TousseDefinition.STR_NO); } - if(isCountBarcode){ + if(!isCountBarcode){ bMap.put(key, tousseInBasket); }else{ bMap.put(vo.getBarcode(), tousseInBasket); @@ -3630,7 +3631,7 @@ } } - // 去重,key为名称, value为具体的数据。 如果名称重复,则取出该分组数据,累加。否则新增.。 什么结果? + // 去重,key为名称, value为具体的数据。 如果名称重复,则取出该分组数据,累加。否则新增 Map resultMap=Maps.newTreeMap(); String sortRule="aaaaa";//根据treeMap 特性,将已超时的排在前面 for (TousseInstance tousseOutsideBasket : toussesOutsideBasketOfToday) { @@ -3727,6 +3728,8 @@ } } catch (SQLException e) { e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); } return ""; @@ -3787,6 +3790,8 @@ } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); } return barcodeList; } @@ -3817,7 +3822,7 @@ */ @Override public String scanFixedBarcode(String fixedBarcode, String barcodes) { - if(!StringUtils.isNotBlank(barcodes) || !StringUtils.isNotBlank(fixedBarcode)){ + if(!StringUtils.isNotBlank(fixedBarcode)){ return "-1"; } List barcodeList =getTousseInsDataByFixedBarcode(fixedBarcode,barcodes,"灭菌记录"); //库存 Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js =================================================================== diff -u -r21832 -r21855 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 21832) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 21855) @@ -596,18 +596,14 @@ //如果扫描固定条码,发现已存在,则累加数量 if(myFixedBarcodes.indexOf(barcodeStr)!=-1){ scanFixedBarcode(barcodeStr,myBarcodes) - }else{ + }else{//否则当唯一条码处理 loadTousseInstance(barcodeStr,sterilizationRecordId,false); } - - //loadTousseInstance(barcodeStr,sterilizationRecordId,false); } - - /** * 加载条码对应的器械包 * @param barcodeStr 器械包、灭菌篮筐、虚拟篮筐(还有可能是器械包或者虚拟篮筐的条码段) @@ -619,9 +615,7 @@ return; } - - - if(checkRepeat(barcodeStr)){ + if(checkRepeat(barcodeStr) && !isFiexdBarcode){//已有,并且不是固定条码 showResult("输入的条码已存在!"); return; } @@ -633,6 +627,7 @@ return; } var position = top.Ext.getCmp('position').getValue(); + sterilizationRecordWin.getEl().mask("正在加载中.请稍等...", "x-mask-loading"); Ext.Ajax.request({ url : WWWROOT + '/disinfectSystem/sterilization/sterilizationRecordAction!loadTousseInstanceInfo.do', params : { @@ -677,12 +672,14 @@ } speakBasket.addGoods('', tousseName, 1); removePendingSterilizationGoods(barcodeStr) + sterilizationRecordWin.getEl().unmask(); } else if (success == 1) { //容器(单个灭菌框或虚拟篮筐) var tousseInstanceArr = resultData.tousseInstanceArr; //进入容器的器械包集合 var containerName = resultData.containerName; //容器名称 var length = tousseInstanceArr.length; if (length < 1) { showResult('篮筐内无待灭菌物品'); + sterilizationRecordWin.getEl().unmask(); return; } @@ -724,11 +721,13 @@ } }); removePendingSterilizationGoods(barcodeStr) + sterilizationRecordWin.getEl().unmask(); } else if(success == 2) { //不追溯器械包 var tousseInstanceArr = resultData.tousseInstanceArr; var length = tousseInstanceArr.length; if (length < 1) { showResult('未找到符合条件的器械包!'); + sterilizationRecordWin.getEl().unmask(); return; } @@ -748,6 +747,7 @@ var todayAmount =parseInt(tousseInstan.todayAmount);//今日审核数量 if(checkRepeat(tousseBarcode)){ showResult("输入的条码已存在!"); + sterilizationRecordWin.getEl().unmask(); return; }; @@ -784,11 +784,13 @@ } Array.prototype.push.apply(myBarcodes,myBarcodes2);//将所有的包实例条码存入全局条码中 speakContent = sterilizationColumnTree.getRootNode().text; + sterilizationRecordWin.getEl().unmask(); } else if (success == 3) { //首尾器械包,since2015-10-27 var tousseInstanceArr = resultData.tousseInstanceArr; var length = tousseInstanceArr.length; if (length < 1) { showResult('未找到符合条件的器械包!'); + sterilizationRecordWin.getEl().unmask(); return; } @@ -850,11 +852,13 @@ showResult('未找到符合条件的器械包或器械包已扫描至表格中.'); speakContent = null; } + sterilizationRecordWin.getEl().unmask(); } else if(success == 4) { //首尾虚拟篮筐 var tousseInstanceArr = resultData.tousseInstanceArr; var length = tousseInstanceArr.length; if (length < 1) { showResult('未找到符合条件的器械包!'); + sterilizationRecordWin.getEl().unmask(); return; } @@ -901,6 +905,7 @@ currentParentNode.appendChild(childNode); speakBasket.addGoods('', tousseName, 1); alreadyAdd ++; + sterilizationRecordWin.getEl().unmask(); }else{ var existsCNode = false;//虚拟篮筐的机制 if(currentParentNode.childNodes){ @@ -919,29 +924,35 @@ } } } - + sterilizationRecordWin.getEl().unmask(); //加载灭菌参数 SterilizationRecordTableManager.getParameter(top.Ext.getCmp('sterilizationType').getValue(),function(result){ if(result != null && result.length > 0){ top.Ext.getCmp('parameter').setValue(result); } }); if(alreadyAdd == 0){ + sterilizationRecordWin.getEl().unmask(); showResult('未找到符合条件的器械包或器械包已扫描至表格中.'); speakContent = null; } + sterilizationRecordWin.getEl().unmask(); } else if (success == -1) { + sterilizationRecordWin.getEl().unmask(); showResult(resultData.failureCause); } speakBasket.speakContent(); }else{ + sterilizationRecordWin.getEl().unmask(); showResult("您扫描的物品非已审核的器械包或篮筐!"); } statisticsTousseAndBasket(); //每次成功扫描条码后统计一下器械包的数量和灭菌篮筐的数量 + sterilizationRecordWin.getEl().unmask();//关闭加载进度条 }, failure : function(response, options) { var result = Ext.decode(response.responseText); showResult(result); + sterilizationRecordWin.getEl().unmask(); } }); } @@ -1321,7 +1332,6 @@ objAmount = 0; clickNode.eachChild(function(pNode){ objAmount++; - var childObjBarcode = pNode.attributes.barcode; var childObjName = pNode.attributes.name; var childObjAmount = 1; @@ -1474,6 +1484,7 @@ var fixedBarcode = clickNode.attributes.barcode delTousseInsAmount(delAmount,fixedBarcode); clickNode.remove();//将当前节点移除 + myFixedBarcodes.removeByValue(fixedBarcode);//在全局条码中移除该固定条码 statisticsTousseAndBasket(); return;//第一版先不做右边的处理 //addPendingStarilizationGoodsFromRecord(clickNode); @@ -1530,11 +1541,11 @@ if(result.success){ if(typeof(result.message)=="undefined" || result.message==""){ myBarcodes=[]; - myFixedBarcodes=[]; + //myFixedBarcodes=[]; }else{ myBarcodes = result.message.split(",") //removeByValue() - myFixedBarcodes.removeByValue(fixedBarcode);//从全局固定条码集合中移除 + //myFixedBarcodes.removeByValue(fixedBarcode);//从全局固定条码集合中移除 } }else{ showResult("减少数量失败,请勿提交数据"); @@ -1762,8 +1773,6 @@ } setIsClickDel(0); clickNode.expand(); - - //统计 statisticsTousseAndBasket(); } @@ -3202,8 +3211,6 @@ var barcodePostionInfo = getBarcodePositionData(); top.Ext.getCmp("barcodePositionInfo").setValue(barcodePostionInfo); Ext.getCmp("formSubmitResult").setValue(0); - alert(result) - return; formObj.form .submit( { url : WWWROOT + '/disinfectSystem/sterilization/sterilizationRecordAction!savesterilizationRecord.do', Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r21832 -r21855 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 21832) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 21855) @@ -1786,7 +1786,7 @@ JSONObject jSONObj = JSONUtil.buildJsonObject(false, "已经全部加载完毕"); StrutsResponseUtils.output(jSONObj); }else if("-1"==barcodeResult){ - JSONObject jSONObj = JSONUtil.buildJsonObject(false, "-1"); + JSONObject jSONObj = JSONUtil.buildJsonObject(false, "系统未获取到固定条码,请联系管理员"); StrutsResponseUtils.output(jSONObj); } JSONObject jSONObj = JSONUtil.buildJsonObject(true, barcodeResult); Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java =================================================================== diff -u -r21831 -r21855 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java (.../SterilizationRecordManager.java) (revision 21831) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java (.../SterilizationRecordManager.java) (revision 21855) @@ -34,9 +34,10 @@ */ public void updateOldSterilization(TousseInstance tousseInstance); - /** - * 加载条码数据 + * 加载扫描的条码数据 + * @param barcodeStr 唯一条码集合 + * @param finalBarcodes 最终整合的条码集合 * @return */ public JSONObject loadTousseInstanceInfo(String barcodeStr,String finalBarcodes); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r21832 -r21855 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 21832) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 21855) @@ -73,7 +73,14 @@ */ public TousseInstance getTousseInstanceByBarcode(String barcode); - + /** + * 获取本供应室今天审核的器械包 + * @param status 包状态 + * @param sterilizerNameTemp + * @param ownGroupTemp + * @param taskGroup + * @return + */ JSONArray getTodayPendingSterilizationTousseAndBasket(String status,String sterilizerNameTemp,String ownGroupTemp,String taskGroup); /** @@ -724,6 +731,7 @@ /** * 根据条码判断是否需要统计汇总包信息 + * @param barcode 条码 * @return */ public boolean isCountBarcode(String barcode); Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r21831 -r21855 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 21831) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 21855) @@ -2775,7 +2775,7 @@ //不追溯的器械包(含普通器械包、敷料包、外部代理灭菌包) if (!StringUtils.equals(Constants.STR_YES, tousseInstance.getTousseDefinition().getIsTraceable())) { //if (tousseInstance.getUnTraceableTousse()) { - //先判断用户输入的条码是不是固定条码 + //先判断用户输入的条码是不是固定条码 if(!tousseInstanceManager.equalsBarcode(barcodeStr)){//如果不是固定条码 jsonObj.put("success", -1); jsonObj.put("failureCause", "不追溯的包只支持扫描固定条码"); @@ -2830,7 +2830,7 @@ temp.put("reviewTime", ForgonDateUtils.safelyFormatDate(tousseInstance1.getReviewTime(), Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM, "")); temp.put("amount",toussesAmount );//每次扫描加载的数量 temp.put("stockAmount",tousseInstanceManager.getTousseInstanceStockAmount(tousseInstance.getBarcode()));//库存数量 - temp.put("todayAmount",toussesOfToday.size());//库存数量 + temp.put("todayAmount",toussesOfToday.size());//今日审核数量 tousseInstanceArr.add(temp); } temp.put("tousseBarcode", tousseInstance1.getBarcode());