锦麟 王
|
d5b43e3769
|
只提示不阻塞
|
2026-07-16 17:17:21 +08:00 |
|
锦麟 王
|
5a6d928b89
|
在修改审批流程时,新增了对未审批完成交易的校验逻辑。
|
2026-07-16 16:54:44 +08:00 |
|
hjhan
|
6424b38001
|
fix(期权到期): checkEodPrice 前置校验改用债券感知统一取价方法
- trade_cashController.checkEodPrice 是前端'执行到期'按钮的前置 gate,
原用 EodPriceQueryService.TryGetEodPrice(仅查期货+股票两表),
债券标的(如 GLMS-20260715-0002 / 180011.IB)必然取不到价而报
'交易日{date}的结算价或收盘价未找到',挡在 tradeExpireConfirm 之前,
导致层1 对 tradeExpireInner/MultipleTradeExpireConfirm 的修复被绕过。
- 改为与层1 一致的 EodPriceQueryService.TryGetSettlementEodPrice
(债券走中债估值、期货/股票走原路径),三处到期取价口径统一。
|
2026-07-16 14:56:28 +08:00 |
|
hjhan
|
a17cdc2b74
|
fix(期权到期): 债券标的到期取价补查中债估值表,并标注债券净/全价映射不一致(Layer2)
- EodPriceQueryService 新增 TryGetSettlementEodPrice:债券走中债估值、期货/股票走原路径
- 单笔 tradeExpireInner + 批量 MultipleTradeExpireConfirm 改用统一方法,修 GLMS-20260715-0002 债券期权到期报'结算价未找到'
- 移除批量路径未初始化的 EodPriceProvider(对债券无效且有误导性的 footgun)
- Layer2:标注 EodPriceProvider.Initialize 与 GetBondPrice 债券 ClosePrice/SettlePrice 净全价定义相反,待统一(不改逻辑)
- 新增白盒单测覆盖债券标的到期取价(3用例 DB驱动,均通过)
|
2026-07-16 14:41:44 +08:00 |
|
张名锐
|
98122ef509
|
style(swaptrade2): 互换交易列表网格行高样式
- 设置 jqgrid 行高度为 25px
- 设置单元格高度为 25px 并调整行高至 20px
- 添加文本溢出省略号显示效果
- 统一设置白空间为 nowrap 避免文本换行
|
2026-07-16 14:15:45 +08:00 |
|
张名锐
|
6d591fe9af
|
Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2
|
2026-07-16 13:47:29 +08:00 |
|
张名锐
|
10b1e34754
|
refactor(swaptrade): 重构EOD持仓风险导出功能的弹窗实现 - 风格统一
- 将原有的main.open2方法替换为layer.open原生实现
- 简化弹窗样式配置,移除冗余的CSS样式设置
- 使用HTML内容直接构建弹窗界面,提高可维护性
- 通过事件委托方式处理按钮点击事件
- 统一按钮样式为Bootstrap风格,提升用户体验
- 优化弹窗尺寸配置,调整为更合适的大小
|
2026-07-16 13:47:10 +08:00 |
|
张名锐
|
a6e7f7761a
|
style(trade): 统一表格行高和单元格样式
- 为 EodPositionRisks.cshtml 中的表格行设置固定高度 25px
- 为 OptionTradeList.cshtml 中的表格行设置固定高度 25px
- 为 tradeList.cshtml 中的表格行设置固定高度 25px
- 统一所有表格单元格的行高、溢出隐藏和省略号显示
- 所有表格单元格设置为单行显示并截断多余文本
- 修复了三个页面中 jqGrid 表格的视觉一致性问题
|
2026-07-16 13:46:48 +08:00 |
|
tengyufan
|
591a0dd461
|
fix(glms): 修正国联民生收益互换确认书模板 — 担保人默认填充"/"、票面利率正确显示、6.1去掉"内"字
- 修改四个收益互换交易确认书模板中「参考标的担保人」占位符默认值为"/"
影响模板:
- 国联民生-收益互换交易确认书-境内模板-【客户看多】-【现券】-清洁版.docx
- 国联民生-收益互换交易确认书-境内模板-【客户看多】-【债券ETF】-清洁版.docx
- 国联民生-收益互换交易确认书-境内模板-【客户看空】-【现券】-清洁版.docx
- 国联民生-收益互换交易确认书-境内模板-【客户看空】-【债券ETF】-清洁版.docx
|
2026-07-16 13:37:15 +08:00 |
|
hjhan
|
3c9d22f60d
|
test(swap): 浮动腿 fpositions 用 orig 不影响预付金结果 — 诊断测试
验证 GLMS-20260701-0008 的预付金 bug 修复无需触碰浮动腿(fpositions / posiLong/posiShort):
- 本 deal 利息腿仅 mode 9(标的期初全价) + mode 5(初始预付金),无「多头/空头存续名义本金」腿。
- CalcNotionalByMode 中 posiLong/posiShort 仅在「多头/空头存续名义本金」分支被消费(L709-716),
mode 9/5 均不依赖之;故 fpositions 用 orig 100M 不影响预付金「返回预付金」计算。
- 诊断用例用反射调 private CalcNotionalByMode 实证:mode9 closePrincipal=posiNotional×比例、
mode5 closePrincipal=实时腿 Fix×比例,均与 posiLong(orig 100M) 无关;并证明若存在
多头存续名义本金腿则 orig 会算错(10M vs 正确 6.89M)——普通收益互换的潜在同类 bug,本 deal 不触发,属修复范围外。
不改动任何生产代码。3 个诊断用例全过。
|
2026-07-16 13:00:21 +08:00 |
|
hjhan
|
3654841b2e
|
merge: 合并 feature/p132_74-risk-engine 最新改动到 glms/feature/1.4.2
合并风控引擎分支最新提交(风控超时校验SQL、标的/合约类型传参、
UnderlyingAssetClass 字段、缓存刷新与异步逻辑优化等),无冲突。
|
2026-07-16 11:14:43 +08:00 |
|
hjhan
|
d51dd8a60b
|
test(swap): 回归测试对齐 GLMS-20260701-0008 四次部分平仓快照
生产 deal 又平仓两次(共四次),实时预付金腿 InterestPrincipalFix 由 73,260
降至 66,813.12(4 次返还 9,900+15,840+3,663+2,783.88=32,186.88;
99,000−32,186.88=66,813.12,与 dev 库实时腿完全勾稽)。
- SwapUnwindPrepayOrigVsRealBugTdd:RemainingFix 常量 73,260→66,813.12;
头部注释同步为四次平仓;新增 GLMS20260701_四次部分平仓_LiveSnapshot 用例,
把 4 次平仓真实数据硬编码为忠实回归(日后该 deal 再平仓需同步更新)。
- 纳入此前遗漏提交的连库诊断测试 GLMS20260701DbDiagnoseTest.cs
(使用 DbContextFactory 取连接串,无硬编码密码,安全)。
验证:dotnet test --filter SwapUnwindPrepay → 26 passed(19+7)失败 0;
YLErpDAL / UnitTestProject 编译通过(仅既有警告)。
|
2026-07-16 11:09:47 +08:00 |
|
锦麟 王
|
a6238b7d86
|
Merge branch 'glms/feature/1.4.2' of http://git.yiliantech.com/gitlab/otc-dev/zszq-trs into glms/feature/1.4.2
|
2026-07-16 11:01:16 +08:00 |
|
锦麟 王
|
84703d1f4d
|
平仓审批流程角色处理逻辑
|
2026-07-16 11:00:49 +08:00 |
|
hjhan
|
24266cfad4
|
fix(swap): 多次部分平仓预付金返还默认显示初始值(GLMS-20260701-0008)
根因: GetUnwindInterests 利息腿迭代源取 origPositions(IsInitial=1),
其预付金腿 InterestPrincipalFix 恒为初始值(99000); 而"当前剩余本金"(73260)
存于实时腿 realPositions(IsInitial=0)。CalcNotionalByMode 与 InitSwapDealInterest
均读 position.InterestPrincipalFix, 导致多次部分平仓后平仓页默认按初始本金计算
返还。首次平仓 orig==real 掩盖了 bug, 故此前"只修好一次部分平仓"。
修复: 抽纯函数 ResolveInterestLegPositions(orig, real)——迭代源仍用 origPositions
(保留 orig.id -> eod_swap_position.PositionId 的日终匹配, 全库 eod 均按 orig.id 归档,
换 realPositions 会破坏 preEod 匹配导致利息重算错误), 仅对预付金腿(初始5/追加6)
Clone 覆盖 InterestPrincipalFix 为实时腿剩余本金; real.PositionId == orig.id 精确
1:1 关联; orig==real 时返回原始腿本身不克隆。
测试: 新增 SwapUnwindPrepayOrigVsRealBugTdd(6 用例)直接单测该纯函数, 覆盖既有
19 个用例(均绕过 orig/real 选择)的盲区。dotnet test --filter SwapUnwindPrepay
25 passed(19+6) 失败 0。
|
2026-07-16 10:49:12 +08:00 |
|
锦麟 王
|
80064b23bd
|
Merge branch 'glms/feature/1.4.2' of http://git.yiliantech.com/gitlab/otc-dev/zszq-trs into glms/feature/1.4.2
|
2026-07-16 10:04:40 +08:00 |
|
锦麟 王
|
23108016a4
|
BugFix 互换本次名义本金取错
|
2026-07-16 10:04:06 +08:00 |
|
hjhan
|
4f46e2634f
|
修复收益互换多次部分平仓预付金返还:平仓比例/名义本金改以剩余持仓为基准
unwindSwapTrade.js:
- oriClosePercent 恒为 1(Definition B 下最多平 100% 剩余,修正全部平仓/按比例少返预付金 + 进页面 getInterestList 少算)
- CloseMethod==1(全部平仓)时修正 ClosePercent=1;CloseMethod==2(部分平仓/待复核)保留已提交比例,避免覆盖
- changeCloseQty/Percent/NotionalValue 三处换算改用 PosiNotionalValue(剩余本金),不再用原始 NotionalValue
swapCalc.js: 新增 calcCloseNotionalByRemaining / calcClosePercentByRemaining 纯函数(含除零保护)
swapCalc.test.js + _shim_run.js: 补充多次部分平仓换算单测(剩余vs原始对比、第3次全平、3次合计=原始、除零保护)
|
2026-07-16 10:03:21 +08:00 |
|
ruisu
|
6154257d20
|
Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine
|
2026-07-16 09:21:29 +08:00 |
|
ruisu
|
cf0a857a95
|
feat:增加风控超时校验时间插入sql
|
2026-07-16 09:21:14 +08:00 |
|
尹峰
|
ba8e998919
|
resolve confilct
|
2026-07-15 18:53:04 +08:00 |
|
尹峰
|
5a05fe74a3
|
优化文案
|
2026-07-15 18:51:49 +08:00 |
|
hjhan
|
d69faaa8e8
|
fix(fast): 修复 numberInput 粘贴路径 percent 字段 ×100,并补 Jest 粘贴回归单测
- fastVue.base.js: __onInput 粘贴分支原把显示值当模型值传入 setValue 导致 percent 字段 ×100;
改为先按 __change 同款口径(去千分位逗号 + 按 percent/append:'%'/append:'‱' 除法)解析为模型值再回显,
使 DOM/显示/模型三者一致;键盘输入路径不变
- 重新生成 Statics/bundles/bundle.js:去每个输入文件头的 UTF-8 BOM(避免 bundle 中间出现 ZWN BSP 不可见字符),
页面实际加载 bundle.js(改源文件必须重生成 bundle 才生效)
- 新增 numberInput.paste.test.js 覆盖 percent:true/append:%/append:‱/普通数字 4 类字段的 Ctrl+V 粘贴(Jest+jsdom,4 passed)
- fe-tests package.json 增加 jest-environment-jsdom、jquery 依赖
|
2026-07-15 12:58:08 +08:00 |
|
hjhan
|
94827eb6b6
|
fix(fast): 修复 numberInput 粘贴路径 percent 字段 ×100,并补 Jest 粘贴回归单测
- fastVue.base.js: __onInput 粘贴分支原把显示值当模型值传入 setValue 导致 percent 字段 ×100;
改为先按 __change 同款口径(去千分位逗号 + 按 percent/append:'%'/append:'‱' 除法)解析为模型值再回显,
使 DOM/显示/模型三者一致;键盘输入路径不变
- 重新生成 Statics/bundles/*.js:去每个输入文件头的 UTF-8 BOM(避免 bundle 中间出现 ZWN BSP 不可见字符),
页面实际加载 bundle.js(改源文件必须重生成 bundle 才生效)
- 新增 numberInput.paste.test.js 覆盖 percent:true/append:%/append:‱/普通数字 4 类字段的 Ctrl+V 粘贴(Jest+jsdom,4 passed)
- fe-tests package.json 增加 jest-environment-jsdom、jquery 依赖
|
2026-07-15 11:29:14 +08:00 |
|
锦麟 王
|
00ab542d39
|
Merge branch 'glms/feature/1.4.2' of http://git.yiliantech.com/gitlab/otc-dev/zszq-trs into glms/feature/1.4.2
|
2026-07-15 11:14:35 +08:00 |
|
锦麟 王
|
420bb2a291
|
隐藏“投资规模”选项
|
2026-07-15 11:14:26 +08:00 |
|
hjhan
|
05826fe7d5
|
debug(fast): 为 numberInput 粘贴路径加 F12 诊断日志并清理 bundle.js 中的 BOM
- fastVue.base.js: 在 __onInput 粘贴分支和 __change 加入 console.log,
输出 raw/parsed/append/percent,便于在浏览器 F12 排查粘贴值实际走向
- 重新生成 bundle.js,并去掉每个输入文件头的 BOM,避免 bundle.js 中间出现 ZWN BSP 不可见字符
|
2026-07-15 11:08:25 +08:00 |
|
hjhan
|
2a5e338b50
|
fix(fast): 修复 numberInput 粘贴路径 percent 字段 ×100,并补 Jest 粘贴回归单测
- fastVue.base.js: __onInput 粘贴分支原把显示值当模型值传入 setValue 导致 percent 字段 ×100;
改为按 __change 同款口径先解析为模型值再回显,键盘输入路径不变
- 重新生成 Statics/bundles/bundle.js(fastVue.base.js 被合并进此 bundle,页面实际加载该文件,
改源文件不生效必须重生成 bundle)
- 新增 numberInput.paste.test.js 覆盖 percent:true/append:%/append:‱/普通数字 4 类字段的 Ctrl+V 粘贴
- fe-tests package.json 增加 jest-environment-jsdom、jquery 依赖
|
2026-07-15 11:08:25 +08:00 |
|
锦麟 王
|
a53ea3e6df
|
Merge branch 'glms/feature/1.4.2' of http://git.yiliantech.com/gitlab/otc-dev/zszq-trs into glms/feature/1.4.2
|
2026-07-15 10:52:09 +08:00 |
|
锦麟 王
|
592ad52ecb
|
互换平仓审批流程逻辑
|
2026-07-15 10:51:58 +08:00 |
|
hjhan
|
ea313dc1c6
|
fix(fast): 修复 numberInput 粘贴路径 percent 字段 ×100,并补 Jest 粘贴回归单测
- fastVue.base.js: __onInput 粘贴分支原把显示值当模型值传入 setValue 导致 percent 字段 ×100;
改为按 __change 同款口径先解析为模型值再回显,键盘输入路径不变
- 新增 numberInput.paste.test.js 覆盖 percent:true/append:%/append:‱/普通数字 4 类字段的 Ctrl+V 粘贴
- fe-tests package.json 增加 jest-environment-jsdom、jquery 依赖
|
2026-07-15 10:18:26 +08:00 |
|
锦麟 王
|
24b43d535e
|
Merge branch 'glms/feature/1.4.2' of http://git.yiliantech.com/gitlab/otc-dev/zszq-trs into glms/feature/1.4.2
|
2026-07-15 09:39:23 +08:00 |
|
锦麟 王
|
fac84c8fa5
|
BugFix 交易新增与修改
|
2026-07-15 09:39:08 +08:00 |
|
尹峰
|
5b34c3a9ca
|
修改标的类型和合约类型传参&优化规则应用启停逻辑
|
2026-07-14 20:35:17 +08:00 |
|
尹峰
|
1d22871f3b
|
修改标的类型和合约类型传参&优化规则应用启停逻辑
|
2026-07-14 20:28:38 +08:00 |
|
ruisu
|
78cf89be0d
|
fix:修改风控application字段,将标的类型字段修改为UnderlyingAssetClass,内容为汉字
|
2026-07-14 18:33:45 +08:00 |
|
hjhan
|
adc22a5b4c
|
refactor(swap): 合并 CalcDailySimpleInterest 重置日/非重置日重复分支
两分支除"重置日重取浮动利率"外本金口径完全一致(都只缩放一次),
原非重置日分支是复制重置日逻辑时多写一行 tdDynomicPrincipal = flowEvent.InterestPrincipal
(已含 closePercent) 导致 closePercent^N 的指数 bug。合并为单分支,仅在
i % interestPeriod == 0 时重取利率,本金处理统一为 InterestPrincipal = 基数×closePercent。
行为保持:SwapModule 全量 196 通过/4 跳过,与重构前一致。
|
2026-07-14 17:23:33 +08:00 |
|
hjhan
|
7689436364
|
test(swap): 补 CalcDailySimpleInterest 全腿模式+日终路径覆盖,锁定无更大影响
用户要求确认 CalcDailySimpleInterest 所有调用方(含日终)覆盖完整性。
代码事实纠正:日终(settment=true)走 CalcEodInterest → CalcDailySimpleInterestByEod
(closePercent 硬编码 1m、且该函数从不改写 InterestPrincipal),根本不调用本函数;
本函数唯一真实调用链 = GetInterests(settment=false) → CalcUnwindInterest。
故'含日终'的正确命题是:日终不受此 bug 影响,应有用例锁定该不变量。
新增 CalcByMode 驱动各 InterestMode + 日终路径(rest_days=7, closePercent<1):
- 追加预付金(6)/多头存续(7)/空头存续(8)/合约名义本金规模(2):断言线性 closePrincipal
- 固定值(1):强制 newClosePercent=1,对平仓比例免疫,断言恒=Fix
- 日终 预付金(5)/标的期初全价(9):断言结果恒为线性 closePrincipal(证明 ByEod 正确变体不受影响)
SwapUnwindPrepayPrincipalBugTdd 现 19 绿;SwapModule 全量 196 通过/4 跳过,无回归。
|
2026-07-14 17:23:33 +08:00 |
|
张名锐
|
fdbb7b363a
|
Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2
|
2026-07-14 17:22:24 +08:00 |
|
张名锐
|
2d2ea6c509
|
```
feat(swaptrade): 优化框架合约导出功能
- 新增导出列名配置数组 eodSwapExportColumnNames
- 实现框架合约标签页导出列名自动同步
- 移除冗余的分组表头初始化逻辑
- 添加导出方式选择对话框支持两种导出模式
- 扩展工具函数支持自定义导出列名参数
- 重构导出逻辑统一处理不同导出场景
```
|
2026-07-14 17:21:58 +08:00 |
|
ruisu
|
7784e66289
|
Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine
|
2026-07-14 17:18:47 +08:00 |
|
ruisu
|
8e0e779133
|
feat:根据ai merge意见修改:dbContext取消与单例riskEngienService的绑定,反射代码修改。
支持老风控Error情况下的二次特批
|
2026-07-14 17:18:33 +08:00 |
|
hjhan
|
9bf3c4b9c6
|
test(swap): 补非预付金单利腿(标的期初全价)部分平仓回归,实证修复对所有单利腿通用
用户追问修复是否波及非预付金腿。CalcDailySimpleInterest 是所有单利腿
(InterestType=0)的盘中计息通用函数,预付金腿(mode5/6)只是使用者之一。
新增非预付金腿(标的期初全价=9,orginPv 走交易名义本金、不对齐 Fix)用例:
- 50%%→500,000、10%%→100,000、100%%→1,000,000(N=1,000,000)
- buggy 会给 N×closePercent^7,证明非预付金腿此前也中招、修复后统一线性缩放
- 100%% 用例锚定 closePercent=1 时修复前后恒等(零影响于日常计息/全平)
SwapUnwindPrepayPrincipalBugTdd 现 12 绿。
|
2026-07-14 16:45:27 +08:00 |
|
hjhan
|
83a55dab33
|
fix(swap): 修复平仓预付金应返还本金被 closePercent^N 指数级缩小
根因:CalcDailySimpleInterest 单利非重置日 else 分支曾把已×closePercent 的
InterestPrincipal 回填给计息基数 tdDynomicPrincipal,使下一个非重置日再乘一次,
累积成 InterestPrincipal = Fix × closePercent^N(N=计息天数),部分平仓时指数级缩小。
100% 因 1^N=1 不显现,故此前漏测。
修复:非重置日与重置日、日终 CalcDailySimpleInterestByEod 三者对齐——
显示本金 InterestPrincipal = 基数×closePercent(只缩放一次),计息基数不缩放。
TDD 铁证(GLMS-20260701-0006, interest_rest_days=7, Fix=9,180,000):
- 修复前 50%→71,718.75(=Fix×0.5^7)、10%→0.918(=Fix×0.1^7)
- 修复后 50%→4,590,000、10%→918,000、100%→9,180,000
新增 CalcUnwindMultiDay helper + 3 用例,SwapUnwindPrepayPrincipalBugTdd 共 9 绿,
SwapModule 全量 186 通过无回归。
|
2026-07-14 16:33:59 +08:00 |
|
hjhan
|
b9462510de
|
Merge branch 'merge/p132_74-risk-engine-into-1.4.2' into glms/feature/1.4.2
|
2026-07-14 15:14:27 +08:00 |
|
锦麟 王
|
74690c1783
|
Merge branch 'glms/feature/1.4.2' of http://git.yiliantech.com/gitlab/otc-dev/zszq-trs into glms/feature/1.4.2
|
2026-07-14 15:03:45 +08:00 |
|
锦麟 王
|
8b5a69fd10
|
更新交易流程和审批条件文本
|
2026-07-14 14:57:46 +08:00 |
|
hjhan
|
0483cd8576
|
Merge remote-tracking branch 'origin/feature/p132_74-risk-engine' into spike/merge-p132_74-to-1.4.2
|
2026-07-14 14:48:11 +08:00 |
|
hjhan
|
bfcfc74717
|
test: 平仓预付金bug回归测试贴合生产铁证(精确notional + 不计息断言)
- 客户截图级用例 notional 由反推的 306,191,860.22 更正为生产精确值
306,191,860.26,使 2*Fix-Notional = -287,820,348.64 与生产 event15997 精确 0 误差。
- 生产该预付金腿三条 swap_flow_event 的 InterestAmount 全=0(债券类预付金腿不计息),
仅 InterestPrincipal 中招;故客户级/Trade1813 用例改断言 InterestAmount==0、用 rate=0 贴合生产。
- 显式带息加固用例(rate=0.01,验证计息基数也基于保证金本金自身)保留,但注释标明为
合成场景、非该笔生产的真实症状,避免与生产现象混淆。
- 固化生产双平仓记录佐证:同腿"盘中错(event15997)/EOD对(event15998)"两条平仓,
恰好印证修复方向(盘中 orginPv 对齐 EOD=Fix)正确。
|
2026-07-14 14:46:42 +08:00 |
|
hjhan
|
e1df4ded13
|
docs: FR007 ReferencePrice 小数口径注释(利息腿计算无需再 ÷100)
EodPriceQueryService.TryGetPrice 读取 eod_commodity_future_price.ReferencePrice
作为 FR007 浮动利率参与利息计算。说明该行 ReferencePrice 无论 bond-sync 自动
同步还是界面手工录入,写入时均已 ÷100 为小数口径,利息腿计算直接作为 floatRate
参与 principal*(fixedRate+floatRate)/annualDays,无需在计算侧再次 ÷100。
|
2026-07-14 11:33:15 +08:00 |
|