Files
group_xinghuo_jinrong/scripts/core/11-seed-share-rule.sql
T
GaoYiYuan_0626 1a615bbbef 基金转换 T+1 模型:T-14 D27 产品舍入真正接入 + 联网核实纠偏(837 绿 / 真库 9/9 / 种子 v1.1 全 2 位)
- 接入面 4 处单点收敛:core_ro.get_share_digits(唯一回退链:规则行→core_product.share_digits→PLACES=2)· calc.in_qty 加 digits=PLACES 可选参数 · 确认段(business_type=convert)· 网关申购折算(subscribe);redeem 份额申报无折算无消费方
- 边界裁定:只接落库侧(开发计划 DoD 即边界),响应展示维持 q(D2) 收敛(2 位产品逐字节零漂移);PRD §2.5.2 展示按产品覆盖为登记开口
- 联网核实(用户铁律):主流 2 位 ✅ · 位数按各基金合同配置 ✅(南方 2012 调整公告)· 舍去 TRUNCATE 型真实存在 ✅ · 货基 2 位 ✅ · 「指数基金份额 4 位」证伪 ❌(ETF 联接/指数合同全 2 位)→ 11-seed-share-rule.sql v1.1:3 产品 9 行 4→2 + 头注重写为核实出处;「易方达 ETF 场外整数位」无证据有反证(登记开口待拍板)
- 测试 +7(830→837 零回归):calc 层 2 + confirm 段 3(回退链三层各 1 + business_type 干扰行)+ 申购段 2;4 位种子行 = D27 机制验证载体(docstring 钉明)
- 突变验证 2 组(confirm/gateway digits 改固定 2 → 各 2 红,还原零残留);真库 9/9 退出码 0(seed 重灌 42 行全 2 位生效)
- 开口 2 项待用户拍板:① PRD §2.5.3 易方达句修订 ② rounding_mode=truncate 消费接入(真实存在、T-14 范围外)
2026-09-12 12:41:20 +08:00

