张名锐
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
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
tengyufan
20e4b82ae3
fix: 修复国联收益互换交易编号首次生成大小写不一致
...
- 首次入库后按 UpperTradeNumber 配置统一交易编号大小写
- 避免自动生成小写编号在后续编辑保存时被转为大写
- 补充交易编号大小写配置的单元测试
2026-07-30 17:46:18 +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
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
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
76f5caabd9
fix(EQD-6604): 补 GuolianContractNoGenerator.BuildTradeNumber 纯函数,修复 UnitTestProject 编译失败
...
测试 GuolianContractNoGeneratorTest 调用了 BuildTradeNumber(trade, clientCode, sequenceNo) 纯函数,
但生产类此前只有依赖数据库的 Generate(YLContext, ...)。抽出不连库的 BuildTradeNumber 供测试与 Generate
共用,编号格式与现有 Generate 输出完全一致(GLMS-{client}-{yyyyMMdd}-FICC-{序号}-{去点标的})。
6 个单测全部通过,生产行为不变。
2026-07-29 18:39:09 +08:00
张名锐
db46e48ec5
fix(swap): 修复互换产品到期结算和利息计算逻辑
...
- 优化到期日最终结算判断逻辑,确保只有完全覆盖才清零待实现余额
- 引入利息金额舍入处理,避免精度差异导致的结算误差
- 完善自动互换流水处理,确保实际结算金额与待实现计算分离
- 修复部分平仓后日终持仓继承逻辑,保持利息累计连续性
- 调整到期自动互换处理,确保最后结算后待实现余额正确归零
- 优化利息收入和费用的独立计算,避免历史数据重复计算问题
2026-07-29 17:37:57 +08:00
tengyufan
d1f697c524
#EQD-6604 国联民生-确认书编码生成环节移到簿记(支持手工录入)
...
feat: 国联民生收益互换簿记后按确认书规则生成交易编
- 补充单测文件
2026-07-29 17:14:40 +08:00
tengyufan
e1c5f72418
#EQD-6604 国联民生-确认书编码生成环节移到簿记(支持手工录入)
...
feat: 国联民生收益互换簿记后按确认书规则生成交易编号
- - 国联收益互换首次入库后复用原交易确认书编号规则生成交易编号,保留手工填写的交易编号
- 覆盖手工新增、系统流水自动簿记、普通交易导入、流水导入和日终合成今日交易流水
- 自动流水簿记增加本地事务,交易编号回写与基础簿记数据失败时统一回滚
- 交易确认书生成时直接取交易编号,不再重新生成确认书编号
- 结算管理-交易确认书页面将合约编号更名为交易确认书编号
- 上传确认书时将合约编号更名为交易确认书编号
- 历史交易编号不处理
2026-07-29 16:45:29 +08:00
张名锐
3d73835be5
fix(swap): 结算或全部平仓后,待实现置0
...
- 添加 NormalizeSettledInterestAmounts 方法处理手工平仓和互换的利息事件精度
- 添加 NormalizeManualSettlementAmounts 方法在手工结算前收敛流水金额
- 将利息计算精度从 ConsGlobal.PriceRound 统一调整为 InterestCalculationPrecision(12位)
- 在日终持仓快照中添加精度标准化处理,利息腿保留12位精度
- 修复全量平仓时待实现利息和费用的清零逻辑
- 在收益结算事件后清空待实现利息余额避免重复计算
- 更新单元测试验证现金与两位利息事件的一致性
2026-07-29 14:42:03 +08:00
tengyufan
8c4f452482
fix: 统一互换部分平仓交易费用与待结算费用的分摊舍入
2026-07-29 13:47:45 +08:00
tengyufan
e1d68393f8
fix: 修复基础费率平仓待结算费用按实际平仓规模分摊
2026-07-29 13:07:55 +08:00
张名锐
fd2a054764
feat(swap): 实现互换交易价格精度控制功能 init
...
- 添加 swapPricePrecisionHelper.js 工具类处理价格精度格式化
- 新增 swappriceprecision.js 配置文件定义各类金融产品的精度规则
- 在 EodPositionRisks.cshtml 和 SwapIncome.cshtml 中引入新的价格格式化脚本
- 替换原有的价格格式化函数为基于产品类型的动态精度控制
- 移除旧的价格验证和标准化逻辑,改用新的精度控制机制
- 添加 vue-swap-price-input 组件用于精确的价格输入控制
- 更新 Controller 中的价格处理逻辑以支持新精度格式化方式
2026-07-29 09:44:04 +08:00
马冰冰
d89827f9ad
Merge branch 'refs/heads/glms/feature/1.4.2' into glms/feature/1.4.2-0727
2026-07-28 16:50:09 +08:00
马冰冰
d836d192fe
fix: #EQD-6812 国联民生-TRS簿记页面增加续做按钮(自动新建一个除日期外要素相同的合约)-交易费用后付字段未填充
2026-07-28 16:48:50 +08:00
ruisu
c77d44b54a
feat:支持变量的表达式具体业务值报警。优化性能
2026-07-28 16:45:32 +08:00
张名锐
af364b5c8a
Revert "fix(swaptrade): 互换开平仓事件流水 小数点精度调整"
...
This reverts commit bf6b27ba19 .
2026-07-28 14:50:01 +08:00
张名锐
bc9b8a0be1
Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2
2026-07-28 14:31:33 +08:00
张名锐
53b858cba4
Revert "refactor(swap): 互换开平仓事件流水 导出小数点精度调整"
...
This reverts commit 89da38fab9 .
2026-07-28 14:30:03 +08:00
lisong
018d8c9bb6
Merge remote-tracking branch 'dest/glms/feature/1.4.2' into feature/p132_74-risk-engine
2026-07-27 17:27:48 +08:00
lisong
3ec4f3440f
Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine
2026-07-27 17:26:51 +08:00
尹峰
ca77a71f2c
feat: 批量操作交互逻辑统一&解耦规则与应用的状态
2026-07-27 16:54:06 +08:00
ruisu
2977f658f7
feat:支持变量为复杂表达式。
2026-07-27 15:01:51 +08:00
张名锐
89da38fab9
refactor(swap): 互换开平仓事件流水 导出小数点精度调整
...
- 将InitYtm属性从decimal?类型更改为string类型
- 调整TradingAmountAvg、TradingAmountFeeAvg和Quantity字段的小数位数从4位改为2位
- 修改InitYtm的赋值逻辑,添加空值检查并应用OtcFormatMoney格式化方法
- 统一货币金额格式化参数设置,移除分组符号并指定小数位数
2026-07-27 13:35:16 +08:00
张名锐
b6afab6a91
Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2
2026-07-27 13:17:51 +08:00
张名锐
bf6b27ba19
fix(swaptrade): 互换开平仓事件流水 小数点精度调整
...
- 将事件列表中的价格字段格式化统一为两位小数或九位小数
- 替换原有的otcformat.trading.umprice格式化方法
- 在前端JavaScript中添加EventTwoDecimalFormat和EventNineDecimalFormat函数
- 修改后端C#代码中的OtcFormat调用改为OtcFormatMoney并调整精度参数
- 为事件列表脚本添加版本参数以确保缓存更新
2026-07-27 13:17:39 +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
ruisu
a4436515d2
Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine
2026-07-24 13:57:25 +08:00
ruisu
6e11b17d98
feat:修改用例
2026-07-24 13:41:47 +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
张名锐
32af85d35c
Merge branch 'glms/feature/dotnumber' into glms/feature/1.4.2
...
# Conflicts:
# YLErpWeb/Views/SwapTrade2/TradeEdit.cshtml
# YLErpWeb/wwwroot/Scripts/app/swaptrade/swapTradeEdit.js
2026-07-23 17:53:37 +08:00
张名锐
c4379d4b90
fix(swap): 修正日终保证金本金计算逻辑
...
- 移除保证金本金的1/10缩放处理,改为直接使用实际本金数值
- 修正了保证金本金计算中的除以10逻辑,确保显示正确的本金金额
- 保持利息计算使用原始本金累积值,避免破坏保证金利息金额准确性
- 更新注释说明,明确当前风险页按日终保证金
2026-07-23 17:49:02 +08:00
马冰冰
ef179fc26c
新增利息端类型字段
2026-07-23 16:59:58 +08:00
张名锐
32a3a45c85
refactor(swap): 修复债券日终价格映射
...
- 移除 GetSwapValuationPrice 方法中的 posiGrossPrice 参数
- 删除债券价格转换相关的注释代码和日志记录
- 简化债券价格处理逻辑,直接使用原始价格进行四舍五入
- 更新所有调用 GetSwapValuationPrice 的地方以匹配新方法签名
- 移除多余的价格转换和展示态判断逻辑
2026-07-23 14:17:26 +08:00
hjhan
185a23e978
fix(swap-trade): 修复新增互换交易时 InitYtm 为 null 触发数据库约束报错
...
根因:InnerSaveNewTrade 只做 req.Clone() 直接入库,未给 trade.InitYtm 赋值;
而编辑场景(InnerSaveEditTrade:582)有从 swap_positions 取 InitYtm 的逻辑,
新增场景漏了。前端填的"成交收益率"存在 swap_position.InitYtm 上,但 trade
表 InitYtm 列要求 NOT NULL,新增时为 null 直接报错。
修复:新增场景同样从 req.swap_positions 取 InitYtm,无则默认 0(与
PrepareTrade:353 的 flowMerge.InitYtm ?? 0 处理一致)。
验证:dotnet build 0 错误
2026-07-23 13:52:04 +08:00
hjhan
7b007bddfa
refactor(swap-test): 抽取 TestableSwapEodPositionService 公共基类收敛重复 Stub
...
- 新建 TestableSwapEodPositionService 收敛 8/8 Stub 重复的高频 override
(PersistEodSwapPosition/SaveAllChanges/GetCurrencyRate/AddClientCash)
+ 统一 OptUserInfo 构造 + PersistedPositions/SaveChangesCount 输出捕获
- SwapEodPositionService.DealInterests 改 protected virtual(行为零变化)
- 8 个 ScenarioTest 改为继承基类,删除重复 override
- 消灭 DealInterestsScenarioTest/DealInterestsGoldenReplayTest 的反射调用
(typeof().GetMethod().Invoke → 直接调用 DealInterests)
验证:dotnet build 0 错误;dotnet test SwapModule 284通过/6跳过/0失败
2026-07-23 11:16:11 +08:00
张名锐
bc961c3411
fix(swap): 修复互换交易中债券价格精度处理问题,扩充到11位计算
...
- 统一债券价格四舍五入规则,使用AwayFromZero模式
- 为债券类型添加特殊的精度处理逻辑
- 修复前端价格显示精度计算问题
- 优化价格存储精度控制,区分债券和其他产品类型
- 修复初始化YTM和净价精度处理问题
- 更新价格验证逻辑以支持动态精度设置
2026-07-23 11:06:50 +08:00