<?php
/**
 * TOP API: alibaba.alihealth.drug.msc.uploadcircubill request
 * 
 * @author auto create
 * @since 1.0, 2025.10.27
 */
class AlibabaAlihealthDrugMscUploadcircubillRequest
{
	/** 
	 * 单据委托企业entId
	 **/
	private $assEntId;
	
	/** 
	 * 单据委托企业refEntId
	 **/
	private $assRefEntId;
	
	/** 
	 * 单据编号（唯一）
	 **/
	private $billCode;
	
	/** 
	 * 单据时间（一般为药品入出库时间）
	 **/
	private $billTime;
	
	/** 
	 * 单据类型【102代表采购入库,201代表销售出库，其它单据类型详见文档】
	 **/
	private $billType;
	
	/** 
	 * 请求端类型【暂定都写2】
	 **/
	private $clientType;
	
	/** 
	 * 直调企业【注意：该入参是ent_id,并不是ref_ent_id】
	 **/
	private $destUserId;
	
	/** 
	 * 药品配送企业entId【出库单填写】
	 **/
	private $disEntId;
	
	/** 
	 * 药品配送企业refentid【出库单填写，与dis_ent_id入参选其一添加】
	 **/
	private $disRefEntId;
	
	/** 
	 * 【可不填】药品列表Json："codeCount":         药品数量 "commDrugId":     国家药品唯一标识 "exprieDate":         生产日期 "physicInfo":          药品信息 "pkgSpec":           包状规格 "prepnCount":       制剂数量 "produceBatchNo":生产批次 "produceDate":      生产日期
	 **/
	private $drugListJson;
	
	/** 
	 * 单据文件体【bas64字符串】，看对接文档中的代码示例，示例中有相应说明。
	 **/
	private $fileContent;
	
	/** 
	 * 发货地址
	 **/
	private $fromAddress;
	
	/** 
	 * 发货单编号
	 **/
	private $fromBillCode;
	
	/** 
	 * 发货人(特药出单据必填)
	 **/
	private $fromPerson;
	
	/** 
	 * 发货企业【注意：该入参是ent_id,并不是ref_ent_id】
	 **/
	private $fromUserId;
	
	/** 
	 * 忽略校验项，1: 代表忽略码重复上传校验   0：代表需要进行码重复上传校验
	 **/
	private $ignoreCheck;
	
	/** 
	 * 码解析策略,1代表整单解析成功(任一码解析失败，上传时整单返回错误),传其他值或者不传代表部分解析成功(跳过无法解析的码，其余正常处理并上传)
	 **/
	private $ignorePartSuccessFlag;
	
	/** 
	 * 操作人标识（写appkey编号）
	 **/
	private $operIcCode;
	
	/** 
	 * 单据提交者姓名
	 **/
	private $operIcName;
	
	/** 
	 * 订货单编号
	 **/
	private $orderCode;
	
	/** 
	 * 应收货总数量
	 **/
	private $quReceivable;
	
	/** 
	 * 上传企业（单据的所有者，上传人）【注意：该入参是ref_ent_id，不是ent_id】,可通过“根据企业名称查询企业唯一标识”接口获取
	 **/
	private $refUserId;
	
	/** 
	 * 收货地址
	 **/
	private $toAddress;
	
	/** 
	 * 收货人(特药入单据必填)
	 **/
	private $toPerson;
	
	/** 
	 * 收货企业【注意：该入参是ent_id,并不是ref_ent_id】
	 **/
	private $toUserId;
	
	/** 
	 * 单据名称
	 **/
	private $uploadFileName;
	
	/** 
	 * 是否验证，0：未通过验证，1：已验证
	 **/
	private $xtCheckCode;
	
	/** 
	 * 未验证通过原因描述【验证未通过时填写】
	 **/
	private $xtCheckCodeDesc;
	
	/** 
	 * 未验证通过原因【验证未通过时填写】
	 **/
	private $xtIsCheck;
	
	private $apiParas = array();
	
