状态:2026-10-19 重构前梳理,基于 master
87182c7。本文只记录现有代码的行为与问题,不代表新需求;新需求见 requirements.md。
现有功能是云端 TOU 调度模版的只读浏览器:后端代理 FWH 云平台的模版接口,前端展示列表、详情并导出 JSON。写入(新增/更新)只在 MCP 工具中提供,且仅支持测试服。
| 层 | 位置 | 现状 |
|---|---|---|
| 路由 | src/router/record.ts(despatch-config) |
菜单“调度配置”,子页“调度模版(生产)”“调度模版(测试)” |
| 生产页 | src/views/despatch-config/touTemplatePro.vue |
列表:模版类型/发布状态/关键字过滤、分页;右键或按钮“查看”弹窗显示详情 |
| 测试页 | src/views/despatch-config/touTemplateTest.vue |
空页面,只有 NCard |
| 详情组件 | src/views/despatch-config/component/templateTable.vue |
按季节 × 日类型分组展示时段表;由优先级反推调度类型 A~H;下载 JSON(外部配置编辑器格式);xlsx 按钮禁用 |
| 前端 API | src/service/despatchConfig/ |
仅 list、info,仅生产服 |
| 后端路由/控制器 | service/routes/despatchConfigRoutes.go、service/controllers/despatchConfigControllers.go |
GET /despatchConfig/touTemplatePro/list、/info |
| Service | service/services/despatchConfigServices.go |
生产服:list、detail;测试服:list、detail、save、cites |
| Repo(生产) | service/repositories/api/fwh_pro/fwh_touTemplate.go |
selectIotTouTemplateList、getIotTouTemplateDetailById,结果为 interface{} 透传 |
| Repo(测试) | service/repositories/api/fwh_test/fwh_touTemplate.go |
另有 updateOrSaveIotTouTemplate、selectCitesList |
| DTO | service/dto/fwhTestTouTemplateDTO.go、service/dto/touTemplateDTO.go |
测试服写入 DTO 完整;TouTemplateItemInfo 未被使用 |
| MCP | service/cmd/mcp/tools/service/tou_template.go |
service_tou_template_list/detail/save/cites;save、cites 仅测试服 |
| 知识文档 | deploy/kiro/skills/fwh-toolbox-workflow/references/tou-template.md |
字段字典、日类型配对、校验规则,是目前最完整的字段说明 |
| 相关模块 | src/views/local-utils/log-357-parser/func/parseScheduling.ts |
357 日志解析中另一套“优先级 → 调度类型”映射 |
| 接口 | 方法 | 用途 | 已接入环境 |
|---|---|---|---|
/hes-gateway/manage/selectIotTouTemplateList |
POST form | 模版列表;支持 sourceType、status、search、分页,另有 countryId、provinceId、更新时间范围(未使用) |
生产、测试 |
/hes-gateway/manage/getIotTouTemplateDetailById |
POST form | 模版详情 | 生产、测试 |
/hes-gateway/manage/updateOrSaveIotTouTemplate |
POST JSON | 新增/更新,返回模版 ID;templateId 有值为更新 |
测试 |
/hes-gateway/manage/selectCitesList |
GET | 国家/省/市列表;查省市需 countryId 且 type=1 |
测试 |
尚未找到:发布、取消发布、删除模版的接口。
Template(模版主体)
国家/省、电力公司(简称/全称)、DER 计划、资费套餐、电价类型 electricityType、
名称、mookRunCount、priority、env(位域)、sourceType、status
└─ strategyList[](策略)
seasonName、month("1,2,…")、日类型、可选购电/卖电电价
日类型配对:每天(ccociateType=1, dayType=3, ccociateSn="")
或 工作日(2,1) + 周末/节假日(3,2),同组共用 ccociateSn("0" 起递增)
└─ detailVoList[](时段,00:00→24:00 首尾衔接全覆盖)
waveType 峰平谷、name、briefDescribe、solarPriority/loadPriority(3 值字符串)、
各功率上限/固定功率(kW,单台)、SOC、offGrid/solarCutoff/heatEnable/powerOffApower/rampTime…
字段完整定义见 tou-template.md 与 fwhTestTouTemplateDTO.go。
调度类型由 solarPriority + loadPriority 组合反推:
| 光伏优先级 | 负载优先级 | 类型 |
|---|---|---|
1,2,0 |
1,3,2 |
A 光伏余电馈网 |
1,2,0 |
1,2,0 |
B 电池待机 |
1,3,2 |
1,2,0 |
C 光伏余电充电 |
1,3,2 |
1,3,2 |
D 自发自用 |
1,2,3 |
1,2,0 |
E/G 光伏优先充电(G 为使能电网充电) |
1,2,0 |
1,2,3 |
F/H 电池优先供载(H 为使能电池馈网) |
| 其他 | — | 有 dischargePower 视为强制放电,有 chargePower 视为充电/备电,否则未知 |
parseScheduling.ts),覆盖范围不同:导出遇 A 直接抛“未实现”;parseScheduling 多 noPriority;9,9,9 等自定义组合都无法识别。seasonName 分组而非 ccociateSn 配对,同季节名多组“工作日 + 周末”会互相覆盖;导出按 seasonName + month 分组,口径与展示不同。throw,详情弹窗整体渲染失败,无容错展示。id/key 用 Date.now(),同一循环内重复。interface{},前端 interface.ts 与测试服写入 DTO 是两套结构,存在差异。FwhTestXxx),未像 fwh_mqtt 那样做成环境参数化的通用模块。despatch/dispatch 混用;云端字段自带拼写问题(derSchdule、eletic*、ccociate*、mookRunCount),需决定是否在 DTO 层映射。