Commit Graph
515 Commits
Author SHA1 Message Date
尹峰 c1ded96985 变量级联更新规则优化&增补注释 2026-07-09 17:52:14 +08:00
ruisu 66381e5dc4 feat:在系统缓存刷新功能内,增加风控引擎缓存刷新 2026-07-09 17:41:10 +08:00
张名锐 5f27c85ae9 feat(export): 为Excel导出功能添加分组表头支持
- 修改exportVisibleColumnsToExcel函数,增加groupConfig参数
- 实现buildGroupHeaderHtml函数用于构建二级表头结构
- 当存在分组配置时自动生成合并单元格的表头
- 支持按字段分组显示标题并设置样式
- 更新函数注释文档说明新参数用途
2026-07-09 15:21:05 +08:00
张名锐 358993bedb feat(swaptrade): 添加期末头寸风险表新字段支持
- 在EodSwap实体模型中新增标的类型、期间付息/分红、保证金利息收支字段
- 在前端表格列模型中添加标的类型、期间付息/分红列定义
- 在前端表格分组配置中将新字段归入对应分组显示
- 实现后端服务中对新字段的数据查询和计算逻辑
- 添加保证金利息收入支出的分类汇总功能
- 完善标的类型字段的数据源获取和展示逻辑
2026-07-09 15:11:58 +08:00
ruisu 48d90bef50 Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine 2026-07-09 10:26:44 +08:00
ruisu d14bdc18e7 feat:风控引擎增加超时机制:在进行超时校验的时候,如果超时,不但重置新风控重新校验,老风控的二次校验也不允许直接放行,需要重新校验。 2026-07-09 10:26:26 +08:00
尹峰 fc51bfab68 恢复被revert误操作的文件 2026-07-08 10:59:13 +08:00
hjhan 0bef986e10 fix(valuation): 修复折叠分组后表头消失无法展开的问题
问题:折叠一个分组时,该组所有列被 hideCol 隐藏后,buildGroupHeaders
因 visibleColsInGroup 为空而 continue 跳过该分组,导致分组表头不渲染,
用户失去展开入口(表现为"收起后整组列和表头都不见了")。

修复:
- applyGroupHeaders:折叠时保留该组首列作为"展开锚点"(只隐藏 slice(1)),
  确保 setGroupHeaders 仍能为该分组渲染表头单元格
- buildGroupHeaders:折叠态下 numberOfColumns=1,表头显示 ▶ 可点击展开;
  被 setcolumnChooser 主动隐藏的分组仍跳过(不影响)
- 展开时恢复该组全部列

测试场景:
1. 互换估值Tab折叠任一分组 → 表头保留(▶),点击可展开恢复
2. 框架合约Tab同上
3. 全部折叠 → 每组各保留1列锚点,页面仍有列可操作
2026-07-08 09:08:08 +08:00
hjhan a617ed6d93 feat(valuation): 互换估值Tab 接入分组折叠 + 簿记筛选 + 导出
对应需求《估值模块V1》模块二:每日估值报告 - 互换估值Tab

改动:
1. 新增 eodSwapValuationGroupConfig 分组配置(4组:基本信息/利率与规模/价格/收益)
   现有列顺序已天然满足分组连续性,无需重排,风险最低
2. gridComplete 在 setcolumnChooser 完成后初始化可折叠分组表头
   保留原有异常行标红(dataError)逻辑
3. 新增簿记账户筛选(需求3.1):cshtml 加 BookId 下拉,searchPositionDetials 传 BookId
   未选择时传空,后端返回该对手方下全部账户合约
4. 新增「导出互换估值」按钮(需求3.2+4.2),走通用 exportVisibleColumnsToExcel
   文件名:{对手方}_每日估值报告_互换估值_{估值日}.xls
   与现有 DownLoadReport(整份报告)独立,互不影响

缺失字段(TODO,待后端确认):期间分红、预付金系列(利率/利息/期初/追加)、TRS估值

测试要点:簿记筛选生效、分组表头显示、折叠交互、异常行标红不受影响、导出可用
2026-07-08 08:56:34 +08:00
hjhan d40b561a42 feat(valuation): 框架合约Tab 导出可见列Excel + 通用导出工具
对应需求《估值模块V1》4.2:导出当前筛选后可见列数据,格式与前端一致。

