Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r16274 -r16291 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 16274) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 16291) @@ -474,7 +474,7 @@ updateTousseStock(tousseMap); updateFirstSupplyRoomStock(supplyRoomConfig,tousseMap,tousseListMap); - //throw new RuntimeException("测试"); +// throw new RuntimeException("测试"); return JSONUtil.buildJsonObject(true, "完成灭菌。"); } @@ -540,14 +540,56 @@ List allTousseInstancesOfSterile = new ArrayList(); if(sterilizationRecord != null){ allTousseInstancesOfSterile.addAll(sterilizationRecord.getTousseInstanceList()); - for (ReviewedBasket reviewedBasket : sterilizationRecord.getReviewedBaskets()) { - Set tousseInstancesInBasket = reviewedBasket.getTousseInstances(objectDao); - if(updateTousseInstanceSterileBasket){ - for (TousseInstance ti : tousseInstancesInBasket){ - ti.setSterilizationBasket(reviewedBasket.getContainer().getContainerName()); + List rbs = sterilizationRecord.getReviewedBaskets(); + String rbIds = ""; + if(rbs != null && rbs.size() > 0){ + for(ReviewedBasket rb : rbs ){ + if(StringUtils.isNotBlank(rbIds)){ + rbIds += ("," + rb.getId()); + }else{ + rbIds = rb.getId() + ""; } } - allTousseInstancesOfSterile.addAll(tousseInstancesInBasket); + String queryString = String.format(" select po From TousseInstance po where po.reviewBasket_id in (%s) ", rbIds); + List list = (List)objectDao.findByHql(queryString); + String tousseInstanceIds = ""; + if(list != null && list.size() > 0){ + allTousseInstancesOfSterile.addAll(list); + if(updateTousseInstanceSterileBasket){ + for(TousseInstance ti : list ){ + if(StringUtils.isNotBlank(tousseInstanceIds)){ + tousseInstanceIds += ("," + ti.getId()); + }else{ + tousseInstanceIds = ti.getId() + ""; + } + } + String sql = String.format(" select po.id,cb.containerName From TousseInstance po,ReviewedBasket rb,Container cb where " + + " po.id in (%s) and po.reviewBasket_id = rb.id and rb.container_id = cb.id ", tousseInstanceIds); + ResultSet rs1 = objectDao.executeSql(sql); + Map tidContianerNameMap = new HashMap(); + try{ + if(rs1!= null){ + while(rs1.next()){ + Long tid = rs1.getLong(1); + String containerName = rs1.getString(2); + if(tid != null && StringUtils.isNotBlank(containerName)){ + tidContianerNameMap.put(tid, containerName); + } + } + } + }catch(Exception e){ + e.printStackTrace(); + }finally{ + DatabaseUtil.closeResultSetAndStatement(rs1); + } + for (TousseInstance ti : list){ + Long tid = ti.getId(); + if(tidContianerNameMap.containsKey(tid)){ + ti.setSterilizationBasket(tidContianerNameMap.get(tid)); + } + } + } + } } } return allTousseInstancesOfSterile; @@ -1209,13 +1251,17 @@ saveOrUpdate(sterilizationRecord); // 计算并更新器械统计信息 - updateSterilizationRecordStatisticsInfo(sterilizationRecord); + updateSterilizationRecordStatisticsInfo(sterilizationRecord,allNewTousseInstances); return result; } - // 计算并更新灭菌记录的器械统计信息 + private void updateSterilizationRecordStatisticsInfo( + SterilizationRecord sterilizationRecord) { + updateSterilizationRecordStatisticsInfo(sterilizationRecord,null); + } + // 计算并更新灭菌记录的器械统计信息 private void updateSterilizationRecordStatisticsInfo( - SterilizationRecord sterilizationRecord) { + SterilizationRecord sterilizationRecord,Collection tis) { int tousseAmount = 0; //器械包(包括但不限于"内部包"、"自定义器械包"、"灭菌物品") int foreignTousseAmount = 0; // 外来器械包(包括但不限于"外来器械包"、"外来器械拆分小包"、"外来器械包当普通器械包") @@ -1225,14 +1271,17 @@ // 获取所有器械包,包括直接隶属的器械包和在篮筐里的器械包 Collection allTousseInstances = CollectionUtils.emptyCollection(); - - allTousseInstances = CollectionUtils.union(allTousseInstances, - sterilizationRecord.getTousseInstanceList()); - - List reviewedBasketList = sterilizationRecord.getReviewedBaskets(); - for (ReviewedBasket reviewedBasket : reviewedBasketList) { + if(tis != null && tis.size() > 0){ + allTousseInstances = tis; + }else{ allTousseInstances = CollectionUtils.union(allTousseInstances, - reviewedBasket.getTousseInstances(objectDao)); + sterilizationRecord.getTousseInstanceList()); + + List reviewedBasketList = sterilizationRecord.getReviewedBaskets(); + for (ReviewedBasket reviewedBasket : reviewedBasketList) { + allTousseInstances = CollectionUtils.union(allTousseInstances, + reviewedBasket.getTousseInstances(objectDao)); + } } for (TousseInstance tousseInstance : allTousseInstances) {