Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r16390 -r16394 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16390) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16394) @@ -8119,6 +8119,9 @@ public JSONArray getTousseInstancesForAuxiliaryInvoice(JSONObject params) { JSONArray jsonArray = new JSONArray(); + SupplyRoomConfig config = supplyRoomConfigManager.getSystemParamsObj(); + String invoiceOrigin = config.getInvoiceOrigin(); + boolean recycledDeliver = config.getAfterRecyclingTousseDeliver(); String invoicePlanIds = JSONUtil.optString(params, "invoicePlanIds", null); String sterileStartTime = JSONUtil.optString(params, @@ -8142,6 +8145,26 @@ .getApplicationItems(); if (tousseItemList != null) { for (TousseItem tousseItem : tousseItemList) { + if(BooleanUtils.isTrue(tousseItem.getIsTerminated())) + continue; + int appAmount = 0; + if(invoicePlan.isOperationReservationApplication()){ + appAmount = tousseItem.getAmount(); + }else{ + appAmount = CssdUtils.getWaitDeliverAmount(tousseItem, + invoiceOrigin, recycledDeliver, invoicePlan, objectDao); + } + // 验证未发货或部分发货的物品 + if (appAmount == 0) + continue; + + Integer sendOutAmount = tousseItem.getSendOutAmount(); + if (sendOutAmount == null) + continue; + // 未发数量 = 申请数量-发货数量 + int notSendAmount = appAmount - sendOutAmount; + if (notSendAmount <= 0) + continue; if (!tousseItem.isInsideTousse() && !tousseItem.isForeignTousse()) { continue;