Files
xiaotutongxue/backend
lovife bfd7676974 feat(roster): 名册导入模板下载(§8.5)—— 表头固定第 1 行、必填列标红、9 条填表规则页
服务端生成(POI),不放前端静态目录:表头列必须与导入解析器的已知列名表一致,
两处各写一份必然分叉,而分叉的表现是「照着模板填的表导不进来」。

三条要求都不是装饰:
- 表头在第 1 行:导入时表头是自动探测的(客户给的文件里实测有表头在第 6 行的),
  但我们自己发的模板必须规矩,否则「下载模板 → 填写 → 传回」这条最正常的路径反被折腾;
- 必填列标红:填错的绝大多数原因是不知道这列必填,而错误要到导入时才报(那时已经填了 500 行);
- 规则说明页:9 条里最值钱的是「身份证号必须是真的」与「在校生/非在校生决定要交哪些材料」,
  不写清就会先填完再被逐条打回。

「要交哪些材料」那一页用当前任务的材料清单推导(不写死);表头列本身固定 21 列 ——
跟着任务变的话,客户换个任务下载到的模板就不一样,而「我上次填的那份」会突然不适用。

验证:scripts/e2e-m7-taskconfig.py 69/69(模板表头与导入列定义逐项比对)。
2026-09-30 09:03:13 +08:00
..