package com.cf.imes.module.manage.service.plate;

import java.util.*;

import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlateImportExcelVO;
import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlateImportRespVO;
import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlatePageReqVO;
import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlateSaveReqVO;
import com.cf.imes.module.manage.dal.dataobject.plate.PlateDO;
import com.cf.imes.framework.common.pojo.PageResult;

import javax.validation.Valid;

/**
 * 板材信息表 plate_{N} Service 接口
 *
 * @author 晨丰科技
 */
public interface PlateService {

    /**
     * 创建板材信息表 plate_{N}
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createPlate(@Valid PlateSaveReqVO createReqVO);

    /**
     * 更新板材信息表 plate_{N}
     *
     * @param updateReqVO 更新信息
     */
    void updatePlate(@Valid PlateSaveReqVO updateReqVO);

    /**
     * 删除板材信息表 plate_{N}
     *
     * @param id 编号
     */
    void deletePlate(Long id,Long organId);

    /**
     * 获得板材信息表 plate_{N}
     *
     * @param id 编号
     * @return 板材信息表 plate_{N}
     */
    PlateDO getPlate(Long id);

    /**
     * 获得板材信息表 plate_{N}
     *
     * @param id 编号
     * @return 板材信息表 plate_{N}
     */
    PlateDO getPlateGoods(Long id);

    /**
     * 获得板材信息表 plate_{N}分页
     *
     * @param pageReqVO 分页查询
     * @return 板材信息表 plate_{N}分页
     */
    PageResult<PlateDO> getPlatePage(PlatePageReqVO pageReqVO);

    /**
     * 批量导入用户
     *
     * @param importUsers     导入用户列表
     * @param isUpdateSupport 是否支持更新
     * @return 导入结果
     */
    PlateImportRespVO importPlateList(List<PlateImportExcelVO> importUsers, boolean isUpdateSupport , Long organId);

}