feat: 结算单发票明细详情回显收票单指定应付状态

This commit is contained in:
刘泉佳
2026-11-02 18:10:44 +08:00
parent fe0ba8e8cc
commit cb4aec5b22
2 changed files with 16 additions and 1 deletions
@@ -8,6 +8,7 @@
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -39,4 +40,7 @@ public class FormalSettlementInvoice extends TenantEntity {
private BigDecimal availableInvoiceAmount;
private BigDecimal matchedAmount;
private String attachmentJson;
@TableField(exist = false)
@Schema(description = "收票单金蝶推送状态(unsynced未推送/pushed已保存收票单/assigned已指定应付/failed推送失败),详情回显用")
private String kingdeePushStatus;
}
@@ -450,13 +450,14 @@ public class FormalSettlementServiceImpl extends BaseServiceImpl<FormalSettlemen
.or()
.eq(InvoiceReceiptSettlement::getFormalSettlementNo, settlement.getFormalSettlementNo()))
.orderByAsc(InvoiceReceiptSettlement::getCreateTime));
Map<Long, InvoiceReceipt> receiptMap = Map.of();
if (!receiptRelations.isEmpty()) {
List<Long> receiptIds = receiptRelations.stream()
.map(InvoiceReceiptSettlement::getInvoiceReceiptId)
.filter(Objects::nonNull)
.distinct()
.toList();
Map<Long, InvoiceReceipt> receiptMap = receiptIds.isEmpty() ? Map.of()
receiptMap = receiptIds.isEmpty() ? Map.of()
: invoiceReceiptMapper.selectByIds(receiptIds).stream()
.filter(receipt -> !TransportBusiConstant.VOIDED.equals(receipt.getApprovalStatus())
&& !Objects.equals(receipt.getIsDeleted(), 1))
@@ -479,6 +480,16 @@ public class FormalSettlementServiceImpl extends BaseServiceImpl<FormalSettlemen
}
List<FormalSettlementInvoice> invoices = new ArrayList<>(invoiceMap.values());
// 发票行回显收票单金蝶推送状态(是否已指定应付展示用):认领收票按票号匹配本单已认领收票登记
Map<String, InvoiceReceipt> receiptByInvoiceNo = receiptMap.values().stream()
.filter(receipt -> Func.isNotBlank(receipt.getInvoiceNo()))
.collect(Collectors.toMap(InvoiceReceipt::getInvoiceNo, Function.identity(), (left, right) -> left));
for (FormalSettlementInvoice invoice : invoices) {
InvoiceReceipt receipt = receiptByInvoiceNo.get(invoice.getInvoiceNo());
if (receipt != null) {
invoice.setKingdeePushStatus(receipt.getKingdeePushStatus());
}
}
for (int index = 0; index < invoices.size(); index++) {
invoices.get(index).setLineNo(index + 1);
}