123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- <?php
- /**
- * 系统自动处理在途库存的香港问题
- */
- class Model_logic_u9bh 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_ding","logic_ding");
- $this->load->_model("Model_zzquque_u9","zzquque_u9");
- $this->load->_model("Model_zzququeu9_logs","zzququeu9_logs");
- $this->load->_model('Model_logic_tools','logic_tools');
- $this->load->_model('Model_whlabel_bh_transfer','whlabel_bh_transfer');
- }
- public function getToken($type){
- $name = "get_yytoken_".$type;
- $token = $this->settingtest->$name();
- return $token;
- }
- public function doAction(){
- $list = $this->zzquque_u9->find_all("type = 21 and bzsh_status= 0 and dc_status = 0 and dr_status = 0");
- foreach ($list as $key => $value) {
- $this->dpCprk($value);
- }
- sleep(3);
- $list = $this->zzquque_u9->find_all("type = 21 and bzsh_status= 1 and dc_status = 0 and dr_status = 0");
- foreach ($list as $key => $value) {
- $this->checkCprk($value);
- }
- $list = $this->zzquque_u9->find_all("type = 21 and bzsh_status= 3 and dc_status = 0 and dr_status = 0");
- foreach ($list as $key => $value) {
- $this->doDcd($value);
- }
- $list = $this->zzquque_u9->find_all("type = 21 and bzsh_status= 3 and dc_status = 1 and dr_status = 0");
- foreach ($list as $key => $value) {
- $this->cxDrd($value);
- }
- $list = $this->zzquque_u9->find_all("type = 21 and bzsh_status= 3 and dc_status = 3 and dr_status = 0");
- foreach ($list as $key => $value) {
- $this->checkDrd($value);
- }
- }
- public function dpCprk($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->whlabel_bh_transfer->read($data['child_order_no']);
- $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'],
- '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 checkCprk($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 doDcd($data){
- $info = $this->whlabel_bh_transfer->read($data['child_order_no']);
- $time = time();
- $list = [
- [
- 'jm'=>$info['jm'],
- 'bm'=>$info['bm'],
- 'zh'=>$info['pm'],
- 'final_price'=>1,//目前先不设置 等后期财务说了再说
- 'title'=>$info['title'],
- 'dcsl'=>1,
- 'is_register'=>0,//商品是否被注册 先都当没注册 后面会先确认下
- ]
-
- ];
- $sc = explode('~',$info['scid']);
- $info['rkid'] = $sc[0];//配货的生产id
- $info['rkcode'] = $sc[1];//配货的生产单号
- $dcck = $sc[2];
- $dc_params = [
- 'gys'=>'98001',//供应商 龙盈
- 'number'=>$info['orderinfo'],//erp订单编码
- "TransOutDocType_Code"=>"TransOut001",//组织间调拨
- "time"=>$time,
- 'TransferDirection'=>0,//普通
- 'yyid'=>'98001',//备货都是卖给了龙熠
- 'shipremarks'=>$info['shipremarks'],//订单的备注
- 'dcckbm'=>$dcck,//调出仓库编码 完成库
- 'drckbm'=>"13001",//调入仓库编码 成品库
- 'drzz_code'=>"130",//调入组织Code
- 'owner_code'=>"120",//货主组织Code
- //'ztcode'=>$this->ztcode,//账套
- //'tb_org_arr'=>$this->tb_org_arr,//要同步的组织列表
- 'list'=>$list
- ];
- //创建调出单
- $dcd_res = $this->apiyyv1->dcdCrate($dc_params,$this->getToken(120));
- if(empty($dcd_res[0]['Data'][0]["Code"])){
- $this->editData($data['id'],['dc_status'=>-1,'update_time'=>time()],$info['orderinfo'],1,1,'dc',$dcd_res[1],$dcd_res[0]);
- return ;
- }
- //更新
- $dcd_no = $dcd_res[0]['Data'][0]["Code"];
- $this->editData($data['id'],['dc_no'=>$dcd_no,'dc_status'=>1,'update_time'=>time()],$info['orderinfo'],1,1,'dc',$dcd_res[1],$dcd_res[0]);
- }
-
- public function cxDrd($info){
- $r = $this->apiyyv1->xdlsCxDcd($info['dc_no'],$this->getToken(130));
- if(empty($r[0]['Data'])){
- return ;
- }
- //更新销售单数据
- //$xs_no = json_encode($r[0]['Data']);
- $this->editData($info['id'],['dc_status'=>3,'update_time'=>time()],$info['order_no'],8,1,'dc_xc',$r[1],$r[0]);
- }
-
- public function checkDrd($info){
- $r = $this->apiyyv1->drdcxBydcd($info['dc_no'],$this->getToken(130));
-
- //如果获取对应调入单没有成功
- if(empty($r[0]['Data'][0]['docno'])){
- $this->editData($info['id'],['dr_status'=>-1,'update_time'=>time()],$info['order_no'],6,1,'dr',$r[1],$r[0]);
- return ;
- }
- $dr_no = $r[0]['Data'][0]["docno"];
-
- $this->editData($info['id'],['dr_no'=>$dr_no,'dr_status'=>1,'update_time'=>time()],$info['order_no'],6,1,'dr',$r[1],$r[0]);
-
- //提交调入单
- $rr = $this->apiyyv1->drdSubmit(['number'=>$dr_no],$this->getToken(130));
- if(!$rr[0]['Data'][0]['IsSucess']){
- $this->editData($info['id'],['dr_status'=>-2,'update_time'=>time()],$info['order_no'],6,2,'dr',$rr[1],$rr[0]);
- return;
- }
- $this->editData($info['id'],['dr_status'=>2,'update_time'=>time()],$info['order_no'],6,2,'dr',$rr[1],$rr[0]);
- //审核调入单
- $rrr = $this->apiyyv1->drdApprove(['number'=>$dr_no],$this->getToken(130));
- if(!$rrr[0]['Data'][0]['IsSucess']){
- $this->editData($info['id'],['dr_status'=>-3,'update_time'=>time()],$info['order_no'],6,3,'dr',$rrr[1],$rrr[0]);
- return;
- }
- $this->editData($info['id'],['dr_status'=>3,'update_time'=>time()],$info['order_no'],6,3,'dr',$rrr[1],$rrr[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")
- ]);
- }
- }
|