张名锐
269807cc44
feat(swaptrade): 收益互换界面金额固定两位小数
...
- 新增 inputFormatInterestAmount 配置对象,精度为2位小数,支持负数显示和尾随零保留
- 在保证金列表中将 InterestAmount 和 InterestFee 字段的格式化从 inputFormatEqvNotional 替换为 inputFormatInterestAmount
- 在利息列表中将 InterestAmount 和 InterestFee 字段的格式化从 inputFormatEqvNotional 替换为 inputFormatInterestAmount
- 保持原有的双向数据绑定和事件监听功能不变
2026-08-05 09:52:22 +08:00
张名锐
6e523de2c0
Merge branch 'glms/feature/1.4.2' into glms/feature/dotnumber
2026-08-04 13:13:32 +08:00
张名锐
03ee9cca26
fix(settlement): 修复预付金计算中的精度问题
...
- 对保证金比率进行四舍五入到小数点后两位处理
- 将硬编码的保证金最大比率计算改为基于调整后的保证金比率
- 修复可取预付金计算中的类型转换问题
- 确保计算过程中数值精度的一致性
- 移除多余的文件末尾大括号以符合代码规范
2026-08-04 13:12:02 +08:00
yexuzhong
84ee11a02d
国联启用扩展配置
2026-08-04 11:33:09 +08:00
yexuzhong
52b842ecab
国联民生 greeks计算代码完成
2026-08-03 17:44:25 +08:00
张名锐
e3a31886a8
Merge branch 'glms/feature/1.4.2' into glms/feature/dotnumber
2026-08-03 17:05:32 +08:00
张名锐
b2c4442772
feat(swaptrade): 利率相关 添加尾随零修剪和数值格式化功能
...
- 在数字输入组件中添加 trimTailZeros 配置选项
- 修改条件判断逻辑以支持尾随零修剪控制
- 为掉期交易利率添加固定精度格式化功能
- 创建 formatObservationRate 函数用于观察率数值格式化
- 在观察率输入字段中添加失焦时格式化事件处理
- 更新视图中的利率显示格式化方式
- 统一利息金额的货币格式化显示
2026-08-03 17:04:51 +08:00
yexuzhong
b41346240c
债券期货 greek计算数据获取完成
2026-08-03 16:40:40 +08:00
yexuzhong
3f6c060b4c
国联民生 greek计算 40%
2026-08-03 16:13:40 +08:00
张名锐
fa6b2878c5
Merge branch 'glms/feature/1.4.2' into glms/feature/dotnumber
2026-08-03 15:11:38 +08:00
张名锐
613fd66b65
fix(swap): 解决(观察日)利率计算精度问题并优化价格精度处理
...
- 在SwapDealService中对GetFixedRate结果进行精度调整,解决原数据精度误差问题
- 在swapPricePrecisionHelper中添加roundDecimal方法并移除TODO注释
- 新增observationRate相关的精度处理函数,包括roundObservationRate和percent转换函数
- 创建serializeSwapIntervals函数用于处理掉期区间利率精度序列化
- 将consNumberFormat.umpriceP替换为swapPricePrecision.shiftDecimal进行百分比转换
- 使用新的精度处理函数替代原有的toFixed(6)和乘以0.01的操作
2026-08-03 13:21:23 +08:00
嬴政 时
e2f02d0549
交易确认书去除年利率, 增加签署日期
2026-07-31 21:27:19 +08:00
张名锐
74ded52829
Merge branch 'glms/feature/dotnumber' into 'glms/feature/1.4.2'
...
fix(swap): 修复利息互换平仓结算中的尾差处理和本金计算问题
See merge request otc-dev/zszq-trs!3
2026-07-31 09:02:31 +00:00
张名锐
2eba4ce2a9
feat(settlement): 添加标的类型判断逻辑支持价格表分流
...
- 在ConsGlobal中为所有标的类型常量添加中文注释说明
- 新增UseStockPriceTable方法用于判断标的类型是否使用股票价格表
- 修改SettlementPriceImportService中的价格表分流逻辑
- 添加单元测试验证股指期货、基金等进入股票价格表的逻辑
- 确保Shibor、利率收益率和债券指数进入正确的商品期货价格表
2026-07-31 16:57:49 +08:00
张名锐
a507d0ce66
feat: 新增利率收益率 债券指数小数点精度配置
2026-07-31 16:26:06 +08:00
张名锐
b0c06dc673
Merge branch 'glms/feature/1.4.2' into glms/feature/dotnumber
2026-07-31 16:20:42 +08:00
yexuzhong
5afd766a5f
债券收益率改成了利率收益率
2026-07-31 15:13:51 +08:00
yexuzhong
55b58856a5
#EQD-6787 国联民生-期权相关问题修复(2)PriceProvider支持债券表(Chinabondvaluation)
2026-07-31 15:06:16 +08:00
yexuzhong
633cd7d32d
计算指标可配置
2026-07-31 14:49:52 +08:00
马冰冰
f7e7aaa373
Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2
2026-07-31 11:27:13 +08:00
马冰冰
696ac168f0
Changes:全部统一成续作
2026-07-31 11:10:55 +08:00
yexuzhong
4c7011bfa8
日终持仓风险下载
2026-07-31 11:02:49 +08:00
张名锐
dfac28f54a
Revert "fix(sac): 修复预览页序列化 SacInfo 时 TypeId 触发 IsGenericParameter 异常"
...
This reverts commit ca74095e0c .
2026-07-31 10:49:18 +08:00
yexuzhong
5d580960d8
#EQD-6669 国联民生-期权希腊值计算步长和细节调整(定价引擎部分)
2026-07-31 10:35:25 +08:00
张名锐
9d53d3dd8c
Merge branch 'refs/heads/glms/feature/1.4.2' into glms/feature/dotnumber
2026-07-31 09:19:09 +08:00
张名锐
8ed4bc0f2f
fix(swaptrade): 修复债券价格输入绑定和事件处理问题
...
- 绑定三个债券价格字段到当前Vue方法,确保正确的v-model和事件监听器
- 修复精度输入组件的事件契约,保留keydown、input、enter事件处理逻辑
- 解决格式刷新时不覆盖未提交输入的问题,维护用户输入状态一致性
- 将模板中的@change事件替换为@blur事件,改进输入焦点处理逻辑
2026-07-31 09:18:53 +08:00
hjhan
ca74095e0c
fix(sac): 修复预览页序列化 SacInfo 时 TypeId 触发 IsGenericParameter 异常
...
- SacDescriptionAttribute 增加 ShouldSerializeTypeId() 返回 false,
跳过 Attribute.TypeId(System.Type)的序列化,避免 Newtonsoft 抛
"Method may only be called on a Type for which Type.IsGenericParameter is true."
(13.0.1 安全版对 Type 成员序列化行为变更后暴露)
- ExceptionMiddleware 改用 exception.ToString() 记录完整异常(类型+
内层 message+堆栈),替代仅取最内层 message,便于定位此类反射异常根因;
该信息仅写入日志,不返回前端
2026-07-31 09:10:18 +08:00
hjhan
a871bcb9fe
fix(login): 登录页 NeedCaptcha=false 时 CaptchaClick 避免 null.setAttribute 报错
...
页面加载时无条件调用 CaptchaClick(),但 <img id="captcha"> 仅在
NeedCaptcha=true 时渲染,导致无需验证码时 getElementById 返回 null,
null.setAttribute 抛错。增加 if (!img) return 守卫,img 存在时行为不变。
2026-07-31 09:10:05 +08:00
hjhan
74c434bdd8
fix(swaptrade): 修复重输/重贴原值后回车不触发计算、粘贴不标记REV的静默失效
...
- swapPricePrecisionHelper: onKeydown 回车时无条件派发 input+enter,
不再依赖仅值变化才触发的原生 change;onPaste 粘贴即派发 input 标 REV;
onChange 不再派发 enter(改由 onKeydown 唯一派发,避免重复计算)
- 新增 fe-tests/swapPriceInput.component.test.js 回归守卫(6 用例,
回退旧版即变红,锁定该 QA 高优 Bug 修复)
- bundle/bundleV2: otcDebug 调试开关改为 localStorage 持久化 +
URL ?otcdebug=1 触发,便于排查价格计算链路
2026-07-31 09:07:08 +08:00
张名锐
3670dde9bf
fix(swap): 修复利息互换平仓结算中的尾差处理和本金计算问题
...
- 修复ExecuteSaveAutoEodInterestPosition方法参数传递,添加lastEodSwap、posiLongNotional和orginPv参数
- 修正平仓利息计算逻辑,区分手动结算和平仓后自动结算的利息处理
- 新增ResolveUnwindPreviousNotional静态方法,优化平仓前本金计算逻辑
- 修复部分平仓后利息累积边界问题,确保仅从上次EOD快照后开始计算
- 完善自动结算利息的四舍五入处理,避免精度丢失
- 修正支付端方向符号应用,确保方向只应用一次
- 更新TdInterestPrincipal计算逻辑,处理不同利息模式下的本金赋值
- 修复TdCloseInterest计算,合并手动和自动结算利息金额
- 优化InterestIncomeSum计算,正确处理结算后剩余未实现利息
2026-07-30 23:29:07 +08:00
tengyufan
cb2076d9ff
fix: 交易确认书编号筛选项保持单行显示
...
- 国联交易确认书页面加宽交易确认书编号筛选项标签和容器
- 避免交易确认书编号标签自动换行
2026-07-30 17:58:51 +08:00
马冰冰
99438ccaf4
Merge branch 'glms/feature/1.4.2-0730' into glms/feature/1.4.2
2026-07-30 17:48:55 +08:00
tengyufan
20e4b82ae3
fix: 修复国联收益互换交易编号首次生成大小写不一致
...
- 首次入库后按 UpperTradeNumber 配置统一交易编号大小写
- 避免自动生成小写编号在后续编辑保存时被转为大写
- 补充交易编号大小写配置的单元测试
2026-07-30 17:46:18 +08:00
马冰冰
807ac15417
feature:续作按钮应当有角色权限控制
2026-07-30 17:46:14 +08:00
lisong
715068b759
Merge remote-tracking branch 'dest/glms/feature/1.4.2' into feature/p132_74-risk-engine
2026-07-30 16:03:37 +08:00
lisong
f8ec822667
Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine
2026-07-30 16:02:37 +08:00
tengyufan
f535ed362c
Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2
2026-07-30 14:46:26 +08:00
tengyufan
43981e245b
#EQD-6718 国联民生-收益互换隐藏收支方向,默认我方收取浮动收益
...
fix:国联民生收益互换隐藏收支方向,默认我方收取浮动收益
- 新增可配置开关 Erp.SwapFloatingIncomeReceiveOnlyMode,默认关闭,支持在普通模式与网厅适配模式之间切换
- 网厅适配模式下,新增及续做收益互换默认浮动端为我方收取,并隐藏新增、平仓、收益结算及查看页面的浮动端收支方向
- 普通模式保持原有展示和编辑逻辑,历史交易不修改原有浮动端收支方向
- 日终持仓风险_互换将浮动收支方向和标的多空合并为交易方向,并同步影响导出
- 交易方向映射收取+B为多头、收取+S为空头、支付+B为空头、支付+S为多头
- 新增交易方向映射专项前端单测
2026-07-30 14:46:07 +08:00
hjhan
52c11e7540
fix(diag): 简化 otcDebug 调试开关命名并支持 localStorage 持久化
...
- __otcDiag 双源对象拆为 __diag(版本元数据, 仅供 banner 展示) + __debug(调试开关布尔值, 唯一真相来源), 消除 __私有对象 与 otcDebug.API 大小写混搭。
- __debug 解析顺序: URL ?otcdebug=1(命中即写回 localStorage) -> localStorage -> 兜底 __diag.debug。同源父子 frame 共享 localStorage, 使 _InfoLayout iframe 弹窗(新增互换交易)自动继承父页面开过的调试开关, 修复弹窗内无调试日志。
2026-07-30 14:42:10 +08:00
ruisu
759edfbde4
Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine
2026-07-30 13:33:19 +08:00
ruisu
3df280d9f0
feat:增加日历与价格偏离辅助函数,修复日志过长无法落库的问题,修复老风控特批、新风控不批时,前端展示为提示框,不是细节框的问题。
2026-07-30 13:32:47 +08:00
尹峰
5cd5dbd51c
fix conflict
2026-07-30 13:31:19 +08:00
尹峰
07be0e61a9
feat: 变量删除时校验是否有规则引用,有则阻止
2026-07-30 13:29:16 +08:00
张名锐
78aac109d0
Merge branch 'glms/feature/1.4.2' into glms/feature/dotnumber
2026-07-30 13:05:41 +08:00
张名锐
345085677e
refactor(swaptrade): 优化价格输入组件的事件处理机制
...
- 添加 enterPressed 和 formatSnapshot 状态管理
- 实现键盘事件监听和回车键处理逻辑
- 优化数据更新时机和事件触发顺序
- 添加格式配置变更检测功能
- 更新模板事件绑定方式
- 修改价格输入事件回调方法名以区分不同场景
2026-07-30 11:33:55 +08:00
hjhan
7a9702c707
fix(diag): JsVersion 纳入前端文件 mtime,修复纯前端改动缓存不刷新
...
根因(?otcdebug=1 排查时暴露):JsVersion 只取 bin/YLErp*.dll 的 mtime,
纯前端改 wwwroot/Scripts 而不重编 DLL 时,?v= 缓存戳不变,浏览器仍加载旧版
——即"发布了但不更新"。
修复:
- JsVersion = max(DLL mtime, wwwroot/Scripts/** mtime, wwwroot/Statics/bundles/** mtime)
- wwwroot 定位用 Directory.GetCurrentDirectory()(与 StaticUrlMiddleware 一致,
开发=项目根/部署=publish 目录),目录不存在则回退仅 DLL mtime
- BinFileVersion 保持原义(仅 DLL,用于诊断显示后端构建时间)
附带修复 git 字段:AssemblyInformationalVersion 无 +sha(如固定版本 1.0.0)时,
回退从 .git/HEAD 读取当前 commit 短 sha,不再误显示 '1.0.0'
验证:dotnet build 0 错误
2026-07-30 11:25:11 +08:00
tengyufan
b3484c3618
fix: 国联民生收益互换支持审批前生成交易确认书
...
- 仅国联民生收益互换支持在新增待确认、修改待确认、审批中生成交易确认书,期权、其他公司及其他交易状态保持原限制
- 交易确认书页面同步开放上述交易的“生成确认书”按钮,后端批量生成链路同步放开状态过滤
- 审批前生成仅校验客户、标的、初始持仓等模板必需核心数据;不以银行账户、联系人、保证金等非模板必填资料阻断
- 审批前已生成确认书的交易被修改时,使该交易原确认书关联失效,重新生成仍按原覆盖逻辑处理
- 审批拒绝时清理该交易审批前生成的确认书关联、OA 结果及用印队列;无其他有效引用时删除确认书数据,避免遗留无效确认书
- 保持原交易编号逻辑:自动生成和手工填写均不复用已拒绝交易编号
- 新增审批前适用范围、确认书关联及 OA 清理谓词专项单测
2026-07-30 11:10:48 +08:00
张名锐
85f1bccb24
Merge branch 'glms/feature/1.4.2' into glms/feature/dotnumber
...
# Conflicts:
# YLErpWeb/App_Data/Config/otcformat.js
# YLErpWeb/Views/SwapTrade2/TradeEdit.cshtml
# YLErpWeb/wwwroot/Scripts/app/swaptrade/swapTradeEdit.js
2026-07-30 10:50:44 +08:00
hjhan
c519dcf44f
fix: otcDebug 开关在 _InfoLayout(TradeEdit)页面也能从URL读取
...
根因(用户反馈:开了 ?otcdebug=1 但输入/计算无任何 console 输出):
1. 用户实际在 /swapTrade2/TradeList 页面——该页不加载 swapTradeEdit.js(埋点所在),
只加载 swapTradeList.js(零债券代码),故三字段 trace 永远不会执行。
2. 即使跳到 TradeEdit 页面,_InfoLayout.cshtml(TradeEdit 用的 layout)
未灌入 window.ylotc.__diag,导致 main.js 中:
var __otcDiag = (window.ylotc && window.ylotc.__diag) || { debug: false };
→ debug 永远 false → 所有 otcDebug.log 全部空转。
修复:main.js 的 __otcDiag 初始化改为双源读取——
优先用 _MainLayout 灌入的 ylotc.__diag(含 jsVersion/git/built 元数据);
若 layout 未灌入(_InfoLayout 等),则从 ?otcdebug=1 / localStorage.otcdebug 直接读,
确保 debug 开关在所有页面生效。
测试:diag 18 + bondCalc 81 = 99 例全过。
注意:此改动在 main.js 中,需重建 bundle.js 才能生效(dotnet publish 自动触发)。
2026-07-30 10:30:31 +08:00
hjhan
72b2a4cbf6
fix: 债券三字段调试日志改为 otcdebug gated,出问题时一键可定位
...
用户指出:上一笔直接删了 onBondPriceKeydown 的逐键 console.log 又没补 gated 版,
等于平时没噪音了、真出问题也看不见——这正是反复改几十遍都满足不了需求时才需要日志兜底的场景。
修复:
- onBondPriceKeydown 逐键 before/after(driver/rev) trace 改为 otcDebug.log(?otcdebug=1 才输出)
- onBondPriceEdit(失焦/粘贴) 补同款 gated trace
- calcBondForItem 补 enter/success/calc-error/post-fail 四条 gated trace
→ 三字段整条链路(逐键→回车→计算器→源/AUTO或失败)开开关即得完整现场
- main.js 第226/669行 catch 内 error console.log 保留(错误日志本就应在生产可见,利于定位)
- otcDebug 机制本身已存在且唯一:?otcdebug=1 或 localStorage.otcdebug=1 开启,
_MainLayout 注入 jsVersion/git/built,加载时打带版本 banner,平时零噪音
测试:
- diag.test.js 新增源码守卫:swapTradeEdit.js 三字段埋点必须 otcDebug.log、不得退回裸 console.log
- diag 18 例 / bondCalc 81 例全过
2026-07-30 10:15:00 +08:00