Преглед на файлове

init(*): 表务设计文件

zenghaiyang преди 2 седмици
родител
ревизия
e127b63ee8

+ 5 - 7
.cursor/skills/tofly-memory-system/language/java/java6/examples-ylsw-bw.md

@@ -59,14 +59,8 @@ public class {Domain}Controller {
         return ResultResponse.success(this.{domain}Service.updateById(entity));
     }
 
-    @DeleteMapping("/{id}")
-    @ApiOperation("{业务中文名}删除")
-    public ResultResponse<Boolean> delete(@PathVariable @ApiParam("主键") Long id) {
-        return ResultResponse.success(this.{domain}Service.removeById(id));
-    }
-
     @DeleteMapping("/deleteByIds")
-    @ApiOperation("{业务中文名}批量删除")
+    @ApiOperation("{业务中文名}删除")
     public ResultResponse<Boolean> deleteByIds(@RequestParam @ApiParam("主键,逗号分隔,如 1,2,3") String ids) {
         return ResultResponse.success(this.{domain}Service.deleteByIds(ids));
     }
@@ -446,6 +440,10 @@ public ResultResponse<Page<Meter>> page(MeterQuery query) {
     return ResultResponse.success(meterMapper.selectPage(...));
 }
 
+// 错误:提供单条删除(本仓库仅 DELETE /deleteByIds)
+@DeleteMapping("/{id}")
+public ResultResponse<Boolean> delete(@PathVariable Long id) { ... }
+
 // 错误:与 meter 模块不一致却强行使用 PUT 修改(本仓库 ledger CRUD 用 POST /update)
 @PutMapping
 public ResultResponse<Boolean> update(@RequestBody Meter meter) { ... }

+ 23 - 6
.cursor/skills/tofly-memory-system/language/java/java6/java-ylsw-bw.md

@@ -90,10 +90,21 @@ com.tofly.wm
 | 详情 | GET | `/{id}` | |
 | 新增 | POST | `/` | `@RequestBody` 实体 |
 | 修改 | POST | `/update` | 本模块用 POST 而非 PUT |
-| 删除 | DELETE | `/{id}` | |
-| 批量删除 | DELETE | `/deleteByIds` | `ids` 请求参数,逗号分隔主键 |
+| 删除 | DELETE | `/deleteByIds` | `ids` 请求参数,逗号分隔主键;**禁止**单条 `DELETE /{id}` |
 | 导出 | GET | `/export` | 返回 `void`,`EasyPoiUtil.download`(台账类) |
 
+- **禁止**提供 `DELETE /{id}`、`removeById` 对外接口;删除统一走 **`DELETE /deleteByIds`**(单条删除传 `ids=1` 即可)。
+- 生成 Controller 时**不得**保留 `@DeleteMapping("/{id}")` 模板代码。
+
+### 接口文档生成(强制)
+
+编制或生成 [接口文档-V1.0.md](../../../../business/water-meter/doc/design/接口文档-V1.0.md) 及各模块接口说明时:
+
+1. **标准 CRUD 类资源**须按上表 **全量列出** 模板接口(`page`、`list`、`{id}`、`POST /`、`update`、`deleteByIds`),**不得**因 PRD 未写或业务暂未实现而省略。
+2. **台账只读类**须列出模板:`GET /page`、`GET /list`(若适用)、`GET /{id}`(若适用)、`GET /export`;不写 `POST`/`deleteByIds` 时在文档中标注「台账只读,无写接口」。
+3. 业务专属接口(工单发起、派单、App 回传等)在模板接口 **之后** 追加列出。
+4. 文档中 **禁止** 出现 `DELETE /{resource}/{id}`;删除统一写 `DELETE /{resource}/deleteByIds`。
+
 ### 工具类与空值判断
 
 | 场景 | 用法 | 禁止/避免 |
@@ -403,9 +414,10 @@ DictEntry priority;
 2. **生成 Query / Vo**(分页查询、导出列)。
 3. **生成 Entity + Enum**(表结构对齐 `TF_WM_*`)。
 4. **生成 Mapper + Service(Impl)**(单表 Wrappers,多表 MPJJoin)。
