Files
group_xinghuo_jinrong/scripts/core/09-seed-org.sql
T

108 lines
8.9 KiB
SQL
Raw Normal View History

USE jinrong_core;
-- ============================================================================
-- 09-seed-org.sql · 产品机构信息与申购费率
-- 版本:v1.1(2026-09-10 · T-1 新增;同日按「真实业务」修订 —— 分类归位 + 分组重排)
-- 依据:
-- · 证监会公告〔2025〕22 号 §8 申购费率上限(2026-01-01 施行):
-- 主动偏股型 ≤ 0.80% · 其他混合型 ≤ 0.50% · 指数型/债券型 ≤ 0.30% · 货基 0
-- · PRD §4.2/§4.3:申购费简化为单一 core_product.subscribe_fee_rate(补差费计算源)
-- · PRD/架构:同一笔转换要求 **同销售机构 + 同管理人 + 同 TA**
--
-- 【v1.1 修订原因 · 分类必须与 product_type 匹配】
-- v1.0 曾把 `PROD-005827`(`product_type='mixed'`,平衡混合一号)按「主动偏股」取到
-- **0.80%** 上限 —— 目的是凑出 0.50% 的补差幅度。这是**分类错误**:
-- 22 号文 §8 的费率档由**产品类型**决定,`mixed` 只能套「其他混合型 ≤0.5%」。
-- 现修正:`PROD-005827` → **0.0050**;主示例转入方改用**真正的主动偏股产品**
-- `PROD-003095`(`stock` / R4 / 净值 0.9500 —— 与原示例除数相同,故 §5.3 数字不变)。
-- ⚠️ 通用规则:**用某一档上限前,先证明该产品确实属于这一档**,不得「看名字像」
-- 或「为了凑数值差」升档(自检第 12 问)。
--
-- 【v1.1 修订原因 · 分组按真实业务重排】
-- v1.0 的分组是「华夏组全是低风险(债/混合/货基/指数)、易方组全是股票型」——
-- **不符合真实**:真实的基金管理人都是**全产品线**(同一家公司旗下同时有债基、
-- 混合、指数、股票、货基)。真实的分组必须以「管理人」为单位、覆盖多风险层级,
-- 转换约束「同管理人 + 同 TA」才有实际意义。
-- 现分组:华夏 / 易方 各 6 只、均覆盖多个风险层级;理财与私募单列(真实形态:
-- 银行理财子公司、私募管理人,与公募不同主体,天然不可与公募互转)。
--
-- 【分组与费率一览】
-- 华夏模拟基金 / TA-CN-001(主演示组,覆盖 5 类)
-- PROD-110022 稳健债基 A bond R1 0.0030 ← 主示例转出
-- PROD-110023 信用债精选 bond R2 0.0030
-- PROD-005827 平衡混合一号 mixed R3 0.0050 ← v1.1 由 0.0080 归位
-- PROD-000001 现金宝货币 money R1 0.0000 ← 同费率对照组(0)
-- PROD-510300 沪深300指数 index R3 0.0030 ← 同费率对照组(与 110022 同)
-- PROD-003095 医药健康精选 stock R4 0.0080 ← 主示例转入(真主动偏股)
-- 易方模拟基金 / TA-CN-002(覆盖 4 类)
-- PROD-000002 同业存单基金 bond R1 0.0030
-- PROD-005828 稳健增利混合 mixed R2 0.0050
-- PROD-510500 中证500指数 index R4 0.0030
-- PROD-161725 科技成长主题 stock R4 0.0080
-- PROD-161726 消费升级主题 stock R4 0.0080
-- PROD-XYZ999 进取成长五号 stock R5 0.0080
-- 兴银理财 / TA-CN-003 : PROD-WMG001 稳享180天理财 wealth_mgmt R2 0.0000
-- 量化私募 / TA-CN-004 : PROD-PRIV01 量化中性私募一号 private_fund R4 0.0000
--
-- 【可验证的费率关系(供补差费演示与对照)】
-- 不同费率对:PROD-110022(0.0030)→ PROD-003095(0.0080)**同属华夏组、可互转** → 补差非 0
-- 同费率对照:PROD-110022(0.0030)↔ PROD-510300(0.0030)→ 补差 = 0
-- 零费率对照:PROD-000001(0)→ 任意产品补差非 0;任意 → PROD-000001 补差 = 0
--
-- 【跨主体负例保障(「同管理人 + 同 TA」硬约束的反例数据仍然充足)】
-- CUST-1004 : 161725(易方) + 510300(华夏) → 跨管理人 ✗
-- CUST-DEMO-A : 510500(易方) + 510300/000001(华夏) → 跨管理人 ✗
-- CUST-DEMO-B : 161725(易方) + PRIV01(量化私募) → 跨管理人 + 跨机构类型 ✗
--
-- 【最低持有余额】让 FR-C15 的两种动作都有数据可触发(否则 DEFAULT 0 使该分支永不进入,
-- 等于无测试覆盖):PROD-110022 = force_transfer(低于阈值强制全转)
-- PROD-005827 = force_redeem (低于阈值强制赎回剩余)
-- ============================================================================
-- ---- ① 华夏模拟基金 / TA-CN-001(主演示组 · 全产品线)----
UPDATE core_product SET fund_company = '华夏模拟基金', ta_code = 'TA-CN-001', subscribe_fee_rate = 0.0030 WHERE product_id = 'PROD-110022';
UPDATE core_product SET fund_company = '华夏模拟基金', ta_code = 'TA-CN-001', subscribe_fee_rate = 0.0030 WHERE product_id = 'PROD-110023';
UPDATE core_product SET fund_company = '华夏模拟基金', ta_code = 'TA-CN-001', subscribe_fee_rate = 0.0050 WHERE product_id = 'PROD-005827';
UPDATE core_product SET fund_company = '华夏模拟基金', ta_code = 'TA-CN-001', subscribe_fee_rate = 0.0000 WHERE product_id = 'PROD-000001';
UPDATE core_product SET fund_company = '华夏模拟基金', ta_code = 'TA-CN-001', subscribe_fee_rate = 0.0030 WHERE product_id = 'PROD-510300';
UPDATE core_product SET fund_company = '华夏模拟基金', ta_code = 'TA-CN-001', subscribe_fee_rate = 0.0080 WHERE product_id = 'PROD-003095';
-- ---- ② 易方模拟基金 / TA-CN-002(次演示组 · 全产品线)----
UPDATE core_product SET fund_company = '易方模拟基金', ta_code = 'TA-CN-002', subscribe_fee_rate = 0.0030 WHERE product_id = 'PROD-000002';
UPDATE core_product SET fund_company = '易方模拟基金', ta_code = 'TA-CN-002', subscribe_fee_rate = 0.0050 WHERE product_id = 'PROD-005828';
UPDATE core_product SET fund_company = '易方模拟基金', ta_code = 'TA-CN-002', subscribe_fee_rate = 0.0030 WHERE product_id = 'PROD-510500';
UPDATE core_product SET fund_company = '易方模拟基金', ta_code = 'TA-CN-002', subscribe_fee_rate = 0.0080 WHERE product_id = 'PROD-161725';
UPDATE core_product SET fund_company = '易方模拟基金', ta_code = 'TA-CN-002', subscribe_fee_rate = 0.0080 WHERE product_id = 'PROD-161726';
UPDATE core_product SET fund_company = '易方模拟基金', ta_code = 'TA-CN-002', subscribe_fee_rate = 0.0080 WHERE product_id = 'PROD-XYZ999';
-- ---- ③ 非同主体产品(真实形态:非公募主体,天然不可与公募互转)----
UPDATE core_product SET fund_company = '兴银理财', ta_code = 'TA-CN-003', subscribe_fee_rate = 0.0000 WHERE product_id = 'PROD-WMG001';
UPDATE core_product SET fund_company = '量化私募', ta_code = 'TA-CN-004', subscribe_fee_rate = 0.0000 WHERE product_id = 'PROD-PRIV01';
-- ---- ④ 兜底:任何未显式赋值的产品也保证非 NULL(DoD ③)----
UPDATE core_product SET fund_company = '其他模拟管理人', ta_code = 'TA-CN-099' WHERE fund_company IS NULL;
UPDATE core_product SET ta_code = 'TA-CN-099' WHERE ta_code IS NULL;
-- ---- ⑤ 最低持有余额(FR-C15 两种动作的可触发数据)----
UPDATE core_product SET min_hold_qty = 1000.0000, min_redeem_qty = 100.0000, min_hold_action = 'force_transfer' WHERE product_id = 'PROD-110022';
UPDATE core_product SET min_hold_qty = 2000.0000, min_redeem_qty = 200.0000, min_hold_action = 'force_redeem' WHERE product_id = 'PROD-005827';
-- ---- ⑥ T-17 / D30 同基金 A/C 份额互转演示对(R-12)----
-- 联网核实(2026-09-12):A/C 互转 = 同一基金不同份额类别的转换业务,
-- 需管理人「开通」(摩根行业睿选 2025-11《开通同一基金不同份额类别转换业务公告》),
-- 开通即 allow_ac_convert=1;转换后持有期重新起算(本仓转入新批次语义一致)。
-- A/C 对(开关开 · 双端):TA-CN-001 内 'A' ↔ 'C' → 放行
UPDATE core_product SET share_class = 'A', allow_ac_convert = 1 WHERE product_id = 'PROD-110022';
UPDATE core_product SET share_class = 'C', allow_ac_convert = 1 WHERE product_id = 'PROD-005827';
-- A/C 对照(开关关 · 双端 0):同 TA 同 'A'/'C' 但未开通 → 受理 400
UPDATE core_product SET share_class = 'A', allow_ac_convert = 0 WHERE product_id = 'PROD-110023';
UPDATE core_product SET share_class = 'C', allow_ac_convert = 0 WHERE product_id = 'PROD-003095';
-- 同类别对照:'C' ↔ 'C' 不触发 A/C 判定,走一般转换规则放行(allow_ac_convert 保持默认 0)
UPDATE core_product SET share_class = 'C' WHERE product_id = 'PROD-510300';
-- ---- ⑦ T-14 开口②闭环(2026-09-12 用户拍板补接):舍去法(TRUNCATE)产品载体 ----
-- 联网核实:「舍去」型真实存在(南方利众/宝元、邮储、华宝、申万菱信、东方基金等
-- 合同/公告明写「份额 2 位后舍去」)。载体选 PROD-005828(稳健增利混合):
-- 无规则行(11-seed 未覆盖)→ 走 core_product 层回退链,且无任何转换场景引用(零回归)。
UPDATE core_product SET rounding_mode = 'truncate' WHERE product_id = 'PROD-005828';