Commit Graph
1243 Commits
Author SHA1 Message Date
锦麟 王 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 697c7babf2 新增文档:互换交易价格字段存储与显示规范
汇总互换价格显示Bug排查结论,供后续维护参考:
- 核心规则:债券类入库相对价(÷100)、展示×100;非债券类原样
- ÷100机制:由FastVue.parseNumber实现(percent:true时number/100)
- 关键字段映射:swap_position/swap_flow_event/eod_swap_position
  (标注TradingAmountNetAvg名像期末实装期初、PosiGrossPrice在
  event表为NotMapped等易混点)
- 互换事件生成路径:手动/自动互换-分红型/利息端
- 已修复Bug与教训(4个)
- 附录A:排查工具箱SQL(5个,期初持仓/事件入库值/分红数据源/
  中债估值/脏数据修复)
- 附录B:字段命名与数据流向速查表
2026-06-25 19:15:54 +08:00
hjhan 818619bc70 补充DV01计算工具的注释:明确输出单位为万元及入参单位
Dv01Helper.CalcDv01 与业界标准一致,但输出单位是万元而非元,且
PosiQuantity须为元面值单位。原注释未说明这些口径,易导致误读。
补充:
- 类注释:写明公式等价业界标准DV01(元)/10000,输出万元
- posiQuantity入参:标注须为元面值单位
- vobp入参:标注为每100元面值1bp的价格变动
- 返回值:标注单位为万元
- 券面总额计算行:标注交易数量单位为元面值

仅注释改动,不改逻辑。
2026-06-25 19:15:27 +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
ruisu 32b7de93e2 Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine 2026-06-25 17:26:48 +08:00
ruisu 7747d26ed0 支持从数据库读取rule与application,进行匹配校验,以及拼接返回值 2026-06-25 17:25:47 +08:00
锦麟 王 25626b845e PosiDividendSum 扣除互换分红的时候方向有问题 2026-06-25 15:38:48 +08:00
锦麟 王 99f7f82835 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 15:26:44 +08:00
锦麟 王 aadba136c8 平仓计算互换分红利息调整方向 2026-06-25 15:26:40 +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
hjhan ca68178bf8 修复互换收益结算期初净价显示0的问题
期初净价列取TradingAmountNetAvg字段,后端InitIncome赋值为
position.PosiNetNoFeePrice(可空)。部分交易录入时未填该字段(值为0),
导致期初净价显示为0(如trade 1892/1859)。

改为:TradingAmountNetAvg为0时回退使用PosiNetPrice(期初净价,始终有值)。
仅前端兜底,不改动后端及平仓页。
2026-06-25 14:41:55 +08:00
锦麟 王 bc6fed554d 平仓和分红中,后续平仓分红计算不对的问题 2026-06-25 14:33:50 +08:00
锦麟 王 206e070d52 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 14:33:08 +08:00
锦麟 王 6d17e95197 收盘 分红计算逻辑中算上手动的已实现的分红 2026-06-25 14:33:01 +08:00
hjhan 20ea93d89c 修复互换收益结算期末价被错误缩放及显示问题
a00fe3cc合并etf分支时,误把initDeal中TradingAmountAvg的×100缩放去掉,
导致期末标的价格停留在相对价态(1.02),提交时又被getPriceScale()÷100,
最终swap_flow_event.TradingAmountAvg入库为0.0102,且盈亏计算错误。

