package com.xisc.pm.infra.mapper;

import io.choerodon.mybatis.common.BaseMapper;
import com.xisc.pm.api.dto.model.*;
import com.xisc.pm.domain.entity.*;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface SubMapper {

    //    获取板坯信息
    List<SlabInfoDO> getSlabInfo(SubParams subParams);

    //    获取订单信息
    List<PmProCont> getOrderInfo();

    //    生产合同产品属性表
    List<PmProContProdTtr> getPmProCountProdAttr();

    //    合同产线工艺参数表
    List<PmContMscTech> getPmContMscTech();

    //    组板设计规则集
    List<PmPdRuleSet> getPmPdRuleSet();

    //    组板设计规则集
    List<PmPdRuleItem> getPmPdRuleItem();

    //    最小轧制厚度公差范围基准表
    List<PmMinThickTolBt> getPmMinThickTolBt();

    //    钢板轧制规格对应收得率基准表
    List<PmPlateSpecYieldBt> getPmPlateSpecYieldBt();

    //    强度级别对照基准表
    List<PmStCodeBt> getPmStCodeBt();

    //    粗切位置决定基准表
    List<PmCutPlaceBt> getPmCutPlaceBt();

    //    组板常数基准表
    List<PmPdConstBt> getPmPdConstBt();

    //    钢板切缝切头尾范围基准表
    List<PmPlateCutLenBt> getPmPlateCutLenBt();

    //    组板临时收得率基准表
    List<PmPdTmpYieldBt> getPmPdTmpYieldBt();

    //    钢板切边量基准表
    List<PmPlateTrimBt> getPmPlateTrimBt();

    //    余材组板内部钢种以优充次对照表
    List<PmSlabReplBt> getPmSlabReplBt();

    //    热处理炉基准规格表
    List<PmHeatTreatFurnaceBt> getPmHeatTreatFurnaceBt();

    //    特殊钢种余量增加表
    List<PmSpeStAddvBt> getPmSpeStAddvBt();

    //  合同处理成分结果数据
    List<QdToLineupResultCheDO> getQdToLineupResultChe();

    //  合同处理坯料性能要求
    List<QdToLineupResultSlabphyDO> getQdToLineupResultSlabphy();

    //  炉次工序成分代表实绩表
    List<QeTqHeatcheStandResultDO> getQeTqHeatcheStandResult();

    //  炉次待委托表
    List<QeTqPonoWaitTestDO> getQeTqPonoWaitTest();

    //  坯料低倍委托实绩表
    List<QeTqSlabMacroResultDO> getQeTqSlabMacroResult();

    //  连铸板坯生产规格基准表
    List<PmSlabSpecBt> getPmSlabSpecBt();

    void batchInsert(@Param("list") List<PmSubOrd> pmSubOrdDOList);

    void batchInsertPmSubHisDO(@Param("list") List<PmSubHis> pmSubHisDOList);

    void InsertPmSubHisDO(PmSubHis p);

    void InsertPmSubOrdDO(PmSubOrd p);

    List<PmIrsubableCont> getPmIrsubableCont();

    List<PmIrsubableSlab> getPmIrsubableSlab();

    List<PmAutoSubSetting> getPmAutoSubSetting();

    List<PmRetainSt> getPmRetainSt();

    List<PmRetainStack> getPmRetainStack();

    List<PmPdSlabInfo> getPmPdSlabInfo(SubParams subParams);

    List<QdToPoOrder> getQdToPoOrder();

//    BigDecimal getMaxPmPdSlabId();
//
//    void batchInsertPmPdSlab(@Param("list") List<PmPdSlab> pmPdSlabDOList);
//
//    void batchInsertPmCmdSlab(@Param("list") List<PmCmdSlab> pmCmdSlabDOList);
//
//    BigDecimal getMaxPmCmdSlabId();
//
//    void insertPmPdSlab(PmPdSlab p);
//
//    void insertPmCmdSlab(PmCmdSlab pmCmdSlabDO);
//
//    BigDecimal getMaxPmCmdLargePltId();
//
//    void insertPmCmdLargePlt(PmCmdLargePlt pmCmdLargePltDO);
//
//    BigDecimal getMaxPmPdPlateCutId();
//
//    void insertPmPdPlateCut(PmPdPlateCut pmPdPlateCutDO);
//
//    BigDecimal getMaxPmPdBlockPosId();
//
//    void insertPmPdBlockPos(PmPdBlockPos pmPdBlockPosDO);
//
//    BigDecimal getMaxPmPdContSumId();
//
//    void insertPmPdContSum(PmPdContSum pmPdContSumDO);
//
//    BigDecimal getMaxPmSmallPltPosId();
//
//    void insertPmSmallPltPos(PmSmallPltPos pmSmallPltPosDO);
//
//    BigDecimal getMaxPmCmdSmallPltId();
//
//    void insertPmCmdSmallPlt(PmCmdSmallPlt pmCmdSmallPltDO);
//
//    BigDecimal getMaxPmCmdContId();
//
//    void insertPmCmdCont(PmCmdCont pmCmdContDO);

    String GetMaxSeq(String pono);

    List<PmThickAddvBt> getPmThickAddvBt();
}
