Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r38789 -r38792 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 38789) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 38792) @@ -1416,8 +1416,8 @@ * sterilizationTransitionId proxyDisinfectionId 两个都有值时,取sterilizationTransitionId * @param sterilizationTransitionId 灭菌交接id * @param proxyDisinfectionId 代理灭菌id - * @param tousseInstanceIdsOfScanned 已经扫描的包实例ids - * @param containerBarcodesOfScanned 已经扫描的篮筐条码 多个,分隔 + * @param tousseInstanceIdsOfScanned 已经扫描的包实例ids 多个;分隔 + * @param containerBarcodesOfScanned 已经扫描的篮筐条码 多个;分隔 * @param barcodeDevice 本次扫描的条码 * */ Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r38788 -r38792 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 38788) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 38792) @@ -375,7 +375,7 @@ public void checkSterilizationMode(Long sterilizationTransitionId, Long proxyDisinfectionId, Set tousseInstanceIdsOfScanned, String containerBarcodesOfScannedStr , BarcodeDevice barcodeDevice) { - Set containerBarcodesOfScanned = SqlUtils.splitStringToSet(containerBarcodesOfScannedStr, ","); + Set containerBarcodesOfScanned = SqlUtils.splitStringToSet(containerBarcodesOfScannedStr, ";"); //第一步 获取原有的灭菌方式 List oldTis = new ArrayList(); if(CollectionUtils.isNotEmpty(tousseInstanceIdsOfScanned)){//扫描的 又未保存的包实例 @@ -389,7 +389,7 @@ } } List tisOfRecord = null; - Container oldContainer = null; + List oldContainers = new ArrayList(); if(DatabaseUtil.isPoIdValid(sterilizationTransitionId)){ SterilizationTransition sterilizationTransition = (SterilizationTransition)objectDao.getById(SterilizationTransition.class.getSimpleName(), sterilizationTransitionId); if(sterilizationTransition == null){ @@ -401,11 +401,30 @@ + " and po.id=si.tousseInstanceId)"; tisOfRecord = getByHql(condition); if(DatabaseUtil.isPoIdValid(sterilizationTransition.getContainerId())){ - oldContainer = (Container)objectDao.getById(Container.class.getSimpleName(), sterilizationTransition.getContainerId()); + Container oldContainer = (Container)objectDao.getById(Container.class.getSimpleName(), sterilizationTransition.getContainerId()); + if(oldContainer != null){ + oldContainers.add(oldContainer); + } } }else if(DatabaseUtil.isPoIdValid(proxyDisinfectionId)){ String condition = " proxyDisinfection_id="+proxyDisinfectionId; tisOfRecord = getByHql(condition); + if(CollectionUtils.isNotEmpty(tisOfRecord)){ + Set rbIds = new HashSet(); + for (TousseInstance ti : tisOfRecord) { + if(DatabaseUtil.isPoIdValid(ti.getReviewBasket_id())){ + rbIds.add(ti.getReviewBasket_id()); + } + } + if(CollectionUtils.isNotEmpty(rbIds)){ + String sql = "select po from Container po where exists (select 1 from ReviewedBasket rb where rb.container.id=po.id " + + SqlUtils.getInLongListSql("rb.id", rbIds)+")"; + List containers = objectDao.findByHql(sql); + if(CollectionUtils.isNotEmpty(containers)){ + oldContainers.addAll(containers); + } + } + } } if(CollectionUtils.isNotEmpty(tisOfRecord)){ if(CollectionUtils.isNotEmpty(tousseInstanceIdsOfScanned)){ @@ -425,12 +444,16 @@ firstOfoldTis = oldTis.get(0); oldSterilizationMode = getSterilizationModeByTousseInstance(firstOfoldTis); checkSterilingModeOfTousseInstances(oldTis); - if(oldContainer != null && StringUtils.isNotBlank(oldContainer.getSterilingMode())){ - if(!StringUtils.equals(oldContainer.getSterilingMode(), oldSterilizationMode)){ - throw new SystemException("【" + oldContainer.getContainerName() - + "】属于【" - +oldContainer.getSterilingMode() - + "】篮筐与篮筐内【" + oldSterilizationMode + "】物品的灭菌方式不一致,不能录入。"); + if(CollectionUtils.isNotEmpty(oldContainers)){ + for (Container oldContainer : oldContainers) { + if(StringUtils.isNotBlank(oldContainer.getSterilingMode())){ + if(!StringUtils.equals(oldContainer.getSterilingMode(), oldSterilizationMode)){ + throw new SystemException("【" + oldContainer.getContainerName() + + "】属于【" + +oldContainer.getSterilingMode() + + "】篮筐与篮筐内【" + oldSterilizationMode + "】物品的灭菌方式不一致,不能录入。"); + } + } } } }