123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- <?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");
- }
- 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")
- ]);
- }
- }
-
|