zhizhijie
2026-09-20 35d098a89613c96179391178b7f8143dec393ada
docs/¹¤×÷ÈÕ½á/¹¤×÷ÈÕ½á_2026-09-20.md
@@ -68,6 +68,20 @@
  å¹¶æ–°å¢žã€Œå¯¼å‡ºæ˜Žç»†ã€æŒ‰é’®ï¼ˆCSV,带 BOM,可直接 Excel æ‰“开),用于用户自行核对/修改不一致内容。
- è¦†ç›– 4 å¤„:批量导入结果、市州单表批量导入结果、单文件导入失败、投资与投资系统不一致清单。
### 1.7 æ±‡æ€»å¤§è¡¨å¯¼å‡ºå¼‚步化 + ç»“果缓存(用户提问「点下载要等一会,数据多了会不会卡死」)
- **现象**:汇总大表点「导出」后要等 10~20 ç§’才触发下载,期间页面无任何反馈;同步请求一直占着 Web çº¿ç¨‹ã€‚
- **定位**:14 ç§’里母版读取+回填 6.5s、整本约 4 ä¸‡æ ¼å…¬å¼é‡ç®— 4.1s、写盘传输 3.4s——耗时来自 Excel å¤„理,**与数据库行数关系不大**,数据多了主要是 SQL èšåˆå˜æ…¢ï¼Œä¸ä¼šã€Œå¡æ­»ã€ã€‚
- **改动**:
  1. æ–°å¢ž `ReportExportTaskService`(固定 1 çº¿ç¨‹æ±  daemon):提交即返回 taskId,前端 700ms è½®è¯¢ã€Œæ­¥éª¤ + ç™¾åˆ†æ¯” + å·²ç”¨æ—¶é•¿ã€ï¼›ç»“果保留 30 åˆ†é’Ÿï¼ˆå†…存态,进程重启失效)。
  2. **结果缓存 10 åˆ†é’Ÿ + æ•°æ®ç‰ˆæœ¬å®ˆå«**:版本取 `SELECT IFNULL(MAX(id),0) FROM import_batch`,期间只要有新导入就自动失效(取不到版本时禁用缓存);同一报表期并发提交自动去重、复用同一任务。
  3. `ReportExportService` æ–°å¢žå¸¦è¿›åº¦å›žè°ƒçš„ `exportSummaryWorkbook(period, mode, toMonth, progress)` é‡è½½ï¼ˆåŽŸä¸¤ä¸ªé‡è½½å§”æ‰˜å®ƒï¼‰ï¼Œè¿›åº¦ç‚¹ 2%/6%/12%/22%/45%/70%/95%。
  4. `ReportExportController` æ–°å¢ž 3 ä¸ªæŽ¥å£ï¼š`/exportTask/summaryWorkbook`(提交)、`/exportTask/{taskId}`(进度)、`/exportTask/{taskId}/file`(下载);原同步接口保留兼容。
  5. å‰ç«¯ `ReportExport.vue` è¿›åº¦å¼¹çª—:进度条 + æ­¥éª¤ + ç”¨æ—¶ + ç¼“存来源时间 + å¤±è´¥åŽŸå› ï¼Œä»¥åŠã€Œä¿å­˜æ–‡ä»¶ / é‡æ–°ç”Ÿæˆ / åŽå°è¿è¡Œ / å…³é—­ã€ã€‚
- **实测**:提交 0.07s;进度 6→22→45→70→95→100、14.4s å®Œæˆï¼›ç¼“存命中 0.01s;`refresh=true` çœŸå®žé‡ç®—;临时插一条导入后缓存自动失效。
- **同时修掉一个严重回归**:本次新增的 `computed` ä¸Žæ–‡ä»¶ä¸­å·²æœ‰ `computed` **同名重复**,JS å¯¹è±¡åŽè€…覆盖前者 â†’ `username/myModules/visibleModules` å…¨éƒ¨ä¸¢å¤±ï¼Œ
  ã€ŒæŠ¥è¡¨ç”Ÿæˆã€é¡µ `created()` ç›´æŽ¥æŠ›é”™ã€**整页白屏**。接口测试发现不了,是浏览器实测才暴露的(详见测试报告第四节)。
