package com.xisc.pm.app.service;

import com.xisc.pm.domain.entity.PmCmdSlab;
import com.xisc.pm.domain.entity.PmPdContSum;
import com.xisc.pm.domain.entity.PmPdPlate;
import com.xisc.pm.domain.entity.PmPdSlab;
import com.xisc.pm.domain.entity.PmPdSlabInfo;
import com.xisc.pm.domain.entity.PmSmallPltPos;
import io.choerodon.core.domain.Page;
import io.choerodon.mybatis.pagehelper.domain.PageRequest;

import java.util.List;

/**
 * 命令板坯表(PmCmdSlab)应用服务
 *
 * @author 纪文桃 wentao.ji01@hand-china.com
 * @since 2024-08-01 10:24:07
 */
public interface PmCmdSlabService {

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

    /**
     * 保存数据
     *
     * @param pmCmdSlabs 数据
     */
    void saveData(List<PmCmdSlab> pmCmdSlabs);
    
    /**
     * 基于板坯信息表，与组板板块表生产命令板坯
     * @param pmPdSlabInfo
     * @param pmPdSlabs
     */
    void createPmCmdSlab(PmPdSlabInfo pmPdSlabInfo, List<PmPdSlab> pmPdSlabs, String mscLineNo);
    
    /**
     * 通过材料列表移除命令表数据
     * @param tenantId
     * @param plateNo
     */
    void removePmCmdByPlateNoList(Long tenantId, String plateNo) ;

    /**
     * 通过板坯信息生成
     * @param pmPdPlate
     * @param pmPdContSums
     * @param pmSmallPltPoss
     */
    void createPmCmdByPlate(PmPdPlate pmPdPlate, List<PmPdContSum> pmPdContSums,
            List<PmSmallPltPos> pmSmallPltPoss , String mscLineNo);
}

