# 我的工单功能模块描述和接口说明

## 1. 我创建的工单 (listMyCreate)

### 功能描述
该功能模块用于展示当前登录用户创建的所有工单，包括维修工单和维保工单。系统会根据用户的创建人信息进行过滤，只显示由该用户创建的工单。

### 接口说明
- **接口地址**: `/gxt/orderMine/listMyCreate`
- **请求方法**: GET
- **接口描述**: 查询我创建的工单列表（合并维修工单和维保工单）
- **请求参数**:
  - `workOrderProjectNo` (String, 可选): 工单编码，用于模糊查询
  - `workOrderStatus` (String, 可选): 工单状态
  - `gxtCenter` (String, 可选): 维保中心
  - `pcsStationName` (String, 可选): 场站名称
  - `pcsDeviceName` (String, 可选): 风机编号
  - `pageNum` (Integer, 可选): 页码
  - `pageSize` (Integer, 可选): 每页大小
  
- **响应数据**: 
  - `code` (Integer): 状态码
  - `msg` (String): 返回消息
  - `total` (Long): 总记录数
  - `rows` (Array): 工单列表数据
    - `orderType` (Integer): 工单类型（1-维修工单，2-维保工单）
    - `id` (Long): 工单ID
    - `workOrderProjectNo` (String): 工单编码
    - `workOrderStatus` (String): 工单状态
    - `gxtCenter` (String): 维保中心
    - `pcsStationName` (String): 场站名称
    - `pcsDeviceName` (String): 风机编号
    - `brand` (String): 风机品牌
    - `model` (String): 风机型号
    - `createTime` (Date): 创建时间

### 业务逻辑
1. 系统根据当前登录用户的用户名设置查询条件中的创建人字段
2. 对于非管理员用户，过滤掉状态为"invalid"（作废）的工单
3. 支持多条件组合查询
4. 返回合并后的维修工单和维保工单列表，按创建时间倒序排列

## 2. 我处理的工单 (listMyDone)

### 功能描述
该功能模块用于展示当前登录用户处理过的所有工单。系统通过查询工单流转记录表来确定处理人员，只要工单流转记录中有当前用户的操作记录，就会被展示在此列表中。

### 接口说明
- **接口地址**: `/gxt/orderMine/listMyDone`
- **请求方法**: GET
- **接口描述**: 查询我处理的工单列表（合并维修工单和维保工单）
- **请求参数**:
  - `workOrderProjectNo` (String, 可选): 工单编码，用于模糊查询
  - `workOrderStatus` (String, 可选): 工单状态
  - `gxtCenter` (String, 可选): 维保中心
  - `pcsStationName` (String, 可选): 场站名称
  - `pcsDeviceName` (String, 可选): 风机编号
  - `pageNum` (Integer, 可选): 页码
  - `pageSize` (Integer, 可选): 每页大小
  
- **响应数据**: 
  - `code` (Integer): 状态码
  - `msg` (String): 返回消息
  - `total` (Long): 总记录数
  - `rows` (Array): 工单列表数据
    - `orderType` (Integer): 工单类型（1-维修工单，2-维保工单）
    - `id` (Long): 工单ID
    - `workOrderProjectNo` (String): 工单编码
    - `workOrderStatus` (String): 工单状态
    - `gxtCenter` (String): 维保中心
    - `pcsStationName` (String): 场站名称
    - `pcsDeviceName` (String): 风机编号
    - `brand` (String): 风机品牌
    - `model` (String): 风机型号
    - `acceptTime` (Date): 接单时间
    - `acceptUserName` (String): 接单人姓名
    - `realStartTime` (Date): 实际开始时间
    - `realEndTime` (Date): 实际结束时间
    - `teamLeaderName` (String): 工作负责人姓名

### 业务逻辑
1. 系统根据当前登录用户的用户ID查询工单流转记录表
2. 对于维修工单，查询`gxt_repair_order_flow`表中`operator_id`等于当前用户ID的记录
3. 对于维保工单，查询`gxt_work_order_flow`表中`operator_id`等于当前用户ID的记录
4. 对于非管理员用户，过滤掉状态为"invalid"（作废）的工单
5. 返回合并后的维修工单和维保工单列表，按创建时间倒序排列

## 3. 我相关的工单 (listMyRelate)

### 功能描述
该功能模块用于展示当前登录用户相关的所有工单。系统通过查询工单人员关联表来确定相关人员，只要工单人员关联表中有当前用户的记录，就会被展示在此列表中。

