package com.gx.obe.server.management.project.dao;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gx.obe.server.management.project.entity.ProjectRule;

 /**  
 * 
 * @author 
 * @Title: ProjectRule
 * @Package com.gx.obe.server.management.user.entity  
 * @Description:   ObeProjectRuleMapper 接口
 * @author: XiaoMa Pro - myzhichao@163.com
 * @date:   2019-04-30   
 * @version V1.0 
 * @Copyright: 2019 www.msypro.com Inc. All rights reserved. 
 *  
 */
@Mapper
public interface ProjectRuleMapper extends BaseMapper<ProjectRule> {
	
	/**
	 * @Description: 批量更新
	 * @author mazc
	 * @param ObeProjectRuleList 
	 */
	Integer updateBatchList (@Param("ObeProjectRuleList")List<ProjectRule> ObeProjectRuleList);
	
	/**
	 * @Description: 批量插入
	 * @author mazc
	 * @param ObeProjectRuleList 
	 */
	Integer insertByBatch (@Param("ObeProjectRuleList")List<ProjectRule> ObeProjectRuleList);

	 /**
	  * @Description: 指定字段修改
	  * @author chenxw
	  * @param ObeProjectRule
	  * @param attributes
	  */
	 Integer updateAssignProperty(@Param("ObeProjectRule")ProjectRule ObeProjectRule, @Param("attributes")String[] attributes);

	 /**
	  * @Description: 批量指定字段修改
	  * @author chenxw
	  * @param ObeProjectRuleList
	  * @param attributes
	  */
	 Integer batchUpdateProperty(@Param("ObeProjectRuleList")List<ProjectRule> ObeProjectRuleList, @Param("attributes")String[] attributes);
	 
	 
	 
	 
	 Integer updateAssignPropertyByProjectId(@Param("projectId")String projectId, @Param("ObeProjectRule")ProjectRule ObeProjectRule, @Param("attributes")String[] attributes);

	 Date isAnonymous(@Param("tenderId")String tenderId);
	 
	 /**
	 * @Description:获得指标阶段的开标时间
	 * @author mazc
	 * @param projectId
	 * @param bidopeningStage
	 * @return 
	 */
	Date getBidOpeningTime(@Param("tenderId")String tenderId, @Param("bidopeningStage")String bidopeningStage);
	
	/**
	 * @Description: 获得项目的开标时间(所有标段的时间列表)
	 * @author mazc
	 * @param projectId
	 * @param bidopeningStage
	 * @return 
	 */
	List<Date> getProjectBidOpeningTime(@Param("projectId")String projectId, @Param("bidopeningStage")String bidopeningStage);
	
	
	/**
	 * @Description: 更新evalMethodType、evalMethodName数据
	 * @author mazc
	 * @param evalMethod
	 * @param evalMethodName
	 * @param tenderId
	 * @return 
	 */
	Integer updateEvalMethodTypeAndEvalMethodName(@Param("evalMethod")String evalMethod , @Param("evalMethodName")String evalMethodName,@Param("tenderId") String tenderId); 
	
	/**
	 * @Description: 
	 * @author mazc
	 * @param tenderId
	 * @param unit
	 * @param unitName
	 * @return 
	 */
	Integer canMofifyPriceUnitFormSupplierBidPrice(@Param("tenderId")String tenderId, @Param("currencyCode")String currencyCode);
	/**
	 * @Description: 
	 * @author mazc
	 * @param tenderId
	 * @param unit
	 * @param unitName
	 * @return 
	 */
	Integer updatePriceUnitFromSupplierBidPrice(@Param("tenderId")String tenderId,@Param("priceUnit") String priceUnit);
	
	
	/**
	 * @Description: 根据项目id 查询角色
	 * @author mazc
	 * @param tenderId
	 * @return 
	 */
	ProjectRule getProjectRuleByTenderId(@Param("tenderId")String tenderId);
	
	/**
	 * @Description: 修改评标办法
	 * @author mazc
	 * @param tenderId
	 * @return 
	 */
	Integer updateEvalMethod(@Param("tenderId")String tenderId,@Param("evalMethod") String evalMethod ,@Param("evalMethodName") String evalMethodName);
}