```mermaid
sequenceDiagram
    participant User as 用户
    participant Controller as GxtEquipmentController
    participant Service as IGxtEquipmentService
    participant Mapper as GxtEquipmentMapper
    participant Database as 数据库

    User->>Controller: GET /gxt/equipment/list
    Controller->>Service: selectGxtEquipmentList(gxtEquipment)
    Service->>Mapper: selectGxtEquipmentList(gxtEquipment)
    Mapper->>Database: 执行查询SQL
    Database-->>Mapper: 返回查询结果
    Mapper-->>Service: 返回GxtEquipment列表
    Service-->>Controller: 返回GxtEquipment列表
    Controller-->>User: 返回TableDataInfo结果

    User->>Controller: POST /gxt/equipment
    Controller->>Service: insertGxtEquipment(gxtEquipment)
    Service->>Service: 验证设备唯一性
    Service->>Mapper: selectGxtEquipmentByCodeAndLocation(equipment)
    Mapper->>Database: 执行查询SQL
    Database-->>Mapper: 返回查询结果
    Mapper-->>Service: 返回GxtEquipment对象
    Service->>Service: 判断设备是否存在
    alt 设备不存在
        Service->>Mapper: insertGxtEquipment(gxtEquipment)
        Mapper->>Database: 执行插入SQL
        Database-->>Mapper: 返回插入结果
        Mapper-->>Service: 返回插入结果
    else 设备已存在
        Service-->>Controller: 抛出ServiceException异常
        Controller-->>User: 返回错误信息
    end
    Service-->>Controller: 返回插入结果
    Controller-->>User: 返回AjaxResult结果

    User->>Controller: PUT /gxt/equipment
    Controller->>Service: updateGxtEquipment(gxtEquipment)
    Service->>Service: 验证设备唯一性（排除当前设备）
    Service->>Mapper: selectGxtEquipmentByCodeAndLocation(equipment)
    Mapper->>Database: 执行查询SQL
    Database-->>Mapper: 返回查询结果
    Mapper-->>Service: 返回GxtEquipment对象
    Service->>Service: 判断设备是否存在
    alt 设备不存在或为当前设备
        Service->>Mapper: updateGxtEquipment(gxtEquipment)
        Mapper->>Database: 执行更新SQL
        Database-->>Mapper: 返回更新结果
        Mapper-->>Service: 返回更新结果
    else 存在其他相同设备
        Service-->>Controller: 抛出ServiceException异常
        Controller-->>User: 返回错误信息
    end
    Service-->>Controller: 返回更新结果
    Controller-->>User: 返回AjaxResult结果

    User->>Controller: DELETE /gxt/equipment/{equipmentIds}
    Controller->>Service: deleteGxtEquipmentByEquipmentIds(equipmentIds)
    Service->>Mapper: deleteGxtEquipmentByEquipmentIds(equipmentIds)
    Mapper->>Database: 执行删除SQL
    Database-->>Mapper: 返回删除结果
    Mapper-->>Service: 返回删除结果
    Service-->>Controller: 返回删除结果
    Controller-->>User: 返回AjaxResult结果

    User->>Controller: POST /gxt/equipment/importData
    Controller->>Service: importGxtEquipment(equipmentList, updateSupport, operName)
    loop 遍历导入数据
        Service->>Service: 验证数据有效性
        Service->>Mapper: selectGxtEquipmentByCodeAndLocation(equipment)
        Mapper->>Database: 执行查询SQL
        Database-->>Mapper: 返回查询结果
        Mapper-->>Service: 返回GxtEquipment对象
        Service->>Service: 判断设备是否存在
        alt 设备不存在
            Service->>Mapper: insertGxtEquipment(equipment)
            Mapper->>Database: 执行插入SQL
            Database-->>Mapper: 返回插入结果
            Mapper-->>Service: 返回插入结果
        else 设备已存在且支持更新
            Service->>Mapper: updateGxtEquipment(equipment)
            Mapper->>Database: 执行更新SQL
            Database-->>Mapper: 返回更新结果
            Mapper-->>Service: 返回更新结果
        else 设备已存在且不支持更新
            Service->>Service: 记录错误信息
        end
    end
    Service-->>Controller: 返回导入结果信息
    Controller-->>User: 返回AjaxResult结果
```
