<?php

class Service_CMBLApiProcess {

    private $apiUrl = "http://www.qhwftpa.com:8002/InterfaceSerivce/CmblCustomService.svc?wsdl";
    private $companyid = 'SZBH';
    private $token = '61B78DAC-336E-4BBF-9104-D3CE03E12936';
    private $testUser = array(
        'E0110',
        'E0207'
    );

    /**
     * @author william-fan
     * @todo 商品备案
     */
    function beian($goodsRow) {
        //传递的是product_goods表的数据
        //事务
        $db = Common_Common::getAdapter();
        $db->beginTransaction();
        try {
            //$url = "http://www.qhwftpa.com:8002/InterfaceSerivce/CmblCustomService.svc?wsdl";
            $url = $this->apiUrl;

            $requestHead = array(
                'companyid' => $this->companyid,
                'token' => $this->token
            );

            $request['requestHead'] = $requestHead;

            $recordProcess = new Service_ProductRecordProcess();
            //提交
            $fpr_id = $recordProcess->addGoodsRecord($goodsRow,""); //添加FtpProductRecord
            if (!is_int($fpr_id)) {
                echo '料件号[' . $goodsRow['goods_code'] . "]提交备案失败,添加ftp_product_record资料失败" . "\r\n";
                $uGoods['pg_status'] = 3;
                $uGoods['pg_update_time'] = date('Y-m-d H:i:s');
                $uGoods['fml_status'] = -2;
                $uGoods['fml_comment'] = '料件号[' . $goodsRow['goods_code'] . "]提交备案失败,添加ftp_product_record资料失败";
                Service_ProductGoods::update($uGoods, $goodsRow['pg_id']);
            }
            /*$result = $recordProcess->ftpSendRecord($fpr_id); //ftp文件发送到ftp服务器
            if (!$result) {
                echo '料件号[' . $goodsRow['goods_code'] . "]提交备案失败,xml文件发送到ftp服务器失败" . "\r\n";
                $uGoods['pg_status'] = 3;
                $uGoods['pg_update_time'] = date('Y-m-d H:i:s');
                Service_ProductGoods::update($uGoods, $goodsRow['pg_id']);
            }*/
            //调用招宝的接口
            $fprRow = Service_FtpProductRecord::getByField($fpr_id);
            if ($fprRow) {
                $xmlPath = $recordProcess->getBasePath() . $fprRow['fpr_path'];
                //$xmlPath='E:\wamp\www\omswms\export_wms\branches\william\application3/../data/ftp/goods_record/2014/06/06/LTJ000139.xml';

                $xml = file_get_contents($xmlPath);
                $request['codeTsXml'][0] = $xml;

                $client = new SoapClient($url, array('trace' => 1));
                //print_r($client);
                $uploadInfo = $client->UploadGoods($request);

                $productResult = Common_Common::objectToArray($uploadInfo);

                if (isset($productResult['UploadGoodsResult']['ResponseMessage']['IsSucess']) && $productResult['UploadGoodsResult']['ResponseMessage']['IsSucess']) {
                    //招宝接口返回正确数据
                    echo '料件号[' . $goodsRow['goods_code'] . "]提交备案成功" . "\r\n";
                } else {
                    if($productResult['UploadGoodsResult']['ResponseMessage']['ErrorMessage']=="已经存在此料件号"){
                        $uGoods['pg_status'] = 2;
                        $uGoods['pg_update_time'] = date('Y-m-d H:i:s');
                        Service_ProductGoods::update($uGoods, $goodsRow['pg_id']);
                    }
                    throw new Exception('料件号[' . $goodsRow['goods_code'] . "调用招宝上传备案信息返回错误,错误信息为:" . $productResult['UploadGoodsResult']['ResponseMessage']['ErrorMessage']);
                }
                /*$uGoods['pg_status'] = 2;
                $uGoods['pg_update_time'] = date('Y-m-d H:i:s');
                Service_ProductGoods::update($uGoods, $goodsRow['pg_id']);*/
                $uGoods['pg_status'] = 2;
                $uGoods['fml_status'] = 0;
                $uGoods['pg_update_time'] = date('Y-m-d H:i:s');
                $uGoods['fml_comment'] = '已提交招保备案';
                Service_ProductGoods::update($uGoods, $goodsRow['pg_id']);
            } else {
                throw new Exception('料件号[' . $goodsRow['goods_code'] . "ftp_product_record无数据");
            }
            $db->commit();
            //$db->rollback();
        } catch (Exception $e) {
            $db->rollback();
            echo '料件号[' . $goodsRow['goods_code'] . "]提交备案失败,数据异常:" . $e->getMessage() . "\r\n";
            return $e->getMessage();
        }
    }

    function zzcBeian($goodsRow){
        //传递的是product_goods表的数据
        //事务
        $db = Common_Common::getAdapter();
        $db->beginTransaction();
        try {
            //$url = "http://www.qhwftpa.com:8002/InterfaceSerivce/CmblCustomService.svc?wsdl";
            $url = $this->apiUrl;

            $requestHead = array(
                'companyid' => $this->companyid,
                'token' => $this->token
            );

            $request['requestHead'] = $requestHead;

            $recordProcess = new Service_ProductRecordProcess();
            //提交
            $fpr_id = $recordProcess->addGoodsRecord($goodsRow,'ZZC'); //添加FtpProductRecord
            if (!is_int($fpr_id)) {
                echo '料件号['.$goodsRow['goods_code'] . "]提交转账册备案失败,添加ftp_product_record资料失败" . "\r\n";
                $uGoods['pg_status'] = 3;
                $uGoods['pg_update_time'] = date('Y-m-d H:i:s');
                $uGoods['fml_status'] = -2;
                $uGoods['fml_comment'] = '料件号['.$goodsRow['goods_code'] . "]提交转账册备案失败,添加ftp_product_record资料失败";
                Service_ProductGoods::update($uGoods, $goodsRow['pg_id']);
            }
            /*$result = $recordProcess->ftpSendRecord($fpr_id); //ftp文件发送到ftp服务器
            if (!$result) {
                echo '料件号[' . $goodsRow['goods_code'] . "]提交备案失败,xml文件发送到ftp服务器失败" . "\r\n";
                $uGoods['pg_status'] = 3;
                $uGoods['pg_update_time'] = date('Y-m-d H:i:s');
                Service_ProductGoods::update($uGoods, $goodsRow['pg_id']);
            }*/
            //调用招宝的接口
            $fprRow = Service_FtpProductRecord::getByField($fpr_id);
            if ($fprRow) {
                $xmlPath = $recordProcess->getBasePath() . $fprRow['fpr_path'];
                //$xmlPath='E:\wamp\www\omswms\export_wms\branches\william\application3/../data/ftp/goods_record/2014/06/06/LTJ000139.xml';

                $xml = file_get_contents($xmlPath);
                $request['codeTsXml'][0] = $xml;

                $client = new SoapClient($url, array('trace' => 1));
                //print_r($client);
                $uploadInfo = $client->UploadGoods($request);

                $productResult = Common_Common::objectToArray($uploadInfo);

                if (isset($productResult['UploadGoodsResult']['ResponseMessage']['IsSucess']) && $productResult['UploadGoodsResult']['ResponseMessage']['IsSucess']) {
                    //招宝接口返回正确数据
                    echo '料件号[' . 'B'.$goodsRow['goods_code'] . "]提交转账册备案成功" . "\r\n";
                } else {
                    if($productResult['UploadGoodsResult']['ResponseMessage']['ErrorMessage']=="已经存在此料件号"){
                        $uGoods['pg_status'] = 2;
                        $uGoods['zzc_status'] = 0;
                        $uGoods['pg_update_time'] = date('Y-m-d H:i:s');
                        Service_ProductGoods::update($uGoods, $goodsRow['pg_id']);
                    }
                    throw new Exception('料件号[' .$goodsRow['goods_code'] . "调用招宝上传转账册备案信息返回错误,错误信息为:" . $productResult['UploadGoodsResult']['ResponseMessage']['ErrorMessage']);
                }
                /*$uGoods['pg_status'] = 2;
                $uGoods['pg_update_time'] = date('Y-m-d H:i:s');
                Service_ProductGoods::update($uGoods, $goodsRow['pg_id']);*/
                $uGoods['pg_status'] = 2;
                $uGoods['zzc_status'] = 0;
                $uGoods['pg_update_time'] = date('Y-m-d H:i:s');
                $uGoods['zzc_comment'] = $goodsRow['goods_code'].'已提交招保转账册备案';
                Service_ProductGoods::update($uGoods, $goodsRow['pg_id']);
            } else {
                throw new Exception('料件号[' . $goodsRow['goods_code'] . "ftp_product_record无数据");
            }
            $db->commit();
            //$db->rollback();
        } catch (Exception $e) {
            $db->rollback();
            echo '料件号[' .$goodsRow['goods_code'] . "]提交转账册备案失败,数据异常:" . $e->getMessage() . "\r\n";
            return $e->getMessage();
        }
    }

