package com.cf.imes.module.executor.service.orderParts;

import java.util.*;
import javax.validation.*;
import com.cf.imes.module.executor.controller.admin.orderParts.vo.*;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateTermsPageReqVO;
import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.pojo.PageParam;

/**
 * 生产单配件表 order_parts_{N} Service 接口
 *
 * @author 晨丰科技
 */
public interface OrderPartsService {

    /**
     * 创建生产单配件表 order_parts_{N}
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createOrderParts(@Valid OrderPartsSaveReqVO createReqVO);

    /**
     * 更新生产单配件表 order_parts_{N}
     *
     * @param updateReqVO 更新信息
     */
    void updateOrderParts(@Valid OrderPartsSaveReqVO updateReqVO);

    /**
     * 删除生产单配件表 order_parts_{N}
     *
     * @param id 编号
     */
    void deleteOrderParts(Long id);

    /**
     * 获得生产单配件表 order_parts_{N}
     *
     * @param id 编号
     * @return 生产单配件表 order_parts_{N}
     */
    OrderPartsDO getOrderParts(Long id);

    /**
     * 获得生产单配件表 order_parts_{N}分页
     *
     * @param pageReqVO 分页查询
     * @return 生产单配件表 order_parts_{N}分页
     */
    PageResult<OrderPartsDO> getOrderPartsPage(OrderPartsPageReqVO pageReqVO);

    /**
     * 批量导入配件
     *
     * @param importOrderParts     导入生产单配件列表
     * @param orderId 生产单号
     * @return 导入结果
     */
    OrderPartsImportRespVO importOrderPartsList(List<OrderPartsSaveReqVO> importOrderParts, Long orderId);

    /**
     * @param pageReqVO:
     * @return PageResult<PlateDO>
     */
    PageResult<OrderPartsRespVO> getPartsPageByTerms(PlateTermsPageReqVO pageReqVO);

}