Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/borrow/service/BorrowCardinalityManagerImpl.java =================================================================== diff -u -r38618 -r38626 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/borrow/service/BorrowCardinalityManagerImpl.java (.../BorrowCardinalityManagerImpl.java) (revision 38618) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/borrow/service/BorrowCardinalityManagerImpl.java (.../BorrowCardinalityManagerImpl.java) (revision 38626) @@ -191,7 +191,7 @@ //1、查询归还状态为“未归还”、“部分归还”、“归还待确认”借物单的器械包发货数量 Map borrowedAmountMap = new HashMap(); StringBuffer borrowedAmountSql = new StringBuffer(); - borrowedAmountSql.append("select ti.ancestorID, ti.sendOutAmount "); + borrowedAmountSql.append("select ti.ancestorID, sum(ti.sendOutAmount) sendOutAmount "); borrowedAmountSql.append(" from "); borrowedAmountSql.append(InvoicePlan.class.getSimpleName()); borrowedAmountSql.append(" ip join "); @@ -201,6 +201,7 @@ borrowedAmountSql.append(String.format(" and ip.handleDepartCoding = '%s' ", orgUnitCoding)); borrowedAmountSql.append(String.format(" and ip.returnStatus in ('%s','%s','%s') ", InvoicePlan.RETURN_STATUS_UNRETURNED, InvoicePlan.RETURN_STATUS_PARTIALLY_RETURNED, InvoicePlan.RETURN_STATUS_AWAITCONFIRM)); borrowedAmountSql.append(" and " + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("ti.ancestorID", tousseDefinitionIdList)); + borrowedAmountSql.append(" group by ti.ancestorID "); //borrowedAmountSql.append(" and (ti.isTerminated is null or ti.isTerminated <> 1) "); ResultSet rs = null; try { @@ -230,7 +231,7 @@ //2、减去归还状态为部分归还、归还待确认的借物单上,已经归还的物品数量 StringBuffer returnAmountSql = new StringBuffer(); - returnAmountSql.append("select ti.ancestorID, ti.recyclingAmount "); + returnAmountSql.append("select ti.ancestorID, sum(ti.recyclingAmount) recyclingAmount "); returnAmountSql.append(" from "); returnAmountSql.append(InvoicePlan.class.getSimpleName()); returnAmountSql.append(" ip join "); @@ -244,6 +245,7 @@ returnAmountSql.append(String.format(" and ip.returnStatus in ('%s','%s') ", InvoicePlan.RETURN_STATUS_PARTIALLY_RETURNED, InvoicePlan.RETURN_STATUS_AWAITCONFIRM)); returnAmountSql.append(" and " + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("ti.ancestorID", tousseDefinitionIdList)); //returnAmountSql.append(" and (ti.isTerminated is null or ti.isTerminated <> 1) "); + returnAmountSql.append(" group by ti.ancestorID "); ResultSet returnAmountRs = null; try { returnAmountRs = objectDao.executeSql(returnAmountSql.toString());