报修完成接口文档
提交报修
查询报修单
查询待办单
办理报修
一、接口名称
报修完成接口  
二、接口描述
该接口用于维修人员完成报修单的处理,包括:  
- 更新维修单状态  
 
- 记录维修用料和费用  
 
- 处理维修图片上传  
 
- 生成支付费用(有偿维修)  
 
- 更新库存(如涉及物料使用)
 
三、接口路径
http://ip:port/app/ownerRepair.repairFinish  
四、请求方法
POST  
五、请求头
| 参数名称 | 
必填 | 
类型 | 
描述 | 
| Authorization | 
是 | 
String | 
用户认证token Base token 通过登录接口获取token | 
| app-id | 
是 | 
String | 
应用ID 系统dev账户分配 | 
| transaction-id | 
是 | 
String | 
请求流水号 不能重复 1000000000+YYYYMMDDhhmmss+6位序列 | 
| sign | 
是 | 
String | 
签名 | 
| req-time | 
是 | 
String | 
请求时间 YYYYMMDDhhmmss | 
| user-id | 
是 | 
String | 
当前操作用户ID | 
| user-name | 
是 | 
String | 
当前操作用户名称 | 
六、请求参数
6.1 请求体参数(JSON格式)
| 参数名称 | 
必填 | 
类型 | 
描述 | 
| repairId | 
是 | 
String | 
报修单ID | 
| communityId | 
是 | 
String | 
小区ID | 
| context | 
是 | 
String | 
维修内容描述 | 
| feeFlag | 
是 | 
String | 
费用标识(有偿/无偿) | 
| publicArea | 
否 | 
String | 
是否公共区域(T-是,F-否) | 
| maintenanceType | 
否 | 
String | 
维修类型(1001-有偿,1002-无偿,1003-公共区域) | 
| repairChannel | 
否 | 
String | 
报修渠道(Z-业主报修,其他-员工代客报修) | 
| repairMaterial | 
否 | 
String | 
维修用料(格式:物料1数量;物料2数量) | 
| repairFee | 
否 | 
String | 
费用明细(格式:单价*数量=总价;) | 
| totalPrice | 
否 | 
String | 
总金额(有偿维修时必填) | 
| payType | 
否 | 
String | 
支付方式 | 
| beforeRepairPhotos | 
否 | 
JSONArray | 
维修前照片列表([{"photo":"base64或URL"},...]) | 
| afterRepairPhotos | 
否 | 
JSONArray | 
维修后照片列表([{"photo":"base64或URL"},...]) | 
| choosedGoodsList | 
否 | 
JSONArray | 
使用的物料列表(详见下表) | 
choosedGoodsList 参数说明
| 参数名称 | 
必填 | 
类型 | 
描述 | 
| resId | 
否 | 
String | 
物料ID(非自定义时必填) | 
| resName | 
否 | 
String | 
物料名称 | 
| isCustom | 
是 | 
String | 
是否自定义物料(true/false) | 
| useNumber | 
是 | 
String | 
使用数量 | 
| price | 
否 | 
String | 
单价(有偿维修时必填) | 
| customGoodsName | 
否 | 
String | 
自定义物料名称(isCustom=true时必填) | 
七、返回值
7.1 返回值(JSON格式)
| 参数名称 | 
必填 | 
类型 | 
描述 | 
| code | 
是 | 
String | 
返回码 0 成功 其他失败 | 
| msg | 
是 | 
String | 
返回信息 | 
| data | 
否 | 
Object | 
返回数据 | 
八、示例请求
POST /app/ownerRepair.repairFinish
Headers:
{
  "Authorization": "Bearer xxxx",
  "app-id": "hc",
  "transaction-id": "100000000020231201134500000001",
  "sign": "xxxx",
  "req-time": "20231201134500",
  "user-id": "123",
  "user-name": "张三"
}
Body:
{
  "repairId": "772022110493850003",
  "communityId": "702022082202930001",
  "context": "水管漏水已修复",
  "feeFlag": "2002",
  "publicArea": "F",
  "maintenanceType": "1001",
  "repairChannel": "Z",
  "totalPrice": "150.00",
  "payType": "1",
  "beforeRepairPhotos": [{"photo": "base64...1"}, {"photo": "base64...2"}],
  "afterRepairPhotos": [{"photo": "base64...3"}],
  "choosedGoodsList": [
    {
      "resId": "882022110493850011",
      "resName": "PVC水管",
      "isCustom": "false",
      "useNumber": "2",
      "price": "50.00"
    },
    {
      "isCustom": "true",
      "customGoodsName": "密封胶",
      "useNumber": "1",
      "price": "50.00"
    }
  ]
}
九、示例响应
{
  "code": "0",
  "msg": "成功",
  "data": null
}
十、状态码说明
| 状态码 | 
描述 | 
| 0 | 
操作成功 | 
| 1001 | 
业务验证失败(如:当前用户没有需要处理的订单) | 
| 2001 | 
数据错误(如:维修单不存在) | 
| 3001 | 
系统异常 | 
十一、业务逻辑说明
- 权限验证:验证当前用户是否有处理该报修单的权限  
 
- 物料处理:  
- 校验物料库存是否充足  
 
- 更新个人物料库存  
 
- 记录物料使用情况
 
 
- 费用处理(有偿维修):  
 
- 图片处理:  
 
- 状态更新:  
- 更新维修单状态(待支付/待评价/待回访)  
 
- 记录维修类型、用料、费用明细等信息
 
 
十二、注意事项
- 有偿维修(maintenanceType=1001)必须提供
totalPrice和物料单价   
- 使用库存物料(isCustom=false)必须提供有效的
resId   
- 公共区域维修(publicArea=T)无需关联业主信息  
 
- 图片超过512字符会自动转为文件存储