| | |
| | | > **每天结束时**:把当天进展、踩过的坑、新需求、未完成事项更新到本文件,然后可以放心开新对话。 |
| | | > **协作约定(2026-08-31)**:说「提交」= 本地 commit + 推送到远端 git(origin main,Gitblit),不再只做本地 commit。 |
| | | |
| | | ### 10-14(1):重启后拉起前后端 + 拉取合并同事 34 个提交(汇总大表)【无代码改动】 |
| | | |
| | | - **本轮(未改代码)**:电脑重启,用 `start-dev.ps1` 拉起前后端,脚本输出后端 OK、前端 OK;前端 http://localhost:8080,后端 8090,日志见 `backend.log` / `traffic-audit-web/frontend.log`。 |
| | | - **git**:本地原为 `a2dfe61`,落后 `origin/main` 34 个提交;已 `git fetch origin` + `git merge --ff-only origin/main` 快进到 `697891d`。这批提交是同事"汇总大表"系列:`ReportExportService`、`SummaryLayoutExpander`、`SummaryMissingDataCheck`、`FreightReadinessCheck`、`ReportExport.vue`,以及配套母版/规格/验证方法文档(多为【待验收】)。 |
| | | - **【接手注意·需重启后端】**:当前 8090 的后端是合并前(08:23)启动的,跑的是旧字节码;本地工作区已是最新,需按 `AGENTS.md` 重启后端才能加载同事最新代码(前端 dev server 会自行 watch 重编译)。本轮未重启,下一步接手时先重启验证。 |
| | | - **数据边界**:本轮未改代码、未跑测试、未导入/覆盖任何业务数据。 |
| | | - **工作区**:仅保留约定不入库的临时目录/文件(`_tmp_doc_compare/`、`_tmp_flow_table/`、`_tmp_holiday_verify/`、`_tmp_rail_label/`、`_tmp_pack_smoke_trend.docx`)和用户数据 `docs/专项统计/重要节假日/观测站分日调查数据 (2026年10月1日).xls`,不要删除或误提交。 |
| | | |
| | | ### 10-13(1):汇总大表《货运周转量排名》块错位修复(母版删多余标题行 + 代码按「全省」行锚点对齐 + 写后自检)【待验收】 |
| | | |
| | | - **现象(用户报告 + 核对)**:9 月 ②③ 入库后,生成件《货运周转量排名》整块错位一行——全省值落到**表头行**(覆盖「累计完成(万吨公里)」文字)、市州值与市州名**错开一行**(武汉行装黄石的数…林区行是母版旧值)、**武汉的值丢失**;`RANK/占比/Q/R` 随错位一并错。 |
| | | - **根因(两层)**:① 母版该页每块比源底稿 `docs/货运/生成_周转量排名.xlsx` **多 1 行**(标题合并占两行:`A1:R2`、`A23:R24`;全省行在第 5/27 行);② `ReportExportService.copyRankValues` 按「块标题行 + 源行偏移」逐行照搬,且 `:4334` 遇到目标格是公式就跳过 → 形成"值列保留 SUM、排名列被写成上一行市州"的半错位。该缺陷**一直存在**(7/8/9 月母版同结构),因这页此前走"整块缺数留空"分支(②③未导)而未暴露。 |
| | | - **修复**: |
| | | 1. **母版**(用户 19:47 执行):`docs/生成汇总大表/2026年9月道路运输量汇总表.xlsx`《货运周转量排名》删掉两块多出的标题行 → 全省行回到第 **4/25** 行,与《货运量排名》同构;Excel 已自动修好合并区与 `SUM(B5:B21)`/`SUM(B26:B42)` 等公式区间。 |
| | | 2. **代码**(`ReportExportService.copyRankValues` → 传参 `List<String> problems`):改按目标块「全省」行做锚点,`rowOff = 目标全省行 − 源全省行`;识别不到锚点回退标题行偏移并 WARN;新增**写后自检**(目标全省行与源侧不一致 ≥2 列 → WARN + 写入《数据缺失清单》)。三个排名页(货运量/周转量/中口径)统一生效。 |
| | | - **验证(20:06 重新生成 2026-09,dev 8090/8080 已重启加载新代码)**:《货运周转量排名》累计块/当月块 × 全省 + 17 市州 × 16 列(规上/规下/合计值、名次、占比、同比、增速名次、Q/R)与库内 `scale_split_transport` 2026-09(CUMULATIVE/MONTH)**逐格一致,0 处不一致**;缺数清单 4→2 条(②③已入库,仅剩网约车 2 条);页签定位 20 页、累计重建 0 格、公式重算 39969 格成功。 |
| | | - **报告(本地、不入库)**:`docs/功能测试报告/功能测试报告_汇总大表周转量排名锚点对齐_2026-10-13.md`。产物:`_tmp/_fix_1013/生成_道路运输量汇总表_2026-09_验证.xlsx`(未入库)。 |
| | | - **【待验收/待定夺/待处理】**: |
| | | 1. 【待验收】《货运周转量排名》母版删行 + 代码锚点对齐与自检(页面重新生成即可复现验证)。 |
| | | 2. 【待用户拍板】《货运量排名》累计块「规下增速 / 增速排名」**30 格**口径:生成件(全省 0.052525)vs 桌面《2026年9月客运量、货运量预测.xlsx》(全省 -0.224015),需定以哪边为准。 |
| | | 3. 【待用户拍板】版式期望:块顺序(生成件=累计在上;预测件=当月在上)、市州名带不带"市"。 |
| | | 4. 【待处理】7/8 月母版同为"多 1 行"结构(在 `归档/`)——锚点对齐后正确性已不受影响,下次取回出表时确认即可,暂不改归档件。 |
| | | 5. 【12 月前】跨年母版需新开一本(扩列 `month>=12` 明确拒绝);建议做成半自动,规则待定(保留几年历史块 / 新一年月度列布放 / 2027-01 母版是否留档)。 |
| | | 6. 【缺数/缺行】网约车 9 月(订单、全省 pin、源文件);公交 9 月 141 行 vs 142 行(源文件缺 `随州市·广水市安顺公交有限公司`)。 |
| | | - **环境**:dev 前后端 20:00 重启(`backend.log` 见 `Started TrafficAuditApplication`、`Tomcat started on port(s): 8090`);启动日志另有一条与本次无关的 `traffic_audit.holiday_calendar` 表不存在告警。 |
| | | - **数据边界**:本轮只做生成与只读核对(库内查询只读),**未导入、未覆盖任何业务数据**。 |
| | | |
| | | ### 10-12(14):汇总大表「缺数清单弹窗 + 生成件《数据缺失清单》页」+ 体检假阳性修复 + 公交 9月缺行核查【待验收】 |
| | | |
| | | - **动因**:用户要求把缺数摆到台面上(P0-3 剩余),并在生成件里给一页《数据缺失清单》。 |
| | | - **改动(3 处)**: |
| | | 1. 后端 `ReportExportService.appendMissingDataSheet(...)`:生成收尾在产物末尾追加《数据缺失清单》页(第 20 页),分「一、缺数清单 / 二、数据体检 / 三、其它提示」,写报表期+生成时间+条数;只读提示页、不参与计算;母版若由产物派生已带同名页会先移除再建。 |
| | | 2. 前端 `ReportExport.vue`:点「导出/生成」先调 `GET /api/report/summaryWorkbook/missing` + `freightCheck`,命中则弹窗(分两段、可滚动)「仍要生成 / 取消」;两项皆空、接口异常或年报模式 → 直接生成。 |
| | | 3. `FreightReadinessCheck` 修假阳性:②全口径整期未导时不再按 `0−规上` 报「规下为负」(上面已报「缺②全口径」)→ 2026-09 命中 68→34,2026-08 仍 0。 |
| | | - **实测(dev 8090/8080,仅生成/只读)**:missing(2026-09)=4 条(货运②③、网约车订单、网约车 pin);freightCheck(2026-09)=34、2026-08=0;异步生成 2026-09(refresh=true)→ 1,303,490 B / 20 页 / 清单 39 条(4+34+1),落盘缓存同步刷新为 `_cache/summaryWorkbook_2026-09_month__vc0e2afa47b51bc04.xlsx`;前端 `Compiled successfully`、bundle `/js/6.js` 已含新代码;年报模式两接口返回空。 |
| | | - **报告(本地、不入库)**:`docs/功能测试报告/功能测试报告_汇总大表缺数清单弹窗与生成件页_2026-10-12.md`。状态:**【待验收】**。 |
| | | - **【待验收 / 待定夺 / 待处理】三项**: |
| | | 1. 【待验收】导出前弹窗 + 生成件《数据缺失清单》页(产物 `docs/生成汇总大表/输出/生成_道路运输量汇总表_2026-09.xlsx` 末页); |
| | | 2. 【待用户定夺】排名页缺数期留空:数值列留空符合预期,但《货运周转量排名》`R` 列仍显示 **10.00**(母版 `=10-Q` 在 `Q` 清空后算出;源侧空表无此公式),是否一并清空本次**未改**; |
| | | 3. 【待处理】公交 2026-09 少 1 行属**源文件缺行**——`随州市·42138100005·广水市安顺公交有限公司` 在 6/7 月源表第 119 行存在、9 月源表没有(`import_batch#551` 记录 141/141/0,非导入跳过)→ 需向数据来源补件或确认企业停报;**未导入任何数据**。 |
| | | - **顺带复核**:09 月母版 9 月列数值无误(`班线包车!S9=20647.5363`、`公交!S8=61618.09`、`出租!S6=32787.72`、`中口径明细!S5=3517.9161`;全簿 `46266` 只剩 3 个合法表头行)。 |
| | | - **环境提示**:本机残留 1 个无窗口 `EXCEL.EXE`(PID 23540,`taskkill` 拒绝访问);已确认**母版未被锁**(读写测试通过),下次用 Excel COM 前先复查该进程。 |
| | | |
| | | ### 10-12(13):下班关机交接 — 汇总大表缺数/母版脏格修复已提交推送,下一步待办与新会话起步 |
| | | |
| | | **接手入口(新会话先读这三处)**:① 根目录 `AGENTS.md`;② 本文件顶部(本节 + 10-12(11)(12));③ 上一会话标题「10.8日比对汇总大表和专项统计的生成逻辑」(因上下文超限报错中断,其工作已由本节这条线做完并补提交)。 |
| | | |
| | | - **今天这条线已完成并推送(origin main,本地与远端一致)**: |
| | | - `fc00eb7` 扩列表头行改按基准月份列判定 + 清理 9 月母版被写成日期 `46266` 的 13 格; |
| | | - `ae47753` 缺数清单代码入库 + 缺数期不沿用上一期旧值(排名页按源侧留空/整块留空); |
| | | - `7f958f5` 汇总大表生成数据验证方法成文(补提交);`f2056aa` 合并同事 10-08 铁路走势图提交(HANDOFF 顶部冲突已按"双方都留"解决,顺序:zyj 线各节 → 同事 10-08/10-07 各节)。 |
| | | - **当前状态**:本机 dev 前后端在跑(8090/8080);库内 2026-09 有 ①H2032、公交、出租、班线包车,**缺**②全口径、③拆分表、网约车(用户 10-12 说明"其他数据暂时还没有");9 月母版 `docs\生成汇总大表\2026年9月道路运输量汇总表.xlsx` 已修好(备份 `_bak_2026年9月母版_清理脏格前_20261012.xlsx`);最新产物在 `docs\生成汇总大表\输出\生成_道路运输量汇总表_2026-09.xlsx`(未跟踪、不入库)。 |
| | | - **【待验收】两项(请用户看页面重新生成的 2026-09)**:① 排名页在**缺数期整体留空**(不再显示上一期旧值)是否符合预期,若要"保留上一期值"可回退 `copyRankValues` 的两条留空逻辑;② 9 月母版 13 格清理后的 9 月列数值(班线包车 20647.5363、公交 61618.09、出租 32787.72、中口径明细 3517.9161)。 |
| | | - **下一步待办(按优先级)**:① 缺数清单的"导出前弹窗 + 生成件《数据缺失清单》页"(P0-3 剩余,与 B4 体检合并);② 公交 9 月 141 行 vs 1-8 月 142 行仍待核(用户说先这样);③ 用户若要回到"**专项统计 / 节假日快报**"那条线,先读 `docs/专项统计/重要节假日/` 与 AGENTS.md 的"重要节假日快报与分析报告口径";④ 城市分市州/道路运输周转量 34 个 `#DIV/0!` 按用户 10-12(7)决定**不动**。 |
| | | - **环境/坑(下次直接用)**:`mvn`、`start-dev.ps1`/`stop-dev.ps1`、Excel COM、`git` 提交推送都需 `require_escalated`(`.git` 沙箱内只读;node 访问用户目录被拒);**Excel COM 前先确认没有无窗口 EXCEL 残留进程**(会把母版锁成只读、Save 静默失效,今天踩过,处理见 10-12(11));`_tmp\_fix\` 下留了可复用脚本(`expand.ps1` 扩列、`gen.ps1` 生成、`repair_master.ps1` 母版精修、`verify_*.py` 校验),未跟踪、按约定不删。 |
| | | - **数据边界**:本轮**未导入、未覆盖、未重导任何业务数据**(只做生成与只读核对)。 |
| | | ### 10-12(12):汇总大表「缺数不留上一期旧值」(排名页按源侧留空)+ 缺数清单代码入库【待验收】 |
| | | |
| | | - **背景**:用户问"生成表里很多数据都是 8 月的吧";同时库里的缺数清单代码一直未提交(本机沙箱故障期间写的,沙箱恢复后补提交)。 |
| | | - **口径改动(3 处,同一件事:缺数不留上一期旧值)**: |
| | | 1. `loadCumulativeMap` / `getProvinceCumulative`:③规上规下拆分表**只认目标期**(原实现允许"目标期及之前最近一期"→ 会静默拿上一期的数当本期); |
| | | 2. `copyRankValues`:源侧(独立排名表)缺数时**目标格留空**,不再沿用母版上一报表期的旧值(源侧文字标签不清); |
| | | 3. 排名块**整块缺数**(源侧一个数都没有,如 9 月缺②③时的《货运周转量排名》)→ 整块只留标题与市州名,避免母版自带 RANK/占比公式在空块上算出"排名全 1 + 占比 #DIV/0!"。 |
| | | - **效果(2026-09 实测,产物 `docs\生成汇总大表\输出\生成_道路运输量汇总表_2026-09.xlsx`)**: |
| | | - 《货运周转量排名》整块留空 —— 与用户日常核对的《生成_周转量排名》空态一致 ✓; |
| | | - 《货运量排名》9 月块:规上=①实数(全省 **3575.1211**)、规下/合计留空(缺②);占比列沿用源侧公式(其中 72 个 #DIV/0! 是独立排名表本身就有的); |
| | | - 无回归:公交 9 月客运量 **13476.35**、城市内 12021.00、出租客运量 5626.81 与库内 Σ17 市州逐位一致 ✓(其余页与上一版产物差异仅来自母版脏格清理与缓存刷新)。 |
| | | - **同时补提交**(沙箱故障期间遗留,已按 10-12(4)报告验证过):`reportexport/calc/SummaryMissingDataCheck.java`(只读缺数清单)、`GET /api/report/summaryWorkbook/missing`、导出日志 `dbProblems` 接入(本次导出日志已可见"缺数提示=[…]")。 |
| | | - **遗留/待确认**:① 城市分市州、道路运输周转量的 34 个 #DIV/0! 按 10-12(7)用户决定不动;② **排名页在缺数期整体留空是否符合预期,请验收时确认**(若要"保留上一期值"的口径,可回退第 2/3 条)。 |
| | | - **报告(本地、不入库)**:`docs/功能测试报告/功能测试报告_汇总大表缺数不留上一期旧值_2026-10-12.md`。状态:**【待验收】**。 |
| | | ### 10-12(11):扩列表头行二次修正 + 9 月母版被扩列写成日期的 13 格清理【待验收】 |
| | | |
| | | - **现象(用户报告)**:生成表里"很多数据是 8 月的"。排查发现 **9 月母版里有 13 个数据格被写成了 9 月月份日期序列 `46266`(= 2026-09-01)**:` 货运!S11/T11`、`班线包车!S9/T9`、`公交!S8/T8`、`出租!S6/T6`、`中口径明细!S5/T5`;下游缓存被带偏(`班线包车!S5`、`中口径明细!S99/S100/S104/S105` 等也是 46266)。 |
| | | - **根因**:扩列器 `headerRowsOf` 首版只要求"整行 ≥2 个月份格",而出租第 6 行、班线包车第 3 行这类**数据行**里恰好有 2 个像日期序列的数值 → 被误判成表头行 → 扩列时把"月份日期"写进了数据行(`cloneHeaderCell` 对数值格写 `targetMonth` 的日期)。 |
| | | - **修法**:改为**先取"月份表头格最多的那一行"作基准,把它的月份列当标准列**;只有这些列上大半是月份格的行才算表头行。轨道、轮渡一页两个块的 `[1,10]` 保持 ✓;` 货运/公交/网约车/中口径明细` 仍为单行表头 ✓。 |
| | | - **母版修复(用 Excel COM,未整本重写)**:13 格按扩列规则精修(该留空的清空、公式按规则补回 `=S12+S13` / `=S11/AN11-1` / `=S10+S14+…`)+ `CalculateFull` 整本重算刷新缓存;修复前备份 `_bak_2026年9月母版_清理脏格前_20261012.xlsx`。修复后全簿只剩 3 个 `46266` 的**合法表头月份格**(城市客运 S2、公交 S3、出租 S3)。 |
| | | - **验证**:重跑 2026-08→9 月扩列(日志表头行 ` 货运[2] 班线包车[1] 城市客运[1] 公交[2] 出租[2] 网约车[2] 轨道、轮渡[1,10] 中口径明细[2]`),新推件在这 13 格上全部正确;重跑 2026-09 生成,产物 `docs\生成汇总大表\输出\生成_道路运输量汇总表_2026-09.xlsx` 中 13 格恢复为真实 9 月值(`班线包车!S9=20647.5363`、`公交!S8=61618.09`、`出租!S6=32787.72`),**无 46266 残留**。 |
| | | - **报告(本地、不入库)**:`docs/功能测试报告/功能测试报告_扩列表头行基准列修正与母版脏格清理_2026-10-12.md`。状态:**【待验收】**。 |
| | | ### 10-12(3):修「9 月产物丢 8 月列 / 累计漏月」——扩列改为**以当期产物为底**【待验收】 |
| | | |
| | | - **现象(用户报告)**:生成的 9 月汇总大表里 **8 月列全空**,累计漏掉 8 月(规上货运量累计显示 31309.58,正确应为 1-7月 27734.46 + 8月 3665.36 + 9月 3575.12 = **34974.95**)。 |
| | |
| | | - **两处残留(均不可见,已核实)**:① 列宽 226 处 **±0.01**(Excel 按 1/256 字符存宽度)✓;② 32 个**空白格/合并区覆盖格**的填充与字体色(Excel 保存对空格格式的处理差异)✓。 |
| | | - **一处需用户拍板的数值变化**:本次生成件 `中口径排名` 有 **46 格**(同比/排名,如 `D3` 0.0581→**0.0402**、`E4` 第10→第**9**)与上一版不同;**新值与《中口径分析》页逐位一致**(`B3=35028.0636`、`C3=0.04015856`)——即排名页与明细/分析页口径统一(原旧值是该页在母版里的旧缓存)。**保留新值 / 回退旧值待用户确认**。 |
| | | - **归档说明**:`归档/` 内 5 件历史母版/版式件仍可随时取回(未删除);母版目录以后只放"当期一本"。 |
| | | - **状态**:**【待验收】**。 |
| | | ### 10-12(9):扩列器加「整本重算写缓存」+ 明确保留中口径排名新值【待验收】 |
| | | |
| | | - **问题定位(用户问"为什么产生这 46 格差异")**:母版里**大量公式只有公式、没有缓存值**(POI 写公式不带缓存)。实证:母版经 Excel 保存前后 **约 2.47 万格**由"空"变"有值"(如 ` 货运!U5: 空→130311.8927`)。`中口径排名` 的同比/排名由程序**读母版缓存**计算(方案 A)→ 缓存空时算旧值 `0.0581`,缓存补齐后算 `0.0402`(**与《中口径分析》逐位一致**)。**新值才是数据完整时的正确结果**。 |
| | | - **改动**:`SummaryLayoutExpander` 新增 `recalcAndCache(wb)`(`clearAllCachedResultValues()` + `evaluateAll()` 写回缓存,失败仅 WARN),在 `expand()` 与 `fixTitles()` 中调用。 |
| | | - **验证**:扩列 2026-08 → 公式格 **39,961** 个,**空缓存仅 4 格**(全在 ` 货运`,POI 无法求解的外部引用,Excel 打开会算);修复前同类母版约 2.47 万格无缓存。 |
| | | - **用户决定**:`中口径排名` 那 46 格**保留新值**(与中口径分析一致,口径统一)。 |
| | | - **报告(本地、不入库)**:`docs/功能测试报告/功能测试报告_扩列整本重算写缓存_2026-10-12.md`。状态:**【待验收】**。 |
| | | ### 10-12(10):9 月导入核验 + 出表抽查通过;9 月仍缺数据清单【待验收】 |
| | | |
| | | - **9 月导入核验(只读查库)**:城市公交 **141 行**、巡游出租 **17 行**、公路旅客 H2031 **767 行**、货运企业 H2032 **636 行** → 全部成功(**公交/出租的"按表头名定位"改动实测有效** ✓,`import_batch` 551/552 可见)。仍缺 9 月:**②《货运量周转量表》(全口径)0 行、③规上规下拆分表 0 行、网约车订单/全省 pin 0/0、个体客运 0 行**(用户 2026-10-12 说明:其他数据暂时还没有)。 |
| | | - **出表抽查(产物落 `docs/生成汇总大表/输出/生成_道路运输量汇总表_2026-09.xlsx`)**:公交 9 月客运量 **13476.35**、城市内 **12021.00**、出租客运量 **5626.81**、城市内 **5139.61** —— 与库内 Σ17 市州**逐位一致** ✓;累计已含 9 月(公交累计 **124252.69** = 1-8月 110776.34 + 9月 13476.35)✓。因②未导,9 月《 货运》页"全口径"暂等于规上(3575.1211)、"规下"为 0 —— 属缺数,非算错。 |
| | | - **小待办**:公交 9 月 **141 行** vs 1-8 月各期 **142 行**(少 1 行),待核是源文件少行还是导入跳过(可能是空行/汇总行)——用户说先这样,留待以后。 |
| | | - **本机限制**:助手沙箱不能写 `D:\下载`,生成件只能落在仓库内(`docs/生成汇总大表/输出/`);正式下载请在页面点生成/下载。 |
| | | - **状态**:**【待验收】**。 |
| | | ## 最新(2026-10-12,zyj 线) |
| | | |
| | |
| | | - **卡点未变**:`resolveSummaryMother`(`ReportExportService.java:4576`)只精确匹配《{year}年{month}月道路运输量汇总表.xlsx》,目标月无母版即报错;9 月母版仍为用户 09-29 手工扩列产物(本机未入库)。 |
| | | - **待确认**:① 扩列蓝本用 9 月手工版还是 8 月版;② 是否一次建成 12 月满版式(方案 v1 建议满版式)。 |
| | | - **状态**:本段与 M0 规格均为【待验收】;本轮未改动任何代码。工作区未跟踪的 `docs/生成汇总大表/2026年9月道路运输量汇总表*.xlsx` 与 `docs/确认.docx` 按约定保留。 |
| | | ## 最新(2026-10-08 铁路客运量走势图10月3日标签避让) |
| | | |
| | | ### 10-08:铁路客运量走势图 10月3日 `72.4` 标签上移,避免被 `70.6` 遮挡 |
| | | |
| | | - **需求(用户)**:走势图其余部分一律不动,只把 `“十一”假期铁路客运量情况` 图中 10月3日 `72.4` 的标签从点的右边移到点正上方;该位置原本空白,放右边会被 2024 年绿色 `70.6` 标签压住一部分导致看不全。 |
| | | - **数据背景(2026 十一铁路客运量,万人次)**:2026 年 10月3日 = 72.4,2025 年同日 = 72.3,2024 年同日 = 70.6。三条线同日数值非常接近,自动布局把 `72.4` 放到了点右侧。 |
| | | - **根因**:标签自动布局(`HolidayTrendChartService.drawXYItemLabels` 动态规划)只对“按数值排序后相邻的两个标签”做重叠惩罚;`72.4` 与 `70.6` 之间隔着 `72.3`,二者不相邻,重叠未被惩罚,因此允许互相覆盖。 |
| | | - **改动**:`HolidayTrendChartService.lineChart` 新增可选 `List<LineLabelOverride> labelOverrides` 入参(配合 `LineLabelAnchor{ABOVE,BELOW,LEFT,RIGHT}`),可把指定 `(seriesIndex,itemIndex)` 的标签固定到某个方位;不传参时完全走原自动布局,渲染逐字节不变。`HolidayTrendService` 仅对铁路图传一条 override:`seriesIndex=0`(2026 年)、`itemIndex=2`(10月3日)、`ABOVE`。 |
| | | - **验证**:`mvn -o test` 17/17 通过(新增标签锚点单测:空/不匹配 override 不改变渲染、ABOVE 高于 BELOW);真实库端到端重新生成走势图,15 张图中仅 `image5.png`(铁路图)SHA-256 变化,其余 14 张逐字节一致;铁路图前后像素差包围盒 `x 313-436, y 395-438`,正是该标签区域;本地 OCR 确认 `72.4` 完整可读、位于点(y≈427)上方,不再与 `70.6`(y431-450)重叠。 |
| | | - **边界**:只改了铁路这一张图的这一处标签;快报、数据导入、其它统计逻辑均未触碰;未导入/覆盖/重导任何业务数据。 |
| | | - **重启**:为让按钮下载用上新代码,已用 `start-dev.ps1` 重启后端(前端未动);可直接在系统里重新下载走势图验收。 |
| | | - **待办/风险**:这条 override 绑定 `seriesIndex=0`(2026 年)与 `itemIndex=2`(10月3日);若后续铁路图系列顺序或天数口径调整,需要同步核对。其余年份/日期如再出现标签遮挡,可复用该 override 机制,但需逐图人工确认后再加。 |
| | | - **验收**:用户 2026-10-08 已看图确认效果可以。 |
| | | |
| | | ## 历史(2026-10-08 走势图附录二观测站图天数修正) |
| | | |
| | | |
| | | |
| | | ### 10-08:观测站速度/拥挤度走势图改用系统配置假期天数(已验收,commit e958585) |
| | | |
| | | - **需求(用户)**:走势图最后两张图“普通国省道观测站平均机动车速度”“…平均拥挤度”只含今年数据,横轴天数不应是固定 8 天,而应为系统配置的假期天数。 |
| | | - **改动**:`HolidayTrendChartService.lineChart` 新增可传 `dayLabels` 的重载(默认仍为 `DAY_LABELS` 8 天,其余 13 张图零改动);`HolidayTrendService.observationData` 改为按 `configService.findHolidayDays(year, holidayType)`(`day_index>=1`)的天数与日期生成数据点和横轴标签,最后两张图传入该标签。 |
| | | - **配置依据**:`holiday_calendar` 2026 十一 `day_index 1..7`(7 天,`day_index 0` = 09-30 环比基期);2025 = 8 天、2024 = 7 天。 |
| | | - **验证**:`mvn -o test` 16/16 通过(新增自定义横轴标签单元测试);真实云只读生成走势图,与用户已下载版逐图对比:image1~13 的 SHA-256 完全一致,仅 image14(速度)、image15(拥挤度)变化;OCR 确认新图横轴为 10月1日~10月7日、无 10月8日。 |
| | | - **边界**:其余图仍固定 8 天口径,未改;未导入/覆盖/重导任何业务数据。 |
| | | - **重启**:为让按钮下载用上新代码,已用 `start-dev.ps1` 重启后端(前端未动),重启时间 2026-10-08 10:38:53;可直接在系统里重新下载走势图验收。 |
| | | - **验收**:用户 2026-10-08 在系统里重新下载走势图后审核,验收通过。 |
| | | |
| | | ## 历史(2026-10-08 上班前关机快照) |
| | | |
| | | ### 10-08:走势图 `(14)` 与已验收 `(12)` 比对(内容一致) |
| | | |
| | | - **用户任务**:比对系统重新下载的 `C:\Users\jcxiong\Downloads\2026年十一假期全省综合运输客流量走势图 (14).docx` 与此前验收通过的 `(12)`。 |
| | | - **比对方法**:按 DOCX 包逐项比对。`(12)`、`(13)`、`(14)` 的 31 个内部文件(含正文 XML、样式、关系文件和全部图表图片)逐个 SHA-256 完全相同。 |
| | | - **比对结果**:三个文件整体 SHA-256 不同,仅因 ZIP 容器时间戳等打包元数据不同;文件长度相同,差异为 234 个字节,集中在 3 字节时间戳段,文档内容没有任何差异。 |
| | | - **结论**:`(14)` 就是已验收的 `(12)` 同一版本,图表数值、标签、版式均未变化,不需要重新验收。 |
| | | - **边界**:只读比对,未修改下载文件、代码、系统数据或业务库。 |
| | | - **当前运行**:2026-10-08 重启后,已用 `start-dev.ps1` 恢复 dev 环境;前端 `8080`、后端 `8090` 均在监听并访问正常。Git 在本次交接提交前为 `HEAD = origin/main = c7b6553`;工作区无已跟踪改动,只剩约定不入库的 `_tmp_*`、`_tmp_pack_smoke_trend.docx` 和观测站原始 XLS。 |
| | | - **数据与下一步**:当前业务库仍只覆盖到 `2026-10-06`,`2026-10-07` 未导入。新对话先读 `AGENTS.md` + `HANDOFF.md`;等 10-07 数据齐全后,先只读核对源 Excel 和异常项,得到用户明确指示后再导入或改动,再生成最终走势图和分析报告。折线图横轴仍按已确认的固定 8 天口径,不能改成按年度截断。 |
| | | |
| | | ### 10-08:同事分析报告趋势核对(只读,未改动文档) |
| | | |
| | | - **任务**:核对 `D:\03_公司\02_项目\27_湖北省道路运输事业发展中心\10_业务\99_专项统计\01_重要节假日\2026\十一\2026年十一.docx` 的走势结论是否有数据支撑。用户明确先只看趋势,不纠结假期未结束时的具体数值;文中去年的图不作为判断依据。 |
| | | - **当前数据边界**:只读查询确认 `holiday_passenger_flow`、`holiday_vehicle_flow`、`observation_station_flow` 均只覆盖到 `2026-10-06`;`2026-10-07` 尚未导入。本轮未执行任何导入、覆盖或重导。 |
| | | - **总体结论**:报告主线基本成立。10 月 1 日至 6 日跨区域总量为首日高开、2 日至 3 日下降、4 日至 5 日回到高位、6 日小幅回落;道路客运稳定、铁路按同日期比较唯一增长且潮汐性明显、水路同比下降且三年峰值均在 10 月 5 日前后、自驾主体地位和国省道日流量高于 300 万辆次,均有数据支撑。 |
| | | - **需要收紧的结论**:阴雨导致下降目前只能说明时间吻合,不能单独证明因果;“前期积压需求释放”证据不足;道路车流总量只有 10 月 4 日明显回升,5 日基本持平、6 日又回落,不能写成 4 日至 7 日持续高位;“短途游、周边游、乡村微度假”只能证明短途通行活跃,需文旅、路线或 OD 数据;“县域及城乡短途客运韧性/兜底”需结构数据;2025 与 2026 只能说总体形态相近,不是日间节奏一致。 |
| | | - **待 10-07 数据齐全后定稿**:7 天总量、日均、各方式占比、峰值谷值、返程高于出行、铁路和民航尾日、全周期同比。重要口径:2025 年为 8 天、2026 年目前为 7 天,同比必须按相同日期范围比较,不能直接用 7 天对 8 天。 |
| | | - **边界**:未修改同事的 Word,未改动系统数据,未生成新报告或走势图。发现问题先报告,得到用户明确指示后再改。 |
| | | - **Git/运行**:`HEAD = origin/main = ca0bbe1`;无已跟踪文件未提交改动。dev 后端 8090、前端 8080 在关机前保持运行,随关机自动停止;重启后按 `AGENTS.md` 用 `start-dev.ps1` 启动。 |
| | | |
| | | ## 历史(2026-10-07 上午,新开会话交接) |
| | | |
| | | ### 10-07 关机快照(当前交接) |
| | | |
| | | - **Git 状态**:`HEAD` 与 `origin/main` 均为 `179544a`;已跟踪文件无未提交改动。工作区仅保留按约定不入库的 `_tmp_*` 临时目录、`_tmp_pack_smoke_trend.docx` 和一份观测站原始 XLS。 |
| | | - **本轮更正**:我误将折线图固定 8 天判断为缺陷,提交 `8ad75d5` 擅自改成了按年度配置截取;用户明确纠正后,已用 `179544a` 整体回退并推送。当前代码状态等同错误修改前的 `c21fbdd`。 |
| | | - **已确认口径(不得再改)**:折线图横轴固定 8 天;2025 年有 10 月 8 日的数据点和横轴位置,2024、2026 年该日无点但横轴保留 10 月 8 日;累计曲线只连接实际有数据的日期,缺日不延续;观测站附录查询覆盖 10 月 1 日至 10 月 8 日。 |
| | | - **错误产物提醒**:`C:\Users\jcxiong\Downloads\2026年十一假期全省综合运输客流量走势图(7天版-待验收).docx` 是错误改动时生成的文件,不得使用;未经用户指示不删除。 |
| | | - **运行状态**:关机前后端 `8090`、前端 `8080` 仍监听,随关机自动停止;下机后按 `AGENTS.md` 用 `start-dev.ps1` 启动。 |
| | | - **数据边界**:本轮未导入、覆盖或重导任何业务数据。 |
| | | - **下次接手**:先读根目录 `AGENTS.md` + 本文件;若用户提供了 10 月 7 日数据,先只读核验,发现异常先报告,得到明确指示后再执行任何修改、导入或提交。 |
| | | |
| | | ### 10-07:每日客流构成图右侧标签布局修复(验收通过) |
| | | |
| | | - **问题**:`image13`「每日客流构成变化」右侧外置百分比标签在相邻日期之间重叠 4 处;改为两列后引线交错,个别引线压住绿色块内数值。 |
| | | - **最终规则**:只有色块内放不下的标签进入右侧外置区;外置标签按原始图例序号排序,即道路→铁路→民航→水路;最多 2 列,按“先行后列、每行从左到右”填充;1 个标签整体居中,2 个标签两列各居中,3 个标签下排单标签跨两列居中,4 个标签为 2×2 格居中;两列布局不画引线,颜色对应色块。 |
| | | - **实现**:`HolidayTrendChartService` 将右侧标签带从 74 加宽到 140;`HorizontalStackCallout` 记录原始 `seriesIndex` 并按其排序;仅对每日客流构成图启用两列居中布局;公路出行结构仍走原单列带引线逻辑。 |
| | | - **验证**:真实库只读生成 2026-10-07 走势图;与原版相比 15 张图中仅 `image13` 变化,其余 14 张 SHA-256 完全一致;右侧标签区 OCR 重叠从 4 降为 0;无引线。后端全量 `mvn -q test -f traffic-audit-server\pom.xml` 通过。 |
| | | - **验收**:用户 2026-10-07 验收 `(12).docx` 通过。 |
| | | - **后续**:10-07 数据齐全后,按系统配置的假期天数(7 天)生成最终版走势图,用于分析报告;本轮不调整假日天数来源。 |
| | | - **数据边界**:未导入、覆盖或重导任何业务数据。 |
| | | |
| | | ### 10-07:普通国省道 2025-10-05 调整值更正(已核对) |
| | | |
| | | - **背景**:10-05 剔除 3 个环比降幅超过 50% 的站点(郑店、樊家庄、上津站)和 3 个 10-05 缺失站点(龙泉、华鲁交调站、大典河)。 |
| | | - **站点编号**:郑店 `S101L110420115`、樊家庄 `S120L105420702`、上津站 `G242L104420322`、龙泉 `S216L103420506`、华鲁交调站 `S223L117421024`、大典河 `S464L105422828`。 |
| | | - **各日剔除合计(中小客流量,辆次)**:2026-10-04 `16,484`;2026-10-05 `4,398`;2025-10-05 `14,239`;2024-10-05 `11,907`。调整时缺失站点按 0 处理。 |
| | | - **系统更正**:`holiday_vehicle_adjustment` 的 2025-10-05 调整值已由 `322.7801` 改为 `332.7801`(更新时间 2026-10-07 08:45:52);2024-10-05 `289.5557`、2025-10-04 `337.5009`、2024-10-04 `322.5277` 不变。 |
| | | - **工作簿更正**:`C:\Users\jcxiong\Downloads\2026年十一数据 (4).xlsx`(修改时间 08:46:52)中 `普通国省道!F7=332.7801`。联动结果已正确重算:`普通国省道!G7=-4.8%`;`人员流动量汇总` 的 `E7=1460.97`、`F7=-0.3%`、`K7=1372.85`、`Q7=1290.04`、`R7=-1.0%`、`V7=-4.28%`。 |
| | | - **公式更正已核实**:`普通国省道!E8=(D8-D7)/D7`、`G8=D8/F8-1`、`I8=D8/H8-1`、`E9=(D9-D8)/D8`。 |
| | | - **10-06 边界(重要)**:工作簿目前只有铁路 `C9=96.2`、水路 `C8=5.4932`、高速公路 `C8=206.1206`;民航 `C9`、道路 `C8`、普通国省道 `D8` 仍为空。因此 `人员流动量汇总!C8=596.38264` 只是部分合计,`D8=-59.06%` 以及各 `-100%/#DIV/0!` 都不可用于快报;补齐三项后重算。 |
| | | - **数据边界**:本轮只读核对,未导入、覆盖或重导任何业务数据。 |
| | | |
| | | ### 10-07:Codex 输入卡顿排查与交接建议 |
| | | |
| | | - 当前线程从 10-05 连续使用至今,rollout 约 `32.17 MB`,含 `3,751` 条 `response_item`、`3,469` 条 `event_msg`、`10` 次 compaction;用户已决定新开对话继续。 |
| | | - 已排除 `codex-plus-plus-manager --show-update`(未运行);重试风暴 guard 已安装,`dropped=859` 且连续 10 秒不增长,当前没有持续重试风暴。 |
| | | - 观测到 Codex 主进程累计约 `4.34 h` CPU、渲染进程约 `1.28 h`;短时峰值主进程约 `116%` 单核、渲染约 `44%`,属于间歇高负载。建议新对话继续;若仍卡,完全退出并重启 Codex。 |
| | | - **新对话接手**:先读根目录 `AGENTS.md` + 本文件。当前 git `HEAD` 与 `origin/main` 均为 `9b56330`,已跟踪文件无改动;dev 前端 `8080`、后端 `8090` 正在运行。 |
| | | |
| | | ## 历史(2026-10-07 早间关机快照) |
| | | |
| | | ### 10-07 关机快照 |
| | | |
| | | - **当前状态**:本轮仅做关机交接,无代码、测试口径或业务数据变更。上一任务“折线图纵向间距加高 20%”已于 10-06 验收,提交为 `54e10ae fix(holiday): 加大折线图纵向间距并同步 Word 尺寸`。 |
| | | - **Git**:`main` 的 `HEAD` 与 `origin/main` 均为 `54e10aee11aa4a10926df02782ca07d41eeb9b98`;无未提交的已跟踪文件,工作区仅有按约定不入库的 `_tmp_*` 临时目录/文件、`_tmp_pack_smoke_trend.docx` 和一份观测站原始 XLS。 |
| | | - **运行状态**:关机前本机 dev 前后端仍可访问(前端 8080、后端 8090 均返回 200);随计算机关机会自动停止,重启后按 `AGENTS.md` 用 `start-dev.ps1` 启动。 |
| | | - **本地留存**:折线图纵向间距的测试报告和工作日结已写入 `docs/功能测试报告/`、`docs/工作日结/`,均按约定不入库。 |
| | | - **下次接手**:先读根目录 `AGENTS.md` + 本文件;仓库级待办仍见第七节,本轮无新增待办。 |
| | | - **数据边界**:未导入、覆盖或重导任何业务数据。 |
| | | |
| | | ## 最新(2026-10-06) |
| | | |
| | |
| | | |
| | | |
| | | - 2026-08-31(下班前):数据导入页重构验收通过(commit 791e70f 已推送,详见第 7 节)。改造全用 Python 替换写文件(apply_patch 本机必败);关键坑:Vue 新方法误放 methods 外 → render TypeError、el-table 展开行不渲染,[Vue warn] 只在 console 不在 pageerror;验证用 puppeteer 拦截 /api/import/batches 返回 mock 失败数据直接验明细表,真实无失败数据验「暂无导入失败记录」空态。 |
| | | |
| | | - 2026-10-09:按春节版「人员流动量情况」表制作 **2026 十一假期**版,输出 `D:\03_公司\02_项目\27_湖北省道路运输事业发展中心\10_业务\99_专项统计\01_重要节假日\2026\十一\2026年十一假期人员流动量情况.xlsx`(原春节模板备份在 `_tmp_flow_table\template_backup.xlsx`,未删用户文件)。结构:标题行 + 三级合并表头 + `合计` 行 + 10月1日~10月7日逐日行;7 个指标(全社会跨区域 / 铁路 / 公路人员流动量〔下分流动量合计、高速公路及普通国省道非营业性小客车人员出行量、公路营业性客运量〕/ 水路 / 民航)每个都给「数量 / 同比2025年 / 同比2024年」,即把原表的「同比2019年」改为「同比2024年」并给每个指标补齐第二个同比列(A~V 共 22 列)。数据取自系统 `GET /api/holiday/overview?holidayType=NATIONAL_DAY`(2024/2025/2026),并逐项对齐 10月7日源文件 `2026年十一数据10月7日.xlsx` 的 `人员流动量汇总` 与 铁路/水路/民航/道路 各页,全部一致(7 天合计总量 10115.56 万人次、同比2025 -4.46%、同比2024 +4.25%)。口径恒等式校验通过:公路人员流动量 = 非营业性小客车 + 公路营业性;全社会 = 公路 + 铁路 + 水路 + 民航。生成脚本 `_tmp_flow_table/nodework/build_xlsx.mjs`(artifact-tool,临时目录不入库)。 |
| | | |
| | | - 2026-10-09(补):上表按 A4 打印做适配——列宽收窄(日期列 7、数量列 7.5、同比列 6.8)+ 工作表打印设置(A4、横向、缩放「1 页宽×1 页高」、水平居中、页边距左右 0.35″/上下 0.4″)。用 Excel 实际导出 PDF 实测 **正好 1 页**(A4 横向 841.92×595.32 pt),数值/百分比无 `####`、无截断。注:artifact-tool 无打印设置 API,pageSetup/printOptions/pageMargins 是导出后注入 XLSX 的 `xl/worksheets/sheet1.xml`(脚本 `_tmp_flow_table/print_setup.py`,临时不入库)。 |
| | | |
| | | - 2026-10-09(续):按反馈改出十一人员流动量表第 2 版,输出 `D:\03_公司\02_项目\27_湖北省道路运输事业发展中心\10_业务\99_专项统计\01_重要节假日\2026\十一\2026年十一假期人员流动量情况2.xlsx`(单表 A1:S13)。改动:①表头顺序调整为 全社会 / 公路 / 铁路 / 水路 / 民航(公路提前);②去掉「公路人员流动量·流动量合计」子列,只留 高速公路及普通国省道非营业性小客车人员出行量 与 公路营业性客运量;③新增「日均」行(行序:合计、日均、10月1日~7日);④「合计」行同比2025 改为 2026年7天合计 ÷ 2025年8天合计(2025年国庆假期为10月1-8日共8天),同比2024 不变;日均的同比按各年天数折算(2026、2024为7天,2025为8天)。数值:合计同比2025 全社会 -14.37%、非营业性小客车 -14.82%、公路营业性 -17.45%、铁路 -3.33%、水路 -23.76%、民航 -17.12%;日均同比2025 全社会 -2.13%。标题沿用用户版本「2026年“十一”假期全社会跨区域人员流动量情况」。仍为 A4 横向 1 页(导出 PDF 实测)。数据源同前(系统 overview + 10月7日源文件核对;2025 第8日取系统 dayIndex=8)。 |
| | | |
| | | - 2026-10-12(交接快照,用户准备新开对话):电脑重启后已用 `start-dev.ps1` 拉起前后端,脚本输出后端 OK、前端 OK;前端访问 http://localhost:8080,后端 8090,日志分别见 `backend.log` / `traffic-audit-web/frontend.log`。当前 git 分支 `main`,无已跟踪文件改动;工作区有 10-09 生成的未入库临时目录/文件(`_tmp_doc_compare/`、`_tmp_flow_table/`、`_tmp_holiday_verify/`、`_tmp_rail_label/`、`_tmp_pack_smoke_trend.docx`)及用户数据 `docs/专项统计/重要节假日/观测站分日调查数据 (2026年10月1日).xls`,不要删除或误提交。本轮未改代码、未跑测试、未提交。 |
| | | |
| | | - 2026-10-12(业务疑点核查,只读):企业上报的「厚坪-远安」「后坪到远安」两个地名已初核。可确认「后坪」在兴山县水月寺镇后坪一带(后坪林场、后坪磷矿附近),后坪磷矿公开资料还涉及榛子乡石柱村;「远安」指宜昌市远安县;「厚坪」在宜昌/兴山公开地名中未查到有效地点,判断大概率是「后坪」的错字或简称(另有「兴山厚坪物流有限公司」注册在峡口镇泗湘溪村,但公司名不能等同地名)。按水月寺镇后坪到远安县城的公开道路测算,单程约 106.7 km;企业均填 201 km,不能直接认定错误,需企业补充具体装货点、卸货点、单程/往返及绕行路线后再核。系统 `h2032_enterprise_monthly` 的审核说明中未留下这两处地点原文。 |