Commit Graph
1553 Commits
Author SHA1 Message Date
tengyufan 336cc3d88b feat: 新增TRS合约日终Kafka推送
- 在日终任务的逐日循环中,于当日收盘、风险监控和日终文件生成完成后,
  按 valueDate 推送一条 TRS 合约全量快照;区间收盘逐日推送,空日推送空快照。
- 基于 eod_swap、trade、eod_swap_position、swap_position 组装合约字段,
  Kafka Key 使用 yyyy-MM-dd 格式的 valueDate。
- 新增带 Key 的 Kafka 发送重载;保留原有无 Key 发送及其吞异常行为,避免影响既有调用。
- 推送失败最多尝试 3 次;最终失败记录 Error 日志,并按 eod_swap.id 写入 push_status,
  空快照失败使用 record_id=0。
- 增加 ContractTopic 配置,默认及各部署环境使用 onederiv.trs.contract.v1。
- 增加定向单测,覆盖空快照、区间逐日推送、重试成功、三次失败和字段映射。
2026-08-25 16:07:21 +08:00
张名锐 147bcf4bf7 Merge branch 'glms/feature/0828_EQD-7084' into 'glms/feature/1.4.2'
feat(eodswapposition): 新增框架合约新口径展示功能

See merge request otc-dev/zszq-trs!14
2026-08-25 07:40:56 +00:00
张名锐 76a491a388 Merge branch 'glms/feature/0812_zmr_divPower' into 'glms/feature/1.4.2'
refactor(swap): 统一债券价格处理逻辑

See merge request otc-dev/zszq-trs!13
2026-08-25 07:39:53 +00:00
张名锐 f7766fb723 fix(dividend): 公司行为优化
- 债券付息查询/BondPayment/BondPaymentList这个界面 不再查询公司行为除权表

- 公司行为事件的说明 格式化一下变为:调整前:名义本金:XXXX  期初标的价格:XXXX 持仓数量:XXXX
调整后:名义本金:XXXX  期初标的价格:XXXX 持仓数量:XXXX