	public function setAssEntId($assEntId)
	{
		$this->assEntId = $assEntId;
		$this->apiParas["ass_ent_id"] = $assEntId;
	}

	public function getAssEntId()
	{
		return $this->assEntId;
	}

	public function setAssRefEntId($assRefEntId)
	{
		$this->assRefEntId = $assRefEntId;
		$this->apiParas["ass_ref_ent_id"] = $assRefEntId;
	}

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

	public function setBillCode($billCode)
	{
		$this->billCode = $billCode;
		$this->apiParas["bill_code"] = $billCode;
	}

	public function getBillCode()
	{
		return $this->billCode;
	}

	public function setBillTime($billTime)
	{
		$this->billTime = $billTime;
		$this->apiParas["bill_time"] = $billTime;
	}

	public function getBillTime()
	{
		return $this->billTime;
	}

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

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

	public function setClientType($clientType)
	{
		$this->clientType = $clientType;
		$this->apiParas["client_type"] = $clientType;
	}

	public function getClientType()
	{
		return $this->clientType;
	}

	public function setDestUserId($destUserId)
	{
		$this->destUserId = $destUserId;
		$this->apiParas["dest_user_id"] = $destUserId;
	}

	public function getDestUserId()
	{
		return $this->destUserId;
	}

	public function setDisEntId($disEntId)
	{
		$this->disEntId = $disEntId;
		$this->apiParas["dis_ent_id"] = $disEntId;
	}

	public function getDisEntId()
	{
		return $this->disEntId;
	}

	public function setDisRefEntId($disRefEntId)
	{
		$this->disRefEntId = $disRefEntId;
		$this->apiParas["dis_ref_ent_id"] = $disRefEntId;
	}

	public function getDisRefEntId()
	{
		return $this->disRefEntId;
	}

	public function setDrugListJson($drugListJson)
	{
		$this->drugListJson = $drugListJson;
		$this->apiParas["drug_list_json"] = $drugListJson;
	}

	public function getDrugListJson()
	{
		return $this->drugListJson;
	}

	public function setFileContent($fileContent)
	{
		$this->fileContent = $fileContent;
		$this->apiParas["file_content"] = $fileContent;
	}

	public function getFileContent()
	{
		return $this->fileContent;
	}

	public function setFromAddress($fromAddress)
	{
		$this->fromAddress = $fromAddress;
		$this->apiParas["from_address"] = $fromAddress;
	}

	public function getFromAddress()
	{
		return $this->fromAddress;
	}

	public function setFromBillCode($fromBillCode)
	{
		$this->fromBillCode = $fromBillCode;
		$this->apiParas["from_bill_code"] = $fromBillCode;
	}

	public function getFromBillCode()
	{
		return $this->fromBillCode;
	}

	public function setFromPerson($fromPerson)
	{
		$this->fromPerson = $fromPerson;
		$this->apiParas["from_person"] = $fromPerson;
	}

	public function getFromPerson()
	{
		return $this->fromPerson;
	}

	public function setFromUserId($fromUserId)
	{
		$this->fromUserId = $fromUserId;
		$this->apiParas["from_user_id"] = $fromUserId;
	}

	public function getFromUserId()
	{
		return $this->fromUserId;
	}

	public function setIgnoreCheck($ignoreCheck)
	{
		$this->ignoreCheck = $ignoreCheck;
		$this->apiParas["ignore_check"] = $ignoreCheck;
	}

	public function getIgnoreCheck()
	{
		return $this->ignoreCheck;
	}

	public function setIgnorePartSuccessFlag($ignorePartSuccessFlag)
	{
		$this->ignorePartSuccessFlag = $ignorePartSuccessFlag;
		$this->apiParas["ignore_part_success_flag"] = $ignorePartSuccessFlag;
	}

	public function getIgnorePartSuccessFlag()
	{
		return $this->ignorePartSuccessFlag;
	}

	public function setOperIcCode($operIcCode)
	{
		$this->operIcCode = $operIcCode;
		$this->apiParas["oper_ic_code"] = $operIcCode;
	}

