Ver código fonte

Merge branch 'dev_wf' of wugg/phpstock into version1.5

wufeng 2 anos atrás
pai
commit
2d65b4c260

+ 22 - 1
app/abutment/controller/Order.php

@@ -408,7 +408,28 @@ class Order extends HomeBaseController
                 ->column('personid','code');
 
             foreach ($cgdNo as $vlue) {
-                $process = ["order_code" => $vlue, "order_id" => isset($info[$vlue]['id']) ? $info[$vlue]['id'] : 0, "order_status" => $status, "order_type" => 'CGD', "before_status" => isset($info[$vlue]['status']) ? $info[$vlue]['status'] : 0,'holder_id'=> isset($supplier_cgderid[$info[$vlue]['supplierNo']]) ? $supplier_cgderid[$info[$vlue]['supplierNo']] : 0];
+                if($status==1 || $status==2){
+                    $orderinfo = Db::name('sale')
+                        ->alias('a')
+                        ->field('a.id,a.orderCode,a.is_stock,a.order_type,a.cgderid')
+                        ->leftJoin('order_num b','b.orderCode=a.orderCode')
+                        ->where([
+                            'a.is_del'=>0,
+                            'b.cgdNo'=>$vlue,
+                        ])->findOrEmpty();
+
+                    if($orderinfo['is_stock']==1){
+                        //库存品,推给31库管人员、41库管-张凯旋
+                        $uid = Db::name('user_role')
+                            ->where([
+                                ['is_del', '=', 0],
+                                ['roleid', 'in', [31, 41]],
+                                ['status', '=', 1]
+                            ])->column('uid');
+
+                        $process = ["order_code" => $vlue, "order_id" => isset($info[$vlue]['id']) ? $info[$vlue]['id'] : 0, "order_status" => $status, "order_type" => 'CGD', "before_status" => isset($info[$vlue]['status']) ? $info[$vlue]['status'] : 0,'holder_id'=> isset($supplier_cgderid[$info[$vlue]['supplierNo']]) ? $supplier_cgderid[$info[$vlue]['supplierNo']] : 0,'handle_user_list'=>implode(',', $uid)];
+                    }elseif ($orderinfo['is_stock']==0 || $orderinfo['order_type']==3) $process = ["order_code" => $vlue, "order_id" => isset($info[$vlue]['id']) ? $info[$vlue]['id'] : 0, "order_status" => $status, "order_type" => 'CGD', "before_status" => isset($info[$vlue]['status']) ? $info[$vlue]['status'] : 0,'holder_id'=> isset($supplier_cgderid[$info[$vlue]['supplierNo']]) ? $supplier_cgderid[$info[$vlue]['supplierNo']] : 0,'handle_user_list'=>$orderinfo['cgderid']];//非库存品和采返商品,推给供应商负责人
+                }else $process = ["order_code" => $vlue, "order_id" => isset($info[$vlue]['id']) ? $info[$vlue]['id'] : 0, "order_status" => $status, "order_type" => 'CGD', "before_status" => isset($info[$vlue]['status']) ? $info[$vlue]['status'] : 0,'holder_id'=> isset($supplier_cgderid[$info[$vlue]['supplierNo']]) ? $supplier_cgderid[$info[$vlue]['supplierNo']] : 0];
                 ProcessOrder::AddProcess(['id' => $uid, 'nickname' => $uname], $process);
                 $order = ["order_code" => $vlue, "status" => '', "action_remark" => $remark, "action_type" => "status"];
                 ActionLog::logAdd(['id' => $uid, 'nickname' => $uname], $order, 'CGD', $status, $this->post);

+ 6 - 2
app/admin/controller/After.php

@@ -153,7 +153,7 @@ class After extends Base
 
                 Db::execute("UPDATE `wsm_standing_book` SET `returnCode`=CONCAT(IFNULL(`returnCode`,''),',{$returnCode}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE FIND_IN_SET('{$outCode}',`outCode`)");
 
-                //当状态为1(即待业务审核)时,要将待办数据推给销售主管,即角色为'客服负责人'的用户
+                //当状态为1(即待业务审核)时,要将待办数据推给以下角色的用户
                 $user = Db::name('user_role')
                     ->where([
                         ['is_del', '=', 0],
@@ -161,7 +161,11 @@ class After extends Base
                         ['status', '=', 1],
                     ])->column('uid');
 
-                $process = ["order_code" => $returnCode, "order_id" => $create, "order_status" => $in['status'], "order_type" => 'SHD', "before_status" => 0, 'handle_user_list'=>implode($user)];
+                //筛选符合数据权限的用户
+//                $temp = getUserIdsByShare('', $in['apply_id']);
+//                $user = array_intersect($user, $temp);
+
+                $process = ["order_code" => $returnCode, "order_id" => $create, "order_status" => $in['status'], "order_type" => 'SHD', "before_status" => 0, 'handle_user_list' => implode(',', $user)];
                     ProcessOrder::AddProcess($token,$process);
                     Db::commit();
                     return app_show(0,"售后申请单新建成功",["returnCode"=>$returnCode]);

+ 22 - 1
app/admin/controller/Purch.php

@@ -684,7 +684,28 @@ class Purch extends Base
             $uname = $this->uname;
 
             foreach ($cgdNo as $vlue) {
-                $process = ["order_code" => $vlue, "order_id" => isset($info[$vlue]['id']) ? $info[$vlue]['id'] : 0, "order_status" => $status, "order_type" => 'CGD', "before_status" => isset($info[$vlue]['status']) ? $info[$vlue]['status'] : 0, 'holder_id' => isset($supplier_cgderid[$info[$vlue]['supplierNo']]) ? $supplier_cgderid[$info[$vlue]['supplierNo']] : 0];
+                if($status==1 || $status==2){
+                    $orderinfo = Db::name('sale')
+                    ->alias('a')
+                    ->field('a.id,a.orderCode,a.is_stock,a.order_type,a.cgderid')
+                    ->leftJoin('order_num b','b.orderCode=a.orderCode')
+                    ->where([
+                        'a.is_del'=>0,
+                        'b.cgdNo'=>$vlue,
+                    ])->findOrEmpty();
+
+                    if($orderinfo['is_stock']==1){
+                        //库存品,推给31库管人员、41库管-张凯旋
+                        $uid = Db::name('user_role')
+                            ->where([
+                                ['is_del', '=', 0],
+                                ['roleid', 'in', [31, 41]],
+                                ['status', '=', 1]
+                            ])->column('uid');
+                        $process = ["order_code" => $vlue, "order_id" => isset($info[$vlue]['id']) ? $info[$vlue]['id'] : 0, "order_status" => $status, "order_type" => 'CGD', "before_status" => isset($info[$vlue]['status']) ? $info[$vlue]['status'] : 0, 'holder_id' => isset($supplier_cgderid[$info[$vlue]['supplierNo']]) ? $supplier_cgderid[$info[$vlue]['supplierNo']] : 0,'handle_user_list'=>implode(',', $uid)];
+                    }elseif ($orderinfo['is_stock']==0 || $orderinfo['order_type']==3)  $process = ["order_code" => $vlue, "order_id" => isset($info[$vlue]['id']) ? $info[$vlue]['id'] : 0, "order_status" => $status, "order_type" => 'CGD', "before_status" => isset($info[$vlue]['status']) ? $info[$vlue]['status'] : 0, 'holder_id' => isset($supplier_cgderid[$info[$vlue]['supplierNo']]) ? $supplier_cgderid[$info[$vlue]['supplierNo']] : 0,'handle_user_list'=>$orderinfo['cgderid']];//非库存品和采返商品,推给供应商负责人
+                }else $process = ["order_code" => $vlue, "order_id" => isset($info[$vlue]['id']) ? $info[$vlue]['id'] : 0, "order_status" => $status, "order_type" => 'CGD', "before_status" => isset($info[$vlue]['status']) ? $info[$vlue]['status'] : 0, 'holder_id' => isset($supplier_cgderid[$info[$vlue]['supplierNo']]) ? $supplier_cgderid[$info[$vlue]['supplierNo']] : 0];
+
                 ProcessOrder::AddProcess(['id' => $uid, 'nickname' => $uname], $process);
                 $order = ["order_code" => $vlue, "status" => '', "action_remark" => $remark, "action_type" => "status"];
                 ActionLog::logAdd(['id' => $uid, 'nickname' => $uname], $order, 'CGD', $status, $this->post);

+ 133 - 7
app/admin/controller/Purchin.php

@@ -236,7 +236,28 @@ class Purchin extends Base
             if($win){
                 $sto = ["order_code"=>$wsm_in_code,"status"=>$status,"action_remark"=>'',"action_type"=>"edit"];
                 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']];
+
+                if($cgdinfo['status']==1 || $cgdinfo['status']==2){
+                    $orderinfo = Db::name('sale')
+                        ->alias('a')
+                        ->field('a.id,a.orderCode,a.is_stock,a.order_type,a.cgderid')
+                        ->leftJoin('order_num b','b.orderCode=a.orderCode')
+                        ->where([
+                            'a.is_del'=>0,
+                            'b.cgdNo'=>$cgdinfo['cgdNo'],
+                        ])->findOrEmpty();
+                    if($orderinfo['is_stock']==1){
+                        //库存品,推给31库管人员、41库管-张凯旋
+                        $uid = Db::name('user_role')
+                            ->where([
+                                ['is_del', '=', 0],
+                                ['roleid', 'in', [31, 41]],
+                                ['status', '=', 1]
+                            ])->column('uid');
+                        $process=["order_code"=>$wsm_in_code,"order_id"=>$win,"order_status"=>$status,"order_type"=>'RKD',"before_status"=>$status,'holder_id' => $orin['apply_id'],'handle_user_list'=>implode(',', $uid)];
+                    }elseif ($orderinfo['is_stock']==0 || $orderinfo['order_type']==3) $process=["order_code"=>$wsm_in_code,"order_id"=>$win,"order_status"=>$status,"order_type"=>'RKD',"before_status"=>$status,'holder_id' => $orin['apply_id'],'handle_user_list'=>$orderinfo['cgderid']];//非库存品和采返商品,推给供应商负责人
+                }else $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(['id'=>$this->uid,'nickname'=>$this->uname],$process);
                 $order = ["order_code"=>$cgdNo,"status"=>$cgdinfo['status'],"action_remark"=>'',"action_type"=>"edit"];
 
@@ -612,8 +633,29 @@ class Purchin extends Base
                     $up=Db::name("purchease_order")->save($cgdinfo);
                     if($up){
                         ActionLog::logAdd($this->post['token'],$order,"CGD", $cgdinfo['status'],$cgdinfo);
-                        $process=["order_code"=>$info['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);
+
+                        if($cgdinfo['status']==1  || $cgdinfo['status']==2){
+                            $orderinfo = Db::name('sale')
+                                ->alias('a')
+                                ->field('a.id,a.orderCode,a.is_stock,a.order_type,a.cgderid')
+                                ->leftJoin('order_num b','b.orderCode=a.orderCode')
+                                ->where([
+                                    'a.is_del'=>0,
+                                    'b.cgdNo'=>$cgdinfo['cgdNo'],
+                                ])->findOrEmpty();
+                            if($orderinfo['is_stock']==1){
+                                //库存品,推给31库管人员、41库管-张凯旋
+                                $uid = Db::name('user_role')
+                                    ->where([
+                                        ['is_del', '=', 0],
+                                        ['roleid', 'in', [31, 41]],
+                                        ['status', '=', 1]
+                                    ])->column('uid');
+                                $process=["order_code"=>$info['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),'handle_user_list'=>implode(',', $uid)];
+                            }elseif ($orderinfo['is_stock']==0 || $orderinfo['order_type']==3) $process=["order_code"=>$info['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),'handle_user_list'=>$orderinfo['cgderid']];//非库存品和采返商品,推给供应商负责人
+                        }else $process=["order_code"=>$info['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(['id' => $this->uid, 'nickname' => $this->uname], $process);
                         Db::commit();
                         return app_show(0,'取消成功');
                     }else{
@@ -636,7 +678,28 @@ class Purchin extends Base
                     $up=Db::name("purchease_order")->save($cgdinfo);
                     if($up){
                         ActionLog::logAdd($this->post['token'],$order,"CGD", $cgdinfo['status'],$cgdinfo);
-                        $process=["order_code"=>$info['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)];
+
+
+                        if($cgdinfo['status'] == 1  || $cgdinfo['status']==2){
+                            $orderinfo = Db::name('sale')
+                                ->alias('a')
+                                ->field('a.id,a.orderCode,a.is_stock,a.order_type,a.cgderid')
+                                ->leftJoin('order_num b','b.orderCode=a.orderCode')
+                                ->where([
+                                    'a.is_del'=>0,
+                                    'b.cgdNo'=>$cgdinfo['cgdNo'],
+                                ])->findOrEmpty();
+                            if($orderinfo['is_stock']==1){
+                                //库存品,推给31库管人员、41库管-张凯旋
+                                $uid = Db::name('user_role')
+                                    ->where([
+                                        ['is_del', '=', 0],
+                                        ['roleid', 'in', [31, 41]],
+                                        ['status', '=', 1]
+                                    ])->column('uid');
+                                $process=["order_code"=>$info['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),'handle_user_list'=>implode(',', $uid)];
+                            }elseif ($orderinfo['is_stock']==0 || $orderinfo['order_type']==3) $process=["order_code"=>$info['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),'handle_user_list'=>$orderinfo['cgderid']];//非库存品和采返商品,推给供应商负责人
+                        }else $process=["order_code"=>$info['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);
                         Db::commit();
                         return app_show(0,'发货成功');
@@ -663,7 +726,28 @@ class Purchin extends Base
                         return error_show(1002,"发货失败");
                     }
                     ActionLog::logAdd($this->post['token'],$order,"CGD", $cgdinfo['status'],$cgdinfo);
-                    $process=["order_code"=>$info['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)];
+
+                    if($cgdinfo['status']==1 || $cgdinfo['status']==2){
+                        $orderinfo = Db::name('sale')
+                            ->alias('a')
+                            ->field('a.id,a.orderCode,a.is_stock,a.order_type,a.cgderid')
+                            ->leftJoin('order_num b','b.orderCode=a.orderCode')
+                            ->where([
+                                'a.is_del'=>0,
+                                'b.cgdNo'=>$cgdinfo['cgdNo'],
+                            ])->findOrEmpty();
+                        if($orderinfo['is_stock']==1){
+                            //库存品,推给31库管人员、41库管-张凯旋
+                            $uid = Db::name('user_role')
+                                ->where([
+                                    ['is_del', '=', 0],
+                                    ['roleid', 'in', [31, 41]],
+                                    ['status', '=', 1]
+                                ])->column('uid');
+
+                            $process=["order_code"=>$info['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),'handle_user_list'=>$orderinfo['cgderid'],'handle_user_list'=>implode(',', $uid)];
+                        }elseif ($orderinfo['is_stock']==0 || $orderinfo['order_type']==3) $process=["order_code"=>$info['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),'handle_user_list'=>$orderinfo['cgderid']];//非库存品和采返商品,推给供应商负责人
+                    }else $process=["order_code"=>$info['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);
 
                     $good = Db::name("good_stock")->where(["wsm_code"=>$info['wsm_code'], "spuCode"=>$cgdinfo['spuCode'],"is_del"=>0])->find();
@@ -793,7 +877,27 @@ class Purchin extends Base
                     return error_show(1002,"发货失败");
                 }
                 ActionLog::logAdd($this->post['token'],$order,"CGD", $cgdinfo['status'],$cgdinfo);
-                $process=["order_code"=>$info['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)];
+
+                if($cgdinfo['status']==1 || $cgdinfo['status']==2){
+                    $orderinfo = Db::name('sale')
+                        ->alias('a')
+                        ->field('a.id,a.orderCode,a.is_stock,a.order_type,a.cgderid')
+                        ->leftJoin('order_num b','b.orderCode=a.orderCode')
+                        ->where([
+                            'a.is_del'=>0,
+                            'b.cgdNo'=>$cgdinfo['cgdNo'],
+                        ])->findOrEmpty();
+                    if($orderinfo['is_stock']==1){
+                        //库存品,推给31库管人员、41库管-张凯旋
+                        $uid = Db::name('user_role')
+                            ->where([
+                                ['is_del', '=', 0],
+                                ['roleid', 'in', [31, 41]],
+                                ['status', '=', 1]
+                            ])->column('uid');
+                        $process=["order_code"=>$info['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),'handle_user_list'=>implode(',', $uid)];
+                    }elseif ($orderinfo['is_stock']==0 || $orderinfo['order_type']==3) $process=["order_code"=>$info['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),'handle_user_list'=>$orderinfo['cgderid']];//非库存品和采返商品,推给供应商负责人
+                }else $process=["order_code"=>$info['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);
                 $good = Db::name("good_stock")->where(["wsm_code"=>$info['wsm_code'], "spuCode"=>$cgdinfo['spuCode'],"is_del"=>0])->find();
                 if(empty($good)) {
@@ -1047,8 +1151,30 @@ class Purchin extends Base
                         return error_show(1004,"采购单数量更新失败");
                     }
                     ActionLog::logAdd($this->post['token'],$order,"CGD", $cgdinfo['status'],$cgdinfo);
-                    $process=["order_code"=>$cgdinfo['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)];
+
+                    if($cgdinfo['status']==1 || $cgdinfo['status']==2){
+                        $orderinfo = Db::name('sale')
+                            ->alias('a')
+                            ->field('a.id,a.orderCode,a.is_stock,a.order_type,a.cgderid')
+                            ->leftJoin('order_num b','b.orderCode=a.orderCode')
+                            ->where([
+                                'a.is_del'=>0,
+                                'b.cgdNo'=>$cgdinfo['cgdNo'],
+                            ])->findOrEmpty();
+                        if($orderinfo['is_stock']==1){
+                            //库存品,推给31库管人员、41库管-张凯旋
+                            $uid = Db::name('user_role')
+                                ->where([
+                                    ['is_del', '=', 0],
+                                    ['roleid', 'in', [31, 41]],
+                                    ['status', '=', 1]
+                                ])->column('uid');
+                            $process=["order_code"=>$cgdinfo['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),'handle_user_list'=>implode(',', $uid)];
+
+                        }elseif ($orderinfo['is_stock']==0 || $orderinfo['order_type']==3)  $process=["order_code"=>$cgdinfo['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),'handle_user_list'=>$orderinfo['cgderid']];//非库存品和采返商品,推给供应商负责人
+                    }else $process=["order_code"=>$cgdinfo['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);
+
                     Db::commit();
                     return  app_show(0,"退货发货成功");
                 }else{

+ 40 - 8
app/admin/controller/Reorder.php

@@ -923,14 +923,46 @@ class Reorder extends Base
                     ]);
 
                     //对应采购单也要处理
-                    ProcessOrder::AddProcess(['id' => $this->uid, 'nickname' => $this->uname], [
-                        "order_type" => 'CGD',
-                        "order_code" => $cgd['cgdNo'],
-                        "order_id" => $cgd["id"],
-                        "order_status" => $cgd['status'],
-                        "before_status" => $lor,
-                        'holder_id' => Db::name('supplier')->where(['code' => $cgd['supplierNo'], 'is_del' => 0])->value('personid', 0)
-                    ]);
+                    if(in_array($cgd['status'],[1,2])){
+                        if($orderinfo['is_stock']==1){
+                            //库存品,推给31库管人员、41库管-张凯旋
+                            $uid = Db::name('user_role')
+                                ->where([
+                                    ['is_del', '=', 0],
+                                    ['roleid', 'in', [31, 41]],
+                                    ['status', '=', 1]
+                                ])->column('uid');
+                            ProcessOrder::AddProcess(['id' => $this->uid, 'nickname' => $this->uname], [
+                                "order_type" => 'CGD',
+                                "order_code" => $cgd['cgdNo'],
+                                "order_id" => $cgd["id"],
+                                "order_status" => $cgd['status'],
+                                "before_status" => $lor,
+                                'holder_id' => Db::name('supplier')->where(['code' => $cgd['supplierNo'], 'is_del' => 0])->value('personid', 0),
+                                'handle_user_list' => implode(',', $uid),
+                            ]);
+                        }elseif ($orderinfo['is_stock']==0 || $orderinfo['order_type']==3){
+                            //非库存品和采返商品,推给供应商负责人
+                            ProcessOrder::AddProcess(['id' => $this->uid, 'nickname' => $this->uname], [
+                                "order_type" => 'CGD',
+                                "order_code" => $cgd['cgdNo'],
+                                "order_id" => $cgd["id"],
+                                "order_status" => $cgd['status'],
+                                "before_status" => $lor,
+                                'holder_id' => Db::name('supplier')->where(['code' => $cgd['supplierNo'], 'is_del' => 0])->value('personid', 0),
+                                'handle_user_list' => $orderinfo['cgderid'],
+                            ]);
+                        }
+                    }else{
+                        ProcessOrder::AddProcess(['id' => $this->uid, 'nickname' => $this->uname], [
+                            "order_type" => 'CGD',
+                            "order_code" => $cgd['cgdNo'],
+                            "order_id" => $cgd["id"],
+                            "order_status" => $cgd['status'],
+                            "before_status" => $lor,
+                            'holder_id' => Db::name('supplier')->where(['code' => $cgd['supplierNo'], 'is_del' => 0])->value('personid', 0)
+                        ]);
+                    }
 
                     if($orderinfo['is_stock'] == 1 || $info['is_th'] == 0){
 

+ 21 - 11
app/common.php

@@ -1241,6 +1241,26 @@ if (!function_exists('get_handle_user_list')) {
             ->column('uid');
 
         //根据菜单筛选符合条件的共享数据
+        $tmp = getUserIdsByShare($api_url,$holder_id);
+
+        $res = array_intersect($tmp, $data);//流程权限和数据权限取交集
+
+        //如果本人有流程权限的话,加入到数组中
+        if (in_array($holder_id, $data)) $res[] = $holder_id;
+        if ($person_id) $res[] = $person_id;
+
+        sort($res);
+        $res = array_unique($res);
+
+        return $res;
+
+    }
+}
+
+//根据数据权限,筛选符合条件的用户
+if (!function_exists('getUserIdsByShare')) {
+    function getUserIdsByShare(string $api_url = '', int $holder_id = 0)
+    {
         //当前请求的接口地址
         if ($api_url == '') $api_url = app('http')->getName() . '/' . request()->pathinfo();
         $menu_id = Db::name('admin_menu')
@@ -1274,16 +1294,6 @@ if (!function_exists('get_handle_user_list')) {
             }
         }
 
-        $res = array_intersect($tmp, $data);//流程权限和数据权限取交集
-
-        //如果本人有流程权限的话,加入到数组中
-        if (in_array($holder_id, $data)) $res[] = $holder_id;
-        if ($person_id) $res[] = $person_id;
-
-        sort($res);
-        $res = array_unique($res);
-
-        return $res;
-
+        return $tmp;
     }
 }