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;
|
* 聚合规则:任一指定失败 → failed;全部已指定 → assigned;其余(有认领但未指定/未推送)→ unspecified;
|
||||||
* 无认领收票或全部认领票无效不填充,前端展示"-"
|
* 无认领收票或全部认领票无效不填充,前端展示"-"
|
||||||
*
|
*
|
||||||
* @param rows 本页 VO 列表
|
* @param rows 本页 VO 列表
|
||||||
*/
|
*/
|
||||||
private void fillKingdeeAssignStatus(List<FormalSettlementVO> rows) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
List<InvoiceReceiptSettlement> relations = invoiceReceiptSettlementMapper.selectList(
|
List<InvoiceReceiptSettlement> relations = invoiceReceiptSettlementMapper.selectList(
|
||||||
Wrappers.<InvoiceReceiptSettlement>lambdaQuery()
|
Wrappers.<InvoiceReceiptSettlement>lambdaQuery()
|
||||||
.in(InvoiceReceiptSettlement::getFormalSettlementId,
|
.in(InvoiceReceiptSettlement::getFormalSettlementId,
|
||||||
rows.stream().map(FormalSettlementVO::getId).filter(Objects::nonNull).toList()));
|
payableRows.stream().map(FormalSettlementVO::getId).filter(Objects::nonNull).toList()));
|
||||||
if (relations.isEmpty()) {
|
if (relations.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -263,7 +267,7 @@ public class FormalSettlementServiceImpl extends BaseServiceImpl<FormalSettlemen
|
|||||||
receiptsBySettlement.computeIfAbsent(relation.getFormalSettlementId(), key -> new ArrayList<>())
|
receiptsBySettlement.computeIfAbsent(relation.getFormalSettlementId(), key -> new ArrayList<>())
|
||||||
.add(receipt);
|
.add(receipt);
|
||||||
}
|
}
|
||||||
for (FormalSettlementVO vo : rows) {
|
for (FormalSettlementVO vo : payableRows) {
|
||||||
List<InvoiceReceipt> claimed = receiptsBySettlement.get(vo.getId());
|
List<InvoiceReceipt> claimed = receiptsBySettlement.get(vo.getId());
|
||||||
if (Func.isEmpty(claimed)) {
|
if (Func.isEmpty(claimed)) {
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
Reference in New Issue
Block a user