# 我的工单功能类图

## 1. 核心类图

```mermaid
classDiagram
    class GxtOrderMineController {
        - IGxtRepairOrderService gxtRepairOrderService
        - IGxtWorkOrderService gxtWorkOrderService
        - IGxtOrderMineService gxtOrderMineService
        + listMyCreate(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) TableDataInfo
        + listMyDone(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) TableDataInfo
        + listMyRelate(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) TableDataInfo
        + listMyTodo(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) TableDataInfo
        + listMyRate(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) TableDataInfo
        + getInfo(Integer orderType, Long orderId) AjaxResult
    }
    
    class IGxtOrderMineService {
        <<interface>>
        + selectUnionOrderListMyCreate(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) List~OrderScoreInfo~
        + selectUnionOrderListMyDone(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) List~OrderScoreInfo~
        + selectUnionOrderListMyRelate(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) List~OrderScoreInfo~
        + selectUnionOrderListMyTodo(GxtRepairOrder repairOrder, GxtWorkOrder workOrder, Long userId) List~OrderScoreInfo~
        + selectUnionOrderListMyRate(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) List~OrderScoreInfo~
    }
    
    class GxtOrderMineServiceImpl {
        - GxtOrderMineMapper gxtOrderMineMapper
        - IGxtRepairOrderService gxtRepairOrderService
        - IGxtWorkOrderService gxtWorkOrderService
        - SysUserMapper userMapper
        - ISysConfigService configService
        - SysPermissionService permissionService
        + selectUnionOrderListMyCreate(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) List~OrderScoreInfo~
        + selectUnionOrderListMyDone(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) List~OrderScoreInfo~
        + selectUnionOrderListMyRelate(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) List~OrderScoreInfo~
        + selectUnionOrderListMyTodo(GxtRepairOrder repairOrder, GxtWorkOrder workOrder, Long userId) List~OrderScoreInfo~
        + selectUnionOrderListMyRate(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) List~OrderScoreInfo~
        - addBusinessDataScopeFilter(GxtRepairOrder repairOrder, GxtWorkOrder workOrder, Long userId) void
        - getLoginUser(Long userId) LoginUser
        - isAdmin(Long userId) boolean
        - getDeptId(Long userId) Long
        - hasPermi(Long userId, String permission) boolean
    }
    
    class GxtOrderMineMapper {
        + selectUnionOrderList(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) List~OrderScoreInfo~
    }
    
    class OrderScoreInfo {
        + Integer orderType
        + Long id
        + String workOrderProjectNo
        + String workOrderStatus
        + Long gxtCenterId
        + String gxtCenter
        + Long pcsStationId
        + Long pcsStationPid
        + String pcsStationName
        + Long pcsDeviceId
        + String pcsDeviceName
        + String brand
        + String model
        + Date assignTime
        + Long assignUserId
        + String assignUserName
        + Date acceptTime
        + Long acceptUserId
        + String acceptUserName
        + Date realStartTime
        + Date realEndTime
        + Long teamLeaderId
        + String teamLeaderName
        + Long workGroupMemberId
        + String workGroupMemberName
        + Double score
        + String reviewContent
        + String suspendReason
        + String rejectionReason
        + String modifyReason
        + Date restartTime
        + String priorityType
        + Date workEndTime
        + String scoringStatus
        + String workSummary
        + String maintenanceType
        + String inspectionType
        + Date planStartTime
        + Date planEndTime
        + Double planHour
        + String faultCode
        + String faultDesc
        + Date occurTime
        + Date suspendTime
        + String pauseReason
        + Date pauseTime
        + Date completeTime
        + Integer status
        + List~OrderScorePerson~ scorePersonList
        + BigDecimal itemCompletionFactor
        + BigDecimal itemCompletionFactorSum
        + Integer reviewScoreNum
        + BigDecimal finalCoefficient
        + Integer confirmStatus
        + String feedbackReason
        + String appealReason
        + Date createTime
        + Date updateTime
    }
    
    GxtOrderMineController --> IGxtOrderMineService
    IGxtOrderMineService <|.. GxtOrderMineServiceImpl
    GxtOrderMineServiceImpl --> GxtOrderMineMapper
    GxtOrderMineServiceImpl ..> OrderScoreInfo
    GxtOrderMineMapper ..> OrderScoreInfo

```

## 2. 各功能模块类图

### 2.1 我创建的工单类图

```mermaid
classDiagram
    class GxtOrderMineController {
        + listMyCreate(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) TableDataInfo
    }
    
    class GxtOrderMineServiceImpl {
        + selectUnionOrderListMyCreate(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) List~OrderScoreInfo~
    }
    
    class GxtOrderMineMapper {
        + selectUnionOrderList(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) List~OrderScoreInfo~
    }
    
    GxtOrderMineController --> GxtOrderMineServiceImpl
    GxtOrderMineServiceImpl --> GxtOrderMineMapper
    
    %% note right of GxtOrderMineController
    %%     Controller layer calls Service layer's
    %%     selectUnionOrderListMyCreate method
    %%     to get work orders I created
    %% end note
```

### 2.2 我处理的工单类图

```mermaid
classDiagram
    class GxtOrderMineController {
        + listMyDone(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) TableDataInfo
    }
    
    class GxtOrderMineServiceImpl {
        + selectUnionOrderListMyDone(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) List~OrderScoreInfo~
    }
    
    class GxtOrderMineMapper {
        + selectUnionOrderList(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) List~OrderScoreInfo~
    }
    
    GxtOrderMineController --> GxtOrderMineServiceImpl
    GxtOrderMineServiceImpl --> GxtOrderMineMapper
    
    %% note right of GxtOrderMineController
    %%     Controller layer calls Service layer's
    %%     selectUnionOrderListMyDone method
    %%     to get work orders I processed
    %% end note
```

### 2.3 我相关的工单类图

```mermaid
classDiagram
    class GxtOrderMineController {
        + listMyRelate(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) TableDataInfo
    }
    
    class GxtOrderMineServiceImpl {
        + selectUnionOrderListMyRelate(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) List~OrderScoreInfo~
    }
    
    class GxtOrderMineMapper {
        + selectUnionOrderList(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) List~OrderScoreInfo~
    }
    
    GxtOrderMineController --> GxtOrderMineServiceImpl
    GxtOrderMineServiceImpl --> GxtOrderMineMapper
    
    %% note right of GxtOrderMineController
    %%     Controller layer calls Service layer's
    %%     selectUnionOrderListMyRelate method
    %%     to get work orders related to me
    %% end note
```

### 2.4 我的待办工单类图

```mermaid
classDiagram
    class GxtOrderMineController {
        + listMyTodo(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) TableDataInfo
    }
    
    class GxtOrderMineServiceImpl {
        + selectUnionOrderListMyTodo(GxtRepairOrder repairOrder, GxtWorkOrder workOrder, Long userId) List~OrderScoreInfo~
    }
    
    class GxtOrderMineMapper {
        + selectUnionOrderList(GxtRepairOrder repairOrder, GxtWorkOrder workOrder) List~OrderScoreInfo~
    }
    
    GxtOrderMineController --> GxtOrderMineServiceImpl
    GxtOrderMineServiceImpl --> GxtOrderMineMapper
    
    %% note right of GxtOrderMineController
    %%     Controller layer calls Service layer's
    %%     selectUnionOrderListMyTodo method
    %%     to get my pending work orders
    %% end note
```
