Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/PrepareRecycleTousseManagerImpl.java =================================================================== diff -u -r35724 -r35742 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/PrepareRecycleTousseManagerImpl.java (.../PrepareRecycleTousseManagerImpl.java) (revision 35724) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/PrepareRecycleTousseManagerImpl.java (.../PrepareRecycleTousseManagerImpl.java) (revision 35742) @@ -5,6 +5,7 @@ import java.util.Date; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -313,24 +314,12 @@ for (int i = 0; i < deletedTdIdList.size(); i++) { delTDids.add(((Number)deletedTdIdList.get(i)).longValue()); } - if(orginalTousseItemList.size() >= delTDids.size()){//不能删除整张单的物品 - int i = 0; - for(TousseItem ti : orginalTousseItemList){ - if(delTDids.contains(ti.getTousseDefinitionId())){ - i++; - } + List delTousseItems = new ArrayList(); + for(TousseItem ti : orginalTousseItemList){ + if(delTDids.contains(ti.getTousseDefinitionId())){ + delTousseItems.add(ti); } - if(i == orginalTousseItemList.size()){ - return "预回收单不允许删除全部物品,请在申请单页面进行终止操作;"; - } } - //要删除的申请项 - List delTousseItems = objectDao.findByHql("select po from " - + TousseItem.class.getSimpleName() - + " po where " + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.tousseDefinitionId",delTDids)); - if(CollectionUtils.isEmpty(delTousseItems)){ - return "删除的物品已经不存在"; - } StringBuffer compareResult = new StringBuffer(); compareResult.append("申请单单号:" + plan.getSerialNumber() @@ -346,14 +335,20 @@ } } compareResult.append(";"); - String deletePrepareRecyleScanBarcodeSql = "delete from PrepareRecyleScanBarcode where " + String deletePrepareRecyleScanBarcodeSql = "delete from "+ PrepareRecyleScanBarcode.class.getSimpleName() +" where " + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("tousseItemId", delTousseItemIds); objectDao.excuteSQL(deletePrepareRecyleScanBarcodeSql); - String deleteTousseItemSql = "delete from TousseItem where recyclingApplication_ID=" - + plan.getId() - +" and " - + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("id", delTousseItemIds); - objectDao.excuteSQL(deleteTousseItemSql); + Iterator it = orginalTousseItemList.iterator(); + while(it.hasNext()){ + TousseItem ti = it.next(); + if(delTDids.contains(ti.getTousseDefinitionId())){ + it.remove(); + } + } + if(orginalTousseItemList.size() == 0){ + throw new SystemException("预回收单不允许删除全部物品,请在申请单页面进行终止操作;"); + } + objectDao.deleteAll(delTousseItems); appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_APPLICATION, Log.TYPE_UPDATE, compareResult.toString()); if(plan.getVersion() == null){ plan.setVersion(1);