package com.yuchen.saas.park.service.service.work;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yuchen.saas.park.api.dto.work.*;
import com.yuchen.saas.park.api.entity.work.SaasWorkOrder;
import com.yuchen.saas.park.api.vo.work.*;
import org.nest.springwrap.core.mp.support.NestPage;

import javax.servlet.http.HttpServletResponse;

/**
 * <p>
 * 工单主表 服务类
 * </p>
 *
 * @author caiwq
 * @since 2024-04-09
 */
public interface ISaasWorkOrderService extends IService<SaasWorkOrder> {
    SaasWorkOrder add(SaasWorkOrderDto workOrderDto);
    Boolean assign(SaasWorkOrderDto workOrderDto);
    Boolean assignV2(SaasWorkOrderAssignDto workOrderAssignDto);
    Boolean startHandle(Long id);
    Boolean submitHandle(SaasWorkOrderSubmitHandleDto submitHandleDto);
    Boolean receipt(SaasWorkOrderReceiptDto workOrderReceiptDto);
    Boolean confirm(SaasWorkOrderConfirmDto workOrderConfirmDto);
    Boolean close(SaasWorkOrderCloseDto workOrderCloseDto);
    SaasWorkOrderVo getDetail(Long id);
    SaasWorkOrderVo getDetailByLinkNo(Long linkNo);
    SaasWorkOrderStatisticsVo statisticsAuditCount(Integer workOrderCategory, Long dispatchUserId);
    NestPage<SaasWorkOrderMatterRepairListVo> getMatterRepairList(SaasWorkOrderMatterRepairQueryDto queryDto);
    void exportMatterRepair(SaasWorkOrderMatterRepairQueryDto queryDto, HttpServletResponse response);
    NestPage<SaasWorkOrderDeviceRepairListVo> getDeviceRepairList(SaasWorkOrderDeviceRepairQueryDto queryDto);
    void exportDeviceRepair(SaasWorkOrderDeviceRepairQueryDto queryDto, HttpServletResponse response);
    NestPage<SaasWorkOrderAlarmOperationListVo> getAlarmOperationList(SaasWorkOrderAlarmOperationQueryDto queryDto);
    void exportAlarmOperation(SaasWorkOrderAlarmOperationQueryDto queryDto, HttpServletResponse response);
}
