张名锐
|
b0cdf0bcbc
|
style(SwapModule): 格式化代码
- 在 SwapDealService.cs 中标准化了多行参数的缩进和换行
- 修复了 SwapTradeBaseService.cs 中的条件运算符周围的空格
- 统一了方法调用中参数的排列格式
- 改进了代码的可读性和一致性
- 遵循了团队的代码风格规范
|
2026-08-11 12:33:34 +08:00 |
|
张名锐
|
2e75e62bbc
|
feat(exception): 优化异常中间件的日志记录功能
- 添加了对 Swap Trade 编辑请求的特殊处理逻辑
- 实现了针对掉期交易的诊断功能,包括 JSON 解析和验证
- 添加了专门用于检测无效利率的诊断方法
- 优化了异常日志的输出格式和内容
- 集成了缓冲区管理和流位置重置功能
- 增强了错误信息的详细程度和可读性
|
2026-08-10 17:21:46 +08:00 |
|
张名锐
|
81cb095a64
|
fix(bond): 修复债券计算中的价格倍数应用问题
- 在BondCalcHelper调用中添加了bondShowPriceMultiple倍数转换
- 确保deal_full_price_avg在传递给债券计算器之前进行正确的价格倍数调整
- 保持原有的空值检查逻辑以确保计算安全性
|
2026-08-10 10:32:41 +08:00 |
|
张名锐
|
7411b9d23d
|
fix(swap-trade): 初始化续作交易时设置默认值
- 为续作交易添加 IsGroup 和 IsApproval 默认值
- 为 swap 详情添加 OriginalTradeId 默认值
- 确保续作交易的基础字段正确初始化
|
2026-08-10 09:24:37 +08:00 |
|
张名锐
|
2ee38384ac
|
fix(swap): 修复预付金腿计息基数计算问题
- 在多个单元测试文件中添加InterestIncomeSum字段以保持数据一致性
- 修改GLMS20260105PartialCloseDividendBugTest测试,改进EOD快照验证逻辑
- 修复SwapDealService中预付金腿的orginPv计算逻辑,使用上一日保证金本金作为基准
- 更新SwapPositionComposeScenarioTest中的测试数据结构和利率设置
- 修正平仓日利息计算精度问题,使用Math.Round确保计算准确性
|
2026-08-09 22:28:40 +08:00 |
|
张名锐
|
2c4cd56111
|
feat(swap): 添加收益互换利息计算功能及Excel场景测试
- 新增ExecuteSaveEodInterestPositionCopy方法用于保存日终利息持仓副本
- 添加ExcelScenario4Case类和相关测试数据用于验证利息计算准确性
- 实现DI_EXCEL_SCENARIO4_PartialCloseAndFinalCloseMatchBlAndBn测试方法
- 优化SwapDealService中的利息计算逻辑和平仓处理
- 添加详细的注释说明利息计算的核心业务规则
- 完善SwapEodPositionService中的日终持仓处理逻辑
- 修复部分平仓和最终平仓时的利息金额计算问题
|
2026-08-09 22:07:19 +08:00 |
|
张名锐
|
48e8447925
|
fix(swap): 修复复利重置日部分平仓后本金计算逻辑
- 修复复利重置日部分平仓后当日利息计算,使用已结转待实现利息的剩余复利本金
- 修复算尾部分平仓后EOD保留剩余复利本金的逻辑,按计息模式返回口径处理
- 修复模式2和模式9在部分平仓时的本金计算差异,避免重复比例调整
- 修复不算尾情况下重置日后已并入本金的待实现利息遗漏问题
- 新增对话案例回归测试验证部分平仓后最终全平场景的正确性
- 添加多种计息模式和交易类型的回归测试用例
|
2026-08-09 16:06:09 +08:00 |
|
张名锐
|
421662a07c
|
fix(swaptrade): 清空续作持仓的浮动利率字段
- 在续作处理中添加了对 FloatRate 字段的清零操作
- 确保续作持仓的累计字段被正确重置
- 避免历史浮动利率数据影响新的交易计算
|
2026-08-09 14:10:08 +08:00 |
|
张名锐
|
7528670e8b
|
fix(swap): 修复部分平仓后算尾利息计算问题(算头算尾T+0合约单利)
- 将测试方法改为数据驱动测试以覆盖不同利息模式
- 在测试中添加对不同利息模式的验证逻辑
- 修复平仓后EOD本金只携带剩余持仓的计算逻辑
- 添加对算尾部分平仓后EOD本金的断言验证
- 优化单利算尾当日按平仓前全额计提的处理逻辑
|
2026-08-09 13:42:59 +08:00 |
|
张名锐
|
691054c57e
|
fix(swap): 修复部分平仓后跨日复利本金计算逻辑(算头算尾T+1复利合约)
- 修复了5/11 EOD跨日复利本金应保留剩余70%动态本金的计算
- 调整了calcLast=true时已平部分动态本金的处理逻辑
- 修正了部分平仓后剩余仓位跨日携带的本金缩放算法
- 添加了针对不同计算路径的本金比例调整机制
|
2026-08-08 18:09:31 +08:00 |
|
张名锐
|
d3afa6d27c
|
fix(swap): 修复部分平仓后复利本金计算逻辑(修复T+1)
- 修复部分平仓后下一日复利本金未按剩余比例继承的问题
- 添加对最终日不算尾时历史差分重放的日期边界控制
- 修复算头不算尾快速路径中已平部分进入下一日复利的错误
- 确保重置日动态本金不会被二次缩放导致剩余本金计算错误
- 添加单元测试验证部分平仓后复利本金按剩余70%本金计提的逻辑
- 补充最终全平重放时历史终点包含当日利息后再做差额的测试用例
|
2026-08-08 17:10:29 +08:00 |
|
张名锐
|
aa5a5ed879
|
fix(swap): 修复复利计算中部分平仓场景下的利息处理逻辑(算头不算尾期初复利)
- 修改单元测试为数据驱动测试,支持多种利息模式验证
- 更新复利计算注释,明确最终日重放时的calcLast规则
- 扩展复利计算条件判断,支持合约名义本金规模和标的期初全价两种模式
- 优化部分平仓日终复利计算逻辑,确保未平仓本金贡献正确保留
|
2026-08-08 16:32:50 +08:00 |
|
张名锐
|
54a86fccc1
|
fix(swap): 修复部分平仓后复利计算问题(算头不算尾合约复利)
- 当calcLast为false时,部分平仓日终新增复利使用剩余本金计算
- 修复最终全平仓时历史终点利息计算逻辑
- 添加测试用例验证部分平仓后复利计算准确性
- 修正日终待实现利息累加时的历史终点处理方式
- 调整复利部分平仓金额计算方式,确保未平仓部分正确参与后续计算
|
2026-08-08 16:11:53 +08:00 |
|
张名锐
|
6fdc7d80b2
|
fix(swap): 修复复利计算和部分平仓处理中的多个问题(算头算尾合约复利平仓)
- 修复合约名义本金规模模式下部分平仓时名义本金计算错误
- 修复最终全平时复利利息计算中历史平仓尾差处理问题
- 修复复利重置日处理中利息重复注入历史本金的错误
- 修复部分平仓后日终待实现利息计算中本金比例应用问题
- 修复全平且实际金额覆盖应结利息后待实现利息清零逻辑
- 新增复合复利交换服务用于单元测试验证
- 添加多个测试用例覆盖复利计算边界场景
|
2026-08-08 15:51:29 +08:00 |
|
张名锐
|
c379e31b4d
|
test:日志
|
2026-08-07 23:20:23 +08:00 |
|
张名锐
|
253a89b799
|
test(swap): 添加消费利息场景测试用例并修复重置日利息计算逻辑
- 添加CI_010_EodResetWithoutCloseCarriesFullPendingInterest测试方法
- 验证无平仓重置日必须完整并入上一期累计待实现利息的场景
- 修复CalcDailyCompoundInterestByEod方法中剩余百分比计算逻辑
- 使用posiPrincipal替代preEodPosition.TdInterestPrincipal进行计算
- 确保重置日期计算中本金比例的准确性
|
2026-08-07 23:00:28 +08:00 |
|
张名锐
|
e819ad02c5
|
fix(swap): 修复复利计算中的利息处理逻辑
- 添加了从开始日期到结束日期的天数计算
- 添加了从前一日末到结束日期的天数计算
- 修复了特定条件下利息本金和浮动利率的赋值
- 修正了利息金额和累计利息金额的计算
- 添加了四舍五入处理以确保精度准确性
- 修复了利息平仓损益的计算逻辑
|
2026-08-07 22:13:58 +08:00 |
|
张名锐
|
569002e551
|
fix(swap): 修复重置日期利息计算逻辑
- 修正了 calcLast=false 时重置日取价被跳过的问题
- 确保重置日之前的复利能够正确并入本金
- 调整了计息日判断逻辑的位置以保证本金重置正常执行
- 修复了重置日当天利息不应被计入的逻辑错误
|
2026-08-07 21:54:04 +08:00 |
|
张名锐
|
19d8b2a926
|
Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2
|
2026-08-07 20:52:13 +08:00 |
|
张名锐
|
5539bd9c9a
|
```
fix(swap): 修复复利模式下部分平仓后EOD本金计算问题
- 在复利模式部分平仓场景中确保使用计算得出的复利本金
- 添加了针对复利重置日期部分平仓的单元测试验证
- 修复了EOD本金重置逻辑,避免复利计算被错误覆盖
- 确保CloseInterestPosition执行后保留正确的复利本金值
```
|
2026-08-07 20:51:56 +08:00 |
|
hjhan
|
66a97e03ef
|
fix(swap): 复利重置日=平仓日时 calcLast 不再跳过 FR007 取价
根因(GLMS-JIATT-20260805):InterestCalcMode='10'(算头不算尾,calcLast=false)时,
CalcDailyCompoundInterest 循环的 'if(!calcLast && accrueDate==endDate) continue'
会跳过平仓日。若平仓日恰好是重置日(i%period==0),取价代码块被一并跳过,
导致 flowEvent.FloatRate 落库为旧周期利率,传染后续 EOD 复利计算。
修复:把重置日的 FR007 取价提前到 calcFirst/calcLast 跳过判断之前——
calcLast 只应跳过'计息',不应跳过'重置日利率取价'。同时循环外用最终
floatRate 兜底赋值 flowEvent.FloatRate,确保落库值反映最后重置日的利率。
验证:
- CI_007 合成测试(平仓日=重置日):修复前 FloatRate=旧值(FAIL),修复后=新值(PASS)
- 连库验证(GLMS-JIATT-20260805 8/4平仓):FloatRate 0.0123→0.0213(8/3新值)
- 利息金额不变(calcLast 不计当天利息,Amount 不受影响,只修正 FloatRate 字段)
- 全套 swap 测试无新增回归(334通过,2失败均为pre-existing单利/EOD路径)
附:CI_007 复现测试 + GLMS20260805 FR007/EOD 诊断工具 + 文档 longRatio 状态更新
|
2026-08-07 20:43:16 +08:00 |
|
张名锐
|
3178cf3f0f
|
Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2
|
2026-08-07 19:44:28 +08:00 |
|
张名锐
|
fb5a5d0ab4
|
fix(swap): 修复FR007数据添加时的标的验证和关联逻辑
- 添加对FR007标的存在的验证检查
- 移除冗余的新增数据查询逻辑
- 直接使用查找到的标的ID进行关联
- 集成EodPriceService中的标的ID解析逻辑
- 统一数据源设置为人工来源
|
2026-08-07 19:44:01 +08:00 |
|
hjhan
|
75b033dd7b
|
test(swap): 添加 GLMS-JIATT-20260805 复利部分平仓利息诊断测试
连 96 测试库的诊断工具,用于定位'100%平仓 vs 部分平仓利息差异异常'。
对同一笔交易分别调 GetUnwindInterests(100%) 和 (40%),逐腿打印本金/利息并对比,
输出比值以判断是否线性。复现并确认了 consumedInterest 未按 closePercent 缩放的根因
(已由 a0be0eb0 修复,本测试作回归诊断保留)。
模式同 GLMS20260701DbDiagnoseTest:TestCategory(DbDiagnose),连不上库自动 Inconclusive。
|
2026-08-07 19:00:31 +08:00 |
|
tengyufan
|
ad82cbb4cb
|
字体修复楷体
|
2026-08-07 18:56:54 +08:00 |
|
张名锐
|
a0be0eb003
|
fix(swap): 修复复利平仓时已结利息扣除计算问题
- 修改 CalcCompoundUnwind 方法添加 closePercent 参数用于部分平仓场景
- 更新复利平仓逻辑,将已结利息按平仓比例进行缩放扣除
- 添加部分平仓测试用例验证已结利息按比例扣除的正确性
- 修复了全部已结利息在部分平仓时被全额扣除的问题
|
2026-08-07 18:36:32 +08:00 |
|
张名锐
|
6b301e1ac5
|
Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2
|
2026-08-07 17:57:31 +08:00 |
|
张名锐
|
486f02dcd9
|
feat(swaptrade): 添加数量显示尾随零去除功能
- 在 swapPricePrecisionHelper 中实现 trimTailZeros 选项支持
- 修改 formatCommon 函数以支持尾随零去除逻辑
- 在 swapTradeView 中为数量类型添加 trimTailZeros 配置
- 添加测试用例验证数量显示的尾随零去除功能
- 确保配置精度在尾随零去除后保持不变
|
2026-08-07 17:57:16 +08:00 |
|
hjhan
|
52b665cd39
|
fix(otcformat): /front/otcformat 改为 NoStore,修复保存配置后缓存不生效
FrontController.OtcFormat 原使用 ResponseCache(Duration=600, Location=Any),
导致在 Admin 配置页保存 OtcFormat 后,前端最长 600s 内仍返回旧内容,
表现为'改了配置前端不起效果',需手工加 ?v= 才能破缓存。
改为 NoStore 后保存即对所有用户立即生效。
同时在 FrontController 类注释补充完整排查文档:
- 三个同名 otcformat.js 文件的角色与路径
- DB AppConfig 真相源(PGroup=ProjectConfig, PName=OtcFormatConfig)
- 写入/读取/启动三条数据流
- '前端不起效果'的 4 步排查顺序
- 多节点落盘只写当前节点的坑
OtcConfigController.AjaxSaveOtcFormat 补充多节点陷阱说明并指向 FrontController 文档。
|
2026-08-07 17:53:48 +08:00 |
|
张名锐
|
d78d1f48e7
|
fix(swap): 修复互换价格变动时盈亏计算错误
- 在后端计算逻辑中添加 longRatio 参数用于区分多空头寸类型
- 修改前端 JavaScript 代码中的盈亏计算公式,加入 longRatio 参与计算
- 更新单元测试,增加空头头寸价格上涨时亏损的测试用例
- 补充前端测试用例验证空头头寸计算逻辑的准确性
- 修复了空头头寸在价格上涨时显示盈利而非亏损的计算错误
|
2026-08-07 17:44:04 +08:00 |
|
张名锐
|
0672dbbcca
|
config(swappriceprecision): 调整价格精度配置中的整数位数设置
- 修改了通用数量配置的整数位数从16位减少到8位
- 更新了股票相关类型的数量整数位数从12位调整为8位
- 调整了债券类别的数量整数位数从16位减少到12位
- 更新了期货、现货等金融产品的数量整数位数配置
- 统一了各类金融产品精度配置的整数位数参数
|
2026-08-07 17:20:45 +08:00 |
|
张名锐
|
9ea2beeb96
|
Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2
|
2026-08-07 17:05:42 +08:00 |
|
张名锐
|
f52be616db
|
style(unwindSwapTrade): 调整输入框宽度样式
- 将 swap-delivery-price-input-unwind 的宽度从 160px 调整为 140px
- 将 swap-delivery-price-input-income 的宽度从 160px 调整为 140px
|
2026-08-07 17:05:31 +08:00 |
|
tengyufan
|
b1d2ad0756
|
fix: EQD-6718 收益互换浮动端多空方向兼容历史支付数据
- 配置开启时,查看交易、审批查看、交易平仓、收益结算和平仓详情按浮动收支方向与原多空方向组合展示多空方向
- 兼容历史支付数据:支付多头展示为空头,支付空头展示为多头,收取方向保持原多空展示
- 新增浮动端方向组合及相关页面覆盖专项测试
|
2026-08-07 16:46:37 +08:00 |
|
张名锐
|
5182ef2532
|
style(swap): 为收益互换和解约页面的价格输入组件添加样式类
- 为SwapIncome页面的vue-swap-price-input组件添加swap-delivery-price-input-income类
- 为SwapUnwind页面的vue-swap-price-input组件添加swap-delivery-price-input-unwind类
- 在unwindSwapTrade.css中为新添加的类设置统一宽度样式
- 移除内联样式style="width:107px"改为CSS类控制宽度
- 统一价格输入框宽度为160px提升界面一致性
|
2026-08-07 16:27:04 +08:00 |
|
张名锐
|
451026b981
|
Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2
|
2026-08-07 16:19:42 +08:00 |
|
张名锐
|
3053a9e3d7
|
fix(swap): 修复掉期交易中多空转换逻辑
- 注释掉了浮动盈亏支付相关的多空头寸反转代码
- 在持仓更新逻辑中添加了当PosiDirection为2时的PositionType反转处理
- 修改ReverseLongShort方法参数类型从string改为int并调整返回值逻辑
- 将多空头判断条件从字符串比较改为数值比较以提高性能
|
2026-08-07 16:19:29 +08:00 |
|
hjhan
|
acc37bdb99
|
test(swap): 补算尾/不算尾部分平仓的 InterestIncomeSum 递推断言
DI_MANUAL_PARTIAL_CLOSE_CalcLast/NoCalcLast 原仅断言 TdInterestIncome(当日新计利息
按全额/剩余本金计提),未钉死该差异是否传导到待实现利息总额 InterestIncomeSum。
补一条递推断言:InterestIncomeSum = 前日待实现 + 当日新计 - 当日实现,
锁定"算尾 → 被平仓部分多1天利息 → 进入待实现总额"完整链条,不算尾同理对照。
纯测试改动,生产代码无改动,双绿通过。
|
2026-08-07 15:43:11 +08:00 |
|
张名锐
|
825482c80c
|
style(SwapTrade2Controller): 格式化注释代码块
- 将多行注释从块注释格式转换为单行注释格式
- 移除不必要的星号前缀保持代码整洁
- 维持原有的业务逻辑说明内容不变
|
2026-08-07 15:32:26 +08:00 |
|
张名锐
|
f658aed3ab
|
Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2
|
2026-08-07 15:31:53 +08:00 |
|
张名锐
|
7b3c6b06c3
|
```
fix(swap-trade): 修复续作交易中支付浮动端方向反转逻辑
- 在续作交易创建过程中添加支付浮动端反向逻辑
- 当 IsPayFloatingProfit 为 true 时反转 PayLongShort 方向
- 实现 ReverseLongShort 方法用于多空头寸转换
- 确保收取端保持原有方向不变
- 添加对支付多头转空头、支付空头转多头的正确处理
```
|
2026-08-07 15:31:42 +08:00 |
|
hjhan
|
7e2042510f
|
docs(swap): 记录 income 页当前行为与待确认项
- 第七章开头加状态说明:'income 漏 longRatio 即错' 标注为待业务背书的
Working Hypothesis,非最终定性。
- 新增第八章'当前行为实录与待确认项':
* 8.1 income(收益结算按钮)页 MarkClosePnl 当前公式实录(无 longRatio,代码实证)
* 8.2 swap_position.PosiGrossPrice 恒为期初价 P0、结算/平仓后不滚动(代码实证)
* 8.3 已确认事实 vs 待确认假设 对照表
* 8.4 待业务/量化确认的 4 个问题清单
* 8.5 两条验证 SQL(空头结息事件 / 同持仓多次结算)
* 8.6 多轮回归未暴露原因(覆盖空洞+校验同源+数据隐形+多头恒等)
- 本次仅记录现状与待确认项,不改代码、不加测试;longRatio 不一致与
基准不滚动的真实生产影响仍为待证(需跑 8.5 SQL 定性)。
|
2026-08-07 15:26:54 +08:00 |
|
张名锐
|
6d6729cf9c
|
test(swap): 添加部分平仓利息计算测试用例
- 添加算尾部分平仓当日新计利息包含已平仓部分的测试
- 添加不算尾部分平仓当日新计利息只包含剩余持仓部分的测试
- 验证部分平仓待实现收益计算的正确性
|
2026-08-07 15:05:04 +08:00 |
|
张名锐
|
3a435ad89b
|
fix(swap): 修复平仓事件中事件日期=平仓日期的处理逻辑
- 将平仓条件判断从 UnwindDate 改为 EventDate
- 移除不再使用的 priorClosePositionIds 变量
- 统一使用 NormalizeEventUnwindDate 替代 NormalizeIncomeUnwindDate
- 在多个平仓方法中添加 NormalizeEventUnwindDate 调用
- 更新流程事件的 EventDate 和 UnwindDate 字段
- 修改单元测试以验证按 EventDate 分桶的逻辑
- 在前端控制器中将 unwindDate 设置为 valueDate
- 添加 maxdate 属性到平仓日期选择器
- 实现事件日期与平仓日期的双向同步功能
- 更新利息列表获取接口使用统一日期参数
|
2026-08-07 13:46:24 +08:00 |
|
hjhan
|
b3ce94b67b
|
test(swap): 修复 SPC_007 红灯并锁定 a1cdb2cd 日期分桶修复
a1cdb2cd(修正平仓事件日期过滤条件)将 ResolveInterestLegPositionsAsOf 的分桶从
EventDate 改为 UnwindDate,方向正确(应按经济生效日而非簿记日),但 SPC_007 的测试
事件未设 UnwindDate(null) → 落入空桶 → 断言 Expected7000 Actual10000 红灯。
改动(仅测试,生产代码零改动):
- SPC_007:给 close/floatClose 补 UnwindDate(与 EventDate 同日,保持原语义),让测试
数据贴近真实生产事件(平仓事件总会设 UnwindDate),红灯转绿
- 新增 SPC_008:EventDate≠UnwindDate 场景(簿记 7/11 滞后于经济生效 7/9),验证按
UnwindDate 分桶——锁定 a1cdb2cd 的修复价值。已反向验证:临时回退 a1cdb2cd 后 SPC_008
立即失败(Expected7000 Actual10000),证明该测试有效,能抓住此类修复被回滚
双绿通过。生产代码无改动。
|
2026-08-07 11:39:08 +08:00 |
|
张名锐
|
c40b1ba416
|
feat(swap): 添加字符串模式支持和高精度计算功能
- 在输入组件中实现 stringMode 模式,支持字符串类型数值处理
- 添加 normalizeStringValue 函数用于标准化字符串数值格式
- 修改 calcStockEqvNotional 函数以支持高精度十进制乘积计算
- 引入 multiplyDecimal 函数处理大数相乘避免精度丢失
- 更新 swapPricePrecision 工具库以支持字符串模式和精度限制
- 添加相关测试用例验证 16 位数量的十进制乘积准确性
- 调整输入组件类型定义支持 Number 和 String 类型
- 优化数量和金额字段的精度配置和显示格式
|
2026-08-07 11:16:43 +08:00 |
|
张名锐
|
54d65246c6
|
Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2
|
2026-08-07 10:52:20 +08:00 |
|
张名锐
|
a1cdb2cd19
|
fix(swap): 修正平仓事件日期过滤条件
- 将平仓事件的日期过滤从 EventDate 改为 UnwindDate
- 确保正确识别结算日期后的平仓流程
- 修复平仓事件日期比较逻辑的一致性问题
|
2026-08-07 10:52:02 +08:00 |
|
lisong
|
917f3c3faf
|
Merge remote-tracking branch 'dest/glms/feature/1.4.2' into feature/p132_74-risk-engine
|
2026-08-07 09:34:53 +08:00 |
|
lisong
|
38573596a9
|
Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine
|
2026-08-07 09:34:46 +08:00 |
|