load->_model("Model_whlabel_bh_transfer",'whlabel_bh_transfer'); $this->load->_model("Model_whlabel_bh_scan",'whlabel_bh_scan'); $this->load->_model("Model_logic_u9tools","logic_u9tools"); $this->load->_model("Model_whlabellabel","whlabellabel"); $this->load->_model('Model_purchase', 'purchase'); } //定义方法的调用规则 获取URI第二段值 public function _remap($arg, $arg_array) { if ($arg == 'scam_mgxx') // { $this->_scanMgxx(); } else if($arg =='scam_mgxx_post') { $this->_scanMgxxPost(); }else if($arg == 'mgxxindex'){ $this->_mgxxindex(); } else if($arg == 'get_scan_info'){ $this->_getScanInfo(); } else if($arg =='typedy'){ $this->_typedy(); } else { $this->_index(); } } private function _index(){ die('No direct script access allowed'); } private function _mgxxindex(){ $post = $this->input->post(); if(!empty($post)){ $rows = array('total'=>0,'over'=>1,'pagenum'=>1,'rows'=>([])); echo json_encode($rows);exit; } $this->_Template('whlabelfz1_mgxxindex', $this->data); } //美国销售 扫描出库的 private function _scanMgxx(){ $post = $this->input->post(); if(!empty($post)){ $type = $this->input->post('type',true); $orderinfo = $this->input->post('orderinfo',true); $page = $this->input->post('page',true); $perpage = $this->input->post('perpage',true); $where = " type = ".$type." and orderinfo = '".(string)$orderinfo."' "; if(empty($page)) { $start = 0; $perpage = 1; } else { $start = ($page - 1)*$perpage; } $order_str = 'id desc'; $info_list = $this->whlabel_bh_scan->find_all($where,'id,orderinfo,pm,label,sl,scantime',$order_str,$start,$perpage); $total = $this->whlabel_bh_scan->find_count($where); $pagenum = ceil($total/$perpage); $over = $total-($start+$perpage); foreach($info_list as $k=>$v){ $info_list[$k]['scantime'] = date('Y-m-d H:i:s',$v['scantime']); } $rows = array('total'=>$total,'over'=>$over,'pagenum'=>$pagenum,'rows'=>($info_list)); echo json_encode($rows);exit; }else{ $orderinfo = $this->input->get('orderinfo',true); $type = $this->input->get('type',true); $this->data['orderinfo'] = $orderinfo; $this->data['type'] = $type; $this->_Template('whlabelfz1_scammgxx', $this->data); } } private function _getScanInfo(){ $post = $this->input->post(); $label = $post['label']; if(empty($label)){ die(json_encode(['code'=>-1,'msg'=>'请输入标签号','data'=>[]])); } $info = $this->whlabel_bh_transfer->find("label ='".$label."'"); if(empty($info)){ die(json_encode(['code'=>-1,'msg'=>'标签号不存在','data'=>[]])); } echo "
"; print_r($info); die; } //接收美店销售的post提交 private function _scanMgxxPost(){ $post = $this->input->post(); $type = $post['type']; $orderinfo = $post['orderinfo']; $label = $post['scanlabel']; $num = (int)$post['num']; if(empty($type)){ exit(json_encode(['code'=>-1,'msg'=>'数据类型异常,请联系技术','data'=>[]],JSON_UNESCAPED_UNICODE)); } if(empty($orderinfo)){ exit(json_encode(['code'=>-1,'msg'=>'美国销售单号未输入','data'=>[]],JSON_UNESCAPED_UNICODE)); } if(empty($label)){ exit(json_encode(['code'=>-1,'msg'=>'标签号不能为空','data'=>[]],JSON_UNESCAPED_UNICODE)); } if(!in_array($type,[1,2])){ exit(json_encode(['code'=>-1,'msg'=>'数据类型异常,请联系技术','data'=>[],JSON_UNESCAPED_UNICODE])); } if($type == 1){ $num = 1; } if($type == 2){ if($num > 200){ exit(json_encode(['code'=>-1,'msg'=>'扫描数量不能大于200','data'=>[],JSON_UNESCAPED_UNICODE])); } } $info = $this->whlabel_bh_scan->find("label ='".$label."'"); if(!empty($info)){ exit(json_encode(['code'=>-1,'msg'=>'该标签已被扫描','data'=>[],JSON_UNESCAPED_UNICODE])); } if($type == 1){ $res = $this->_bbscan($orderinfo,$label); }elseif($type == 2){ $res = $this->_bqscan($orderinfo,$label,$num); } exit(json_encode($res)); } //生产布标扫描 private function _bbscan($orderinfo,$label){ $info = $this->whlabel_bh_transfer->find("label ='".$label."'"); if(empty($info)){ return ['code'=>-1,'msg'=>'标签号不存在','data'=>[]]; } if($info['label'] != $label){ return ['code'=>-1,'msg'=>'条码对应的美国销售单号不一致','data'=>[]]; } $arr = [ 'orderinfo'=>(string)$orderinfo, 'type'=>1, 'label'=>(string)$label, 'features'=>(string)$info['features'], 'fid'=>$info['id'], 'jm'=>$info['jm'], 'pm'=>$info['pm'], 'sl'=>1, 'scantime'=>time(), 'status'=>0, ]; $this->whlabel_bh_scan->insert($arr); return ['code'=>1,'msg'=>'标签扫描成功','data'=>[]]; } //标签扫描 private function _bqscan($orderinfo,$label,$num){ $info = $this->whlabellabel->find("label ='".$label."'"); if(empty($info)){ return ['code'=>-1,'msg'=>'标签号不存在','data'=>[]]; } $list = [ [ 'sku2'=>$info['features'], ] ]; $res = $this->logic_u9tools->getU9bm($list,'sku2'); if(empty($res[0])){ return ['code'=>-1,'msg'=>'u9条码编辑错误-1','data'=>[]]; } if(empty($res[0]['jm'])){ return ['code'=>-1,'msg'=>'u9条码编辑异常-2','data'=>[]]; } $arr = [ 'orderinfo'=>(string)$orderinfo, 'type'=>1, 'label'=>(string)$label, 'features'=>(string)$info['features'], 'fid'=>$info['id'], 'jm'=>$res[0]['jm'], 'pm'=>$res[0]['zh'], 'sl'=>$num, 'scantime'=>time(), 'status'=>0, ]; $this->whlabel_bh_scan->insert($arr); return ['code'=>1,'msg'=>'标签扫描成功','data'=>[]]; } // 可以排序的仓库数量 private function _typedy(){ $prc = array(); $purchase = $this->purchase->find_all(); foreach ($purchase as $k => $v) { $prc[$v['id']] = $v['title']; } $post = $this->input->post(NULL, TRUE); if (isset($post['page'])) { $page = $this->input->post('page', true); $perpage = $this->input->post('perpage', true); $category = $this->input->post('category', true); $size = $this->input->post('size', true); $grade = $this->input->post('grade', true); $color = $this->input->post('color', true); $lowe = $this->input->post('lowe', true); $sku = $this->input->post('sku'); $title = $this->input->post('title'); $warehouse = $this->input->post('warehouse', true); $usa = $this->input->post('usa', true); $purchase = $this->input->post('purchase', true); $lacetype = $this->input->post('lacetype', true); $haircap = $this->input->post('haircap', true); $density = $this->input->post('density', true); $details = $this->input->post('details', true); $state = $this->input->post('state', true); $lacecolor = $this->input->post('lacecolor', true); $hairnumber = $this->input->post('hairnumber', true); $cklx = $this->input->post('cklx', true); $ktime = $this->input->post('ktime', true); $jtime = $this->input->post('jtime', true); $sm = $this->input->post('sm', true); $cpbz = $this->input->post('cpbz', true); $type = $this->input->post('type', true); $ktime = strtotime($ktime); $jtime = strtotime($jtime); $where = "1=1"; if ($usa) { if (!$warehouse) { $where .= " and (warehouse = '5' or warehouse = '8')"; } } if ($warehouse) { $where .= " and warehouse = '$warehouse'"; } if ($details) { $where .= " and details = '$details'"; } if ($purchase) { $where .= " and purchase = '$purchase'"; } if (isset($state)) { if($state >-1){ $where .= " and state = '$state'"; } } if ($lacetype) { $where .= " and features like '%-$lacetype-%'"; } if ($category) { $where .= " and features like '%-$category-%'"; } if ($size) { $where .= " and features like '%-$size-%'"; } if ($grade) { $where .= " and features like '%-$grade-%'"; } if ($color) { $where .= " and features like '%-$color-%'"; } if ($lowe) { $where .= " and features like '%-$lowe-%'"; } if ($haircap) { $where .= " and features like '%-$haircap-%'"; } if ($density) { $where .= " and features like '%-$density-%'"; } if ($lacecolor) { $where .= " and features like '%-$lacecolor-%'"; } if($sm){ $where .= " and sm like '%".$sm."%'"; } if($cpbz){ $where .= " and cpbz like '%".$cpbz."%'"; } if($type){ $where .= " and type = ".$type.""; } if (!empty($hairnumber)) { $where .= " and features like '%-128-%' "; if ($hairnumber < 0) { $class_list = $this->typeclass->find_all('classid = 43'); foreach ($class_list as $v) { $where .= " and features not like '%-" . $v['id'] . "-%'"; } } else { $where .= " and features like '%-$hairnumber-%'"; } } $where_add = ''; if ($cklx) { $shop = $this->shop->read($cklx); $where_add .= " and zd like '" . $shop['shortname'] . "%' and state = 0"; } //数据排序 $order_str = "id desc"; if (empty($page)) { $start = 0; $perpage = 1; } else { $start = ($page - 1) * $perpage; } //这里为了对应前端界面的字段 新添加了label字段 后续代码会替换为sm字段 if ($sku) { $sku = trim($sku, ' '); $sku = trim($sku, ' '); $where .= " and sku like '%$sku%'"; $info_list = $this->whlabel->find_pc($where . $where_add, 'sku,features,warehouse', 'id,warehouse,purchase,sku,title,details,shop,cpbz,label,features,number,sm', $order_str, $start, $perpage); } else if ($title) { $title = trim($title, ' '); $title = trim($title, ' '); $where .= " and title like '%$title%'"; $info_list = $this->whlabel->find_pc($where . $where_add, 'sku,features,warehouse', 'id,warehouse,purchase,sku,title,details,shop,cpbz,label,features,number,sm', $order_str, $start, $perpage); } else { //$where .= " and time > '$ktime' and time < '$jtime'"; $info_list = $this->whlabel->find_pc($where . $where_add, 'sku,features,warehouse', 'id,warehouse,purchase,sku,title,details,shop,cpbz,label,features,number,sm', $order_str, $start, $perpage); } //$this->logic_ding->sendToDing("仓库查询:".$where . $where_add); $info_list = $this->logic_whlabel->dataTran($info_list, ['pm']); foreach ($info_list as $k => $v) { $info_list[$k]['title'] = $v['title'] . "
" . $v['pm']; unset($info_list[$k]['pm']); unset($info_list[$k]['jm']); unset($info_list[$k]['bm']); } //取得信息列表 $rows = array(); $list = array(); foreach ($info_list as $key => $value) { $warehouse = $this->warehouse->read($value['warehouse']); $info_list[$key]['purchase'] = (isset($prc[$value['purchase']])) ? $prc[$value['purchase']] : '未知'; $c = $this->whlabel->find_all($where . ' and sku = "' . $value['sku'] . '" and state = 0 and warehouse = "' . $value['warehouse'] . '" and features = "' . $value['features'] . '"', 'details,cpid'); $z = $this->whlabel->find_all($where . ' and sku = "' . $value['sku'] . '" and zd != "" and state = 0 and warehouse = "' . $value['warehouse'] . '" and features = "' . $value['features'] . '"'); $info_list[$key]['cpbz'] = $value['cpbz'] ; $info_list[$key]['label'] = $value['sm']; $number = $value['number']; $ftime = time() - 15 * 24 * 3600; $info_list[$key]['warehouse'] = $warehouse['title']; $info_list[$key]['features'] = count($c); $z = count($z); //查看订单号 $zt = $this->whlabeltransport->find_all('sku = "' . $value['sku'] . '" and warehouse = "' . $value['warehouse'] . '" and features = "' . $value['features'] . '" and cz = "0"'); $ztdata = ''; if (count($zt) > 0) { foreach ($zt as $vv) { $ztdata .= '' . $vv['num'] . ' - ' . date('Y-m-d', $vv['stime']) . '
'; } } $info_list[$key]['number'] = $ztdata; $info_list[$key]['sm'] = $z; $details = array(); $cpid = array(); foreach ($c as $k => $v) { $details[$v['details']] = $v['details']; if ($v['cpid'] != 0) { $cpid[$v['cpid']] = $v['cpid']; } } $info_list[$key]['details'] = ($cpid) ? implode(" ", $details) . '' . implode(" ", $cpid) . '
' : implode(" ", $details); if ($value['shop'] != '') { $shop = explode(',', trim($value['shop'], ',')); $shop = $this->shop->read($shop[0]); $info_list[$key]['shop'] = $shop['shopname']; } } $total = count($this->whlabel->find_pc($where . $where_add, 'sku,features,warehouse', 'id,warehouse,sku,title,features,number')); $pagenum = ceil($total / $perpage); $over = $total - ($start + $perpage); $rows = array('total' => $total, 'over' => $over, 'pagenum' => $pagenum, 'rows' => ($info_list), 'CS' => $warehouse); echo json_encode($rows); exit; } $this->data['warehouse'] = (isset($arg_array[0])) ? $arg_array[0] : 5; $this->_Template('whlabelfz1_typedy', $this->data); } }