Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/PrepareRecycleTousseManagerImpl.java =================================================================== diff -u -r35674 -r35676 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/PrepareRecycleTousseManagerImpl.java (.../PrepareRecycleTousseManagerImpl.java) (revision 35674) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/PrepareRecycleTousseManagerImpl.java (.../PrepareRecycleTousseManagerImpl.java) (revision 35676) @@ -96,12 +96,22 @@ } //申请单的已有的申请项 List orginalTousseItemList = plan.getApplicationItems(); + List delTousseItems = new ArrayList(); //要删除的申请项 + Set delTDids = new HashSet();//找到的要删除的申请项包定义id + if(CollectionUtils.isNotEmpty(deletedTdIdList)){ + for (int i = 0; i < deletedTdIdList.size(); i++) { + delTDids.add(((Number)deletedTdIdList.get(i)).longValue()); + } + } //未提交到后台的申请项 List unSubmitTousseItemList = new ArrayList<>(); for(TousseItem tousseItem : orginalTousseItemList){ if(!tousseItemIdList.contains(tousseItem.getId())){ unSubmitTousseItemList.add(tousseItem); } + if(delTDids.contains(tousseItem.getTousseDefinitionId())){ + delTousseItems.add(tousseItem); + } } if(CollectionUtils.isNotEmpty(unSubmitTousseItemList)){ for(TousseItem ti : unSubmitTousseItemList){ @@ -243,6 +253,31 @@ return JSONUtil.buildJsonObject(false, handlePrepareRecyleScanBarcodeMsg); } if (plan != null) { + if(CollectionUtils.isNotEmpty(delTousseItems)){ + String compareResult = "申请单单号:" + + plan.getSerialNumber() + + ",通过预回收删除了物品"; + Set delTousseItemIds = new HashSet(); + for (int i = 0; i < delTousseItems.size(); i++) { + TousseItem ti = delTousseItems.get(i); + delTousseItemIds.add(ti.getId()); + if(i == 0){ + compareResult += "\"" +ti.getTousseName() + "\""; + }else{ + compareResult += ",\"" + ti.getTousseName() + "\""; + } + } + compareResult +=";"; + String deletePrepareRecyleScanBarcodeSql = "delete from PrepareRecyleScanBarcode where " + + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("tousseItemId", delTousseItemIds); + objectDao.excuteSQL(deletePrepareRecyleScanBarcodeSql); + String deleteTousseItemSql = "delete from TousseItem where recyclingApplication_ID=" + + invoiceplanId + +" and " + + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("id", delTDids); + objectDao.excuteSQL(deleteTousseItemSql); + applicationLogManager.saveApplicationLog(plan, compareResult, ApplicationLogStatusEnum.UPDATE); + } plan.setIsPrepareRecycled(InvoicePlan.SIGNED_TRUE); String comfirmor = params.optString("comfirmor"); String operator = params.optString("operator");