对齐平仓页(unwindSwapTrade.js)的正确实现:
- initDeal: TradingAmountAvg = initPosiNetPrice × multiplier 转为界面百分比态
- SwapIncome表格期末价列: 不再经过priceFormat(避免二次×100),直接显示界面态值
2026-06-25 14:04:54 +08:00
tengyufan 0514e34e13 Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2 2026-06-25 13:55:10 +08:00
tengyufan 5c2ca835f1 fix: 移除整体业务汇总-互换维度的DV限额取值,避免用单笔维度限额导致超限误报 2026-06-25 13:55:01 +08:00
锦麟 王 1aba5cca00 后端自动分红后,互换持仓价值 已实现盈亏修改 2026-06-25 09:41:16 +08:00
锦麟 王 3627f12e10 前端,平仓和收益结算扣除掉已实现分红 2026-06-25 09:40:44 +08:00
尹峰 193123a9bf Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine 2026-06-24 18:24:15 +08:00
尹峰 c2fc699e57 feat(risk-engine): 完善风控规则种子数据与 CRUD 接口优化
1. 新增 21 条通用风控规则及应用配置种子数据(seed_rules.sql / seed_applications.sql)
2. 新增 9 个风控变量(偏离度类、执行价、最低保证金率、参考价格)
3. DTO 字段重命名:ExpectedVersion → Version,Keyword → RuleName/VariableName
4. 规则列表返回 ConditionJson 和 RuleExpr 字段
5. 应用列表查询支持按规则名称数据库级筛选(替代内存过滤)
6. 启用/停用操作不再递增 Version 号
7. RiskEngineService 单例构造使用 SystemUser 替代 null
8. RiskRuleService 移除冗余实例字段,改用 GetInstance() 直接调用
2026-06-24 18:23:43 +08:00
ruisu fb9c7430e9 Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine 2026-06-24 15:44:07 +08:00
ruisu 1fa7a8b79c 将Application与编译独立,跑通基础链路 2026-06-24 15:05:24 +08:00
尹峰 28ed20e527 feat: 规则双模式公式表达式(RuleExpr)& 字段精简重构
- 新增 RuleExpr 字段,支持结构化拼接和自由文本两种模式,二选一互斥
- 删除 RuleCode/FormulaText/ApplicationCode/SourceExpression/IsImplemented/VariableCode/TargetCode
- 重命名 FormulaJson→ConditionJson, FormulaExpr→RuleExpr, ImplementationScript→VariableExpr, RuleDescription→RuleText
- RuleId(bigint)→RuleIds(varchar) 多规则支持
- FormulaCondition: variableCode(string)→variableId(long), thresholdVariableCode→thresholdVariableId
- 新增 44 条变量池 seed 数据
- 设计文档同步更新
2026-06-24 09:44:13 +08:00
吴方海 f9424d0a6d 分红与互换分开 2026-06-23 19:16:03 +08:00
吴方海 76913010b2 修复自动互换 2026-06-23 17:39:37 +08:00
吴方海 2f09bfa8d7 客户端下单风控不需要dv限额风控 2026-06-23 16:51:04 +08:00
尹峰 5b77bbf53e merge and fix conflict 2026-06-23 16:06:01 +08:00
尹峰 a259b745ce feat(风控引擎): RiskRuleService/RiskRuleController 权限控制及需求对齐
【权限控制】
  - FunctionRight.xml 注册 16 个风控引擎权限标识(规则/应用/变量/日志 四类 Tab+操作权限)
  - RiskRuleController 28 个 Action 均添加 [MyAuthorize] 校验
  - 权限管理员角色自动获得全部风控权限(UserInfo.cs)

【需求对齐】对照 v1.15 需求文档修复差异:
  - 审计日志操作类型命名对齐:APPLICATION_* → APP_*,VARIABLE_* → VAR_*
  - 规则列表新增按变量编码筛选(QueryRiskRuleReq.VariableCode → FormulaJson.Contains)
  - 变量列表新增分页支持(QueryRiskVariableReq 继承 BaseSearchReq,QueryVariableList → SearchListResult)
  - 需求文档同步至 v1.16
2026-06-23 16:01:31 +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
陈斐andClaude 3e357312c2 feat: 风控引擎核心重构 - 表达式树编译 + Roslyn Scripting + 规则模型合并
本次提交实现风控引擎从占位代码到可运行版本的核心升级:

【模型合并】
- RiskRule.cs:删除 RiskRuleApplication,将策略/时点/范围合并到 RiskRule
- 新增 FormulaJson 字段,用于 Roslyn 脚本解析
- 新增 CompiledScript 运行时字段(预编译委托,不持久化)

【规则编译器 - RuleCompiler.cs】
- ParseFormulaJson:解析 FormulaJson 条件列表
- BuildScriptCode:生成 Roslyn C# 脚本代码
- CompileScript:用 Roslyn 编译为 Func<RiskContext, bool> 委托
- 支持多条件 AND(逗号分隔自动拆分)
- 变量类型映射:YLErp.DBModels.trade 等

