Commit Graph
153 Commits
Author SHA1 Message Date
hjhan 250c41b925 refactor(interest): 抽取 IIndexFixer 取价接缝 + 清理固定值腿错误测试
为后续拆三类腿做准备,新增 FR007 取价的独立接口层(参考 QuantLib IborIndex
分层),本次零生产代码改动,全部为新增小文件。

新增文件(取价接缝,供后续 SwapDealService 6 处 inline 取价迁移用):
- Framework/YLErp.Core/Interest/IIndexFixer.cs
  接口定义:给定取价日和标的代码返回当日利率,取价与计息解耦
- Framework/YLErp.Core/Interest/IndexFixerBase.cs
  取价日计算工具:收敛原散落 6 处的 GetNonHolidayDefore(date.AddDays(rule))
- YLErpDAL/Modules/SwapModule/Fr007IndexFixer.cs
  生产实现 + GetFixingOrThrow 辅助方法,独立文件便于单测

测试清理(删除基于错误假设的测试):
- 删除 SwapFixedInterestLegClosePercentBugTest.cs 整个文件
  该文件假设'固定值腿利息应随平仓比例线性缩放',但固定值是合同写死的、
  永远不随平仓比例变化。d1badfe4 的'修复'本身才是错的,当前分支已正确回退
- 修正 SwapUnwindPrepayPrincipalBugTdd.cs 固定值测试方法
  断言从'应=Fix×0.5'改为'恒=Fix不随比例变化',对齐正确的业务定义

已知失败(非本次引入,留待后续与拆腿一起修):
- BondTrsAutoSwapScenarioTest 的 AS_001/004/008/009/010/011 共 6 个
  原因:SaveAutoSwapDeal 直接调 AddClientCashInCashOut(非virtual)绕过
  AddClientCash(virtual)封装,无库环境抛'客户信息未找到'。
  从 096d2609 引入时即失败,需 AddClientCashInCashOut 加 virtual + 客户数据
  mock,与拆腿那次可测性改造一起做
2026-08-10 18:01:37 +08:00
hjhan d78d5a46c4 feat(interest): 新增 TRS 利息腿纯函数库 SwapInterest
独立于 SwapDealService / SwapEodPositionService 的纯函数计息层:无副作用、
同 input 同 output,正交轴(算头算尾 / 单利复利 / unwind / 待实现收益)各自独立。
术语采用金融标准 Unwind / Realized / Unrealized。纯新增零接入核心计息逻辑,
待 Excel 对账确认"绿而不错"后 pilot 替换。
2026-08-09 16:07:27 +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
尹峰 f256a623df feat: create_eod_bond_lending_rate_table.sql 2026-08-06 13:10:05 +08:00
lisong 36877744fa Merge remote-tracking branch 'dest/glms/feature/1.4.2' into feature/p132_74-risk-engine 2026-08-05 17:28:20 +08:00
lisong a889925440 Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine 2026-08-05 17:27:15 +08:00
tengyufan 864a29d6a8 #EQD-6605 国联民生-确认书编号规则调整(不基于甲方乙方判定)
feat: 国联民生收益互换按簿记分类生成交易编号

簿记账户新增“簿记分类”字段,支持代客、融券,新增账户默认代客,历史账户统一初始化为代客
簿记账户分类设为必填,列表、编辑及详情页面同步展示
修改已被交易引用的簿记账户分类时增加二次确认,并提示关联交易数量
国联民生收益互换交易编号不再根据甲乙方判断,改为根据簿记账户分类生成
代客使用数字序号,融券使用字母序号,分别从已有同客户同日编号的最大序号继续递增
保留手工交易编号优先逻辑,标准格式的手工编号参与后续最大序号计算
生成候选编号后检查完整交易编号是否已存在,存在则继续递增
新增簿记分类编号格式、最大序号计算及数字字母序列隔离专项单测
2026-08-05 15:55:01 +08:00
ruisu 8fb3c4392c feat:风控触发时显示应用ID、
新老风控组合校验:
老风控Error/Warning,新风控需审批——点击特批即两边都放行
老风控Error/Warning,新风控禁止——不展示
老风控Error/Warning——展示特批,且只特批老风控。
新增风控流程日志
2026-08-05 14:39:01 +08:00
张名锐 2eba4ce2a9 feat(settlement): 添加标的类型判断逻辑支持价格表分流
- 在ConsGlobal中为所有标的类型常量添加中文注释说明
- 新增UseStockPriceTable方法用于判断标的类型是否使用股票价格表
- 修改SettlementPriceImportService中的价格表分流逻辑
- 添加单元测试验证股指期货、基金等进入股票价格表的逻辑
- 确保Shibor、利率收益率和债券指数进入正确的商品期货价格表
2026-07-31 16:57:49 +08:00
yexuzhong 5afd766a5f 债券收益率改成了利率收益率 2026-07-31 15:13:51 +08:00
yexuzhong 5d580960d8 #EQD-6669 国联民生-期权希腊值计算步长和细节调整(定价引擎部分) 2026-07-31 10:35:25 +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 43981e245b #EQD-6718 国联民生-收益互换隐藏收支方向,默认我方收取浮动收益
fix:国联民生收益互换隐藏收支方向,默认我方收取浮动收益