## äºŒã€æµ‹è¯•结果摘要
《功能测试报告_投资明细表就绪与预览类型补齐_2026-09-20.md》:**7 æ¡ç”¨ä¾‹é€šè¿‡ï¼Œ1 æ¡æœªå®žæµ‹**(缺母版提示,未临时移动用户母版文件)。
@@ -109,6 +123,22 @@
| å…¶å®ƒæŠ•资报表回归 | investBillion/County/FiveYearLogistics å„ 136 è¡Œã€ä¸¤å¼ æ˜Žç»†è¡¨ 39/97 è¡Œï¼Œready=true,均可导出 |
| è´Ÿå‘ | `types=foo` â†’ ready=false,note「未知报表类型:foo」 |
《功能测试报告_汇总大表异步导出与缓存_2026-09-20.md》:**17 æ¡ç”¨ä¾‹é€šè¿‡ï¼ˆæŽ¥å£ 8 + æµè§ˆå™¨å®žæµ‹ 7 + å¤éªŒ 2)**。
| æ ¡éªŒé¡¹ | ç»“æžœ |
| --- | --- |
| æäº¤å¼‚步任务 | 0.07s è¿”回 taskId;进度 6→22→45→70→95→100;14.4s å®Œæˆ |
| ä»»åŠ¡æ–‡ä»¶ä¸‹è½½ | 1,325,109 å­—节,1.27s |
| 10 åˆ†é’Ÿå†…缓存复用 | fromCache=true、同 taskId、0.01s |
| refresh=true å¼ºåˆ¶é‡ç®— | æ–°ä»»åŠ¡å·ï¼ŒçœŸå®žé‡ç®— 14.2s |
| è¿è¡Œä¸­å¹¶å‘去重 | ä¸¤æ¬¡æäº¤è¿”回同一 taskId(11.1s) |
| æ–°å¢žå¯¼å…¥ä½¿ç¼“存失效 | import_batch id 533→534 åŽ fromCache=false(测试后已 DELETE æ¸…回 533) |
| è´Ÿå‘:不存在 / æœªå®Œæˆ taskId | ã€Œå¯¼å‡ºä»»åŠ¡ä¸å­˜åœ¨æˆ–å·²è¿‡æœŸã€ã€Œå°šæœªå®Œæˆï¼ˆå½“å‰çŠ¶æ€ï¼šRUNNING)」 |
| æµè§ˆå™¨å®žæµ‹ | è¿›åº¦å¼¹çª—采样、自动下载、缓存提示、重新生成、后台运行、失败提示 6 é¡¹å…¨é€šè¿‡ |
| äº§ç‰©ä¸€è‡´æ€§ | ç¼“存件与重算件解包后逐条目一致;三份缓存件 SHA256 ç›¸åŒ |
| é™„带修复 | `computed` é‡å¤é”®å¯¼è‡´æŠ¥è¡¨ç”Ÿæˆé¡µæ•´é¡µç™½å±ï¼ˆå·²ä¿®å¤å¹¶æµè§ˆå™¨å¤éªŒï¼‰ |
| å¤éªŒï¼ˆç”¨æˆ·é—®é¢˜ 2) | é¢„览同比 12 è¡Œé½å…¨ï¼›ã€Œç´¯è®¡è´§ç‰©å‘¨è½¬é‡ 0%」经查库为取数源本身 `total_yoy=0.00000346`,非缺陷 |
## ä¸‰ã€é—留问题与待办
1. æ­¦æ±‰ç‰©æµé¡¹ç›®æ¸…单口径(已确认忽略)。
@@ -117,10 +147,9 @@
4. ~~C ç»„(城市客运页结构归一,需用户先在 WPS æ•´åˆ—删除 AJ åˆ—)~~ **已完成**(改用 Excel COM æ•´åˆ—删除 + å…¬å¼è¿˜åŽŸï¼‰ï¼›
   D ç»„(增速排名措辞)/B4(导出前基数体检 + å¼¹çª— + ã€Šæ•°æ®ç¼ºå¤±æ¸…单》页)待排期。
5. ç¼ºæ¯ç‰ˆæç¤ºï¼ˆT08)未实测,可在有测试副本时补测。
6. æ±‡æ€»å¤§è¡¨å¯¼å‡ºæ˜¯**同步请求**,当前约 14 ç§’(每次都要重算整本约 4 ä¸‡æ ¼å…¬å¼ï¼‰ï¼šæ•°æ®é‡å†æ¶¨ä¸»è¦æ˜¯ SQL èšåˆå˜æ…¢ï¼Œ
   ä¸ä¼šã€Œå¡æ­»ã€ï¼Œä½†å»ºè®®åŽç»­åšæˆå¼‚步任务 + è¿›åº¦æç¤ºã€‚
7. éƒ¨ç½²åŒ… `deploy/traffic-audit-deploy-20260913/backend/docs/生成汇总大表/` ä¸Ž `_deploytest/` ä¸‹ä»æ˜¯**带 AJ åˆ—的旧母版**,
   ä¸‹æ¬¡æ‰“包时需同步(未经用户确认不擅自改部署产物)。
6. ~~汇总大表导出是同步请求,建议做成异步任务 + è¿›åº¦æç¤º~~ **已完成**(见 1.7)。缓存是内存态,进程重启即失效;如需跨重启/多人共用的「导出记录」页可后补。
7. éƒ¨ç½²åŒ… `deploy/traffic-audit-deploy-20260913/backend/docs/生成汇总大表/` ä¸Ž `_deploytest/` ä¸‹ä»æ˜¯**带 AJ åˆ—的旧母版** â€”—
   ç”¨æˆ· 2026-09-20 æ˜Žç¡®ã€Œéƒ¨ç½²åŒ…先不管」,**暂不处理**(待要发包时再同步)。
8. ä¸­å£å¾„明细 4 æ ¼ï¼ˆåŸŽé™…城乡巡游出租/网约车)因 2025å¹´8月基数为 0,同比显示 `#DIV/0!`(不可比),如需改空白需用户确认口径。
## å››ã€æ˜Žæ—¥è®¡åˆ’
@@ -128,7 +157,7 @@
1. ç­‰å¤©é—¨æºæ•°æ® / è†å·žé»„石口径确认后补导并复验。
2. æŽ¨è¿› C/D ç»„与 B4。
3. ä¸Žç”¨æˆ·ç¡®è®¤æ˜¯å¦æŠŠ 09-18 å¤œé—´èµ·çš„æœ¬åœ°æäº¤ä¸€å¹¶æŽ¨é€åˆ°å…¬å¸ gitea(用户 09-19 æ›¾è¦æ±‚「今天先不推公司」)。
4. è¯„估汇总大表导出异步化(长任务进度条 / ç»“果缓存),并确认部署包母版同步方式。
4. ~~评估汇总大表导出异步化~~ **已完成**(见 1.7:异步任务 + è¿›åº¦å¼¹çª— + 10 åˆ†é’Ÿç»“果缓存 + æ•°æ®ç‰ˆæœ¬å®ˆå«ï¼‰ï¼›éƒ¨ç½²åŒ…母版按用户要求暂不处理。
9. **8 æœˆç‰ˆåå °æ±‡æ€»è¡¨æœªæ¸…理**:用户只清了 7 æœˆç‰ˆï¼ˆ108032→90112 å­—节),8 æœˆç‰ˆï¼ˆmtime 2026-08-20)仍含武汉 27 + é»„石 4 æ®µï¼›
   è‹¥é‡å¯¼ 8 æœˆç‰©æµï¼Œå·²åˆ é™¤çš„ 31 ä¸ªé¡¹ç›®ä¼šé‡æ–°å»ºæ¡£ â†’ é‡å¯¼å‰éœ€åŒæ ·æ¸…理(或由我代做,待用户确认)。