【EvaluateRisk 升级】
- LoadRules → 筛选 TriggerPoint → 执行 CompiledScript → 按策略聚合
- 异常处理:返回 NeedApproval(审批类,可审批通过)
- 示例规则:名义本金>1亿 且 保证金比例>50% → 禁止

【项目依赖】
- 新增 Microsoft.CodeAnalysis.CSharp (4.12.0)
- 升级 System.Text.Encoding.CodePages 6.0.0 → 7.0.0

【验证】
- 簿记交易确认(BOOK_CONFIRM)已接入 QuotaMonitorService
- 编译通过,运行验证通过

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-22 19:31:20 +08:00
吴方海 a00fe3ccaa Merge branch 'glms/feature/1.4.2-etf' into glms/feature/1.4.2
# Conflicts:
#	YLErpWeb/wwwroot/Scripts/app/swaptrade/incomeSwapTrade.js
2026-06-22 13:45:25 +08:00
陈斐andClaude 4140293b36 feat: 新增风控引擎RiskEngine模块(第一版骨架)
- 新增YLErpDAL/Modules/RiskEngine文件夹,与RiskModule平级隔离
- 新增核心模型:
  - RiskContext.cs:风控上下文(TradeId, TriggerPoint, DataMap)
  - RiskResult.cs:风控结果(Passed, Blocked, NeedApproval, Warnings, TriggeredRules)
- 新增RiskEngineService:
  - Evaluate():1==1占位,验证服务可实例化
  - EvaluateRisk(RiskContext, triggerPoint):核心风控检查入口
- 集成到现有流程:
  - QuotaMonitorService.QuotaCheck()末尾接入风控引擎
  - 触发时点:BOOK_CONFIRM(簿记交易确认)
  - 按策略映射回QuotaTrialStatusEnum(Blocked→Error, NeedApproval→Warning)
- 文件头包含完整技术方案与TODO清单

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-22 11:23:11 +08:00
吴方海 04d3696170 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-18 10:33:13 +08:00
吴方海 ab09cbc9ca #EQD-6196 国联民生-收益互换期间付息支持自动支付 2026-06-18 10:33:04 +08:00
zheng.zhang 6a8dd5e344 refactor(tradeEdit): use统一格式化方法处理名义金额 2026-06-17 17:22:12 +08:00
zheng.zhang 375bd4d3dc feat(swaptrade): 新增名义本金数值的四舍五入格式化处理 2026-06-17 16:32:55 +08:00
尹峰 c020b1b0fa !17 fix(swap): 修复收益互换结构类型查询逻辑
Merge pull request !17 from glms/feature/1.4.2
2026-06-11 10:04:23 +00:00
尹峰 284812ed48 Merge branch 'glms/feature/1.4.2' of https://gitee.glmszq.com/gsty/onederiv/trs into glms/feature/1.4.2 2026-06-11 17:49:11 +08:00
张名锐 a4237cc178 fix(swap): 修复收益互换结构类型查询逻辑
- 移除了前端传入的结构类型参数限制
- 添加了对普通债券类收益互换和普通收益互换的固定查询条件
- 实现了临时方案以同时查询两种类型的收益互换数据
- 保留了原有的有效状态验证逻辑
- 注释说明了当前实现为临时解决方案
2026-06-10 14:13:39 +08:00
张名锐 7bd1e6bff1 fix:交易编号生成 不同客户 在同一天、同一 OpponentRole 类型下的交易序号都会独立从 1/A 开始递增,互不干扰。 2026-06-10 10:55:25 +08:00
张名锐 b8358a7198 fix:解决标的债券期限缓存不一致的问题 2026-06-09 16:17:48 +08:00
张名锐 68cafde942 fix:确认书编号生成修复 2026-06-09 15:17:25 +08:00
张名锐 4e9b2d7b47 feature: 确认书模板修改 2026-06-09 13:38:10 +08:00
吴方海 a6e6980f9b 成交簿记 fr007过滤条件 2026-06-08 18:11:50 +08:00
Weiming fca74041ca 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-08 12:04:07 +08:00
张名锐 dbd2c533a1 fix:邮箱配置发件人修复 2026-06-05 13:57:20 +08:00