package com.xisc.pm.app.service;

import com.xisc.pm.api.dto.QdToPoOrderAndRELDTO;
import com.xisc.pm.api.dto.QdToPoOrderAndRELReqDTO;
import com.xisc.pm.api.dto.QdToPoOrderDTO;
import com.xisc.pm.domain.entity.PmCompositeOrderRel;
import io.choerodon.core.domain.Page;
import io.choerodon.mybatis.pagehelper.domain.PageRequest;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 复合板成品合同与基材合同对应关系表(PmCompositeOrderRel)应用服务
 *
 * @author 纪文桃 wentao.ji01@hand-china.com
 * @since 2024-09-25 09:20:38
 */
public interface PmCompositeOrderRelService {

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

    /**
     * 查询
     *
     * @param productOrderNo 成品合同号
     * @param tenantId       租户
     * @return
     */
    List<QdToPoOrderDTO> listQdOrder(String productOrderNo, Long tenantId);

    /**
     * 查询可选基材合同信息和已选基材合同信息
     *
     * @param stNo           内部钢种
     * @param productOrderNo 合同号
     * @param tenantId       租户
     * @return
     */
    QdToPoOrderAndRELDTO listOrderForUi(String stNo, String productOrderNo, Long tenantId);

    /**
     * 保存
     *
     * @param tenantId 租户
     * @param dto      入参
     * @param request
     */
    void save(Long tenantId, QdToPoOrderAndRELReqDTO dto, HttpServletRequest request);

    /**
     * 删除
     *
     * @param tenantId 租户
     * @param dto      入参
     */
    void delete(Long tenantId, QdToPoOrderAndRELReqDTO dto);
}

