Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r36426 -r36428 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 36426) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 36428) @@ -268,15 +268,6 @@ * @return */ public JSONArray getFromBasket(String basketBarcode, Integer returnType); - - /** - * 加载所有已审核且未加入至任何灭菌筐的器械包(按用户所在科室对应供应室处理器械包配置的器械包) - * @param searchKeyWord 搜索关键字 - * @param start 开始条数 (分页) - * @param limit 结束条数 (分页) - * @return - */ - public JSONArray getWaitSterileLoadingTousseInstance(ListtousseList); /** * 根据外来申请单申请的申请包. Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r36426 -r36428 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 36426) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 36428) @@ -6359,7 +6359,8 @@ @Override public boolean isCountBarcode(String barcode){ 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+"'"; + + "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); String isTraceable=""; try { @@ -7115,7 +7116,16 @@ Map bMap = Maps.newHashMap(); boolean showDepartOfTousseInstanceSterile = CssdUtils.getSystemSetConfigByNameBool("showDepartOfTousseInstanceSterile", false); Map departCodeAndNameMap = this.loadDepartCodeAndNameMap(tousseList); + //批量收集数据 + List ancestorIDs = new ArrayList(); for (TousseInstance tousseInstance : tousseList) { + TousseDefinition td = tousseInstance.getTousseDefinition(); + if(TousseDefinition.STR_NO.equals(td.getIsTraceable())){ + ancestorIDs.add(td.getAncestorID()); + } + } + Map tdIdToFixBarcodeMap = tousseDefinitionManager.getTousseDefinitionFixedBarcodeMap(ancestorIDs); + for (TousseInstance tousseInstance : tousseList) { String tousseName = tousseInstance.getShowTousseName(); String key = null; //显示科室时 要区分科室 @@ -7124,7 +7134,8 @@ }else{ key = tousseName; } - boolean isCountBarcode = isCountBarcode(tousseInstance.getBarcode()); + TousseDefinition td = tousseInstance.getTousseDefinition(); + boolean isCountBarcode = TousseDefinition.STR_NO.equals(td.getIsTraceable()); //加急信息 UrgentLevel urgentLevel = tousseInstance.getUrgentLevel(); JSONObject urgentLevelInfo = new JSONObject(); @@ -7140,15 +7151,6 @@ int amt = (int) obj.get("amount"); amt++; obj.put("amount", amt); - /* - * 判断包实例的包定义是否为不追溯的包,如果不追溯则返回相应的属性 - */ - if(!tousseInstance.getTousseDefinition().traceable()){ - obj.put("unTraceable", Constants.STR_YES); - } - obj.put("sterilingType", tousseInstance.getSterilingType()); - obj.put("sterilingMode", tousseInstance.getSterilingMode()); - obj.put("objBarcode", getTousseFixedBarcodeByBarcode(tousseInstance.getBarcode(),TousseDefinition.STR_NO));//固定条码 //若加急等级比之前高则覆盖加急信息 if(urgentGrade > obj.getInt("urgentGrade")){ obj.put("urgentGrade",urgentGrade); @@ -7160,17 +7162,18 @@ JSONObject jsonObject = new JSONObject(); jsonObject.put("objName", tousseInstance.getShowTousseName()); jsonObject.put("amount", 1); - jsonObject.put("objBarcode", tousseInstance.getBarcode()); jsonObject.put("depart", departCodeAndNameMap.get(tousseInstance.getDepartCoding())); jsonObject.put("sterilingType", tousseInstance.getSterilingType()); jsonObject.put("sterilingMode", tousseInstance.getSterilingMode()); jsonObject.put("isUrgentTousse", tousseInstance.getIsUrgentTousse()); //是否加急 jsonObject.put("urgentLevel", urgentLevelInfo);//加急信息 jsonObject.put("urgentGrade", urgentGrade);//加急等级 if(!isCountBarcode){ - bMap.put(tousseInstance.getBarcode(), jsonObject); + bMap.put(tousseInstance.getBarcode(), jsonObject); + jsonObject.put("objBarcode", tousseInstance.getBarcode()); }else{ - String fixedBarcode = getTousseFixedBarcodeByBarcode(tousseInstance.getBarcode(),TousseDefinition.STR_NO); + jsonObject.put("unTraceable", Constants.STR_YES); + String fixedBarcode = tdIdToFixBarcodeMap.get(td.getAncestorID()); jsonObject.put("objBarcode",fixedBarcode);//固定条码 jsonObject.put("sterilingType", tousseInstance.getSterilingType()); /* @@ -7204,10 +7207,22 @@ Map staticsMap = new HashMap(); Set tousses = getReviewedTousseInstanceByBasket(basketBarcode); Map departCodeAndNameMap = this.loadDepartCodeAndNameMap(tousses); + + //批量收集数据 + List ancestorIDs = new ArrayList(); for (TousseInstance tousseInstance : tousses) { + TousseDefinition td = tousseInstance.getTousseDefinition(); + if(TousseDefinition.STR_NO.equals(td.getIsTraceable())){ + ancestorIDs.add(td.getAncestorID()); + } + } + Map tdIdToFixBarcodeMap = tousseDefinitionManager.getTousseDefinitionFixedBarcodeMap(ancestorIDs); + + for (TousseInstance tousseInstance : tousses) { JSONObject infoItem = new JSONObject(); //固定条码 - String fixedBarcode = getTousseFixedBarcodeByBarcode(tousseInstance.getBarcode(), TousseDefinition.STR_NO); + TousseDefinition td = tousseInstance.getTousseDefinition(); + String fixedBarcode = tdIdToFixBarcodeMap.get(td.getAncestorID()); if(!StringUtils.isNotBlank(fixedBarcode)){ fixedBarcode = "0"; //如果找不到对应的固定条码,则用0代替 } @@ -7249,51 +7264,6 @@ return resutlArray; } - @Override - public JSONArray getWaitSterileLoadingTousseInstance(List tousseList) { - Map bMap=Maps.newHashMap();//用来汇总数据 - Collections.sort(tousseList); - JSONArray jsonArray = new JSONArray(); - Map departCodeAndNameMap = this.loadDepartCodeAndNameMap(tousseList); - for (TousseInstance tousseInstance : tousseList) { - String objName = tousseInstance.getTousseName(); - boolean isCountBarcode = isCountBarcode(tousseInstance.getBarcode()); - if(bMap.containsKey(objName) && isCountBarcode){//只有支持扫固定条码的包,才去统计 - //已存在 则取出该对象,对象中 objAmount 累加。 - JSONObject obj = bMap.get(objName); - int amt=(int) obj.get("amount"); - amt++; - obj.put("amount", amt); - obj.put("objBarcode", getTousseFixedBarcodeByBarcode(tousseInstance.getBarcode(),TousseDefinition.STR_NO)); - //覆盖 - bMap.put(objName, obj); - }else{ - JSONObject jsonObject = new JSONObject(); - jsonObject.put("id", tousseInstance.getId()); - jsonObject.put("depart", departCodeAndNameMap.get(tousseInstance.getDepartCoding())); - jsonObject.put("tousseName", tousseInstance.getShowTousseName()); - jsonObject.put("objBarcode", tousseInstance.getBarcode()); - jsonObject.put("amount", 1); - jsonObject.put("reviewTime", ForgonDateUtils.safelyFormatDate(tousseInstance.getReviewTime(), Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM, "")); - jsonObject.put("sterilingMode", tousseInstance.getSterilingMode()); - //jsonArray.add(jsonObject); - if(!isCountBarcode){ - bMap.put(tousseInstance.getBarcode(), jsonObject); - }else{ - String fixedBarcode = getTousseFixedBarcodeByBarcode(tousseInstance.getBarcode(),TousseDefinition.STR_NO); - jsonObject.put("barcode",fixedBarcode);//固定条码 - bMap.put(objName, jsonObject); - } - } - } - - for (String str : bMap.keySet()) { - JSONObject tousseInBasket=bMap.get(str); - jsonArray.add(tousseInBasket); - } - return jsonArray; - } - @SuppressWarnings("unchecked") @Override public JSONArray loadAllTousseInstance(String thisDepartCode, String taskGroup, Long basketId) { Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r36379 -r36428 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 36379) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 36428) @@ -5313,10 +5313,22 @@ // 篮筐内的物品含有植入物 boolean includeImplant = false; Map departCodeAndNameMap = tousseInstanceManager.loadDepartCodeAndNameMap(tousseList); + + //批量收集数据 + List ancestorIDs = new ArrayList(); for (TousseInstance tousseInstance : tousseList) { + TousseDefinition td = tousseInstance.getTousseDefinition(); + if(TousseDefinition.STR_NO.equals(td.getIsTraceable())){ + ancestorIDs.add(td.getAncestorID()); + } + } + Map tdIdToFixBarcodeMap = tousseDefinitionManager.getTousseDefinitionFixedBarcodeMap(ancestorIDs); + + for (TousseInstance tousseInstance : tousseList) { String tousseName = tousseInstance.getTousseName(); if (tousseInstance != null && StringUtils.isNotBlank(tousseInstance.getTousseName())) { - boolean isCountBarcode = tousseInstanceManager.isCountBarcode(tousseInstance.getBarcode()); + TousseDefinition td = tousseInstance.getTousseDefinition(); + boolean isCountBarcode = TousseDefinition.STR_NO.equals(td.getIsTraceable()); //加急信息 JSONObject urgentLevelInfo = urgentLevelManager.getUrgentLevelVoInfo(tousseInstance); //加急等级 @@ -5332,7 +5344,6 @@ int amt=(int) obj.get("amount"); amt++; obj.put("amount", amt); - obj.put("tousseBarcode", tousseInstanceManager. getTousseFixedBarcodeByBarcode(tousseInstance.getBarcode(),TousseDefinition.STR_NO));//固定条码 //若加急等级比之前高则覆盖加急信息 if(urgentGrade > obj.getInt("urgentGrade")){ obj.put("urgentGrade",urgentGrade); @@ -5387,8 +5398,9 @@ if(!isCountBarcode){ cMap.put(tousseInstance.getBarcode(), temp); }else{ - String fixedBarcode = tousseInstanceManager.getTousseFixedBarcodeByBarcode(tousseInstance.getBarcode(),TousseDefinition.STR_NO); - jsonObj.put("barcode",fixedBarcode);//固定条码 + String tousseBarcode = tdIdToFixBarcodeMap.get(td.getAncestorID()); + jsonObj.put("barcode",tousseBarcode);//固定条码 + jsonObj.put("tousseBarcode", tousseBarcode);//固定条码 cMap.put(tousseName, temp); } countAmount++; @@ -9196,7 +9208,7 @@ if ((isReviewed && isProxDisinfectionChecked) || isSterilingAndTheSameSterilizationRecord) { boolean isOutBasket = !DatabaseUtil.isPoIdValid(tousseInstance.getReviewBasket_id()); //没入灭菌篮筐 - if (isOutBasket || tousseInstanceManager.isCountBarcode(tousseInstance.getBarcode())) { + if (isOutBasket || TousseDefinition.STR_NO.equals(tousseDefinition.getIsTraceable())) { //不追溯的器械包(含普通器械包、敷料包、外部代理灭菌包) if (!StringUtils.equals(Constants.STR_YES, tousseInstance.getTousseDefinition().getIsTraceable())) { continue;