Commit Graph
1537 Commits
Author SHA1 Message Date
锦麟 王 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
马冰冰 38e0a7795f Merge branch 'glms/feature/1.4.2-M819' into glms/feature/1.4.2 2026-08-21 14:19:40 +08:00
马冰冰 f16634534c feature:#EQD-7093 国联民生-交易确认书校验(2)针对ETF标的获取新增信息并且支持配置分类。 ETF交易确认书中填充参考标的证券全称、参考标的基金管理人, 2026-08-21 14:16:05 +08:00
张名锐 02da9d78a3 refactor(EodModule): 移除债券支付服务中对公司行为同步镜像的依赖
- 不再依赖 bond-sync 镜像,Stock/Fund 公司行为直接作为展示行返回
- 展示金额按"每 10 份派现金额"换算为 GiveCashAmount / 10
- 添加公司行为除权表数据查询逻辑,与现有查询结果合并
- 简化债券支付服务中公司行为处理逻辑,移除去重机制
- 更新现金分红处理逻辑,统一通过 CalcBondPayment 读取 ex_dividend_info
- 移除不再需要的 channel_source 和 jsid 字段设置
2026-08-21 13:50:31 +08:00
hjhan fa927b2133 fix(zszq-trs): 结算确认书列表新增每行发送邮件按钮,复用 BatchSendSettleEmail
- 新增 tradeEndConfirmSendEmail.js(独立文件降冲突),含纯函数 buildSettleEmailSendPayload 便于单测
- tradeEndConfirmList.js showToolName 加按钮,受 pageData.canSendEmail + ContractDocUrl 控制,跳过"多空组合"
- cshtml 引入新脚本;后端零改动(复用 SwapEndConfirmService.BatchSendSettleEmail -> bond-oms Java)
- 安全: 新按钮不引入新增 XSS/CSRF 暴露; CSRF token 缺失为全站既有问题,与批量按钮同源
2026-08-21 13:21:15 +08:00
锦麟 王 7b1f69a410 #EQD-6948 国联民生-实现保证金规则(2)追保金额的产生与收盘计算 授信和现金tag 2026-08-21 10:33:29 +08:00
张名锐 8efb468c56 Merge branch 'glms/feature/1.4.2' into glms/feature/0812_zmr_divPower 2026-08-21 09:50:12 +08:00
hjhan 0567955434 fix(swap): EQD-5320 批量发送确认书改走C#服务端代理——原前端直连/trs_hub_api反向代理在未配nginx的环境404(UAT实测),与计算器(SendConfirmEamil同款BondOmsInterface_BaseUrl服务端出口)通路不一致;新增SwapEndConfirmService.BatchSendSettleEmail(POST代理bond-oms batchSend,契约DTO+成败日志)与SwapTrade2Controller.BatchSendSettleEmail(逗号id串防呆解析);前端改调同源/swaptrade2端点保留error兜底;232/232前端测试通过 2026-08-21 09:40:01 +08:00
hjhan 00ae047e01 docs(swap): EQD-5320 EmailTemplateService补设计守卫注释——占位符朴素替换/不做HTML转义均为有意决策,与bond-oms Java SwapEmailHandler同构,勿单边升级模板引擎或加转义,新占位符两侧同步 2026-08-21 09:24:23 +08:00
hjhan 433bca9530 fix(web): EQD-5320 批量发送确认书按钮点击无反应——$.ajax原无error回调,/trs_hub_api代理不通/超时/返回非JSON(如被登录页重定向)时完全静默;补error回调给HTTP状态+排查指引(控制台同步详错),success兜底非标准返回结构并提示笔数,成功后刷新列表;232/232前端测试通过 2026-08-21 09:16:28 +08:00
hjhan 640c78b5a9 refactor(swap): EQD-6977 trace可读性第二批:①②与p{id}语义化——承接①→已并复利本金(capitalized)、②→段内已计利息(carryIn),日志/类头注/方法注/测试断言四处同步,运维凭日志即知两承接量含义;SwapDealService×12+SwapEodPositionService×1的p{position.id}统一改融资腿{position.id}(FIX GetFloatRate/Resolve/Segments/EodCloseRefix全系列);测试断言同步更新(此前漏查到一处trace断言已一并改);27/27罚息单测通过,Swap全套644例中仅2例DB依赖失败(干净树复验为既有环境问题) 2026-08-21 08:54:47 +08:00
hjhan 9d68e56797 refactor(swap): EQD-6977 罚息trace腿标识p{id}改为融资腿{id}——原缩写p可读性差(用户反馈),全文件9处统一升级;无测试断言/外部消费依赖该字符串,27个罚息单测全过 2026-08-21 08:41:51 +08:00
hjhan 771bd6798b feat(swap): EQD-6977 罚息承接①三分支补全程推导trace——段中平仓+有快照主路径此前零留痕(用户反馈定位难),现打出快照日期/TdInterestPrincipal/share/平仓本金/原始差/钳0结果,原始差为负额外提示疑口径不一致;重置日+有快照补InterestIncomeSum×share推导;无快照兜底补事件基数-平仓本金推导;①异常凭单行日志即可区分快照基数/份额/平仓本金三因;27个罚息单测全过 2026-08-21 08:38:42 +08:00
hjhan 7209ffc16b 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-21 08:07:39 +08:00
hjhan e8d0a76442 refactor(web): 平仓页收付方向符号显式化unwindLegSign.js+4例单测——裸三元(x==1?±1:∓1)抽为命名函数并冻结业务事实:利息盈亏与保证金返还本金对同一InterestDirection枚举必须反号(利息=买方持有标的向交易商融资的成本,保证金返还=退客户自己交的钱,业务确认非笔误),不变量断言两符号之和恒0,顺手统一必挂;interestPnlSign对利息/保证金两腿通用(changeInterestAmount模板对两类行都绑定,已核实);另删死代码:this.ratio/this.shortRatio数据属性+赋值全库无读取(模板亦无绑定)及注释掉的历史三元;SwapUnwind.cshtml补script标签,两个执行型测试沙箱喂真实模块;行为等价(Number===1与==1对实际入参等价已验证),全套315例绿 2026-08-21 07:17:20 +08:00
hjhan 6e76f1c10d fix(swap): EQD-6977 无preEod兜底①=0且账龄超重置周期补退化告警trace——interestWindowEmpty(当日已结息)早退不重放覆盖种子值时①静默0(重置日分支本有同类告警,段中分支漏)复利每周期并本理应①>0;trace含事件基数/平仓本金两侧对比值+账龄天数+重置周期+疑似成因指向(interestWindowEmpty种子未重放/日终归档缺失)足够事后定位根因;承接块抽为ResolveCompoundCarry私有纯方法(Merge瘦身,三分支数据契约注释随行,行为零变化);TDD先行3例trace钉子:退化必告警(先红)/兜底>0不告警/真首日不告警;罚息域27例+GetInterests入口语义9例全绿 2026-08-21 07:10:04 +08:00
hjhan 8b66875098 test(swap): EQD-6977 罚息兜底补share<1恒等式用例——50%平仓+无preEod场景钉merger复刻GetInterests本金口径的接缝(标的期初全价CalcNotional=posiNotional×closePercent vs 重放基数按closePosiNotionalValue缩放);现有用例全closePercent=1m,两处口径若有偏差在share=1下不可见、share<1时①混入本金差;变异验证:CalcNotional临时忽略closePercent唯此用例红(1败7过)证明鉴别力;RunFee加closePercent参数默认1m存量调用零影响 2026-08-21 07:09:57 +08:00