2026-09-05.md 9.6 KB

2026-09-05 会话记录

工单七态状态编码由 0–6 调整为 1–7(只改编码这一项)

  • 目标:沿用 domain-modeling 共识,在不改变状态名、流程结构、“验收驳回=回退动作”“已取消终态”“删除延期”等任何既有结论的前提下,把七态目标编码改为从 1 开始:1 待派单 / 2 待接单 / 3 已接单 / 4 处理中 / 5 待验收 / 6 已结案 / 7 已取消
  • 关键领域结论:改为从 1 开始后,前六态与现网旧编码 1–6 同值,仅第 7 态语义不同(旧 7=“已驳回”且 cancel/reject 混用 → 新 7=“已取消”);验收驳回回退边由 4→3 变为 5→4;中间态区间由 0–4 变为 1–5;终态括号由“已结案(5)/已取消(6)”变为“已结案(6)/已取消(7)”;因此前六态无需做存量数据重排。
  • 文件变更(均为 Markdown,未改任何代码):
    • 后端 pipe-ner-serverpipe-network-service/docs/domain/work-order-lifecycle.md(状态表、迁移表、证据箭头 3→4/4→5、终态与中间态括号、第 8 节对照表与迁移说明)、pipe-network-service/docs/adr/0008-...md(决策状态行、回退 5→4、已取消(7)、待接单(2)、编码与迁移、双轨后果)、根 docs/superpowers/specs/2026-08-26-*.md2026-08-27-*.md(“目标编码 0-6”→“1-7”、“迁移后目标编码 6”→“7”)。
    • 前端 city-life-linedocs/domain/work-order-lifecycle.md(27 处单行编码同步,保持 CRLF)、memory/long-term.md(补记 1–7 版七态长期决策)。
    • UE Pipelinesdocs/domain/work-order-lifecycle.md(状态表、迁移区间、第 6 节对照表)。
  • 刻意未改:三份 lifecycle 的 mermaid 状态图(节点用状态中文名、不含编码);三仓 CONTEXT、前端 design、UE issue#10/#28/spec/vendor/prototype(均只用状态名、不含目标编码数字);memory/sessions/2026-09-04.md(历史会话,如实保留当时 0–6 定稿);ADR-0008 背景段对旧九态 1–9 的描述(历史事实);所有源代码。
  • 验证:改后全仓复扫“目标编码 0-6 / 0 待派单 /(0–4)/ 0/1/2/3/4”等目标编码痕迹应清零,允许保留的仅为旧九态 1–9 背景、废止项旧 7/8/9 与 09-04 历史记录;前端 lifecycle 27/27、两份 spec 各 2/2、long-term 插入均命中。
  • 风险与后续:文档与后端仍处双轨期,后端代码与存量数据迁移另开任务——把旧 7 重定义为“已取消(7)”、实现 5→4 验收驳回回退、下线旧 8/9 延期,前六态无需整体重排。

Gogs Issue #7 / #8 人工验收通过并关闭

  • 用户确认:Issue #7「T3 管网数据统计分析」与 Issue #8「T4 供水运行监测」已人工验收通过,并在 Gogs 关闭。
  • 本次仅同步文档(记忆库、CONTEXT.md、设计文档),未改任何代码;memory/sessions/2026-09-01.md 中“等待人工验收”的表述为当时事实,按历史快照惯例保留原文不改写。
  • 同步中发现本仓共识文档存在漂移并已修复:CONTEXT.md(最后提交 2026-08-27)与设计文档仍残留旧口径(“已驳回”阶段、申请延期/处理延期),09-04 共识轮对本仓的修订未落盘。本次对齐七态共识:CONTEXT.md 工单处置状态改为含“已取消”并标注终态、补“验收驳回/已取消/处理流水”术语、工单处置措辞改“验收驳回”;设计文档删除全部延期环节、驳回统一为“验收驳回(回退动作)”、误报终止统一走“取消(已取消终态)”、状态色灰色对象改为“已取消或不可操作”。
  • 影响:T3/T4 交付闭环;供水当前活跃项为 T5(阈值,已完成)、T6(设备准入/台账/异常态势,补充验收已完成)及工作区未提交的台账统计增量(getDeviceLedgerStatistics 统计卡与设备图片 URL 归一化)。

供水设施五页 UI 统一美化:spec 落盘(未改任何代码)

  • 目标:把前两轮排查结论(五页为 RuoYi 经典 CRUD、样式全靠全局 facility-*/detail-drawer 类、无自有 <style> 块;与统计/台账页蓝白指挥台风格不一致)写成正式 spec,并确立任务边界。
  • 产出:新建 docs/superpowers/specs/2026-09-05-water-facility-pages-ui-unification.md(draft,待确认)。
  • 用户确认的边界:仅页面美化——只改五个 basic/{pipeInfo,pumpStation,waterPlant,waterSource,waterUserInfo}/index.vue 的模板与样式、新建一份共享 waterFacilityPageTheme.scss(+推荐新增源契约测试);五页 <script> 块、后端、全局样式、其他页面、指标卡(需后端统计契约)全部不改;既有测试零修改(类名 facility-form-drawer/detail-drawer/facility-row-actions/facility-row-action is-* 刻意保留)。
  • 关键事实:EP 图标已全局注册(svgicon.js),页头图标可零 script 改动;right-toolbar 为全局组件可直接删标签;五页 basic 页面仅供水菜单壳引用,影响面封闭。
  • 实施顺序:T-A 水厂页打样 → T-B 其余四页铺开 → T-C 走查/三档截图/全量测试/构建。
  • 状态:spec 待用户确认,确认后开始 T-A;本轮及此前均未改任何代码。

