Commit Graph
1003 Commits
Author SHA1 Message Date
tengyufan 570d1339f1 fix(SwapTrade2): 到期日期默认值置空并限制不可早于成交/开始日期
- 移除新增交易时到期日期的默认值(原StartDate+14天),改为空白由用户手工填写
- 到期日期选择器增加mindate限制,不可选择早于成交日期和开始日期的日期
- 联动修正:成交日期或开始日期变化时同步刷新到期日期下限
2026-07-01 15:33:15 +08:00
锦麟 王 fc90636ab4 当天利息端待实现逻辑修改为 = 上一天待实现 + 当天产生的利息 - flowEvents的利息 2026-07-01 15:20:24 +08:00
hjhan 47f95fcc45 fix(swap): 互换结清后eod待实现利息正确扣减(SaveEodInterestPosition)
SaveEodInterestPosition(cs:834)原公式:
  InterestIncomeSum = pre + TdInterestIncome - TdCloseInterest
其中 TdInterestIncome = TdCloseInterest(互换日全程利息),
两者抵消导致 InterestIncomeSum=pre不变。
互换结清后待实现没归零,后续平仓默认值偏大。

修复:只改InterestIncomeSum公式为 pre - TdCloseInterest
(前日待实现 - 当日实现 = 剩余待实现)。
TdInterestIncome保持原值不动(入库字段,影响报表)。

验证需重新收盘:修复改的是eod生成逻辑,已有eod不会自动变。
2026-07-01 13:58:24 +08:00
hjhan f7d23dc132 revert: 撤销单利consumedInterest扣除(双重扣减导致1天利息变0)
单利起点InterestProfitSum已含历史累计(eod快照),
再减consumedInterest会双重扣减。复利起点是0(从头算),
减consumedInterest正确。两者计算结构不同不能套用。

正确方向:让InterestProfitSum在互换结清后归零(eod层方案B),
而非在计算时减consumedInterest。待重新设计单利修复方案。

测试还原为红灯(Assert redCount>0),注释更新说明正确方向。
2026-07-01 13:38:24 +08:00
hjhan 83f44124c6 fix(swap): 互换审核通过后到期日状态流转为已到期
ApproveSwapTrade(cs:1558-1571)状态分支只判CloseMethod==全部平仓,
无ExerciseDate到期判断。互换CloseMethod默认0(Unknown)必走else→
TradeStatus退回确认成交→EodCheckMaturityTrade一直阻止收盘。
对比免审核路径SwapIncome(cs:1512)有正确的到期判断。
引入点083848fb(2025-05-28审核流程重构)。

改动(SwapDealService.cs cs:1579后):
在td.Notional=td.TradeAmount之后补到期判断(避免清零被覆盖):
if(eventType==互换 && ExerciseDate<=ValueDate)→已到期+清零Notional

副作用控制:
- 加eventType==互换条件→不影响平仓(eventType=2)审核
- 放cs:1579之后→Notional=0不被td.Notional=td.TradeAmount覆盖
- ExerciseDate<=ValueDate→非到期互换不进分支

验证: Step1坐实28/28互换事件走else分支, Step3验证3条到期互换→已到期
发现平仓部分平仓+到期也有类似问题(GL-20260420-0003),待业务确认处理方式
2026-07-01 13:02:43 +08:00
hjhan 1eb791381a fix(swap): 单利路径扣除历史已结利息consumedInterest
复利路径已由c6adb3bb修复(加consumedInterest扣除),单利路径
CalcDailySimpleInterest未同步。互换结清后再平仓默认值偏大。

改动(SwapDealService.cs 3处):
- cs:437 去掉InterestType==复利条件,单利也取GetConsumedInterest
- cs:707 单利调用传入consumedInterest参数
- cs:802/856 CalcDailySimpleInterest签名加consumedInterest+末尾扣除

验证(Step1_SimpleInterestRedTest): 1813单利样本
34203偏大量8271→0, 34204预付金偏大量58→0(修正测试口径漏乘ratio)
复利回归(1889): 6-30默认值仍6.44无退化
2026-07-01 13:02:15 +08:00
hjhan 3118c44365 互换三个bug的TDD红灯/绿灯测试
单利利息偏大(红灯): Step1_SimpleInterestRedTest 用1813坐实
单利路径(CalcDailySimpleInterest)未加consumedInterest扣除,
默认值偏大8271(历史已结利息未扣)。复利路径c6adb3bb已修。

审核状态卡死(红灯): SwapApproveStatusStuckTest 3个方法
坐实28/28互换事件CloseMethod=0走else分支(无ExerciseDate判断),
当前3笔交易实际卡死(到期+确认成交)。Step2分析副作用:Notional清零
需放cs:1577之后避免被td.Notional=td.TradeAmount覆盖。

