Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r19855 -r19909 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 19855) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 19909) @@ -4940,6 +4940,13 @@ out_beginTime); boolean isBorrowTousse = InvoicePlan.TYPE_BORROWINGSINGLE .equals(invoicePlan.getType()) ? true : false; + List tousseInstanceList = new ArrayList(); + if (InvoicePlan.TYPE_FOREIGNTOUSSEAPPLIACTION + .equals(invoicePlan.getType())) { + tousseInstanceList = tousseInstanceManager + .getToussInstanceByForeignTousseApplicationIdForInvoice(invoicePlan + .getId()); + } for (TousseItem applicationItem : invoicePlan.getApplicationItems()) { Long tousseDefinitionId = applicationItem.getTousseDefinitionId(); if(applicationItem.isDisinfection() && !DatabaseUtil.isPoIdValid(tousseDefinitionId)){ @@ -5007,15 +5014,16 @@ // 处理外来器械包申请单(已经打印标签包含病人信息的包) if (InvoicePlan.TYPE_FOREIGNTOUSSEAPPLIACTION .equals(invoicePlan.getType())) { - List tousseInstanceList = tousseInstanceManager - .getToussInstanceByForeignTousseApplicationIdForInvoice(invoicePlan - .getId()); + if(tousseInstanceList.size() > 0){ for (TousseInstance tousseInstance : tousseInstanceList) { if (tousseInstance.hasShipped()) { continue; } + if(!TousseItemUtils.IsForeignTousseItemMatchTousseInstance(applicationItem, tousseInstance)){ + continue; + } String tousseName = tousseInstance.getTousseName(); ApplicationGoodsVo vo = datas.get(tousseName); if (vo == null) { Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/tousseitem/service/TousseItemUtils.java =================================================================== diff -u -r19138 -r19909 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/tousseitem/service/TousseItemUtils.java (.../TousseItemUtils.java) (revision 19138) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/tousseitem/service/TousseItemUtils.java (.../TousseItemUtils.java) (revision 19909) @@ -6,6 +6,7 @@ import org.apache.commons.lang3.StringUtils; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; /** @@ -21,4 +22,19 @@ } return true; } + + public static boolean IsForeignTousseItemMatchTousseInstance(TousseItem tousseItem,TousseInstance tousseInstance) { + Long tousseDefinitionId = tousseItem.getTousseDefinitionId(); + TousseDefinition td = tousseInstance.getTousseDefinition(); + if(tousseDefinitionId == null || td == null){ + return false; + } + if(td.isForeignTousse() && tousseDefinitionId.equals(td.getId())){ + return true; + } + if(td.isSplit() && tousseDefinitionId.equals(td.getParentID())){ + return true; + } + return false; + } }