hjhan
|
ce4ef62950
|
[EQD-6838] 修复约定2补充:计算器算不出时另两字段清空+三标识全清(main.post reject 未走 .done)
- 根因:main.__post 在 resp.success===false(业务错误) 时 deferred.reject,而 calcBondForItem 仅挂 .done,
导致业务错误/网络异常分支整段被跳过,applyBondCalcFailure+syncBondFlags 不执行,约定2补充静默失效。
- 修复:main.post 链补 .fail 处理 reject(业务错误+网络异常),统一在此清空非源字段+清 源/AUTO/REV 标识;
另为两个 pre-POST 失败分支(源为空、开始日缺失)补 syncBondFlags,使视图刷新。
- 错误文案仍由 __post 的 alertFn(main.message) 非阻塞提示,不重复弹。纯函数 applyBondCalcFailure 逻辑不变。
|
2026-07-29 19:44:10 +08:00 |
|
hjhan
|
7c0572ade8
|
fix(EQD-6838): 约定3 按键清标识加排查日志+forceUpdate兜底
1. syncBondFlags 改用新对象引用({} 字面量)确保 Vue 2 响应式触发
2. 加 \ 兜底,防止 \ 因相同值未触发更新
3. onBondPriceKeydown 加 console.log 排查日志,确认事件是否触发
用户反馈:版本标记 v20260729a 已加载、重算按钮已消失,
但约定3(删字符不消失标识)和约定2补充(计算错误不清零)仍未生效。
加日志确认 keydown 事件是否触发、状态值是否正确。
|
2026-07-29 19:31:59 +08:00 |
|
hjhan
|
8124bb46bb
|
chore(EQD-6838): 加版本标记日志用于排查 Jenkins 部署是否加载最新代码
在 swapTradeEdit.js 和 fastVue.base.js 开头加 console.log 版本标记。
F12 Console 看到 v20260729a 说明加载的是最新版本;
看不到说明缓存未刷新或访问的是旧页面。
|
2026-07-29 19:27:52 +08:00 |
|
hjhan
|
f5ed65aac5
|
fix(EQD-6838): 补网络错误/响应异常分支的约定2补充处理
calcBondForItem 的 if(!resp||!resp.obj) return 分支之前直接返回,
未调 applyBondCalcFailure,导致网络错误时另两字段和标识未清空。
现在统一清另两字段+三标识,与业务错误/开始日缺失/源字段为空一致。
|
2026-07-29 19:21:06 +08:00 |
|
hjhan
|
cee69a02eb
|
fix(EQD-6838): 修复约定2/3标识不更新的Vue响应式问题 + 组件内emit keydown + 去掉重算按钮
根因1(约定3按键不触发):
- .native 修饰符在 vue-number-input 上不可靠(jQuery在mounted中重新绑定了keydown)
- 改为在组件内部 addEventListener('keydown') + $emit('keydown')
- cshtml 从 v-on:keydown.native 改为 v-on:keydown
根因2(约定2/3标识不更新):
- bondDriverType/bondAuto/bondRev 不在后端数据中,直接赋值不触发Vue2响应式更新
- 成功分支之前用 $forceUpdate 兜底,但失败/编辑/按键分支没有
- 新增 syncBondFlags 方法,用 $set 强制触发响应式更新
- 在所有状态变更后调用:onBondPriceEdit/onBondPriceKeydown/onDpPriceInput/
calcBondForItem成功/失败/setUnderlyingCode/加载路径
其他改动:
- 去掉"重算"按钮(用户确认不再需要)
- calcBondForItem 成功分支用 syncBondFlags 替代 $forceUpdate
- 重建 bundle.js(fastVue.base.js 是 bundle 输入)
|
2026-07-29 19:20:13 +08:00 |
|
hjhan
|
d662399ab4
|
feat(EQD-6838): 债券三字段交互约定2/3 + 簿记逻辑1 实现
问题:
- 簿记基础逻辑1未满足:选标的后 setUnderlyingCode 调 getSpotPrice 自动填充净价/全价
- 交互约定3未满足:vue-number-input 的 input 事件只在失焦/回车时触发(__change),
按键输入时不触发,导致用户输入过程中 源/AUTO 标识不会消失
- 交互约定2补充未满足:calcBondForItem 的早期返回分支(源字段为空/开始日缺失)
未调 applyBondCalcFailure,导致回车后另两字段和标识未清空
修复:
- 簿记逻辑1:setUnderlyingCode 切换标的时清空净价/全价/收益率三字段,
不再调 getSpotPrice 自动回填;refreshInitialUnderlyingPrices 续发场景也不自动填充
- 交互约定3:cshtml 三个 vue-number-input 加 v-on:keydown.native 绑定,
新增 onBondPriceKeydown 方法——按键即清 源/AUTO 标识、标本字段 REV;
回车键(13/108)和修饰键(Ctrl/Alt/Tab/方向键等)除外
- 交互约定2补充:calcBondForItem 的源字段为空/开始日缺失两个早期返回分支
也调 applyBondCalcFailure,确保回车后另两字段清空、三标识全清
|
2026-07-29 19:09:29 +08:00 |
|
张名锐
|
9962ee4e5a
|
fix(swaptrade): 交易簿记 全价净价等不补0
- 移除多余的数字分割和补零逻辑
- 使用正则表达式优化小数点后无效零的去除
- 简化空值检查条件
- 保留有效数字部分的正确格式化输出
|
2026-07-29 18:06:03 +08:00 |
|
张名锐
|
a4906010a9
|
fix(swaptrade): 前端 净价/全价精度控制分开处理
- 添加净价全价配置独立维护逻辑
- 根据列名判断使用netPrice或grossPrice字段
- 期初净价列使用netPrice字段格式化
- 其余价格列保持使用grossPrice字段
|
2026-07-29 17:12:51 +08:00 |
|
tengyufan
|
e1c5f72418
|
#EQD-6604 国联民生-确认书编码生成环节移到簿记(支持手工录入)
feat: 国联民生收益互换簿记后按确认书规则生成交易编号
- - 国联收益互换首次入库后复用原交易确认书编号规则生成交易编号,保留手工填写的交易编号
- 覆盖手工新增、系统流水自动簿记、普通交易导入、流水导入和日终合成今日交易流水
- 自动流水簿记增加本地事务,交易编号回写与基础簿记数据失败时统一回滚
- 交易确认书生成时直接取交易编号,不再重新生成确认书编号
- 结算管理-交易确认书页面将合约编号更名为交易确认书编号
- 上传确认书时将合约编号更名为交易确认书编号
- 历史交易编号不处理
|
2026-07-29 16:45:29 +08:00 |
|
hjhan
|
4bebcf7fcb
|
fix(bundle): bundle.js 纳入 ENTER 事件改动并移除 ZWNBSP;MyJs.js 剥离 BOM [EQD-6838]
|
2026-07-29 16:32:15 +08:00 |
|
hjhan
|
14ed09d628
|
build: 接入 BuildBundlerMinifier 自动重建 bundle 产物并剥离源文件 BOM
- 根因:页面(_MainLayout 等)加载的是 bundle.js 等由 bundleconfig.json 打包的生成产物,
但 csproj 未接入 BundlerMinifier,dotnet build 不会重生它们,Jenkins 只是把 git 里
陈旧的 bundle.js 原样发布 -> 改了 fastVue.base.js 后回车不生效(部署的 bundle 仍是无
enter 的旧版)。且源文件带 UTF-8 BOM,拼接后每个 BOM 落入文件中间成为 ZWNBSP,提交
diff 充满不可见字符(历史上曾多次在产物上手工清 BOM 打补丁)。
- 修复:
1. YLErpWeb.csproj 新增 BuildBundlerMinifier(3.2.449);其 BundleMinify 目标在
BeforeCompile 自动按 bundleconfig.json 重建全部 bundle,Jenkins 构建即自动产出正确版本,
不再需要手工重建并提交 bundle.js。
2. .gitignore 忽略 8 个生成产物(jquery.js/bundle.js/vue.js/bundle.css/bundleV2.css/
bundleV2.js/bundle.min.css/bundleV2.min.css) 并 git rm --cached 取消跟踪;这些产物
永不再入版本库、永不陈旧。
3. 剥离 15 个喂给 bundle 的源文件(及 css)开头的 UTF-8 BOM,使重建产物不再含 ZWNBSP。
- 验证:本地 dotnet build -t:BundleMinify 重建后 8 个 bundle 全部 BOM=0,bundle.js 含完整
enter 链路(_enterFired/isEnter/$emit('enter'));删除 bundle.min.css 后构建可自动重建。
|
2026-07-29 15:42:35 +08:00 |
|
hjhan
|
b9f2bd14f6
|
feat(swaptrade): 债券三字段计算器交互改为回车触发并加源/AUTO/REV 三态标识
- 约定1:仅在净价/全价/收益率输入框敲回车触发计算器,失焦不触发
- 约定2:计算成功->源字段标"源"、另两字段标"AUTO";失败->保留源值、清空另两字段与标识
- 约定3:编辑某字段未回车->不联动另两字段,清源/AUTO、仅本字段标"REV"
- swapCalc.js 新增 applyBondCalcSuccess/Failure/ManualEdit 纯函数,applyBondCalcResult 第三参由 manualSet 改为 driver(跳过源字段写回)
- fastVue.base.js 新增 enter 事件区分回车/失焦,向后兼容旧的 input 行为
- TradeEdit.cshtml 三字段 input/enter 分离绑定 + 源/AUTO/REV 三态标签(去除旧铅笔图标)
- 重写 bondCalc.test.js / 更新 swapCalc.test.js 覆盖状态机;jest 68 项全过
|
2026-07-29 14:34:25 +08:00 |
|
tengyufan
|
8c4f452482
|
fix: 统一互换部分平仓交易费用与待结算费用的分摊舍入
|
2026-07-29 13:47:45 +08:00 |
|
tengyufan
|
e1d68393f8
|
fix: 修复基础费率平仓待结算费用按实际平仓规模分摊
|
2026-07-29 13:07:55 +08:00 |
|
张名锐
|
bff3e920ce
|
conf: 自动补零;小数点精度配置文件修改
|
2026-07-29 09:49:37 +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 |
|
hjhan
|
422507df8d
|
fix(swaptrade): 新增交易切换标的时清空残留的净价/全价/收益率
setUnderlyingCode 在切换标的时仅调用 clearBondCalcFlags 清掉手动/源标志,未清字段值;getSpotPrice 只回填净价/全价,收益率(InitYtm)无刷新逻辑,导致旧债券收益率残留污染新债券。显式置空 PosiNetNoFeePrice/PosiGrossPrice/InitYtm,避免残留。
|
2026-07-28 18:53:57 +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 |
|
张名锐
|
63932918a1
|
Revert "feat(swaptrade): 添加日终持仓风险导出功能和精度控制"
This reverts commit b1c91bca34.
|
2026-07-28 14:50:05 +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 |
|
张名锐
|
85a1eb776c
|
Revert "fix: 限额监控小数点精度调整"
This reverts commit 9bff198038.
|
2026-07-28 14:29:47 +08:00 |
|
张名锐
|
30495d1f5e
|
Revert "fix(grid): 情景分析 行权价格式修改"
This reverts commit ba40ab27e8.
|
2026-07-28 14:29:43 +08:00 |
|
张名锐
|
9c4cb65600
|
Revert "fix(risk): 风险预警/禁止查询 小数点精度调整"
This reverts commit ae5f10124f.
|
2026-07-28 14:29:36 +08:00 |
|
张名锐
|
caf011f08d
|
Revert "fix:结算确认书 份额 结算价 小数点位数调整"
This reverts commit b9f0d9d99d.
|
2026-07-28 14:29:23 +08:00 |
|
tengyufan
|
80fbb18461
|
#EQD-6597 国联民生-簿记时新增基本费率字段(开平仓费用),并且自动计算
修补精度
|
2026-07-28 11:39:09 +08:00 |
|
张名锐
|
b9f0d9d99d
|
fix:结算确认书 份额 结算价 小数点位数调整
|
2026-07-27 15:23:27 +08:00 |
|
张名锐
|
ae5f10124f
|
fix(risk): 风险预警/禁止查询 小数点精度调整
- 将 otcformat.trading.umprice 替换为 EventTwoDecimalFormat 格式化器
- 新增 EventTwoDecimalFormat 函数处理数值格式化为两位小数
- 优化 StrikeFormatter 函数的价格格式化逻辑
- 统一价格显示格式为两位小数的标准格式
- 修复空值和无效数值的处理机制
|
2026-07-27 14:46:01 +08:00 |
|
张名锐
|
ba40ab27e8
|
fix(grid): 情景分析 行权价格式修改
- 移除冗余的空值检查逻辑,统一处理null、undefined、空字符串和NaN值
- 简化行权价格式化算法,直接基于单元格值进行数值转换
- 根据IsMoneynessOption字段决定返回百分比或数值格式
- 修复边界条件处理,确保数据展示的一致性
- 删除多余的测试状态变量相关代码
|
2026-07-27 14:33:22 +08:00 |
|
张名锐
|
9bff198038
|
fix: 限额监控小数点精度调整
|
2026-07-27 14:08:10 +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
|
912b319a3f
|
Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2
|
2026-07-27 11:57:31 +08:00 |
|
tengyufan
|
4987962aca
|
#EQD-6597 国联民生-簿记时新增基本费率字段(开平仓费用),并且自动计算
feat: 完善互换平仓交易费用自动计算
- 支持百分比和单位数量模式自动计算平仓交易费用
- 支持全部平仓和部分平仓联动重算
- 保持手动互换不自动填充平仓交易费用
- 补充前后端相关单测
|
2026-07-27 11:57:20 +08:00 |
|
张名锐
|
b1c91bca34
|
feat(swaptrade): 添加日终持仓风险导出功能和精度控制
- 为价格字段添加9位小数精度的导出格式化器
- 实现自定义导出函数exportEodPositionRows以支持完整数据导出
- 在jqGrid列配置中添加exportFormatter和exportNumberFormat属性
- 更新utils.js中的导出逻辑以支持自定义格式化器和数字格式
- 在数据库上下文中添加ClientBalanceDaily实体的货币精度转换配置
- 修复导出时价格精度丢失问题,确保财务数据准确性
|
2026-07-27 11:16:50 +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 |
|
张名锐
|
d0693b2192
|
Merge branch 'glms/feature/dotnumber' into glms/feature/1.4.2
|
2026-07-24 14:11:29 +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 |
|
张名锐
|
a3616bdaaf
|
feature: 手动填写名义本金不再反算数量
|
2026-07-24 11:18:20 +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 |
|
马冰冰
|
ef179fc26c
|
新增利息端类型字段
|
2026-07-23 16:59:58 +08:00 |
|
hjhan
|
8694e6e3f4
|
债券互换三字段互算:估值日(开始日)缺失报错 + 补提漏交回归用例
- 估值日严格取互换起始日 StartDate,去掉"悄悄回退交易日(TradeDate)":
真的为空时返回错误提示("请先填写开始日…或手动填写三项数值")并 return,
不调用计算器、不覆盖手工输入,与需求(按开始日估值)完全一致。
- 抽纯函数 getBondStartDateMissingMsg(StartDate 空→文案/null) + 导出;
复用 D3 的 shouldShowBondErr 去重,避免空开始日时价格格逐键连刷。
- BondCalcHepler.cs 仅补 XML 注释说明前端已强制 StartDate 必填;
targetDate 空→代理默认 T+1 行为不变(兜底 RealtimePnlCalc 旧链路)。
- 补提此前漏提交的回归用例:bondCalc.test.js(×100/÷100 端到端 + 逐字段手动锁定)、
swapCalc.test.js(D1/D2/D3 + 本次估值日缺失守卫)。
- jest bondCalc+swapCalc 全绿(68 passed)。
|
2026-07-23 16:49:40 +08:00 |
|
hjhan
|
8b8fee9306
|
债券互换三字段互算:修复单位换算与重开覆盖/提示噪声(D1/D2/D3)
- 发计算器前×100、回写÷100(bondPriceToCalc/bondCalcPriceToStorage),
根治 -117.93/378543 离谱值(存储态小数↔展示态百分比对齐)
- D1:setUnderlyingCode 切债券清空 bondManual/bondDriverType,
避免旧债券手填态污染新债券
- D2:重开(刷新/审批重开)已保存债券单时,加载路径对三字段齐全的
标的锁为手动态,编辑某格不联动另两格(手动覆盖跨会话 sticky)
- D3:不可算债券逐键手填时,同一失败提示只弹一次,抑制 toast 连刷
- fe-tests:+9 用例覆盖 D1/D2/D3 边界(切标的清标志/重开锁定/失败提示去重)
jest bondCalc+swapCalc 全绿(62 passed)
|
2026-07-23 16:37:13 +08:00 |
|
张名锐
|
7475bddc44
|
fix(tradeHelper): 无法修改后端Bonds->Bond 采用前端兼容,修复债券类型判断逻辑
- 添加了 Bond 类型到 IsBond 函数的判断条件中
- 确保 Bond 类型能够被正确识别为债券产品
|
2026-07-23 16:23:52 +08:00 |
|
马冰冰
|
ef7fa7c6e5
|
Changes续作功能的实现
|
2026-07-23 14:37:34 +08:00 |
|
hjhan
|
d768a83387
|
test(swap-calc): 补充债券计算器单位换算端到端测试 + 精化错误提示文案
- bondCalc.test.js 新增 3 个测试:bondPriceToCalc/bondCalcPriceToStorage
单位换算边界 + 复刻 -117.93/378543 离谱值根因验证
- swapCalc.js 注释从"主数据量纲错误"改为"前端↔计算器单位换算不匹配",
错误提示文案优化(无逻辑变更)
- 26 个测试全通过
|
2026-07-23 11:35:27 +08:00 |
|
张名锐
|
bc961c3411
|
fix(swap): 修复互换交易中债券价格精度处理问题,扩充到11位计算
- 统一债券价格四舍五入规则,使用AwayFromZero模式
- 为债券类型添加特殊的精度处理逻辑
- 修复前端价格显示精度计算问题
- 优化价格存储精度控制,区分债券和其他产品类型
- 修复初始化YTM和净价精度处理问题
- 更新价格验证逻辑以支持动态精度设置
|
2026-07-23 11:06:50 +08:00 |
|
hjhan
|
63d9decd17
|
恢复对债券首次读取接口返回的 price / netPrice 本来就是存储态小数 (EodPrice 直接返回 DB 值;非 EodPrice 分支 ×bondPriceMultiple=0.01
|
2026-07-22 15:04:42 +08:00 |
|