Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r16206 -r16217 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16206) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16217) @@ -6358,13 +6358,13 @@ if(CollectionUtils.isNotEmpty(invoices)){ List invoiceIds = invoices.stream().map(i->i.getId()).collect(Collectors.toList()); if(CollectionUtils.isNotEmpty(invoiceIds)){ - String idpredicate = SqlUtils.getNonStringFieldInCollectionsPredicate("m.invoiceId", invoiceIds); - String sql = "select m.ancestorID,m.isRecycling,m.tousseType,m.invoicePlanType,sum(m.recyclingAmount) as recyclingAmount,sum(m.amount) as amount from ( " + - " select i.id as invoiceId,td.ancestorID,td.isRecycling,td.tousseType,ti.recyclingAmount,ti.amount,ti.recyclingApplication_ID,i.invoicePlanType from " + Invoice.class.getSimpleName() - + " i left join " + TousseItem.class.getSimpleName() + " ti on ti.recyclingApplication_ID=i.invoicePlan_ID " - + " left join " + TousseDefinition.class.getSimpleName() + " td on td.id = ti.tousseDefinitionId" - +") m where " +idpredicate - + " group by m.ancestorID,m.isRecycling,m.tousseType,m.invoicePlanType"; + String idpredicate = SqlUtils.getNonStringFieldInCollectionsPredicate("id", invoiceIds); + String sql = "select m.ancestorID,m.isRecycling,m.tousseType,m.invoicePlanType,sum(m.recyclingAmount) as recyclingAmount,sum(m.amount) as amount from ( " + +" select td.ancestorID,td.isRecycling,td.tousseType,ti.recyclingAmount,ti.amount,ti.recyclingApplication_ID,ip.type as invoicePlanType from " + + TousseItem.class.getSimpleName() + " ti inner join " + InvoicePlan.class.getSimpleName() + " ip on ip.id=recyclingApplication_ID " + + " inner join " + TousseDefinition.class.getSimpleName() + " td on td.id = ti.tousseDefinitionId" + + " where ti.recyclingApplication_ID in (select invoicePlan_ID from " + Invoice.class.getSimpleName() + " where " + idpredicate + " ) " + +") m group by m.ancestorID,m.isRecycling,m.tousseType,m.invoicePlanType"; logger.debug("实收数量sql:" + sql); ResultSet rs = objectDao.executeSql(sql); if(rs != null){