    /**
     * @author william-fan
     * @todo 查询招宝的料件号备案情况
     */
    function checkbeianStatus($goodsRow) {
        $requestHead = array(
            'companyid' => $this->companyid,
            'token' => $this->token
        );

        $request['requestHead'] = $requestHead;

        $request['goodsId'] = $goodsRow['goods_code'];

        $url = $this->apiUrl;
        $client = new SoapClient($url);
        //echo "</pre>";
        //print_r($client->__getFunctions());

        $goodsinfo = $client->GetGoodsInfo($request);

        $goodsinfo = Common_Common::objectToArray($goodsinfo);
        if (isset($goodsinfo['GetGoodsInfoResult']['IsSucess']) && $goodsinfo['GetGoodsInfoResult']['IsSucess'] == '1') {
            //海关审核通过
            if ($goodsinfo['GetGoodsInfoResult']['Status'] == '2') {
                $db = Common_Common::getAdapter();
                $db->beginTransaction();
                try {
                    $upGoodsRow = array(
                        'pg_status'=>1,
                        'fml_comment'   =>  '料件号['.$goodsRow['goods_code']."]已备案成功",
                        'fml_status'        =>  $goodsinfo['GetGoodsInfoResult']['Status'],
                        'pg_update_time'	=> date('Y-m-d H:i:s'),
                    );
                    Service_ProductGoods::update($upGoodsRow, $goodsRow['pg_id']);
                    //Service_ProductGoods::update(array('pg_status' => 1), $goodsRow['pg_id']);
                    Service_Product::update(array('product_status' => 1), $goodsRow['goods_code'], 'goods_id');
                    echo $goodsRow['goods_code'] . "备案成功\r\n";
                    $db->commit();
                } catch (Exception $e) {
                    $db->rollback();
                    echo '料件号[' . $goodsRow['goods_code'] . "]备案失败,数据异常:" . $e->getMessage() . "\r\n";
                }
            } else {
                switch ($goodsinfo['GetGoodsInfoResult']['Status']) {
                    case "0":
                        $status = '未同步';
                        break;
                    case "1":
                        $status = '已同步';
                        break;
                    case "3":
                        $status = '同步失败';
                        break;
                    case '4':
                        $status = '海关审核退单';
                        break;
                    case '5':
                        $status = "招保业务人员还未接单";
                        break;
                    default:
                        $status = '未知状态' . $goodsinfo['GetGoodsInfoResult']['Status'];
                }
                echo "料件号[" . $goodsRow['goods_code'] . "]" . $status . "\r\n";
                Service_ProductGoods::update(array(
                    'fml_comment'	=> "料件号[".$goodsRow['goods_code']."]招保状态：".$status,
                    'fml_status'	=> $goodsinfo['GetGoodsInfoResult']['Status'],
                    'pg_update_time'	=> date('Y-m-d H:i:s')),$goodsRow['pg_id']);
            }
        } else {
            echo "料件号[" . $goodsRow['goods_code'] . "]获取招宝信息失败,失败原因为:" . $goodsinfo['GetGoodsInfoResult']['ErrorMessage'] . "\r\n";
            if($goodsinfo['GetGoodsInfoResult']['ErrorMessage']=="数据库中不存在这条记录"){
                //Service_ProductGoods::update(array('pg_status' => 0), $goodsRow['pg_id']);
                Service_ProductGoods::update(array(
                    'pg_status' => 0,
                    'fml_comment' => '料件号['.$goodsRow['goods_code'].'招保数据库中不存在这条记录',
                    'fml_status'=>'-1',
                    'pg_update_time' => date('Y-m-d H:i:s'),
                ), $goodsRow['pg_id'], 'pg_id');
            }
        }
        //print_r($goodsinfo);
    }

    function checkzcbeianStatus($goodsRow){
        $requestHead = array(
            'companyid' => $this->companyid,
            'token' => $this->token
        );

        $request['requestHead'] = $requestHead;

        $request['goodsId'] = $goodsRow['goods_code'];

        $url = $this->apiUrl;
        $client = new SoapClient($url);
        //echo "</pre>";
        //print_r($client->__getFunctions());

        $goodsinfo = $client->GetGoodsInfo($request);

        $goodsinfo = Common_Common::objectToArray($goodsinfo);
        if (isset($goodsinfo['GetGoodsInfoResult']['IsSucess']) && $goodsinfo['GetGoodsInfoResult']['IsSucess'] == '1') {
            //海关审核通过
            if ($goodsinfo['GetGoodsInfoResult']['Status'] == '2') {
                $db = Common_Common::getAdapter();
                $db->beginTransaction();
                try {
                    $upGoodsRow = array(
                        'pg_status'=>1,
                        'fml_comment'   =>  '料件号['.$goodsRow['goods_code']."]已备案成功",
                        'zzc_status'        =>  $goodsinfo['GetGoodsInfoResult']['Status'],
                        'pg_update_time'	=> date('Y-m-d H:i:s'),
                    );
                    Service_ProductGoods::update($upGoodsRow, $goodsRow['pg_id']);
                    //Service_ProductGoods::update(array('pg_status' => 1), $goodsRow['pg_id']);
                    Service_Product::update(array('product_status' => 1), $goodsRow['goods_code'], 'goods_id');
                    echo "B".$goodsRow['goods_code'] . "备案成功\r\n";
                    $db->commit();
                } catch (Exception $e) {
                    $db->rollback();
                    echo '料件号[B' . $goodsRow['goods_code'] . "]备案失败,数据异常:" . $e->getMessage() . "\r\n";
                }
            } else {
                switch ($goodsinfo['GetGoodsInfoResult']['Status']) {
                    case "0":
                        $status = '未同步';
                        break;
                    case "1":
                        $status = '已同步';
                        break;
                    case "3":
                        $status = '同步失败';
                        break;
                    case '4':
                        $status = '海关审核退单';
                        break;
                    case '5':
                        $status = "招保业务人员还未接单";
                        break;
                    default:
                        $status = '未知状态' . $goodsinfo['GetGoodsInfoResult']['Status'];
                }
                echo "料件号[B" . $goodsRow['goods_code'] . "]" . $status . "\r\n";
                Service_ProductGoods::update(array(
                    'zzc_comment'	=> "料件号[".$goodsRow['goods_code']."]招保状态：".$status,
                    'zzc_status'	=> $goodsinfo['GetGoodsInfoResult']['Status'],
                    'pg_status'=>1,
                    'pg_update_time'	=> date('Y-m-d H:i:s')),$goodsRow['pg_id']);
            }
        } else {
            echo "料件号[" . $goodsRow['goods_code'] . "]获取招宝信息失败,失败原因为:" . $goodsinfo['GetGoodsInfoResult']['ErrorMessage'] . "\r\n";
            if($goodsinfo['GetGoodsInfoResult']['ErrorMessage']=="数据库中不存在这条记录"){
                //Service_ProductGoods::update(array('pg_status' => 0), $goodsRow['pg_id']);
                Service_ProductGoods::update(array(
                    //'pg_status' => 0,
                    'zzc_comment' => '料件号['.$goodsRow['goods_code'].'招保数据库中不存在这条记录',
                    //'fml_status'=>'-1',
                    'pg_update_time' => date('Y-m-d H:i:s'),
                ), $goodsRow['pg_id'], 'pg_id');
            }
        }
        //print_r($goodsinfo);
    }