T-A 水厂页打样完成(用户已确认 spec)

  • 文件变更:
    • 新建 src/views/subSystem/waterSupply/components/waterFacilityPageTheme.scss:五设施页共享 chrome 主题(water-page 渐变底、42px 蓝青渐变页头图标、filter-card/table-card、card-title、facility-error、768px 响应式);取值逐字提取自 WaterDevicePage/WaterFacilityDashboard scoped 实现。
    • src/views/subSystem/basic/waterPlant/index.vue:仅模板与样式——根类改 water-page facility-page;新增页头(House 图标 + 标题/副题 + 白底蓝框刷新按钮绑既有 getList);筛选套 el-card.filter-card(卡头“筛选”+ 新增/删除/导出/导入移入卡头右侧);表格+分页套 el-card.table-card(卡头“水厂清单”);移除 right-toolbar;抽屉/弹窗/操作列/回收站/导入弹窗全部原样;<script> 块零改动。
    • 新建 tests/waterFacilityPageTheme.test.mjs:源契约测试(T-A 仅水厂,T-B 后扩展为五页)。
  • 验证:
    • node --test tests 69/69 通过(不含既有损坏的 waterDeviceGisMap.test.mjs,见风险)。
    • 既有契约测试零修改全绿:detailDrawerRule.test.mjs 3/3、waterFacilityQuery.test.mjs 5/5、waterFacilityImportCoordinates.test.mjs 2/2。
    • npm run build:prod 成功(exit 0;注意 2>&1 合并 stderr 时 PowerShell 会报伪 exit 1,Sass 弃用警告为既有)。
    • git diff --check 干净。
  • 风险与后续:
    • 既有损坏(与本次无关):tests/waterDeviceGisMap.test.mjs 3 个用例 ENOENT——引用 src/views/subSystem/waterSupply/components/WaterDeviceGisMap.vue,该文件不在工作区、不在 git 历史、未被 .gitignore 忽略,属其他任务遗留的测试/组件失配,需另行处理。
    • 视觉基准待用户在真实环境(npm run dev + 后端 8300/pipe)确认水厂页后,再开始 T-B 其余四页铺开。
    • 本轮未提交/未推送。

T-B 四页铺开完成(pipeInfo/pumpStation/waterSource/waterUserInfo)

  • 改动仅在五页外壳模板与共享 SCSS,script 零改动;四页与打样页同构标题/副题/图标/清单名/权限串/抽屉与操作列逐字保留。
  • 后续按你要求,tests/waterFacilityPageTheme.test.mjs 不提交,已从磁盘清理删除。
  • 关键事故事实记录:今天 16:10 有一次 rebase(start: checkout origin/master)落地,外部新代码进入。
  • 当前门禁状态:
    • node --test tests 75 项、74 通过、1 失败detailDrawerRule.test.mjs:扫描到外部新文件 src/views/subSystem/pipeNetwork/ops/inspectTask/index.vue:224 有详情 el-dialog,违反全仓“详情必须走 rtl 抽屉”规则;T-B 自身无关。
    • npm run build:prod 重新跑完整日志(pwsh-4)真实 exit=0,构建通过;之前那次 exit 1 是 stderr 合并导致的 PowerShell NativeCommandError 伪失败。
    • git diff --check 干净。
  • 未做:把外部 inspectTask 详情对话框改造成 detail-drawer(非本次范围,应该由原任务完成方或下轮修正)。

用户验收反馈两项:图标缺失修复 + drawer 规则边界收敛(已提交 a089bef

  • 用户人工审查发现:水源地页左上角图标缺失(只有渐变背景框)。根因:Water 不存在@element-plus/icons-vue(仅有 HotWater/Watermelon),<Water /> 是未注册组件渲染为空。修复:改用 Drizzling(细雨,水源意象),并核对其他四页图标(Share/Odometer/House/User)均存在无问题。用户确认修复生效。
  • 用户决策:“所有详情 el-dialog 必须改为 rtl 抽屉”规则只针对供水系统。已改 tests/detailDrawerRule.test.mjs:扫描范围从全仓 src/views 收敛为 subSystem/waterSupply/** + basic/ 五个供水设施目录(basic 下其他页面属燃气/井盖等系统,不纳入);外部 inspectTask 的详情 el-dialog 从此不被该测试约束。spec 文档同步更新该边界表述。
  • 临时测试 tests/waterFacilityPageTheme.test.mjs 的删除一并入提交(用户此前要求清理不提交)。
  • 提交:a089bef fix(water): use existing EP icon for water source and scope drawer rule(4 文件,仅精确暂存本修复路径;用户在途的 GisMapCanvas/gisMapColors/gisMapCanvas.test/src/assets/gis 及早前轮次的 CONTEXT/设计稿/memory 改动均未夹带)。未推送。
  • 提交前门禁:node --test tests 75/75 全绿。