diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/InvoiceReceiptController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/InvoiceReceiptController.java index 4e6ac1f5..beaa3ce5 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/InvoiceReceiptController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/InvoiceReceiptController.java @@ -208,4 +208,11 @@ public class InvoiceReceiptController extends BladeController { public R> claimCandidates(@RequestParam(required = false) String keyword) { return R.data(invoiceReceiptService.claimCandidates(keyword)); } + + @GetMapping("/claimed-list") + @ApiOperationSupport(order = 19) + @Operation(summary = "结算单已认领收票登记列表(先票后款:发票登记对话框回显已认领票)") + public R> claimedList(@RequestParam Long formalSettlementId) { + return R.data(invoiceReceiptService.claimedReceipts(formalSettlementId)); + } } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IInvoiceReceiptService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IInvoiceReceiptService.java index fb3acc45..4791acdb 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IInvoiceReceiptService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IInvoiceReceiptService.java @@ -144,6 +144,15 @@ public interface IInvoiceReceiptService extends BaseService { */ List claimCandidates(String keyword); + /** + * 结算单已认领收票登记列表(先票后款:发票登记对话框打开时回显已认领票): + * 按认领关系查收票登记,与认领候选行结构一致(同一 InvoiceReceipt 实体) + * + * @param settlementId 正式结算单id + * @return 本单已认领的收票登记 + */ + List claimedReceipts(Long settlementId); + /** * 结算单收票认领关系同步(先票后款:结算单保存/认领后由结算单侧调用): * 按行发票号匹配审批通过收票登记,一票一结算单校验(已挂其他有效应付结算单拦截), diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/InvoiceReceiptServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/InvoiceReceiptServiceImpl.java index 894f4c64..d95f5e37 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/InvoiceReceiptServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/InvoiceReceiptServiceImpl.java @@ -958,6 +958,18 @@ public class InvoiceReceiptServiceImpl extends BaseServiceImpl !claimedReceiptIds.contains(receipt.getId())).toList(); } + @Override + public List claimedReceipts(Long settlementId) { + List relations = settlementRelationMapper.selectList( + Wrappers.lambdaQuery() + .eq(InvoiceReceiptSettlement::getFormalSettlementId, settlementId)); + if (relations.isEmpty()) { + return List.of(); + } + return listByIds(relations.stream() + .map(InvoiceReceiptSettlement::getInvoiceReceiptId).filter(Objects::nonNull).distinct().toList()); + } + @Override @Transactional(rollbackFor = Exception.class) public void syncSettlementReceiptRelations(Long settlementId, List invoiceNos) {