<?php
/**
 * TOP API: alibaba.alihealth.synergy.yzw.drugreport.opt.byagent request
 * 
 * @author auto create
 * @since 1.0, 2025.10.22
 */
class AlibabaAlihealthSynergyYzwDrugreportOptByagentRequest
{
	/** 
	 * 授权单位企业id
	 **/
	private $assRefEntId;
	
	/** 
	 * 授权单位的章信息
	 **/
	private $assSealInfo;
	
	/** 
	 * 单据id
	 **/
	private $billId;
	
	/** 
	 * 单据类型
	 **/
	private $billType;
	
	/** 
	 * 单据明细id
	 **/
	private $detailBillId;
	
	/** 
	 * 拒绝原因(当操作类型为拒收(rejectReceive)需要该字段)
	 **/
	private $operNote;
	
	/** 
	 * 操作类型：签收(onlySign),拒收(rejectReceive),签收并盖章(signAndSeal),盖章签收后的报告(sealAfterSign)
	 **/
	private $operType;
	
	/** 
	 * 代理操作企业refEntId(调用企业refEntId)
	 **/
	private $refEntId;
	
	/** 
	 *              onlySelf(仅盖自己的章),onlyAuthorized(仅盖授权单位的章),both(自己和授权单位的章);当操作为签收并盖章(signAndSeal),盖章签收后的报告(sealAfterSign)需要该字段
	 **/
	private $sealMode;
	
	/** 
	 * 代理操作企业(调用企业)的章信息
	 **/
	private $selfSealInfo;
	
	/** 
	 * 用户id
	 **/
	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 setBillId($billId)
	{
		$this->billId = $billId;
		$this->apiParas["bill_id"] = $billId;
	}

	public function getBillId()
	{
		return $this->billId;
	}

	public function setBillType($billType)
	{
		$this->billType = $billType;
		$this->apiParas["bill_type"] = $billType;
	}

	public function getBillType()
	{
		return $this->billType;
	}

	public function setDetailBillId($detailBillId)
	{
		$this->detailBillId = $detailBillId;
		$this->apiParas["detail_bill_id"] = $detailBillId;
	}

	public function getDetailBillId()
	{
		return $this->detailBillId;
	}

	public function setOperNote($operNote)
	{
		$this->operNote = $operNote;
		$this->apiParas["oper_note"] = $operNote;
	}

	public function getOperNote()
	{
		return $this->operNote;
	}

	public function setOperType($operType)
	{
		$this->operType = $operType;
		$this->apiParas["oper_type"] = $operType;
	}

	public function getOperType()
	{
		return $this->operType;
	}

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

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

	public function setSealMode($sealMode)
	{
		$this->sealMode = $sealMode;
		$this->apiParas["seal_mode"] = $sealMode;
	}

	public function getSealMode()
	{
		return $this->sealMode;
	}

	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.opt.byagent";
	}
	
	public function getApiParas()
	{
		return $this->apiParas;
	}
	
	public function check()
	{
		
		RequestCheckUtil::checkNotNull($this->assRefEntId,"assRefEntId");
		RequestCheckUtil::checkNotNull($this->billId,"billId");
		RequestCheckUtil::checkNotNull($this->billType,"billType");
		RequestCheckUtil::checkNotNull($this->detailBillId,"detailBillId");
		RequestCheckUtil::checkNotNull($this->operType,"operType");
		RequestCheckUtil::checkNotNull($this->refEntId,"refEntId");
		RequestCheckUtil::checkNotNull($this->userId,"userId");
	}
	
	public function putOtherTextParam($key, $value) {
		$this->apiParas[$key] = $value;
		$this->$key = $value;
	}
}