-5. **生成 Controller**(`ResultResponse`、权限、路由)。
-6. **按需生成 Mapper.xml**(仅复杂 SQL)。
-7. **自检**(见下)。
+5. **生成 Controller**(`ResultResponse`、权限、路由;**无** `DELETE /{id}`)。
+6. **同步接口文档**(标准 CRUD 模板接口全量列出,见 §接口文档生成)。
+7. **按需生成 Mapper.xml**(仅复杂 SQL)。
+8. **自检**(见下)。
 
 ## 输出格式
 
@@ -418,7 +430,10 @@ DictEntry priority;
 ## 接口清单
 - `GET /{resource}/page`
 - `GET /{resource}/list`
-- `DELETE /{resource}/deleteByIds`
+- `GET /{resource}/{id}`
+- `POST /{resource}/`
+- `POST /{resource}/update`
+- `DELETE /{resource}/deleteByIds`(无 `DELETE /{resource}/{id}`)
 - ...
 
 ## 规范检查
@@ -435,6 +450,8 @@ DictEntry priority;
 - [x] 关联列 COMMENT 含「关联{表名}表的{字段}字段」
 - [x] 字典/枚举列 COMMENT 含「字典类型,目录码…」或「枚举类型,…Enum」
 - [x] 数据库设计 §2.1 仅含字典/枚举列,与 DDL COMMENT 一致
