package com.ruoyi.redBook.mapper;

import com.ruoyi.customer.domain.Customer;
import com.ruoyi.material.domain.CMaterial;
import com.ruoyi.material.domain.CMaterialCost;
import com.ruoyi.material.domain.temp;
import com.ruoyi.redBook.domain.OAQuot;
import com.ruoyi.redBook.domain.OAQuotProduct;
import com.ruoyi.redBook.domain.Product;
import com.ruoyi.redBook.domain.RbVersionDateResult;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 红本管理Mapper接口
 *
 * @author ruoyi
 * @date 2024-02-28
 */
public interface OARedBookMapper
{
    /**
     * 获取目录
     * @param product
     * @return
     */
    List<Product> productModelList(Product product);

    /**
     * 获取备注信息
     * @param product
     * @return
     */
    List<Product> productRemarkList(Product product);

    /**
     * 判断是否存在衍生型号
     * @param product
     * @return
     */
    List<Product> productExtList(Product product);

    /**
     * 获取衍生型号
     * @param product
     * @return
     */
    List<Product> productYsxhList(Product product);

    /**
     * 判断是否存在截面
     * @param product
     * @return
     */
    List<Product> judgesection(Product product);

    /**
     * 获取截面
     * @param product
     * @return
     */
    List<Product> productJmList(Product product);

    /**
     * 查询数据
     * @param product
     * @return
     */
    List<Product> searchData(Product product);

    /**
     * 点击查询按钮查询数据
     * @param name_0
     * @param model
     * @return
     */
    List<Product> handleSearchData(@Param("name_0")String name_0,@Param("model")String model);

    /**
     * 保存报价单
     * @param quot
     */
    void insertOAQuot(OAQuot quot);

    /**
     * 修改报价单
     * @param quot
     */
    void updateOAQuot(OAQuot quot);

    /**
     * 新增报价单产品信息
     * @param list
     */
    void batchOAQuotProduct(List<OAQuotProduct> list);

    /**
     * 获取调价日期
     * @return
     */
    List<RbVersionDateResult> versionList();

    /**
     * 根据选择的调价日期 更新已选择结果数据
     * @param params
     * @return
     */
    List<OAQuotProduct> queryRedBPriceByParams(@Param("params") List<OAQuotProduct> params);

    /**
     * 根据选择的调价日期 更新已选择结果数据
     * @param name_0
     * @param uid_0
     * @return
     */
    String getFixDatePrice(@Param("name_0") String name_0,@Param("spec") String spec,@Param("voltage") String voltage, @Param("uid_0") String uid_0);

    /**
     * 导入明细批量获取红本价格
     * @param name_0
     * @param spec
     * @param rbUid
     * @return
     */
    OAQuotProduct getFixDatePrice2(@Param("name_1") String name_1, @Param("spec") String spec, @Param("voltage") String voltage, @Param("uid_0") String rbUid);

    /**
     * 查询已生成的报价单列表
     * @param oaQuot
     * @return
     */
    List<Customer> listQuots(OAQuot oaQuot);

    /**
     * 获取报价详细信息
     * @param quotId
     * @return
     */
    OAQuot selectQuotByQuotId(String quotId);

    /**
     * 删除报价单
     * @param quotId
     * @return
     */
    int deleteQuotsByQuotId(String quotId);
    void deleteQuotProductsByCusId(String quotId);

    /**
     * 获取本地记录的调价版本
     * @return
     */
    String rb_price_version();

    /**
     * 获取单据编号
     * @param type
     * @return
     */
    String getCode(String type);
}