load->_model('Model_settingtest','settingtest'); $this->load->_model("Model_apiyyv1","apiyyv1"); $this->load->_model("Model_logic_order","logic_order"); $this->load->_model("Model_logic_ding","logic_ding"); $this->load->_model("Model_zzquque_u9","zzquque_u9"); $this->load->_model("Model_systemtransfer","systemtransfer"); $this->load->_model("Model_shop","shop"); $this->load->_model("Model_zzququeu9_logs","zzququeu9_logs"); } public function getToken($type){ $name = "get_yytoken_".$type; $token = $this->settingtest->$name(); return $token; } /** * 工厂加工生产外销的订单 */ public function waixiao(){ //入库单这里用字段标准收货单进行了 处理 主要是不想动u9队列的字段了 所以这里用收货单的字段 $list = $this->zzquque_u9->find_all("type = 20 and bzsh_status= 0 and xs_status = 0"); if(!empty($list)){ foreach($list as $k=>$v){ $this->doRkd($v); } } sleep(3); //审核的不需要再等待了 $list = $this->zzquque_u9->find_all("type = 20 and bzsh_status= 1 and xs_status = 0 and bzch_status = 0"); if(!empty($list)){ foreach($list as $k=>$v){ $this->checkRkd($v); } } $list = $this->zzquque_u9->find_all("type = 20 and bzsh_status= 3 and xs_status = 0 and bzch_status = 0"); if(!empty($list)){ foreach($list as $k=>$v){ $this->createXsd($v); } } sleep(3); $list = $this->zzquque_u9->find_all("type = 20 and bzsh_status= 3 and xs_status = 1 and bzch_status = 0"); if(!empty($list)){ foreach($list as $k=>$v){ $this->xcXsAndCreateScd($v); } } sleep(3); //审核标准出货单 $list = $this->zzquque_u9->find_all("type = 20 and bzsh_status= 3 and xs_status = 3 and bzch_status = 1"); if(!empty($list)){ foreach($list as $k=>$v){ $this->checkBzch($v); } } } //进行入库单操作 private function doRkd($data){ $token = $this->getToken(120); if(empty($data['child_order_no'])){ $this->editData($data['id'],['bzsh_status'=>-1,'update_time'=>time()],$data['order_no'],20,1,'scrk_cj',$data,[ 'code'=>-1, 'msg'=>'没有找到子订单号' ]); return ; } $info = $this->systemtransfer->read($data['child_order_no']); $order_info = $this->logic_order->getInfo("number = '".$info['number']."'","number,shop"); $shop_info = $this->shop->read($order_info['shop']); if(empty($shop_info)){ $this->editData($data['id'],['bzsh_status'=>-1,'update_time'=>time()],$data['order_no'],20,1,'scrk_cj',$data,[ 'code'=>-1, 'msg'=>'没有找到子订单号' ]); return ; } $sc = explode('~',$info['scid']); $info['rkid'] = $sc[0];//配货的生产id $info['rkcode'] = $sc[1];//配货的生产单号 $params = [ 'org_code'=>'120', "org_wh_code"=>'02', 'rec_code'=>'120', 'rev_wh_code'=>'02', 'rkid'=>$info['rkid'], 'rkcode'=>$info['rkcode'], 'yyid'=>$shop_info['yyid'], 'number'=>$info['number'], 'shipremarks'=>$info['shipremarks'], 'list'=>[ [ 'sl'=>1, 'jm'=>$info['jm'], ] ] ]; $res = $this->apiyyv1->cprkCreate($params,$token); if(isset($res[0]['Data'][0]['m_isSucess'])&& $res[0]['Data'][0]['m_isSucess'] == 1){ $this->editData($data['id'],['bzsh_no'=>$res[0]['Data'][0]['m_code'],'bzsh_status'=>1,'update_time'=>time()],$info['number'],20,1,'scrk_cj',$res[1],$res[0]); }else{ $this->editData($data['id'],['bzsh_status'=>-1,'update_time'=>time()],$info['number'],20,1,'scrk_cj',$res[1],$res[0]); } } //对入库单进行检查 private function checkRkd($info){ $token = $this->getToken(120); $params = [ [ "DocNo"=>$info['bzsh_no'] ] ]; $res = $this->apiyyv1->cprkApprove($params,$token); //如果入库审核失败 先查询 如果不存在就标记 存在就再次审核 if(!(isset($res[0]['Data'][0]['m_isSucess']) && $res[0]['Data'][0]['m_isSucess'] == 1)){ //查询单子是否存在 sleep(1); $res = $this->apiyyv1->cprkCx($params,$token); if(!(isset($res[0]['Data'][0]['m_isSucess']) && $res[0]['Data'][0]['m_isSucess'] == 1)){ //查询失败 这里不做状态变更 只是做记录 return $this->editData($info['id'],['update_time'=>time()],$info['order_no'],20,2,'scrk_ck',$res[1],$res[0]); } $res = $this->apiyyv1->cprkApprove($params,$token); } //如果再错误就 没办法了 if(isset($res[0]['Data'][0]['m_isSucess']) && $res[0]['Data'][0]['m_isSucess'] == 1){ $this->editData($info['id'],['bzsh_status'=>3,'update_time'=>time()],$info['order_no'],20,3,'scrk_sh',$res[1],$res[0]); } } //进行销售单操作 private function createXsd($info){ $order_info = $this->logic_order->getInfo('number = "'.$info['order_no'].'"',"number,shop,shouldmoney"); if(empty($order_info)){ return []; } $shop = $this->shop->read($order_info['shop']); $tren_info = $this->systemtransfer->read($info['child_order_no']); $token = $this->getToken('120'); $params = [ 'yyid'=>$shop['yyid'], 'number'=>$info['order_no'], 'time'=>time(), 'list'=>[ [ 'jm'=>$tren_info['jm'], 'dcsl'=>1, 'final_price'=>1, ] ] ]; $res = $this->apiyyv1->xsdCreate($params,$token); if($res[0]['Data'][0]['m_isSucess'] != 1){ $this->editData($info['id'],['xs_status'=>-1,'update_time'=>time()],$info['order_no'],2,1,'xs',$res[1],$res[0]); }else{ $this->editData($info['id'],['xs_no'=>$res[0]['Data'][0]['m_code'],'xs_status'=>1,'update_time'=>time()],$info['order_no'],2,1,'xs',$res[1],$res[0]); } } // private function checkXsd($info){ } //对销售单进行检查 并创建标准出货单 private function xcXsAndCreateScd($info){ $token = $this->getToken(120); $res = $this->apiyyv1->xsdCxByNo($info['xs_no'],$token); //如果没审核 那么就不管 if(empty($res[0]['Data'])){ return ; } // 审核了 $list = $res[0]['Data']; if($list[0]['status'] < 3){ return ; } foreach($list as $k=>$v){ $list[$k]['dcsl'] = 1; } $tran_info = $this->systemtransfer->read($info['child_order_no']); $drckbm = ''; if(stripos($tran_info['features'],'-126-') !== false) { $drckbm = '12003';//进入发条库 } else if(stripos($tran_info['features'],'-127-') !== false) { $drckbm = '12004';//进入发块库 } else { $drckbm = '12006';//其它进入完成库 } if(empty($drckbm)){ $this->editData($info['id'],['bzch_status'=>-1,'update_time'=>time()],$info['order_no'],5,1,'bzch',[],[ 'code'=>-1, 'msg'=>'标准出库的信息异常,请查看' ]); return ; } $tmp_info = [ 'zq_u9_id'=>$info['id'], 'drckbm'=> $drckbm, 'number'=>$info['order_no'], 'order_no'=>$info['order_no'], 'xs_no'=>$info['xs_no'], 'xs_two_no'=>$info['xs_no'], 'list'=>$list ]; $res = $this->apiyyv1->bzchCreate($tmp_info,$token); if($res[0]['Data'][0]['m_isSucess'] != 1){ $this->editData($info['id'],['bzch_status'=>-1,'update_time'=>time()],$info['order_no'],5,1,'bzch',$res[1],$res[0]); }else{ $this->editData($info['id'],['bzch_no'=>$res[0]['Data'][0]['m_code'],'bzch_status'=>1,'xs_status'=>3,'update_time'=>time()],$info['order_no'],5,1,'bzch',$res[1],$res[0]); } } //对标准出货单进行审核 private function checkBzch($info){ $res = $this->apiyyv1->bzchSubmitAndApprove(['number'=>$info['bzch_no']],$this->getToken(120)); print_r($res[0]); print_r($res[1]); if($res[0]['Data'][0]['m_isSucess'] != 1){ $this->editData($info['id'],['bzch_status'=>-2,'update_time'=>time()],$info['order_no'],5,2,'bzch_sh',$res[1],$res[0]); }else{ $this->editData($info['id'],['bzch_no'=>$res[0]['Data'][0]['m_code'],'bzch_status'=>3,'update_time'=>time()],$info['order_no'],5,2,'bzch_sh',$res[1],$res[0]); } } protected function editData($zq_u9_id,$z_qu_arr,$number,$one_type,$two_type,$apply_api,$apply_data,$ret_data){ $this->zzquque_u9->save($z_qu_arr,$zq_u9_id); $this->zzququeu9_logs->insert([ 'oid'=>$zq_u9_id, 'number'=>$number, 'one_type'=>$one_type, 'two_type'=>$two_type, 'apply_api'=>$apply_api, 'apply_data'=>json_encode($apply_data,JSON_UNESCAPED_UNICODE), 'ret_data'=>json_encode($ret_data,JSON_UNESCAPED_UNICODE), 'create_time'=>time(), 'read_time'=>date("Y-m-d H:i:s") ]); } }