package com.xisc.pm.app.service;

import com.xisc.pm.domain.entity.PmProdLineSection;
import com.xisc.pm.domain.entity.PmProdLineSectionSpec;
import io.choerodon.core.domain.Page;
import io.choerodon.mybatis.pagehelper.domain.PageRequest;

import java.util.List;

/**
 * 产线断面关系表(PmProdLineSection)应用服务
 *
 * @author 纪文桃 wentao.ji01@hand-china.com
 * @since 2024-10-10 09:19:39
 */
public interface PmProdLineSectionService {

    /**
     * 查询数据
     *
     * @param pageRequest       分页参数
     * @param pmProdLineSection 查询条件
     * @return 返回值
     */
    Page<PmProdLineSection> selectList(PageRequest pageRequest, PmProdLineSection pmProdLineSection);

    /**
     * 保存产线规格数据
     *
     * @param tenantId          租户
     * @param pmProdLineSection 数据
     */
    void saveData(Long tenantId, PmProdLineSection pmProdLineSection);

    /**
     * 保存断面规格信息表
     *
     * @param tenantId              租户
     * @param pmProdLineSectionSpec 数据
     */
    void saveLineData(Long tenantId, PmProdLineSectionSpec pmProdLineSectionSpec);

    /**
     * 复制数据
     *
     * @param tenantId              租户
     * @param pmProdLineSection 数据
     */
    void cpoyData(Long tenantId, PmProdLineSection pmProdLineSection);

    /**
     * 查询产线断面规格表明细
     *
     * @param pageRequest       分页参数
     * @param prodLineSectionId 产线断面关系ID
     * @param tenantId          租户
     * @return
     */
    Page<PmProdLineSectionSpec> selectLineList(PageRequest pageRequest, Long prodLineSectionId, Long tenantId);

    /**
     * 删除数据
     *
     * @param pmProdLineSectionList 数据
     */
    void deleteForUi(List<PmProdLineSection> pmProdLineSectionList);
}

