package com.jeeplus.modules.supply.particulars.mapper;

import com.jeeplus.core.persistence.BaseMapper;
import com.jeeplus.core.persistence.annotation.MyBatisMapper;
import com.jeeplus.modules.supply.judgementBills.entity.SupplyJudgementBills;
import com.jeeplus.modules.supply.materialsProvidedByAForReview.entity.MaterialsProvidedByAForReview;
import com.jeeplus.modules.supply.particulars.entity.SupplyParticulars;
import com.jeeplus.modules.supply.stockOut.entity.SupplyStockOut;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author: 大猫
 * @create: 2022-03-02 10:44
 **/
@MyBatisMapper
public interface SupplyParticularsMapper extends BaseMapper<SupplyParticulars> {

    /**
     * 查询出库单中数据信息
     * @param projectDefinitionList
     * @return
     */
    List<SupplyStockOut> getSupplyStockOutList(@Param("projectDefinitionList") List<String> projectDefinitionList, @Param("submittalsId") String submittalsId);

    /**
     * 查询审定单中数据信息
     * @param projectDefinitionList
     * @return
     */
    List<SupplyJudgementBills> getSupplyJudgementBillsListList(@Param("projectDefinitionList") List<String> projectDefinitionList, @Param("submittalsId") String submittalsId);

    /**
     * 根据物料编码查询出库单单价平均数
     * @param materialNumber 物料编码
     * @return
     */
    String getAvgUtilPriceOnStockOutByMaterialNumber(String materialNumber);
    /**
     * 根据物料编码历史物料所属类型（出库单）
     * @param materialNumber 物料编码
     * @return
     */
    String getMaterialsType(String materialNumber);

    /**
     * 根据送审id查询项目定义号
     * @param submittalsId
     * @return
     */
    List<String> getProjectDefinitionListBySubmittalsId(String submittalsId);

    /**
     * 根据送审id查询甲供材数据信息（根据物料编码和项目定义号分组并统计物料数量和）
     * @param submittalsId
     * @return
     */
    List<SupplyStockOut> getMaterialsProvidedByAForReviewList(String submittalsId);
}