- 报错信息修改:当某个标的的除权除息数据仍有交易引用时
则修改标的公司行为数据时则提示“不可修改,有交易【交易编号】使用了该条除权除息数据”。
2026-08-25 15:39:01 +08:00
马冰冰 8cea7ee2e4 feature: 新增标的时 基金管理人设置为必填 2026-08-25 15:31:53 +08:00
马冰冰 670ff1e012 feature: 结算报告单中字段取值 2026-08-25 14:45:15 +08:00
马冰冰 aec0417b00 Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2 2026-08-25 14:44:38 +08:00
锦麟 王 9c42852a6b 每个追保区间的输入框调窄一些,使得表格的每个单元格里的数值不会超过一行 2026-08-25 14:34:46 +08:00
锦麟 王 b9591e4533 Merge branch 'glms/feature/1.4.2' of http://git.yiliantech.com/gitlab/otc-dev/zszq-trs into glms/feature/1.4.2 2026-08-25 14:06:12 +08:00
锦麟 王 2ded3a4068 #EQD-5618 国联民生-【TRS】【交易确认书】- 追保线梯度配置,新增平仓线与预警线、授信现金比例 2026-08-25 14:05:50 +08:00
张名锐 7d0eb16f64 feat(eodswapposition): 新增框架合约新口径展示功能
- 在EodPnlCalculator中添加CalculateEodSwapRiskNewFields方法,实现新口径计算逻辑
- 创建EodSwapRiskNewFields和EodSwapRiskNewResponse模型类,支持新的展示字段
- 实现SearchEodSwapNewList查询方法,复用旧查询权限控制并计算新字段
- 添加index=3的新框架合约Tab页面,使用独立查询接口和列配置
- 前端JavaScript中实现colModelGridEodSwapNew列模型,替换旧字段并新增9个字段
- 完善导出功能支持新Tab的标准格式导出,保持与旧口径分离
- 更新测试用例验证新框架合约前端接线正确性
2026-08-25 13:49:30 +08:00
马冰冰 255209420b feature: 结算单报告模板调整 2026-08-25 12:03:11 +08:00
马冰冰 8379f3fc2c feature: 为结算通知书中的附件增加字段 2026-08-25 11:20:25 +08:00
hjhan 7fff6e8236 fix(swap-eod): 用 MarginModes.ForLinq 替换 EF LINQ 中的 MarginModes.Contains
swap_position 的 EF 查询在 Where 里使用 MarginModes.Contains(x.InterestMode),
该静态方法无法被 EF Core 翻译成 SQL,导致有数据时抛 Translation failed。
改用 MarginModes.ForLinq(List<int> 形态)即可翻译为 IN (...)。
内存集合(details/interests 已 ToList)不受影响,无需改动。
2026-08-25 11:09:13 +08:00
张名锐 695d78810f refactor(dividend): 优化分红业务逻辑和注释说明
- 更新除权参考价计算公式中的收盘价描述为登记日收盘价
- 优化Swap模块中公司行为处理的日志注释
- 区分除权日和登记日的信息处理流程
- 优化持仓基线重置和公司行为事件记录的注释说明
- 完善现金分红和配股处理的相关注释
- 优化实时持仓切换和事件匹配的逻辑注释
2026-08-25 10:15:51 +08:00
张名锐 ae8156020e refactor(swap): 统一债券价格处理逻辑
- 将债券价格处理逻辑从依赖 StructureType 改为基于 IsBond 判断
- 移除 SetPosiPrice 方法中的 useBondPriceScale 参数
- 更新收入互换交易中的 multiplier 计算方式
- 调整平仓交易中 isBondTRS 的判断条件
- 同步修改相关注释说明
2026-08-25 09:57:23 +08:00
锦麟 王 d43e77ee6f #EQD-6948 国联民生-实现保证金规则(2)追保金额的产生与收盘计算 ETF 子类分档(转债ETF/科创债ETF) 2026-08-24 18:23:26 +08:00
锦麟 王 13e13fa9a3 Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2-margin 2026-08-24 17:22:44 +08:00
锦麟 王 8a0659312b BugFix 特批路径没法走通 2026-08-24 17:21:21 +08:00
锦麟 王 c35befbe8f #EQD-6948 国联民生-实现保证金规则(2)追保金额的产生与收盘计算 收盘计算和授信占用 2026-08-24 16:34:18 +08:00
hjhan 610279c3aa chore(cleanup): 清理编译器已证明的死代码残留(CS0219/CS0162/CS0169)
- SwapEodPositionService: 删除衡泰推送残留的swapInsertEnum/swapPosiEnum赋值及fposition判空赋值块,赋值后从未读取(CS0219×2)
- TradeConfirmService: if(addlog)分支仅剩三个同源死赋值(原衡泰推送调用已删),删赋值并将if/else翻转为if(!addlog),保留原else的Task.Run实时持仓刷新(CS0219×3)
- QuotaMonitorService.checkTrade: 唯一存活case互换价格偏离比例恒return,删除switch后不可达收尾段(CS0162);删除从未使用的posiVal与重复的currentValue=null赋值
- YLErpWebApiHelper: 删除从未赋值/读取的私有字段baseUrl(CS0169)

