You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
5.7 KiB
89 lines
5.7 KiB
# -*- coding: utf-8 -*-
|
|
# 票 11 bruno-sync tag 迁移收尾:写 11 个新 folder.bru + 删 49 个旧文件(删除前验证新文件已存在)
|
|
import os, sys
|
|
sys.stdout = open(sys.stdout.fileno(), 'w', encoding='utf-8', buffering=1)
|
|
|
|
ROOT = r'E:\code\crm-api-docs'
|
|
|
|
# ---------- 1. folder.bru(name 与源码 tag 一致;seq 沿旧惯例:商机规则下 10 步长,数据字典下 1/2) ----------
|
|
FOLDERS = [
|
|
(r'A7 后台管理\业务规则', '业务规则', 10),
|
|
(r'A7 后台管理\业务规则\商机规则', '商机规则', 1),
|
|
(r'A7 后台管理\业务规则\商机规则\商机阶段设置', '商机阶段设置', 10),
|
|
(r'A7 后台管理\业务规则\商机规则\方案卡模板', '方案卡模板', 20),
|
|
(r'A7 后台管理\业务规则\商机规则\公海与提醒', '公海与提醒', 30),
|
|
(r'A7 后台管理\业务规则\商机规则\商机相关字典', '商机相关字典', 40),
|
|
(r'A7 后台管理\业务规则\客户规则', '客户规则', 2),
|
|
(r'A7 后台管理\系统设置', '系统设置', 11),
|
|
(r'A7 后台管理\系统设置\数据字典', '数据字典', 1),
|
|
(r'A7 后台管理\系统设置\数据字典\分组', '分组', 1),
|
|
(r'A7 后台管理\系统设置\数据字典\字典项', '字典项', 2),
|
|
]
|
|
for rel, name, seq in FOLDERS:
|
|
full = os.path.join(ROOT, rel)
|
|
assert os.path.isdir(full), 'missing dir: ' + full
|
|
with open(os.path.join(full, 'folder.bru'), 'w', encoding='utf-8', newline='\n') as f:
|
|
f.write('meta {\n name: %s\n seq: %s\n}\n' % (name, seq))
|
|
print('folder.bru written:', len(FOLDERS))
|
|
|
|
# ---------- 2. 删除旧文件(每个文件删除前验证对应新文件已存在,否则保留并报错) ----------
|
|
MIG = [
|
|
(r'A7 后台管理\商机规则\阶段模板', r'A7 后台管理\业务规则\商机规则\商机阶段设置'),
|
|
(r'A7 后台管理\商机规则\方案卡模板', r'A7 后台管理\业务规则\商机规则\方案卡模板'),
|
|
(r'A7 后台管理\商机规则\公海规则', r'A7 后台管理\业务规则\商机规则\公海与提醒'),
|
|
(r'A7 后台管理\客户管理设置\超期未跟进提醒', r'A7 后台管理\业务规则\客户规则\客户管理设置(超期未跟进提醒)'),
|
|
(r'A7 后台管理\客户管理设置\查重设置', r'A7 后台管理\业务规则\客户规则\客户管理设置(客户查重设置)'),
|
|
(r'A7 后台管理\数据字典\分组', r'A7 后台管理\系统设置\数据字典\分组'),
|
|
(r'A7 后台管理\数据字典\字典项', r'A7 后台管理\系统设置\数据字典\字典项'),
|
|
]
|
|
deleted, errors = [], []
|
|
for old_dir, new_dir in MIG:
|
|
for fn in sorted(os.listdir(os.path.join(ROOT, old_dir))):
|
|
must = os.path.join(ROOT, new_dir, 'folder.bru' if fn == 'folder.bru' else fn)
|
|
if not os.path.exists(must):
|
|
errors.append('NEW MISSING, keep old: ' + old_dir + '\\' + fn)
|
|
continue
|
|
os.remove(os.path.join(ROOT, old_dir, fn))
|
|
deleted.append(old_dir + '\\' + fn)
|
|
# 旧父目录 folder.bru(迁移后父目录空掉)
|
|
for old_f, new_f in [
|
|
(r'A7 后台管理\商机规则\folder.bru', r'A7 后台管理\业务规则\商机规则\folder.bru'),
|
|
(r'A7 后台管理\数据字典\folder.bru', r'A7 后台管理\系统设置\数据字典\folder.bru'),
|
|
]:
|
|
if os.path.exists(os.path.join(ROOT, new_f)):
|
|
os.remove(os.path.join(ROOT, old_f))
|
|
deleted.append(old_f)
|
|
else:
|
|
errors.append('NEW MISSING, keep old: ' + old_f)
|
|
print('deleted:', len(deleted))
|
|
for d in deleted:
|
|
print(' -', d)
|
|
|
|
# ---------- 3. 清理空目录(rmdir 仅删空目录,失败静默跳过) ----------
|
|
for d in [r'A7 后台管理\商机规则\阶段模板', r'A7 后台管理\商机规则\方案卡模板', r'A7 后台管理\商机规则\公海规则',
|
|
r'A7 后台管理\商机规则', r'A7 后台管理\客户管理设置\超期未跟进提醒', r'A7 后台管理\客户管理设置\查重设置',
|
|
r'A7 后台管理\客户管理设置', r'A7 后台管理\数据字典\分组', r'A7 后台管理\数据字典\字典项', r'A7 后台管理\数据字典']:
|
|
try:
|
|
os.rmdir(os.path.join(ROOT, d))
|
|
print('rmdir:', d)
|
|
except OSError:
|
|
pass
|
|
|
|
# ---------- 4. 台账 ----------
|
|
if errors:
|
|
print('ERRORS:')
|
|
for e in errors:
|
|
print(' !', e)
|
|
print('--- new structure ---')
|
|
for rel in [r'A7 后台管理\业务规则', r'A7 后台管理\业务规则\商机规则', r'A7 后台管理\业务规则\商机规则\商机阶段设置',
|
|
r'A7 后台管理\业务规则\商机规则\方案卡模板', r'A7 后台管理\业务规则\商机规则\公海与提醒',
|
|
r'A7 后台管理\业务规则\商机规则\商机相关字典', r'A7 后台管理\业务规则\客户规则',
|
|
r'A7 后台管理\业务规则\客户规则\客户管理设置(超期未跟进提醒)',
|
|
r'A7 后台管理\业务规则\客户规则\客户管理设置(客户查重设置)',
|
|
r'A7 后台管理\系统设置', r'A7 后台管理\系统设置\数据字典',
|
|
r'A7 后台管理\系统设置\数据字典\分组', r'A7 后台管理\系统设置\数据字典\字典项']:
|
|
full = os.path.join(ROOT, rel)
|
|
print('%2d files: %s' % (len(os.listdir(full)), rel))
|
|
print('old 商机规则 exists:', os.path.exists(os.path.join(ROOT, r'A7 后台管理\商机规则')))
|
|
print('old 数据字典 exists:', os.path.exists(os.path.join(ROOT, r'A7 后台管理\数据字典')))
|
|
print('old 客户管理设置 exists:', os.path.exists(os.path.join(ROOT, r'A7 后台管理\客户管理设置')))
|
|
|