    /**
     * @author william-fan
     * @todo 上传入区单
     * @param $sendRow ftp_message_sendlist的记录
     */
    function uploadRCustomerOrder($sendRow) {
        if (empty($sendRow)) {
            echo "参数错误！！\r\n";
            return false;
        }
        $db = Common_Common::getAdapter();
        $db->beginTransaction();
        try {
            $url = $this->apiUrl;

            $requestHead = array(
                'companyid' => $this->companyid,
                'token' => $this->token
            );

            $request['requestHead'] = $requestHead;

            //$client = new SoapClient($url,array('trace' => 1));
            //$uploadInfo=$client->UploadCustomOrder($request);
            //var_dump($sendList);
            //exit;
            //
    		$ftProcess = new Service_FtpReceiveProcess();

            $upsendRowFirst = Service_FtpMessageSendlist::getByField($sendRow['fml_id']);
            //查看
            $firstPath = $ftProcess->getBasePath() . $upsendRowFirst['fml_path'];
            if ($upsendRowFirst['fml_path'] != '' && file_exists($firstPath)) {
                $xml = file_get_contents($firstPath);
                //$request['codeTsXml'][0] = base64_encode($xml);
                $request['customOrderXml'][0] = $xml;
            } else {
                $affect = $ftProcess->updateSendMessage($sendRow);
                //var_dump($affect);
                if (!$affect) {
                    echo "创建入库报文失败[" . $sendRow['refercence_no'] . "]\r\n";
                    $ftpMessageSendLogRow = array(
                        'fml_id' => $upsendRowFirst['fml_id'],
                        'refercence_no' => $upsendRowFirst['refercence_no'],
                        'add_time' => date("Y-m-d H:i:s", time()),
                        'fmsl_comment' => "创建入库报文失败[" . $sendRow['refercence_no'] . ']',
                    );
                    $fmsl = new Service_FtpMessageSendlog();
                    $fmsl->add($ftpMessageSendLogRow);
                    return false;
                }
                //exit;
                /*$result = $ftProcess->ftpSendMessage($sendRow['fml_id']);
                if (!$result) {
                    echo "发送出库报文失败[" . $sendRow['refercence_no'] . "]\r\n";
                    $ftpMessageSendLogRow = array(
                        'fml_id' => $upsendRowFirst['fml_id'],
                        'refercence_no' => $upsendRowFirst['refercence_no'],
                        'add_time' => date("Y-m-d H:i:s", time()),
                        'fmsl_comment' => "发送出库报文失败[" . $sendRow['refercence_no'] . ']',
                    );
                    $fmsl = new Service_FtpMessageSendlog();
                    $fmsl->add($ftpMessageSendLogRow);
                    return false;
                }*/
                $upsendRow = Service_FtpMessageSendlist::getByField($sendRow['fml_id']);

                $xmlPath = $ftProcess->getBasePath() . $upsendRow['fml_path'];

                $xml = file_get_contents($xmlPath);
                //$request['codeTsXml'][0] = base64_encode($xml);
                $request['customOrderXml'][0] = $xml;
            }



            /* $affect = $ftProcess->updateSendMessage($sendRow);
              if(!$affect) {
              echo "创建入库报文失败[".$sendRow['refercence_no']."]\r\n";
              return false;
              }
              $result = $ftProcess->ftpSendMessage($sendRow['fml_id']);
              if(!$result) {
              echo "发送入库报文失败[".$sendRow['refercence_no']."]\r\n";
              return false;
              }
              $upsendRow = Service_FtpMessageSendlist::getByField($sendRow['fml_id']);

              $xmlPath = $ftProcess->getBasePath().$upsendRow['fml_path'];

              //echo $xmlPath;
              //exit;

              $xml = file_get_contents($xmlPath);
              //$request['codeTsXml'][0] = base64_encode($xml);
              $request['customOrderXml'][0] = $xml; */
            //print_r($request);
            //exit;

            $client = new SoapClient($url);


            //print_r($client);
            //exit;
            //$client = new SoapClient($url);
            //print_r($client->__getFunctions());



            $uploadInfo = $client->UploadCustomOrder($request);

            //$uploadInfo

            /* $reqxml=$client->__getLastResponse();
              file_put_contents('ordaaa.xml', $reqxml); */

            //file_put_contents('ccc.xml', var_export($request,true));
            //print_r($uploadInfo);
            $uploadInfo = Common_Common::objectToArray($uploadInfo);
            if ($uploadInfo['UploadCustomOrderResult']['ResponseMessage']['IsSucess'] == '1') {
                //修改状态
                $aUpdate['fml_status'] = 2;
                $aUpdate['fml_update_time'] = date('Y-m-d H:i:s');
                Service_FtpMessageSendlist::update($aUpdate, $sendRow['fml_id']);
                echo "发送入库报文成功[" . $sendRow['refercence_no'] . "]\r\n";
                $ftpMessageSendLogRow = array(
                    'fml_id' => $upsendRowFirst['fml_id'],
                    'refercence_no' => $upsendRowFirst['refercence_no'],
                    'add_time' => date("Y-m-d H:i:s", time()),
                    'fmsl_comment' => "发送入库报文成功[" . $sendRow['refercence_no'] . ']',
                );
                $fmsl = new Service_FtpMessageSendlog();
                $fmsl->add($ftpMessageSendLogRow);
                /*$allSend =  1;
                $receivingXmlRow = Service_ReceivingXml::getByField($sendRow['refercence_no'],'sub_receiving_code',"*");
                $receivingXmlList = Service_ReceivingXml::getByCondition(array('receiving_code'=>$receivingXmlRow['receiving_code']),"*");
                foreach($receivingXmlList as $rx){
                    $fmList = Service_FtpMessageSendlist::getByCondition(array('fmt_code'=>'MRK','refercence_no'=>$rx['sub_receiving_code']),'*');
                    if($fmList[0]['fml_status']=="1") $allSend = 0;
                }
                if($allSend){
                    $uReceiving = array(
                        'receiving_status'=>4,
                        'receiving_update_time'=>date('Y-m-d H:i:s'),
                    );
                    //$uReceiving['receiving_status'] = 4;
                    //$uReceiving['receiving_update_time'] = date('Y-m-d H:i:s');
                    Service_Receiving::update($uReceiving, $receivingXmlRow['receiving_code'], 'receiving_code');
                }*/
                $db->commit();
            } else {
                throw new Exception($uploadInfo['UploadCustomOrderResult']['ResponseMessage']['ErrorMessage']);
            }

            //$db->rollback();
            //$db->commit();
        } catch (Exception $e) {
            $db->rollback();
            echo '入区单提交失败[' . $sendRow['refercence_no'] . "]提交失败,数据异常:" . $e->getMessage() . "\r\n";
            $ftpMessageSendLogRow = array(
                'fml_id' => $sendRow['fml_id'],
                'refercence_no' => $sendRow['refercence_no'],
                'add_time' => date("Y-m-d H:i:s", time()),
                'fmsl_comment' => '入区单提交失败[' . $sendRow['refercence_no'] . "]提交失败,数据异常:" . $e->getMessage(),
            );
            $fmsl = new Service_FtpMessageSendlog();
            $fmsl->add($ftpMessageSendLogRow);
            Service_Exception::addExceptionByCode('GodownEntryFail',$sendRow['refercence_no'],'入区单提交失败[' . $sendRow['refercence_no'] . "]提交失败,数据异常:" . $e->getMessage() , true);
            return $e->getMessage();
        }
    }

    /**
     * 临时性使用，发送入区报文，从文件获取报文内容
     */
    function uploadRCustomerOrderForFile($file) {
        try {
            $url = $this->apiUrl;

            $requestHead = array(
                'companyid' => $this->companyid,
                'token' => $this->token
            );

            $request['requestHead'] = $requestHead;

            $xml = file_get_contents($file);
            $request['customOrderXml'][0] = $xml;


            $client = new SoapClient($url);
            $uploadInfo = $client->UploadCustomOrder($request);
            $uploadInfo = Common_Common::objectToArray($uploadInfo);
            if ($uploadInfo['UploadCustomOrderResult']['ResponseMessage']['IsSucess'] == '1') {
                echo "发送入库报文成功[" . $file . "]\r\n";
            } else {
                throw new Exception($uploadInfo['UploadCustomOrderResult']['ResponseMessage']['ErrorMessage']);
            }
        } catch (Exception $e) {
            echo '入区单提交失败[' . $file . "]提交失败,数据异常:" . $e->getMessage() . "\r\n";
        }
    }

    /**
     * @author william-fan
     * @todo 上传出区单
     */
    function UploadCCustomOrder($sendRow) {
        if (empty($sendRow)) {
            echo "参数错误！！\r\n";
            return false;
        }
        $db = Common_Common::getAdapter();
        $db->beginTransaction();
        try {
            $url = $this->apiUrl;

            $requestHead = array(
                'companyid' => $this->companyid,
                'token' => $this->token
            );

            $request['requestHead'] = $requestHead;

            //$client = new SoapClient($url,array('trace' => 1));
            //$uploadInfo=$client->UploadCustomOrder($request);
            //var_dump($sendList);
            //exit;
            //print_r($request);
            //print_r($sendRow);
            //exit;
            //
    		
    		//$xmlPath = $ftProcess->getBasePath().$upsendRow['fml_path'];

            $ftProcess = new Service_FtpMessageProcess(); //出区xml
            $upsendRowFirst = Service_FtpMessageSendlist::getByField($sendRow['fml_id']);
            //查看
            $firstPath = $ftProcess->getBasePath() . $upsendRowFirst['fml_path'];
            if ($upsendRowFirst['fml_path'] != '' && file_exists($firstPath)) {
                $xml = file_get_contents($firstPath);
                //$request['codeTsXml'][0] = base64_encode($xml);
                $request['customOrderXml'][0] = $xml;
            } else {
                $affect = $ftProcess->updateSendMessage($sendRow);
                //var_dump($affect);
                if (!$affect) {
                    echo "创建出库报文失败[" . $sendRow['refercence_no'] . "]\r\n";
                    $ftpMessageSendLogRow = array(
                        'fml_id' => $upsendRowFirst['fml_id'],
                        'refercence_no' => $upsendRowFirst['refercence_no'],
                        'add_time' => date("Y-m-d H:i:s", time()),
                        'fmsl_comment' => "创建出库报文失败[" . $sendRow['refercence_no'] . ']',
                    );
                    $fmsl = new Service_FtpMessageSendlog();
                    $fmsl->add($ftpMessageSendLogRow);
                    return false;
                }
                //exit;
                /*$result = $ftProcess->ftpSendMessage($sendRow['fml_id']);
                if (!$result) {
                    echo "发送出库报文失败[" . $sendRow['refercence_no'] . "]\r\n";
                    $ftpMessageSendLogRow = array(
                        'fml_id' => $upsendRowFirst['fml_id'],
                        'refercence_no' => $upsendRowFirst['refercence_no'],
                        'add_time' => date("Y-m-d H:i:s", time()),
                        'fmsl_comment' => "发送出库报文失败[" . $sendRow['refercence_no'] . ']',
                    );
                    $fmsl = new Service_FtpMessageSendlog();
                    $fmsl->add($ftpMessageSendLogRow);
                    return false;
                }*/
                $upsendRow = Service_FtpMessageSendlist::getByField($sendRow['fml_id']);

                $xmlPath = $ftProcess->getBasePath() . $upsendRow['fml_path'];

                $xml = file_get_contents($xmlPath);
                //$request['codeTsXml'][0] = base64_encode($xml);
                $request['customOrderXml'][0] = $xml;
            }
            //print_r($ftProcess);
            //exit;
            //echo $xmlPath;
            //exit;
            //print_r($request);
            //exit;

            $client = new SoapClient($url, array("trace" => true, "connection_timeout" => 200));


            //print_r($client);
            //exit;
            //$client = new SoapClient($url);
            //print_r($client->__getFunctions());
            //$reqxml=$client->__getLastResponse();
            //file_put_contents('ordaaa.xml', $reqxml);


            $uploadInfo = $client->UploadCustomOrder($request);

            $uploadInfo = Common_Common::objectToArray($uploadInfo);

            if ($uploadInfo['UploadCustomOrderResult']['ResponseMessage']['IsSucess'] == '1') {
                $aUpdate['fml_status'] = 2;
                $aUpdate['fml_update_time'] = date('Y-m-d H:i:s');
                Service_FtpMessageSendlist::update($aUpdate, $sendRow['fml_id']);
                echo "发送出库报文成功[" . $sendRow['refercence_no'] . "]\r\n";
                $ftpMessageSendLogRow = array(
                    'fml_id' => $upsendRowFirst['fml_id'],
                    'refercence_no' => $upsendRowFirst['refercence_no'],
                    'add_time' => date("Y-m-d H:i:s", time()),
                    'fmsl_comment' => "发送出库报文成功[" . $sendRow['refercence_no'] . ']',
                );
                $fmsl = new Service_FtpMessageSendlog();
                $fmsl->add($ftpMessageSendLogRow);
                $db->commit();
            } else {
                //$db->commit();
                throw new Exception($uploadInfo['UploadCustomOrderResult']['ResponseMessage']['ErrorMessage']);
            }

            /* $reqxml=$client->__getLastResponse();
              file_put_contents('ordaaa.xml', $reqxml);

              file_put_contents('ccc.xml', var_export($request,true)); */


            //print_r($uploadInfo);
            //修改状态
            //$db->rollback();
            //$db->commit();
        } catch (Exception $e) {
            $db->rollback();
            echo '出区单提交失败[' . $sendRow['refercence_no'] . "]提交失败,数据异常:" . $e->getMessage() . "\r\n";
            $ftpMessageSendLogRow = array(
                'fml_id' => $sendRow['fml_id'],
                'refercence_no' => $sendRow['refercence_no'],
                'add_time' => date("Y-m-d H:i:s", time()),
                'fmsl_comment' => '出区单提交失败[' . $sendRow['refercence_no'] . "]提交失败,数据异常:" . $e->getMessage(),
            );
//            Service_Exception::addExceptionByCode();
            $fmsl = new Service_FtpMessageSendlog();
            $fmsl->add($ftpMessageSendLogRow);
            return $e->getMessage();
        }
    }