- 新增可配置开关 Erp.SwapFloatingIncomeReceiveOnlyMode,默认关闭,支持在普通模式与网厅适配模式之间切换
- 网厅适配模式下,新增及续做收益互换默认浮动端为我方收取,并隐藏新增、平仓、收益结算及查看页面的浮动端收支方向
- 普通模式保持原有展示和编辑逻辑,历史交易不修改原有浮动端收支方向
- 日终持仓风险_互换将浮动收支方向和标的多空合并为交易方向,并同步影响导出
- 交易方向映射收取+B为多头、收取+S为空头、支付+B为空头、支付+S为多头
- 新增交易方向映射专项前端单测
2026-07-30 14:46:07 +08:00
尹峰 ca77a71f2c feat: 批量操作交互逻辑统一&解耦规则与应用的状态 2026-07-27 16:54:06 +08:00
tengyufan 4987962aca #EQD-6597 国联民生-簿记时新增基本费率字段(开平仓费用),并且自动计算
feat: 完善互换平仓交易费用自动计算

- 支持百分比和单位数量模式自动计算平仓交易费用
- 支持全部平仓和部分平仓联动重算
- 保持手动互换不自动填充平仓交易费用
- 补充前后端相关单测
2026-07-27 11:57:20 +08:00
tengyufan a575de7bbe Revert "feat(swap): 新增基础费率字段,支持百分比/单位数量模式切换及自动计算"
This reverts commit c9071a4eff.
2026-07-27 09:45:41 +08:00
tengyufan c9071a4eff feat(swap): 新增基础费率字段,支持百分比/单位数量模式切换及自动计算
- 浮动收益端新增基础费率列(原单位交易费用),位于数量与交易费用后付之间
- 支持百分比模式(4位小数)与单位数量模式(2位小数)切换,默认百分比
- 填入基础费率后自动计算交易费用后付,手动修改后反算基础费率
- 平仓时根据 PosiFeeType 自动计算平仓交易费用,支持全部/部分平仓联动
- 收益结算(手动互换)不自动填充平仓交易费用
- 查看交易页面新增基础费率展示(百分比带%后缀4位,单位数量2位)
- swap_position 表新增 PosiFeeType 字段标识费率模式(0=百分比 1=单位数量)
- 切换模式时基础费率和交易费用归零,避免精度冲突
- 修复 TradeView.cshtml 引用了不存在字段 category_tag 的编译错误
2026-07-24 17:32:07 +08:00
张名锐 aa8fb9fd7a Merge branch 'glms/feature/swaptrade_6603_mbb' into glms/feature/1.4.2
# Conflicts:
#	YLErpDAL/Modules/SwapModule/SwapTradeService.cs
2026-07-24 13:29:10 +08:00
lisong 7b7331245c Merge remote-tracking branch 'dest/glms/feature/1.4.2' into feature/p132_74-risk-engine 2026-07-24 09:27:02 +08:00
尹峰 3651d3d2df feat: 风控引擎前后端统一操作符 2026-07-23 18:30:05 +08:00
马冰冰 ef179fc26c 新增利息端类型字段 2026-07-23 16:59:58 +08:00
张名锐 a91010589a fix: Bonds枚举对应的值改回Bond 2026-07-23 14:16:50 +08:00
张名锐 bbf98ba61c fix(data): 修正债券常量定义
- 将 Bonds 常量值从 "Bond" 更正为 "Bonds"
2026-07-22 18:08:04 +08:00
马冰冰 4f9a9e2d72 fix: 更改保证金模板名称配置的取值 由admin-> 数据字典 2026-07-22 16:51:40 +08:00
张名锐 c58a9d40c4 feat(swap): 统一【期初、期末交割价格】精度处理
- 在ConsGlobal中新增SwapDeliveryPriceRound常量定义为9位小数
- 更新incomeSwapTrade.js中交割价格计算逻辑,添加getStorageDeliveryPrice方法
- 修改SwapConsumerService中TradingAmountAvg字段的精度处理
- 添加ValidateDeliveryPrices和NormalizeDeliveryPrices方法进行交割价格验证和标准化
- 在SwapEodPositionService中对PosiGrossPrice和UnderlyingPrice进行精度处理
- 更新SwapFlowEventService中TradingAmountAvg字段的精度处理
- 在SwapFlowImportService中添加交割价格精度处理
- 更新前端界面中的输入格式配置,使用新的交割价格精度设置
- 修改SwapflowList.js中交割价格精度处理逻辑
- 在SwapFlowService中添加交割价格验证和精度处理
- 更新SwapTradeAutoService中交割价格精度处理
- 修改SwapTradeService中PosiGrossPrice字段的精度处理
- 更新unwindSwapTrade.js中交割价格计算逻辑
2026-07-22 14:53:46 +08:00
尹峰 15c249a423 Merge remote-tracking branch 'origin/glms/feature/1.4.2' into feature/p132_74-risk-engine 2026-07-21 15:06:17 +08:00
尹峰 165ab4e695 feat: 风控批量操作前后端统一改造,允许部分成功并优化提示信息 2026-07-21 15:05:15 +08:00
lisong ec5da002f4 Merge remote-tracking branch 'dest/glms/feature/1.4.2' into feature/p132_74-risk-engine 2026-07-17 15:41:32 +08:00
尹峰 b2d5fb9900 修改规则&应用默认状态为停用 2026-07-17 15:39:25 +08:00
张名锐 6676b62573 fix(swap): 修正掉期产品保证金利息计算逻辑
- 修正FloatingUnrealizedPnl字段定义,包含未结交易费用
- 更新MarginInterestGain和MarginInterestLoss字段的文档说明
- 添加CalculateSwapRealizedPnl方法处理保证金腿利息现金流方向
- 修正RealizedPnL计算逻辑,避免保证金利息重复计算
- 调整保证金本金和利息计算口径的一致性处理
- 修正保证金利息现金流方向与本金方向的相反关系
2026-07-16 19:55:44 +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
ruisu cf0a857a95 feat:增加风控超时校验时间插入sql 2026-07-16 09:21:14 +08:00
ruisu 8e0e779133 feat:根据ai merge意见修改:dbContext取消与单例riskEngienService的绑定,反射代码修改。
支持老风控Error情况下的二次特批
2026-07-14 17:18:33 +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
张名锐 4f5af864dc Merge branch 'glms/feature/valuation_0709_zmr' into glms/feature/1.4.2 2026-07-14 11:16:45 +08:00
张名锐 4449bd5824 feat(swap): 更新互换估值功能并优化数据模型
- 添加互换估值V1配置常量以支持新版本
- 将PeriodAmount和DividendAmount字段改为可空decimal类型
- 更新字段注释说明预付金利率和利息的计算方式
- 修改净额结算金额定义,排除期初和追加预付金本金
- 在报表服务中添加安全求和操作防止空值异常
- 增加多个汇总字段包括股息、保证金利息等统计
- 重构预付金处理逻辑,改用加权平均计算方式
- 新增加权保证金利率和利息计算辅助方法
- 调整前端表格列顺序,优化交易编号显示位置
- 更新数值格式化器以支持空值处理和精度控制
- 添加文档列顺序恢复功能确保表格一致性
2026-07-14 09:46:54 +08:00
锦麟 王 623183f47f Merge branch 'glms/feature/1.4.2_ApprovalProcess' into glms/feature/1.4.2 2026-07-14 09:14:07 +08:00
hjhan 0fda5fd1cc fix: 日终价格「数据来源」改为价格行自身语义(人工/系统两档)
移除中债估值细分与操作人姓名显示,按价格行自身 DataSource 列判定:期货/股票读 DataSource(otc-marketdata 同步写系统、手工写人工);债券 update_user 非空→人工、否则→系统。筛选仅人工/系统两选项,异常来源值返回空。ResolveBondDisplaySource 精简为单参纯函数。
2026-07-13 15:42:28 +08:00
hjhan 760ffd62e6 fix: 日终债券来源固定中债估值、人工改动显示操作人并补上传溯源
china_bond_valuation 来源恒为中债估值(聚源仅转发,无人手工维护),不再按 JSID 推断系统/人工;eod 两表仍用自带 DataSource(人工/系统)。债券被人工改动(update_user 非空)时,日终列表来源列显示操作人姓名,否则显示中债估值;操作人经已有 create_user/update_user 列溯源(零 DDL)。手工上传 xlsx 的债券分支补戳操作人,与表单编辑口径一致。配套单测 EodPriceDtoTest / EodPriceGoldenReplayTest + golden JSON。
2026-07-13 11:00:33 +08:00
hjhan 3f5e9a0be9 fix: 日终价格管理按真实标的类型显示并统一数据来源
1. 新增 RealInstrumentType 显示字段,从 underlying_manager 取真实类型,
   解决 eod_commodity_future_price 记录一律显示'商品期货'的问题
   (UnderlyingInstrumentType 继续作为查表路由键,前端/查看零改动)。