重收盘误删(绿灯确认): Step1加修复后逻辑模拟,确认排除manualClientCashIds
后手动互换记录不再被命中(78751f0a已修)。
2026-07-01 12:22:57 +08:00
张名锐 3b610fe47c local配置文件提交 2026-07-01 11:01:33 +08:00
锦麟 王 c6adb3bb8a BugFix 复利计算的没有扣除手动互换长生的利息端费用 2026-07-01 10:34:58 +08:00
hjhan cd03fc53fb 互换两个独立bug分析文档+诊断测试
Bug①利息默认值偏大: 互换结清后eod的InterestProfitSum(待实现)没归零
(=RealizedInterest=77.26), 导致后续平仓默认值=77.26(本该0)+增量→偏大。
6-29收盘后三天对比坐实: 6-30默认83.70, 7-1默认90.14, 均含已实现的77.26。
根因 eod公式cs:829 对互换场景扣减失效(TdInterestIncome≈TdCloseInterest抵消)。

Bug②收益结算审核后状态卡死: ApproveSwapTrade(cs:1525)漏ExerciseDate判断,
到期互换审核后状态退回'确认成交'(CloseMethod默认0≠全部平仓1),
导致EodCheckMaturityTrade一直阻止收盘。引入点083848fb(2025-05-28)。

- 新增利息偏大分析文档(根因/修复方案A扣RealizedInterest/B eod归零)
- 新增审核状态卡死分析文档(根因/修复补ExerciseDate判断)
- 新增SwapPartialUnwindInterestDefaultTest(Step0探查/Step0b诊断/Step0d三天对比)
2026-07-01 09:57:25 +08:00
张名锐 78751f0a57 feat(swap): 完善自动互换资金记录管理功能
- 在SwapEodPositionService中添加clientCashIds列表追踪多笔资金记录
- 为UnwindData类新增ClientCashIds属性存储自动互换生成的资金记录ID集合
- 在SwapTradeBaseService中实现GetAutoSwapClientCashIds方法解析历史数据
- 添加GetLegacyAutoSwapClientCashRecords方法处理遗留资金记录删除逻辑
- 实现IsLegacyAutoSwapClientCashRecord方法精确匹配待删除资金记录
- 优化资金记录删除策略区分自动互换与手动操作产生的记录
2026-07-01 09:53:44 +08:00
lisong 1a9b8af512 Merge remote-tracking branch 'dest/glms/feature/1.4.2' into feature/p132_74-risk-engine 2026-07-01 09:47:07 +08:00
lisong 0a8599c69f Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine 2026-07-01 09:46:11 +08:00
hjhan 6f9aa5fb45 互换重收盘误删手动互换资金记录: 分析文档+TDD红灯测试
问题:重新收盘后用户手动互换产生的资金记录(ClientCashInCashOut,
Action=系统操作-互换)被误删。根因 ClearSwapPositions:400 按 Action
字符串模糊删除,而该 Action 手动/自动共用,表无来源字段区分。
引入点 commit 44e89726(2026-05-14)。