    /**
     * 临时性使用，发送出区报文，从文件获取报文内容
     */
    function UploadCCustomOrderForFile($file) {
        try {
            $url = $this->apiUrl;

            $requestHead = array(
                'companyid' => $this->companyid,
                'token' => $this->token
            );

            $request['requestHead'] = $requestHead;

            $xml = file_get_contents($file);
            $request['customOrderXml'][0] = $xml;

            $client = new SoapClient($url, array("trace" => true, "connection_timeout" => 200));
            $uploadInfo = $client->UploadCustomOrder($request);
            $uploadInfo = Common_Common::objectToArray($uploadInfo);
            if ($uploadInfo['UploadCustomOrderResult']['ResponseMessage']['IsSucess'] == '1') {
                echo "发送出库报文成功[" . $file . "]\r\n";
            } else {
                throw new Exception($uploadInfo['UploadCustomOrderResult']['ResponseMessage']['ErrorMessage']);
            }
        } catch (Exception $e) {
            echo '出区单提交失败[' . $file . "]提交失败,数据异常:" . $e->getMessage() . "\r\n";
        }
    }

    /**
     * @author william-fam
     * @todo 得到入区单的状态
     */
    function checkRCstatus($sendRow) {
        $requestHead = array(
            'companyid' => $this->companyid,
            'token' => $this->token
        );

        $request['requestHead'] = $requestHead;

        $request['formId'] = $sendRow['refercence_no'];

        //$request['formId'] = 'BHR140000589';

        $url = $this->apiUrl;
        $client = new SoapClient($url);
        //echo "</pre>";
        //print_r($client->__getFunctions());

        $receivingInfo = $client->GetCustomOrderInfo($request);

        $receivingInfo = Common_Common::objectToArray($receivingInfo);
        //print_r($receivingInfo);
        //exit;
        if (isset($receivingInfo['GetCustomOrderInfoResult']['IsSucess']) && $receivingInfo['GetCustomOrderInfoResult']['IsSucess'] == '1') {

            switch ($receivingInfo['GetCustomOrderInfoResult']['Status']) {
                case "0":
                    $status = '未经过工作人员审核';
                    break;
                case "1":
                    $status = '已审核，待上传至企业端';
                    break;
                case "2":
                    $status = '已暂存至企业端端';
                    break;
                case "3":
                    $status = '上传至企业端失败';
                    break;
                case '4':
                    $status = '成功发往海关';
                    break;
                case '5':
                    $status = '委托成功';
                    break;
                case '6':
                    $status = '已配载';
                    break;
                case '7':
                    $status = '已入/出库';
                    break;
                case '8':
                    $status = '海关审核退单';
                    break;
                case '9':
                    $status = '企业删除';
                    break;
                case '10':
                    $status = '海关接收失败';
                    break;
                case '11':
                    $status = '海关审核通过';
                    break;
                case '12':
                    $status = '电子口岸申报失败';
                    break;
                case '13':
                    $status = '海关接收成功';
                    break;
                case '14':
                    $status = '作废';
                    break;
                default:
                    $status = '未知状态' . $receivingInfo['GetCustomOrderInfoResult']['Status'];
            }

            $db = Common_Common::getAdapter();
            $db->beginTransaction();
            try {
                /**
                 * 状态5也算审核通过
                 * 我问了主席，303也审核通过了
                  我都不记得303和302之前是哪些订单了
                  你可以查询到吗
                  大家好  11:25:51
                  查不到了 已经改了
                  状态是7吗 你问他
                  大家好  11:27:45
                  你确定他们入区单是委托成功也改状态吗
                  他们要这样说 我这边把那个状态也当审核通过
                  恩
                 * */
                if ($receivingInfo['GetCustomOrderInfoResult']['FormIdXml'] != '') {
                    $uRd = array(
                        'refercence_form_id' => $receivingInfo['GetCustomOrderInfoResult']['FormIdXml'],
                        'rx_update_time' => date("Y-m-d H:i:s")
                    );
                    //$uReceivingXmlRow[] = ;
                    //$uReceivingXmlRow[] = ;
                    Service_ReceivingXml::update($uRd, $sendRow['refercence_no'], 'sub_receiving_code');
                }
                if ($receivingInfo['GetCustomOrderInfoResult']['Status'] == '7') {
                    $receivingXmlRow = Service_ReceivingXml::getByField($sendRow['refercence_no'], 'sub_receiving_code');
                    $receiving = Service_Receiving::getByField($receivingXmlRow['receiving_code'], 'receiving_code');
                    if (in_array($receiving['customer_code'], $this->testUser)) {
                        throw new Exception("为测试客户");
                    }
                    if(!empty($receivingInfo['GetCustomOrderInfoResult']['DtList']['DT_PUTREC_SEQNO'])){
                        foreach($receivingInfo['GetCustomOrderInfoResult']['DtList']['DT_PUTREC_SEQNO'] as $key=>$val){
                            if($val['PutrecSeqno']!=""){
                                $productList = Service_Product::getByCondition(array('goods_id'=>$val['GOODS_ID'],'product_status'=>1,'empty_putrec_seqno'=>1),"*");
                                if(!empty($productList)){
                                    foreach($productList as $pro){
                                        $updatePro = array(
                                            'putrec_seqno'=>$val['PutrecSeqno'],
                                            'product_update_time'=>date("Y-m-d H:i:s"),
                                        );
                                        Service_Product::update($updatePro,$pro['product_id'],"product_id");
                                    }
                                }
                            }
                        }
                    }
                    if ($receivingXmlRow['receiving_xml_status'] == '3') {
                        $uReceivingXmlRow['receiving_xml_status'] = 4;
                        $uReceivingXmlRow['refercence_form_id'] = $receivingInfo['GetCustomOrderInfoResult']['FormIdXml'];
                        $uReceivingXmlRow['rx_update_time'] = date("Y-m-d H:i:s");
                        Service_ReceivingXml::update($uReceivingXmlRow, $sendRow['refercence_no'], 'sub_receiving_code');

                        $uftpMessageSendListRow['fml_status'] = '3';
                        $uftpMessageSendListRow['fml_update_time'] = date('Y-m-d H:i:s');
                        Service_FtpMessageSendlist::update($uftpMessageSendListRow, $sendRow['fml_id']);
                        echo '入区单[' . $sendRow['refercence_no'] . "]状态为{$status},已经更新其状态为已审核\r\n";
                        $ftpMessageSendLogRow = array(
                            'fml_id' => $sendRow['fml_id'],
                            'refercence_no' => $sendRow['refercence_no'],
                            'add_time' => date("Y-m-d H:i:s", time()),
                            'fmsl_comment' => '入区单[' . $sendRow['refercence_no'] . "]状态为{$status},已经更新其状态为已审核",
                        );
                        $fmsl = new Service_FtpMessageSendlog();
                        $fmsl->add($ftpMessageSendLogRow);

                        $condition = array(
                            'receiving_code' => $receiving['receiving_code'],
                            'receiving_xml_status' => '3',
                        );
                        $count = Service_ReceivingXml::getByCondition($condition, 'count(*)');
                        if (!$count) {
                            if($receiving['receiving_status']<=3){
                                $uReceiving['receiving_status'] = 4;
                            }
                            if($receiving['form_type']=="IJ2"){
                                $asnObj = new Service_AsnProccess();
                                $asnObj->split9610($receiving['receiving_code']);
                            }
                            $uReceiving['refercence_form_id'] = $receivingInfo['GetCustomOrderInfoResult']['FormIdXml'];
                            $uReceiving['receiving_update_time'] = date('Y-m-d H:i:s');
                            Service_Receiving::update($uReceiving, $receiving['receiving_code'], 'receiving_code');
                            $receivingAttr = Service_ReceivingAttribute::getByField($receiving['receiving_code'], 'receiving_code',"*");
                            if(empty($receivingAttr)){
                                $rab = array(
                                    'receiving_id'=>$receiving['receiving_id'],
                                    'receiving_code'=>$receiving['receiving_code'],
                                    'check_time'=>date("Y-m-d H:i:s")
                                );
                                Service_ReceivingAttribute::add($rab);
                            }else{
                                $updateReceivingAttr = array(
                                    'check_time'=>date("Y-m-d H:i:s")
                                );
                                Service_ReceivingAttribute::update($updateReceivingAttr,$receiving['receiving_code'], 'receiving_code');
                            }
                        }
                    } else {
                        if ($receiving['receiving_status'] > 3) {
                            $uftpMessageSendListRow['fml_status'] = '3';
                            //$uftpMessageSendListRow['fml_update_time']=date('Y-m-d H:i:s');
                            Service_FtpMessageSendlist::update($uftpMessageSendListRow, $sendRow['refercence_no'], 'refercence_no');
                            echo '入区单[' . $sendRow['refercence_no'] . "]已到未审核之后\r\n";
                            $ftpMessageSendLogRow = array(
                                'fml_id' => $sendRow['fml_id'],
                                'refercence_no' => $sendRow['refercence_no'],
                                'add_time' => date("Y-m-d H:i:s", time()),
                                'fmsl_comment' => '入区单[' . $sendRow['refercence_no'] . "]已到未审核之后",
                            );
                            $fmsl = new Service_FtpMessageSendlog();
                            $fmsl->add($ftpMessageSendLogRow);
                        } else {
                            throw new Exception('入区单[' . $sendRow['refercence_no'] . "]不是未审核");
                        }
                    }
                } else {
                    echo '入区单[' . $sendRow['refercence_no'] . "]状态为{$status},暂未更新其状态为已审核\r\n";
                    $ftpMessageSendLogRow = array(
                        'fml_id' => $sendRow['fml_id'],
                        'refercence_no' => $sendRow['refercence_no'],
                        'add_time' => date("Y-m-d H:i:s", time()),
                        'fmsl_comment' => '入区单[' . $sendRow['refercence_no'] . "]状态为{$status},暂未更新其状态为已审核",
                    );                   
                    $fmsl = new Service_FtpMessageSendlog();
                    $fmsl->add($ftpMessageSendLogRow);
                }

                $db->commit();
                //$db->rollback();	
            } catch (Exception $e) {
                $db->rollback();
                echo '入区单提交失败[' . $sendRow['refercence_no'] . "]提交失败,数据异常:" . $e->getMessage() . "\r\n";
                $ftpMessageSendLogRow = array(
                    'fml_id' => $sendRow['fml_id'],
                    'refercence_no' => $sendRow['refercence_no'],
                    'add_time' => date("Y-m-d H:i:s", time()),
                    'fmsl_comment' => '入区单提交失败[' . $sendRow['refercence_no'] . "]提交失败,数据异常:" . $e->getMessage(),
                );
                Service_Exception::addExceptionByCode('GodownEntryApproval',$sendRow['refercence_no'] , '入区单提交失败[' . $sendRow['refercence_no'] . "]提交失败,数据异常:" . $e->getMessage(), true);
                $fmsl = new Service_FtpMessageSendlog();
                $fmsl->add($ftpMessageSendLogRow);
                return $e->getMessage();
            }
        } else {
            echo "入区单[" . $sendRow['refercence_no'] . "]获取招宝信息失败,失败原因为:" . $receivingInfo['GetCustomOrderInfoResult']['ErrorMessage'] . "\r\n";
            $ftpMessageSendLogRow = array(
                'fml_id' => $sendRow['fml_id'],
                'refercence_no' => $sendRow['refercence_no'],
                'add_time' => date("Y-m-d H:i:s", time()),
                'fmsl_comment' => "入区单[" . $sendRow['refercence_no'] . "]获取招宝信息失败,失败原因为:" . $receivingInfo['GetCustomOrderInfoResult']['ErrorMessage'],
            );
            Service_Exception::addExceptionByCode('GodownEntryApproval',$sendRow['refercence_no'] , "入区单[" . $sendRow['refercence_no'] . "]获取招宝信息失败,失败原因为:" . $receivingInfo['GetCustomOrderInfoResult']['ErrorMessage'],true);
            $fmsl = new Service_FtpMessageSendlog();
            $fmsl->add($ftpMessageSendLogRow);
        }
    }
    /**
     * @author william-fam
     * @todo 得到出区单的状态
     */
    function checkCCstatus($sendRow) {
        $requestHead = array(
            'companyid' => $this->companyid,
            'token' => $this->token
        );

        $request['requestHead'] = $requestHead;
        $refercence_no = $sendRow['refercence_no'];
        $request['formId'] = $sendRow['refercence_no'];

        //$request['formId'] = 'BHC130000005';

        $url = $this->apiUrl;
        $client = new SoapClient($url);
        //echo "</pre>";
        //print_r($client->__getFunctions());

        $receivingInfo = $client->GetCustomOrderInfo($request);

        $receivingInfo = Common_Common::objectToArray($receivingInfo);
         //print_r($receivingInfo);
          //exit;
        if (isset($receivingInfo['GetCustomOrderInfoResult']['IsSucess']) && $receivingInfo['GetCustomOrderInfoResult']['IsSucess'] == '1') {

            switch ($receivingInfo['GetCustomOrderInfoResult']['Status']) {
                case "0":
                    $status = '未经过工作人员审核';
                    break;
                case "1":
                    $status = '已审核，待上传至企业端';
                    break;
                case "2":
                    $status = '已暂存至企业端';
                    break;
                case "3":
                    $status = '上传至企业端失败';
                    break;
                case '4':
                    $status = '成功发往海关';
                    break;
                case '5':
                    $status = '委托成功';
                    break;
                case '6':
                    $status = '已配载';
                    break;
                case '7':
                    $status = '已入/出库';
                    break;
                case '8':
                    $status = '海关审核退单';
                    break;
                case '9':
                    $status = '企业删除';
                    break;
                case '10':
                    $status = '海关接收失败';
                    break;
                case '11':
                    $status = '海关审核通过';
                    break;
                case '12':
                    $status = '电子口岸申报失败';
                    break;
                case '13':
                    $status = '海关接收成功';
                    break;
                case '14':
                    $status = '作废';
                    break;
                default:
                    $status = '未知状态' . $receivingInfo['GetCustomOrderInfoResult']['Status'];
            }

            $db = Common_Common::getAdapter();
            $db->beginTransaction();
            try {
                if ($receivingInfo['GetCustomOrderInfoResult']['Status'] == '7' || $receivingInfo['GetCustomOrderInfoResult']['Status'] == '11') {
                    $shipBatchXml = Service_ShipBatchXml::getByField($sendRow['refercence_no'],'sub_sb_code','*');
                    /* $uReceiving['receiving_status'] = 4;
                      $uReceiving['refercence_form_id'] = $receivingInfo['GetCustomOrderInfoResult']['FormIdXml'];
                      $uReceiving['receiving_update_time'] = date('Y-m-d H:i:s');
                      Service_Receiving::update($uReceiving, $receiving['receiving_code'], 'receiving_code'); */
                    $uUpdate['fml_status'] = 3;
                    $uUpdate['fml_update_time'] = date('Y-m-d H:i:s');
                    Service_FtpMessageSendlist::update($uUpdate, $sendRow['fml_id']);
                    $uUpdateShipBatchXml = array(
                        'ship_batch_xml_status'=>'2',
                        'sbx_update_time'=>date("Y-m-d H:i:s"),
                        'refercence_form_id'=>$receivingInfo['GetCustomOrderInfoResult']['FormIdXml'],
                    );
                    Service_ShipBatchXml::update($uUpdateShipBatchXml,$shipBatchXml['sbx_id'],'sbx_id');
                    $shipBatchXmlDetail = Service_ShipBatchXml::getByCondition(array('ship_batch_xml_status'=>'1','sb_code'=>$shipBatchXml['sb_code']),"count(*)");
                    if(!$shipBatchXmlDetail){
                        //总单状态
                        $uShipBatch['sb_status'] = 2;
                        $uShipBatch['sb_update_time'] = date('Y-m-d H:i:s');
                        Service_ShipBatch::update($uShipBatch, $shipBatchXml['sb_code'], 'sb_code');
                        $uAttribute['refercence_form_id'] = $receivingInfo['GetCustomOrderInfoResult']['FormIdXml'];
                        Service_ShipBatchAttribute::update($uAttribute, $shipBatchXml['sb_code'], 'sb_code');
                    }
                    echo '出区单[' . $sendRow['refercence_no'] . "]在招宝的状态是：{$status}\r\n";
                    $ftpMessageSendLogRow = array(
                        'fml_id' => $sendRow['fml_id'],
                        'refercence_no' => $sendRow['refercence_no'],
                        'add_time' => date("Y-m-d H:i:s", time()),
                        'fmsl_comment' => '出区单[' . $sendRow['refercence_no'] . "]在招宝的状态是：{$status}",
                    );
                    $fmsl = new Service_FtpMessageSendlog();
                    $fmsl->add($ftpMessageSendLogRow);
                } else {
                    echo '出区单[' . $sendRow['refercence_no'] . "]在招宝的状态是：{$status},暂未更新出区单状态\r\n";
                    $ftpMessageSendLogRow = array(
                        'fml_id' => $sendRow['fml_id'],
                        'refercence_no' => $sendRow['refercence_no'],
                        'add_time' => date("Y-m-d H:i:s", time()),
                        'fmsl_comment' => '出区单[' . $sendRow['refercence_no'] . "]在招宝的状态是：{$status},暂未更新出区单状态",
                    );
                    $fmsl = new Service_FtpMessageSendlog();
                    $fmsl->add($ftpMessageSendLogRow);
                }
                $db->commit();
            } catch (Exception $e) {
                $db->rollback();
                echo '出区单提交失败[' . $sendRow['refercence_no'] . "]提交失败,数据异常:" . $e->getMessage() . "\r\n";
                $ftpMessageSendLogRow = array(
                    'fml_id' => $sendRow['fml_id'],
                    'refercence_no' => $sendRow['refercence_no'],
                    'add_time' => date("Y-m-d H:i:s", time()),
                    'fmsl_comment' => '出区单提交失败[' . $sendRow['refercence_no'] . "]提交失败,数据异常:" . $e->getMessage(),
                );
                Service_Exception::addExceptionByCode('shipbatchEntryApproval',$sendRow['refercence_no'] , '出区单提交失败[' . $sendRow['refercence_no'] . "]提交失败,数据异常:" . $e->getMessage(),true);
                $fmsl = new Service_FtpMessageSendlog();
                $fmsl->add($ftpMessageSendLogRow);
                return $e->getMessage();
            }
        } else {
            echo "出区单[" . $sendRow['refercence_no'] . "]获取招宝信息失败,失败原因为:" . $receivingInfo['GetCustomOrderInfoResult']['ErrorMessage'] . "\r\n";
            $ftpMessageSendLogRow = array(
                'fml_id' => $sendRow['fml_id'],
                'refercence_no' => $sendRow['refercence_no'],
                'add_time' => date("Y-m-d H:i:s", time()),
                'fmsl_comment' => "出区单[" . $sendRow['refercence_no'] . "]获取招宝信息失败,失败原因为:" . $receivingInfo['GetCustomOrderInfoResult']['ErrorMessage'],
            );
            Service_Exception::addExceptionByCode('shipbatchEntryApproval',$sendRow['refercence_no'] , "出区单[" . $sendRow['refercence_no'] . "]获取招宝信息失败,失败原因为:" . $receivingInfo['GetCustomOrderInfoResult']['ErrorMessage'],true);
            $fmsl = new Service_FtpMessageSendlog();
            $fmsl->add($ftpMessageSendLogRow);
        }
    }

