Browse Source

非库存品订单的发货申请单流程的待库管发货节点,推送给供应商负责人

wufeng 2 years ago
parent
commit
d1189d7acd

+ 35 - 10
app/abutment/controller/Order.php

@@ -457,7 +457,7 @@ class Order extends HomeBaseController
             $supplier_cgderid = Db::name('supplier')
                 ->where('is_del',0)
                 ->whereIn('code',array_column($cgdinfo,'supplierNo'))
-                ->column('personid','code');
+                ->column('personid,person','code');
 
             $i = 0;
             $status = 4;//4入库完成
@@ -587,6 +587,14 @@ class Order extends HomeBaseController
                                     $up = Db::name("order_out")->where(["outCode" => $send, "status" => 0])->update(["status" => 1, 'wsm_code' => $cgdinfo[$cgdNo]['wsm_code'], "updatetime" => date('Y-m-d H:i:s')]);
                                     if ($up == false) throw new Exception('出库单出库失败');
                                     else {
+
+                                        //查询是否有非库存品订单
+                                        $is_stock = Db::name('sale')
+                                            ->where([
+                                                ['is_del','=',0],
+                                                ['orderCode','in',array_column($out,'orderCode')]
+                                            ])->column('is_stock','orderCode');
+
                                         foreach ($out as $k => $v_outCode) {
                                             //修改状态,添加待办
                                             ActionLog::logAdd(['id' => $uid, 'nickname' => $nickname], [
@@ -596,14 +604,31 @@ class Order extends HomeBaseController
                                                 "action_type" => "status"//新建create,编辑edit,更改状态status
                                             ], "CKD", 1, $param);
 
-                                            ProcessOrder::AddProcess(['id' => $uid, 'nickname' => $nickname], [
-                                                "order_type" => 'CKD',
-                                                "order_code" => $v_outCode['outCode'],//出库单号
-                                                "order_id" => $v_outCode['id'],
-                                                "order_status" => 1,
-                                                "before_status" => 0,
-                                                'holder_id' => $v_outCode['apply_id']
-                                            ]);
+                                            if(isset($is_stock[$v_outCode['orderCode']]) && $is_stock[$v_outCode['orderCode']]==0){
+                                                //非库存品,推给供应商负责人
+                                                $wait = $supplier_cgderid[$cgdinfo[$cgdNo]['supplierNo']];
+                                                ProcessOrder::AddProcess(['id' => $uid, 'nickname' => $nickname], [
+                                                    "order_type" => 'CKD',
+                                                    "order_code" => $v_outCode['outCode'],//出库单号
+                                                    "order_id" => $v_outCode['id'],
+                                                    "order_status" => 1,
+                                                    "before_status" => 0,
+                                                    'wait_id' => $wait['personid'],
+                                                    'wait_name' => $wait['person'],
+                                                    'holder_id' => $wait['personid'],
+                                                ]);
+                                            }else {
+                                                ProcessOrder::AddProcess(['id' => $uid, 'nickname' => $nickname], [
+                                                    "order_type" => 'CKD',
+                                                    "order_code" => $v_outCode['outCode'],//出库单号
+                                                    "order_id" => $v_outCode['id'],
+                                                    "order_status" => 1,
+                                                    "before_status" => 0,
+                                                    'holder_id' => $v_outCode['apply_id']
+                                                ]);
+                                            }
+
+
                                         }
                                     }
                                     $good1 = Db::name("good_stock")->where(["wsm_code" => $cgdinfo[$cgdNo]['wsm_code'], "spuCode" => $cgdinfo[$cgdNo]['spuCode'], "is_del" => 0])->find();
@@ -628,7 +653,7 @@ class Order extends HomeBaseController
                             }
                         }
                         ActionLog::logAdd(['id' => $uid, 'nickname' => $nickname], $order, "CGD", $cgdinfo[$cgdNo]['status'], $cgdinfo[$cgdNo]);
