Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java =================================================================== diff -u -r15432 -r15459 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 15432) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 15459) @@ -256,19 +256,12 @@ return type; } - /** - * 获取发货单待发货物品数量(申请数量还是回收数量) - * - * @param tousseItem - * @param invoiceOrigin - * 发货来源 - * @return - */ public static int getWaitDeliverAmount(TousseItem tousseItem, String invoiceOrigin, boolean afterRecyclingTousseDeliver, boolean isBorrowTousse, ObjectDao objectDao) { Integer appAmount = tousseItem.getAmount(); String type = tousseItem.getTousseType(); + if (!isBorrowTousse && (TousseDefinition.PACKAGE_TYPE_INSIDE.equals(type) || TousseDefinition.PACKAGE_TYPE_DISINFECTION @@ -323,6 +316,28 @@ } return appAmount; } + /** + * 获取发货单待发货物品数量(申请数量还是回收数量) + * + * @param tousseItem + * @param invoiceOrigin + * 发货来源 + * @return + */ + public static int getWaitDeliverAmount(TousseItem tousseItem, + String invoiceOrigin, boolean afterRecyclingTousseDeliver, + InvoicePlan invoicePlan, ObjectDao objectDao) { + if(invoicePlan.isOperationReservationApplication()){ + Integer appAmount = tousseItem.getAmount(); + if (appAmount == null) { + appAmount = 0; + } + return appAmount; + } + boolean isBorrowTousse = InvoicePlan.TYPE_BORROWINGSINGLE + .equals(invoicePlan.getType()); + return getWaitDeliverAmount(tousseItem, invoiceOrigin, afterRecyclingTousseDeliver, isBorrowTousse, objectDao); + } /** * 获取待发货数量、不考虑是否回收后发货的情况 Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r15456 -r15459 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 15456) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 15459) @@ -4765,7 +4765,7 @@ appAmount = applicationItem.getAmount(); }else{ appAmount = CssdUtils.getWaitDeliverAmount(applicationItem, - invoiceOrigin, recycledDeliver, isBorrowTousse, objectDao); + invoiceOrigin, recycledDeliver, invoicePlan, objectDao); } // 验证未发货或部分发货的物品 if (appAmount == 0) @@ -5677,7 +5677,7 @@ boolean isBorrowTousse = InvoicePlan.TYPE_BORROWINGSINGLE .equals(invoicePlan.getType()) ? true : false; int amount = CssdUtils.getWaitDeliverAmount(applicationItem, - invoiceOrigin, recycledDeliver, isBorrowTousse, objectDao); + invoiceOrigin, recycledDeliver, invoicePlan, objectDao); // 申请数量大于发货数量 if (amount <= applicationItem.getSendOutAmount()) { return; Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java =================================================================== diff -u -r15456 -r15459 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 15456) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 15459) @@ -1418,7 +1418,7 @@ .getWaitDeliverAmount(tousseItem, invoiceOrigin, afterRecyclingTousseDeliver, - isBorrowTousse, objectDao); + invoicePlan, objectDao); return (waitDeliverAmount > 0); } }); @@ -1436,7 +1436,7 @@ int sendOutAmount = (vo.getSendOutAmount() != null ? vo.getSendOutAmount() : 0); int waitDeliverAmount = CssdUtils.getWaitDeliverAmount( vo, invoiceOrigin, - afterRecyclingTousseDeliver, isBorrowTousse, objectDao); + afterRecyclingTousseDeliver, invoicePlan, objectDao); return (sendOutAmount >= waitDeliverAmount); } };