    /**
     * @author william-fan
     * @todo 集报数据
     */
    function jibao($formId) {
        try {
            //$url = "http://www.qhwftpa.com:8002/InterfaceSerivce/CmblCustomService.svc?wsdl";
            $url = $this->apiUrl;

            $requestHead = array(
                'companyid' => $this->companyid,
                'token' => $this->token
            );

            $request['requestHead'] = $requestHead;

            $request['formId'] = $formId;
            if (empty($formId)) {
                throw new Exception("集报单：{$formId}为空");
            }

            //GetGatherOrder
            $url = $this->apiUrl;
            $client = new SoapClient($url);
            //echo "</pre>";
            //print_r($client->__getFunctions());

            $jibaoinfos = $client->GetGatherOrder($request);

            $jibaoinfos = Common_Common::objectToArray($jibaoinfos);

            //print_r($jibaoinfos);


            $apijibao = new Service_ApijibaoProcess();

            $jibaoresult = $apijibao->jibaoprocess($jibaoinfos, $formId);
            //file_put_contents('aaa.txt', var_export($jibaoinfos,true));
            //print_r($jibaoinfos);
            //$db->rollback();
        } catch (Exception $e) {
            //$db->rollback();
        }
    }

    /**
     * @author william-fan
     * @todo 用于将订单数据传送给招宝
     */
    function sendOrder($sbCode) {
        $shipBatch = Service_ShipBatch::getByField($sbCode, 'sb_code');
        $send_count = 0;
        //echo "<pre>";
        //print_r($shipBatch);
        /*$apishipbatch = Service_ApiShipBatchSend::getByField($sbCode, 'sb_code');
        $send_count = 0;
        if (!empty($apishipbatch)) {
            echo "出区单：{$sbCode}已经发送订单数据给招宝\r\n";
            return;
        }*/
        /*if (!empty($apishipbatch)) {
            $send_count = $apishipbatch['send_count'];
        }*/
        $dataList = array();
        if (!empty($shipBatch)) {
            if ($shipBatch['sb_status'] != '') {
                $shipBatchXml = Service_ShipBatchXml::getByCondition(array('sb_code'=>$sbCode),"*",0,0,'sbx_id ASC');
                $orderCodeArr = Service_ShipBatchDetail::getOrderCode($sbCode);
                $orderCodeList = array_chunk($orderCodeArr,ceil(count($orderCodeArr)/count($shipBatchXml)));
                $index = 0;
                foreach($orderCodeList as $orderArr){
                    $apishipbatch = Service_ApiShipBatchSend::getByField($shipBatchXml[$index]['sub_sb_code'], 'sb_code');
                    if(!empty($apishipbatch) ){
                        echo "出区单：{$shipBatchXml[$index]['sub_sb_code']}已经发送订单数据给招宝\r\n";
                        $index++;
                        continue;
                    }
                    if (!empty($apishipbatch)) {
                        $send_count = $apishipbatch['send_count'];
                    }
                    $data = array();
                    foreach($orderArr as $order_code){
                        $orderInfos = Service_Orders::getByField($order_code, 'order_code');
                        //print_r($orderInfos);
                        if (!empty($orderInfos)) {
                            //$orderInfos = Service_Orders::getByField($bagorder['order_code']);
                            $orderAddressCondition = array(
                                'order_code' => $order_code,
                            );
                            $orderAddress = Service_OrderAddressBook::getByCondition($orderAddressCondition);
                            $orderAddressInfo = array();
                            if (!empty($orderAddress)) {
                                foreach ($orderAddress as $address) {
                                    if ($address['oab_type'] == '0') {
                                        $orderAddressInfo = $address;
                                        $country = Service_Country::getByField($address['oab_country_id']);
                                        $orderAddressInfo['country_name'] = $country['country_name'];
                                    }
                                }
                            } else {
                                $orderAddress = array();
                            }

                            $shipOrder = Service_ShipOrder::getByField($orderInfos['order_code'], 'order_code');

                            $order_productCondition = array(
                                'order_code' => $orderInfos['order_code']
                            );
                            $order_product = Service_OrderProduct::getByCondition($order_productCondition, "*");
                            //print_r($order_product);
                            //exit;
                            //$order_product = $orderInfos['order_product'];
                            $orderDetail = array();
                            if (!empty($order_product)) {
                                foreach ($order_product as $op => $product) {
                                    $productInfo = Service_Product::getByField($product['product_id']);
                                    /* print_r($productInfo);
                                      print_r($product);
                                      exit; */
                                    $puName = "个";
                                    $hsCode = $productInfo['hs_code'];
                                    $puCode = $productInfo['pu_code'];
                                    if ($puCode) {
                                        $puInfo = Service_ProductUom::getByField($puCode, 'pu_code');
                                        if (!empty($puInfo)) {
                                            $puName = $puInfo['pu_name'];
                                        }
                                    }
                                    //print_r($puInfo);

                                    $detail = array(
                                        'skuNo' => $productInfo['product_sku'],
                                        'skuName' => $productInfo['product_title_en'],
                                        'skuCnName' => $productInfo['product_title'],
                                        'puName' => $puName,
                                        'hsCode' => $hsCode,
                                        'skuDeclaredValue' => $product['op_declared_value'],
                                        'quantity' => $product['op_quantity'],
                                    );
                                    $hemList = Service_HsElementMap::getByCondition(array('product_id' => $product['product_id']), 'hem_detail');
                                    $elements = array();
                                    foreach ($hemList as $hemRow)
                                        $elements[] = $hemRow['hem_detail'];
                                    $detail['specification'] = implode('|', $elements);
                                    $orderDetail[] = $detail;
                                }
                            }
                            //exit;
                            $customer = Service_Customer::getByField($orderInfos['customer_id']);
                            $changeOrder = '1';
                            if ($orderInfos['order_mode_type'] == '1') {
                                $changeOrder = $orderInfos['change_order'];
                            } else {
                                $changeOrder = '1'; //备货模式换单
                            }

                            $orderInfo = array(
                                'FormID' => $shipBatchXml[$index]['sub_sb_code'],
                                'ID' => $shipBatchXml[$index]['sub_sb_code'],
                                'referenceNo' => $orderInfos['reference_no'],
                                'orderType' => $orderInfos['order_mode_type'],
                                'changeOrder' => $changeOrder,
                                'smCode' => $orderInfos['sm_code'],
                                'tracking_no' => $shipOrder['tracking_number'],
                                'provinceName' => $orderAddressInfo['oab_state'],
                                'consigneeCountry' => $orderAddressInfo['country_name'],
                                'consigneeLastname' => $orderAddressInfo['oab_lastname'],
                                'consigneeFirstname' => $orderAddressInfo['oab_firstname'],
                                'consigneeCompany' => $orderAddressInfo['oab_company'],
                                'consigneePostcode' => $orderAddressInfo['oab_postcode'],
                                'consigneeAddress1' => $orderAddressInfo['oab_street_address1'],
                                'consigneeAddress2' => $orderAddressInfo['oab_street_address2'],
                                'consigneePhone' => $orderAddressInfo['oab_phone'],
                                //邮箱超过50字符的招保无法接收
                                'consigneeEmail' => strlen($orderAddressInfo['oab_email'])>50?"":$orderAddressInfo['oab_email'],
                                'grossWt' => $orderInfos['grossWt'],
                                'currency' => $orderInfos['currency_code'],
                                'charge' => $orderInfos['charge'],
                                'shippingPremiumFee' => $orderInfos['shipping_fee_estimate'],
                                'trade_platform' => $customer['trade_name'],
                                'addTime' => $orderInfos['add_time'],
                                'shipTime' => $shipBatch['sb_ship_time'],
                                'signTime' => '',
                                //'orderDetail'=>$orderDetail,
                                'OrderDetail' => $orderDetail
                            );
                            $orderOptionTime = Service_OrderOperationTime::getByField($orderInfos['order_code'], 'order_code');
                            if (!empty($orderOptionTime)) {
                                $orderInfo['shipTime'] = $orderOptionTime['ship_time'];
                            }
                            //$data [] = array('Tbl_OrderInfo'=>$orderInfo);
                            $data [] = $orderInfo;
                            //$data[] = array('orderinfo'=>$orderInfo);
                        }
                    }
                    $item = array(
                        'sub_sb_code'=>$shipBatchXml[$index]['sub_sb_code'],
                        'data'=>$data
                    );
                    $dataList[] = $item;
                    $index++;
                }
                //获取出货单下面的袋子
                /*$orders = array();
                $bagCondition = array(
                    'sb_code' => $sbCode
                );
                $bags = Service_ShipBatchDetail::getByCondition($bagCondition);
                //print_r($bags);
                $data = array();
                if (!empty($bags)) {
                    foreach ($bags as $key => $bag) {
                        //获取袋子和订单的关联信息
                        $bagOrders = Service_OutboundBagDetail::getByCondition(array('ob_no' => $bag['ob_no']));
                        //print_r($bagOrders);
                        if (!empty($bagOrders)) {
                            foreach ($bagOrders as $keyb => $bagorder) {
                                $orderInfos = Service_Orders::getByField($bagorder['order_code'], 'order_code');
                                //print_r($orderInfos);
                                if (!empty($orderInfos)) {
                                    //$orderInfos = Service_Orders::getByField($bagorder['order_code']);
                                    $orderAddressCondition = array(
                                        'order_code' => $bagorder['order_code'],
                                    );
                                    $orderAddress = Service_OrderAddressBook::getByCondition($orderAddressCondition);
                                    $orderAddressInfo = array();
                                    if (!empty($orderAddress)) {
                                        foreach ($orderAddress as $address) {
                                            if ($address['oab_type'] == '0') {
                                                $orderAddressInfo = $address;
                                                $country = Service_Country::getByField($address['oab_country_id']);
                                                $orderAddressInfo['country_name'] = $country['country_name'];
                                            }
                                        }
                                    } else {
                                        $orderAddress = array();
                                    }

                                    $shipOrder = Service_ShipOrder::getByField($orderInfos['order_code'], 'order_code');

                                    $order_productCondition = array(
                                        'order_code' => $orderInfos['order_code']
                                    );
                                    $order_product = Service_OrderProduct::getByCondition($order_productCondition, "*");
                                    //print_r($order_product);
                                    //exit;
                                    //$order_product = $orderInfos['order_product'];
                                    $orderDetail = array();
                                    if (!empty($order_product)) {
                                        foreach ($order_product as $op => $product) {
                                            $productInfo = Service_Product::getByField($product['product_id']);

                                            $puName = "个";
                                            $hsCode = $productInfo['hs_code'];
                                            $puCode = $productInfo['pu_code'];
                                            if ($puCode) {
                                                $puInfo = Service_ProductUom::getByField($puCode, 'pu_code');
                                                if (!empty($puInfo)) {
                                                    $puName = $puInfo['pu_name'];
                                                }
                                            }
                                            //print_r($puInfo);

                                            $detail = array(
                                                'skuNo' => $productInfo['product_sku'],
                                                'skuName' => $productInfo['product_title_en'],
                                                'skuCnName' => $productInfo['product_title'],
                                                'puName' => $puName,
                                                'hsCode' => $hsCode,
                                                'skuDeclaredValue' => $product['op_declared_value'],
                                                'quantity' => $product['op_quantity'],
                                            );
                                            $hemList = Service_HsElementMap::getByCondition(array('product_id' => $product['product_id']), 'hem_detail');
                                            $elements = array();
                                            foreach ($hemList as $hemRow)
                                                $elements[] = $hemRow['hem_detail'];
                                            $detail['specification'] = implode('|', $elements);
                                            $orderDetail[] = $detail;
                                        }
                                    }
                                    //exit;
                                    $customer = Service_Customer::getByField($orderInfos['customer_id']);
                                    $changeOrder = '1';
                                    if ($orderInfos['order_mode_type'] == '1') {
                                        $changeOrder = $orderInfos['change_order'];
                                    } else {
                                        $changeOrder = '1'; //备货模式换单
                                    }

                                    $orderInfo = array(
                                        'FormID' => $sbCode,
                                        'ID' => $sbCode,
                                        'referenceNo' => $orderInfos['reference_no'],
                                        'orderType' => $orderInfos['order_mode_type'],
                                        'changeOrder' => $changeOrder,
                                        'smCode' => $orderInfos['sm_code'],
                                        'tracking_no' => $shipOrder['tracking_number'],
                                        'provinceName' => $orderAddressInfo['oab_state'],
                                        'consigneeCountry' => $orderAddressInfo['country_name'],
                                        'consigneeLastname' => $orderAddressInfo['oab_lastname'],
                                        'consigneeFirstname' => $orderAddressInfo['oab_firstname'],
                                        'consigneeCompany' => $orderAddressInfo['oab_company'],
                                        'consigneePostcode' => $orderAddressInfo['oab_postcode'],
                                        'consigneeAddress1' => $orderAddressInfo['oab_street_address1'],
                                        'consigneeAddress2' => $orderAddressInfo['oab_street_address2'],
                                        'consigneePhone' => $orderAddressInfo['oab_phone'],
                                        //邮箱超过50字符的招保无法接收
                                        'consigneeEmail' => strlen($orderAddressInfo['oab_email'])>50?"":$orderAddressInfo['oab_email'],
                                        'grossWt' => $orderInfos['grossWt'],
                                        'currency' => $orderInfos['currency_code'],
                                        'charge' => $orderInfos['charge'],
                                        'shippingPremiumFee' => $orderInfos['shipping_fee_estimate'],
                                        'trade_platform' => $customer['trade_name'],
                                        'addTime' => $orderInfos['add_time'],
                                        'shipTime' => $shipBatch['sb_ship_time'],
                                        'signTime' => '',
                                        //'orderDetail'=>$orderDetail,
                                        'OrderDetail' => $orderDetail
                                    );
                                    $orderOptionTime = Service_OrderOperationTime::getByField($orderInfos['order_code'], 'order_code');
                                    if (!empty($orderOptionTime)) {
                                        $orderInfo['shipTime'] = $orderOptionTime['ship_time'];
                                    }
                                    //$data [] = array('Tbl_OrderInfo'=>$orderInfo);
                                    $data [] = $orderInfo;
                                    //$data[] = array('orderinfo'=>$orderInfo);
                                }
                            }
                        }
                    }
                }*/

                //$result['OrderInfo'] = $data;
            } else {
                /*$result['ask'] = '0';
                $error = $result['error'];
                $error[] = array('errorMessage' => '出货单状态不对');
                $result['error'] = $error;*/
                //$result['Error'] =
                echo "出货单[{$sbCode}]状态不对\r\n";
            }
        } else {
            /*$result['ask'] = '0';
            $error = $result['Error'];
            $error[] = array('errorMessage' => '出货单不存在');
            $result['error'] = $error;*/
            echo "出货单[{$sbCode}]不存在\r\n";
        }

        $requestHead = array(
            'companyid' => $this->companyid,
            'token' => $this->token
        );

        //$request['RequestHead'] = $requestHead;
        //$request['requestHead'] = $requestHead;
        $request['head'] = $requestHead;


        //$request['OrderInfo']=array();
        //$request['orderinfo'] = $data;

        //$request['formId'] = 'BHR140000589';

        $url = "http://www.qhwftpa.com:8002/InterfaceSerivce/OrderSevricer.svc?wsdl";
        $client = new SoapClient($url);
        //echo "</pre>";
        //print_r($client->__getFunctions());
        if(!empty($dataList)){
            foreach($dataList as $sendData){
                $request['orderinfo'] = $sendData['data'];
                $sysorder = $client->SynOrder($request);
                $sysorder = Common_Common::objectToArray($sysorder);
                $db = Common_Common::getAdapter();
                $db->beginTransaction();
                try {

                    if ($sysorder['SynOrderResult']['state'] == '1') {
                        //Service_ApiShipBatchSend::delete($sbCode,'sb_code');
                        //$tozhaobao = json_encode($request);
                        //echo $tozhaobao."\r\n";
                        if (!empty($apishipbatch)) {
                            $shipbatchSendRow = array(
                                'send_count' => $send_count + 1,
                                'update_time' => date("Y-m-d H:i:s", time())
                            );
                            Service_ApiShipBatchSend::update($shipbatchSendRow,$apishipbatch['asbs_id']);
                        }else{
                            $shipbatchSendRow = array(
                                'sb_code' => $sendData['sub_sb_code'],
                                'status' => '1',
                                'send_count' => $send_count + 1,
                                'update_time' => date("Y-m-d H:i:s", time())
                            );
                            Service_ApiShipBatchSend::add($shipbatchSendRow);
                        }
                        //$db->rollback();
                        $db->commit();
                        echo "发送出区单[" . $sendData['sub_sb_code'] . "]订单成功\r\n";
                    } else {
                        //echo '出区单提交失败['.$sendRow['refercence_no']."]提交失败,数据异常:".$e->getMessage()."\r\n";
                        //return $e->getMessage();
                        throw new Exception($sysorder['SynOrderResult']['err']);
                    }
                } catch (Exception $e) {
                    $db->rollback();
                    echo "发送出区单[" . $sendData['sub_sb_code'] . "]失败,数据异常:" . $e->getMessage() . "\r\n";
                }
            }
        }
        return true;
        //exit;

        //$sysorder = $client->SynOrder($request);

        //print_r($sysorder);


        /* $orderxml=$client->__getLastRequest();
          file_put_contents('order.xml', var_export($orderxml));
         */
        /*$sysorder = Common_Common::objectToArray($sysorder);
        //print_r($sysorder);
        //print_r($request);
        $db = Common_Common::getAdapter();
        $db->beginTransaction();

        try {

            if ($sysorder['SynOrderResult']['state'] == '1') {
                //Service_ApiShipBatchSend::delete($sbCode,'sb_code');
                $tozhaobao = json_encode($request);
                //echo $tozhaobao."\r\n";
                if (!empty($apishipbatch)) {
                    $shipbatchSendRow = array(
                        'send_count' => $send_count + 1,
                        'update_time' => date("Y-m-d H:i:s", time())
                    );
                    Service_ApiShipBatchSend::update($shipbatchSendRow,$apishipbatch['asbs_id']);
                }else{
                    $shipbatchSendRow = array(
                        'sb_code' => $sbCode,
                        'status' => '1',
                        'send_count' => $send_count + 1,
                        'update_time' => date("Y-m-d H:i:s", time())
                    );
                    Service_ApiShipBatchSend::add($shipbatchSendRow);
                }
                //$db->rollback();
                $db->commit();
                echo "发送出区单[" . $sbCode . "]订单成功\r\n";
            } else {
                //echo '出区单提交失败['.$sendRow['refercence_no']."]提交失败,数据异常:".$e->getMessage()."\r\n";
                //return $e->getMessage();
                throw new Exception($sysorder['SynOrderResult']['err']);
            }
        } catch (Exception $e) {
            $db->rollback();
            echo "发送出区单[" . $sbCode . "]失败,数据异常:" . $e->getMessage() . "\r\n";
        }*/
        //print_r($sysorder);
        //return $result;
    }

