|
@@ -0,0 +1,262 @@
|
|
|
+<?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")
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|