Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r16730 -r16732 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 16730) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 16732) @@ -245,9 +245,10 @@ } //获取包实例的虚拟篮筐 String virtualBasketSeqNum = tousseInstance.getVirtualBasketSeqNum(); - if(!virtualBasketNameList.contains(virtualBasketSeqNum)){ + if(virtualBasketNameList.contains(virtualBasketSeqNum)){ virtualBasketNameList.add(virtualBasketSeqNum); } + tousseInstance.setVirtualBasketSeqNum(null); tousseInstance.setOperateUser(operateUser); tousseInstance.setWasteReason(wasteReason); tousseInstance.setWasteDate(wasteDate); @@ -1011,18 +1012,21 @@ for (TousseInstance tousseInstance : tousses) { //获取审核前虚拟篮筐 String virtualBasketSeqNum = tousseInstance.getVirtualBasketSeqNum(); - if(!virtualBasketNameList.contains(virtualBasketSeqNum)){ + if(virtualBasketNameList.contains(virtualBasketSeqNum)){ virtualBasketNameList.add(virtualBasketSeqNum); } } - if(CollectionUtils.isNotEmpty(virtualBasketNameList)){ - //重新计算虚拟篮筐状态 - countVirtualContainerStatus(virtualBasketNameList); - } + //必须先把虚拟篮筐编号清空 Query updateQuery = objectDao.getHibernateSession().createQuery("update TousseInstance set virtualBasketSeqNum = null, reviewBasket_id=" + basket.getId() + " where barcode in :barcode"); updateQuery.setParameterList("barcode", tousseInstanceBarcodes); updateQuery.executeUpdate(); + + //然后执行计算虚拟篮筐状态 + if(CollectionUtils.isNotEmpty(virtualBasketNameList)){ + //重新计算虚拟篮筐状态 + countVirtualContainerStatus(virtualBasketNameList); + } return tousses; } return null;