package com.gx.obe.server.management.price.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gx.obe.server.management.price.entity.BidPriceRoundStatus;
import com.gx.obe.server.management.price.entity.ReBidPriceRound;

import java.util.List;
import java.util.Map;

/**
 * @author mazc
 * @Description:
 */
public interface BidPriceRoundStatusService extends IService<BidPriceRoundStatus> {

    /**
     * @param ObeBidPriceRoundStatusList
     * @Description: 批量更新
     * @author mazc
     */
    Integer updateByBatch(List<BidPriceRoundStatus> ObeBidPriceRoundStatusList);

    /**
     * @param ObeBidPriceRoundStatusList
     * @Description: 批量插入
     * @author mazc
     */
    Integer insertByBatch(List<BidPriceRoundStatus> ObeBidPriceRoundStatusList);

    /**
     * @param BidPriceRoundStatus
     * @param attributes
     * @Description: 指定字段修改
     * @author chenxw
     */
    boolean updateAssignProperty(BidPriceRoundStatus BidPriceRoundStatus, String[] attributes);

    /**
     * @param ObeBidPriceRoundStatusList
     * @param attributes
     * @Description: 批量指定字段修改
     * @author chenxw
     */
    Integer batchUpdateProperty(List<BidPriceRoundStatus> ObeBidPriceRoundStatusList, String[] attributes);

    /**
     * @param ObeBidPriceRoundStatusList
     * @param attributes
     * @return
     * @Description: 批量添加或跟新
     * @author chenxw
     */
    Integer batchSaveOrUpdate(List<BidPriceRoundStatus> ObeBidPriceRoundStatusList, String[] attributes);

    boolean isCompletePrice(String strRoundId);


    int getNotCompletePriceNumber(String strRoundId);


    int getCompletePriceNumber(String strRoundId);

    boolean updateCompletePriceStatusBySupplierId(String strRoundId, String supplier, String status);

    boolean updateCompletePriceStatus(String roundId, String status);

    boolean isCompletePriceBySupplier(String strRoundId, String supplier);

    Map<String, String> getSupplierBidPriceRoundComplateStatus(String strRoundId);

    Map<String, String> getBidPriceRoundComplateStatus(String tenderId);

    BidPriceRoundStatus getBidPriceRoundStatus(String priceRoundId, String supplierId);

    boolean isCompletePriceByRoundId(String strRoundId);

    void updateRoundStatus(ReBidPriceRound reBidPriceRound);
}