| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 | <?php/** * 系统自动处理在途库存的香港问题 */class Model_logic_u9action extends Lin_Model {       //切记要修改token_120的token真正的token!!!!    function __construct(){        parent::__construct();        $this->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");        $this->load->_model('Model_logic_tools','logic_tools');    }    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);            }        }           }    //进行入库单操作    public 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 $this->logic_tools->ret_arr(-1,"没有找到子订单号");        }        $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 $this->logic_tools->ret_arr(-1,"没有找到子订单号");        }        $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]);            return $this->logic_tools->ret_arr(1,"成品入库单创建成功");        }else{            $this->editData($data['id'],['bzsh_status'=>-1,'update_time'=>time()],$info['number'],20,1,'scrk_cj',$res[1],$res[0]);            return $this->logic_tools->ret_arr(-1,"成品入库单创建失败");        }            }    //对入库单进行检查    public 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)){                //查询失败  这里不做状态变更  只是做记录                $this->editData($info['id'],['update_time'=>time()],$info['order_no'],20,2,'scrk_ck',$res[1],$res[0]);                return $this->logic_tools->ret_arr(-1,"成品入库单还未审核,请稍后审核");            }            $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]);            return $this->logic_tools->ret_arr(-1,"成品入库单还未审核,请联系到u9核对成品入库单的状态");        }    }    //进行销售单操作    public 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->gcxsdWaiXiaoCreate($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]);                return $this->logic_tools->ret_arr(1,"销售单创建成功");            }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]);                return $this->logic_tools->ret_arr(-1,"销售单创建失败");            }    }    //    public function checkXsd($info){    }    //对销售单进行检查 并创建标准出货单    public 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 $this->logic_tools->ret_arr(-1,"标准出库的信息异常,请查看");        }        $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]);            return $this->logic_tools->ret_arr(-1,"标准出库的信息异常,请查看");        }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]);            return $this->logic_tools->ret_arr(1,"标准出库创建成功");        }    }    //对标准出货单进行审核    public 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")        ]);    }} 
 |