package com.cpop.oam.business.service;

import com.cpop.oam.business.bo.TaskDemandUrgentBo;
import com.cpop.oam.business.vo.TaskDemandUrgentVo;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.cpop.oam.business.bo.TaskDemandBo;
import com.cpop.oam.business.bo.TaskDemandPageBo;
import com.cpop.oam.business.entity.TaskDemand;
import com.cpop.oam.business.vo.TaskDemandPageVo;

/**
 * OAM-任务-需求表 服务层。
 *
 * @author DB
 * @since 2023-09-18
 */
public interface TaskDemandService extends IService<TaskDemand> {

    /**
     * 工单模块-需求-需求分页列表
     * @author DB
     * @param bo 查询参数
     * @since 2023-11-30 17:26:24
     */
    Page<TaskDemandPageVo> getTaskDemandPage(TaskDemandPageBo bo);

    /**
     * 工单模块-需求-新增需求
     * @author DB
     * @param bo 请求参数
     * @since 2023-11-30 17:27:24
     */
    void insertTaskDemand(TaskDemandBo bo);

    /**
     * 工单模块-需求-修改需求
     * @author DB
     * @param bo 请求参数
     * @since 2023-11-30 18:26:42
     */
    void updateDemandTask(TaskDemandBo bo);

    /**
     * 工单模块-需求-删除需求
     * @author DB
     * @param demandId 需求id
     * @since 2023-11-30 20:30:54
     */
    void removeDemandTask(String demandId);

    /**
     * 工单模块-需求-需求加急
     * @author DB
     * @since 2023/12/08
     * @param bo 请求参数
     */
    TaskDemandUrgentVo demandUrgent(TaskDemandUrgentBo bo);
}
