Commit Graph
182 Commits
Author SHA1 Message Date
hjhan b548709371 Revert "fix(swap): 互换审核通过后到期日状态流转为已到期"
This reverts commit 83f44124c6.
2026-07-01 17:07:55 +08:00
hjhan 3e5a939689 refactor(swap): 阶段1a DealInterests利息归档方法可见性放开(testable迁移准备)
将5个利息腿归档相关方法从private改为protected,不改变生产行为:
- DealInterests(利息腿归档主调度)
- SaveEodInterestPosition(手动互换分支)
- SaveAutoEodInterestPosition(自动互换分支)
- SaveAutoEodWithCloseInterestPosition(平仓分支)
- SaveEodInterestPositionCopy(普通计息分支)

这是testable迁移第一步:先放开可见性让测试子类能调用,
后续阶段再加虚方法接缝(替换DB调用)和迁移合成测试。

参考: refactor-swap-event-testable分支 Seams模式改造
2026-07-01 16:47:26 +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
锦麟 王 c6adb3bb8a BugFix 复利计算的没有扣除手动互换长生的利息端费用 2026-07-01 10:34:58 +08:00
张名锐 78751f0a57 feat(swap): 完善自动互换资金记录管理功能
- 在SwapEodPositionService中添加clientCashIds列表追踪多笔资金记录
- 为UnwindData类新增ClientCashIds属性存储自动互换生成的资金记录ID集合
- 在SwapTradeBaseService中实现GetAutoSwapClientCashIds方法解析历史数据
- 添加GetLegacyAutoSwapClientCashRecords方法处理遗留资金记录删除逻辑
- 实现IsLegacyAutoSwapClientCashRecord方法精确匹配待删除资金记录
- 优化资金记录删除策略区分自动互换与手动操作产生的记录
2026-07-01 09:53:44 +08:00
锦麟 王 cf2f8b6e9f SwapCloseAmount分红重复计算 2026-06-29 16:39:02 +08:00
锦麟 王 1c45a54395 BugFix SwapCloseAmount计算位置太前,导致资金算了两遍 2026-06-29 16:38:34 +08:00
锦麟 王 1e4ab52c1e 平仓总额计算规则调整 2026-06-29 15:54:07 +08:00
锦麟 王 d9fc5965d3 BugFix 系统中MarkCloseValue歧义部分修改 2026-06-26 16:06:13 +08:00
锦麟 王 ab70531f17 MarkClosePnl 不要重复计算分红 2026-06-26 11:03:22 +08:00
锦麟 王 dd305444dd 自动分红的不要清除掉当日分红 2026-06-26 09:49:34 +08:00
锦麟 王 09f256d3c3 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-25 20:35:01 +08:00
锦麟 王 1c9b28ff0d 互换审核时对持仓sotckeqvnotional不要调整 2026-06-25 20:34:53 +08:00
tengyufan ff69c9b6e2 Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2 2026-06-25 20:00:25 +08:00
tengyufan 7f6bdde521 fix: DV01汇总及合计功能,优化格式化配置
1. YLErpDAL/Modules/RiskModule/QuotaMonitorService.cs
   - 日终版本(QueryEodGlobalFromCalc)恢复互换行DV限额取值

2. YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs
   - SaveEodSwap / UpdateEodSwap 补充 eod_Swap.dv01 汇总
   - SearchEodSwapList 新增DV合计,返回至前端footer

3. YLErpWeb/wwwroot/Scripts/app/swaptrade/EodPositionRisks.js
   - 框架合约tab启用footerrow,展示DV合计
   - 框架合约DV列formatter改为4位小数
2026-06-25 20:00:18 +08:00
锦麟 王 6662ae7e7e 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-25 19:44:10 +08:00
锦麟 王 2140a97f53 BugFix 到期分红的,已实现和互动的修改 2026-06-25 19:44:00 +08:00
hjhan 0ab6091962 修复分红型自动互换在互换Tab显示期初/期末价未×100及期初净价为0
DealDividends生成分红型自动互换事件时,漏赋了UnderlyingInstrumentType和
TradingAmountNetAvg两个字段,导致互换Tab(TradeView)显示异常:

1. UnderlyingInstrumentType缺失:TradeView第654行IsBond判断为false,
   multiplier=1,走了非债券分支(不×100),使期初/期末价显示为相对价(1.00)
   而非百分比(100%)。补赋eodPosi.UnderlyingInstrumentType后,
   与手动互换一致走债券分支(×100)。

2. TradingAmountNetAvg缺失:TradeView第993行显示期初净价取该字段,
   缺失导致显示0。补赋eodPosi.PosiNetNoFeePrice修复。

