feat: 新增发票登记对话框回显已认领收票单接口

This commit is contained in:
刘泉佳
2026-11-02 15:39:18 +08:00
parent c82ce7ecb9
commit b7d417f326
3 changed files with 28 additions and 0 deletions
@@ -208,4 +208,11 @@ public class InvoiceReceiptController extends BladeController {
public R<List<InvoiceReceipt>> claimCandidates(@RequestParam(required = false) String keyword) {
return R.data(invoiceReceiptService.claimCandidates(keyword));
}
@GetMapping("/claimed-list")
@ApiOperationSupport(order = 19)
@Operation(summary = "结算单已认领收票登记列表(先票后款:发票登记对话框回显已认领票)")
public R<List<InvoiceReceipt>> claimedList(@RequestParam Long formalSettlementId) {
return R.data(invoiceReceiptService.claimedReceipts(formalSettlementId));
}
}
@@ -144,6 +144,15 @@ public interface IInvoiceReceiptService extends BaseService<InvoiceReceipt> {
*/
List<InvoiceReceipt> claimCandidates(String keyword);
/**
* 结算单已认领收票登记列表(先票后款:发票登记对话框打开时回显已认领票):
* 按认领关系查收票登记,与认领候选行结构一致(同一 InvoiceReceipt 实体)
*
* @param settlementId 正式结算单id
* @return 本单已认领的收票登记
*/
List<InvoiceReceipt> claimedReceipts(Long settlementId);
/**
* 结算单收票认领关系同步(先票后款:结算单保存/认领后由结算单侧调用):
* 按行发票号匹配审批通过收票登记,一票一结算单校验(已挂其他有效应付结算单拦截),
@@ -958,6 +958,18 @@ public class InvoiceReceiptServiceImpl extends BaseServiceImpl<InvoiceReceiptMap
return approved.stream().filter(receipt -> !claimedReceiptIds.contains(receipt.getId())).toList();
}
@Override
public List<InvoiceReceipt> claimedReceipts(Long settlementId) {
List<InvoiceReceiptSettlement> relations = settlementRelationMapper.selectList(
Wrappers.<InvoiceReceiptSettlement>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<String> invoiceNos) {