Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r15462 -r15463 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 15462) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 15463) @@ -1197,6 +1197,7 @@ SupplyRoomConfig supplyRoomConfig = submitInvoiceContext.getSupplyRoomConfig(); Boolean warningTousseWhetherDelivery = supplyRoomConfig .getWarningTousseWhetherDelivery(); + Set scannedTousseInstances = submitInvoiceContext.getScannedTousseInstances(); // 统计发货数据 for (SubmitInvoiceItem submitInvoiceItem:submitInvoiceItems) { @@ -1256,7 +1257,7 @@ // Collection tousseInstanceList = getDisinfectionTousseInstance( // filteredList, tousseInstance.getTousseDefinition(),amount); tousseInstanceList = getDisinfectionTousseInstanceAndTousseDefinition( - filteredList, tousseInstance.getTousseDefinition()); + filteredList,scannedTousseInstances, tousseInstance.getTousseDefinition()); }else{ // 普通的包 @@ -4494,8 +4495,9 @@ return result; } private List getDisinfectionTousseInstanceAndTousseDefinition( - List invoicePlans, TousseDefinition tousseDefinition) { + List invoicePlans,Set scannedTousseInstances, TousseDefinition tousseDefinition) { String whereSql = getDisinfectionTousseInstanceSql(invoicePlans, tousseDefinition); + whereSql = String.format("%s and %s", SqlUtils.getNonStringFieldNotInCollectionsPredicate("po.id", TousseInstanceUtils.getTousseInstanceIds(scannedTousseInstances))); String hql = String.format(" from %s po inner join fetch po.tousseDefinition %s",TousseInstance.class.getSimpleName(), whereSql); hql += " order by po.validUntil asc "; List result = objectDao.findByHql(hql); @@ -5790,7 +5792,11 @@ invoiceItem.setTousseType(appTousseType); } invoiceItem.setTousseInstance(scannedTousseInstance); - invoiceItem.setTousseInstances(tousseInstancesToSend); + if(scannedTousseInstance.getTousseFixedBarcode()){// 固定条码 + invoiceItem.getTousseInstances().addAll(tousseInstancesToSend); + }else{ + invoiceItem.getTousseInstances().add(scannedTousseInstance); + } invoiceItem.setTousseName(appTousseName); invoiceItemSet.add(invoiceItem);