入库的TradingAmountAvg(相对价)本来就正确,仅显示层判断缺字段。
仅改动DealDividends,不影响平仓/手动互换/显示层逻辑。
2026-06-25 18:09:50 +08:00
锦麟 王 90b6692222 #EQD-6290 日终持仓风险-互换持仓价值和已实现盈亏不正确 ; 未实现的分红到期时未去掉 2026-06-25 17:55:41 +08:00
锦麟 王 25626b845e PosiDividendSum 扣除互换分红的时候方向有问题 2026-06-25 15:38:48 +08:00
hjhan 276c1c2961 修复互换收益结算期末价不可编辑及刷新图标缺失
ab09cbc9为支持自动互换期间付息,误将期末标的价格改为纯文本不可编辑,
并删除了changeUnderlyingPrice/refreshUnderlyingPrice方法。开发误解了需求:
自动互换默认填上次互换价是后端逻辑,手动互换时期末价应可编辑+刷新(与平仓页一致)。

对齐平仓页(SwapUnwind)恢复:
- incomeSwapTrade.js: 恢复changeUnderlyingPrice、refreshUnderlyingPrice方法
- SwapIncome.cshtml: 期末价列恢复vue-number-input输入框+刷新图标
- SwapDealService.cs/InitIncome: 补充注释说明TradingAmountNetAvg字段
  虽名为期末语义但此处装入期初净价,避免后续混淆
2026-06-25 14:41:55 +08:00
锦麟 王 6d17e95197 收盘 分红计算逻辑中算上手动的已实现的分红 2026-06-25 14:33:01 +08:00
锦麟 王 1aba5cca00 后端自动分红后,互换持仓价值 已实现盈亏修改 2026-06-25 09:41:16 +08:00
吴方海 f9424d0a6d 分红与互换分开 2026-06-23 19:16:03 +08:00
吴方海 76913010b2 修复自动互换 2026-06-23 17:39:37 +08:00
吴方海 45173c50c6 分红保留2位小数 2026-06-23 11:02:19 +08:00
吴方海 3520f24253 #EQD-5994 国联民生-【风险管理】TRS合约DV计算统计 2026-06-23 10:48:51 +08:00
吴方海 ab09cbc9ca #EQD-6196 国联民生-收益互换期间付息支持自动支付 2026-06-18 10:33:04 +08:00
张名锐 a4237cc178 fix(swap): 修复收益互换结构类型查询逻辑
- 移除了前端传入的结构类型参数限制
- 添加了对普通债券类收益互换和普通收益互换的固定查询条件
- 实现了临时方案以同时查询两种类型的收益互换数据
- 保留了原有的有效状态验证逻辑
- 注释说明了当前实现为临时解决方案
2026-06-10 14:13:39 +08:00
吴方海 a6e6980f9b 成交簿记 fr007过滤条件 2026-06-08 18:11:50 +08:00
吴方海 535497c68a 收到平仓或互换利息修复 2026-06-04 13:23:31 +08:00
吴方海 19f8d9a8de 修复当日多次部分平仓场景 2026-06-02 14:25:30 +08:00
吴方海 3c895a2bd7 代码优化 2026-06-02 14:17:00 +08:00
吴方海 0fe5e9744d 盘中单复利计算分开,复利不取上一次收盘,直接从新算 2026-06-02 11:25:59 +08:00
吴方海 30b6c6a429 #EQD-6089 国联民生-利息多算一天:修复部分平仓利息计算错误问题 2026-06-01 17:00:44 +08:00
吴方海 4e53f822ab 盘中部分平仓逻辑挪到内部 2026-05-29 14:39:44 +08:00
吴方海 53c89f1e26 当日多次平仓修复 2026-05-29 14:00:23 +08:00
吴方海 8aaccf7fc2 修复收盘当天有部分平仓情况利息不对 2026-05-29 13:34:45 +08:00
吴方海 3e650b8f38 期初标的价格(债券的)希望是小数点9位问题 2026-05-28 15:16:32 +08:00
吴方海 50d0fdacbc #EQD-6089 国联民生-利息多算一天:未收盘,直接平仓修复 2026-05-28 14:07:20 +08:00
吴方海 3d06e59908 盘中平仓利息修复 2026-05-27 18:24:05 +08:00
吴方海 e3b11e7f5b #EQD-5914 国联民生-债券ETF为标的的TRS业务支持 2026-05-19 13:45:18 +08:00
吴方海 167dea4e2d 收盘互换计息基数记录修复 2026-05-15 10:05:48 +08:00
吴方海 4c570c512e 收盘利息修复 2026-05-14 16:25:23 +08:00
吴方海 44e8972626 收盘自动互换,需要将当前计息基数给回到持仓名义本金或固定值 2026-05-14 16:15:38 +08:00
吴方海 01953f599b #EQD-5888 国联民生-预付金返息计算错误 2026-05-13 16:57:35 +08:00