    /**
     * @author william-fan
     * @todo 用于得到集报单号
     */
    function jibaoNO() {
        $url = "http://www.qhwftpa.com:8002/InterfaceSerivce/CmblCustomService.svc?wsdl";

        $requestHead = array(
            'companyid' => 'SZBH',
            'token' => '61B78DAC-336E-4BBF-9104-D3CE03E12936'
        );

        $request['requestHead'] = $requestHead;

        $client = new SoapClient($url, array('trace' => 1));
        //print_r($client);
        $gatherNO = $client->GetGatherNO($request);

        $gatherNO = Common_Common::objectToArray($gatherNO);
        if (isset($gatherNO['GetGatherNOResult']['string'])) {
            $jibaoNos = $gatherNO['GetGatherNOResult']['string'];

            if (!empty($jibaoNos)) {
                foreach ($jibaoNos as $key => $jibaoId) {
                    $jibaoId = trim($jibaoId);
                    $formInfo = Service_ApiJibaoFormid::getByField($jibaoId, 'FORM_ID');
                    if (empty($formInfo)) {
                        //不存在加到数据里面
                        //echo $jibaoId."有数据<br/>";
                        $formRow = array(
                            'FORM_ID' => $jibaoId
                        );
                        Service_ApiJibaoFormid::add($formRow);
                    }
                }
            } else {
                echo "招宝集报接口为空\r\n";
            }
        } else {
            echo "获取集报接口失败\r\n";
        }
    }