UnderlyingDbDataSource.DataSourceUpdated(CS0067)为IDataSourceEvent接口契约成员且DataCacheManager经接口订阅,不属死代码,保留不动。全量重编YLErpDAL通过,0警告0错误。
2026-08-24 13:55:16 +08:00
锦麟 王 8648b62af9 Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2-margin 2026-08-24 09:40:03 +08:00
hjhan 733ade024a revert: 补回d42742ab误随批删除的client三个下划线partial——_ClientDutyDirectorList/_ClientFileList/_ClientInvestorsList。d42742ab提交信息声明"待查库未删"但git rm混批时被一并带走,与声明不符。这3个走clientEditV2.cshtml:123/clientViewV2.cshtml:127的PartialAsync(item.viewPath)通道,viewPath源自DB AppConfig(PGroup=System,PName=ClientEditConfig),代码grep无法穷尽DB覆盖;默认嵌入配置(Resources.clientEditConfig)零引用已复核。恢复后维持"仅DB显式覆盖可达"的待查状态,查库确认后再处置 2026-08-22 10:29:57 +08:00
hjhan d7e6955132 revert: 恢复误删的Admin后台区域——用户澄清/admin管理后台是在用的,上条消息"没有使用"指的是admin页面也没引用jquery-3.6.0而非页面废弃。恢复Areas/Admin整目录28文件+Scripts/admin两文件。jquery三件套/3个业务死JS/11个死视图/NCrontab的删除仍然有效(admin布局零jquery引用,复验不受影响) 2026-08-22 10:19:36 +08:00
hjhan d42742ab10 chore(swap): 删除Admin后台区域与前端死文件——Areas/Admin整区(6控制器17视图,用户确认无人使用,主站零入口链接,/front/clientEditConfig由FrontController直走Service与该区无关,配置编辑界面移除但底层Service与DB配置不动)+Scripts/admin;jquery-3.6.0三件套(拷贝当天即零引用,运行时一直用Statics/libs 3.5.1);3个业务死JS(TradeMarketReport_DmaEodPosition/UserDefinedStructure/forwardTradeMarginCost,含Areas/App_Data语料双重复核);11个死视图(supervise2022副本3个/Picktrade两个/申万PDF模板等,渲染通道全代码内零命中);NCrontab.Signed零使用死包。client下划线3个partial因走DB配置viewPath通道待查库未删 2026-08-22 10:18:26 +08:00
hjhan 5436a88657 chore(swap): 删除YLErpUnitTest整个废弃测试项目——不进任何sln无法构建,全部文件冻结于2024-05-09分支拷贝日两年半零维护;68%是OptionCalculatorV1旧副本(sln内UnitTestProject自有副本且被实际引用),其余为被取代的DB依赖手工草稿测试与过期资源。-12351行 2026-08-22 08:21:23 +08:00
hjhan 7ac219ad0f chore(swap): 删除确认书/结算报告厂商定制死分支——国联专属分支Company恒定,24个厂商确认书编号生成器+批量开关收敛国联直调(瑞达/海通/格林大华批量方法连带),结算报告模板与HasExtendVol同款收敛;保留WCZD公开方法(插件接口ITradeDocGeneratorContext成员,防外部DLL ABI);顺手修正GenerateGuolianContractNo存量错注释(国贸→国联)。-1214行,Release/Debug/UnitTestProject构建0错误 2026-08-22 08:11:43 +08:00
hjhan 7b65ec0979 chore(swap): 删除全部期货公司定制保证金计算死代码——36个厂商类+东吴DongWu子目录+调度器四处厂商switch收敛Default直调+MarginTypeEnum三个不可达枚举项;连带YLErpUnitTest厂商类历史快照副本与4个厂商测试(3个零断言草稿/1个招证金标准)。本分支Company=国联无专属case,厂商路径本就永不执行;顺带消除Debug配置残留的格林大华#if DEBUG两处编译错误。-23231行,Release/Debug/UnitTestProject三处构建0错误 2026-08-22 07:58:25 +08:00
hjhan 0ff7375696 refactor(web): 百分比列展示嗅探一行式显式化——6处逐字重复抽PercentColumnText纯函数
structure.js×3/structure_dz.js/tradeEditV2.js/tradeEditGroup.js的setExtendInfo里同一行式:靠indexOf("%")>0嗅探值是否已带%,决定原样展示还是×100加%。抽为app/trade/percentColumnText.js纯函数(UMD,jest可测),表达式逐字符等价——含>0而非>=0、空值回退ColumnDefaultValue、回退源也无值时NaN%等历史行为全部被7个特征测试冻结(TDD:测试先红后绿)。四个页面cshtml在tradeHelper后补脚本序;jest覆盖率清单纳入。fe-tests 326/326通过
2026-08-22 07:46:58 +08:00
hjhan ef0e3b957b refactor(web): 收益互换平仓页(incomeSwapTrade)符号三元显式化——4处裸三元改UnwindLegSign调用
与unwindSwapTrade同款配方:interestPnlSign(利息盈亏,InterestDirection==1→+1)/payDirectionSign×2(浮动端与均价手续费方向)/positionTypeSign(多空方向,==1多头→+1)。语义逐处核对等价:本页无保证金返还本金列,不涉及marginRebatePrincipalSign反号。顺手删calcClosePnL注释死块与interestRatio注释行。SwapIncome.cshtml补unwindLegSign.js脚本序。node --check通过
2026-08-22 07:44:44 +08:00
hjhan 6ff068d70b chore(swap): 删除格林大华保证金#if DEBUG明显bug分支——Release下case空体误落国泰君安公式组
本部署CompanyEnum=国联(走default→DefaultMarginCalculation),且保证金正在其他分支重写,各家期货公司定制对本分支无意义;格林大华case体整体包在#if DEBUG里,Release编译时空case直接fall-through到国泰君安/光大光子/兴业商贸组——若格林大华环境用Release版,保证金一直在用别家公式。连同DAL的GLDHMarginCalculation.cs与UT下整文件注释的死备份一并删除。dotnet build 0错误
2026-08-22 07:44:23 +08:00
hjhan e90f2d9fc2 chore(swap): 删除dbf旧导入死簇与HTStatus死字段——SwapFlowImportService整条zip/dbf链+TradeBase.HTStatus
ImportSwapTradesFromZip标记[Obsolete]且全仓零调用,其私有依赖链GetDbfFiles→GetDbfDatas→GetSwapFlowData_SZ/_SH→ConvertDateTime仅被它触达,连同DotNetDBF/SharpZipLib两个using一并删除;Excel导入路径(ImportSwapTradesFromExcel)不受影响。TradeBase.HTStatus全仓无读无写,属性删除后EF不再映射该列(数据库列残留留给DBA评估)。

