Kaynağa Gözat

fix:更改tou模版工作流的存放路径

Jerry Liang 1 ay önce
ebeveyn
işleme
b3f3f21ba0

+ 18 - 4
deploy/kiro/skills/fwh-toolbox-workflow/SKILL.md

@@ -1,6 +1,6 @@
 ---
 name: fwh-toolbox-workflow
-description: FranklinWH 工具箱(fwh-toolbox)平台的操作流程指南。当用户需要查询站点/设备信息、运维监控与告警、停机/告警看板、SIM 卡管理、站点分析任务、批量数据下载、自动升级配置、TOU 电价模板、故障录波/日志召唤、Plane 反馈协作,或需要用 fwh-tools MCP 工具做数据分析、生成报告文件时,使用本技能。它说明每类业务应该调用哪些 MCP 工具、调用顺序、参数约定以及文件输出规范。
+description: FranklinWH 工具箱(fwh-toolbox)平台的操作流程指南。当用户需要查询站点/设备信息、运维监控与告警、停机/告警看板、SIM 卡管理、站点分析任务、批量数据下载、自动升级配置、TOU(分时电价)调度模板的查询/构建/新增/更新(含时段策略、光伏/负载优先级、充放电功率、省市选择)、故障录波/日志召唤、Plane 反馈协作,或需要用 fwh-tools MCP 工具做数据分析、生成报告文件时,使用本技能。它说明每类业务应该调用哪些 MCP 工具、调用顺序、参数约定以及文件输出规范。
 ---
 # fwh-toolbox 平台操作流程
 
@@ -143,11 +143,24 @@ MCP 工具按访问层级分为五类,**选择工具时严格遵循以下优
 
 ### 8. TOU 电价模板
 
-目标:查询分时电价(Time-Of-Use)模板。
+目标:查询、构建、新增/更新分时电价(Time-Of-Use)调度模板。一个模板 = 基础信息 + 一个或多个「季节/日类型」策略;每个策略 = 覆盖一整天的时段列表。
 
-- 列表:`service_tou_template_list`(`type` 0-系统/1-API/2-用户推荐;`status` 0-未发布/2-已发布;`search`;分页)。
-- 详情:`service_tou_template_detail`(`id` 数字)。
+工具:
 
+- 列表:`service_tou_template_list`(`type` 0-系统/1-API/2-用户推荐;`status` 0-未发布/2-已发布;`search`;分页;默认 `env:"pro"`)。
+- 详情:`service_tou_template_detail`(`id` 数字;默认 `env:"pro"`)。
+- 省/市:`service_tou_template_cites`(拿 `countryId`/`provinceId`;查某国家省/市需传 `country_id` 且 `type:1`,都不传则返回国家列表;**仅支持 `env:"test"`**)。
+- 保存:`service_tou_template_save` **[写操作]**(`payload` 为字符串化 JSON `{"template":{...},"strategyList":[...],"lang":"ZH_CN"}`;`template.templateId` 有值=更新、省略=新增;`sourceType` 当前仅 `0` 系统模板可写;**仅支持 `env:"test"`**)。
+
+标准流程:
+
+1. 查询/取蓝本:`service_tou_template_list` → `service_tou_template_detail`(要读测试环境模板加 `env:"test"`)。
+2. 定地区:`service_tou_template_cites { "env":"test", "country_id":<id>, "type":1 }` 拿 `provinceId`。
+3. 构建 `payload`:按字段字典填 `template` + `strategyList[].detailVoList[]`;数值字段传数字,可选数值字段未设置时**省略该 key**(不传 `""`/`null`);每个策略时段必须覆盖 00:00→24:00。
+4. **写确认**:`save` 前先向用户摘要「新增/更新、模板名、地区、策略与关键时段/电价」,明确写入 **test** 环境,得到用户同意后才调用。
+5. 保存后用返回的 `templateId` 调 `service_tou_template_detail { "env":"test", "id":<id> }` 回读校验。
+
+> 完整字段字典、日类型配套逻辑、功率哨兵值、优先级→调度策略速查、请求体示例:见 references/tou-template.md。
 > FWH Pro 上游的 TOU 模板(`data_fwh_query_tou_template_list` / `_detail`)见 references/fwh-pro-api.md。
 
 ### 9. 后台任务监控
@@ -213,3 +226,4 @@ MCP 工具按访问层级分为五类,**选择工具时严格遵循以下优
 - `references/fwh-pro-api.md` — `data_fwh_*` FWH Pro 上游直查 API 全量清单与流程。
 - `references/data-direct-query.md` — MongoDB/Redis/PgSQL/EMS 参数/SIM 上游直查流程与白名单。
 - `references/plane-collaboration.md` — 反馈协作与 Plane 项目管理(`service_feedback_*`、`data_plane_*`、`plane_*`)。
+- `references/tou-template.md` — TOU 电价模板构建/写入的完整字段字典、日类型配套逻辑、功率哨兵值、优先级→调度策略速查与请求体示例。

