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;
|
import java.util.List;
|
|
/**
|
* 售后工单 Service 接口
|
*/
|
public interface AfterSaleTicketService {
|
|
/**
|
* 创建工单
|
*
|
* @param createReqVO 创建信息
|
* @param userId 用户编号
|
* @return 编号
|
*/
|
Long createTicket(@Valid AfterSaleTicketSaveReqVO createReqVO, Long userId);
|
|
/**
|
* 更新工单
|
*
|
* @param updateReqVO 更新信息
|
*/
|
void updateTicket(@Valid AfterSaleTicketSaveReqVO updateReqVO);
|
|
/**
|
* 删除工单
|
*
|
* @param id 编号
|
*/
|
void deleteTicket(Long id);
|
|
/**
|
* 获得工单
|
*
|
* @param id 编号
|
* @return 工单
|
*/
|
AfterSaleTicketDO getTicket(Long id);
|
|
/**
|
* 获得工单列表
|
*
|
* @param ids 编号列表
|
* @return 工单列表
|
*/
|
List<AfterSaleTicketDO> getTicketList(Collection<Long> ids);
|
|
/**
|
* 获得工单分页
|
*
|
* @param pageReqVO 分页查询
|
* @param userId 用户编号
|
* @return 工单分页
|
*/
|
PageResult<AfterSaleTicketDO> getTicketPage(AfterSaleTicketPageReqVO pageReqVO, Long userId);
|
|
/**
|
* 获得工单明细行列表
|
*
|
* @param ticketId 工单编号
|
* @return 明细行列表
|
*/
|
List<AfterSaleTicketItemDO> getTicketItemListByTicketId(Long ticketId);
|
|
/**
|
* 分配处理人
|
*
|
* @param id 工单编号
|
* @param handlerUserId 处理人用户编号
|
* @param operatorUserId 操作人用户编号
|
*/
|
void assignTicket(Long id, Long handlerUserId, Long operatorUserId);
|
|
/**
|
* 问题判定(确定问题类型、分类、严重程度)
|
*
|
* @param id 工单编号
|
* @param issueType 问题类型
|
* @param issueCategory 问题分类
|
* @param severityLevel 严重程度
|
* @param operatorUserId 操作人用户编号
|
*/
|
void classifyTicket(Long id, Integer issueType, String issueCategory, Integer severityLevel, Long operatorUserId);
|
|
/**
|
* 完结工单
|
*
|
* @param id 工单编号
|
* @param operatorUserId 操作人用户编号
|
*/
|
void resolveTicket(Long id, Long operatorUserId);
|
|
/**
|
* 关闭工单
|
*
|
* @param id 工单编号
|
* @param operatorUserId 操作人用户编号
|
*/
|
void closeTicket(Long id, Long operatorUserId);
|
|
/**
|
* 取消工单
|
*
|
* @param id 工单编号
|
* @param operatorUserId 操作人用户编号
|
*/
|
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);
|
|
}
|