# GxtUserScoreController 功能类图

```mermaid
classDiagram
    class GxtUserScoreController {
        +IGxtUserScoreService gxtUserScoreService
        +IGxtMonthScoreService gxtMonthScoreService
        +IGxtUserFanInspectionScoreService userFanInspectionScoreService
        +IGxtUserRepairProjectScoreService userRepairProjectScoreService
        +IGxtUserRuntimeScoreService userRuntimeScoreService
        +IGxtCoefficientScoreService coefficientScoreService
        +ISysConfigService configService
        +IGxtWorkOrderService gxtWorkOrderService
        +list(GxtUserScore gxtUserScore) TableDataInfo
        +getUserScoreInfo(Integer rtType, String monthPeriod) AjaxResult
        +getScoreSummary(Integer rtType, String monthPeriod, Long deptId) AjaxResult
        +getScoreSummaryById(Integer rtType, Long id) AjaxResult
        +getMonthScoreList(SysDept sysDept) TableDataInfo
        +submitMonthScore(GxtMonthScore monthScore) AjaxResult
        +getSummaryMonths(Long deptId) AjaxResult
        +export(HttpServletResponse response, GxtUserScore gxtUserScore) void
        +getInfo(Long id) AjaxResult
        +add(GxtUserScore gxtUserScore) AjaxResult
        +edit(GxtUserScore gxtUserScore) AjaxResult
        +remove(Long[] ids) AjaxResult
        +submitAllScores(GxtUserScoreSubmissionDTO submissionDTO) AjaxResult
    }
    
    class IGxtUserScoreService {
        <<interface>>
        +selectGxtUserScoreById(Long id) GxtUserScore
        +selectGxtUserScoreList(GxtUserScore gxtUserScore) List~GxtUserScore~
        +selectGxtUserScoreListByCondition(Integer rtType, String monthPeriod, Long userId, Long deptId, String permission) List~GxtUserScore~
        +insertGxtUserScore(GxtUserScore gxtUserScore) int
        +updateGxtUserScore(GxtUserScore gxtUserScore) int
        +deleteGxtUserScoreByIds(Long[] ids) int
        +deleteGxtUserScoreById(Long id) int
    }
    
    class IGxtMonthScoreService {
        <<interface>>
        +selectGxtMonthScoreById(Long id) GxtMonthScore
        +getGxtMonthScoreByParams(Integer rtType, String monthPeriod, String permission, Long deptId) GxtMonthScore
        +getGxtMonthScoreByParams(Integer rtType, String permission, Long id) GxtMonthScore
        +getMonthScoreList(GxtMonthScore monthScore) List~GxtMonthScore~
        +submitGxtMonthScore(GxtMonthScore monthScore) void
        +selectGxtMonthScoreList(GxtMonthScore gxtMonthScore) List~GxtMonthScore~
        +insertGxtMonthScore(GxtMonthScore gxtMonthScore) int
        +updateGxtMonthScore(GxtMonthScore gxtMonthScore) int
        +deleteGxtMonthScoreByIds(Long[] ids) int
        +deleteGxtMonthScoreById(Long id) int
    }
    
    class IGxtUserFanInspectionScoreService {
        <<interface>>
        +selectFanInspectionScoreByCondition(Integer rtType, String monthPeriod, Long userId, Long deptId, String permission) List~GxtUserFanInspectionScore~
    }
    
    class IGxtUserRepairProjectScoreService {
        <<interface>>
        +selectUserRepairProjectScoreByCondition(Integer rtType, String monthPeriod, Long userId, Long deptId, String permission) List~GxtUserRepairProjectScore~
    }
    
    class IGxtUserRuntimeScoreService {
        <<interface>>
        +selectGxtUserRuntimeScoreListByRtTypeAndMonth(Integer rtType, String monthPeriod, Long userId, Long deptId, String permission) List~GxtUserRuntimeScore~
    }
    
    class IGxtCoefficientScoreService {
        <<interface>>
        +selectGxtCoefficientScoreList(GxtCoefficientScore coefficientScore) List~GxtCoefficientScore~
    }
    
    class ISysConfigService {
        <<interface>>
        +selectConfigByKey(String configKey) String
    }
    
    class IGxtWorkOrderService {
        <<interface>>
        +getSummaryList(SysDept sysDept) List~SysDept~
    }
    
    class GxtUserScore {
        +Long id
        +String monthPeriod
        +Long userId
        +String userName
        +BigDecimal maintenanceTotalScore
        +BigDecimal repairTotalScore
        +BigDecimal finalScore
        +Integer status
        +Long deptId
        +String deptName
        +Long monthScoreId
    }
    
    class GxtMonthScore {
        +Long id
        +Long deptId
        +String deptName
        +String monthPeriod
        +Integer status
        +String explainCode
        +String feedbackContent
        +Long persionId
        +GxtCoefficientScore coefficientScore
        +List~GxtMonthRuntime~ monthRuntimes
        +List~GxtMonthFanInspection~ monthFanInspections
        +List~GxtMonthRepairProject~ monthRepairProjects
        +List~GxtUserScore~ userScores
    }
    
    class GxtUserScoreSubmissionDTO {
        +List~GxtCoefficientScore~ coefficientScoreList
        +List~GxtUserRuntimeScore~ userRuntimeScoreList
        +List~GxtUserFanInspectionScore~ userFanInspectionScoreList
        +List~GxtUserScore~ maintenanceUserScoreData
        +List~GxtUserScore~ repairUserScoreData
        +List~GxtUserRepairProjectScore~ userRepairProjectScoreList
        +String monthPeriod
    }
    
    GxtUserScoreController --> IGxtUserScoreService
    GxtUserScoreController --> IGxtMonthScoreService
    GxtUserScoreController --> IGxtUserFanInspectionScoreService
    GxtUserScoreController --> IGxtUserRepairProjectScoreService
    GxtUserScoreController --> IGxtUserRuntimeScoreService
    GxtUserScoreController --> IGxtCoefficientScoreService
    GxtUserScoreController --> ISysConfigService
    GxtUserScoreController --> IGxtWorkOrderService
    GxtUserScoreController --> GxtUserScore
    GxtUserScoreController --> GxtMonthScore
    GxtUserScoreController --> GxtUserScoreSubmissionDTO
    IGxtUserScoreService --> GxtUserScore
    IGxtMonthScoreService --> GxtMonthScore
    IGxtUserFanInspectionScoreService --> GxtUserFanInspectionScore
    IGxtUserRepairProjectScoreService --> GxtUserRepairProjectScore
    IGxtUserRuntimeScoreService --> GxtUserRuntimeScore
    IGxtCoefficientScoreService --> GxtCoefficientScore
```
