Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java =================================================================== diff -u -r29938 -r29948 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 29938) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 29948) @@ -565,6 +565,8 @@ */ public void loadSterilizationRecord() { try { + String loadUnTraceableBarcodeStr = StrutsParamUtils.getPraramValue("loadUnTraceableBarcode", "false"); + Boolean loadUnTraceableBarcode = Boolean.valueOf(loadUnTraceableBarcodeStr); JsonConfig config = new JsonConfig(); PropertyFilter propertyFilter = new JsonPropertyFilter( new String[] { "tousseInstanceList", "reviewedBaskets", @@ -582,6 +584,9 @@ //存放多个固定条码,用逗号隔开 List fixedBarcodes = new ArrayList(); + //存放多个唯一条码,用逗号隔开 + List barcodes =new ArrayList(); + if (DatabaseUtil.isPoIdValid(sterilizationRecord.getId())) { //不是新加的记录 //原有的代码 List reviewedBasketList = sterilizationRecord.getReviewedBaskets();//灭菌篮筐集合 @@ -603,6 +608,9 @@ } } }*/ + if(loadUnTraceableBarcode){ + sterilizationRecordManager.fillBarcodeToListFromSterilizationRecordWithoutReviewedBasket(sterilizationRecord, barcodes, fixedBarcodes); + } } } sterilizationRecord.setIncludeImplant(objectDao); @@ -616,6 +624,11 @@ fixedBarcodes = fixedBarcodes.deleteCharAt(fixedBarcodes.length() - 1); barcodes = barcodes.deleteCharAt(barcodes.length() - 1); }*/ + if(CollectionUtils.isNotEmpty(barcodes)){ + map.put("barcodes", StringUtils.join(barcodes, ",")); + }else{ + map.put("barcodes", ""); + } if(CollectionUtils.isNotEmpty(fixedBarcodes)){ map.put("fixedBarcodes", StringUtils.join(fixedBarcodes, ",")); }else{ Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r29945 -r29948 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 29945) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 29948) @@ -796,7 +796,8 @@ long t1 = System.currentTimeMillis(); List allTousseInstancesOfSterile = new ArrayList(); if(sterilizationRecord != null){ - allTousseInstancesOfSterile.addAll(sterilizationRecord.getTousseInstanceList()); + List tousseInstancesWithoutBasket = getTousseInstancesWithoutBasket(sterilizationRecord); + allTousseInstancesOfSterile.addAll(tousseInstancesWithoutBasket); List rbs = sterilizationRecord.getReviewedBaskets(); String rbIds = ""; List rbIdList = new ArrayList(); @@ -869,7 +870,46 @@ logger.debug("查询灭菌记录的所有包实例t2-t1耗时:" + (t2-t1)); return allTousseInstancesOfSterile; } - @Override + + /** + * 工具灭菌记录获取器械包实例 + * @param sterilizationRecord + * @return + */ + private List getTousseInstancesWithoutBasket(SterilizationRecord sterilizationRecord) { + List tousseInstanceList = new ArrayList(); + String sql = String.format("select po.id, po.status, td.ancestorID, po.comboTousseInstanceId, po.tousseName, po.packageType from %s po " + + " join sterilization_tousseInstance st on st.tousseInstance_id = po.id " + + " join %s td on td.id = po.tousseDefinition_id " + + " and st.sterilizationRecord_id = %s ", + TousseInstance.class.getSimpleName(), + TousseDefinition.class.getSimpleName(), + sterilizationRecord.getId()); + ResultSet rs = null; + try { + rs = objectDao.executeSql(sql); + while(rs.next()){ + TousseInstance ti = new TousseInstance(); + ti.setId(rs.getLong("id")); + ti.setStatus(rs.getString("status")); + TousseDefinition td = new TousseDefinition(); + ti.setTousseDefinition(td); + td.setAncestorID(rs.getLong("ancestorID")); + ti.setComboTousseInstanceId(rs.getLong("comboTousseInstanceId")); + ti.setTousseName(rs.getString("tousseName")); + ti.setPackageType(rs.getString("packageType")); + tousseInstanceList.add(ti); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + return tousseInstanceList; + } + + + @Override public List getAllTousseInstancesOfSterile(SterilizationRecord sterilizationRecord){ return getAllTousseInstancesOfSterile(sterilizationRecord,false); } @@ -1760,16 +1800,16 @@ } } } - // 已经保存的灭菌记录的固定条码的包实例 - List fixedBarcodeTousseIns = sterilizationRecord.getTousseInstanceList(); + // 已经保存的没有入篮筐的包实例 + List whithoutBasketTousseIns = sterilizationRecord.getTousseInstanceList(); List delfixedBarcodeTousseIns = new ArrayList(); // 扣减的器械包状态还原为[已审核] if(subTdAmountMap != null && !subTdAmountMap.isEmpty() && DatabaseUtil.isPoIdValid(sterilizationRecord.getId())){ List tdIdList = new ArrayList(); for (TousseDefinition td : subTdAmountMap.keySet()) { tdIdList.add(td.getId()); } - for (TousseInstance tousseInstance : fixedBarcodeTousseIns) { + for (TousseInstance tousseInstance : whithoutBasketTousseIns) { TousseDefinition td = tousseInstance.getTousseDefinition(); if(subTdAmountMap.keySet().contains(td) && subTdAmountMap.get(td).intValue() > 0){ tousseInstance.setStatus(TousseInstance.STATUS_REVIEWED); @@ -1778,7 +1818,7 @@ delfixedBarcodeTousseIns.add(tousseInstance); } } - fixedBarcodeTousseIns.removeAll(delfixedBarcodeTousseIns); + whithoutBasketTousseIns.removeAll(delfixedBarcodeTousseIns); } sterilizationRecord.setTousseInstanceList(tousseInstanceList); @@ -1816,6 +1856,7 @@ // 获取新的所有器械包,包括直接隶属的器械包和在篮筐里的器械包 Collection allNewTousseInstances = sterilizationRecord .getTousseInstanceList(); + whithoutBasketTousseIns.addAll(allNewTousseInstances); for (ReviewedBasket reviewedBasket : sterilizationRecord .getReviewedBaskets()) { Collection tousseInstances = tousseInstanceManager.getReviewedTousseInstance(reviewedBasket); @@ -1952,8 +1993,7 @@ } } - fixedBarcodeTousseIns.addAll(allNewTousseInstances); - sterilizationRecord.setTousseInstanceList(fixedBarcodeTousseIns); + sterilizationRecord.setTousseInstanceList(whithoutBasketTousseIns); if(!sqlToTiIdMap.isEmpty()){ for (String updateSql : sqlToTiIdMap.keySet()) { List tousseInsatnceIdList = sqlToTiIdMap.get(updateSql);