编辑 | blame | 历史 | 原始文档

工作日结_2026-09-17

一、今天做了什么

1. 投资月报需求:确认口径 + 交付格式探测报告与字段映射表草案

用户上午答复了昨天悬置的 4 个口径问题:

# 问题 用户答复
1 编号 4「投资系统每月导入的项目表」文件名/路径 已放在「输入」文件夹里(实测即 输入\模板_查询结果(投资系统-客运+物流 2026.7).xls,149 行 × 8 列,B 列「单位」= 项目名称,G 列「自年初-累计完成投资」)
2 同名项目跨市州怎么处理 不能动项目名称,按市州报上来的项目名称比对更新;一般不会出现,**出现就弹窗提示**
3 1 月的上月基数从哪取 上年 12 月的明细表
4 名称不一致怎么办 先出一份映射表看看,先不改程序
5 输出命名与格式「你怎么看」 已按我的建议回复「可以你做」

据此完成了需求文档「十一、开工顺序建议」的第 1、2 步(这两步不需要再等业务信息):

  • 格式探测(确认事项 D):全量扫描 2026 年 7 月 27 个市州月报 + 6 张目标表 + 1 个投资系统项目表,产出《市州月报格式差异报告》。
  • 20/27 个文件与目标明细表列位完全一致(省统一模板),差异集中在 7 个文件。
  • 高风险 4 项:十堰物流表内混入「武汉」2013—2016 历史区块;潜江/林区工作表名与实际月份不符(7 月数据分别在名为 潜江传化2022.3、2026.7 的表里);襄阳客运 .et 格式且列位右移 1 列;全部文件的数据区都混排着市州行/分类行/小计行/空行。
  • 中风险:恩施/黄石物流「建设阶段/形象进度」未分列(黄石 L 列是「完成百分比」);武汉(南山、汉口)客运是另一种简表布局;鄂州/天门 3 行合并表头错位;随州物流数据在 Sheet2 且无序号列。
  • 另发现:**客运 7 月只有 10 个市州报了文件**,缺黄石、鄂州、随州、天门、潜江、仙桃、荆州。
  • 字段映射表草案(确认事项 E):产出 字段映射表_草案_2026-07.xlsx(7 个 sheet:说明与口径 / 源文件标准列位 / 逐市州列位映射 / 明细表→目标表映射 / 投资系统项目表字段 / 差异与待确认清单 / 输出命名与格式建议)。
  • 把用户答复的口径全部固化进映射表:匹配键 = 项目名称(不得改名、冲突弹窗);1 月基数 = 上年 12 月明细表;名称不一致先看映射表后落地。
  • 回答「输出命名与格式」:建议**沿用 7 月输出件命名 + 按月分目录 + 原格式原样输出 + 运行前备份 + 日志/报错文件单独输出**,理由与命名清单见映射表 Sheet7。

2. 产出可复跑的探测脚本

  • 新增 docs\投资\工具\格式探测.py:只读扫描任意月份的源文件,输出 .md + .tsv。
    支持「按表头关键字定位列」「按表头日期选工作表」「无序号列 / 缺序号行识别」「市州行与小计行排除」。
    以后换月份直接 python docs\投资\工具\格式探测.py --month 2026-09 即可复跑。

二、测试结果摘要

  • 《功能测试报告_投资月报格式探测与字段映射表_2026-09-17.md》:TC01–TC11 全部通过;生成的 xlsx 复读正常(7 个 sheet)。
  • 开发过程中发现并修复 5 个脚本缺陷(闭包延迟绑定、best[2] 越界、xlrd 未入 path、无序号行漏判、多工作表取到历史月)。
  • 人工抽查 7 个重点文件(十堰物流、潜江/林区、襄阳客运、恩施/黄石物流、随州物流、武汉简表)逐个打开源文件核对,报告结论与源文件一致。
  • 本轮**未改动任何业务程序代码**(符合「先不改程序」要求),未写入数据库,未改动任何源文件/目标表。