dotnet build 0错误
2026-08-22 07:38:08 +08:00
hjhan e936a2f853 chore(swap): 删除衡泰死配置链与DataCompare孤儿Dto——OtcAppConfigHelper整个文件+HedgingSource/HTUpdate配置字段+DataCompare/Dto四件套
死链全貌:appconfig的"对冲交易数据源/接衡泰修改回执"两键→OtcAppConfig两属性→AppHelper启动复制→OtcAppConfigHelper两静态属性→全仓零读取方。OtcAppConfigHelper除这两属性外无其他成员,整文件删除;配置经JsonHelper.Deserialize加载,存量JSON多余键自动忽略,无需动线上配置。DataCompare模块仅剩Dto无服务无Controller,HengTaiLiquidationTime全仓无写入点。

保留:Configcolumn.衡泰对账列名常量(可能被DB列配置引用)。dotnet build 0错误
2026-08-22 07:36:48 +08:00
hjhan 5035854ca1 chore(swap): 删除衡泰旧直连方案孤儿DTO——HengTaiModel下22个零引用报文模型+3处无用using
排查背景:UnderlyingEntryFullPriceLeg头注提及"GetUnwindInterestsByHT已随死链清理移除",全仓核实其配套报文模型(SwapTradeReq/SwapPosiReq/ReqQryIRSDbReq等)自拷贝入库起即无任何调用点,属"查询衡泰数据库"旧直连方案残留。存活的风控DTO(ClientRiskCheckReq/Resp)保留,KafkaTask/riskController/QuotaMonitorService的活using不动。

验证:逐类名grep全仓外部引用=0;dotnet build 0错误(编译通过同时证明所删3处using确无类型引用)
2026-08-22 07:35:41 +08:00
hjhan d6c1f192aa chore(web): 删除前端注释死代码——7个脚本文件的注释代码块及孤儿调用链
tradeEndConfirmList.js:两段被注释的main.open2弹窗(生成/批量下载确认书旧交互)、ModifyPayDate三函数簇(唯一入口按钮已被注释,cshtml的myModal弹窗同步删除,BatchDownLoadDoc中仅为死弹窗服务的tip/htmlContent变量一并清理);swapTradeList/SwapflowList/TradeMarketReport×2/structure:散落的注释代码行(旧日期校验/sortGrid/layer.open/表头分组等)。

保留swapTradeEdit.js 440-455的部署踩坑文档注释。行为零变更:node --check×7通过,fe-tests 319/319通过
2026-08-22 07:34:12 +08:00
张名锐 9d1b3df2bb Merge branch 'glms/feature/0812_zmr_divPower' into 'glms/feature/1.4.2'
refactor(test): 优化自动互换测试中的流水事件持久化逻辑

See merge request otc-dev/zszq-trs!12
2026-08-21 09:29:44 +00:00
张名锐 657c44b8f4 refactor(test): 优化自动互换测试中的流水事件持久化逻辑
- 移除多余的 PersistFlowEvent 方法重写
- 更新 PersistedFlowEvents 属性实现以直接使用 FlowEvents
- 添加详细注释说明测试接缝的设计意图
- 简化测试代码结构提高可维护性
2026-08-21 17:28:09 +08:00
张名锐 2b366f26ad Merge branch 'glms/feature/0812_zmr_divPower' into 'glms/feature/1.4.2'
refactor(EodModule): 移除债券支付服务中对公司行为同步镜像的依赖