+- [x] 无 `DELETE /{id}`;删除仅 `deleteByIds`
+- [x] 接口文档已按模板全量列出 CRUD 路径
 ```
 
 ## 参考

+ 1 - 1
business/water-meter/doc/design/00-总体框架设计-V1.0.md

@@ -100,7 +100,7 @@
 ## 6. 接口与返回约定
 
 - 统一 **`ResultResponse<T>`**(带泛型)。
-- Controller:`GET /page`、`GET /list`(同 Query)、`GET /{id}`、`POST /`、`POST /update`、`DELETE /{id}`、`DELETE /deleteByIds`;台账 `GET /export`
+- Controller:`GET /page`、`GET /list`(同 Query)、`GET /{id}`、`POST /`、`POST /update`、`DELETE /deleteByIds`(**禁止** `DELETE /{id}`);台账 `GET /export`。接口文档须按 `java6` 模板 **全量列出** 路径
 - 分页:`PageQuery` + `PageHelper.startPage`;单表 `Wrappers.lambdaQuery`;多表台账 `MPJWrappers.lambdaJoin`。
 - 详见 [接口文档-V1.0.md](./接口文档-V1.0.md)。
 

+ 1 - 1
business/water-meter/doc/design/README.md

@@ -9,7 +9,7 @@
 |------|------|
 | [00-总体框架设计-V1.0.md](./00-总体框架设计-V1.0.md) | 架构、包结构、workflow 工单外挂、集成 |
 | [数据库设计-V1.0.md](./数据库设计-V1.0.md) | **65 张** `wssmet_*_w` 表完整 Oracle DDL + 中文 COMMENT |
-| [接口文档-V1.0.md](./接口文档-V1.0.md) | REST 清单(需求驱动,V2.0) |
+| [接口文档-V1.0.md](./接口文档-V1.0.md) | REST 清单;标准 CRUD 模板接口须全量列出(见 `java6` §接口文档生成) |
 
 ## 功能设计(PRD-04 01~22)
 

+ 116 - 26
business/water-meter/doc/design/接口文档-V1.0.md

@@ -2,7 +2,8 @@
 
 > **仅依据** `../demand/` PRD 与 [数据库设计-V1.0.md](./数据库设计-V1.0.md)(`wssmet_*` 表);**不参照**存量 Controller/路径实现。  
 > 路由风格参考 `java6/java-ylsw-bw.md`;统一前缀示例:`/api/wm`(以网关为准)。  
-> 返回体:**`ResultResponse<T>`**;分页:**`PageQuery`**(`pageNum`/`pageSize`)。
+> 返回体:**`ResultResponse<T>`**;分页:**`PageQuery`**(`pageNum`/`pageSize`)。  
+> **模板接口**:各模块须 **全量列出** 下文 §1.1 标准 CRUD/台账模板路径,**不因 PRD 未写或业务暂未实现而省略**(见 `java6` §接口文档生成)。
 
 ## 1. 通用约定
 
@@ -13,12 +14,37 @@
 | 详情 | `GET /{resource}/{id}` |
 | 新增 | `POST /{resource}/` |
 | 修改 | `POST /{resource}/update` |
-| 删除 | `DELETE /{resource}/{id}` |
-| 批量删 | `DELETE /{resource}/deleteByIds?ids=1,2,3` |
+| 删除 | `DELETE /{resource}/deleteByIds?ids=1,2,3`(**禁止** `DELETE /{resource}/{id}`) |
 | 导出 | `GET /{resource}/export`(台账类) |
 | 附件 | 请求/响应 `FileEntryList`/`FileEntry`;Entity **`@TableField(exist = false)`**,无库列 |
 | 逻辑删除 | 查询默认 `deleted=0` |
 
+## 1.1 标准接口模板(文档须全量列出)
+
+### 标准 CRUD 资源(`manage` 主数据 / 可写业务表)
+
+每个标准 CRUD 资源在模块章节中 **至少** 包含下表全部行(业务扩展接口另行列出):
+
+| 方法 | 路径 | 说明 |
+|------|------|------|
+| GET | `/{resource}/page` | 分页查询 |
+| GET | `/{resource}/list` | 列表查询(与 page 同 Query) |
+| GET | `/{resource}/{id}` | 详情 |
+| POST | `/{resource}/` | 新增 |
+| POST | `/{resource}/update` | 修改 |
+| DELETE | `/{resource}/deleteByIds` | 删除(逗号分隔主键;单条传 `ids=1`) |
+
+### 台账只读资源(`ledger`)
+
+| 方法 | 路径 | 说明 |
+|------|------|------|
+| GET | `/{resource}/page` | 分页 |
+| GET | `/{resource}/list` | 列表(若适用) |
+| GET | `/{resource}/{id}` | 详情(若适用) |
+| GET | `/{resource}/export` | 导出 |
+
+> 台账类 **不提供** `POST`/`update`/`deleteByIds` 时,在模块说明中标注「台账只读」即可,但仍须列出上表只读模板行。
+
 ## 2. 工单中心(workflow,无本地 CRUD 表)
 
 | 能力 | 说明 |
@@ -31,30 +57,45 @@
 
 ## 3. 水表台账 ` /ledger`
 
-| 资源 | 路径前缀 | 说明 |
-|------|----------|------|
-| 水表查询 | `/ledger/meter` | 分页/详情/生命周期 |
-| 采购台账 | `/ledger/purchase` | 计划+到货汇总 |
-| 检定台账 | `/ledger/verify` | 多检定类型汇总 |
-| 入库台账 | `/ledger/inventoryIn` | 总仓/分仓筛选 |
-| 出库台账 | `/ledger/inventoryOut` | 总仓/分仓筛选 |
-| 安装台账 | `/ledger/install` | |
-| 换表台账 | `/ledger/replace` | |
-| 周检台账 | `/ledger/inspect` | |
-| 轮换台账 | `/ledger/rotate` | |
-| 报废台账 | `/ledger/scrap` | |
+> 下列资源均为 **台账只读**,各资源须全量列出 §1.1「台账只读资源」模板行(`page`/`list`/`export` 等);下表仅列路径前缀,接口明细按模板展开。
+
+| 资源 | 路径前缀 | 模板接口(须全量列出) |
+|------|----------|------------------------|
+| 水表查询 | `/ledger/meter` | `GET /page`、`GET /list`、`GET /{id}`、`GET /export` |
+| 采购台账 | `/ledger/purchase` | `GET /page`、`GET /export` |
+| 检定台账 | `/ledger/verify` | `GET /page`、`GET /export` |
+| 入库台账 | `/ledger/inventoryIn` | `GET /page`、`GET /export` |
+| 出库台账 | `/ledger/inventoryOut` | `GET /page`、`GET /export` |
+| 安装台账 | `/ledger/install` | `GET /page`、`GET /export` |
+| 换表台账 | `/ledger/replace` | `GET /page`、`GET /export` |
+| 周检台账 | `/ledger/inspect` | `GET /page`、`GET /export` |
+| 轮换台账 | `/ledger/rotate` | `GET /page`、`GET /export` |
+| 报废台账 | `/ledger/scrap` | `GET /page`、`GET /export` |
 
 ## 4. 采购管理 ` /manage/purchase`
 
+### 采购申请 `/purchaseApply`(标准 CRUD + 工单)
+
 | 方法 | 路径 | 说明 |
 |------|------|------|
-| POST | `/purchaseApply/` | 提交采购申请并发起 workflow |
-| GET | `/purchaseApply/page` | 历史记录 |
+| GET | `/purchaseApply/page` | 分页 |
+| GET | `/purchaseApply/list` | 列表 |
 | GET | `/purchaseApply/{id}` | 详情(含明细、工单状态) |
-| POST | `/purchasePlan/` | 新建/编辑计划 |
-| GET | `/purchasePlan/page` | 计划列表 |
-| POST | `/purchasePlan/arrive` | 到货登记(含附件) |
+| POST | `/purchaseApply/` | 新增;提交并发起 workflow |
+| POST | `/purchaseApply/update` | 修改 |
+| DELETE | `/purchaseApply/deleteByIds` | 删除 |
+
+### 采购计划 `/purchasePlan`(标准 CRUD + 业务)
+
+| 方法 | 路径 | 说明 |
+|------|------|------|
+| GET | `/purchasePlan/page` | 分页 |
+| GET | `/purchasePlan/list` | 列表 |
 | GET | `/purchasePlan/{id}` | 计划详情 |
+| POST | `/purchasePlan/` | 新建/编辑计划 |
+| POST | `/purchasePlan/update` | 修改 |
+| DELETE | `/purchasePlan/deleteByIds` | 删除 |
+| POST | `/purchasePlan/arrive` | 到货登记(含附件,业务扩展) |
 
 ## 5. 落地检 ` /manage/verify/landing`
 
@@ -157,13 +198,62 @@
 
 ## 16. 配置 ` /manage/config`
 
-| 资源 | 路径 | 说明 |
+以下资源均为 **标准 CRUD**,各资源须 **全量列出** §1.1 模板接口(路径前缀见「路径前缀」列)。
+
+### 仓库 `/warehouse`
+
+| 方法 | 路径 | 说明 |
+|------|------|------|
+| GET | `/warehouse/page` | 分页 |
+| GET | `/warehouse/list` | 列表 |
+| GET | `/warehouse/{id}` | 详情 |
+| POST | `/warehouse/` | 新增 |
+| POST | `/warehouse/update` | 修改 |
+| DELETE | `/warehouse/deleteByIds` | 删除 |
+
+### 厂家 `/brand`
+
+| 方法 | 路径 | 说明 |
+|------|------|------|
+| GET | `/brand/page` | 分页 |
+| GET | `/brand/list` | 列表 |
+| GET | `/brand/{id}` | 详情 |
+| POST | `/brand/` | 新增 |
+| POST | `/brand/update` | 修改 |
+| DELETE | `/brand/deleteByIds` | 删除 |
+
+### 型号 `/brandModel`
+
+| 方法 | 路径 | 说明 |
+|------|------|------|
+| GET | `/brandModel/page` | 分页 |
+| GET | `/brandModel/list` | 列表 |
+| GET | `/brandModel/{id}` | 详情 |
+| POST | `/brandModel/` | 新增 |
+| POST | `/brandModel/update` | 修改 |
+| DELETE | `/brandModel/deleteByIds` | 删除 |
+
+### 周期规则 `/cycleRule`
+
+| 方法 | 路径 | 说明 |
+|------|------|------|
+| GET | `/cycleRule/page` | 分页 |
+| GET | `/cycleRule/list` | 列表 |
+| GET | `/cycleRule/{id}` | 详情 |
+| POST | `/cycleRule/` | 新增 |
+| POST | `/cycleRule/update` | 修改 |
+| DELETE | `/cycleRule/deleteByIds` | 删除 |
+
+### 库存预警 `/inventoryAlertRule`
+
+| 方法 | 路径 | 说明 |
 |------|------|------|
-| 仓库 | `/warehouse` | CRUD |
-| 厂家 | `/brand` | CRUD |
-| 型号 | `/brandModel` | CRUD |
-| 周期规则 | `/cycleRule` | CRUD |
-| 库存预警 | `/inventoryAlertRule` | 占位,暂不实现 |
+| GET | `/inventoryAlertRule/page` | 分页(占位,暂不实现) |
+| GET | `/inventoryAlertRule/list` | 列表(占位) |
+| GET | `/inventoryAlertRule/{id}` | 详情(占位) |
+| POST | `/inventoryAlertRule/` | 新增(占位) |
+| POST | `/inventoryAlertRule/update` | 修改(占位) |
+| DELETE | `/inventoryAlertRule/deleteByIds` | 删除(占位) |
 
 ## 17. 外部集成 ` /api`