    /**
     * @author william-fan
     * @todo 用于获取出库归并明细接口
     */
    function chukugb($sb_code) {
        try {
            $url = $this->apiUrl;

            $requestHead = array(
                'companyid' => $this->companyid,
                'token' => $this->token
            );

            $request['requestHead'] = $requestHead;

            $request['formid'] = $sb_code;

            if ($sb_code == '') {
                echo "传输的出区单号为空\r\n";
                return false;
            }
            $sbMinfo = Service_ShipBatchMerge::getByField($sb_code, 'FORM_ID');
            if (!empty($sbMinfo)) {
                echo "出区单[$sb_code]已经存在归并信息\r\n";
                return false;
            }
            $client = new SoapClient($url, array('trace' => 1));
            //print_r($client);
            $ckgbinfos = $client->GetMergerDetail($request);
            $ckgbinfos = Common_Common::objectToArray($ckgbinfos);
            if ($ckgbinfos['errorMessage'] != '') {
                echo "出区单号[" . $sb_code . "]招宝返回错误信息:" . $ckgbinfos['errorMessage'] . "\r\n";
                return false;
            }
            $chuquInfos = $ckgbinfos['GetMergerDetailResult']['Tbl_IDX_CUSTOM_IE_MERGER_DETAILS'];

            //print_r($chuquInfos);
            //return;
            if (empty($chuquInfos)) {
                echo "出区单号:[{$sb_code}]在招宝系统暂时未获取其归并信息\r\n";
                return false;
            }
            $this->addChuqu($sb_code, $chuquInfos);
        } catch (Exception $e) {
            //$db->rollback();
            echo "发送出区单[" . $sb_code . "]失败,数据异常:" . $e->getMessage() . "\r\n";
        }
    }

