Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r18422 -r18474 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 18422) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 18474) @@ -1313,6 +1313,21 @@ } return null; } + @Override + public List getToussInstanceByForeignTousseApplicationIdForInvoice(Long id){ + if (id != null) { + try { + Set status = new HashSet(); + status.add(TousseInstance.STATUS_STERILED); + String sql = String.format("where po.foreignTousseApp_id = %s and %s ", id,SqlUtils.getStringFieldInCollectionsPredicate("po.status", status)); + return objectDao.findBySql( + TousseInstance.class.getSimpleName(), sql); + } catch (Exception e) { + e.printStackTrace(); + } + } + return null; + } @SuppressWarnings("unchecked") @Override Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r18345 -r18474 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 18345) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 18474) @@ -2111,9 +2111,12 @@ if(invoicedForeignTousseAppliactionIdSet.isEmpty()){ return; } + Set status = new HashSet(); + status.add(TousseInstance.STATUS_SHIPPED); + status.add(TousseInstance.STATUS_DISCARD); // 查询包实例 - String sql = String.format(" where %s and po.status != '%s'", SqlUtils.getNonStringFieldInCollectionsPredicate("po.foreignTousseApp_id", invoicedForeignTousseAppliactionIdSet), - TousseInstance.STATUS_SHIPPED); + String sql = String.format(" where %s and %s", SqlUtils.getNonStringFieldInCollectionsPredicate("po.foreignTousseApp_id", invoicedForeignTousseAppliactionIdSet), + SqlUtils.getStringFieldNotInCollectionsPredicate("po.status", status)); List list = objectDao.findBySql(TousseInstance.class.getSimpleName(), sql); if(list != null && list.size() > 0){ throw new RuntimeException("拆分的外来器械包不能部分发货,必须一起发货!"); @@ -4934,7 +4937,7 @@ if (InvoicePlan.TYPE_FOREIGNTOUSSEAPPLIACTION .equals(invoicePlan.getType())) { List tousseInstanceList = tousseInstanceManager - .getToussInstanceByForeignTousseApplicationID(invoicePlan + .getToussInstanceByForeignTousseApplicationIdForInvoice(invoicePlan .getId()); if(tousseInstanceList.size() > 0){ Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r18422 -r18474 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 18422) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 18474) @@ -143,6 +143,7 @@ public List getToussInstanceByForeignTousseApplicationID( Long id); + public List getToussInstanceByForeignTousseApplicationIdForInvoice(Long id); public List getTousseInstanceByClassifyBasket(Long basketId);