See merge request otc-dev/zszq-trs!11
2026-08-21 09:14:04 +00:00
张名锐 fa63d4ee69 Merge branch 'refs/heads/glms/feature/1.4.2' into glms/feature/0812_zmr_divPower 2026-08-21 17:09:15 +08:00
hjhan 3c7e25820a feat(admin): EQD-5320 邮件模板配置下拉补资金通知书两项——原下拉为cshtml写死HTML仅4个确认书类型,后端AjaxGet/Save按EmailType查存email_template本不限类型;新增追保资金通知书/轧差资金通知书两option,value与bond-oms Java FundEmailHandler查询串一字不差(注释冻结约定),此场景{{文档编号}}/{{交易列表}}渲染为空 2026-08-21 16:55:13 +08:00
张名锐 392e36a820 feat(bond): 添加公司行为现金分红标识并优化付息计算逻辑
- 在 BondPayment 模型中添加 IsCorporateActionCashDividend 属性用于区分不同数据来源
- 修改 BondPaymentService 中的 CalcPayment 方法,按每条记录来源分别处理金额单位转换
- 更新单元测试以验证混合债券付息和公司行为分红的正确计算
- 移除不再需要的 useBondPriceScale 参数简化方法接口
- 修正注释说明以反映新的按记录类型分别计算的逻辑
2026-08-21 16:51:55 +08:00
tengyufan e5a1ca1f68 fix: 收益互换OA移动审批改为内部定时轮询
- 复用 HostedTaskService 定时器轮询待处理的 OA 移动审批状态
- 增加单实例防重入控制,避免同一进程内重复同步
- 新增 Erp.TradeApprovalOaSyncIntervalSeconds 配置,默认 30 秒
- 支持在 Admin 全局配置页修改查询间隔,保存后立即生效,无需重启
- 补充 AppConfig 初始化 SQL,不再依赖 PowerJob 或 XXL-JOB 外部调度
2026-08-21 16:48:37 +08:00
hjhan 4fcbc15f05 refactor(web): EQD-5320 清理不可达的互换日终估值导入死代码——#importEod弹窗div与showImport/importEodFile/importClose三函数整块删除:全库无任何按钮调用showImport()(弹窗不可达,业务无从使用),其内部/trs_hub_api/valuationEndOfDay/import直连反代为死代码且是全库最后一处可执行trs_hub_api依赖(剩余引用均为历史注释);bond-oms侧接口不动;如需恢复按BatchSendSettleEmail同款C#代理模式(注释留指引) 2026-08-21 16:01:47 +08:00
lisong 120f443aae Merge remote-tracking branch 'dest/glms/feature/1.4.2' into test 2026-08-21 16:00:48 +08:00
tengyufan 3f0984800a feat: 收益互换开平仓及收益结算接入OA移动审批
#EQD-6425 国联民生-衍生品系统移动审批(提交OA流程)
- 审批节点支持配置“关联OA移动审批”
- 创建OA流程并记录请求、requestId、状态及异常备注
- 支持OA轮询同步审批通过、退回和归档状态
- 本地通过、拒绝、撤回时同步强制归档未结束OA流程
- 增加审批列表OA备注展示及本地Mock联调接口
- 新增OA审批记录表和数据库升级脚本
- OA移动审批使用独立查询地址及isnextflow配置,不影响交易确认书OA
2026-08-21 15:54:54 +08:00
hjhan 23a02e06c4 fix(swap): EQD-5320 单行发送Email按钮报'平仓流水id解析为空'——同事fa927b21新增的单行按钮传swap_flow_event.EncryptId(加密串,全站enid惯例),而端点原只按逗号分隔数字解析long.TryParse必败;控制器兼容双形态令牌:非数字即DecryptLong解密(失败返0不抛,非法串忽略),错误文案附原始入参便于定位;批量按钮(数字id)行为不变 2026-08-21 15:41:56 +08:00
苏睿 6c547a0d13 !27 增加vega(1bp)希腊值
Merge pull request !27 from feature/p132_155-yf-vega-1bp
2026-08-21 07:40:04 +00:00
苏睿 e867e702b5 !28 登录界面美化
Merge pull request !28 from feature/p132_154-yf-new-sso-login
2026-08-21 07:39:39 +00:00
hjhan b9968dc80a feat(swap): EQD-6953 后端值域闸门补疑似到期债券判定——IsResultAbsurd新增分支:IsMaturedDegenerate(ytm=0且净/全价均为面值100,抽为public纯函数供单测)命中即返回null+真实原因文案,走既有'宁可不回写'守卫链;判定条件与前端swapCalc.js同款闸门一致(注释互指);新增6个单测(命中/正常券180205实测值/零息平价/息票平价/ytm null/IsResultAbsurd分支接线)全过 2026-08-21 15:29:17 +08:00
hjhan cd981527ab feat(web): EQD-6953 前端值域闸门补疑似到期债券判定——ytm=0且净/全价均为面值100三者同时成立(现实在市券几乎不可能,UAT 060203.IB实证jquantlib空现金流退化形态)时按既有'不回写+toast真实原因'处理,提示核对到期日或手工填写;录入页/平仓页共用此闸门同步生效;判定条件与后端BondCalcHepler.IsMaturedDegenerate同口径(注释已互指);新增4个jest用例(命中/正常券/ytm=0但价格非面值/价格面值但ytm非0)61/61通过 2026-08-21 15:26:46 +08:00