    /**
     * @author william-fan
     * @todo 用于添加归并信息
     */
    public function addChuqu($sb_code, $chuquInfos) {
        $db = Common_Common::getAdapter();
        $db->beginTransaction();
        try {
            Service_ShipBatchMerge::delete($sb_code, 'FORM_ID');
            if (isset($chuquInfos[0])) {
                //$chuquInfos[0] = $chuquInfos;
                foreach ($chuquInfos as $key => $sbmRow) {
                    //print_r($sbmRow);
                    $sbmId = Service_ShipBatchMerge::add($sbmRow);
                    if (!$sbmId) {
                        throw new Exception("插入出区单归并信息错误[{$sb_code}]");
                    }
                }
            } else {
                $sbmId = Service_ShipBatchMerge::add($chuquInfos);
                if (!$sbmId) {
                    throw new Exception("插入出区单归并信息错误[{$sb_code}]");
                }
            }
            $db->commit();
            echo "成功生成出区单归并信息[{$sb_code}]\r\n";
        } catch (Exception $e) {
            $db->rollback();
            echo "发送出区单[" . $sb_code . "]失败,数据异常:" . $e->getMessage() . "\r\n";
        }
    }

    public function updateJibao($formId){
        try {
            //$url = "http://www.qhwftpa.com:8002/InterfaceSerivce/CmblCustomService.svc?wsdl";
            $url = $this->apiUrl;

            $requestHead = array(
                'companyid' => $this->companyid,
                'token' => $this->token
            );

            $request['requestHead'] = $requestHead;

            $request['formId'] = $formId;
            if (empty($formId)) {
                throw new Exception("集报单：{$formId}为空");
            }

            //GetGatherOrder
            $url = $this->apiUrl;
            $client = new SoapClient($url);
            //echo "</pre>";
            //print_r($client->__getFunctions());

            $jibaoinfos = $client->GetGatherOrder($request);

            $jibaoinfos = Common_Common::objectToArray($jibaoinfos);

            //print_r($jibaoinfos);


            $apijibao = new Service_ApijibaoProcess();

            $jibaoresult = $apijibao->updateJibaoProcess($jibaoinfos, $formId);
            //file_put_contents('aaa.txt', var_export($jibaoinfos,true));
            //print_r($jibaoinfos);
            //$db->rollback();
        } catch (Exception $e) {
            //$db->rollback();
        }
    }

    public function sendSummaryOrder($sendRow){
        //传递的是product_goods表的数据
        //事务
        $db = Common_Common::getAdapter();
        $db->beginTransaction();
        try {
            $url = "http://www.qhwftpa.com:8003/CmblCustomJob2/CmblCustomService.svc?wsdl";

            $requestHead = array(
                'companyid' => $this->companyid,
                'token' => $this->token
            );

            $request['requestHead'] = $requestHead;
            $ftProcess = new Service_FtpMessageProcess();
            $firstPath = $ftProcess->getBasePath() . $sendRow['cmbl_xml_path'];
            if ($sendRow['cmbl_xml_path'] != '' && file_exists($firstPath)) {
                $xmlcontent = file_get_contents($firstPath);
                $request['orderList'][0] = $xmlcontent;
            }else{
                $affect = $ftProcess->updateSummaryOrderMessage($sendRow);
                if (!$affect) {
                    echo "创建核注清单报文失败[" . $sendRow['invt_no'] . "]\r\n";
                    return false;
                }
                $xmlPath = Service_OrderSendList::getByField($sendRow['osl_id'],'osl_id',"*");
                $xmlcontent = file_get_contents($ftProcess->getBasePath().$xmlPath['cmbl_xml_path']);
                $request['orderList'][0] = $xmlcontent;
            }
            $client = new SoapClient($url, array('trace' => 1));
            //var_dump($request);
            $uploadInfo = $client->UploadSummaryOrder($request);
            if(is_object($uploadInfo)){
                $resultInfo = Common_Common::objectToArray($uploadInfo);
            }else{
                $resultInfo = $uploadInfo;
            }

            //var_dump($resultInfo);
            if ($resultInfo['UploadSummaryOrderResult']['ResponseMessage']['IsSucess'] == '1') {
                $aUpdate['cmbl_send_status'] = 2;
                Service_OrderSendList::update($aUpdate, $sendRow['osl_id'],"osl_id");
                echo "发送核注清单报文成功[" . $sendRow['invt_no'] . "]\r\n";
                $db->commit();
            } else {
                //$db->commit();
                throw new Exception($resultInfo['UploadSummaryOrderResult']['ResponseMessage']['ErrorMessage']);
            }
        } catch (Exception $e) {
            $db->rollback();
            echo $e->getMessage();
        }
    }
}
