package cn.iocoder.yudao.module.smartfactory.service.handlingspecifications;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.smartfactory.controller.admin.handlingspecifications.vo.HandlingSpecificationsImportRespVO;
import cn.iocoder.yudao.module.smartfactory.controller.admin.handlingspecifications.vo.HandlingSpecificationsImportVO;
import cn.iocoder.yudao.module.smartfactory.controller.admin.handlingspecifications.vo.HandlingSpecificationsPageReqVO;
import cn.iocoder.yudao.module.smartfactory.controller.admin.handlingspecifications.vo.HandlingSpecificationsSaveReqVO;
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlingspecifications.HandlingSpecificationsDO;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.validation.Valid;
import java.util.List;

/**
 * 工厂搬运规格 Service 接口
 *
 * @author 艾楷
 */
public interface HandlingSpecificationsService extends IService<HandlingSpecificationsDO> {

    /**
     * 创建工厂搬运规格
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createHandlingSpecifications(@Valid HandlingSpecificationsSaveReqVO createReqVO);

    /**
     * 更新工厂搬运规格
     *
     * @param updateReqVO 更新信息
     */
    void updateHandlingSpecifications(@Valid HandlingSpecificationsSaveReqVO updateReqVO);

    /**
     * 删除工厂搬运规格
     *
     * @param id 编号
     */
    void deleteHandlingSpecifications(Long id);

    /**
     * 获得工厂搬运规格
     *
     * @param id 编号
     * @return 工厂搬运规格
     */
    HandlingSpecificationsDO getHandlingSpecifications(Long id);

    /**
     * 获得工厂搬运规格分页
     *
     * @param pageReqVO 分页查询
     * @return 工厂搬运规格分页
     */
    PageResult<HandlingSpecificationsDO> getHandlingSpecificationsPage(HandlingSpecificationsPageReqVO pageReqVO);

    /**
     * 获取列表
     *
     * @param pageReqVO
     * @return
     */
    List<HandlingSpecificationsDO> getHandlingSpecificationsList(@Valid HandlingSpecificationsPageReqVO pageReqVO);

    /**
     * 导入列表
     * @param list
     * @param updateSupport
     * @return
     */
    HandlingSpecificationsImportRespVO importList(List<HandlingSpecificationsImportVO> list, Boolean updateSupport);
}
