Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r16386 -r16390 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16386) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16390) @@ -8128,11 +8128,16 @@ String departCode = JSONUtil.optString(params, "departCode", null); Set tousseDefinitionIdSet = new HashSet(); + Set invoicePlanIdSet = new HashSet(); List invoicePlanList = invoicePlanManager .getInvoicePlanListByOrgUnitCodingsAndTousseType( Arrays.asList(departCode), null, "普通器械包,外来器械包"); if (invoicePlanList != null) { for (InvoicePlan invoicePlan : invoicePlanList) { + if(invoicePlan instanceof ForeignTousseApplication){ + ForeignTousseApplication foreignTousseApplication = (ForeignTousseApplication)invoicePlan; + invoicePlanIdSet.add(foreignTousseApplication.getId()); + } List tousseItemList = invoicePlan .getApplicationItems(); if (tousseItemList != null) { @@ -8150,13 +8155,16 @@ } } } - if (!tousseDefinitionIdSet.isEmpty()) { + if (!tousseDefinitionIdSet.isEmpty() || !invoicePlanIdSet.isEmpty()) { StringBuilder tousseInstanceSql = new StringBuilder(); tousseInstanceSql - .append(String.format(" where %s and %s", SqlUtils + .append(String.format(" where (%s or %s) and %s", SqlUtils .getNonStringFieldInCollectionsPredicate( "po.tousseDefinition.id", - tousseDefinitionIdSet),SqlUtils.getStringFieldPredicate("po.status", TousseInstance.STATUS_STERILED))); + tousseDefinitionIdSet),SqlUtils + .getNonStringFieldInCollectionsPredicate( + "po.invoicePlanID", + invoicePlanIdSet),SqlUtils.getStringFieldPredicate("po.status", TousseInstance.STATUS_STERILED))); if (StringUtils.isNotBlank(sterileStartTime)) { tousseInstanceSql .append(String.format(