改动:
1. utils.js 新增通用导出工具 exportVisibleColumnsToExcel(jgrid, fileName)
   - 零依赖,基于 HTML table + ms-excel MIME
   - 只导出当前可见列(与折叠状态联动:收起的分组列不导出)
   - 与后端模板导出(SettlementReport/EodPositionRisksQueryService)口径独立,互不干扰
2. EodPositionRisks.cshtml 恢复导出按钮(原 exportTrade 被注释,现改为 exportVisibleColumns)
3. EodPositionRisks.js 新增 exportVisibleColumns(),文件名含Tab名+结算日期

测试要点:导出列=页面可见列、列名=表头名、数据=当前筛选数据、折叠的列不导出
2026-07-08 08:53:44 +08:00
hjhan 76af939332 feat(valuation): 框架合约Tab 接入可折叠分组表头 + 字段命名对齐
对应需求《估值模块V1》模块一:日终持仓风险_互换 - 框架合约Tab

改动:
1. colModelGridEodSwap 列按需求2.2分组重排(组内列连续,满足setGroupHeaders要求)
   - 互换类型移至基本信息组(原在末尾)
2. 字段命名对齐需求用词(纯label改动,不改name/index):
   - 合约利率端待实现收益 → 合约利息端待实现收益
   - 预付金字段 → 保证金(收取/支付 初始/维持保证金)
3. 新增 eodSwapGroupConfig 分组配置(7组:基本信息/名义本金/标的市值/浮动端/利息端/保证金/估值与实现收益)
4. gridComplete 在 setcolumnChooser 完成后初始化可折叠分组表头

缺失字段(TODO,待后端确认):
- 标的类型、期间付息/分红、付息方式、合约估值(两口径)

测试要点:框架合约Tab表头分组合并、点击折叠/展开、footer汇总行(DV)正常、列设置功能正常
2026-07-08 08:51:33 +08:00
hjhan 7928000dc6 feat(valuation): 新增通用可折叠分组表头工具 initCollapsibleGroupHeaders
jqGrid 4.5.4 原生 setGroupHeaders 只支持静态合并表头,不支持点击折叠。
本次在 utils.js 新增通用工具函数,为估值模块前端重构提供基础能力:

- initCollapsibleGroupHeaders(jgrid, groupConfig): 生成合并表头 + 点击折叠/展开
- refreshCollapsibleGroupHeaders(jgrid): 列重排/显隐后重建分组边界
- 复用本文件 setcolumnChooser2 已验证的 destroyGroupHeader → 显隐列 → setGroupHeaders 重建模式
- 默认全部展开,折叠态显示 ▶ 展开态显示 ▼
- 与 setcolumnChooser 通过事件委托协调,不依赖 free-jqGrid 商业版

不换库、零全站回归风险。后续提交接入业务页面。
2026-07-08 08:50:14 +08:00
锦麟 王 fb59c6180a 支持审批流程中的分支网关和节点触发条件 2026-07-07 15:47:17 +08:00
尹峰 8ab62928b6 revert otcformat.js 2026-07-07 13:57:38 +08:00
hjhan b3c2fdfe38 test(fe): 补充守卫注释与架构闸门,防新增内联金额计算
- 生产接线处补注释,追溯到具体历史 bug (dcf649f2/20ea93d8/3c5f25a5/f873239a)

- swapCalc.js 注明哪些函数已接入生产、哪些是纯交叉校验规格

- 新增 guard_arch.js 架构闸门:扫描提交新增行,拦截 Vue 组件内联金额计算

- pre-commit hook 串行运行 单元测试 + 架构闸门
2026-07-07 13:26:32 +08:00
hjhan 7f64d48699 test(fe): 接入 SwapCalc 纯计算模块 + 前端精度回归测试
- incomeSwapTrade.js / swapTradeEdit.js 改为调用 SwapCalc.*(缩放/取整/全价推导)

- 新增 fe-tests 守卫:4 个历史 bug 回归 + 8 场景对齐 C# FrontendCalcReference 金标准 + otcformat.js 精度配置守卫

