Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/borrowrecord/service/BorrowRecordManagerImpl.java =================================================================== diff -u -r33937 -r33950 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/borrowrecord/service/BorrowRecordManagerImpl.java (.../BorrowRecordManagerImpl.java) (revision 33937) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/borrowrecord/service/BorrowRecordManagerImpl.java (.../BorrowRecordManagerImpl.java) (revision 33950) @@ -13,6 +13,7 @@ import net.sf.json.JSONObject; import org.apache.commons.collections.map.HashedMap; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -185,35 +186,34 @@ || StringUtils.equals(borrowRecord.getStatus(), BorrowRecord.STATUS_PART_RETURNED)) && StringUtils.equals(loginUserDepartCode, borrowRecord.getRentalDepartCode())) { - borrowRecord.setStatus(BorrowRecord.STATUS_RETURNED); - borrowRecord.setReceivingTime(new Date()); - borrowRecord.setReceiver(AcegiHelper.getLoginUser() - .getUserFullName()); - - for (TousseItem tousseItem : borrowRecord.getItems()) { - int instanceAmount = 0; - for (TousseInstance tousseInstance : borrowRecord - .getReturnedItems()) { - if (StringUtils.equals(tousseInstance.getTousseName(), - tousseItem.getTousseName())) { - instanceAmount++; - } + //归还数量 + int returnAmount = 0; + if(CollectionUtils.isNotEmpty(borrowRecord.getReturnedItems())){ + returnAmount += borrowRecord.getReturnedItems().size(); + } + if(CollectionUtils.isNotEmpty(borrowRecord.getReturnedExpensiveGoodsItems())){ + returnAmount += borrowRecord.getReturnedExpensiveGoodsItems().size(); + } + + //借用数量 + int lendAmount = 0; + if(CollectionUtils.isNotEmpty(borrowRecord.getItems())){ + for (TousseItem tousseItem : borrowRecord.getItems()) { + lendAmount += tousseItem.getAmount(); } - for (ExpensiveDisposablegoods e : borrowRecord - .getReturnedExpensiveGoodsItems()) { - if (StringUtils.equals(e.getName(), - tousseItem.getTousseName())) { - instanceAmount++; - } + } + + if(returnAmount > 0){ + if(returnAmount == lendAmount){ + borrowRecord.setStatus(BorrowRecord.STATUS_RETURNED); + }else if(returnAmount < lendAmount){ + borrowRecord.setStatus(BorrowRecord.STATUS_PART_RETURNED); + }else{ + throw new RecyclingRecordException("归还的数量大于借用数量。"); } - if (!Integer.valueOf(instanceAmount).equals(tousseItem.getAmount())) { - if(instanceAmount < tousseItem.getAmount()){ - borrowRecord.setStatus(BorrowRecord.STATUS_PART_RETURNED); - }else{ - throw new RecyclingRecordException( - tousseItem.getTousseName() + "归还的数量大于借用数量。"); - } - } + borrowRecord.setReceivingTime(new Date()); + borrowRecord.setReceiver(AcegiHelper.getLoginUser() + .getUserFullName()); } } objectDao.saveOrUpdate(borrowRecord);