<?php
/**
 * TOP API: alibaba.alihealth.synergy.yzw.drugreport.byfile.save request
 * 
 * @author auto create
 * @since 1.0, 2025.03.17
 */
class AlibabaAlihealthSynergyYzwDrugreportByfileSaveRequest
{
	/** 
	 * 空表示给自己上传报告，报告属于调用企业。填授权企业refEntId,表示调用企业替授权企业上传报告，报告属于授权企业。
	 **/
	private $assRefEntId;
	
	/** 
	 * 授权单位的章信息
	 **/
	private $assSealInfo;
	
	/** 
	 * 批次号
	 **/
	private $batchNo;
	
	/** 
	 * 药品ID
	 **/
	private $drugEntBaseInfoId;
	
	/** 
	 * 文件类型支持:pdf,jpg,jpeg, png
	 **/
	private $fileType;
	
	/** 
	 * 生产日期
	 **/
	private $produceDate;
	
	/** 
	 * 调用企业的refEntId
	 **/
	private $refEntId;
	
	/** 
	 * 报告文件二进制字节数组
	 **/
	private $reportData;
	
	/** 
	 * 报告日期
	 **/
	private $reportDate;
	
	/** 
	 * 报告编号
	 **/
	private $reportNo;
	
	/** 
	 * 代理操作企业(调用企业)的章信息
	 **/
	private $selfSealInfo;
	
	/** 
	 * 三方用户标识
	 **/
	private $userId;
	
	private $apiParas = array();
	
	public function setAssRefEntId($assRefEntId)
	{
		$this->assRefEntId = $assRefEntId;
		$this->apiParas["ass_ref_ent_id"] = $assRefEntId;
	}

	public function getAssRefEntId()
	{
		return $this->assRefEntId;
	}

	public function setAssSealInfo($assSealInfo)
	{
		$this->assSealInfo = $assSealInfo;
		$this->apiParas["ass_seal_info"] = $assSealInfo;
	}

	public function getAssSealInfo()
	{
		return $this->assSealInfo;
	}

	public function setBatchNo($batchNo)
	{
		$this->batchNo = $batchNo;
		$this->apiParas["batch_no"] = $batchNo;
	}

	public function getBatchNo()
	{
		return $this->batchNo;
	}

	public function setDrugEntBaseInfoId($drugEntBaseInfoId)
	{
		$this->drugEntBaseInfoId = $drugEntBaseInfoId;
		$this->apiParas["drug_ent_base_info_id"] = $drugEntBaseInfoId;
	}

	public function getDrugEntBaseInfoId()
	{
		return $this->drugEntBaseInfoId;
	}

	public function setFileType($fileType)
	{
		$this->fileType = $fileType;
		$this->apiParas["file_type"] = $fileType;
	}

	public function getFileType()
	{
		return $this->fileType;
	}

	public function setProduceDate($produceDate)
	{
		$this->produceDate = $produceDate;
		$this->apiParas["produce_date"] = $produceDate;
	}

	public function getProduceDate()
	{
		return $this->produceDate;
	}

	public function setRefEntId($refEntId)
	{
		$this->refEntId = $refEntId;
		$this->apiParas["ref_ent_id"] = $refEntId;
	}

	public function getRefEntId()
	{
		return $this->refEntId;
	}

	public function setReportData($reportData)
	{
		$this->reportData = $reportData;
		$this->apiParas["report_data"] = $reportData;
	}

	public function getReportData()
	{
		return $this->reportData;
	}

	public function setReportDate($reportDate)
	{
		$this->reportDate = $reportDate;
		$this->apiParas["report_date"] = $reportDate;
	}

	public function getReportDate()
	{
		return $this->reportDate;
	}

	public function setReportNo($reportNo)
	{
		$this->reportNo = $reportNo;
		$this->apiParas["report_no"] = $reportNo;
	}

	public function getReportNo()
	{
		return $this->reportNo;
	}

	public function setSelfSealInfo($selfSealInfo)
	{
		$this->selfSealInfo = $selfSealInfo;
		$this->apiParas["self_seal_info"] = $selfSealInfo;
	}

	public function getSelfSealInfo()
	{
		return $this->selfSealInfo;
	}

	public function setUserId($userId)
	{
		$this->userId = $userId;
		$this->apiParas["user_id"] = $userId;
	}

	public function getUserId()
	{
		return $this->userId;
	}

	public function getApiMethodName()
	{
		return "alibaba.alihealth.synergy.yzw.drugreport.byfile.save";
	}
	
	public function getApiParas()
	{
		return $this->apiParas;
	}
	
	public function check()
	{
		
		RequestCheckUtil::checkNotNull($this->batchNo,"batchNo");
		RequestCheckUtil::checkNotNull($this->drugEntBaseInfoId,"drugEntBaseInfoId");
		RequestCheckUtil::checkNotNull($this->fileType,"fileType");
		RequestCheckUtil::checkNotNull($this->refEntId,"refEntId");
		RequestCheckUtil::checkNotNull($this->reportData,"reportData");
		RequestCheckUtil::checkNotNull($this->userId,"userId");
	}
	
	public function putOtherTextParam($key, $value) {
		$this->apiParas[$key] = $value;
		$this->$key = $value;
	}
}