### 接口说明
- **接口地址**: `/gxt/orderMine/listMyRelate`
- **请求方法**: GET
- **接口描述**: 查询我相关的工单列表（合并维修工单和维保工单）
- **请求参数**:
  - `workOrderProjectNo` (String, 可选): 工单编码，用于模糊查询
  - `workOrderStatus` (String, 可选): 工单状态
  - `gxtCenter` (String, 可选): 维保中心
  - `pcsStationName` (String, 可选): 场站名称
  - `pcsDeviceName` (String, 可选): 风机编号
  - `pageNum` (Integer, 可选): 页码
  - `pageSize` (Integer, 可选): 每页大小
  
- **响应数据**: 
  - `code` (Integer): 状态码
  - `msg` (String): 返回消息
  - `total` (Long): 总记录数
  - `rows` (Array): 工单列表数据
    - `orderType` (Integer): 工单类型（1-维修工单，2-维保工单）
    - `id` (Long): 工单ID
    - `workOrderProjectNo` (String): 工单编码
    - `workOrderStatus` (String): 工单状态
    - `gxtCenter` (String): 维保中心
    - `pcsStationName` (String): 场站名称
    - `pcsDeviceName` (String): 风机编号
    - `brand` (String): 风机品牌
    - `model` (String): 风机型号
    - `teamLeaderName` (String): 工作负责人姓名
    - `workGroupMemberName` (String): 工作组成员姓名

### 业务逻辑
1. 系统根据当前登录用户的用户ID查询工单人员关联表
2. 对于维修工单，查询`gxt_repair_order_person`表中`user_id`等于当前用户ID的记录
3. 对于维保工单，查询`gxt_work_order_person`表中`user_id`等于当前用户ID的记录
4. 对于非管理员用户，过滤掉状态为"invalid"（作废）的工单
5. 返回合并后的维修工单和维保工单列表，按创建时间倒序排列

## 4. 我的待办工单 (listMyTodo)

### 功能描述
该功能模块用于展示当前登录用户的待办工单列表。系统根据用户的权限和工单状态进行双重过滤，只展示用户有权限处理且状态符合要求的工单。

### 接口说明
- **接口地址**: `/gxt/orderMine/listMyTodo`
- **请求方法**: GET
- **接口描述**: 查询我的待办工单列表（合并维修工单和维保工单）
- **请求参数**:
  - `workOrderProjectNo` (String, 可选): 工单编码，用于模糊查询
  - `workOrderStatus` (String, 可选): 工单状态
  - `gxtCenter` (String, 可选): 维保中心
  - `pcsStationName` (String, 可选): 场站名称
  - `pcsDeviceName` (String, 可选): 风机编号
  - `pageNum` (Integer, 可选): 页码
  - `pageSize` (Integer, 可选): 每页大小
  
- **响应数据**: 
  - `code` (Integer): 状态码
  - `msg` (String): 返回消息
  - `total` (Long): 总记录数
  - `rows` (Array): 工单列表数据
    - `orderType` (Integer): 工单类型（1-维修工单，2-维保工单）
    - `id` (Long): 工单ID
    - `workOrderProjectNo` (String): 工单编码
    - `workOrderStatus` (String): 工单状态
    - `gxtCenter` (String): 维保中心
    - `pcsStationName` (String): 场站名称
    - `pcsDeviceName` (String): 风机编号
    - `brand` (String): 风机品牌
    - `model` (String): 风机型号
    - `assignTime` (Date): 派单时间
    - `assignUserName` (String): 派单人姓名
    - `acceptTime` (Date): 接单时间
    - `acceptUserName` (String): 接单人姓名
    - `teamLeaderName` (String): 工作负责人姓名

### 业务逻辑
1. 系统根据当前登录用户的权限进行数据权限过滤
2. 对于维修工单，根据用户权限和工单状态进行过滤：
   - `assigned`状态且有接单权限
   - `to_finish`状态且有结单权限且是工作负责人
   - `to_approve`状态且有审批权限
   - `completed`状态且有复运权限
   - `to_issue`、`accept_return`状态且有编辑权限，且当前用户是创建人本部门的人
3. 对于维保工单，根据用户权限和工单状态进行过滤：
   - `assigned`状态且有接单权限
   - `processing`或`to_finish`状态且有结单权限且是工作负责人
   - `to_approve`状态且有审批权限
   - `completed`状态且有复运权限
   - `to_issue`状态且有编辑权限
4. 对于非管理员用户，过滤掉状态为"invalid"（作废）的工单
5. 返回合并后的维修工单和维保工单列表，按创建时间倒序排列