- 新增决策文档(根因/引入时间/三种修复方案/自测方法)
- 新增 SwapReEodDeleteManualCashRecordTest 4个测试(探查/诊断/录制红灯/离线校验)
- 录制 golden 坐实 bug: trade 1903 手动互换资金记录 id=13032 会被误删
2026-07-01 08:35:58 +08:00
尹峰 29ac61e2d5 修改风控规则操作权限 2026-06-30 19:44:20 +08:00
tengyufan b4ff5f9f10 feat(SwapTrade2): 新增交易默认值填充及日期限制放开
- 成交日期默认前一银行间交易日,放开上限
- 开始日期默认当前系统日期(跳过节假日),放开上限,下限绑定成交日期
- 到期日期保留StartDate+14天默认,下限取max(成交日期,开始日期)
- 交易场所默认"柜台市场"修复(created不再覆盖为空)
- 重置频率默认7(利息端/预付金端/浮动端)
- FR007利率准则默认前一营业日(-1)
- 成交日期变更时自动修正开始日期(+1)和到期日期(+14),跳过节假日
- 开始日期变更时自动修正到期日期(+14)
- 提交校验:开始日期≥成交日期,到期日期≥两者
2026-06-30 18:21:07 +08:00
lisong 7ceb875532 Merge remote-tracking branch 'dest/glms/feature/1.4.2' into feature/p132_74-risk-engine 2026-06-30 17:06:30 +08:00
lisong 19dbf94825 Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine 2026-06-30 17:05:34 +08:00
尹峰 f53ef95222 修改风控规则操作权限 2026-06-30 16:56:14 +08:00
尹峰 5caad4d0ff 修改URL地址 2026-06-30 15:05:34 +08:00
张名锐 adb5473732 Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2 2026-06-30 11:23:21 +08:00
lisong e7fa48d82e Merge remote-tracking branch 'dest/glms/feature/1.4.2' into feature/p132_74-risk-engine 2026-06-30 09:59:31 +08:00
尹峰 10b08f8f21 优化字段类型 2026-06-29 18:34:46 +08:00
尹峰 94da9748a2 Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine 2026-06-29 18:10:13 +08:00
尹峰 d7c09c793a fix(risk-engine): 修复多个风控引擎问题
- ScopeIsGlobal 类型由 bool 改为 int 以兼容前端传输 0/1
- 修复 QueryApplicationList 中 Status 投影 EF Core enum 转换失败
- 新增 Scope 字段查询支持(逗号分隔集合精确匹配)
- 新增变量列表 DataType 筛选
- 修复审计日志日期查询范围(EndDate 纳入整天数据)
- 统一 Application 审计日志 OperationType 前缀(APP_xxx)
- 审计日志 OperationDetail 枚举值映射为中文
2026-06-29 18:09:19 +08:00
ruisu cc18bdafda Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine 2026-06-29 17:30:14 +08:00
ruisu 9777698a9a feat:修改互换交易样式以支持展示新风控内容,将rule与application加载前移到系统启动时 2026-06-29 17:29:36 +08:00
张名锐 1f584302e6 Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2 2026-06-29 16:51:50 +08:00
锦麟 王 cf2f8b6e9f SwapCloseAmount分红重复计算 2026-06-29 16:39:02 +08:00
锦麟 王 1c45a54395 BugFix SwapCloseAmount计算位置太前,导致资金算了两遍 2026-06-29 16:38:34 +08:00
张名锐 c76c3aa218 fix(trade): 修复合同编号生成和追保区间计算逻辑
- 在合同编号前缀中添加FICC标识符
- 修复银行账户信息中支付系统号字段的赋值逻辑
- 修正追保区间计算公式,使用正确的差值参数替代维持保证金百分比
- 更新追保区间上下限的计算逻辑以确保正确的风险控制范围
2026-06-29 16:26:17 +08:00
锦麟 王 1e4ab52c1e 平仓总额计算规则调整 2026-06-29 15:54:07 +08:00
锦麟 王 3c5f25a5a0 BugFix FloatPnlSum展示的位数问题 2026-06-29 15:18:46 +08:00
锦麟 王 375ad46b6d BugFix 平仓互换页面展示的盈亏不对 2026-06-29 15:02:37 +08:00
尹峰 56890f348d Merge branch 'glms/feature/1.4.2' of https://gitee.glmszq.com/gsty/onederiv/trs into glms/feature/1.4.2 2026-06-26 17:19:15 +08:00
锦麟 王 87671fcece BugFix 平仓互换平仓,导致页面的分红不对 2026-06-26 17:17:55 +08:00
尹峰 04c01f2f47 Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine 2026-06-26 17:15:29 +08:00
尹峰 e8ef5be862 优化调整规则管理 2026-06-26 17:14:53 +08:00
ruisu 0c2a4b3afb feat:打通前后端链路。老风控新风控映射:禁止=》Error,需审批=》RiskWarning(新状态,需二次确认,并记录日志),提示、通过=》Success(提示增加TIpMessage) 2026-06-26 17:01:21 +08:00
锦麟 王 d9fc5965d3 BugFix 系统中MarkCloseValue歧义部分修改 2026-06-26 16:06:13 +08:00
嬴政 时 cdfb38862a 确认书模板增加营业厅"内"描述 2026-06-26 16:05:19 +08:00
zheng.zhang 2e21d799dc refactor(tradeEdit): use统一格式化方法处理名义金额 2026-06-26 16:05:04 +08:00
zheng.zhang c76976e141 feat(swaptrade): 新增名义本金数值的四舍五入格式化处理 2026-06-26 16:04:59 +08:00
锦麟 王 652c0cedd8 Merge branch 'glms/feature/1.4.2' of http://git.yiliantech.com/gitlab/otc-dev/zszq-trs into glms/feature/1.4.2 2026-06-26 14:13:01 +08:00
锦麟 王 33fd6f8d41 BugFix 收益互换调整分红方向 2026-06-26 14:12:54 +08:00
hjhan 5a731c4442 docs(swap): MarkClosePnl字段语义统一决策文档
修复ab70531f让MarkClosePnl不再含分红后,梳理出消费端3处PosiPnl公式
不一致(①不减分红/②③减分红,2024~2026分批引入),其中②③对新数据
会多减一份分红导致结算单/收益偏小。

给出3种改法权衡(修正公式/数据迁移/TotalClosePnl分离)+建议分阶段路径,
列出4个需团队决策的问题。含字段引用全景表便于实施定位。
2026-06-26 13:41:32 +08:00
锦麟 王 54e8c5cfca BugFix 错误函数 2026-06-26 11:12:32 +08:00
锦麟 王 e484b35415 consumedDividend保持和totalInterest同向 2026-06-26 11:10:53 +08:00
锦麟 王 ab70531f17 MarkClosePnl 不要重复计算分红 2026-06-26 11:03:22 +08:00
hjhan ee1e8487d7 docs(swap): 排查SQL新增第2.5步-分红重复计算完整证明
4段查询还原证据链(含事件/价格/费用/付息明细):
段1事件拆解 MarkClosePnl=价差+费+分红;段2 EOD逐日盯市vs分红列;
段3累计对照;段4一句话结论。已连库实测:1875重复302400、1891重复-18.66。

修正段1列名: PosiNetPrice/PosiGrossPrice 在swap_flow_event是[NotMapped]
不入库,改用 TradingAmountNetAvg/TradingAmountNetFeeAvg。
2026-06-26 09:55:19 +08:00