贷后资管业务全景
2026-08-24 11:45:26 0 举报仅支持查看
AI智能生成
详细流程
产品运营
模板推荐
作者其他创作
大纲/内容
一、系统总览
1.1 服务架构
saas-asset 资管核心
职责 订单/账单/还款/扣款/回款/结清/减免/代偿/流水/预警/档案
端口 默认 808x
包前缀 com.txcf.saas.asset
数据库 asset 主库 carloan 库
saas-calculate 计算引擎
职责 计息/试算/重算/计划生成
端口 默认 808x
包前缀 com.txcf.saas.calculate
saas-alert 监控告警
职责 账单推送/资金方对接/逾期扣款分发/担保金在保订单
端口 默认 808x
包前缀 com.txcf.saas.alert
saas-disposal 车辆处置
职责 入库/出库/处置/回款确认/费用兜底
端口 默认 808x
包前缀 com.txcf.saas.disposal
saas-archive 档案归档
职责 历史数据归档
saas-upms 通用管理
职责 用户/角色/字典/公司
1.2 中间件依赖
Nacos
作用 注册中心/配置中心
配置 namespace b7cf015e-2cac-43df-81a7-33fb052d02d5
配置 group carloan-saas-test
配置 profile dev/test/prod
RabbitMQ
作用 异步消息总线 跨服务解耦
队列前缀 asset.* disposal.*
Redis
作用 分布式锁 Redisson
锁用途 防重/幂等
序号生成 Sequence
MySQL
作用 主存储 动态数据源读写分离
Druid
作用 连接池
Seata
作用 分布式事务
1.3 整体数据流向
资金方系统 → saas-alert(HTTP)
saas-alert → MQ → saas-alert 内策略路由
saas-alert → Feign → saas-asset
saas-asset → MQ → saas-asset 批处理
saas-asset → MQ → saas-calculate
saas-calculate → 回写 → saas-asset
saas-asset → MQ → saas-archive
saas-disposal → Feign → saas-asset(兜底费用)
saas-asset → Feign → saas-upms(字典用户)
saas-asset → Feign → saas-capital(资金方)
所有业务服务 → saas-gateway(统一入口)
所有业务服务 → saas-auth(OAuth2)
二、saas-asset 资管核心
2.1 Controller 层 外部入口
2.1.1 AssetReturnedController 回款管理
RequestMapping /returned
POST /returned/createReturned
方法 createReturned
Service AssetReturnedServiceImpl.createReturned
场景 线下转账回款申请 手工登记
幂等 Idempotent 业务键含用户ID
落表 asset_returned asset_returned_record
POST /returned/clear/saveReturned
方法 saveReturned
场景 手工或二维码清洗数据保存
POST /returned/createQrReturned
方法 createQrReturned
Service AssetReturnedServiceImpl.createQrReturned
场景 H5小程序扫码回款
落表 asset_returned
POST /returned/{id}/create-pay-qr-code-url/{amount}
方法 createPayQrCodeUrl
场景 申请支付二维码
落表 asset_returned 状态 PENDING
POST /returned/{id}/receive-payment-result-notify
方法 receivePaymentResultNotification
场景 接收微信支付结果通知
落表 asset_returned 状态更新 SUCCESS
POST /returned/middle-platform/receive-reconciliation-result
方法 receiveMiddlePlatformReconciliationResult
Inner 接口 仅内部调用
场景 凭证中台对账结果回调
落表 asset_voucher asset_voucher_transaction_flow
POST /returned/createSkipReturn/{batchNo}
方法 createSkipPayment
场景 跳过财务直接生成结果回款 内部测试或特批
落表 asset_returned asset_returned_record asset_account_history
GET /returned/selectPayUrl/{returnedId}
方法 查询支付二维码URL
GET /returned/selectGroupList/{projectId}
方法 催收小组列表查询
PUT /returned/update
方法 updateReturned
场景 纠错迁移
2.1.2 AssetSettlementProfileApplyController 结清资料申请管理
RequestMapping /profileApply
GET /profileApply/myApplyPage
方法 myApplyPage
场景 我的申请分页
POST /profileApply/selectOrderByCustomer
方法 selectOrderByCustomer
场景 通过客户信息查询订单
POST /profileApply/settleCondition
方法 settleCondition
场景 结清情况页面复显
GET /profileApply/selectSettleProxyPage
方法 selectSettlementProfileApplyPage
场景 资料申请管理端分页
POST /profileApply/createApply
方法 createSettlementProfileApply
Service AssetSettlementProfileApplyServiceImpl.createSettlementProfileApply
场景 结清资料申请save
幂等 Idempotent key 含 projectId 5s
落表 asset_settlement_profile_apply 状态 DRAFT
GET /profileApply/paymentPayApply
方法 createPayProfileApply
场景 创建代办费支付申请
落表 asset_settlement_profile_apply 状态变化
GET /profileApply/detail
方法 selectSettleProfileApplyDetail
场景 申请详情页
GET /profileApply/returnApply
方法 returnApply
场景 退回操作
落表 asset_settlement_profile_apply 状态 REJECTED
GET /profileApply/registerOpe
方法 registerOpe
场景 登记操作
落表 asset_settlement_profile_apply 状态 REGISTERED
POST /profileApply/reduceAmt
方法 reduceAmt
场景 减免操作
落表 asset_settlement_profile_apply 减免金额更新
GET /profileApply/reduceAllFee
方法 reduceAllFee
场景 全额减免操作
2.1.3 AssetReductionController 减免管理
POST /reduction/add
方法 createReduction
场景 创建减免
落表 asset_reduction asset_reduction_record
GET /reduction/page
方法 selectReductionPage
场景 减免分页
GET /reduction/details/{id}
方法 selectReductionDetails
场景 减免详情
2.1.4 AssetCompensatoryRecordController 代偿记录查询
GET 查询代偿记录列表
GET 查询代偿详情
2.1.5 AssetOaCompensationProcessController OA 代偿审批
POST 提交 OA 审批
GET 查询审批状态
2.1.6 AssetAlarmConfigController 预警规则配置
POST /alarm/config
方法 创建预警规则
PUT /alarm/config
方法 更新预警规则
GET /alarm/config/page
方法 分页查询
GET /alarm/config/{id}
方法 详情
DELETE /alarm/config
方法 删除
2.1.7 AssetAlarmAgentController 预警处理人
POST /alarm/agent 新增
PUT /alarm/agent 修改
GET /alarm/agent/page 分页
DELETE /alarm/agent 删除
2.1.8 AssetAlarmAgentDetailController 预警处理人明细
2.1.9 AssetAlarmCompanyConfigController 预警公司配置
2.1.10 BizCollectionPushConfigController 催收推送配置
2.1.11 AssetCompensationWarningConfigController 代偿预警配置
2.1.12 AssetSettleRegisterRecordController 重权登记记录
2.1.13 AssetSettleRegisterInfoController 重权登记信息
2.1.14 AssetLendingController 放款表管理(已废弃 Deprecated)
GET /lending/page
GET /lending/{id}
POST /lending
PUT /lending
DELETE /lending
2.1.15 AssetExtendController 第三方对接扩展
RequestMapping /external
POST /external/queryPaymentPlan
Inner 接口
方法 assetExtendService.queryPaymentPlan
场景 第三方查询贷后还款计划
POST /external/queryOverdueInfo
场景 第三方查询逾期信息
POST /external/externalPushOverdue
场景 外部推送逾期
2.1.16 业务查询类 Controller
AssetOrderController 订单查询
AssetRepaymentBillController 还款账单查询
AssetOverdueController 逾期记录查询
AssetDeductionController 扣款记录查询
AssetReturnedController 回款查询
AssetSettlementController 结清查询
AssetVoucherController 凭证查询
AssetAccountHistoryController 账户流水查询
AssetPushController 推送批次查询
AssetCostRegistController 费用登记查询
2.2 Controller/feign 层 内部 Feign 接收
2.2.1 AssetOrderFeignController 订单 Feign
GET /feign/order/{applyNo}
方法 selectByApplyNo
调用方 saas-alert CapitalListener 策略路由
场景 拉取订单填充 Metadata
GET /feign/order/list/applyNo
方法 批量查询订单
2.2.2 AssetOrderNoticeFeignController 订单通知 Feign
2.2.3 AssetOrderDataFeignController 订单数据 Feign 核心接收
POST /feign/order/Data/deduction
方法 sendAssetDeduction
Service AssetOrderDataServiceImpl.sendAssetDeduction
调用方 saas-alert DeductionStrategy / OtherDeductionStrategy
场景 接收扣款推送
落表 asset_deduction asset_order_repayment_record
POST /feign/order/Data/overdue
方法 sendAssetOverdue
Service AssetOrderDataServiceImpl.sendAssetOverdue
调用方 saas-alert OverdueStrategy / OtherOverdueStrategy
场景 接收逾期推送
落表 asset_overdue asset_order_repayment_record asset_repayment_bill
POST /feign/order/Data/insert/deduction
方法 createAssetDeduction
场景 直接JSON插入扣款
POST /feign/order/Data/settle/callback
方法 settlementCallback
场景 结清回调
POST /feign/order/Data/settle-complete/callback
方法 settleCapitalCallbackBack
场景 结清付款完成回调
2.2.4 AssetRepaymentBillFeignController 还款账单 Feign
GET /feign/repayment/bill/selectTermByNumAndDate/{projectNum}/{date}
方法 selectByProjectNumAndTerm
调用方 saas-alert OtherOverdueStrategy
场景 非担保逾期定位当期账单
GET /feign/repayment/bill/selectOverdueByProjectId/{projectId}
方法 selectOverdueByProjectId
2.2.5 AssetCostRegistFeignController 费用登记 Feign
POST /cost/regist/feign/createCostRegist
方法 createCostRegist
调用方 saas-disposal DisposalVehicleRecordService.saveSafetyNet
场景 处置兜底费用登记
落表 asset_cost_regist
2.2.6 AssetDocumentFeignController 档案 Feign
2.2.7 AssetDocumentConfigFeignController 档案配置 Feign
2.3 Service 层 核心业务
2.3.1 AssetReturnedServiceImpl 回款服务
createReturned 手工登记
createQrReturned 二维码回款
createPayQrCodeUrl 申请支付二维码
receivePaymentResultNotification 微信回调处理
receiveMiddlePlatformReconciliationResult 中台对账结果
createSkipPayment 跳过财务
updateReturned 纠错迁移
getReturnedDetailById 查询详情
selectReturnedPage 分页
2.3.2 AssetSettlementProfileApplyServiceImpl 结清申请服务
createSettlementProfileApply 创建结清申请
createPayProfileApply 代办费支付申请
reduceAmt 减免
reduceAllFee 全额减免
registerOpe 登记操作
returnApply 退回
settleCondition 复显
selectSettleProfileApplyDetail 详情
selectSettlementProfileApplyPage 分页
myApplyPage 我的申请
selectOrderByCustomer 查询订单
2.3.3 AssetReductionServiceImpl 减免服务
createReduction
updateReduction
selectReductionPage
2.3.4 AssetOrderDataServiceImpl 订单数据服务 核心处理
sendAssetDeduction 处理扣款
步骤 checkGetOrder 校验订单
步骤 幂等检查 selectByProjectIdAndDate
步骤 saveAssetPush PushDataTypeEnum DEDUCTION_DETAIL
步骤 getAssetDeductionEntity 构造扣款实体
步骤 assetDeductionService.save 写 asset_deduction
步骤 repaymentRecordService.updateByDeduction 改 asset_order_repayment_record
步骤 extractedByPostProcessor 发 MQ 三条
步骤 notifyPaymentBill endFlag 时发 HANDLE_REPAYMENT_ITEMS_EXCHANGE
sendAssetOverdue 处理逾期
步骤 checkGetOrder 校验订单
步骤 幂等检查 selectByProjectIdAndDateAndOverdueTerm
步骤 saveAssetPush PushDataTypeEnum OVERDUE_DETAIL
步骤 getAssetOverdueEntity 构造逾期实体
步骤 assetOverdueService.save 写 asset_overdue
步骤 repaymentRecordService.updateByOverdue 改 asset_order_repayment_record
步骤 民生特化 updateAssetRepaymentBill 改 asset_repayment_bill distributeProf
步骤 extractedByPostProcessor 发 MQ 三条
步骤 notifyPaymentBill endFlag 时发 HANDLE_REPAYMENT_ITEMS_EXCHANGE
getAssetOverdueEntity 构造逾期实体
getAssetDeductionEntity 构造扣款实体
notifyPaymentBill 通知还款项
extractedByPostProcessor 后置处理
saveAssetPush 保存推送批次
checkGetOrder 校验订单
settlementCallback 结清回调
settleCapitalCallbackBack 结清付款完成回调
2.3.5 AssetRepaymentBillServiceImpl 还款账单服务
updateByOverdue 逾期时改账单
updateByDeduction 扣款时改账单
updateAssetRepaymentBill 民生特化
selectByProjectNumAndTerm 按期次查
selectOverdueByProjectId 查逾期账单
handleRepaymentItem 还款项处理
2.3.6 AssetOverdueServiceImpl 逾期服务
save 保存
selectByProjectIdAndDateAndOverdueTerm 幂等检查
selectByBatchId 按批次查
selectByProjectId 按项目查
2.3.7 AssetDeductionServiceImpl 扣款服务
save 保存
selectByBatchId 按批次查
updateByDeduction
2.3.8 AssetOrderServiceImpl 订单服务
updateBatchById 批量更新
selectByProjectId
selectByApplyNo
2.3.9 AssetSettlementServiceImpl 结清服务
createSettlement 创建结清记录
selectByProjectId 按项目查
2.3.10 AssetCompensatoryRecordServiceImpl 代偿服务
createCompensatory 创建代偿
updateStatus 更新状态
generateCapitalFlows 生成资金流水
2.3.11 AssetAccountHistoryServiceImpl 账户流水服务
createPaymentSuccessAccountHistoryData 批量生成支付成功流水
saveAssetFlowData 逾期时生成罚息增量流水 核心方法
createAccountHistory 单条生成
2.3.12 AssetAlarmConfigServiceImpl 预警配置服务
createConfig
updateConfig
triggerRule 触发规则
2.3.13 AssetAlarmRecordServiceImpl 预警记录服务
createRecord
updateRecord
queryByPage
2.3.14 AssetVoucherServiceImpl 凭证服务
createVoucher
updateVoucher
2.3.15 AssetExternalExtendServiceImpl 第三方对接服务
queryPaymentPlan 查询还款计划
queryOverdueInfo 查询逾期
externalPushOverdue 外部推送逾期
2.3.16 AssetMigrationServiceImpl 迁移服务
cleanInitialData 初始清洗
cleanSettlementData 结清清洗
cleanCostData 费用清洗
2.3.17 业务查询服务类
AssetOrderServiceImpl 订单查询
AssetReturnedQueryServiceImpl 回款查询
AssetOverdueQueryServiceImpl 逾期查询
AssetDeductionQueryServiceImpl 扣款查询
AssetSettlementQueryServiceImpl 结清查询
2.4 MQ 监听器层
2.4.1 AssetOverdueListener 逾期批处理监听
RabbitListener ASSET_OVERDUE_BATCH_PROCESS_QUEUE
触发源 AssetOrderDataServiceImpl.sendAssetOverdue
方法 onMessage
步骤 overdueService.selectByBatchId assetPushId
步骤 遍历 overdueList
步骤 orderService.selectByProjectId 查订单
步骤 order.overdue=true order.orderStatus=1
步骤 repaymentBillService.selectByNumAndTerm 查账单
步骤 updateBill overdueDays overdueStatus=true
步骤 saveAssetFlowData 核心 生成账户流水
步骤 accountHistoryService.createPaymentSuccessAccountHistoryData
步骤 orderService.updateBatchById
步骤 repaymentBillService.updateBatchById
2.4.2 saveAssetFlowData 内部细节 罚息增量计算
步骤 幂等检查 同订单同天同期次已存在流水则 return
步骤 getYesterdayOverduePenalty 取昨天罚息
步骤 todayPenalty = overdue.overduePenaltyInt
步骤 delta = todayPenalty - yesterdayPenalty
步骤 若 delta 小于等于 0 则 return 不生流水
步骤 校验当前账单 penaltyInterest 与 todayPenalty
步骤 若 bill.penaltyInterest >= todayPenalty 则 return 历史数据
步骤 构造 AssetAccountHistorySaveBO 列表 2 条
BO1 type=ORDER flowType=CAPITAL changeType=RECEIVE
changeCategory=OVERDUE_PENALTY_INTEREST
projectType=PENALTY_INTEREST paidAmount=delta
BO2 type=CAPITAL flowType=CUSTOMER changeType=PAY
changeCategory=OVERDUE_PENALTY_INTEREST
projectType=PENALTY_INTEREST paidAmount=delta
步骤 accountHistoryService.createPaymentSuccessAccountHistoryData
2.4.3 AssetDeductPaymentListenerV2 扣款批处理监听
RabbitListener ASSET_DEDUCTION_QUEUE
触发源 AssetOrderDataServiceImpl.sendAssetDeduction
方法 onMessage
步骤 deductionService.selectByBatchId
步骤 遍历 deductionList
步骤 改订单状态
步骤 notifyPaymentBill endFlag 判断
步骤 发 HANDLE_REPAYMENT_ITEMS_EXCHANGE
2.4.4 AssetReturnedListener 二维码回款监听
RabbitListener ASSET_RECEIVE_QRCODE_RETURN_QUEUE
方法 returnedListener 接收二维码回款流水
落表 asset_returned asset_returned_record
RabbitListener ASSET_RECEIVE_QRCODE_RETURN_DELAY_QUEUE
方法 returnedListenerDelay 二维码失效延迟处理
RabbitListener ASSET_RECEIVE_QRCODE_RETURN_SUCCESS_QUEUE
方法 returnedReconciliationListener 凭证中台对账结果接收
落表 asset_voucher asset_voucher_transaction_flow
2.4.5 AssetFinancialPayListener 财务付款监听
RabbitListener FINANCE_PAYMENT_CALLBACK_QUEUE
方法 financeCallback 付款流水推送处理
RabbitListener FINANCE_RETURN_SUCCESS_QUEUE
方法 financeReturnSuccess 回款流水成功推送
落表 asset_account_history NORMAL_REPAYMENT
RabbitListener FINANCE_RETURN_QRCODE_APPLY_DELAY_QUEUE
方法 financeReturnQrCodeApplyDelay 回款申请收款延迟
2.4.6 AssetSettleListener 自然主动结清监听
RabbitListener ASSET_SETTLE_NATURAL_QUEUE
方法 settleNaturalListener 自然结清处理
触发 最后一期付清
落表 asset_settlement
RabbitListener ASSET_SETTLE_ELECTION_QUEUE
方法 settleElectionListener 主动结清处理
触发 客户申请结清
落表 asset_settlement
后续动作 发 ASSET_SETTLEMENT_COMPENSATION_START_QUEUE
后续动作 发 ASSET_SETTLE_TO_ALERT_QUEUE 延迟告警
2.4.7 AssetSettlementPaymentCompleteListener 结清付款完成监听
RabbitListener SETTLEMENT_PAYMENT_COMPLETE_QUEUE
触发源 结清付款完成回调
方法 onMessage
步骤 验证付款完成
步骤 更新 AssetSettlementProfileApply 状态
步骤 创建 AssetSettlement
步骤 发后续 MQ
2.4.8 AssetSettlementCompensationListener 结清代偿发起监听
RabbitListener ASSET_SETTLEMENT_COMPENSATION_START_QUEUE
方法 onMessage
步骤 创建 AssetCompensatoryRecord
步骤 发 ASSET_COMPENSATION 系列 MQ
步骤 发 ASSET_EMAIL_SEND_QUEUE 邮件
2.4.9 AssetCompensationListener 代偿财务回调监听
RabbitListener ASSET_COMPENSATION_RECEIVE_FINANCE_PAYMENT_SUCCESS_QUEUE
方法 财务打款成功处理
落表 asset_compensatory_record 状态 SUCCESS
落表 asset_account_history COMPENSATION 场景
RabbitListener ASSET_COMPENSATION_RECEIVE_FINANCE_RETURN_FAIL_QUEUE
方法 财务打款失败处理
落表 asset_compensatory_record 状态 FAIL
RabbitListener ASSET_COMPENSATION_RECEIVE_COMPENSATION_SYNC_DATA_SUCCESS_QUEUE
方法 数据同步代偿迁移成功处理
RabbitListener ASSET_COMPENSATION_RECEIVE_FINANCE_RETURN_SUCCESS_FAIL_QUEUE
方法 财务打款先成功后失败处理 异常分支
2.4.10 AssetHandleRepaymentListener 还款项处理监听
RabbitListener HANDLE_REPAYMENT_ITEMS_EXCHANGE
触发源 endFlag=true 时的 notifyPaymentBill
方法 onMessage
步骤 改 asset_repayment_bill 还款状态
步骤 发 ASSET_CALCULATION_EXCHANGE 计算
2.4.11 AssetAlarmConfigRuleListener 预警规则触发监听
RabbitListener ASSET_ALARM_QUEUE
触发源 AssetOrderDataServiceImpl.extractedByPostProcessor
方法 onMessage
步骤 解析预警配置
步骤 匹配告警规则
步骤 创建预警记录
落表 asset_alarm_record
2.4.12 AssetAlertListener 告警通用监听
RabbitListener ASSET_SETTLE_TO_ALERT_QUEUE 延迟队列
方法 settleToAlert 结清后告警
触发源 AssetSettleListener 主动结清
方法 其他告警处理
落表 asset_alarm_record
2.4.13 AssetArchListener 档案归档监听
RabbitListener ASSET_PUSH_EXCHANGE_NAME
方法 archListener 通用归档
触发源 各类业务调用 extractedByPostProcessor
RabbitListener ASSET_ARCH_QUEUE_NAME
方法 archListener 归档
RabbitListener ASSET_ARCH_CLEAR_QUEUE_NAME
方法 archClearListener 结清归档
RabbitListener ASSET_ARCH_UPDATE_PLAN_QUEUE
方法 archUpdatePlanListener 归档时更新还款计划
落表 archive_相关表 saas-archive 服务
2.4.14 其他业务监听器
AssetPaymentListener 通用支付监听
AssetNoticeListener 通知监听
AssetOverduePushListener 逾期推送监听
2.5 数据库表清单
asset_order 订单主表
asset_repayment_bill 还款账单
asset_returned 回款主表
asset_returned_record 回款明细
asset_returned_split 回款拆分
asset_overdue 逾期记录
asset_deduction 扣款记录
asset_order_repayment_record 资方还款记录
asset_settlement_profile_apply 结清资料申请
asset_settlement 结清主表
asset_compensatory_record 代偿记录
asset_reduction 减免主表
asset_reduction_record 减免明细
asset_voucher 凭证
asset_voucher_transaction_flow 凭证流水
asset_account_history 账户流水
asset_alarm_config 预警配置
asset_alarm_record 预警记录
asset_alarm_agent 预警处理人
asset_alarm_agent_detail 预警处理人明细
asset_alarm_company_config 预警公司配置
asset_compensation_warning_config 代偿预警配置
asset_push 推送批次
asset_cost_regist 费用登记
asset_external_extend 第三方对接扩展
asset_settle_register_record 重权登记记录
asset_settle_register_info 重权登记信息
asset_lending 放款表(废弃)
biz_collection_push_config 催收推送配置
三、saas-alert 监控告警
3.1 Controller 层
3.1.1 AssetPushController 推送入口
RequestMapping /push
POST /push/overdue
方法 pushOverdue
Service AssetAlertServiceImpl.pushOverdue
场景 资金方推送逾期
落表 asset_bill 状态 PUSH_OVERDUE
动作 发 ASSET_CAPITAL_PUSH_EXCHANGE
POST /push/deduction
方法 pushDeduction
Service AssetAlertServiceImpl.pushDeduction
场景 资金方推送扣款
动作 发 ASSET_CAPITAL_PUSH_EXCHANGE
POST /push/bill
方法 push
Service AssetAlertServiceImpl.push
场景 推送账单批次
落表 asset_bill
POST /push/record
方法 recordService.push
场景 推送账单明细
落表 asset_bill_record
POST /push/recordBatch
方法 recordService.pushBatch
场景 批量推送账单明细
POST /push/handle
方法 handleBill
场景 告警账单前端处理 人工修正错误数据
POST /push/import/{type}
方法 importOverdue
场景 Excel 导入逾期或扣款
POST /push/overdueGuarantee
方法 pushOverdueGuarantee
场景 担保金在保订单
落表 secure_loan_order
3.1.2 AssetBillController 告警账单
GET 查询告警账单
PUT 处理告警账单
3.1.3 AlertBillRecordController 账单明细
GET 查询账单明细
3.2 Service 层
3.2.1 AssetAlertServiceImpl 告警推送核心
pushOverdue 推送逾期 核心方法
步骤 validateBill 构造 AssetBillEntity billType OVERDUE
步骤 遍历 overdueRecords 设置 batchId applyNo endFlag
步骤 构建 Metadata type=OVERDUE billType=OVERDUE subType=MONTHLY_PAYMENT guaranteeModel=GUARANTEE
步骤 rabbitTemplate.convertAndSend EXCHANGE ASSET_CAPITAL_PUSH_EXCHANGE ROUTING_KEY ASSET_CAPITAL_PUSH_ROUTING_KEY
pushDeduction 推送扣款 核心方法
步骤 validateBill 构造 AssetBillEntity billType DEDUCTION
步骤 遍历 deductionRecords 设置 batchId applyNo endFlag
步骤 构建 Metadata type=DEDUCTION billType=DEDUCTION subType=MONTHLY_PAYMENT guaranteeModel=GUARANTEE
步骤 rabbitTemplate 发 ASSET_CAPITAL_PUSH_EXCHANGE
push 推送账单
步骤 validateBill billType BILL
步骤 发 ASSET_PUSH_EXCHANGE_NAME 或对应 exchange
pushOverdueGuarantee 担保金在保订单
handleBill 处理告警账单
importOverdue Excel 导入
3.2.2 RecordService 账单明细服务
push 单条明细
pushBatch 批量明细
update 更新
3.3 MQ 监听器层
3.3.1 CapitalListener 资金方推送处理监听 核心
RabbitListener ASSET_CAPITAL_PUSH_QUEUE
触发源 AssetAlertServiceImpl.pushOverdue / pushDeduction
方法 onMessage
步骤 Redisson 分布式锁
锁 key alert:source:{loanModel}:process:{type}:type:{subType}:applyNo:{applyNo}
步骤 解析 metadata 按 ProcessType 分流
OVERDUE 走 OverdueStrategy
DEDUCTION 走 DeductionStrategy
步骤 shardedDataProcessor.processShardOne metadata
步骤 遍历 records 业务处理
步骤 若 endFlag=true 调 handleOtherBill metadata
步骤 若 endFlag=true 调 recordResult metadata
3.3.2 告警账单处理监听
监听 ASSET_ALERT_BILL_QUEUE
触发源 handleBill
3.4 策略类 StrategyMetadata 注解
OverdueStrategy 担保模式逾期
注解 StrategyMetadata type=OVERDUE subType=MONTHLY_PAYMENT source=ALL guaranteeModel=GUARANTEE
处理逻辑
步骤 AmountUtil.handleOrder 拉订单
步骤 AmountUtil.handleReceivedData 累加回款聚合
步骤 standardCapitalFeignService.getRepaymentPlans 拉还款计划
步骤 AmountUtil.alert 设置告警类型
步骤 AmountUtil.sendData 分发到 sendAssetOverdue
OtherOverdueStrategy 非担保逾期
注解 StrategyMetadata type=OVERDUE subType=MONTHLY_PAYMENT source=ALL guaranteeModel=NOT_GUARANTEE
处理逻辑
步骤 repaymentBillService.selectByProjectNumAndTerm 定位当期账单
步骤 AmountUtil.buildDTO overdue 转 deduction
步骤 AmountUtil.sendData 分发到 sendAssetOverdue
DeductionStrategy 担保扣款
注解 StrategyMetadata type=DEDUCTION subType=MONTHLY_PAYMENT source=ALL guaranteeModel=GUARANTEE
处理逻辑
步骤 AmountUtil.handleOrder 拉订单
步骤 AmountUtil.handleReceivedData 累加
步骤 standardCapitalFeignService.getRepaymentPlans
步骤 AmountUtil.alert
步骤 AmountUtil.sendData 分发到 sendAssetDeduction
OtherDeductionStrategy 非担保扣款
注解 StrategyMetadata type=DEDUCTION subType=MONTHLY_PAYMENT source=ALL guaranteeModel=NOT_GUARANTEE
处理逻辑
步骤 repaymentBillService.selectByProjectNumAndTerm
步骤 AmountUtil.buildDTO
步骤 AmountUtil.sendData 分发到 sendAssetDeduction
3.5 工具类
3.5.1 AmountUtil
handleOrder 拉订单填充
方法 Feign remoteOrderService.selectByApplyNo applyNo
填充字段 projectNum contractNo loanModel
handleReceivedData 累加回款聚合
累加 receivedAmount receivedPeriods 到 AssetBillRecordEntity
alert 设置告警类型
根据 AlertTypeEnum 设置 alertType alertSubType needReview auditType
sendData 分发扣款逾期
按 dto 类型分发
AssetOverdueInsertDTO → remoteOrderService.sendAssetOverdue
AssetDeductionInsertDTO → remoteOrderService.sendAssetDeduction
buildDTO overdue 转 deduction
构造 AssetDeductionInsertDTO
splitAmount 金额拆分
将 totalAmount 拆分为 avg + max
3.5.2 ShardedDataProcessor 分片处理
processShardOne metadata 单条处理
processShardBatch metadata 批量处理
3.6 数据库表清单
asset_bill 告警账单
asset_bill_record 账单明细
secure_loan_order 担保金在保订单
asset_push 推送批次
四、saas-calculate 计算引擎
4.1 Controller 层
OrderDetailsButtonFeignController 按钮权限 Feign
GET /feign/order/details/button
方法 selectOrderDetailsButton
场景 计算服务按钮权限
4.2 Service 层
RepaymentPlanServiceImpl 还款计划
generatePlan 生成计划
updatePlan 更新计划
CalculationServiceImpl 计算服务
calculate 计算账户流水
recalculate 重算
calculateLiabilities 负债计算
4.3 MQ 监听器层
AssetCalculationListener 计算监听
RabbitListener ASSET_CALCULATION_QUEUE
方法 onMessage 正常账户流水计算
触发源 AssetHandleRepaymentListener
动作 计算完成后回写 asset_account_history
RabbitListener ASSET_CALCULATION_LIABILITIES_QUEUE
方法 onMessage 负债流水计算
RabbitListener ASSET_CALCULATION_DELAY_QUEUE
方法 onMessage 延迟重算
4.4 数据库表清单
asset_repayment_plan 还款计划
asset_calculation_record 计算记录
五、saas-disposal 车辆处置
5.1 Controller 层
5.1.1 DisposalVehicleRecordController 处置记录
RequestMapping /vehicle/record
GET /vehicle/record/page 分页
GET /vehicle/record/{id} 详情
POST /vehicle/record/apply 批量处置申请
方法 createDisposalVehicle
Service DisposalVehicleRecordServiceImpl.createDisposalVehicle
幂等 Idempotent 1s
场景 发起车辆处置申请
落表 disposal_vehicle_record disposal_inout_warehouse_main
POST /vehicle/record/review 审核
方法 updateReview
幂等 Idempotent 3s
落表 disposal_vehicle_record 状态 APPROVED/REJECTED
POST /vehicle/record/updateConfirm 确认
方法 updateConfirm
幂等 Idempotent 3s
PUT /vehicle/record 修改处置记录
方法 updateDisposalVehicle
幂等 Idempotent 5s
PUT /vehicle/record/payment/confirm 回款确认
方法 updatePaymentConfirmation
幂等 Idempotent 3s
场景 回款确认
POST /vehicle/record/downbeat/edit 处置中修改
方法 updateDownbeatEdit
幂等 Idempotent 5s
GET /vehicle/record/getDetailById/{recordId} 通过处置ID查详情
PUT /vehicle/record/updateCheGeUpbeat/{vin} 车鸽重新上拍
方法 updateCheGeUpbeat
Inner 接口
幂等 Idempotent 10s
调用车鸽系统重新上拍接口
POST /vehicle/record/createReturnedRecord 手动回款录入
方法 createReturnedRecord
幂等 Idempotent 10s
场景 手动录入处置回款
落表 disposal_returned_record
GET /vehicle/record/selectReturnedRecord/{recordId} 回显手动回款
GET /vehicle/record/selectZgRecordPage 资管回款明细查询
POST /vehicle/record/choose/returnedRecord 选择回款录入
方法 createChooseReturnedRecord
幂等 Idempotent 5s
GET /vehicle/record/pushWechatMessage 手动触发企微提醒
方法 手动触发企微消息任务
POST /vehicle/record/saveSafetyNet 处置兜底
方法 saveSafetyNet
幂等 Idempotent 10s
场景 款项确认 处置兜底
动作 Feign remoteAssetCostRegistService.createCostRegist
POST /vehicle/record/updateOA/approvalCallback OA审批回调
方法 approvalCallback
场景 资管费用管理OA审批回调
PUT /vehicle/record/updateTermination/{id} 终止处置
方法 updateTermination
幂等 Idempotent 5s
场景 终止处置前置条件 当前车辆未出库
POST /vehicle/record/batchDisposalAndOutbound 批量处置并出库
方法 batchDisposalAndOutbound
幂等 Idempotent 10s
场景 批量一次性发起处置并出库
解析 EasyExcel 文件
5.1.2 DisposalInWarehouseController 入库管理
RequestMapping /disposalInoutWarehouse
POST /disposalInoutWarehouse/addStorageApplication 新增入库申请或草稿
POST /disposalInoutWarehouse/oneStepWarehousing 一步入库
GET /disposalInoutWarehouse/submitStorageApplication 提交入库
PUT /disposalInoutWarehouse/updateStorageApplication 更新入库
POST /disposalInoutWarehouse/addStorageVehicle 新增入库车辆
PUT /disposalInoutWarehouse/updateStorageVehicle 修改入库车辆
POST /disposalInoutWarehouse/deleteStorageVehicle 删除入库车辆
POST /disposalInoutWarehouse/uploadStorageVehicleAttach 车辆附件
GET /disposalInoutWarehouse/page/storageApplication 入库申请分页
GET /disposalInoutWarehouse/list/storageRecord 入库记录分页
GET /disposalInoutWarehouse/listInoutWarehouseDetailDTO 车辆详情
GET /disposalInoutWarehouse/revokeStorageApplication 撤回申请单
POST /disposalInoutWarehouse/confirmStorageApplication 入库确认
POST /disposalInoutWarehouse/confirmRejectStorageApplication 确认退回
POST /disposalInoutWarehouse/assign 入库单指派
POST /disposalInoutWarehouse/updateStorageVehicleByMakeOrder 制单修改
POST /disposalInoutWarehouse/makeOrderSubmit 制单提交
POST /disposalInoutWarehouse/approvalStorageApplication 审批入库单
POST /disposalInoutWarehouse/rejectStorageApplication 审批驳回
GET /disposalInoutWarehouse/check/vehicleFrameNo 校验车架号是否在库
GET /disposalInoutWarehouse/getInfoByProjectNum 通过订单号查入库
GET /disposalInoutWarehouse/listOrdersBySearchKey 模糊查询订单
POST /disposalInoutWarehouse/batch/import 批量导入入库
POST /disposalInoutWarehouse/updateStorageVehicleCompany 修改车辆所属公司
GET /disposalInoutWarehouse/addStorageRecordLabel 补录标签编码
5.1.3 DisposalOutWarehouseController 出库管理
RequestMapping /disposalOutWarehouse
POST /disposalOutWarehouse/addOutStorageApplication/{operationType}
PUT /disposalOutWarehouse/updateOutStorageApplication/{id}/{opType}
GET /disposalOutWarehouse/submitOutStorageApplication 提交出库
POST /disposalOutWarehouse/addOutStorageVehicle 新增出库车辆
POST /disposalOutWarehouse/deleteOutStorageVehicle 删除出库车辆
POST /disposalOutWarehouse/uploadOutStorageVehicleAttach 出库车辆附件
POST /disposalOutWarehouse/queryVehicleInfoByWarehouseId 按仓库+车架号查询
POST /disposalOutWarehouse/confirmOutStorageApplication 出库确认
POST /disposalOutWarehouse/confirmRejectOutStorageApplication 确认退回
GET /disposalOutWarehouse/revokeOutStorageApplication 撤回
GET /disposalOutWarehouse/listOutWarehouseDetailDTO 出库车辆详情
POST /disposalOutWarehouse/assign 出库单指派
POST /disposalOutWarehouse/makeOrderSubmit 出库制单提交
POST /disposalOutWarehouse/confirmStorageApplication 出库申请确认
POST /disposalOutWarehouse/approvalStorageApplication 审批出库
POST /disposalOutWarehouse/rejectOutStorageApplication 审批驳回
GET /disposalOutWarehouse/getStorageApplication 出库单详情
GET /disposalOutWarehouse/waitOutStorageApplication 待出库申请分页
GET /disposalOutWarehouse/OutStorageApplication 出库申请分页
GET /disposalOutWarehouse/outStorageRecord 出库记录分页
GET /disposalOutWarehouse/pageOutWarehouse H5 出库分页
5.1.4 其他 Controller
DisposalWarehouseController 仓库管理
DisposalAllotController 分配管理
DisposalBiddingController 招投标管理
DisposalTowingController 拖车管理
5.2 Service 层
5.2.1 DisposalVehicleRecordServiceImpl 处置记录服务
createDisposalVehicle 批量处置申请
updateReview 审核
updateConfirm 确认
updateDisposalVehicle 修改
updatePaymentConfirmation 回款确认
updateDownbeatEdit 处置中修改
createReturnedRecord 手动回款录入
createChooseReturnedRecord 选择回款录入
saveSafetyNet 处置兜底
步骤 组装 AssetCostRegistDTO
步骤 Feign RemoteAssetCostRegistService.createCostRegist
approvalCallback OA回调
updateTermination 终止
batchDisposalAndOutbound 批量处置出库
updateCheGeUpbeat 车鸽重新上拍
5.2.2 DisposalInWarehouseServiceImpl 入库服务
5.2.3 DisposalOutWarehouseServiceImpl 出库服务
5.2.4 DisposalWarehouseServiceImpl 仓库服务
5.2.5 DisposalAllotServiceImpl 分配服务
5.2.6 DisposalBiddingServiceImpl 招投标服务
5.3 定时任务
DisposalVehicleRecordSchedule
pushMessageToWechatTask 企微提醒
扫描未回款30天车辆
手动触发 /vehicle/record/pushWechatMessage
5.4 MQ 监听器层
DisposalInWarehouseSubmitListener 入库成功监听
RabbitListener IN_WAREHOUSE_SUCCESS_QUEUE
触发源 入库确认成功后
方法 onMessage
步骤 同步入库信息
步骤 发入库成功通知
DisposalOutWarehouseSubmitListener 出库成功监听
RabbitListener OUT_WAREHOUSE_SUCCESS_QUEUE
触发源 出库确认成功后
方法 onMessage
步骤 同步出库信息
步骤 发出库成功通知
DisposalBusinessRecordListener 操作日志监听
RabbitListener VEHICLE_BUSINESS_RECORD_LOGS_QUEUE
触发源 各业务操作
方法 onMessage
步骤 同步操作日志
落表 disposal_business_record
DisposalPushArchListener 处置归档监听
RabbitListener DISPOSAL_ARCH_QUEUE_NAME
触发源 处置完成
方法 onMessage
步骤 同步数据到 saas-archive
DisposalAllotListener 分配完成监听
RabbitListener ALLOT_COMPLETE_UPDATE_RELATION_QUEUE
触发源 分配完成
方法 onMessage
步骤 更新分配关联
落表 disposal_record_allot_relation
5.5 Feign 调用
RemoteAssetCostRegistService 资产费用登记
POST /cost/regist/feign/createCostRegist
方法 createCostRegist
调用方 DisposalVehicleRecordServiceImpl.saveSafetyNet
目标 AssetCostRegistFeignController
场景 处置兜底费用登记
落表 asset_cost_regist saas-asset
5.6 数据库表清单
disposal_vehicle_record 处置记录
disposal_inout_warehouse_main 入出库主表
disposal_inout_warehouse_detail 入出库详情
disposal_returned_record 处置回款明细
disposal_auction_progress 拍卖进度
disposal_business_record 操作日志
disposal_record_allot_relation 分配关联
disposal_warehouse 仓库表
disposal_bidding 招投标
disposal_towing 拖车记录
六、跨服务 Feign 关系矩阵
6.1 saas-alert → saas-asset
/push/bill 推送账单
/push/record 推送账单明细
/push/recordBatch 批量推送账单明细
/push/deduction 推送扣款
/push/overdue 推送逾期
/push/handle 处理告警账单
/push/import/{type} Excel导入
调用方 saas-alert 全栈
被调方 saas-asset AssetPushController
6.2 saas-alert 内 MQ 触发后 Feign 调 saas-asset
/feign/order/Data/deduction 接收扣款
/feign/order/Data/overdue 接收逾期
/feign/order/Data/insert/deduction
/feign/order/Data/selectByApplyNo/{applyNo} 拉订单
/feign/repayment/bill/selectTermByNumAndDate/{...} 查账单
调用方 saas-alert CapitalListener 策略分发
被调方 saas-asset AssetOrderFeignController AssetOrderDataFeignController AssetRepaymentBillFeignController
6.3 saas-disposal → saas-asset
/feign/order/{applyNo} 拉订单
/cost/regist/feign/createCostRegist 创建费用登记
调用方 saas-disposal DisposalVehicleRecordServiceImpl
被调方 saas-asset AssetOrderFeignController AssetCostRegistFeignController
6.4 saas-calculate → saas-asset
/feign/order/details/button 按钮权限
调用方 saas-calculate
被调方 saas-asset AssetOrderFeignController
6.5 saas-asset → saas-capital 资金方
/feign/order/Data/capital/repayment 资金方还款
调用方 saas-asset
被调方 saas-capital
6.6 saas-asset → saas-upms 通用管理
/feign/upms/dict 字典
/feign/upms/user 用户
/feign/upms/role 角色
/feign/upms/menu 菜单
/feign/upms/company 公司
调用方 所有业务服务
被调方 saas-upms RemoteXxxService
6.7 saas-asset → 第三方资金方
/external/queryPaymentPlan 查询还款计划
/external/queryOverdueInfo 查询逾期
/external/externalPushOverdue 外部推送逾期
调用方 第三方
被调方 saas-asset AssetExtendController
七、关键 MQ 总线一览
7.1 资金方推送类
ASSET_CAPITAL_PUSH_EXCHANGE
ROUTING_KEY ASSET_CAPITAL_PUSH_ROUTING_KEY
QUEUE ASSET_CAPITAL_PUSH_QUEUE
生产方 saas-alert AssetAlertServiceImpl.pushOverdue / pushDeduction
消费方 saas-alert CapitalListener
ASSET_PUSH_EXCHANGE_NAME
生产方 saas-alert AssetAlertServiceImpl.push
消费方 saas-asset AssetArchListener
7.2 业务处理类
ASSET_OVERDUE_BATCH_PROCESS_EXCHANGE
ROUTING_KEY ASSET_OVERDUE_BATCH_PROCESS_ROUTING_KEY
QUEUE ASSET_OVERDUE_BATCH_PROCESS_QUEUE
生产方 saas-asset AssetOrderDataServiceImpl.sendAssetOverdue extractedByPostProcessor
消费方 saas-asset AssetOverdueListener
ASSET_DEDUCTION_EXCHANGE
ROUTING_KEY ASSET_DEDUCTION_ROUTING_KEY
QUEUE ASSET_DEDUCTION_QUEUE
生产方 saas-asset AssetOrderDataServiceImpl.sendAssetDeduction
消费方 saas-asset AssetDeductPaymentListenerV2
HANDLE_REPAYMENT_ITEMS_EXCHANGE
ROUTING_KEY HANDLE_REPAYMENT_ITEMS_ROUTING_KEY
QUEUE HANDLE_REPAYMENT_ITEMS_QUEUE
生产方 saas-asset AssetOrderDataServiceImpl.notifyPaymentBill
消费方 saas-asset AssetHandleRepaymentListener
ASSET_CALCULATION_EXCHANGE
QUEUE ASSET_CALCULATION_QUEUE
生产方 saas-asset AssetHandleRepaymentListener
消费方 saas-calculate AssetCalculationListener
ASSET_CALCULATION_LIABILITIES_EXCHANGE
QUEUE ASSET_CALCULATION_LIABILITIES_QUEUE
消费方 saas-calculate AssetCalculationListener
ASSET_CALCULATION_DELAY_EXCHANGE
QUEUE ASSET_CALCULATION_DELAY_QUEUE
消费方 saas-calculate AssetCalculationListener 延迟重算
7.3 结清代偿告警类
ASSET_SETTLE_NATURAL_QUEUE
生产方 saas-asset 最后一期付清触发
消费方 saas-asset AssetSettleListener 自然结清
ASSET_SETTLE_ELECTION_QUEUE
生产方 saas-asset 客户主动申请结清
消费方 saas-asset AssetSettleListener 主动结清
SETTLEMENT_PAYMENT_COMPLETE_QUEUE
生产方 线上扫码付款完成回调
消费方 saas-asset AssetSettlementPaymentCompleteListener
ASSET_SETTLEMENT_COMPENSATION_START_QUEUE
生产方 saas-asset AssetSettleListener 主动结清
消费方 saas-asset AssetSettlementCompensationListener
ASSET_COMPENSATION_RECEIVE_FINANCE_PAYMENT_SUCCESS_QUEUE
生产方 财务打款成功
消费方 saas-asset AssetCompensationListener
ASSET_COMPENSATION_RECEIVE_FINANCE_RETURN_FAIL_QUEUE
生产方 财务打款失败
消费方 saas-asset AssetCompensationListener
ASSET_COMPENSATION_RECEIVE_COMPENSATION_SYNC_DATA_SUCCESS_QUEUE
生产方 数据同步代偿迁移成功
消费方 saas-asset AssetCompensationListener
ASSET_COMPENSATION_RECEIVE_FINANCE_RETURN_SUCCESS_FAIL_QUEUE
生产方 财务打款先成功后失败
消费方 saas-asset AssetCompensationListener 异常分支
ASSET_ALARM_QUEUE
生产方 saas-asset extractedByPostProcessor
消费方 saas-asset AssetAlarmConfigRuleListener
ASSET_SETTLE_TO_ALERT_QUEUE 延迟队列
生产方 saas-asset AssetSettleListener 主动结清后
消费方 saas-asset AssetAlertListener
ASSET_EMAIL_SEND_QUEUE
生产方 saas-asset AssetSettlementCompensationListener
消费方 saas-message AssetEmailListener
7.4 回款财务类
ASSET_RECEIVE_QRCODE_RETURN_QUEUE
生产方 saas-asset AssetReturnedServiceImpl.createQrReturned
消费方 saas-asset AssetReturnedListener
ASSET_RECEIVE_QRCODE_RETURN_DELAY_QUEUE
生产方 saas-asset createQrReturned 延迟队列
消费方 saas-asset AssetReturnedListener 二维码失效处理
ASSET_RECEIVE_QRCODE_RETURN_SUCCESS_QUEUE
生产方 凭证中台对账结果
消费方 saas-asset AssetReturnedListener 对账接收
FINANCE_PAYMENT_CALLBACK_QUEUE
生产方 saas-finance 付款回调
消费方 saas-asset AssetFinancialPayListener
FINANCE_RETURN_SUCCESS_QUEUE
生产方 saas-finance 回款成功
消费方 saas-asset AssetFinancialPayListener
FINANCE_RETURN_QRCODE_APPLY_DELAY_QUEUE
生产方 saas-asset createQrReturned 延迟
消费方 saas-asset AssetFinancialPayListener
7.5 处置类
IN_WAREHOUSE_SUCCESS_QUEUE
生产方 saas-disposal 入库确认成功
消费方 saas-disposal DisposalInWarehouseSubmitListener
OUT_WAREHOUSE_SUCCESS_QUEUE
生产方 saas-disposal 出库确认成功
消费方 saas-disposal DisposalOutWarehouseSubmitListener
VEHICLE_BUSINESS_RECORD_LOGS_QUEUE
生产方 saas-disposal 业务操作
消费方 saas-disposal DisposalBusinessRecordListener
DISPOSAL_ARCH_QUEUE_NAME
生产方 saas-disposal 处置完成
消费方 saas-disposal DisposalPushArchListener
ALLOT_COMPLETE_UPDATE_RELATION_QUEUE
生产方 saas-disposal 分配完成
消费方 saas-disposal DisposalAllotListener
7.6 档案类
ASSET_ARCH_QUEUE_NAME
生产方 saas-asset 各类业务
消费方 saas-asset AssetArchListener
ASSET_ARCH_CLEAR_QUEUE_NAME
生产方 saas-asset 结清后
消费方 saas-asset AssetArchListener
ASSET_ARCH_UPDATE_PLAN_QUEUE
生产方 saas-asset 归档时更新还款计划
消费方 saas-asset AssetArchListener
八、关键业务场景完整调用链
8.1 逾期推送完整调用链
入口 资金方系统 或 Excel 导入
HTTP POST saas-alert /push/overdue
JSON body overdueRecords list
saas-alert 接入层
AssetPushController.pushOverdue
调用 AssetAlertServiceImpl.pushOverdue
步骤 validateBill 构造 AssetBillEntity billType OVERDUE
步骤 遍历 overdueRecords 设置 batchId applyNo endFlag=true 最后一条
步骤 构建 Metadata
type ProcessTypeEnum OVERDUE
billType AlertBillTypeEnum OVERDUE
subType MONTHLY_PAYMENT
guaranteeModel GUARANTEE 给锁用
步骤 rabbitTemplate.convertAndSend
EXCHANGE ASSET_CAPITAL_PUSH_EXCHANGE
ROUTING_KEY ASSET_CAPITAL_PUSH_ROUTING_KEY
BODY JSON.toJSONString baseMetadata
saas-alert 策略路由层
CapitalListener onMessage
RabbitListener ASSET_CAPITAL_PUSH_QUEUE
步骤 Redisson 分布式锁
key alert:source:{loanModel}:process:{type}:type:{subType}:applyNo:{applyNo}
步骤 解析 metadata
步骤 按 ProcessType 分流 OVERDUE 走右侧
步骤 shardedDataProcessor.processShardOne metadata
步骤 遍历 records 业务处理
步骤 若 endFlag=true 调 handleOtherBill metadata
步骤 若 endFlag=true 调 recordResult metadata
策略路由
guaranteeModel GUARANTEE → OverdueStrategy
guaranteeModel NOT_GUARANTEE → OtherOverdueStrategy
saas-alert 业务组装层
OverdueStrategy 担保模式
步骤 AmountUtil.handleOrder record metadata
Feign remoteOrderService.selectByApplyNo applyNo
填充 projectNum contractNo loanModel
步骤 AmountUtil.handleReceivedData record null dto
累加 receivedAmount receivedPeriods 到 AssetBillRecordEntity
步骤 standardCapitalFeignService.getRepaymentPlans
获取 RepaymentPlanListRespBO 列表
步骤 AmountUtil.alert record metadata plan
设置 alertType alertSubType needReview auditType
步骤 AmountUtil.sendData record remoteOrderService dto false
按 dto 类型分发 sendAssetOverdue
OtherOverdueStrategy 非担保
步骤 repaymentBillService.selectByProjectNumAndTerm
Feign selectByProjectNumAndTerm projectNum overdueDate
步骤 AmountUtil.buildDTO record
overdue 数据转 AssetDeductionInsertDTO
步骤 AmountUtil.sendData record remoteOrderService dto true
saas-asset 接收层
AssetOrderDataFeignController.sendAssetOverdue
RequestMapping POST /feign/order/Data/overdue
AssetOrderDataServiceImpl.sendAssetOverdue
步骤 checkGetOrder dto
步骤 幂等检查 overdueService.selectByProjectIdAndDateAndOverdueTerm
若已处理 则 log.warn return true
步骤 saveAssetPush reconciliationDate 1 1 overdueSequence
PushDataTypeEnum OVERDUE_DETAIL
loanModel 1
步骤 getAssetOverdueEntity dto order assetPush
构造 AssetOverdueEntity
字段 projectId orderId loanModel pushId overdueTerm
overdueDate overdueDays overduePrinAmount overdueIntAmount
overdueTotalAmount overduePenaltyInt
步骤 assetOverdueService.save
落表 asset_overdue
主键 overdueSequence 雪花ID
步骤 repaymentRecordService.updateByOverdue
落表 asset_order_repayment_record
更新 overdue_flag overdue_amount overdue_date
步骤 民生特化 updateAssetRepaymentBill
若 loanModel 包含 MINSHENG
assetRepaymentBillService.updateAssetRepaymentBill
projectId overdueTerm rpmtPlanDistributeProfits
落表 asset_repayment_bill
步骤 extractedByPostProcessor assetPush
发 MQ 三条
步骤 notifyPaymentBill projectNum endFlag
若 endFlag=true 发 HANDLE_REPAYMENT_ITEMS_EXCHANGE
extractedByPostProcessor 发 MQ 三条
MQ1 ASSET_ALARM_EXCHANGE
ROUTING_KEY 预警告警
body category=OVERDUE batchId
消费方 AssetAlarmConfigRuleListener
MQ2 ASSET_OVERDUE_BATCH_PROCESS_EXCHANGE
ROUTING_KEY ASSET_OVERDUE_BATCH_PROCESS_ROUTING_KEY
body assetPushId
消费方 AssetOverdueListener 核心
MQ3 ASSET_PUSH_EXCHANGE_NAME
ROUTING_KEY DOC_ARCH_OVERDUE
body 数据归档
消费方 AssetArchListener
saas-asset 批处理层
AssetOverdueListener onMessage
RabbitListener ASSET_OVERDUE_BATCH_PROCESS_QUEUE
步骤 overdueService.selectByBatchId assetPushId
步骤 遍历 overdueList
步骤 orderService.selectByProjectId overdue projectId
步骤 order.overdue=true order.orderStatus=1
步骤 repaymentBillService.selectByNumAndTerm
取出当期账单
步骤 updateBill overdue overdueDays overdueStatus=true
落表 asset_repayment_bill
步骤 saveAssetFlowData overdueEntity order
生成账户流水 核心步骤
步骤 accountHistoryService.createPaymentSuccessAccountHistoryData
批量插入 asset_account_history
步骤 orderService.updateBatchById
步骤 repaymentBillService.updateBatchById
saveAssetFlowData 内部细节 罚息增量计算
步骤 幂等检查 查同一订单同一天同一期次的已存在流水
若已存在 return
步骤 getYesterdayOverduePenalty 取昨天罚息 yesterdayPenalty
步骤 todayPenalty overdue overduePenaltyInt
步骤 delta todayPenalty - yesterdayPenalty
步骤 若 delta 小于等于 0 return 不生流水
步骤 校验当前账单 penaltyInterest 与 todayPenalty
若 bill.penaltyInterest >= todayPenalty return 历史数据
若 bill.penaltyInterest < todayPenalty 取 bill.penaltyInterest
步骤 构造 AssetAccountHistorySaveBO 列表 2 条
BO1 订单流水 type=ORDER flowType=CAPITAL
changeType=RECEIVE changeCategory=OVERDUE_PENALTY_INTEREST
projectType=PENALTY_INTEREST paidAmount=delta
BO2 资金流水 type=CAPITAL flowType=CUSTOMER
changeType=PAY changeCategory=OVERDUE_PENALTY_INTEREST
projectType=PENALTY_INTEREST paidAmount=delta
步骤 accountHistoryService.createPaymentSuccessAccountHistoryData
落表 asset_account_history
saas-asset 平行链路
AssetHandleRepaymentListener
监听 HANDLE_REPAYMENT_ITEMS_EXCHANGE
步骤 改 asset_repayment_bill 还款状态
步骤 发 ASSET_CALCULATION_EXCHANGE 计算
AssetAlarmConfigRuleListener
监听 ASSET_ALARM_QUEUE
步骤 解析预警配置
步骤 创建预警记录
落表 asset_alarm_record
AssetArchListener
监听 ASSET_PUSH_EXCHANGE_NAME DOC_ARCH_OVERDUE
步骤 同步数据到 saas-archive
saas-calculate 计算回调
AssetCalculationListener
RabbitListener ASSET_CALCULATION_QUEUE
步骤 按业务类型 计算账户流水
步骤 回写 asset_account_history 更新字段
8.2 扣款推送完整调用链
入口 资金方系统 或 Excel 导入
HTTP POST saas-alert /push/deduction
saas-alert 接入层
AssetPushController.pushDeduction
AssetAlertServiceImpl.pushDeduction
validateBill billType DEDUCTION
遍历 deductionRecords 设置 batchId applyNo endFlag
构建 Metadata type=DEDUCTION
rabbitTemplate 发 ASSET_CAPITAL_PUSH_EXCHANGE
saas-alert 策略路由层
CapitalListener → DeductionStrategy / OtherDeductionStrategy
saas-alert 业务组装层
DeductionStrategy 担保
AmountUtil.handleOrder
AmountUtil.handleReceivedData
standardCapitalFeignService.getRepaymentPlans
AmountUtil.alert
AmountUtil.sendData 分发 sendAssetDeduction
saas-asset 接收层
AssetOrderDataFeignController.sendAssetDeduction
AssetOrderDataServiceImpl.sendAssetDeduction
checkGetOrder
幂等检查
saveAssetPush PushDataTypeEnum DEDUCTION_DETAIL
getAssetDeductionEntity
assetDeductionService.save 落表 asset_deduction
repaymentRecordService.updateByDeduction 改 asset_order_repayment_record
extractedByPostProcessor 发 MQ 三条
notifyPaymentBill endFlag
extractedByPostProcessor 发 MQ
ASSET_ALARM_EXCHANGE category DEDUCTION
ASSET_DEDUCTION_EXCHANGE assetPushId → AssetDeductPaymentListenerV2
ASSET_PUSH_EXCHANGE_NAME DOC_ARCH_DEDUCTION
8.3 回款完整调用链
入口 6 种来源
来源1 前端手工登记 POST /returned/createReturned
来源2 H5扫码 POST /returned/createQrReturned
来源3 微信支付回调 POST /returned/{id}/receive-payment-result-notify
来源4 凭证中台对账结果 POST /returned/middle-platform/receive-reconciliation-result
来源5 财务打款成功/失败 FINANCE_PAYMENT_CALLBACK_QUEUE FINANCE_RETURN_SUCCESS_QUEUE
来源6 跳过财务直接生成 POST /returned/createSkipReturn/{batchNo}
入口一 手工登记
AssetReturnedController.createReturned
AssetReturnedServiceImpl.createReturned
创建 AssetReturned 主表
创建 AssetReturnedRecord 明细
调用 finance 系统发起回款
发 FINANCE_RETURN_SUCCESS_QUEUE 异步等待
入口二 扫码支付
AssetReturnedController.createQrReturned
AssetReturnedServiceImpl.createQrReturned
创建 AssetReturned 主表
发 ASSET_RECEIVE_QRCODE_RETURN_QUEUE
发 ASSET_RECEIVE_QRCODE_RETURN_DELAY_QUEUE 延迟
createPayQrCodeUrl
查询支付二维码URL
落表 asset_returned 状态 PENDING
入口三 微信支付回调
receivePaymentResultNotification
校验支付结果
更新 AssetReturned 状态 SUCCESS
发 FINANCE_RETURN_SUCCESS_QUEUE
入口四 中台对账
receiveMiddlePlatformReconciliationResult Inner接口
解析对账结果
成功 写入 AssetVoucher AssetVoucherTransactionFlow
失败 触发回滚或人工处理
入口五 财务打款
AssetFinancialPayListener
financeCallback FINANCE_PAYMENT_CALLBACK_QUEUE
financeReturnSuccess FINANCE_RETURN_SUCCESS_QUEUE
financeReturnQrCodeApplyDelay FINANCE_RETURN_QRCODE_APPLY_DELAY_QUEUE
更新 AssetReturned 状态
生成 asset_account_history NORMAL_REPAYMENT 场景
入口六 跳过财务
createSkipPayment
创建 AssetReturned 主表状态 SUCCESS
创建 AssetReturnedRecord 明细
直接生成 asset_account_history 资金流水
MQ 监听
AssetReturnedListener
ASSET_RECEIVE_QRCODE_RETURN_QUEUE returnedListener
ASSET_RECEIVE_QRCODE_RETURN_DELAY_QUEUE returnedListenerDelay
ASSET_RECEIVE_QRCODE_RETURN_SUCCESS_QUEUE returnedReconciliationListener
后续触发
回款流水生成完毕
发 HANDLE_REPAYMENT_ITEMS_EXCHANGE → AssetHandleRepaymentListener
改 asset_repayment_bill 还款状态
发 ASSET_CALCULATION_EXCHANGE → AssetCalculationListener
计算账户流水
发 ASSET_ARCH_QUEUE_NAME → AssetArchListener
归档
8.4 结清完整调用链
入口 4 种来源
来源1 客户提交资料申请 POST /profileApply/createApply
来源2 减免操作 POST /profileApply/reduceAmt GET /profileApply/reduceAllFee
来源3 登记操作 GET /profileApply/registerOpe
来源4 自然结清 最后一期付清
资料申请
AssetSettlementProfileApplyController.createSettlementProfileApply
AssetSettlementProfileApplyServiceImpl.createSettlementProfileApply
Idempotent 防重 5s
创建 AssetSettlementProfileApply 草稿 状态 DRAFT
return applyId
登记/退回
returnApply 状态 REJECTED
registerOpe 状态 REGISTERED
减免
reduceAmt 减免金额更新
reduceAllFee 全额减免
代偿支付
createPayProfileApply
结清付款完成
线上扫码付款完成 → SETTLEMENT_PAYMENT_COMPLETE_QUEUE
AssetSettlementPaymentCompleteListener
更新 AssetSettlementProfileApply 状态
触发后续逻辑
自然/主动结清
ASSET_SETTLE_NATURAL_QUEUE 自然结清
ASSET_SETTLE_ELECTION_QUEUE 主动结清
AssetSettleListener
settleNaturalListener 自然结清处理
settleElectionListener 主动结清处理
创建 AssetSettlement 记录
发 ASSET_SETTLEMENT_COMPENSATION_START_QUEUE
发 ASSET_SETTLE_TO_ALERT_QUEUE 延迟告警
结清代偿发起
ASSET_SETTLEMENT_COMPENSATION_START_QUEUE
AssetSettlementCompensationListener
创建 AssetCompensatoryRecord
发 ASSET_COMPENSATION 系列 MQ
发 ASSET_EMAIL_SEND_QUEUE 邮件
代偿财务回调
ASSET_COMPENSATION_RECEIVE_FINANCE_PAYMENT_SUCCESS_QUEUE
AssetCompensationListener
更新 AssetCompensatoryRecord 状态 SUCCESS
generateCapitalFlows 生成资金流水
落表 asset_account_history COMPENSATION 场景
结清后告警
ASSET_SETTLE_TO_ALERT_QUEUE 延迟
AssetAlertListener.settleToAlert
创建告警记录
落表 asset_alarm_record
结清归档
ASSET_ARCH_CLEAR_QUEUE_NAME
AssetArchListener.archClearListener
同步数据到 saas-archive
落表 archive_settlement
8.5 车辆处置完整生命周期
处置申请
POST /vehicle/record/apply 批量处置申请
DisposalVehicleRecordService.createDisposalVehicle
Idempotent 1s
创建 DisposalVehicleRecord 主表 状态 PENDING
创建入库单 disposal_inout_warehouse_main 状态 DRAFT
落表 disposal_inout_warehouse_detail
批量导入
POST /vehicle/record/batchDisposalAndOutbound
batchDisposalAndOutbound 解析 EasyExcel 逐条调用 apply
定时任务
DisposalVehicleRecordSchedule 自动创建处置申请
审核
POST /vehicle/record/review
updateReview
Idempotent 3s
更新状态 APPROVED/REJECTED
确认
POST /vehicle/record/updateConfirm
updateConfirm
Idempotent 3s
入库
POST /disposalInoutWarehouse/oneStepWarehousing 一步入库
DisposalInWarehouseService
addStorageApplication 新增入库申请或草稿
submitStorageApplication 提交入库
assign 入库单指派
makeOrderSubmit 制单提交
approvalStorageApplication 审批入库单
rejectStorageApplication 审批驳回
confirmStorageApplication 入库确认
更新 disposal_inout_warehouse_main 状态 IN
DisposalInWarehouseSubmitListener
IN_WAREHOUSE_SUCCESS_QUEUE
发入库成功通知
处置中
POST /vehicle/record/downbeat/edit
updateDownbeatEdit
维护维修/整备信息
出库
POST /disposalOutWarehouse/addOutStorageApplication
DisposalOutWarehouseService
addOutStorageApplication 新增出库申请
submitOutStorageApplication 提交出库
makeOrderSubmit 出库制单提交
approvalStorageApplication 审批出库
confirmOutStorageApplication 出库确认
更新 disposal_inout_warehouse_main 状态 OUT
DisposalOutWarehouseSubmitListener
OUT_WAREHOUSE_SUCCESS_QUEUE
发出库成功通知
车鸽重新上拍
PUT /vehicle/record/updateCheGeUpbeat/{vin}
updateCheGeUpbeat
Inner 接口
Idempotent 10s
调用车鸽系统重新上拍接口
更新 auction_progress 拍卖进度
回款确认
PUT /vehicle/record/payment/confirm
updatePaymentConfirmation
更新 DisposalVehicleRecord 回款状态
创建 disposal_returned_record
手动回款录入
POST /vehicle/record/createReturnedRecord
createReturnedRecord
Idempotent 10s
落表 disposal_returned_record
选择回款录入
POST /vehicle/record/choose/returnedRecord
createChooseReturnedRecord
Idempotent 5s
处置兜底 费用登记
POST /vehicle/record/saveSafetyNet
saveSafetyNet
Idempotent 10s
组装 AssetCostRegistDTO
Feign RemoteAssetCostRegistService.createCostRegist
AssetCostRegistFeignController.createCostRegist
落表 asset_cost_regist saas-asset
OA 审批回调
POST /vehicle/record/updateOA/approvalCallback
approvalCallback
更新费用登记审批状态
终止处置
PUT /vehicle/record/updateTermination/{id}
updateTermination
Idempotent 5s
前置条件 当前车辆未出库
状态 TERMINATED
已出库抛异常
处置归档
DISPOSAL_ARCH_QUEUE_NAME
DisposalPushArchListener
同步数据到 saas-archive
分配完成更新关联
ALLOT_COMPLETE_UPDATE_RELATION_QUEUE
DisposalAllotListener
更新 disposal_record_allot_relation
操作日志
VEHICLE_BUSINESS_RECORD_LOGS_QUEUE
DisposalBusinessRecordListener
同步到 disposal_business_record
8.6 减免完整调用链
入口 POST /reduction/add
AssetReductionController.createReduction
AssetReductionServiceImpl.createReduction
创建 AssetReduction 主表
创建 AssetReductionRecord 明细
落表 asset_reduction asset_reduction_record
8.7 代偿完整调用链
触发 3 种来源
来源1 结清时触发 ASSET_SETTLEMENT_COMPENSATION_START_QUEUE
来源2 财务打款成功 ASSET_COMPENSATION_RECEIVE_FINANCE_PAYMENT_SUCCESS_QUEUE
来源3 财务打款失败 ASSET_COMPENSATION_RECEIVE_FINANCE_RETURN_FAIL_QUEUE
来源4 数据同步代偿迁移成功 ASSET_COMPENSATION_RECEIVE_COMPENSATION_SYNC_DATA_SUCCESS_QUEUE
发起代偿
AssetSettlementCompensationListener onMessage
创建 AssetCompensatoryRecord 状态 PENDING
发 ASSET_COMPENSATION 系列 MQ
发 ASSET_EMAIL_SEND_QUEUE 邮件
财务回调处理
AssetCompensationListener onMessage
ASSET_COMPENSATION_RECEIVE_FINANCE_PAYMENT_SUCCESS_QUEUE
更新 AssetCompensatoryRecord 状态 SUCCESS
generateCapitalFlows 生成资金流水
落表 asset_account_history COMPENSATION 场景
ASSET_COMPENSATION_RECEIVE_FINANCE_RETURN_FAIL_QUEUE
更新 AssetCompensatoryRecord 状态 FAIL
落表 asset_compensatory_record 失败原因
ASSET_COMPENSATION_RECEIVE_COMPENSATION_SYNC_DATA_SUCCESS_QUEUE
数据同步代偿迁移成功
ASSET_COMPENSATION_RECEIVE_FINANCE_RETURN_SUCCESS_FAIL_QUEUE
财务打款先成功后失败异常分支
8.8 计息重算完整调用链
触发 MQ 异步
来源 AssetHandleRepaymentListener 发 ASSET_CALCULATION_EXCHANGE
saas-calculate
AssetCalculationListener
ASSET_CALCULATION_QUEUE 正常账户流水计算
ASSET_CALCULATION_LIABILITIES_QUEUE 负债流水计算
ASSET_CALCULATION_DELAY_QUEUE 延迟重算
按业务类型 计算账户流水
回写 asset_account_history 更新字段
落表 asset_repayment_plan asset_account_history
8.9 档案归档完整调用链
触发 MQ 异步
来源1 AssetOrderDataServiceImpl.extractedByPostProcessor 发 ASSET_PUSH_EXCHANGE_NAME
来源2 通用业务 发 ASSET_ARCH_QUEUE_NAME
来源3 结清后 发 ASSET_ARCH_CLEAR_QUEUE_NAME
来源4 归档时 发 ASSET_ARCH_UPDATE_PLAN_QUEUE
saas-asset
AssetArchListener
ASSET_PUSH_EXCHANGE_NAME archListener 通用归档
ASSET_ARCH_QUEUE_NAME archListener 归档
ASSET_ARCH_CLEAR_QUEUE_NAME archClearListener 结清归档
ASSET_ARCH_UPDATE_PLAN_QUEUE archUpdatePlanListener 更新还款计划
同步数据到 saas-archive
saas-disposal
DisposalPushArchListener
DISPOSAL_ARCH_QUEUE_NAME
同步数据到 saas-archive
8.10 预警告警完整调用链
触发 2 种来源
来源1 业务流程触发 extractedByPostProcessor 发 ASSET_ALARM_QUEUE
来源2 结清后告警 ASSET_SETTLE_TO_ALERT_QUEUE 延迟
saas-asset
AssetAlarmConfigRuleListener
ASSET_ALARM_QUEUE
解析预警配置
匹配告警规则
创建预警记录
落表 asset_alarm_record
AssetAlertListener
ASSET_SETTLE_TO_ALERT_QUEUE 延迟
settleToAlert 结清后告警
落表 asset_alarm_record
8.11 每日账单推送完整调用链
触发源 saas-asset 内部定时任务
Feign 调用 saas-alert
POST /push/bill
POST /push/record
POST /push/recordBatch
saas-alert
AssetPushController.push / recordService.push / recordService.pushBatch
AssetAlertServiceImpl.push / RecordService
validateBill billType BILL
落表 asset_bill asset_bill_record
8.12 第三方对接完整调用链
入口 saas-asset AssetExtendController
POST /external/queryPaymentPlan
方法 queryPaymentPlan
Inner 接口
场景 第三方查询贷后还款计划
POST /external/queryOverdueInfo
方法 queryOverdueInfo
场景 第三方查询逾期信息
POST /external/externalPushOverdue
方法 externalPushOverdue
场景 外部推送逾期
动作 发 ASSET_CAPITAL_PUSH_EXCHANGE 或直接处理
九、关键设计模式与约定
9.1 幂等控制
注解 Idempotent
参数 key expireTime delKey info
应用场景 所有 Controller 入口
实现 Redisson 分布式锁
9.2 分布式锁
工具 RedissonClient
应用 MQ 监听器 CapitalListener
锁粒度 alert:source:{loanModel}:process:{type}:type:{subType}:applyNo:{applyNo}
9.3 序号生成
注解 Sequence 来自 saas-common-sequence
实现 RedisSeqBuilder Redisson
应用 业务表主键 ID 生成
9.4 策略模式
注解 StrategyMetadata 四元组 type subType source guaranteeModel
路由 ShardedDataProcessor 按四元组匹配
应用 逾期/扣款/担保/非担保 多策略
9.5 流水线模式
入口 Controller → Service 编排 → MQ 异步 → Listener 批处理
解耦 各步骤独立可监控
9.6 分布式事务
Seata AT 模式
应用 跨表写入关键路径
9.7 业务主键设计
Sequence 雪花算法
前缀 SequenceBizPrefixConstants
业务表主键全局唯一
评论
0 条评论
下一页