fix: 作废认领不再生成本地KDCX冲单——金蝶单号/状态保留原值,接口改无返回

This commit is contained in:
刘泉佳
2026-09-29 11:15:57 +08:00
parent 175dd52d33
commit c8b2b701a3
5 changed files with 11 additions and 18 deletions
@@ -84,8 +84,9 @@ public class ReceiptClaimRecordController extends BladeController {
@PostMapping("/void")
@ApiOperationSupport(order = 4)
@Operation(summary = "作废认领记录并生成金蝶认领冲单")
public R<String> voidClaim(@RequestParam Long id) {
return R.data(receiptClaimRecordService.voidClaim(id));
public R<Void> voidClaim(@RequestParam Long id) {
receiptClaimRecordService.voidClaim(id);
return R.success("作废成功");
}
@PostMapping("/query-kingdee-result")
@@ -45,7 +45,7 @@ public interface IReceiptClaimRecordService extends BaseService<ReceiptClaim> {
void updateAttachments(ReceiptClaimAttachmentsRequest request);
String voidClaim(Long id);
void voidClaim(Long id);
/**
* A301-1 收款单查询回写认领结果:按来源单据编码匹配金蝶收款单,推进金蝶单据状态
@@ -184,7 +184,7 @@ public class ReceiptClaimRecordServiceImpl extends BaseServiceImpl<ReceiptClaimM
@Override
@Transactional(rollbackFor = Exception.class)
public String voidClaim(Long id) {
public void voidClaim(Long id) {
ReceiptClaim claim = baseMapper.selectOne(Wrappers.<ReceiptClaim>lambdaQuery()
.eq(ReceiptClaim::getId, id)
.eq(ReceiptClaim::getClaimerId, AuthUtil.getUserId())
@@ -252,10 +252,9 @@ public class ReceiptClaimRecordServiceImpl extends BaseServiceImpl<ReceiptClaimM
flow.setClaimStatus(amountClaimStatus(flowClaimedAfter, flow.getUnclaimedAmount()));
receiptFlowMapper.updateById(flow);
String kingdeeBillNo = buildKingdeeBillNo(claim.getId());
// 作废不生成金蝶认领冲单:金蝶单号/状态保留原值(未推送为空,已推送为真实收款单信息),
// 金蝶侧冲销/红冲由人工处置
claim.setClaimStatus(VOIDED);
claim.setKingdeeBillNo(kingdeeBillNo);
claim.setKingdeeBillStatus(APPROVED);
claim.setVoidedBy(AuthUtil.getUserId());
claim.setVoidedByName(Func.isEmpty(AuthUtil.getUserName()) ? claim.getClaimerName()
: AuthUtil.getUserName());
@@ -272,9 +271,8 @@ public class ReceiptClaimRecordServiceImpl extends BaseServiceImpl<ReceiptClaimM
operationRecord.setOperationAmount(money(claim.getClaimAmount()));
operationRecord.setOperatorName(Func.isEmpty(AuthUtil.getUserName()) ? "system"
: AuthUtil.getUserName());
operationRecord.setContent("生成金蝶认领冲单:" + kingdeeBillNo + ",状态:审核通过");
operationRecord.setContent("作废认领,回退认领金额 " + money(claim.getClaimAmount()));
recordMapper.insert(operationRecord);
return kingdeeBillNo;
}
/**
@@ -394,12 +392,6 @@ public class ReceiptClaimRecordServiceImpl extends BaseServiceImpl<ReceiptClaimM
return VOIDED.equals(claimStatus) ? VOIDED : CLAIMED;
}
private String buildKingdeeBillNo(Long claimId) {
String time = DateTimeFormatter.ofPattern("yyyyMMddHHmmss").format(LocalDateTime.now());
String suffix = String.valueOf(claimId);
return "KDCX" + time + suffix.substring(Math.max(0, suffix.length() - 6));
}
/**
* 累计认领金额 → 流水认领状态:对照公告未认领金额判定(与收款流水侧口径一致)
*/