Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java =================================================================== diff -u -r34839 -r34860 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 34839) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 34860) @@ -1587,8 +1587,8 @@ } String sql = String.format("select count(*) from invoicePlan ip join ForeignTousseApplication fta on fta.id=ip.id " - + "where %s and(%s or fta.packageStatus='%s')", - SqlUtils.getNonStringFieldInLargeCollectionsPredicate("ip.id", ids), temp, ForeignTousseApplication.APPLICATION_STATUS_RETRUN); + + "where %s and(%s)", + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("ip.id", ids), temp); if (objectDao.countBySql(sql) > 0) { if(ForeignTousseApplication.ACTION_TYPE_CONFIRM_RETURN.equals(returnType)){ @@ -2847,13 +2847,12 @@ for (TousseItem tousseItem : willReturnTousseItems) { if(!StringUtils.equals(tousseItem.getPackageStatus(), InvoicePlan.RETURN_STATUS_RETURNED) && !StringUtils.equals(tousseItem.getPackageStatus(), InvoicePlan.RETURN_STATUS_INADVANCERETURNED)){ - tousseItem.setPackageStatus(InvoicePlan.RETURN_STATUS_INADVANCERETURNED); - objectDao.saveOrUpdate(tousseItem); - //终止申请项 - if(!StringUtils.equals(tousseItem.getPackageStatus(), TousseInstance.STATUS_USED)){ - //已使用的物品不终止 + //有发货计划,要终止发货计划 + if(StringUtils.equals(tousseItem.getPackageStatus(), ForeignTousseApplication.APPLICATION_STATUS_SIGNED)){ willTerminateTousseItems.add(tousseItem); } + tousseItem.setPackageStatus(InvoicePlan.RETURN_STATUS_INADVANCERETURNED); + objectDao.saveOrUpdate(tousseItem); } } if(CollectionUtils.isNotEmpty(willTerminateTousseItems)){ @@ -2927,17 +2926,15 @@ //如果是提前归还,并且整单物品都已经归还,回收状态要设置为“已提前归还” if(StringUtils.equals(actionType, ForeignTousseApplication.ACTION_TYPE_EARLY_RETURN)){ List applicationItems = foreignTousseApplication.getApplicationItems(); - int returnTousseAmount = 0; + //已终止的物品数量 + int terminatedTousseAmount = 0; if(CollectionUtils.isNotEmpty(applicationItems)){ for (TousseItem tousseItem : applicationItems) { - if(StringUtils.equals(tousseItem.getPackageStatus(), ForeignTousseApplication.RETURN_STATUS_RETURNED) - || StringUtils.equals(tousseItem.getPackageStatus(), ForeignTousseApplication.RETURN_STATUS_INADVANCERETURNED) - || (tousseItem.getIsTerminated() != null && tousseItem.getIsTerminated())){ - //已经归还或者已终止的物品都不能算是待归还物品 - returnTousseAmount++; + if(tousseItem.getIsTerminated() != null && tousseItem.getIsTerminated()){ + terminatedTousseAmount++; } } - if(returnTousseAmount == applicationItems.size()){ + if(terminatedTousseAmount == applicationItems.size()){ foreignTousseApplication.setRecyclingStatus(ForeignTousseApplication.RECYCLINGSTATUS_RETURNEDINADVANCE); String remark = "【该申请单在" + DateTools.getFormatDateStr(returnDate, DateTools.COMMON_DATE_HMS) + "被" + foreignTousseApplication.getReturnMan()