display('index'); } /*获取需要导出大件标签*/ public function exportDetail(){ $field="product_name"; if($_SESSION['ly_admin_']['user_auth']['uid']==1){ $productlist = M('qcode_product')->field($field)->where('id!=0')->select(); $user_list = array(); $user_list[0] = ['id'=>0,'nickname'=>'全部']; $user_list_1 = M('admin_user') ->alias('a') ->join('qr_admin_access access on a.id = access.uid') ->field('a.id,a.nickname') ->where('a.status = 1 and (access.group = 4 or access.group = 1)') ->select(); $user_list = array_merge($user_list,$user_list_1); }else{ $product_id = M('admin_user')->where('id = '.$_SESSION['ly_admin_']['user_auth']['uid'])->getField('product_id'); $productlist = []; if(!empty($product_id)){ $productlist = M('qcode_product')->where('id in ('.$product_id.')')->select(); } $user_list = array(); $user_list[0] = ['id'=>$_SESSION['ly_admin_']['user_auth']['uid'],'nickname'=>$_SESSION['ly_admin_']['user_auth']['nickname']]; } $this->assign('productlist',$productlist); $this->assign('userlist',$user_list); $this->display('detail'); } /*获取导出列表*/ public function exportExcel(){ $field="product_name"; if($_SESSION['ly_admin_']['user_auth']['uid']==1){ $productlist = M('qcode_product')->field($field)->where('id!=0')->select(); $user_list = array(); $user_list[0] = ['id'=>0,'nickname'=>'全部']; $user_list_1 = M('admin_user') ->alias('a') ->join('qr_admin_access access on a.id = access.uid') ->field('a.id,a.nickname') ->where('a.status = 1 and (access.group = 4 or access.group = 1)') ->select(); $user_list = array_merge($user_list,$user_list_1); }else{ $product_id = M('admin_user')->where('id = '.$_SESSION['ly_admin_']['user_auth']['uid'])->getField('product_id'); $productlist = []; if(!empty($product_id)){ $productlist = M('qcode_product')->where('id in ('.$product_id.')')->select(); } $user_list = array(); $user_list[0] = ['id'=>$_SESSION['ly_admin_']['user_auth']['uid'],'nickname'=>$_SESSION['ly_admin_']['user_auth']['nickname']]; } $this->assign('productlist',$productlist); $this->assign('userlist',$user_list); $this->display('excel'); } /*此方法暂时搁置*/ public function exportBach(){ $field="product_name"; if($_SESSION['ly_admin_']['user_auth']['uid']==1){ $productlist = M('qcode_product')->field($field)->where('id!=0')->select(); $user_list = array(); $user_list[0] = ['id'=>0,'nickname'=>'全部']; $user_list_1 = M('admin_user') ->alias('a') ->join('qr_admin_access access on a.id = access.uid') ->field('a.id,a.nickname') ->where('a.status = 1 and (access.group = 4 or access.group = 1)') ->select(); $user_list = array_merge($user_list,$user_list_1); }else{ $product_id = M('admin_user')->where('id = '.$_SESSION['ly_admin_']['user_auth']['uid'])->getField('product_id'); $productlist = []; if(!empty($product_id)){ $productlist = M('qcode_product')->where('id in ('.$product_id.')')->select(); } $user_list = array(); $user_list[0] = ['id'=>$_SESSION['ly_admin_']['user_auth']['uid'],'nickname'=>$_SESSION['ly_admin_']['user_auth']['nickname']]; } $this->assign('productlist',$productlist); $this->assign('userlist',$user_list); $this->display('bach'); } /*获取大件详情*/ public function getBigData(){ /*批次有正常和删除状态,0为未删除,1为已删除;大件0为未删除,1为已删除*/ $session_config=I('session.ly_admin_');//获取登陆的session值 $where = []; if($_POST['sysCdNm']){//有搜索产品名称 $where['a.matter_name'] = $_POST['sysCdNm']; } if($_POST['startDate']){//有开始打印日期 $statrtime=((int)date('Ymd',(strtotime($_POST['startDate'])))-20000000); $endtime=((int)date('Ymd',(strtotime($_POST['endDate'])))-20000000); $where['a.manufacture_date']=array(array('egt',$statrtime),array('elt',$endtime),'AND'); } if($session_config['user_auth']['uid']==1){ if($_POST['user_name']!=0){ $where['a.userid']=$_POST['user_name']; } }else{ $where['a.userid']=$session_config['user_auth']['uid']; } if($_POST['bach_num']!=''){ $where['a.bach_num']=array('like','%'.trim($_POST['bach_num']).'%'); } $where['a.bach_status']=0; $where['large.l_status']=0; $BatchList=M('qcode_bach') ->alias('a') ->join('qr_qcode_large large on large.bach_id=a.id') ->field('a.id bach_id,a.matter_name,a.manufacture_date,a.tray_num,a.bach_num,large.code_cp1,large.id large_id,large.code') ->order($_POST['sort'].' '.$_POST['order']) ->page($_POST['page'],$_POST['rows']) ->where($where) ->select(); $total = M('qcode_bach')->alias('a') ->join('qr_qcode_large large on large.bach_id=a.id') ->where($where) ->count(); /*查询第三个值*/ foreach($BatchList as &$v){ $v['count'] = M('qcode_small')->where('large_id = '.$v['large_id'].' and status = 0')->count(); } $result = []; $result['total'] = $total; $result['rows'] = $BatchList; $bachlist = json_encode($result); echo $bachlist; } /*获取excel详情*/ public function getExcelData(){ /*批次有正常和删除状态,0为未删除,1为已删除;大件0为未删除,1为已删除*/ $session_config=I('session.ly_admin_');//获取登陆的session值 $where = []; if($_POST['sysCdNm']){//有搜索产品名称 $where['matter_name'] = $_POST['sysCdNm']; } if($_POST['startDate']){//有开始打印日期 $statrtime=strtotime($_POST['startDate']); $endtime=strtotime($_POST['endDate'])+86400-1; $where['date']=array(array('egt',$statrtime),array('elt',$endtime),'AND'); } if($session_config['user_auth']['uid']==1){ if($_POST['user_name']!='全部'){ $where['username']=$_POST['user_name']; // $where['userid']=$session_config['user_auth']['uid']; } }else{ $where['userid']=$session_config['user_auth']['uid']; // $where['username'] = $session_config['user_auth']['nickname']; } $where['status']=$_POST['status']; $BatchList=M('qcode_export') ->order($_POST['sort'].' '.$_POST['order']) ->page($_POST['page'],$_POST['rows']) ->where($where) ->select(); $total = M('qcode_export') ->where($where) ->count(); $result = []; $result['total'] = $total; $result['rows'] = $BatchList; $excellist = json_encode($result); echo $excellist; } /*获取小件列表*/ public function getSmall(){ $id = $_POST['largeId']!=0?$_POST['largeId']:0; $result=M('qcode_large') ->alias('l') ->join('qr_qcode_small s on s.large_id=l.id') ->field('s.code,s.code_cp1,s.p_nums,s.status,s.large_id,l.code_cp1 as l_code_sp1') ->where('l.id = '.$id) ->select(); echo json_encode($result); } /*删除导出列表*/ public function changeExcelData(){ $id = $_POST['id']; /*查询导出记录*/ $exportExcel = M('qcode_export')->find($id); /*修改大件的发货状态*/ M()->startTrans(); $update_ret = M('qcode_large')->where('id in ('.$exportExcel['large_str'].')')->setField('l_status',0); if($update_ret){ //无导出excel // $return = M('qcode_export')->where('id = '.$id)->setField('status',1); // if($return){ // M()->commit(); // $this->ajaxReturn(['status'=>1,'msg'=>'删除成功']); // die; // }else { // M()->rollback(); // $this->ajaxReturn(['status' => 0, 'msg' => '系统飞走了,请稍后再试']); // } //插入数据库 $return = M('qcode_export')->where('id = '.$id)->setField('status',1); if($return){ if(strtoupper(substr(PHP_OS,0,3))==='WIN'){ $dir = iconv("utf-8", "gb2312",$exportExcel['file_dir']); }else{ $dir = $exportExcel['file_dir']; } $res = unlink($dir); if($res){ M()->commit(); $this->ajaxReturn(['status'=>1,'msg'=>'删除成功']); die; }else{ M()->rollback(); $this->ajaxReturn(['status' => 0, 'msg' => '系统飞走了,请稍后再试']); } }else { M()->rollback(); $this->ajaxReturn(['status' => 0, 'msg' => '系统飞走了,请稍后再试']); } } } /*excel导出*/ public function export(){ header("Content-type: text/html; charset=utf-8"); $bach = I('bach_id'); $bach_list = M('qcode_bach')->find($bach); $manufacture_date = $bach_list['manufacture_date']; $print_date = $bach_list['print_date']; $bach_list['manufacture_date'] = $this->getData($bach_list['manufacture_date']); $bach_list['print_date'] = $this->getData($bach_list['print_date']); if(empty($bach_list)){ $arr = array('status'=>0,'msg'=>'违法请求,请重新请求'); }else{ $bach_list['data'] = M('qcode_bach') ->alias('bach') ->join('qr_qcode_large large ON large.bach_id = bach.id') ->join('qr_qcode_small small ON small.large_id = large.id') ->field('large.code lcode,large.code_cp1 lcode_cp1,large.code_cp2 lcode_cp2,small.code scode,small.code_cp1 scode_cp1,small.code_cp2 scode_cp2') ->where('bach.id = '.$bach.' and small.status = 0') ->select(); } $bach_list['count'] = count($bach_list['data']); $return = $this->excelExport($bach_list); if($return){ $arr = array('status'=>1,'msg'=>'导出完成','url'=>$return); } $this->ajaxReturn($arr); } /*获取时间格式*/ public function getData($date){ return '20'.substr($date,0,2).'/'.substr($date,2,2).'/'.substr($date,4,2); } /*补0*/ public function addZero($a,$le,$pos='left'){ $str =$a; $len = substr($a); $cha = $le-$len; if($cha>0){ if($pos=='left'){ $str = str_pad($str,$le,"0",STR_PAD_LEFT); }else{ $str = str_pad($str,$le,"0",STR_PAD_RIGHT); } } return $str; } /** * 支持多批次导出操作 */ // public function newexport(){ // $session_config=I('session.ly_admin_'); // // $id = substr($_POST['id'],0,-1); // // /*检查所有大件的状态*/ //// $return = $this->checkStatus($id); //// if(!$return){ //// $this->ajaxReturn(['status'=>0,'msg'=>'参数违法,请重新提交']); //// } // // $bach_id_arr = M('qcode_large') // ->where('l_status = 0 and id IN ('.$id.')') // ->group(true) // ->getField('bach_id',true); // // for ($i=0; $ifield('file_no,order_no,supplier_name,supplier_code,supplier_id,matter_name,matter_no,manufacture_date,print_date,l_reservation,s_reservation,l_flow,s_flow,l_weight,s_weight,larger_num,tray_num,box_num,bach_num') // ->where('id ='.$bach_id_arr[$i]) // ->find(); // // $larger_id = M('qcode_large') // ->where('id in ('.$id.') and bach_id = '.$bach_id_arr[$i]) // ->getField('id',true); // // $larger_id_str = implode(',',$larger_id); // // $res['larger_num'] = count($larger_id); // $res['small_num'] = M('qcode_small')->where('large_id in ('.$larger_id_str.')')->count(); // // //插入数据库 // $add = []; // if ($res['box_num']!=1){ // $add['num'] = $res['box_num']; // $add['mater_type'] = 1; // }else{ // $add['num'] = $res['s_weight']; // $add['mater_type'] = 2; // } // $add['userid'] = $session_config['user_auth']['uid']; // $add['username'] = $res['supplier_name']; // $add['matter_name'] = $res['matter_name']; // $add['matter_no'] = $res['matter_no']; // $add['large_str'] = $larger_id_str; // $add['large_num'] = $res['larger_num']; // $add['small_num'] = $res['small_num']; // $add['bach_num'] = $res['bach_num']; // $add['date'] = time(); // $add['file_dir'] = ''; // $add['status'] = 0; // $data[$i] = $add; // // } // M()->startTrans(); // $update_ret = M('qcode_large')->where('id in ('.$id.')')->setField('l_status',1); // // // if($update_ret){ // // $return = M('qcode_export')->addAll($data); // // // if($return){ // M()->commit(); // // $arr = ['status'=>1,'msg'=>'操作成功','url'=>'']; // }else{ // M()->rollback(); // $arr = ['status'=>0,'msg'=>'系统飞走了,请稍后再试']; // } // } // $this->ajaxReturn($arr); // // } /*导出初版本*/ public function export1(){ $id = substr($_POST['id'],0,-1); $count = $_POST['sum']; /*检查数量是否正确*/ $return = $this->checkCount($id,$count); if(!$return){ $this->ajaxReturn(['status'=>0,'msg'=>'导出数量错误,请重新请求']); } /*检查所有大件的状态*/ $return = $this->checkStatus($id); if(!$return){ $this->ajaxReturn(['status'=>0,'msg'=>'参数违法,请重新提交']); } /*判断所选择的大件是否同一辅料名称,统一供应商,并且获取基本数据*/ $return = $this->check($id); if($return['status']==0){ $this->ajaxReturn($return); } /*获取大小件绑定的的数据*/ $data = $return['data']; /*获取大件的重量*/ $data['l_weight'] = $this->sumLarge($id); $data['small_num'] = $count; $data['id_str'] = $id; $data['data'] = M('qcode_large') ->alias('large') ->join('qr_qcode_small small ON small.large_id = large.id') ->field('large.code lcode,large.code_cp1 lcode_cp1,large.code_cp2 lcode_cp2,small.code scode,small.code_cp1 scode_cp1,small.code_cp2 scode_cp2') ->where('small.large_id in ('.$id.') and small.status = 0') ->select(); $return = $this->excelExport1($data); if($return['status']==1){ $arr = array('status'=>1,'msg'=>'导出完成','url'=>$return['msg']); }else{ $arr = $return; } $this->ajaxReturn($arr); } /*excel导出方法2*/ // public function export1(){ // // $session_config=I('session.ly_admin_'); // // $id = substr($_POST['id'],0,-1); // // /*检查所有大件的状态*/ //// $return = $this->checkStatus($id); //// if(!$return){ //// $this->ajaxReturn(['status'=>0,'msg'=>'参数违法,请重新提交']); //// } // // $bach_id_arr = M('qcode_large') // ->where('l_status = 0 and id IN ('.$id.')') // ->group(true) // ->getField('bach_id',true); // // for ($i=0; $ifield('file_no,order_no,supplier_name,supplier_code,supplier_id,matter_name,matter_no,manufacture_date,print_date,l_reservation,s_reservation,l_flow,s_flow,l_weight,s_weight,larger_num,tray_num,box_num,bach_num') // ->where('id ='.$bach_id_arr[$i]) // ->find(); // // $larger_id = M('qcode_large') // ->where('id in ('.$id.') and bach_id = '.$bach_id_arr[$i]) // ->getField('id',true); // // $larger_id_str = implode(',',$larger_id); // // $res['larger_num'] = count($larger_id); // $res['small_num'] = M('qcode_small')->where('large_id in ('.$larger_id_str.')')->count(); // // //插入数据库 // $add = []; // if ($res['box_num']!=1){ // $add['num'] = $res['box_num']; // $add['mater_type'] = 1; // }else{ // $add['num'] = $res['s_weight']; // $add['mater_type'] = 2; // } // $add['userid'] = $session_config['user_auth']['uid']; // $add['username'] = $res['supplier_name']; // $add['matter_name'] = $res['matter_name']; // $add['matter_no'] = $res['matter_no']; // $add['large_str'] = $larger_id_str; // $add['large_num'] = $res['larger_num']; // $add['small_num'] = $res['small_num']; // $add['bach_num'] = $res['bach_num']; // $add['date'] = time(); // $add['file_dir'] = ''; // $add['status'] = 0; // $data[$i] = $add; // // } // M()->startTrans(); // $update_ret = M('qcode_large')->where('id in ('.$id.')')->setField('l_status',1); // // // if($update_ret){ // // $return = M('qcode_export')->addAll($data); // // // if($return){ // M()->commit(); // // $arr = ['status'=>1,'msg'=>'操作成功','url'=>'']; // }else{ // M()->rollback(); // $arr = ['status'=>0,'msg'=>'系统飞走了,请稍后再试']; // } // } // $this->ajaxReturn($arr); // } /*获取发货单页面*/ public function exportFahuo(){ $field="product_name"; if($_SESSION['ly_admin_']['user_auth']['uid']==1){ $productlist = M('qcode_product')->field($field)->where('id!=0')->select(); $user_list = array(); $user_list[0] = ['id'=>0,'nickname'=>'全部']; $user_list_1 = M('admin_user') ->alias('a') ->join('qr_admin_access access on a.id = access.uid') ->field('a.id,a.nickname') ->where('a.status = 1 and (access.group = 4 or access.group = 1)') ->select(); $user_list = array_merge($user_list,$user_list_1); }else{ $product_id = M('admin_user')->where('id = '.$_SESSION['ly_admin_']['user_auth']['uid'])->getField('product_id'); $productlist = []; if(!empty($product_id)){ $productlist = M('qcode_product')->where('id in ('.$product_id.')')->select(); } $user_list = array(); $user_list[0] = ['id'=>$_SESSION['ly_admin_']['user_auth']['uid'],'nickname'=>$_SESSION['ly_admin_']['user_auth']['nickname']]; } $this->assign('productlist',$productlist); $this->assign('userlist',$user_list); $this->display('fahuo'); } /*得到发货页列表*/ public function getFahuoData(){ /*批次有正常和删除状态,0为未删除,1为已删除;大件0为未删除,1为已删除*/ $session_config=I('session.ly_admin_');//获取登陆的session值 $where = []; if($_POST['order_number']){//有搜索订单号 $where['order_number'] = $_POST['order_number']; } if($_POST['startDate']){//有开始打印日期 $statrtime=strtotime($_POST['startDate']); $endtime=strtotime($_POST['endDate'])+86400-1; $where['create_time']=array(array('egt',$statrtime),array('elt',$endtime),'AND'); } if($session_config['user_auth']['uid']==1){ if($_POST['user_name']!=0){ $where['userid']=$_POST['user_name']; } }else{ $where['userid']=$session_config['user_auth']['uid']; } $where['status']=$_POST['status']; $goodsList=M('goods') ->order($_POST['sort'].' '.$_POST['order']) ->page($_POST['page'],$_POST['rows']) ->where($where) ->select(); $total = M('goods') ->where($where) ->count(); $userinfo=M('admin_user')->where('id='.$session_config['user_auth']['uid'])->find(); foreach ($goodsList as $key=>$value){ $goodsList[$key]['user_type'] = $userinfo['user_type']; } $result = []; $result['total'] = $total; $result['rows'] = $goodsList; $fahuollist = json_encode($result); echo $fahuollist; } /*删除发货列表*/ public function changeFahuoData(){ $id = $_POST['id']; /*查询导出记录*/ $exportExcel = M('goods')->find($id); /*修改大件的发货状态*/ M()->startTrans(); $update_ret = M('qcode_export')->where('id in ('.$exportExcel['export_ids'].')')->setField('status',0); if($update_ret){ //插入数据库 $return = M('goods')->where('id = '.$id)->setField('status',1); if($return){ M()->commit(); $this->ajaxReturn(['status'=>1,'msg'=>'删除成功']); die; }else { M()->rollback(); $this->ajaxReturn(['status' => 0, 'msg' => '系统飞走了,请稍后再试']); } } } //发货申请 public function addFahuo(){ /*批次有正常和删除状态,0为未删除,1为已删除;大件0为未删除,1为已删除*/ $id = substr($_POST['id'],0,-1); $session_config=I('session.ly_admin_');//获取登陆的session值 $return = $this->checkExportStatus($id); if(!$return){ $this->ajaxReturn(['status'=>0,'msg'=>'参数违法,请重新提交']); } /*修改发货状态*/ M()->startTrans(); $update_ret = M('qcode_export')->where('id in ('.$id.')')->setField('status',2); if($update_ret) { $export = M('qcode_export')->where('id in ('.$id.')')->select(); $daterq = date("Ymd",time()); //插入数据库 $add = []; $add['userid'] = $session_config['user_auth']['uid']; $add['supplier_id'] = $add['userid']; $add['order_number'] = $_POST['order_num']; $add['deliveryman'] = $_POST['deliveryman']; $add['plate_number'] = $_POST['plate_number']; $add['shr_phone'] = $_POST['shr_phone']; $add['note'] = $_POST['note']; $add['supplier_name'] = $export[0]['username']; $add['export_ids'] = $id; $add['shdh'] = substr($daterq,2,2).' '.substr($daterq,2,6).mt_rand(1000,9999); $add['create_time'] = time(); $add['qrcode_add'] = $this->qrcode($add['shdh']); $return = M('goods')->data($add)->add(); if ($return) { M()->commit(); } else { M()->rollback(); $this->ajaxReturn(['status' => 0, 'msg' => '系统飞走了,请稍后再试']); } } $arr = array('status'=>1,'msg'=>'添加完成','url'=>'index.php?s=/Admin/Export/exportFahuo.html'); $this->ajaxReturn($arr); } /*excel导出方法2*/ public function export2(){ $id = substr($_POST['id'],0,-1); $count = $_POST['sum']; /*检查数量是否正确*/ $return = $this->checkCount($id,$count); if(!$return){ $this->ajaxReturn(['status'=>0,'msg'=>'导出数量错误,请重新请求']); } /*检查所有大件的状态*/ $return = $this->checkStatus($id); if(!$return){ $this->ajaxReturn(['status'=>0,'msg'=>'参数违法,请重新提交']); } /*判断所选择的大件是否同一辅料名称,统一供应商,并且获取基本数据*/ $return = $this->check($id); if($return['status']==0){ $this->ajaxReturn($return); } /*获取大小件绑定的的数据*/ $data = $return['data']; /*获取大件的重量*/ $data['l_weight'] = $this->sumLarge($id); $data['small_num'] = $count; $data['id_str'] = $id; $data['data'] = M('qcode_large') ->alias('large') ->join('qr_qcode_small small ON small.large_id = large.id') ->field('large.code lcode,large.code_cp1 lcode_cp1,large.code_cp2 lcode_cp2,small.code scode,small.code_cp1 scode_cp1,small.code_cp2 scode_cp2') ->where('small.large_id in ('.$id.') and small.status = 0') ->select(); $return = $this->excelExport1($data); if($return['status']==1){ $arr = array('status'=>1,'msg'=>'导出完成','url'=>$return['msg']); }else{ $arr = $return; } $this->ajaxReturn($arr); } /*检查数量 status有两种状态,0为正常,1为已删除*/ public function checkCount($id,$count){ $total = M('qcode_small') ->where('status = 0 and large_id IN ('.$id.')') ->count(); if($total==$count){ return true; }else{ return false; } } /*检查状态*/ public function checkStatus($id){ $return = M('qcode_large') ->where('l_status = 1 and id IN ('.$id.')') ->count(); if($return==0){ return true; }else{ return false; } } /*检查导出状态*/ public function checkExportStatus($id){ $return = M('qcode_export') ->where('status > 0 and id IN ('.$id.')') ->count(); if($return==0){ return true; }else{ return false; } } /*其他数据验证,以及数据获取*/ public function check($id){ header("Content-type: text/html; charset=utf-8"); $bach_return = M('qcode_large') ->where('l_status = 0 and id IN ('.$id.')') ->distinct(true) ->order("bach_id desc") ->getField('bach_id',true); $bach_str = implode(',',$bach_return); /*验证辅料名称是否为1*/ $ret = M('qcode_bach') ->where('id IN ('.$bach_str.')') ->distinct(true) ->getField('matter_name',true); if(count($ret)>1){ return ['status'=>0,'msg'=>'仅能选择一个辅料名称']; } /*验证供应商名称是否唯一*/ $supplier= M('qcode_bach') ->where('id IN ('.$bach_str.')') ->distinct(true) ->getField('supplier_name',true); if(count($supplier)>1){ return ['status'=>0,'msg'=>'仅能选择一个供应商']; } // if(count($bach_return)!=1){ // return ['status'=>0,'msg'=>'仅能选择一个批次']; // } /*获取基本数据*/ $data = M('qcode_bach') ->field('file_no,order_no,supplier_name,supplier_code,supplier_id,matter_name,matter_no,manufacture_date,print_date,l_reservation,s_reservation,l_flow,s_flow,l_weight,s_weight,larger_num,tray_num,box_num,bach_num') ->where('id ='.$bach_return['0']) ->find(); $data['s_weight'] = $data['s_weight']/1000; if(count($bach_return)!=1){ // $data['l_reservation'] = 0; $data['s_reservation'] = 0; // $data['l_flow'] = 0; // $data['s_flow'] = 0; // $data['s_weight'] = 0; // $data['tray_num'] = 0; } $data['larger_num'] = count(explode(',',$id)); $data['l_weight'] *= $data['larger_num']; /*日期转化*/ $data['manufacture_date'] = $this->getData( $data['manufacture_date']); $data['print_date'] = $this->getData($data['print_date']); return ['status'=>1,'data'=>$data]; } /*计算大件重量*/ public function sumLarge($id){ $l_count = M('qcode_large') ->where('l_status = 0 and id IN ('.$id.')') ->sum('l_weight'); return $l_count/100; } /** * 客户导出 生成excel * **/ public function excelExport($data = false) { // $data['l_weight'] = $data['l_weight']/100; /*$fileName = iconv("utf-8", "gb2312", 'Data/'.date('Ymd', time()).$data['count'].$data['id'].'.xls'); if(file_exists($fileName)){ return $fileName; }else {*/ //Vendor('Excel.Excel');//加载生成二维码的核心类 $session_config=I('session.ly_admin_'); $info=M('admin_user')->where('id='.$session_config['user_auth']['uid'])->field('nickname,username')->find(); Vendor('Excel.PHPExcel'); $objPHPExcel = new \PHPExcel(); $fileName = iconv("utf-8", "gb2312", 'Data/'.$info['username'].date('Ymd', time()).$data['count'].$data['id'].'.xls'); $objProps = $objPHPExcel->getProperties(); /*设置列宽*/ $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(80); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(80); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15); /*设置列宽结束*/ /*设置文本格式*/ $objPHPExcel->getActiveSheet()->getStyle('B')->getNumberFormat()->setFormatCode("@"); /*设置文本格式*/ /*第1~11 A行数据*/ $colum = 'A'; $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', '文件流水号'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '2', '订单号'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '3', '供应商'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '4', '供应商代码'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '5', '物料名称'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '6', '物料代码'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '7', '生产日期'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '8', '打码日期'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '9', '大件数量'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '10', '托盘小件数量'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '11', '小件数量'); /*第1~11行A数据结束*/ $key = ord("A"); $key++; $colum = chr($key); /*第1~11 B行数据*/ $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $data['file_no']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '2', $data['order_no']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '3', $data['supplier_name']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '4', "'". $data['supplier_code']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '5', $data['matter_name']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '6', "'". $data['matter_no']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '7', $data['manufacture_date']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '8', $data['print_date']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '9', $data['larger_num']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '10', $data['tray_num']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '11', $data['small_num']); /*第1~11行B数据结束*/ /*第3-14行数据 开始*/ $colum = 'C'; $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '3', '大件预留码:'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '4', $data['l_reservation']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '5', '小件预留码:'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '6', $data['s_reservation']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '7', '大件开始流水号:'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '8', $data['l_flow']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '9', '小件开始流水号:'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '10', $data['s_flow']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '11', '大件重量(KG)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '12', $data['l_weight']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '13', '小件重量(KG)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '14', $data['s_weight']); /*第3-14行数据 结束*/ /*第8行数据 开始*/ $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A15', '大件二维码'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B15', '大件条码(预留)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C15', '小件二维码'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D15', '小件条码(预留)'); /*第8行数据 结束*/ foreach ($data['data'] as $i => $v) { $j = $i + 16; $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A' . $j, "'" . $v['lcode']); //$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$j, '大件条码(预留)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C' . $j, "'" . $v['scode']); //$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D'.$j, '小件条码(预留)'); } //$fileName = iconv("utf-8", "gb2312", 'Data/' . date('Y-m-d_', time()) . $data['id'] . '_.xls'); //$saveName = iconv("utf-8", "gb2312", time() . '.xls'); /*header('Content-Type: application/vnd.ms-excel'); header("Content-Disposition: attachment;filename=\"$saveName\""); header('Cache-Control: max-age=0');*/ /*$objWriter->save('php://output'); return true;*/ $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save($fileName); return $fileName; } /** * 客户导出 生成excel方法2 * **/ // public function excelExport1($data = false) // { // // $session_config=I('session.ly_admin_'); // /*修改大件的发货状态*/ // M()->startTrans(); // $update_ret = M('qcode_large')->where('id in ('.$data['id_str'].')')->setField('l_status',1); // if($update_ret){ // //插入数据库 // $add = []; // if ($data['box_num']!=1){ // $add['num'] = $data['box_num']; // $add['mater_type'] = 1; // }else{ // $add['num'] = $data['s_weight']; // $add['mater_type'] = 2; // } // $add['userid'] = $session_config['user_auth']['uid']; // $add['username'] = $data['supplier_name']; // $add['matter_name'] = $data['matter_name']; // $add['matter_no'] = $data['matter_no']; // $add['large_str'] = $data['id_str']; // $add['large_num'] = $data['larger_num']; // $add['small_num'] = $data['small_num']; // $add['bach_num'] = $data['bach_num']; // $add['date'] = time(); // $add['file_dir'] = ''; // $add['status'] = 0; // $return = M('qcode_export')->data($add)->add(); // if($return){ // M()->commit(); // }else{ // M()->rollback(); // return ['status'=>0,'msg'=>'系统飞走了,请稍后再试']; // } // } // // return ['status'=>1,'msg'=>'添加成功']; // // } // /** // * 客户导出 生成excel方法2 // * // **/ public function excelExport1($data = false) { // $data['l_weight'] = $data['l_weight']/100; /*$fileName = iconv("utf-8", "gb2312", 'Data/'.date('Ymd', time()).$data['count'].$data['id'].'.xls'); if(file_exists($fileName)){ return $fileName; }else {*/ //Vendor('Excel.Excel');//加载生成二维码的核心类 $session_config=I('session.ly_admin_'); $info=M('admin_user')->where('id='.$session_config['user_auth']['uid'])->field('nickname,username')->find(); Vendor('Excel.PHPExcel'); $objPHPExcel = new \PHPExcel(); // $fileName = 'Runtime/Data/'.date('Ymd', time()).rand(100,999).'_'.$info['nickname'].'_'.$data['matter_name'].'_'.$data['small_num'].'.xls'; $fileName = 'Runtime/Data/'.date('Ymd', time()).rand(100,999).'_'.$info['nickname'].'_'.str_replace('/','_',$data['matter_name']).'_'.$data['small_num'].'.xls'; /*修改大件的发货状态*/ M()->startTrans(); $update_ret = M('qcode_large')->where('id in ('.$data['id_str'].')')->setField('l_status',1); if($update_ret){ //插入数据库 $add = []; if ($data['box_num']!=1){ $add['num'] = $data['box_num']; $add['mater_type'] = 1; }else{ $add['num'] = $data['s_weight']*1000; $add['mater_type'] = 2; } $add['userid'] = $session_config['user_auth']['uid']; $add['username'] = $data['supplier_name']; $add['matter_name'] = $data['matter_name']; $add['matter_no'] = $data['matter_no']; $add['large_str'] = $data['id_str']; $add['large_num'] = $data['larger_num']; $add['small_num'] = $data['small_num']; $add['bach_num'] = $data['bach_num']; $add['date'] = time(); $add['file_dir'] = $fileName; $add['status'] = 0; $return = M('qcode_export')->data($add)->add(); if($return){ M()->commit(); }else{ M()->rollback(); return ['status'=>0,'msg'=>'系统飞走了,请稍后再试']; } } $objProps = $objPHPExcel->getProperties(); /*设置列宽*/ $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(80); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(80); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15); /*设置列宽结束*/ /*设置文本格式*/ $objPHPExcel->getActiveSheet()->getStyle('B')->getNumberFormat()->setFormatCode("@"); /*设置文本格式*/ /*第1~11 A行数据*/ $colum = 'A'; $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', '文件流水号'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '2', '订单号'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '3', '供应商'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '4', '供应商代码'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '5', '物料名称'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '6', '物料代码'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '7', '生产日期'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '8', '打码日期'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '9', '大件数量'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '10', '托盘小件数量'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '11', '小件总数量'); /*第1~11行A数据结束*/ $key = ord("A"); $key++; $colum = chr($key); /*第1~11 B行数据*/ $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $data['file_no']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '2', $data['order_no']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '3', $data['supplier_name']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '4', "'". $data['supplier_code']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '5', $data['matter_name']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '6', "'". $data['matter_no']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '7', $data['manufacture_date']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '8', $data['print_date']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '9', $data['larger_num']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '10', $data['tray_num']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '11', $data['small_num']); /*第1~11行B数据结束*/ /*第3-14行数据 开始*/ $colum = 'C'; $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '3', '大件预留码:'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '4', $data['l_reservation']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '5', '小件预留码:'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '6', $data['s_reservation']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '7', '大件开始流水号:'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '8', $data['l_flow']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '9', '小件开始流水号:'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '10', $data['s_flow']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '11', '大件重量(KG)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '12', $data['l_weight']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '13', '小件重量(KG)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '14', $data['s_weight']); /*第3-14行数据 结束*/ /*第8行数据 开始*/ $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A15', '大件二维码'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B15', '大件条码(预留)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C15', '小件二维码'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D15', '小件条码(预留)'); /*第8行数据 结束*/ foreach ($data['data'] as $i => $v) { $j = $i + 16; $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A' . $j, "'" . $v['lcode']); //$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$j, '大件条码(预留)'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C' . $j, "'" . $v['scode']); //$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D'.$j, '小件条码(预留)'); } if(strtoupper(substr(PHP_OS,0,3))==='WIN'){ $saveName = iconv("utf-8", "gb2312",$fileName); }else{ $saveName = $fileName; } $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save($saveName); return ['status'=>1,'msg'=>$fileName]; } //打印发货单 public function print1($id){ $model = new \Think\Model(); $data = M('goods')->find($id); $export_ids = explode(',',$data['export_ids']); $arr = []; foreach($export_ids as $v){ $arr[] = M('qcode_export')->find($v); } $address = $model->query("select u.company_address as address from qr_goods g left join qr_admin_user u on u.id=g.supplier_id where g.id=".$id)[0]['address']; $data['address']=$address; $data['arr']=$arr; $data['count']=count($arr); $data['shrq_date']=date("Y-m-d",$data['create_time']); if (empty($data['qrcode_add'])){ $data['qrcode_add'] = $this->qrcode($data['shdh']); M('goods')->where('id='.$id)->setField('qrcode_add',$data['qrcode_add']); } echo json_encode($data); } public function qrcode($url)//二维码生成类 { $level=2; $size=5; Vendor('phpqrcode.phpqrcode');//加载生成二维码的核心类 $errorCorrectionLevel =intval($level) ;//容错级别 $matrixPointSize = intval($size);//生成图片大小 //生成二维码图片 $object = new \QRcode(); //打开缓冲区 ob_start(); $object->png($url, false, $errorCorrectionLevel, $matrixPointSize, 2); //这里就是把生成的图片流从缓冲区保存到内存对象上,使用base64_encode变成编码字符串,通过json返回给页面。 $imageString = base64_encode(ob_get_contents()); //关闭缓冲区 ob_end_clean(); //把生成的base64字符串返回给前端 $data = array( 'labelcode'=>$url, 'code'=>200, 'data'=>$imageString, 'product_code'=>$url ); return 'data:image/png;base64,'.$imageString; // $this->ajaxReturn($data); } public function qrcode_up($qrcode_add,$ids){ $res = M('goods')->where('id='.$ids)->setField('qrcode_add',$qrcode_add); return $res; } public function shouhuo(){ $this->display('shouhuo'); } public function exportShouhuo(){ $field="product_name"; $productlist = M('qcode_product')->field($field)->where('id!=0')->select(); $user_list = array(); $user_list[0] = ['id'=>0,'nickname'=>'全部']; $user_list_1 = M('admin_user') ->alias('a') ->join('qr_admin_access access on a.id = access.uid') ->field('a.id,a.nickname') ->where('a.status = 1 and (access.group = 4 or access.group = 1 or access.group = 3)') ->select(); $user_list = array_merge($user_list,$user_list_1); // if($_SESSION['ly_admin_']['user_auth']['uid']==1){ // $user_list[0] = ['id'=>0,'nickname'=>'全部']; // $user_list_1 = M('admin_user') // ->alias('a') // ->join('qr_admin_access access on a.id = access.uid') // ->field('a.id,a.nickname') // ->where('a.status = 1') // ->select(); // $user_list = array_merge($user_list,$user_list_1); // }else{ // $product_id = M('admin_user')->where('id = '.$_SESSION['ly_admin_']['user_auth']['uid'])->getField('product_id'); // $productlist = M('qcode_product')->where('id in ('.$product_id.')')->select(); // $user_list = array(); // $user_list[0] = ['id'=>$_SESSION['ly_admin_']['user_auth']['uid'],'nickname'=>$_SESSION['ly_admin_']['user_auth']['nickname']]; // } $this->assign('productlist',$productlist); $this->assign('userlist',$user_list); $this->display('shouhuolist'); } public function getShouhuoData(){ /*批次有正常和删除状态,0为未删除,1为已删除;大件0为未删除,1为已删除*/ $session_config=I('session.ly_admin_');//获取登陆的session值 $where = []; if($_POST['order_number']){//有搜索订单号 $where['order_number'] = $_POST['order_number']; } if($_POST['startDate']){//有开始打印日期 $statrtime=strtotime($_POST['startDate']); $endtime=strtotime($_POST['endDate'])+86400-1; $where['create_time']=array(array('egt',$statrtime),array('elt',$endtime),'AND'); } // if($session_config['user_auth']['uid']==1 ){ // if($_POST['user_name']!=0){ // $where['userid']=$_POST['user_name']; // } // }else{ // $where['userid']=$session_config['user_auth']['uid']; // } $where['status']=$_POST['status']; $goodsList=M('goods') ->order($_POST['sort'].' '.$_POST['order']) ->page($_POST['page'],$_POST['rows']) ->where($where) ->select(); $total = M('goods') ->where($where) ->count(); $result = []; $result['total'] = $total; $result['rows'] = $goodsList; $fahuollist = json_encode($result); echo $fahuollist; } public function changeShouhuo(){ $where['shdh']=$_POST['shdh']; $return = M('goods')->where($where)->setField('status',2); if($return){ $this->ajaxReturn(['status'=>1,'msg'=> $where['shdh'].'发货单已收货','url' =>'index.php?s=/Admin/Export/exportShouhuo.html']); die; }else { $this->ajaxReturn(['status' => 0, 'msg' => '系统飞走了,请稍后再试']); } } public function dealShouhuo(){ $id = $_POST['id']; $return = M('goods')->where('id = '.$id)->setField('status',0); if($return){ $this->ajaxReturn(['status'=>1,'msg'=>'取消成功']); die; }else { $this->ajaxReturn(['status' => 0, 'msg' => '系统飞走了,请稍后再试']); } } }