# 我的工单功能时序图

## 1. 我创建的工单时序图

```mermaid
sequenceDiagram
    participant U as 用户
    participant C as GxtOrderMineController
    participant S as GxtOrderMineServiceImpl
    participant M as GxtOrderMineMapper
    participant DB as 数据库
    
    U->>C: 发送GET请求 /listMyCreate
    C->>C: startPage() 开启分页
    C->>S: selectUnionOrderListMyCreate(repairOrder, workOrder)
    S->>S: 设置创建人条件(createBy)
    S->>S: 添加数据权限过滤(非admin用户过滤作废工单)
    S->>M: selectUnionOrderList(repairOrder, workOrder)
    M->>DB: 查询维修工单(gxt_repair_order)
    DB-->>M: 返回维修工单结果
    M->>DB: 查询维保工单(gxt_work_order)
    DB-->>M: 返回维保工单结果
    M->>M: 合并两个结果集
    M-->>S: 返回合并后的OrderScoreInfo列表
    S-->>C: 返回OrderScoreInfo列表
    C->>C: getDataTable(list) 封装分页结果
    C-->>U: 返回分页数据(TableDataInfo)
```

## 2. 我处理的工单时序图

```mermaid
sequenceDiagram
    participant U as 用户
    participant C as GxtOrderMineController
    participant S as GxtOrderMineServiceImpl
    participant M as GxtOrderMineMapper
    participant DB as 数据库
    
    U->>C: 发送GET请求 /listMyDone
    C->>C: startPage() 开启分页
    C->>S: selectUnionOrderListMyDone(repairOrder, workOrder)
    S->>S: 获取当前用户ID
    S->>S: 构建维修工单处理人员过滤条件(通过gxt_repair_order_flow表)
    S->>S: 构建维保工单处理人员过滤条件(通过gxt_work_order_flow表)
    S->>S: 添加数据权限过滤(非admin用户过滤作废工单)
    S->>M: selectUnionOrderList(repairOrder, workOrder)
    M->>DB: 查询维修工单(gxt_repair_order)
    DB-->>M: 返回维修工单结果
    M->>DB: 查询维保工单(gxt_work_order)
    DB-->>M: 返回维保工单结果
    M->>M: 合并两个结果集
    M-->>S: 返回合并后的OrderScoreInfo列表
    S-->>C: 返回OrderScoreInfo列表
    C->>C: getDataTable(list) 封装分页结果
    C-->>U: 返回分页数据(TableDataInfo)
```

## 3. 我相关的工单时序图

```mermaid
sequenceDiagram
    participant U as 用户
    participant C as GxtOrderMineController
    participant S as GxtOrderMineServiceImpl
    participant M as GxtOrderMineMapper
    participant DB as 数据库

    
    U->>C: 发送GET请求 /listMyRelate
    C->>C: startPage() 开启分页
    C->>S: selectUnionOrderListMyRelate(repairOrder, workOrder)
    S->>S: 获取当前用户ID
    S->>S: 构建维修工单相关人员过滤条件(通过gxt_repair_order_person表)
    S->>S: 构建维保工单相关人员过滤条件(通过gxt_work_order_person表)
    S->>S: 添加数据权限过滤(非admin用户过滤作废工单)
    S->>M: selectUnionOrderList(repairOrder, workOrder)
    M->>DB: 查询维修工单(gxt_repair_order)
    DB-->>M: 返回维修工单结果
    M->>DB: 查询维保工单(gxt_work_order)
    DB-->>M: 返回维保工单结果
    M->>M: 合并两个结果集
    M-->>S: 返回合并后的OrderScoreInfo列表
    S-->>C: 返回OrderScoreInfo列表
    C->>C: getDataTable(list) 封装分页结果
    C-->>U: 返回分页数据(TableDataInfo)
```

## 4. 我的待办工单时序图

```mermaid
sequenceDiagram
    participant U as 用户
    participant C as GxtOrderMineController
    participant S as GxtOrderMineServiceImpl
    participant M as GxtOrderMineMapper
    participant DB as 数据库
    
    U->>C: 发送GET请求 /listMyTodo
    C->>C: startPage() 开启分页
    C->>S: selectUnionOrderListMyTodo(repairOrder, workOrder, null)
    S->>S: 添加业务特定的数据权限过滤(addBusinessDataScopeFilter)
    S->>S: 获取当前用户ID
    S->>S: 构建维修工单权限和状态过滤条件(根据用户权限)
    S->>S: 构建维保工单权限和状态过滤条件(根据用户权限)
    S->>M: selectUnionOrderList(repairOrder, workOrder)
    M->>DB: 查询维修工单(gxt_repair_order)
    DB-->>M: 返回维修工单结果
    M->>DB: 查询维保工单(gxt_work_order)
    DB-->>M: 返回维保工单结果
    M->>M: 合并两个结果集
    M-->>S: 返回合并后的OrderScoreInfo列表
    S-->>C: 返回OrderScoreInfo列表
    C->>C: getDataTable(list) 封装分页结果
    C-->>U: 返回分页数据(TableDataInfo)
```