-                        $process = ["order_code" => $cgdNo, "order_id" => $cgdinfo[$cgdNo]['id'], "order_status" => $cgdinfo[$cgdNo]['status'], "order_type" => 'CGD', "before_status" => $order['status'], 'holder_id' => isset($supplier_cgderid[$cgdinfo[$cgdNo]['supplierNo']]) ? $supplier_cgderid[$cgdinfo[$cgdNo]['supplierNo']] : 0];
+                        $process = ["order_code" => $cgdNo, "order_id" => $cgdinfo[$cgdNo]['id'], "order_status" => $cgdinfo[$cgdNo]['status'], "order_type" => 'CGD', "before_status" => $order['status'], 'holder_id' => isset($supplier_cgderid[$cgdinfo[$cgdNo]['supplierNo']]['personid']) ? $supplier_cgderid[$cgdinfo[$cgdNo]['supplierNo']]['personid'] : 0];
                         ProcessOrder::AddProcess(['id' => $uid, 'nickname' => $nickname], $process);
 //                        Db::commit();
 //                        return json_show(0, '商品入库成功', ["wsm_in_code" => $wsm_in_code]);

+ 49 - 22
app/admin/controller/Purchin.php

@@ -186,11 +186,11 @@ class Purchin extends Base
             return error_show(1004,"参数 sendtype 不能为空");
         }
 
-        $data = GetUserInfo($this->post['token']);
-        if((!empty($data) && $data['code']!=0) ||empty($data) ){
-            return error_show($data['code'],$data['message']);
-        }
-        $userinfo = $data['data'];
+//        $data = GetUserInfo($this->post['token']);
+//        if((!empty($data) && $data['code']!=0) ||empty($data) ){
+//            return error_show($data['code'],$data['message']);
+//        }
+//        $userinfo = $data['data'];
         $post_company = isset($this->post['post_company'])&&$this->post['post_company']!="" ? trim($this->post['post_company']):"";
         $post_code = isset($this->post['post_code'])&&$this->post['post_code']!="" ? trim($this->post['post_code']):"";
         $post_fee = isset($this->post['post_fee'])&&$this->post['post_fee']!="" ? $this->post['post_fee']:"0";
@@ -219,8 +219,8 @@ class Purchin extends Base
             "post_code"=>$post_code,
             "post_fee"=>$post_fee,
             "sendtime"=>$post_time,
-            "apply_id"=>$userinfo['id'],
-            "apply_name"=>$userinfo['nickname'],
+            "apply_id"=>$this->uid,
+            "apply_name"=>$this->uname,
             "wait_num"=>0,
             "wsm_num"=>0,
             "sendtype"=>$sendtype,
