#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
按离职交接把「离职人名下的客户」改派给接收人
============================================
依据（可复核）：
1. 龙友波名下 5 个福建客户 → 黄文才
   证据：黄文才 2026-05-19 ~ 06-04 连续 16 次福建客户「交接拜访／拜访交接」活动
        （美林美邦、厦门海关、佰孟、致善、同普、睿科…），2026 ERP 中「福建佰孟」已显示黄文才
2. 「大客户2」（ERP 中黄明月的岗位别名）名下 1 个 → 刘子研
   证据：黄明月《离职交接清单》4.1 客户清单 26 个客户，其中 22 个在 2026 ERP 已归刘子研；
        张立娅名下的西安安瑞科在 2026 ERP 显示 刘子研
3. 张立娅名下 1 个（西安安瑞科生物科技有限公司）→ 刘子研
   证据：2026 ERP 该客户销售员 = 刘子研
4. 黄明月清单里 4 个尚未建归属的客户（上海基水、上海星耀、亚能×2）→ 刘子研（同岗位承接人）

用法：python3 reassign_resigned.py [--apply]
"""
import os
import sys
import json
import shutil

ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
KC = os.path.join(ROOT, '数据', 'pricing', '_key_customers.json')

REASSIGN = {
    '黄文才': ['厦门为正生物科技股份有限公司', '美林美邦(厦门)生物科技有限公司',
             '厦门龙进生物科技有限公司', '福建佰孟医学科技有限公司', '福州易维康生物科技有限公司'],
    '刘子研': ['四川安可瑞新材料技术有限公司', '西安安瑞科生物科技有限公司',
             '上海基水生物科技有限公司', '上海星耀医学科技发展有限公司',
             '亚能生物技术（深圳）有限公司', '深圳亚能生物技术有限公司'],
}
RESIGN = {'黄建佳', '黄自鑫', '黄明月', '龙友波', '赵以诺', '段玉', '梁莹莹', '曾琦',
          '李岚风', '张立娅', '王昕伟', '大客户1', '大客户2'}


def main(apply):
    d = json.load(open(KC, encoding='utf-8'))
    rows = d if isinstance(d, list) else (d.get('customers') or [])
    byname = {}
    for c in rows:
        if isinstance(c, dict):
            byname[(c.get('name') or '').strip()] = c
    tgt = {c: who for who, cs in REASSIGN.items() for c in cs}
    changed, added = [], []
    for name, who in tgt.items():
        e = byname.get(name)
        if e is None:
            e = {'name': name, 'salesperson': who, 'sales': who, 'group': '', 'group_name': '',
                 'total': 0, 'note': '离职交接改派（reassign_resigned.py）'}
            rows.append(e)
            byname[name] = e
            added.append((name, who))
            continue
        old = e.get('salesperson') or e.get('sales') or ''
        if old != who:
            e['salesperson'] = who
            e['sales'] = who
            e['note'] = '离职交接改派：%s → %s' % (old or '（空）', who)
            changed.append((name, old or '（空）', who))
    print('  改派 %d 个 ｜ 新建归属 %d 个' % (len(changed), len(added)))
    for n, o, w in changed:
        print('    %-32s %s → %s' % (n[:32], o, w))
    for n, w in added:
        print('    %-32s （新建）→ %s' % (n[:32], w))
    if apply:
        shutil.copy(KC, KC + '.bak_before_reassign')
        if isinstance(d, list):
            d[:] = rows
        else:
            d['customers'] = rows
            d['updated'] = '2026-09-20 离职交接改派（龙友波→黄文才、大客户2/张立娅→刘子研）'
        json.dump(d, open(KC, 'w', encoding='utf-8'), ensure_ascii=False, indent=1)
        print('  ✅ 已写入 %s（备份 .bak_before_reassign）' % KC)
    else:
        print('  （预览模式，未写入；加 --apply 生效）')


if __name__ == '__main__':
    main('--apply' in sys.argv[1:])