+ 9 - 14
deploy/kiro/skills/tou-template-scheduling/SKILL.md → deploy/kiro/skills/fwh-toolbox-workflow/references/tou-template.md

@@ -1,17 +1,12 @@
----
-name: tou-template-scheduling
-description: 编写、校验并保存 FranklinWH 的 TOU(分时电价)调度模板,用于 EMS 调度配置。当用户需要构建、编辑、理解或上传 TOU 电价模板时使用——包括时段策略、光伏/负载优先级、充放电功率限制、省/市选择等。涵盖 updateOrSaveIotTouTemplate 请求体以及 MCP 工具 service_tou_template_*。
----
-
-# FranklinWH TOU 调度模板
+# TOU 电价模板:构建、字段与规则(`service_tou_template_*`)
 
-用于构建并保存 EMS 调度(TOU)模板。一个模板 = 基础信息 + 一个或多个「季节/日类型」策略;每个策略 = 覆盖一整天的时段列表。它对应云端 `updateOrSaveIotTouTemplate` 接口和设备侧 355/357 调度协议。
-
-参考资料(完整协议与字段语义):
-`__WIKI_DOCS__/Software/ScriptingForSchedulingConfiguration.md`
+用于构建并保存 EMS 调度(TOU)模板。一个模板 = 基础信息 + 一个或多个「季节/日类型」策略;每个策略 = 覆盖一整天的时段列表。对应云端 `updateOrSaveIotTouTemplate` 接口和设备侧 355/357 调度协议。
 
+协议原文(完整语义):`__WIKI_DOCS__/Software/ScriptingForSchedulingConfiguration.md`
 字段权威定义(Go DTO):`service/dto/fwhTestTouTemplateDTO.go`
 
+> 只读查询与基本流程见主 SKILL.md 第 8 节。本文件是**写入/构建**时的字段字典与规则。
+
 ---
 
 ## MCP 工具
@@ -25,7 +20,7 @@ description: 编写、校验并保存 FranklinWH 的 TOU(分时电价)调度
 | `service_tou_template_save`   | 新增/更新模板,返回 templateId**【写操作】** | `test`(当前仅支持) |
 | `service_tou_template_cites`  | 查询某国家下的省/市列表                      | `test`(当前仅支持) |
 
-save 与 cites 目前仅支持 `test`。读操作默认走 `pro`,需要读测试环境时传 `env:"test"`。
+save 与 cites 目前仅支持 `test`。读操作默认走 `pro`,需要读测试环境时传 `env:"test"`。`cites` 查某国家省/市时需传 `country_id` 且 `type:1`;都不传则返回国家列表。
 
 典型流程:`cites`(拿 countryId/provinceId)→ 构建 payload → `save` → `detail` 校验。
 
@@ -33,7 +28,7 @@ save 与 cites 目前仅支持 `test`。读操作默认走 `pro`,需要读测
 
 ## 请求体结构(`service_tou_template_save` 的 `payload`)
 
-顶层结构(`FwhTestUpdateOrSaveTouTemplatePayload`):
+`payload` 是**字符串化的 JSON**。顶层结构(`FwhTestUpdateOrSaveTouTemplatePayload`):
 
 ```json
 {
@@ -233,13 +228,13 @@ save 与 cites 目前仅支持 `test`。读操作默认走 `pro`,需要读测
 5. **新增 vs 更新**:`template.templateId` 留空为新增;填入 ID 为更新。
 6. **写操作走 `test`**:`service_tou_template_save` 仅支持 `env:"test"`。保存前先与用户确认(会修改服务器数据)。保存后用 `service_tou_template_detail`(带 `env:"test"`)校验。
 7. 执行写操作前,需要和用户确认最终写入或更新的信息,确认后才能调用 `service_tou_template_save` 创建或更新
-8. 不确定某国家的 `provinceId` 时,先调用 `service_tou_template_cites` 传 `country_id`。
+8. 不确定某国家的 `provinceId` 时,先调用 `service_tou_template_cites` 传 `country_id`(且 `type:1`)。
 
 ---
 
 ## 示例流程:构建一个标准自发自用模板
 
-1. `service_tou_template_cites { "country_id": 3 }` → 选出 `provinceId`。
+1. `service_tou_template_cites { "env":"test", "country_id": 3, "type": 1 }` → 选出 `provinceId`。
 2. 构建一个策略(「每天」类型:`ccociateType:1`、`ccociateSn:""`、`dayType:3`、`dayName:"Every day"`),用策略 D(`solarPriority:"1,3,2"`,`loadPriority:"1,3,2"`)铺一整天单一时段,或拆成 off/mid/on-peak 多个时段。若需区分工作日与周末/节假日,则改用成对策略(见「日类型配套逻辑」)。
 3. `service_tou_template_save { "env":"test", "payload": "<json>" }` → 记下返回的 `templateId`。
 4. `service_tou_template_detail { "env":"test", "id": <templateId> }` 确认结果。