| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418 | <?php defined('BASEPATH') OR exit('No direct script access allowed');header("Access-Control-Allow-Origin: *");class Systemfoutfz extends Start_Controller {	public function __construct(){		parent::__construct();		$this->load->library('session');		$this->load->_model('Model_whlabel','whlabel');		$this->load->_model('Model_warehouse','warehouse');		$this->load->_model('Model_productprice','productprice');		$this->load->_model('Model_excel','excel');		$this->load->_model('Model_fullorder','fullorder');		$this->load->_model('Model_fullordertt','fullordertt');		$this->load->_model('Model_fullorderamz','fullorderamz');		$this->load->_model('Model_fullordersmt','fullordersmt');		$this->load->_model('Model_outbound','outbound');		$this->load->_model('Model_express','express');		$this->load->_model('Model_shop','shop');		$this->load->_model('Model_typeclass','typeclass');		$this->load->_model('Model_country','country');		$this->load->_model('Model_kdniao','kdniao');		$this->load->_model('Model_notice','notice');		$this->load->_model('Model_dhl','dhl');		$this->load->_model('Model_dhlhz','dhlhz');		$this->load->_model('Model_usps','usps');		$this->load->_model('Model_fedex','fedex');		$this->load->_model('Model_fedex_cby','fedex_cby');		$this->load->_model('Model_ups','ups');		$this->load->_model('Model_ali','ali');		$this->load->_model('Model_dpd','dpd');		$this->load->_model('Model_shop','shop');		$this->load->_model('Model_user','user');		$this->load->_model('Model_whlabel','whlabel');		$this->load->_model('Model_specialstock','specialstock');		$this->load->_model('Model_ck','ck');		$this->load->_model('Model_whlabellabel','whlabellabel');		$this->load->_model('Model_apiyy','apiyy');		$this->load->helper('url');		$this->load->_model('Model_whlabel_fc','whlabel_fc');		$this->load->_model('Model_systemtransfer','systemtransfer');		$this->load->_model('Model_classid','classid');		$this->load->_model('Model_allocation','allocation');		$this->load->_model('Model_fullorderxw','fullorderxw');		$this->load->_model('Model_fullorderpaypal','fullorderpaypal');		$this->load->_model("Model_logic_ding","logic_ding");		$this->load->_model("Model_fedexv1",'fedexv1');		$this->load->_model("Model_zzquque_u9","zzquque_u9");		$this->load->_model("Model_customsdeclaration","customsdeclaration");	}	//定义方法的调用规则 获取URI第二段值    public function _remap($arg,$arg_array)    {		if($arg == 'exceltwo')        {             $this->_exceltwo($arg_array);        }		else		{			 $this->_index();		}    }	public function _exceltwo($arg_array)    {		if(isset($_SESSION['api']))		{			$user = $this->user->get_api($_SESSION['api']);			$usp = $user;		    $fgshop = "";$sid = "";$wid="";$wtype="";		    $usersp = explode('|',trim($user['shop'],'|'));			$userwh = explode('|',trim($user['warehouse'],'|'));			foreach ($usersp as $value) 		    {				$fgshop .= " shop = ".$value." or";				$sid .= " id = ".$value." or";			}			foreach ($userwh as $value) 		    {				$wid .= " id = ".$value." or";				$wtype .= " type = ".$value." or";			}			if($user['userid'] == 'xw')			{				$xw = 1;			}		}		if(isset($_GET['fexcel']))  		{			$dowid = $this->input->get('a');			$wid = "";			if($dowid != "")			{				$id_arr =  explode(',',rtrim($dowid,','));				foreach ($id_arr as $v) 		        {                    $wid  .= " id = '$v' or";                }				$wid = " and".rtrim($wid,'or');			}		    $t = $this->input->get('t',true);			$timetk = $this->input->get('timetk',true);			$timetj = $this->input->get('timetj',true);			$shop = $this->input->get('shop',true);			$source = $this->input->get('source',true);			$orderinfo = $this->input->get('orderinfo',true);			$number = $this->input->get('number',true);			$library = $this->input->get('library',true);			$waybill = $this->input->get('waybill',true);			$express = $this->input->get('express',true);			$type = $this->input->get('type',true);			$so = $this->input->get('so',true);			$timetk = strtotime($timetk);			$timetj = strtotime($timetj);			$where = (isset($_SESSION['api']))?"library!=3 and libraryconfirm=2 and print = 3 and (".rtrim($wtype,'or').")":"id = '0'";			if($timetk && $timetj && $library == 1)            {				//$cxtime = 'reviewtime';                $where  .= "  and printtime > '$timetk - 180*24*3600' and printtime < '$timetj'";				$where  .= " and state != 217";				            }			else if($timetk && $timetj && $library == 2)            {				$cxtime = 'librarytime';                $where  .= " and librarytime > '$timetk' and librarytime < '$timetj'";            }					if(isset($_SESSION['api']))            {				if($type)            	{                	$where  .= " and type = '$type'";           		}				else				{					$uw = '';				    $u = $this->user->get_api($_SESSION['api']);				    $u['warehouse'] =  explode('|',trim($u['warehouse'],'|'));				    foreach ($u['warehouse'] as $v) 		            {					    $uw  .= " type = '$v' or";                    }				    $uw = rtrim($uw,'or');					$uw = " and (".ltrim($uw,' ').")";					$where  .= $uw;				}            }			else			{				echo json_encode(array('msg'=>'导出失败,请重新登陆!','success'=>false));exit;			}			if($shop)            {                $where  .= " and shop = '$shop'";            }			if($number)            {                $where  .= " and number = '$number'";            }			if($library)            {                $where  .= " and library = '$library'";            }			if($waybill)            {                $where  .= " and waybill = '$waybill'";            }			if($express)            {				$where  .= " and express = '$express'";            }			if($orderinfo)            {                $where  .= " and orderinfo = '$orderinfo'";            }			if($so)            {                $where  .= " and shipremarks like '%$so%'";            }            //数据排序			//$order_str = ($print != 3)?"id desc":"librarytime desc";			$order_str = "librarytime desc";            if(empty($page))		    {                $start = 0;		    	$perpage = 1;            }		    else		    {                $start = ($page - 1)*$perpage;            }			$typeclass = array();			$tclass = $this->typeclass->find_all();			foreach ($tclass as $v) 			{				$typeclass[$v['id']] = $v;			}			$classid = $classid = $this->classid->sku();			$shop_list = $this->shop->find_all();			$shop_list = array_column($shop_list,'shopname','id');			$express_list = $this->express->find_all();			$express_list = array_column($express_list,'servicename','id');			$warehouse_list = $this->warehouse->find_all();			$warehouse_list = array_column($warehouse_list,'title','id');			$info_list = $this->_getAndTransfer('fullorder',$where.$wid,$order_str,$shop_list,$express_list,$warehouse_list,$classid,$typeclass);			$info_listsmt = $this->_getAndTransfer('fullordersmt',$where.$wid,$order_str,$shop_list,$express_list,$warehouse_list,$classid,$typeclass);			$info_listtt = $this->_getAndTransfer('fullordertt',$where.$wid,$order_str,$shop_list,$express_list,$warehouse_list,$classid,$typeclass);			$info_listamz = $this->_getAndTransfer('fullorderamz',$where.$wid,$order_str,$shop_list,$express_list,$warehouse_list,$classid,$typeclass);			$info_listxw = $this->_getAndTransfer('fullorderxw',$where.$wid,$order_str,$shop_list,$express_list,$warehouse_list,$classid,$typeclass);												$list = [];			$list = array_merge($info_list,$info_listsmt,$info_listtt,$info_listamz,$info_listxw);			// $final_list = [];			// foreach(){			// }						//生成excel            $filename = '订单出库-'.date('Ymd',time()).".xlsx";            $str = "<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">            <head>            <!--[if gte mso 9]><xml>            <x:ExcelWorkbook>            <x:ExcelWorksheets>            <x:ExcelWorksheet>            <x:Name>EXCEL</x:Name>            <x:WorksheetOptions>            <x:Print>            <x:ValidPrinterInfo />            </x:Print>            </x:WorksheetOptions>            </x:ExcelWorksheet>            </x:ExcelWorksheets>            </x:ExcelWorkbook>            </xml>            <![endif]-->            </head><body>";            $str .= "<table border=1 style='font-family: Microsoft Yahei;font-size: 13px;'>";             $str .= "<tr><td>编码</td><td>出库时间</td><td>仓库品名</td><td>申报条数</td><td>品名</td><td>料品</td><td>料品条数</td></tr>";            foreach ($list as $key=>$value)             { 				foreach($value['trans_list'] as $k=>$v){					$str .= "<tr>";					$str .= "<td>". $value['number']. "</td>";					$str .= "<td>". $value['librarytime']. "</td>";						$str .= "<td>". $value['shipremarks']. "</td>";						$str .= "<td>". $value['ts']. "</td>";						$str .= "<td>". $v['pm']. "</td>";					$str .= "<td>". $v['jm']. "</td>";					$str .= "<td>". $v['ts']. "</td>";					$str .= "</tr>";				}												                          }            $str .= "</table></body></html>";             header( "Content-Type: application/vnd.ms-excel; name='excel'" );             header( "Content-type: application/octet-stream" );             header( "Content-Disposition: attachment; filename=".$filename );             header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );             header( "Pragma: no-cache" );             header( "Expires: 0" );             exit($str); 				}	}			/**	 * 对多个平台的数据进行循环处理	 */	private function _getAndTransfer($table,$where,$order_str,$shop_list,$express_list,$warehouse_list,$classid,$typeclass){		 //取得信息列表		 $info_list = $this->$table->find_all($where,'shop,type,orderinfo,number,waybill,express,print,library,librarytime,shipremarks,ts,fpdata',$order_str);		 //格式化数据		foreach ($info_list as $key=>$value) 		{			$info_list[$key]['shop'] = isset($shop_list[$value['shop']])?$shop_list[$value['shop']]: "";			if($value['waybill'] == '0')			{				$info_list[$key]['waybill'] = "";			}			$info_list[$key]['express'] = isset($express_list[$value['express']])?$express_list[$value['express']]:"";					$info_list[$key]['type'] = isset($warehouse_list[$value['type']])?$warehouse_list[$value['type']]: "";			if($value['print'] == 1)			{				$info_list[$key]['print'] = '不可打印';			}			else if($value['print'] == 2)			{				$info_list[$key]['print'] = '未打印';			}			else if($value['print'] == 3)			{				$info_list[$key]['print'] = '已打印';			}			if($value['library'] == 1)			{				$info_list[$key]['library'] = '<em class="c">未出库</em>';			}			else if($value['library'] == 2)			{				$info_list[$key]['library'] = '<em class="c">已出库</em>';			}			else if($value['library'] == 3)			{				$info_list[$key]['library'] = '<em class="c">已退库</em>';			}			if($value['librarytime'] == '0')			{				$info_list[$key]['librarytime'] = '<em class="t"></em>';			}			else			{				$info_list[$key]['librarytime'] = '<em class="t">'.date('Y-m-d H:i:s',$value['librarytime']).'</em>';			}			$dbapi = explode(';',trim($value['fpdata'],';'));			$trans_list = [];			foreach ($dbapi as $va) 			{				$pm = $classid;				$jm = $classid;				$bmpx = array(13=>'',16=>'',18=>'',25=>'',26=>'',41=>'');				$features = str_replace(array('-163-','-164-','-165-','-166-'),'-',$va);				$ts = explode('|',trim($features,'|'));				if(stripos($ts[0],',') !== false)				{					$ft = explode(',',$ts[0]);					$features = explode('-',trim($ft[1],'-'));					$features[] = $ft[0];				}				else				{					$features = explode('-',trim($ts[0],'-'));				}				foreach($features as $k=>$v)				{					if(isset($typeclass[$v]) && isset($bmpx[$typeclass[$v]['classid']]))					{						if($typeclass[$v]['bm'] != '')						{							$bmpx[$typeclass[$v]['classid']] = $typeclass[$v]['bm'];						}					}					if($v != 0 && isset($typeclass[$v]))					{						if($typeclass[$v]['classid'] == 13)						{							$dj = $typeclass[$v]['title'];						}						if($typeclass[$v]['classid'] == 8)						{							$ys = $typeclass[$v]['title'];						}						if($typeclass[$v]['classid'] == 15)						{							$hx = $typeclass[$v]['title'];						}						if(isset($pm[$typeclass[$v]['classid']]))						{							if($typeclass[$v]['title'] == '9A')							{								$pm[$typeclass[$v]['classid']] = '9A';							}							else if($typeclass[$v]['title'] == '10A')							{								$pm[$typeclass[$v]['classid']] = '10A';							}							else							{								$clzh = $typeclass[$v]['zh'];								if(stripos($typeclass[$v]['zh'],'|') !== false)								{									$clzh = explode('|',rtrim($typeclass[$v]['zh'],'|'));									$clzh = $clzh[0];								}								$pm[$typeclass[$v]['classid']] = $clzh;							}						}						if(isset($jm[$typeclass[$v]['classid']]))						{							if($typeclass[$v]['jm'])							{								$jm[$typeclass[$v]['classid']] = $typeclass[$v]['jm'];							}						}					}				}				$jm = array_filter($jm);//去除空值				$jm = implode("-",$jm);				$pm = array_filter($pm);//去除空值				$zh = implode(" ",$pm);				$zh = preg_replace("/\r\n|\r|\n/",'',trim($zh,' '));				$trans_list[] = [					'jm'=>$jm ,					'pm'=>$zh,					'ts'=>isset($ts[2])?$ts[2]:json_encode($ts),				];			}			$info_list[$key]['trans_list'] = $trans_list;				}		return $info_list;	}}
 |