@@ -233,9 +233,9 @@ class Purchin extends Base
             $win = Db::name("purchease_in")->insert($orin,true);
             if($win){
                 $sto = ["order_code"=>$wsm_in_code,"status"=>$status,"action_remark"=>'',"action_type"=>"edit"];
-                ActionLog::logAdd($this->post['token'],$sto,"RKD",$status,$this->post);
+                ActionLog::logAdd(['id'=>$this->uid,'nickname'=>$this->uname],$sto,"RKD",$status,$this->post);
                 $process=["order_code"=>$wsm_in_code,"order_id"=>$win,"order_status"=>$status,"order_type"=>'RKD',"before_status"=>$status,'holder_id' => $orin['apply_id']];
-                ProcessOrder::AddProcess($this->post['token'],$process);
+                ProcessOrder::AddProcess(['id'=>$this->uid,'nickname'=>$this->uname],$process);
                 $order = ["order_code"=>$cgdNo,"status"=>$cgdinfo['status'],"action_remark"=>'',"action_type"=>"edit"];
 
                 //维护台账信息
@@ -279,7 +279,7 @@ class Purchin extends Base
                     $good_data[]=['good_log_code'=>$wsm_in_code,"stock_id"=>$stockid,"type"=>1,'stock'=>$send_num,"stock_name"=>"usable_stock"];
                     $good_data[]=['good_log_code'=>$wsm_in_code,"stock_id"=>$stockid,"type"=>2,'stock'=>$send_num,"stock_name"=>"wait_in_stock"];
                     if($upd){
-                    	GoodLog::LogAdd($this->post['token'],$good_data,'RKD');
+                    	GoodLog::LogAdd(['id'=>$this->uid,'nickname'=>$this->uname],$good_data,'RKD');
                         //todo:: 新增bn编号库存数据修改
                         if($cgdinfo['order_type']==1){
                         	$bnin=GoodStockInfo::AddBn($stockid,$bn_code,$send_num,$cgdinfo['good_price']);
@@ -326,22 +326,49 @@ class Purchin extends Base
                                         Db::rollback();
                                         return error_show(1004,"出库单出库失败");
                                     }else{
+
+                                        //查询是否有非库存品订单
+                                        $is_stock = Db::name('sale')
+                                            ->where([
+                                                ['is_del','=',0],
+                                                ['orderCode','in',array_column($out,'orderCode')]
+                                            ])->column('is_stock','orderCode');
+
+                                        $supplier = Db::name('supplier')
+                                            ->field('person,personid')
+                                            ->where(['code'=>$cgdinfo['supplierNo'],'is_del'=>0])
+                                            ->findOrEmpty();
+
                                         foreach ($out as $k => $v_outCode) {
-                                            ActionLog::logAdd($this->post['token'], [
+                                            ActionLog::logAdd(['id' => $this->uid, 'nickname' => $this->uname], [
                                                 "order_code" => $v_outCode['outCode'],//出库单号
                                                 "status" => 0,//这里的status是之前的值
                                                 "action_remark" => '',//备注
                                                 "action_type" => "status"//新建create,编辑edit,更改状态status
                                             ], "CKD", 1, $this->post);
+                                            if (isset($is_stock[$v_outCode['orderCode']]) && $is_stock[$v_outCode['orderCode']] == 0) {
+                                                //非库存品,推给供应商负责人
+                                                ProcessOrder::AddProcess(['id' => $this->uid, 'nickname' => $this->uname], [
+                                                    "order_type" => 'CKD',
+                                                    "order_code" => $v_outCode['outCode'],//出库单号
+                                                    "order_id" => $v_outCode['id'],
+                                                    "order_status" => 1,
+                                                    "before_status" => 0,
+                                                    'wait_id' => $supplier['personid'],
+                                                    'wait_name' => $supplier['person'],
+                                                    'holder_id' => $supplier['personid'],
+                                                ]);
+                                            } else {
+                                                ProcessOrder::AddProcess(['id' => $this->uid, 'nickname' => $this->uname], [
+                                                    "order_type" => 'CKD',
+                                                    "order_code" => $v_outCode['outCode'],//出库单号
+                                                    "order_id" => $v_outCode['id'],
+                                                    "order_status" => 1,
+                                                    "before_status" => 0,
+                                                    'holder_id' => $v_outCode['apply_id']
+                                                ]);
+                                            }
 
-                                            ProcessOrder::AddProcess($this->post['token'], [
-                                                "order_type" => 'CKD',
-                                                "order_code" => $v_outCode['outCode'],//出库单号
-                                                "order_id" => $v_outCode['id'],
-                                                "order_status" => 1,
-                                                "before_status"=>0,
-                                                'holder_id' => $v_outCode['apply_id']
-                                            ]);
                                         }
                                     }
                                     $good1 = Db::name("good_stock")->where(["wsm_code"=>$cgdinfo['wsm_code'], "spuCode"=>$cgdinfo['spuCode'],"is_del"=>0])->find();
@@ -367,7 +394,7 @@ class Purchin extends Base
 
                                     $good_data[]=['good_log_code'=>$wsm_in_code,"stock_id"=>$stockid,"type"=>1,'stock'=>$send_num,"stock_name"=>"wait_out_stock"];
                                     $good_data[]=['good_log_code'=>$wsm_in_code,"stock_id"=>$stockid,"type"=>1,'stock'=>$send_num,"stock_name"=>"usable_stock"];
-                                    GoodLog::LogAdd($this->post['token'],$good_data,'RKD');
+                                    GoodLog::LogAdd(['id'=>$this->uid,'nickname'=>$this->uname],$good_data,'RKD');
                                     $sendp=Db::name("order_send")->where(["cgdNo"=>$cgdNo,"outCode"=>$send,"status"=>1])->save (["status"=>2]);
                                     if($sendp==false){
                                         Db::rollback();
@@ -377,9 +404,9 @@ class Purchin extends Base
                             }
                         }
 
-                        ActionLog::logAdd($this->post['token'],$order,"CGD", $cgdinfo['status'],$cgdinfo);
+                        ActionLog::logAdd(['id'=>$this->uid,'nickname'=>$this->uname],$order,"CGD", $cgdinfo['status'],$cgdinfo);
                         $process = ["order_code" => $cgdNo, "order_id" => $cgdinfo['id'], "order_status" => $cgdinfo['status'], "order_type" => 'CGD', "before_status" => $order['status'], 'holder_id' => Db::name('supplier')->where(['code' => $cgdinfo['supplierNo'], 'is_del' => 0])->value('personid', 0)];
-                        ProcessOrder::AddProcess($this->post['token'],$process);
+                        ProcessOrder::AddProcess(['id'=>$this->uid,'nickname'=>$this->uname],$process);
                         Db::commit();
                         return app_show(0,'商品入库成功',["wsm_in_code"=>$wsm_in_code]);
                     }else{

+ 106 - 41
app/admin/controller/Sale.php

@@ -793,14 +793,36 @@ class Sale extends Base
                             "action_type" => "create"//新建create,编辑edit,更改状态status
                         ], "CKD", 0, $out);
 
-                        ProcessOrder::AddProcess(['id'=>$rm,'nickname'=>$ri], [
-                            "order_type" => 'CKD',
-                            "order_code" => $outCode,//出库单号
-                            "order_id" => $ou,
-                            "order_status" => $status,
-                            "before_status" => 0,
-                            'holder_id'=>$out['apply_id'],
-                        ]);
+                        //区分是否是库存品订单
+                        if($status===1 && $etid['is_stock']==0){
+
+                            $supplier = Db::name('supplier')
+                                ->field('person,personid')
+                                ->where('code',$cgdinfo['supplierNo'])
+                                ->findOrEmpty();
+
+                            ProcessOrder::AddProcess(['id'=>$rm,'nickname'=>$ri], [
+                                "order_type" => 'CKD',
+                                "order_code" => $outCode,//出库单号
+                                "order_id" => $ou,
+                                "order_status" => $status,
+                                "before_status" => 0,
+                                'wait_id'=>$supplier['personid'],
+                                'wait_name'=>$supplier['person'],
+                                'holder_id'=>$supplier['personid'],
+                            ]);
+                        }else{
+                            ProcessOrder::AddProcess(['id'=>$rm,'nickname'=>$ri], [
+                                "order_type" => 'CKD',
+                                "order_code" => $outCode,//出库单号
+                                "order_id" => $ou,
+                                "order_status" => $status,
+                                "before_status" => 0,
+                                'holder_id'=>$out['apply_id'],
+                            ]);
+                        }
+
+
 
                         //处理台账-既然是根据orderCode更新的数据,那么肯定是有数据的,只需要更新就行了
                         Db::execute("UPDATE `wsm_standing_book` SET `outCode`=CONCAT(IFNULL(`outCode`,''),',{$outCode}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `orderCode`='{$orderCode}'");
@@ -2807,12 +2829,12 @@ class Sale extends Base
         if ($send_num > $der['wsend_num']) {
             return error_show(1002, "超出可发货数量");
         }
-        $apply_id = GetUserInfo($token);
-        if (empty($apply_id) || $apply_id['code'] != 0) {
-            return error_show(1002, "申请人数据不存在");
-        }
-        $rm = isset($apply_id["data"]['id']) ? $apply_id["data"]['id'] : "";
-        $ri = isset($apply_id["data"]['nickname']) ? $apply_id["data"]['nickname'] : "";
+//        $apply_id = GetUserInfo($token);
+//        if (empty($apply_id) || $apply_id['code'] != 0) {
+//            return error_show(1002, "申请人数据不存在");
+//        }
+        $rm = $this->uid;
+        $ri = $this->uname;
         $addrid = isset($this->post['addrid']) && $this->post['addrid'] !== "" ? intval($this->post['addrid']) : "";
         $dr = Db::name('order_addr')->where(['id' => $addrid, 'is_del' => 0])->find();
         if (empty($dr)) {
@@ -2851,10 +2873,21 @@ class Sale extends Base
             $datainfo = Db::name('order_out')->insert($data, true);
             if ($datainfo > 0) {
                 $stx = ["order_code" => $outCode, "status" => $status, "action_remark" => '', "action_type" => "create"];
-                ActionLog::logAdd($this->post['token'], $stx, $der['order_type'] == 1 ? "CKD" : 'ZXCKD', $status, $data);
-                $order = ["order_type" => "CKD", "order_code" => $outCode, "order_id" => $datainfo, "order_status" => $data['status'], "before_status" => 0,                                    'holder_id'=>$data['apply_id']
-                ];
-                ProcessOrder::AddProcess($this->post['token'], $order);
+                ActionLog::logAdd(['id'=>$rm,'nickname'=>$ri], $stx, $der['order_type'] == 1 ? "CKD" : 'ZXCKD', $status, $data);
+
+                //是否库存品,待办数据推送到的人有区别,
+                //库存品——>推到库管,非库存品——>推送供应商负责人
+                if ($data['status'] == 1 && $der['is_stock'] == 0) {
+                    $supplier = Db::name('supplier')
+                        ->alias('a')
+                        ->field('a.id,a.person,a.personid')
+                        ->leftJoin('purchease_order b', 'b.is_del=0 AND b.supplierNo=a.code')
+                        ->leftJoin('order_num c', 'c.cgdNo=b.cgdNo')
+                        ->where('c.orderCode', $orderCode)
+                        ->findOrEmpty();
+                    $order = ["order_type" => "CKD", "order_code" => $outCode, "order_id" => $datainfo, "order_status" => $data['status'], "before_status" => 0, 'holder_id' => $data['apply_id'], 'wait_id' => $supplier['personid'] ?? 0, 'wait_name' => $supplier['person'] ?? ''];
+                } else  $order = ["order_type" => "CKD", "order_code" => $outCode, "order_id" => $datainfo, "order_status" => $data['status'], "before_status" => 0, 'holder_id' => $data['apply_id']];
+                ProcessOrder::AddProcess(['id'=>$rm,'nickname'=>$ri], $order);
                 if ($status == 1) {
                     $item = $der['status'];
                     $der['send_num'] += $send_num;
@@ -2869,10 +2902,10 @@ class Sale extends Base
                     }
                     $stx = ["order_code" => $orderCode, "status" => $item, "action_remark" => '', "action_type" => "edit"];
 
-                    ActionLog::logAdd($this->post['token'], $stx, "XSQRD", $der['status'], $der);
+                    ActionLog::logAdd(['id'=>$rm,'nickname'=>$ri], $stx, "XSQRD", $der['status'], $der);
                     $order = ["order_type" => "XSQRD", "order_code" => $orderCode, "order_id" => $der['id'], "order_status" => $data['status'], "before_status" => 0,'holder_id'=>$der['apply_id']];
 
-                    ProcessOrder::AddProcess($this->post['token'], $order);
+                    ProcessOrder::AddProcess(['id'=>$rm,'nickname'=>$ri], $order);
                 }
 
                 Db::commit();
@@ -2918,9 +2951,20 @@ class Sale extends Base
             $cust = Db::name('order_out')->save($codeinfo);
             if ($cust) {
                 $stx = ["order_code" => $outCode, "status" => $time, "action_remark" => '', "action_type" => "status"];
-                ActionLog::logAdd($this->post['token'], $stx, "CKD", $codeinfo['status'], $codeinfo);
-                $order = ["order_type" => "CKD", "order_code" => $outCode, "order_id" => $codeinfo['id'], "order_status" => $codeinfo['status'], "before_status" => 0,            'holder_id'=>$codeinfo['apply_id']];
-                ProcessOrder::AddProcess($this->post['token'], $order);
+                ActionLog::logAdd(['id'=>$this->uid,'nickname'=>$this->uname], $stx, "CKD", $codeinfo['status'], $codeinfo);
+
+                if ($status == 1 && $dr['is_stock'] == 0) {
+                    $supplier = Db::name('supplier')
+                        ->alias('a')
+                        ->field('a.id,a.person,a.personid')
+                        ->leftJoin('purchease_order b', 'b.is_del=0 AND b.supplierNo=a.code')
+                        ->leftJoin('order_num c', 'c.cgdNo=b.cgdNo')
+                        ->where('c.orderCode', $codeinfo['orderCode'])
+                        ->findOrEmpty();
+                    $order = ["order_type" => "CKD", "order_code" => $outCode, "order_id" => $codeinfo['id'], "order_status" => $codeinfo['status'], "before_status" => 0, 'holder_id' => $codeinfo['apply_id'], 'wait_id' => $supplier['personid'] ?? 0, 'wait_name' => $supplier['person'] ?? ''];
+                }else $order = ["order_type" => "CKD", "order_code" => $outCode, "order_id" => $codeinfo['id'], "order_status" => $codeinfo['status'], "before_status" => 0,'holder_id'=>$codeinfo['apply_id']];
+
+                ProcessOrder::AddProcess(['id'=>$this->uid,'nickname'=>$this->uname], $order);
                 if ($status == 1) {
                     $stokc = Db::name("good_stock")->where(['spuCode' => $codeinfo['spuCode'], "wsm_code" => $codeinfo['wsm_code'],
                         "is_del" => 0])->find();
@@ -2953,14 +2997,14 @@ class Sale extends Base
                         return error_show(1003, "更新失败");
                     }
                     $stx = ["order_code" => $dr['orderCode'], "status" => $item, "action_remark" => '', "action_type" => "edit"];
-                    ActionLog::logAdd($this->post['token'], $stx, $dr['order_type'] == 2 ? "ZXQRD" : "XSQRD", $dr['status'],$dr);
+                    ActionLog::logAdd(['id'=>$this->uid,'nickname'=>$this->uname], $stx, $dr['order_type'] == 2 ? "ZXQRD" : "XSQRD", $dr['status'],$dr);
                     $order = ["order_type" => "XSQRD", "order_code" => $dr['orderCode'], "order_id" => $dr['id'], "order_status" => $dr['status'], "before_status" => 0, 'holder_id' => $dr['apply_id']];
-                    ProcessOrder::AddProcess($this->post['token'], $order);
+                    ProcessOrder::AddProcess(['id'=>$this->uid,'nickname'=>$this->uname], $order);
 
                     //商品变动日志表,good_log_code字段存储销售订单编号
                     $good_data[] = ['good_log_code' => $outCode, "stock_id" => $stoc['id'], "type" => 1, 'stock' => $codeinfo['send_num'], "stock_name" => "wait_out_stock"];
                     $good_data[] = ['good_log_code' => $outCode, "stock_id" => $stoc['id'], "type" => 2, 'stock' => $codeinfo['send_num'], "stock_name" => "usable_stock"];
-                    GoodLog::LogAdd($this->post['token'], $good_data, 'CKD');
+                    GoodLog::LogAdd(['id'=>$this->uid,'nickname'=>$this->uname], $good_data, 'CKD');
                 }
                 if ($status == 3) {
                     $var = Db::name('good_stock')->where(['wsm_code' => $codeinfo['wsm_code'], 'good_type_code' => $dr['good_code']])->find();
@@ -2978,7 +3022,7 @@ class Sale extends Base
 
                     //商品变动日志表,good_log_code字段存储销售订单编号
                     $good_data[] = ['good_log_code' => $outCode, "stock_id" => $var['id'], "type" => 2, 'stock' => $codeinfo['send_num'], "stock_name" => "intra_stock"];
-                    GoodLog::LogAdd($this->post['token'], $good_data, $codeinfo['order_type'] == 2 ? "ZXCKD" : "CKD");
+                    GoodLog::LogAdd(['id'=>$this->uid,'nickname'=>$this->uname], $good_data, $codeinfo['order_type'] == 2 ? "ZXCKD" : "CKD");
                     if ($stre == false) {
                         Db::rollback();
                         return error_show(1002, "状态更新失败");
@@ -3512,12 +3556,12 @@ class Sale extends Base
         if ($addr_code == "") {
             return error_show(1002, "参数addr_code不能为空");
         }
-        $apply_id = GetUserInfo($token);
-        if (empty($apply_id) || $apply_id['code'] != 0) {
-            return error_show(1002, "申请人数据不存在");
-        }
-        $rm = isset($apply_id["data"]['id']) ? $apply_id["data"]['id'] : "";
-        $ri = isset($apply_id["data"]['nickname']) ? $apply_id["data"]['nickname'] : "";
+//        $apply_id = GetUserInfo($token);
+//        if (empty($apply_id) || $apply_id['code'] != 0) {
+//            return error_show(1002, "申请人数据不存在");
+//        }
+        $rm = $this->uid;//isset($apply_id["data"]['id']) ? $apply_id["data"]['id'] : "";
+        $ri = $this->uname;//isset($apply_id["data"]['nickname']) ? $apply_id["data"]['nickname'] : "";
         $sendtime = isset($this->post['sendtime']) && $this->post['sendtime'] !== "" ? $this->post['sendtime'] : date("Y-m-d H:i:s");
 
         Db::startTrans();
@@ -3647,14 +3691,35 @@ class Sale extends Base
                         "action_type" => "create"//新建create,编辑edit,更改状态status
                     ], "CKD", $data['status'], $data);
 
-                    ProcessOrder::AddProcess(['id'=>$rm,'nickname'=>$ri], [
-                        "order_type" => 'CKD',
-                        "order_code" => $data['outCode'],//出库单号
-                        "order_id" => $datainfo,
-                        "order_status" => $data['status'],
-                        "before_status" => 0,
-                        'holder_id'=>$data['apply_id']
-                    ]);
+                    //是否库存品,待办数据推送到的人有区别,
+                    //库存品——>推到库管,非库存品——>推送供应商负责人
+                    if ($data['status'] == 1 && $der['is_stock'] == 0) {
+
+                        $supplier = Db::name('supplier')
+                            ->field('person,personid')
+                            ->where('code', $cgd['supplierNo'])
+                            ->findOrEmpty();
+
+                        ProcessOrder::AddProcess(['id' => $rm, 'nickname' => $ri], [
+                            "order_type" => 'CKD',
+                            "order_code" => $data['outCode'],//出库单号
+                            "order_id" => $datainfo,
+                            "order_status" => $data['status'],
+                            "before_status" => 0,
+                            'holder_id' => $data['apply_id'],
+                            'wait_id' => $supplier['personid'],
+                            'wait_name' => $supplier['person'],
+                        ]);
+                    } else {
+                        ProcessOrder::AddProcess(['id' => $rm, 'nickname' => $ri], [
+                            "order_type" => 'CKD',
+                            "order_code" => $data['outCode'],//出库单号
+                            "order_id" => $datainfo,
+                            "order_status" => $data['status'],
+                            "before_status" => 0,
+                            'holder_id' => $data['apply_id']
+                        ]);
+                    }
 
                     //维护台账记录
                     Db::name('standing_book')

+ 16 - 1
app/admin/controller/Salezx.php

@@ -588,7 +588,22 @@ class Salezx extends \app\BaseController
             if($datainfo) {
                 $st = ["order_code"=>$der['outCode'],"status"=>$var,"action_remark"=>'',"action_type"=>"edit"];
                 ActionLog::logAdd($this->post['token'],$st,"CKD",1,$der);
-                $ord=["order_type"=>"CKD","order_code"=>$der['outCode'],"order_id"=>$der['id'], "order_status"=>$der['status'],'holder_id' => $der['apply_id']];
+
+                //是否库存品,待办数据推送到的人有区别,
+                //库存品——>推到库管,非库存品——>推送供应商负责人
+                if($order['is_stock']==1) $ord=["order_type"=>"CKD","order_code"=>$der['outCode'],"order_id"=>$der['id'], "order_status"=>$der['status'],'holder_id' => $der['apply_id']];
+                else {
+
+                    $supplier = Db::name('supplier')
+                        ->alias('a')
+                        ->field('a.id,a.person,a.personid')
+                        ->leftJoin('purchease_order b', 'b.is_del=0 AND b.supplierNo=a.code')
+                        ->leftJoin('order_num c', 'c.cgdNo=b.cgdNo')
+                        ->where('c.orderCode', $der['orderCode'])
+                        ->findOrEmpty();
+
+                    $ord = ["order_type" => "CKD", "order_code" => $der['outCode'], "order_id" => $der['id'], "order_status" => $der['status'], 'holder_id' => $der['apply_id'], 'wait_id' => $supplier['personid'], 'wait_name' => $supplier['person']];
+                }
                 ProcessOrder::AddProcess($this->post['token'],$ord);
 //                    $send =Db::name("order_out")->where(["wsm_code"=>$der['wsm_code'],'orderCode'=>$der['orderCode']])->sum("send_num");
 //                    $order['send_num']+= $der['send_num'];