# 维护耗材模块接口文档 ## 创建耗材项接口 #### 消息协议 - JSONRPC-2.0 #### Method - /material/create #### 请求参数示例: ```json { "jsonrpc": "2.0", "method": "/material/create", "params": { "title": "LED灯泡", "type": "照明设备", "unit": "个", "quantity": 2, "price": 50.00 }, "session": "viFuv4G2XJMxO4GIIsVfbJ2eKwy6QyuWLXmqZY69dy0G9iTY", "timestampin": "1706325301436" } ``` #### 参数说明: | 参数名 | 类型 | 说明 | 必填 | 备注 | |-------------|---------|-----------------------|------|-------------------------------| | title | string | 耗材名称 | 是 | 最大长度50字符 | | type | string | 耗材类型 | 是 | 照明设备/网络设备/其他 | | unit | string | 单位 | 是 | 个/件/米/套等 | | quantity | int | 数量 | 是 | 必须大于0 | | price | float64 | 单价 | 是 | 必须大于等于0 | #### 成功响应示例: ```json { "jsonrpc": "2.0", "result": { "id": 1, "title": "LED灯泡", "type": "照明设备", "unit": "个", "quantity": 2, "price": 50.00, "total_price": 100.00, "created_at": "2024-03-20T10:00:00Z" }, "error": { "message": "ok", "code": 200 } } ``` #### 错误响应示例: ```json { "jsonrpc": "2.0", "result": null, "error": { "message": "数量必须大于0", "code": 400, "data": { "field": "quantity" } } } ``` ## 获取耗材项详情接口 #### Method - /material/detail #### 请求参数示例: ```json { "jsonrpc": "2.0", "method": "/material/detail", "params": { "id": 1 }, "session": "viFuv4G2XJMxO4GIIsVfbJ2eKwy6QyuWLXmqZY69dy0G9iTY", "timestampin": "1706325301436" } ``` #### 参数说明: | 参数名 | 类型 | 说明 | 必填 | 备注 | |-------------|---------|-----------------------|------|-------------------------------| | id | uint | 耗材项ID | 是 | | #### 成功响应示例: ```json { "jsonrpc": "2.0", "result": { "id": 1, "title": "LED灯泡", "type": "照明设备", "unit": "个", "quantity": 2, "price": 50.00, "total_price": 100.00, "created_at": "2024-03-20T10:00:00Z" }, "error": { "message": "ok", "code": 200 } } ``` #### 错误响应示例: ```json { "jsonrpc": "2.0", "result": null, "error": { "message": "耗材项不存在", "code": 400, "data": { "field": "id" } } } ``` ## 更新耗材项接口 #### Method - /material/update #### 请求参数示例: ```json { "jsonrpc": "2.0", "method": "/material/update", "params": { "id": 1, "quantity": 3, "price": 55.00 }, "session": "viFuv4G2XJMxO4GIIsVfbJ2eKwy6QyuWLXmqZY69dy0G9iTY", "timestampin": "1706325301436" } ``` #### 参数说明: | 参数名 | 类型 | 说明 | 必填 | 备注 | |-------------|---------|-----------------------|------|-------------------------------| | id | uint | 耗材项ID | 是 | | | title | string | 耗材名称 | 否 | 最大长度50字符 | | type | string | 耗材类型 | 否 | 照明设备/网络设备/其他 | | unit | string | 单位 | 否 | 个/件/米/套等 | | quantity | int | 数量 | 否 | 必须大于0 | | price | float64 | 单价 | 否 | 必须大于等于0 | #### 成功响应示例: ```json { "jsonrpc": "2.0", "result": { "id": 1, "title": "LED灯泡", "type": "照明设备", "unit": "个", "quantity": 3, "price": 55.00, "total_price": 165.00, "created_at": "2024-03-20T10:00:00Z" }, "error": { "message": "ok", "code": 200 } } ``` #### 错误响应示例: ```json { "jsonrpc": "2.0", "result": null, "error": { "message": "耗材项不存在", "code": 400, "data": { "field": "id" } } } ``` ## 删除耗材项接口 #### Method - /material/delete #### 请求参数示例: ```json { "jsonrpc": "2.0", "method": "/material/delete", "params": { "id": 1 }, "session": "viFuv4G2XJMxO4GIIsVfbJ2eKwy6QyuWLXmqZY69dy0G9iTY", "timestampin": "1706325301436" } ``` #### 参数说明: | 参数名 | 类型 | 说明 | 必填 | 备注 | |-------------|---------|-----------------------|------|-------------------------------| | id | uint | 耗材项ID | 是 | | #### 成功响应示例: ```json { "jsonrpc": "2.0", "result": null, "error": { "message": "ok", "code": 200 } } ``` #### 错误响应示例: ```json { "jsonrpc": "2.0", "result": null, "error": { "message": "耗材项不存在", "code": 400, "data": { "field": "id" } } } ``` ## 获取耗材列表接口 #### Method - /material/list #### 请求参数示例: ```json { "jsonrpc": "2.0", "method": "/material/list", "params": { "page": 1, "page_size": 20, "type": "照明设备" }, "session": "viFuv4G2XJMxO4GIIsVfbJ2eKwy6QyuWLXmqZY69dy0G9iTY", "timestampin": "1706325301436" } ``` #### 参数说明: | 参数名 | 类型 | 说明 | 必填 | 备注 | |-------------|---------|-----------------------|------|-------------------------------| | page | integer | 当前页码 | 否 | 默认1 | | page_size | integer | 每页记录数 | 否 | 默认20,最大100 | | type | string | 耗材类型 | 否 | 照明设备/网络设备/其他 | #### 成功响应示例: ```json { "jsonrpc": "2.0", "result": { "count": 1, "rows": [ { "id": 1, "title": "LED灯泡", "type": "照明设备", "unit": "个", "quantity": 2, "price": 50.00, "total_price": 100.00, "created_at": "2024-03-20T10:00:00Z" } ] }, "error": { "message": "ok", "code": 200 } } ``` #### 错误响应示例: ```json { "jsonrpc": "2.0", "result": null, "error": { "message": "无效的耗材类型", "code": 400, "data": { "field": "type" } } } ``` ## 业务规则说明 1. 耗材名称、类型、单位、数量、单价为必填项 2. 数量必须大于0 3. 单价不能为负数 4. 总价自动计算(单价 × 数量) 5. 耗材项创建后不可修改名称 6. 耗材项删除后不可恢复 7. 列表查询支持按类型过滤 8. 分页查询默认每页20条记录,最大100条