- 新增 .git/hooks/pre-commit 自动运行前端守卫(失败阻断提交)
2026-07-07 12:30:19 +08:00
尹峰 d5cbd45a8a Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine 2026-07-06 18:42:35 +08:00
尹峰 d7d9c796d8 merge glms/feature/1.4.2 0703版本 2026-07-06 18:42:19 +08:00
ruisu dc0cb9ec7b feat:老风控特批使用单独bool量识别,新风控需审批采用新状态RiskWarning,风控流程状态优先级Error>Warning(老风控特批,给前端CODE为ERROR)>RiskWarning>Success(可能带有ShowTIip)。新风控特批时,识别RULEID,不再采用BOOL统一通过 2026-07-06 17:41:13 +08:00
张名锐 ddac1d8e11 fix(swap-trade): 修复收益结算日期选择器节假日显示问题
- 将datepicker组件的holiday属性改为noholiday并设置为true
- 解决了收益结算日期选择器中节假日标记显示异常的问题
2026-07-06 16:58:50 +08:00
张名锐 3fff2791df Merge branch 'glms/feature/1.4.2_claer' into glms/feature/1.4.2 2026-07-06 16:46:02 +08:00
张名锐 777d492018 Merge remote-tracking branch 'refs/remotes/origin/glms/feature/1.4.2_claer' into glms/feature/1.4.2 2026-07-06 15:25:03 +08:00
张名锐 6835a593b0 feat(swaptrade): 添加收益结算日期验证和限制功能
- 新增 MaxIncomeValueDate 属性用于限制收益结算日期上限
- 实现 parseLocalDate 函数用于解析本地日期格式
- 在前端添加日期选择器的最大日期限制和验证逻辑
- 添加 isAfterMaxIncomeValueDate 和 validateIncomeValueDate 方法进行日期验证
- 在后端添加 GetMaxIncomeValueDate 方法计算最大收益结算日期
- 实现 ValidateIncomeValueDate 对收益结算日期进行服务器端验证
- 添加 NormalizeIncomeUnwindDate 方法统一处理平仓日期
- 在模型中新增 MaxIncomeValueDate 非映射属性用于前端显示
- 更新日期格式化函数确保日期字符串的一致性处理
2026-07-06 15:20:21 +08:00
hjhan 088df27011 fix(swap): 还原otcformat.js精度配置,修复期末全价只能录2位小数
f0ad4406(Revert ruisu合并进来的代码)在回滚RiskModule时,
误将otcformat.js从'压缩单行全precision=9'改成'多行precision=2',
导致StockEqvNotional/tradeSinglePrice/tradePrice/notional等字段
精度从9位降到2位,期末全价(TradingAmountAvg)等只能录2位小数。

还原到f0ad4406^的正确版本(全precision=9),恢复所有字段9位精度。

根因:前端运行时配置App_Data/Config/otcformat.js的precision限制,
与后端实体(EF默认decimal)和DB列(decimal(22,10))无关。

历史脉络:
- 3e650b8f(2026-05-28) 首次引入precision=2误伤
- 1932a2e7(2026-05-29) 首次还原回全9
- f0ad4406(2026-07-03) Revert ruisu时再次误伤(本次修复对象)
2026-07-06 09:55:01 +08:00
lisong d3a47e6d08 Merge branch 'glms/feature/1.4.2' of https://gitee.glmszq.com/gsty/onederiv/trs into glms/feature/1.4.2_claer 2026-07-03 19:08:48 +08:00
tengyufan 28edb057c7 交易日历刷新 2026-07-03 18:25:40 +08:00
锦麟 王 f0ad4406c9 Revert ruisu合并进来的代码 2026-07-03 17:41:42 +08:00
tengyufan cf15877bfd fix: 新增交易时开始日期默认值取系统日期,不再按CHN日历调整到下一工作日
问题:系统日期0703在CHN日历中为假日,GetNonHoliday将默认TradeDate
调整为0706,但预期行为是默认值始终取系统日期0703

修改:TradeDate默认值赋值处跳过GetNonHoliday调整,直接使用
valuedateBLL.ValueDate
2026-07-03 13:57:59 +08:00
tengyufan 2e50bb2615 fix: 修复交易参数页面保存按钮不显示的问题
FunctionRight.xml 中 系统日期设置/交易特批/出金特批/交易相关/
平仓行权复核/平仓行权审批 等权限挂在 FunctionParent"系统管理"下,
导致 DB 中 key 为"系统管理-XXX",但代码引用"系统参数-XXX",
HasRight 始终找不到,保存按钮不显示。