三、遗留问题与待办

  1. 待业务确认(已写入映射表 Sheet6):
  • 汇总表(2026年全省预安排计划进度情况汇总)没有「其中:本月完成投资」列(现有 I=自开始建设累计、W=1-X月累计完成投资、X=实际进度),需求文档写的 4 项指标与模板列对不上,第 ③ 项落在哪一列?
  • 《亿元投资项目》规上项目表 没有「自开始建设累计 / 自年初累计」列,需求文档写的「更新 3 项」如何映射?
  • 恩施、黄石物流的「建设阶段/形象进度」合并列按什么口径写入?
  • 1 月基数取上年 12 月明细表的**哪一列**(自年初累计跨年会清零)?
  • 客运缺 7 个市州文件:本期无项目还是漏报?程序遇缺应「跳过+提示」还是「报错中止」?
  1. 尚未开工:Step1–Step3 核心更新主流程(等映射表确认后落地);Step1.5 数据比对模块(文件已到位,可随主流程一起做)。
  2. 未提交项:docs\投资\ 下用户自己的文件整理(模板_查询结果...xls 移到 输入\、X月... 改名、两个模板被替换等)仍在工作区未提交,等用户确认后再一起提交。
  3. 昨日遗留:公司 gitea(http://61.183.254.94:3000)仍不通;2026-06 / 2026-09 无汇总大表母版;h2031 缺 2025-01;passenger_individual_monthly 2026-08 缺黄冈。

四、明天计划

  1. 把映射表草案的重点问题(第三节 1)当面/微信逐条与用户确认口径。
  2. 口径确认后,按映射表实现 Step1(市州月报 → 两张明细表):
  • 列位按表头关键字定位 + 按表头日期选工作表 + 项目行判定 + 市州分段校验;
  • 校验公式「当月自年初累计 = 上月自年初累计 + 其中本月完成」,不通过则弹窗 + 记日志 + 按公式修正并写回;
  • 输出 校验报错_<年月>.xlsx 与 运行日志_<年月>.md。
  1. 再依次接 Step2(汇总表)、Step3(三张固定表 + 亿元投资项目专属列规则)。
  2. 若用户确认 docs\投资\ 的文件整理,一并提交并补推公司 gitea(若恢复)。

五、下午追加(用户核对源文件后)

5.1 用户 4 点反馈的核查与处置

用户反馈 核查结论 处置
① ②「你把表说清楚,是客运站还是物流园区;我看十堰的表没有你说的情况」 用户没看错:那些内容是**隐藏行 / 隐藏表**。例:十堰物流 R11—R63(53 行)是隐藏行,内容为「武汉」历史区块;潜江 26/27 张表被隐藏 新增只读工具 隐藏项探测.py + 清单《隐藏数据核实清单_2026-07.md》(逐文件写清:品类/文件/工作表/隐藏行区间/隐藏内容/怎么取消隐藏自己验证)
③「.et 右移不用管,我们只管要更新的字段」 与程序实现方向一致 差异报告、映射表均标注「不做处理」
④「恩施和黄石也是分了的,只是没在表头写;不更新建设阶段列」 与源文件相符 该风险项**关闭**

5.2 本轮最重要的技术结论

  • 「隐藏行 / 隐藏工作表」不能作为过滤条件:黄石物流隐藏行 R10 是真实项目行「阳新县焦山物流仓储中心」(无序号),且**已计入**第 5 行「黄石」市州合计——四项数值逐项核对相等(计划总投资 564,991.69 / 自开始建设累计 59,500.20 / 自年初累计 34,978.15 / 本月完成 7,088.90)。
  • 反过来,「可见」也不等于「本期数据」:潜江 潜江2026.07.xlsx 只有 1 张可见表,表名叫 潜江传化2022.3,装的却是 2026 年 7 月数据。
  • 所以取数判定只用三条:**① 表头日期选表;② 市州行切段;③ 项目行判定(序号/名称/数值锚点)**。
  • 附带发现:咸宁客运隐藏表 RQYQRYQS 含 Excel 4.0 宏病毒残留字样(Classic.Poppy by Vic / Infect Workbook),已建议用户杀毒(我不动源文件)。

5.3 修复与验证

  • 格式探测.py 增加**市州分段**(CITIES + city_segments()):十堰物流项目行由 38 行修正为 7 行;与旧结果逐文件 diff,其余 26 个文件**零变化**(无回归)。
  • 差异报告新增 H5 风险项与「七、更正记录」;功能测试报告新增 TC12–TC15,**全部通过**。

5.4 遗留(本轮未闭环)

  • 映射表 xlsx 未写入:字段映射表_草案_2026-07.xlsx 被 WPS 打开占用(目录下存在 ~$字段映射表_草案_2026-07.xlsx 锁文件),PermissionError。订正脚本 _qa_out\patch_map.py 已备好,**关闭该文件后重跑即可**(会补上 Sheet3 的「隐藏项核实」列、修正十堰/林区/潜江/黄石等行,Sheet6 更新十堰、潜江林区、襄阳、恩施黄石,并新增「隐藏行不能当过滤条件」一条)。
  • 公司 gitea 仍不通。