86 lines
5.3 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
USE jinrong_core;
-- ============================================================================
-- 11-seed-share-rule.sql · 产品份额舍入规则种子(D27 / R-13)
-- 版本:v1.1(2026-09-12 · T-14 联网核实纠偏;v1.0 曾给指数/存单产品配 4 位,
-- 注释依据「指数基金申购/转入确认份额允许保留 4 位小数」经联网核实
-- 查无实据且反证充分,见下——全部产品改回主流 2 位)
-- 依据:开发计划 v2.0 T-14(D27 产品舍入真正接入)+ 2026-09-12 联网核实
--
-- 【联网核实的真实业务口径(2026-09-12,逐条附出处)】
-- 1. 位数按产品(基金合同)配置 —— 行业真实做法:
-- 南方基金《关于调整旗下基金转换业务规则的公告》(2012) 明确把统一的
-- 「转入份额四舍五入保留两位」改为「根据各基金基金合同和招募说明书的
-- 相关规定保留小数点后 2 位」(pdf.dfcfw.com/pdf/H22_AN201202280004321524_1.pdf)
-- —— 这正是 D27「按产品配置」的最直接行业依据。
-- 2. 份额位数主流 2 位(申购/转换一致):
-- - 民生加银《基金转换规则》第八条:申请转换份额按四舍五入保留到小数点后 2 位
-- (msjyfund.com.cn/osoa/views/serviceCenter/conversionRule.html)
-- - 富时基金《开放式基金业务管理规则》:申购份额保留 2 位、第 3 位四舍五入
-- - 汇添富深证300 ETF 联接 / 华夏恒生 ETF 联接 / 易方达沪深300非银 ETF 基金合同:
-- 指数(联接)基金申购份额同样保留 2 位 —— **「指数基金 4 位」查无实据**
-- - 货币基金:1.00 元面值、份额 = 金额 ÷ 1.00 保留 2 位四舍五入
-- (中银货币 / 融通易支付 / 鑫元货币基金合同)
-- 3. 舍入方式真实存在「舍去(TRUNCATE)」型 —— rounding_mode 字段的现实载体:
-- - 南方利众混合 C 转换公告:份额保留 2 位、两位以后的部分**舍去**归基金资产
-- - 邮储银行《基金转换常见问题》:转换份额 2 位后舍去
-- - 华宝未来主导混合 / 申万菱信业务规则 / 东方基金登记业务规则:同类「舍去」条款
-- ⚠️ 本项目 T-14 只接入 share_digits;rounding_mode='truncate' 的消费接入为
-- 登记开口(真实差异载体,待用户裁定后排期),故本种子暂不配置 truncate 行,
-- 避免出现「种子有值、实现不消费」的半成品。
-- 4. 整数位的真实载体是**场内渠道**(LOF/ETF 场内申购先 2 位再截位到整数份,
-- 如招商瑞智优选 LOF 基金合同),不是产品固有属性;本项目无场内/场外渠道
-- 维度,不做该建模。
--
-- 说明(回退链,11-seed 头注 v1.0 原文沿用):未被本文件覆盖的产品
-- (business_type 无行)由 core_ro.get_share_digits 回退 core_product.share_digits
-- (DEFAULT 2)→ 再缺省回退 calc.PLACES(2)。降级路径有显式用例(T-14 DoD 2)。
-- ============================================================================
INSERT INTO core_share_rule (product_id, business_type, share_digits, rounding_mode) VALUES
-- 全部产品:主流 2 位 HALF_UP(核实结论:公募场外申购/转换份额位数主流即 2 位,
-- 产品间真实差异在舍入方式而非位数 —— 见头注 1/2/3)
('PROD-110022', 'subscribe', 2, 'half_up'),
('PROD-110022', 'redeem', 2, 'half_up'),
('PROD-110022', 'convert', 2, 'half_up'),
('PROD-110023', 'subscribe', 2, 'half_up'),
('PROD-110023', 'redeem', 2, 'half_up'),
('PROD-110023', 'convert', 2, 'half_up'),
('PROD-005827', 'subscribe', 2, 'half_up'),
('PROD-005827', 'redeem', 2, 'half_up'),
('PROD-005827', 'convert', 2, 'half_up'),
('PROD-005828', 'subscribe', 2, 'half_up'),
('PROD-005828', 'redeem', 2, 'half_up'),
('PROD-005828', 'convert', 2, 'half_up'),
('PROD-003095', 'subscribe', 2, 'half_up'),
('PROD-003095', 'redeem', 2, 'half_up'),
('PROD-003095', 'convert', 2, 'half_up'),
('PROD-000001', 'subscribe', 2, 'half_up'),
('PROD-000001', 'redeem', 2, 'half_up'),
('PROD-000001', 'convert', 2, 'half_up'),
-- 指数/存单产品:同为 2 位(v1.0 曾配 4 位,注释依据经联网核实不成立,2026-09-12 纠偏)
('PROD-510300', 'subscribe', 2, 'half_up'),
('PROD-510300', 'redeem', 2, 'half_up'),
('PROD-510300', 'convert', 2, 'half_up'),
('PROD-510500', 'subscribe', 2, 'half_up'),
('PROD-510500', 'redeem', 2, 'half_up'),
('PROD-510500', 'convert', 2, 'half_up'),
('PROD-000002', 'subscribe', 2, 'half_up'),
('PROD-000002', 'redeem', 2, 'half_up'),
('PROD-000002', 'convert', 2, 'half_up'),
('PROD-161725', 'subscribe', 2, 'half_up'),
('PROD-161725', 'redeem', 2, 'half_up'),
('PROD-161725', 'convert', 2, 'half_up'),
('PROD-161726', 'subscribe', 2, 'half_up'),
('PROD-161726', 'redeem', 2, 'half_up'),
('PROD-161726', 'convert', 2, 'half_up'),
('PROD-XYZ999', 'subscribe', 2, 'half_up'),
('PROD-XYZ999', 'redeem', 2, 'half_up'),
('PROD-XYZ999', 'convert', 2, 'half_up'),
('PROD-WMG001', 'subscribe', 2, 'half_up'),
('PROD-WMG001', 'redeem', 2, 'half_up'),
('PROD-WMG001', 'convert', 2, 'half_up'),
('PROD-PRIV01', 'subscribe', 2, 'half_up'),
('PROD-PRIV01', 'redeem', 2, 'half_up'),
('PROD-PRIV01', 'convert', 2, 'half_up');