修复:修改 FunctionRight.xml,新增独立 FunctionParent"系统参数"节点
将22个系统参数权限移入,与代码引用的 key 对齐。
2026-07-03 13:13:48 +08:00
锦麟 王 de0e7f791b BugFix 计算中都使用GrossPrice 2026-07-02 20:46:58 +08:00
wjl bfb69c2eae Bugfix 修改字段错误 2026-07-02 19:24:14 +08:00
wjl 6b2ec7c8c1 回退TradingAmountAvg的修改,后续全价(含费)或者全价(不含费)再梳理 2026-07-02 18:50:58 +08:00
锦麟 王 96ddaee582 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-02 17:25:26 +08:00
锦麟 王 dcf649f27e #EQD-6402 手动互换-保存后价格精度不正确 2026-07-02 17:25:07 +08:00
ruisu c8293db227 fix:回退期权交易改造 2026-07-02 17:19:39 +08:00
ruisu 3ec484c2ec Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine 2026-07-02 16:56:20 +08:00
ruisu 917eacc7b7 feat:增加内存刷新接口,优化rule日志记录,不再使用EXception。非ACTIVE的rule不再编译。 2026-07-02 16:46:28 +08:00
张名锐 64299aa744 cleanup: remove leftover risk engine references 2026-07-02 16:19:26 +08:00
张名锐 d5a4eab2ec Revert "feat(风控引擎): RiskRuleService/RiskRuleController 权限控制及需求对齐"
This reverts commit a259b745ce.
2026-07-02 16:14:04 +08:00
张名锐 d01253a5da Revert "feat: 规则双模式公式表达式(RuleExpr)& 字段精简重构"
This reverts commit 28ed20e527.
2026-07-02 16:13:41 +08:00
张名锐 75dc6f182b Revert "refactor(risk-engine): ConditionJson 改为 RuleCondition 数组格式,精简 DTO 命名"
This reverts commit 3bf90e25ef.
2026-07-02 16:05:40 +08:00
张名锐 d0e6b31d5c Revert "优化调整规则管理"
This reverts commit e8ef5be862.
2026-07-02 16:05:38 +08:00
张名锐 dae112d199 Revert "fix(risk-engine): 修复多个风控引擎问题"
This reverts commit d7c09c793a.
2026-07-02 16:02:49 +08:00
张名锐 7347e527a7 Revert "修改URL地址"
This reverts commit 5caad4d0ff.
2026-07-02 16:02:43 +08:00
张名锐 eb778677e9 Revert "修改风控规则操作权限"
This reverts commit f53ef95222.
2026-07-02 16:02:41 +08:00
张名锐 1a15918f3d Revert "修改风控规则操作权限"
This reverts commit 29ac61e2d5.
2026-07-02 16:01:38 +08:00
张名锐 7d52311220 fix(swap-trade): 修正展期平仓页面数量显示问题
- 将浮仓数量字段从 floatPosition.Quantity 更新为 deal.CloseQty
- 确保页面显示正确的平仓数量信息
2026-07-02 13:32:02 +08:00
锦麟 王 365711b5ff 自动互换分红时,期末结算全价使用PosiGrossPrice 2026-07-02 13:02:14 +08:00
tengyufan 535eac0f62 fix: 交易日历IB逻辑收窄——仅成交日期默认值使用银行间日历
- 回退 ylotc.calendar.js 至纯CHN,恢复全部日期选择器为证券交易所交易日历
- SwapTrade2Controller 新增 GetBestCountry 按年份判断IB数据是否存在
- 仅成交日期(TradeDate)默认值使用IB优先/CHN回退,开始日期和到期日期保持CHN
- 平仓及其他交易页面日期选择器不再受银行间日历影响
2026-07-02 10:31:47 +08:00
tengyufan c053e36d7f fix(SwapTrade2): 为保证业务不受影响,暂时取消新版互换交易标的按类型筛选,两个标的输入框均返回全部标的
- consUnderlyingFlagNonBond 和 consUnderlyingFlagBond 去掉品种位,仅保留行为位
- 非债券和债券两个输入框不再按 Stock/Fund/CreditBonds 等类型过滤
- 与旧版 SwapTrade 行为对齐:不过滤标的类型,全量返回
2026-07-01 16:19:46 +08:00