	public function getOperIcCode()
	{
		return $this->operIcCode;
	}

	public function setOperIcName($operIcName)
	{
		$this->operIcName = $operIcName;
		$this->apiParas["oper_ic_name"] = $operIcName;
	}

	public function getOperIcName()
	{
		return $this->operIcName;
	}

	public function setOrderCode($orderCode)
	{
		$this->orderCode = $orderCode;
		$this->apiParas["order_code"] = $orderCode;
	}

	public function getOrderCode()
	{
		return $this->orderCode;
	}

	public function setQuReceivable($quReceivable)
	{
		$this->quReceivable = $quReceivable;
		$this->apiParas["qu_receivable"] = $quReceivable;
	}

	public function getQuReceivable()
	{
		return $this->quReceivable;
	}

	public function setRefUserId($refUserId)
	{
		$this->refUserId = $refUserId;
		$this->apiParas["ref_user_id"] = $refUserId;
	}

	public function getRefUserId()
	{
		return $this->refUserId;
	}

	public function setToAddress($toAddress)
	{
		$this->toAddress = $toAddress;
		$this->apiParas["to_address"] = $toAddress;
	}

	public function getToAddress()
	{
		return $this->toAddress;
	}

	public function setToPerson($toPerson)
	{
		$this->toPerson = $toPerson;
		$this->apiParas["to_person"] = $toPerson;
	}

	public function getToPerson()
	{
		return $this->toPerson;
	}

	public function setToUserId($toUserId)
	{
		$this->toUserId = $toUserId;
		$this->apiParas["to_user_id"] = $toUserId;
	}

	public function getToUserId()
	{
		return $this->toUserId;
	}

	public function setUploadFileName($uploadFileName)
	{
		$this->uploadFileName = $uploadFileName;
		$this->apiParas["upload_file_name"] = $uploadFileName;
	}

	public function getUploadFileName()
	{
		return $this->uploadFileName;
	}

	public function setXtCheckCode($xtCheckCode)
	{
		$this->xtCheckCode = $xtCheckCode;
		$this->apiParas["xt_check_code"] = $xtCheckCode;
	}

	public function getXtCheckCode()
	{
		return $this->xtCheckCode;
	}

	public function setXtCheckCodeDesc($xtCheckCodeDesc)
	{
		$this->xtCheckCodeDesc = $xtCheckCodeDesc;
		$this->apiParas["xt_check_code_desc"] = $xtCheckCodeDesc;
	}

	public function getXtCheckCodeDesc()
	{
		return $this->xtCheckCodeDesc;
	}

	public function setXtIsCheck($xtIsCheck)
	{
		$this->xtIsCheck = $xtIsCheck;
		$this->apiParas["xt_is_check"] = $xtIsCheck;
	}

	public function getXtIsCheck()
	{
		return $this->xtIsCheck;
	}

	public function getApiMethodName()
	{
		return "alibaba.alihealth.drug.msc.uploadcircubill";
	}
	
	public function getApiParas()
	{
		return $this->apiParas;
	}
	
	public function check()
	{
		
		RequestCheckUtil::checkNotNull($this->billCode,"billCode");
		RequestCheckUtil::checkNotNull($this->billTime,"billTime");
		RequestCheckUtil::checkNotNull($this->billType,"billType");
		RequestCheckUtil::checkNotNull($this->clientType,"clientType");
		RequestCheckUtil::checkNotNull($this->fileContent,"fileContent");
		RequestCheckUtil::checkNotNull($this->fromUserId,"fromUserId");
		RequestCheckUtil::checkNotNull($this->operIcCode,"operIcCode");
		RequestCheckUtil::checkNotNull($this->refUserId,"refUserId");
		RequestCheckUtil::checkNotNull($this->toUserId,"toUserId");
		RequestCheckUtil::checkNotNull($this->uploadFileName,"uploadFileName");
	}
	
	public function putOtherTextParam($key, $value) {
		$this->apiParas[$key] = $value;
		$this->$key = $value;
	}
}
