gaoluyang
7 天以前 87d725aa16dcdcdd19f28cd3f3f162e950fd1d2f
yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/service/ticket/AfterSaleTicketService.java
@@ -1,10 +1,16 @@
package cn.iocoder.yudao.module.aftersales.service.ticket;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.aftersales.controller.admin.ticket.vo.ticket.AfterSaleTicketEscalateReqVO;
import cn.iocoder.yudao.module.aftersales.controller.admin.ticket.vo.ticket.AfterSaleTicketHandleReqVO;
import cn.iocoder.yudao.module.aftersales.controller.admin.ticket.vo.ticket.AfterSaleTicketPageReqVO;
import cn.iocoder.yudao.module.aftersales.controller.admin.ticket.vo.ticket.AfterSaleTicketSaveReqVO;
import cn.iocoder.yudao.module.aftersales.controller.admin.ticket.vo.ticket.AfterSaleTicketSignInReqVO;
import cn.iocoder.yudao.module.aftersales.controller.admin.ticket.vo.ticket.AfterSaleTicketStatisticsRespVO;
import cn.iocoder.yudao.module.aftersales.controller.admin.ticket.vo.ticket.AfterSaleTicketTransferReqVO;
import cn.iocoder.yudao.module.aftersales.dal.dataobject.ticket.AfterSaleTicketDO;
import cn.iocoder.yudao.module.aftersales.dal.dataobject.ticket.AfterSaleTicketItemDO;
import cn.iocoder.yudao.module.aftersales.dal.dataobject.ticket.AfterSaleTicketLogDO;
import jakarta.validation.Valid;
import java.util.Collection;
@@ -76,8 +82,9 @@
     *
     * @param id              工单编号
     * @param handlerUserId   处理人用户编号
     * @param operatorUserId 操作人用户编号
     */
    void assignTicket(Long id, Long handlerUserId);
    void assignTicket(Long id, Long handlerUserId, Long operatorUserId);
    /**
     * 问题判定(确定问题类型、分类、严重程度)
@@ -86,28 +93,81 @@
     * @param issueType     问题类型
     * @param issueCategory 问题分类
     * @param severityLevel 严重程度
     * @param operatorUserId 操作人用户编号
     */
    void classifyTicket(Long id, Integer issueType, String issueCategory, Integer severityLevel);
    void classifyTicket(Long id, Integer issueType, String issueCategory, Integer severityLevel, Long operatorUserId);
    /**
     * 完结工单
     *
     * @param id 工单编号
     * @param operatorUserId 操作人用户编号
     */
    void resolveTicket(Long id);
    void resolveTicket(Long id, Long operatorUserId);
    /**
     * 关闭工单
     *
     * @param id 工单编号
     * @param operatorUserId 操作人用户编号
     */
    void closeTicket(Long id);
    void closeTicket(Long id, Long operatorUserId);
    /**
     * 取消工单
     *
     * @param id 工单编号
     * @param operatorUserId 操作人用户编号
     */
    void cancelTicket(Long id);
    void cancelTicket(Long id, Long operatorUserId);
    /**
     * 现场签到(记录位置信息,保障服务真实性)
     *
     * @param reqVO  签到信息
     * @param userId 操作人用户编号
     */
    void signInTicket(@Valid AfterSaleTicketSignInReqVO reqVO, Long userId);
    /**
     * 转派工单
     *
     * @param reqVO  转派信息
     * @param userId 操作人用户编号
     */
    void transferTicket(@Valid AfterSaleTicketTransferReqVO reqVO, Long userId);
    /**
     * 升级工单
     *
     * @param reqVO  升级信息
     * @param userId 操作人用户编号
     */
    void escalateTicket(@Valid AfterSaleTicketEscalateReqVO reqVO, Long userId);
    /**
     * 新增处理记录
     *
     * @param reqVO  处理记录
     * @param userId 操作人用户编号
     */
    void addHandleRecord(@Valid AfterSaleTicketHandleReqVO reqVO, Long userId);
    /**
     * 获得工单操作/进度记录列表
     *
     * @param ticketId 工单编号
     * @return 记录列表
     */
    List<AfterSaleTicketLogDO> getTicketLogList(Long ticketId);
    /**
     * 获得工单助手统计
     *
     * @param sceneType 场景类型
     * @param userId    用户编号
     * @return 统计结果
     */
    AfterSaleTicketStatisticsRespVO getTicketStatistics(Integer sceneType, Long userId);
}