package com.pm.subsystem.service.impl;

import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.pm.subsystem.mapper.DeviceServiceOrderMapper;
import com.pm.subsystem.service.IDeviceServiceOrderService;
import com.pm.common.config.PageData;

/**
 * 设备服务工单Service业务层处理
 *
 * @author lxf
 * @date 2025-01-06
 */
@Service
public class DeviceServiceOrderServiceImpl implements IDeviceServiceOrderService
{
    @Autowired
    private DeviceServiceOrderMapper serviceOrderMapper;

    /**
     * 查询设备服务工单
     *
     * @param id 设备服务工单主键
     * @return 设备服务工单
     */
    @Override
    public PageData selectServiceOrderById(Long id)
    {
        return serviceOrderMapper.selectServiceOrderById(id);
    }

    /**
     * 查询设备服务工单列表
     *
     * @param pd 设备服务工单
     * @return 设备服务工单
     */
    @Override
    public List<PageData> selectServiceOrderList(PageData pd)
    {
        return serviceOrderMapper.selectServiceOrderList(pd);
    }

    /**
     * 新增设备服务工单
     *
     * @param pd 设备服务工单
     * @return 结果
     */
    @Override
    public int insertServiceOrder(PageData pd)
    {
        return serviceOrderMapper.insertServiceOrder(pd);
    }

    /**
     * 修改设备服务工单
     *
     * @param pd 设备服务工单
     * @return 结果
     */
    @Override
    public int updateServiceOrder(PageData pd)
    {
        return serviceOrderMapper.updateServiceOrder(pd);
    }

    /**
     * 批量删除设备服务工单
     *
     * @param ids 需要删除的设备服务工单主键
     * @return 结果
     */
    @Override
    public int deleteServiceOrderByIds(Long[] ids)
    {
        return serviceOrderMapper.deleteServiceOrderByIds(ids);
    }

    /**
     * 删除设备服务工单信息
     *
     * @param id 设备服务工单主键
     * @return 结果
     */
    @Override
    public int deleteServiceOrderById(Long id)
    {
        return serviceOrderMapper.deleteServiceOrderById(id);
    }

    /**
     * 根据工单号查询工单
     *
     * @param orderId 工单ID
     * @return 工单信息
     */
    @Override
    public PageData selectServiceOrderByOrderNo(String orderId)
    {
        return serviceOrderMapper.selectServiceOrderByOrderNo(orderId);
    }

    /**
     * 分配工单
     *
     * @param pd 分配参数
     * @return 结果
     */
    @Override
    public int assignServiceOrder(PageData pd)
    {
        return serviceOrderMapper.assignServiceOrder(pd);
    }

    /**
     * 接单
     *
     * @param pd 接单参数
     * @return 结果
     */
    @Override
    public int acceptServiceOrder(PageData pd)
    {
        return serviceOrderMapper.acceptServiceOrder(pd);
    }

    /**
     * 完成工单
     *
     * @param pd 完成参数
     * @return 结果
     */
    @Override
    public int completeServiceOrder(PageData pd)
    {
        return serviceOrderMapper.completeServiceOrder(pd);
    }

    /**
     * 评价工单
     *
     * @param pd 评价参数
     * @return 结果
     */
    @Override
    public int evaluateServiceOrder(PageData pd)
    {
        return serviceOrderMapper.evaluateServiceOrder(pd);
    }

    /**
     * 关闭工单
     *
     * @param pd 关闭参数
     * @return 结果
     */
    @Override
    public int closeServiceOrder(PageData pd)
    {
        return serviceOrderMapper.closeServiceOrder(pd);
    }

    /**
     * 获取工单统计信息
     *
     * @param pd 查询参数
     * @return 统计信息
     */
    @Override
    public Map<String, Object> getOrderStatistics(PageData pd)
    {
        return serviceOrderMapper.getOrderStatistics(pd);
    }

    /**
     * 获取工单趋势数据
     *
     * @param pd 查询参数
     * @return 趋势数据
     */
    @Override
    public List<Map<String, Object>> getOrderTrend(PageData pd)
    {
        return serviceOrderMapper.getOrderTrend(pd);
    }

    /**
     * 查询我的工单列表
     *
     * @param pd 查询参数
     * @return 工单列表
     */
    @Override
    public List<PageData> selectMyServiceOrderList(PageData pd)
    {
        return serviceOrderMapper.selectMyServiceOrderList(pd);
    }

    /**
     * 插入工单操作记录
     *
     * @param pd 操作记录
     * @return 结果
     */
    @Override
    public int insertOrderOperateRecord(PageData pd)
    {
        return serviceOrderMapper.insertOrderOperateRecord(pd);
    }

    /**
     * 查询工单操作记录
     *
     * @param orderId 工单ID
     * @return 操作记录列表
     */
    @Override
    public List<PageData> selectOrderOperateRecords(String orderId)
    {
        return serviceOrderMapper.selectOrderOperateRecords(orderId);
    }

    /**
     * 更新工单状态
     *
     * @param pd 状态参数
     * @return 结果
     */
    @Override
    public int updateOrderStatus(PageData pd)
    {
        return serviceOrderMapper.updateOrderStatus(pd);
    }

    /**
     * 查询超时工单
     *
     * @param pd 查询参数
     * @return 超时工单列表
     */
    @Override
    public List<PageData> selectTimeoutOrders(PageData pd)
    {
        return serviceOrderMapper.selectTimeoutOrders(pd);
    }

    /**
     * 批量分配工单
     *
     * @param pd 分配参数
     * @return 结果
     */
    @Override
    public int batchAssignServiceOrders(PageData pd)
    {
        return serviceOrderMapper.batchAssignServiceOrders(pd);
    }
}