fix: 收款结算单列表不聚合已指定应付状态
This commit is contained in:
+8
-4
@@ -231,20 +231,24 @@ public class FormalSettlementServiceImpl extends BaseServiceImpl<FormalSettlemen
|
||||
}
|
||||
|
||||
/**
|
||||
* 填充已指定应付聚合态:按本页结算单一次批量查认领关系与收票登记,避免 N+1。
|
||||
* 填充已指定应付聚合态(仅付款结算单):按本页结算单一次批量查认领关系与收票登记,避免 N+1。
|
||||
* 聚合规则:任一指定失败 → failed;全部已指定 → assigned;其余(有认领但未指定/未推送)→ unspecified;
|
||||
* 无认领收票或全部认领票无效不填充,前端展示"-"
|
||||
*
|
||||
* @param rows 本页 VO 列表
|
||||
*/
|
||||
private void fillKingdeeAssignStatus(List<FormalSettlementVO> rows) {
|
||||
if (Func.isEmpty(rows)) {
|
||||
// 已指定应付仅付款结算单(先票后款 A302-6)有,收款结算单不参与聚合,避免无意义查询与字段下发
|
||||
List<FormalSettlementVO> payableRows = rows.stream()
|
||||
.filter(row -> "payable".equals(row.getSettlementType()))
|
||||
.toList();
|
||||
if (Func.isEmpty(payableRows)) {
|
||||
return;
|
||||
}
|
||||
List<InvoiceReceiptSettlement> relations = invoiceReceiptSettlementMapper.selectList(
|
||||
Wrappers.<InvoiceReceiptSettlement>lambdaQuery()
|
||||
.in(InvoiceReceiptSettlement::getFormalSettlementId,
|
||||
rows.stream().map(FormalSettlementVO::getId).filter(Objects::nonNull).toList()));
|
||||
payableRows.stream().map(FormalSettlementVO::getId).filter(Objects::nonNull).toList()));
|
||||
if (relations.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
@@ -263,7 +267,7 @@ public class FormalSettlementServiceImpl extends BaseServiceImpl<FormalSettlemen
|
||||
receiptsBySettlement.computeIfAbsent(relation.getFormalSettlementId(), key -> new ArrayList<>())
|
||||
.add(receipt);
|
||||
}
|
||||
for (FormalSettlementVO vo : rows) {
|
||||
for (FormalSettlementVO vo : payableRows) {
|
||||
List<InvoiceReceipt> claimed = receiptsBySettlement.get(vo.getId());
|
||||
if (Func.isEmpty(claimed)) {
|
||||
continue;
|
||||
|
||||
Reference in New Issue
Block a user