2. EodPriceBase 补'系统'常量,债券 DataSource 改为一次性三元判定,
   消除散落的 JSID 魔法字符串与重复 remap。
注:受'不增字段、不动库'约束,债券来源仍依赖 JSID 推断。
2026-07-10 19:41:19 +08:00
尹峰 abf2cf5985 规则和应用增加description字段&变量和规则保存校验公式编译有效性 2026-07-10 18:23:39 +08:00
张名锐 7df9e8060e feat(swap): 添加互换合约估值功能和优化数据模型
- 在ClientSwapPositionRequest中新增BookId字段用于资产分类查询
- 新增FloatingUnrealizedPnl、InterestPaymentMethod、MaturityNettingValuation等估值相关字段
- 添加MaturitySettlementDate、DividendAmount、AdditionalMarginAmount等持仓详情字段
- 更新前端表格列模型,调整浮动端和估值实现收益分组显示
- 实现框架合约导出功能,支持完整数据筛选结果导出
- 优化名义本金计算逻辑,修复长短仓数值处理问题
- 完善付息方式和估值口径的业务逻辑处理
- 添加TRS估值、期间分红等关键业务字段计算
- 实现Excel导出时分组表头格式化功能
- 修复框架合约列排序和分组表头显示问题
2026-07-10 18:20:20 +08:00
尹峰 c1ded96985 变量级联更新规则优化&增补注释 2026-07-09 17:52:14 +08:00
张名锐 358993bedb feat(swaptrade): 添加期末头寸风险表新字段支持
- 在EodSwap实体模型中新增标的类型、期间付息/分红、保证金利息收支字段
- 在前端表格列模型中添加标的类型、期间付息/分红列定义
- 在前端表格分组配置中将新字段归入对应分组显示
- 实现后端服务中对新字段的数据查询和计算逻辑
- 添加保证金利息收入支出的分类汇总功能
- 完善标的类型字段的数据源获取和展示逻辑
2026-07-09 15:11:58 +08:00
锦麟 王 fb59c6180a 支持审批流程中的分支网关和节点触发条件 2026-07-07 15:47:17 +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
张名锐 6835a593b0 feat(swaptrade): 添加收益结算日期验证和限制功能
- 新增 MaxIncomeValueDate 属性用于限制收益结算日期上限
- 实现 parseLocalDate 函数用于解析本地日期格式
- 在前端添加日期选择器的最大日期限制和验证逻辑
- 添加 isAfterMaxIncomeValueDate 和 validateIncomeValueDate 方法进行日期验证
- 在后端添加 GetMaxIncomeValueDate 方法计算最大收益结算日期
- 实现 ValidateIncomeValueDate 对收益结算日期进行服务器端验证
- 添加 NormalizeIncomeUnwindDate 方法统一处理平仓日期
- 在模型中新增 MaxIncomeValueDate 非映射属性用于前端显示
- 更新日期格式化函数确保日期字符串的一致性处理
2026-07-06 15:20:21 +08:00