wugg 3 年之前
父節點
當前提交
22b1041f98

+ 81 - 0
app/admin/controller/Process.php

@@ -0,0 +1,81 @@
+<?php
+
+
+namespace app\admin\controller;
+use app\BaseController;
+use think\App;
+use think\facade\Db;
+class Process extends BaseController
+{
+    public $post="";
+ public function __construct(App $app)
+ {
+
+     parent::__construct($app);
+     $this->post = $this->request->post();
+ }
+
+    /**
+     * @return \think\response\Json|void
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     */
+  public function list(){
+     $page =isset($this->post['page']) &&$this->post['page']!="" ? intval($this->post['page']) : 1;
+     $size =isset($this->post['size']) &&$this->post['size']!="" ? intval($this->post['size']) : 10;
+
+     $count = Db::name("process")->count();
+     $total = ceil($count/$size);
+     $page = $page>$total ? $total:$page;
+     $list = Db::name("process")->page($page,$size)->select();
+     return app_show(0,"获取成功",["list"=>$list,"count"=>$count]);
+  }
+
+    /**
+     * @return \think\response\Json|void
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     */
+  public  function info(){
+    $id =isset($this->post['id']) &&$this->post['id']!="" ? intval($this->post['id']) : "";
+    if($id==""){
+        return error_show(1004,"参数id 不能为空");
+    }
+    $info = Db::name("process")->where(['id'=>$id,"is_del"=>0])->find();
+    if(empty($info)){
+        return error_show(1004,"流程信息未找到");
+    }
+    $list=Db::name("action_process")->where(["pid"=>$id,"is_del"=>0])->order("weight,id")->select();
+    $info['item'] = empty($list) ? []:$list;
+    return app_show(0,"获取成功",$info);
+  }
+
+    /**
+     * @return \think\response\Json|void
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     */
+  public function process(){
+    $process_type = isset($this->post['type'])&&$this->post['type']!="" ? $this->post['type']:"";
+    if($process_type==""){
+        return error_show(1004,"参数type 不能为空");
+    }
+      $orderCode = isset($this->post['orderCode'])&&$this->post['orderCode']!="" ? $this->post['orderCode']:"";
+      if($orderCode==""){
+          return error_show(1004,"参数orderCode不能为空");
+      }
+    $list = Db::name("action_process")->where(['order_type'=>$process_type,"is_del"=>0,"status"=>1])->order("weight desc,id")
+        ->select();
+    $data=[];
+    foreach ($list as $value){
+        $node = Db::name("process_order")->where(["order_type"=>$value['order_type'],"action_process"=>$value['order_process'],"order_code"=>$orderCode])->find();
+        $value['node']=!empty($node) ?$node:[];
+        $data[]=$value;
+    }
+    return app_show(0,"获取成功",$data);
+  }  
+
+}

+ 35 - 4
app/admin/controller/Resign.php

@@ -5,6 +5,7 @@
 
 namespace app\admin\controller;
 
+use app\admin\model\ProcessOrder;
 use app\BaseController;
 use think\facade\Db;
 use think\App;
@@ -155,7 +156,13 @@ class Resign extends BaseController
             "bk_code"=>$bk_code
         ];
         $in = Db::name("purchease")->insert($info);
-        return $in ? app_show(0,"新建成功",['bk_code'=>$bk_code]):error_show(1005,"新建失败");
+        if($in){
+            $order=["order_type"=>'BKD',"order_code"=>$bk_code,"order_status"=>0];
+            ProcessOrder::AddProcess($token,$order);
+          return app_show(0,"新建成功",['bk_code'=>$bk_code]);
+        }else{
+          return error_show(1005,"新建失败");
+        }
     }
 
     /**
@@ -187,7 +194,13 @@ class Resign extends BaseController
         $info['apply_name']=$userinfo['nickname'];
         unset($info['id']);
         $in = Db::name("purchease")->insert($info);
-        return $in ? app_show(0,"新建成功",['bk_code'=>$bk_code]):error_show(1005,"新建失败");
+        if($in){
+            $order=["order_type"=>'BKD',"order_code"=>$bk_code,"order_status"=>0];
+            ProcessOrder::AddProcess($this->post['token']  ,$order);
+            return app_show(0,"新建成功",['bk_code'=>$bk_code]);
+        }else{
+            return error_show(1005,"新建失败");
+        }
     }
     /**
      * @return \think\response\Json|void
@@ -296,7 +309,13 @@ class Resign extends BaseController
             "apply_name"=>$userinfo['nickname']
         ];
         $in = Db::name("purchease")->where($info)->save($up);
-        return $in ? app_show(0,"更新成功"):error_show(1005,"更新失败");
+        if($in){
+            $order=["order_type"=>'BKD',"order_code"=>$info['bk_code'],"order_status"=>$info['status']];
+            ProcessOrder::AddProcess($this->post['token'],$order);
+            return app_show(0,"更新成功",['bk_code'=>$info['bk_code']]);
+        }else{
+            return error_show(1005,"更新失败");
+        }
     }
 
     public function delete(){
@@ -330,7 +349,13 @@ class Resign extends BaseController
         $info['status']= $status;
         $info['updatetime']=date("Y-m-d H:i:s");
         $up = Db::name("purchease")->update($info);
-        return $up ? app_show(0,"更新成功"):error_show(1005,"更新失败");
+        if($up){
+            $order=["order_type"=>'BKD',"order_code"=>$info['bk_code'],"order_status"=>$status];
+            ProcessOrder::AddProcess($this->post['token'],$order);
+            return app_show(0,"更新成功",['bk_code'=>$info['bk_code']]);
+        }else{
+            return error_show(1005,"更新失败");
+        }
     }
 
 
@@ -425,6 +450,8 @@ class Resign extends BaseController
                 $info['addtime']=date("Y-m-d H:i:s");
                 $ood=Db::name('purchease')->save($info);
                 if($ood){
+                    $order=["order_type"=>'BKD',"order_code"=>$info['bk_code'],"order_status"=>$info['status']];
+                    ProcessOrder::AddProcess($this->post['token'],$order);
                     Db::commit();
                     return app_show(0,"新建成功");
                 }
@@ -506,6 +533,8 @@ class Resign extends BaseController
             $feed['updatetime']=date("Y-m-d H:i:s");
             $up = Db::name("purchease")->update($feed);
             if($up){
+                $order=["order_type"=>'BKD',"order_code"=>$feed['bk_code'],"order_status"=>$feed['status']];
+                ProcessOrder::AddProcess($this->post['token'],$order);
                 if($status==3){
                   //  $ware = Db::name("warehouse_addr")->where(["wsm_code"=>$feed['warehouse'],"is_del"=>0])->find();
                     $purse = Db::name("purchease_feedback")->where(['bkcode'=>$feed['bk_code'],"is_del"=>0])->find();
@@ -556,6 +585,8 @@ class Resign extends BaseController
                     ];
                     $in= Db::name("purchease_order")->insert($data);
                     if($in){
+                        $order=["order_type"=>'CGD',"order_code"=>$data['cgdNo'],"order_status"=>$data['status']];
+                        ProcessOrder::AddProcess($this->post['token'],$order);
                         Db::commit();
                         return app_show(0,"更新成功",['cgdNo'=>$inw]);
                     }

+ 1 - 1
app/admin/model/ActionLog.php

@@ -32,7 +32,7 @@ class ActionLog extends Model
             "action_name"=>$name,
             "role_id"=>$roleid,
             "action_status"=>$status,
-            "action_remark"=>isset($order['remark']) ? trim($order['remark']) :"",
+            "action_remark"=>isset($order[ 'remark']) ? trim($order['remark']) :"",
             "order_code"=>isset($order['order_code']) ? trim($order['order_code']) :"",
             "order_type"=>$type,
             "action_type"=>isset($order['action_type']) ? trim($order['action_type']) :"",

+ 29 - 0
app/admin/model/ProcessOrder.php

@@ -0,0 +1,29 @@
+<?php
+
+
+namespace app\admin\model;
+use think\facade\Config;
+
+class ProcessOrder extends \think\Model
+{
+    public static function AddProcess($token,$order){
+        $user = GetUserInfo($token);
+        $uid = isset($user['data']['id']) ? $user['data']['id'] :0;
+        $name = isset($user['data']['nickname']) ? $user['data']['nickname'] :'';
+        $conf =Config::get("process");
+        $action = isset($conf[$order['order_type']]) ? $conf[$order['order_type']]:[];
+
+        $data=[
+            "order_type"=>$order['order_type'],
+            "order_code"=>$order['order_code'],
+            "order_status"=>$order['order_status'],
+            "action_process"=>isset($action[$order['order_status']]) ?$action[$order['order_status']]:'',
+            "action_uid"=>$uid,
+            "action_name"=>$name,
+            "addtime"=>date("Y-m-d H:i:s")
+        ];
+        if(self::insert($data)){
+            Workflow::SaveFlow($data);
+        };
+    }
+}

+ 38 - 0
app/admin/model/Workflow.php

@@ -0,0 +1,38 @@
+<?php
+
+
+namespace app\admin\model;
+use think\facade\Config;
+
+class Workflow extends \think\Model
+{
+
+    public static function SaveFlow($data){
+        $conf =Config::get("process");
+        $action = isset($conf[$data['order_type']]) ? $conf[$data['order_type']]:[];
+        $last =end($action);
+        $header =reset($action);
+        $proces = self::where(["order_type"=>$data['order_type'],"oder_code"=>$data['order_code'],"is_del"=>0])->find();
+        if($proces){
+            $proces['order_status'] = $data['order_status'];
+            $proces['action_uid'] = $data['action_uid'];
+            $proces['action_name'] = $data['action_name'];
+            $proces["order_process"]=$last==$data['action_process']?3:($header==$data['action_process']?1:2);
+            $proces['updatetime']=date("Y-m-d H:i:s");
+        }else{
+            $proces=[
+                "order_type"=>$data['order_type'],
+                "order_code"=>$data['order_code'],
+                "order_status"=>$data['order_status'],
+                "order_process"=>$last==$data['action_process']?3:($header==$data['action_process']?1:2),
+                "apply_id"=>$data['action_uid'],
+                "apply_name"=>$data['action_name'],
+                "action_uid"=>$data['action_uid'],
+                "action_name"=>$data['action_name'],
+                "addtime"=>date("Y-m-d H:i:s"),
+                "updatetime"=>date("Y-m-d H:i:s")
+            ];
+        }
+        self::save($proces);
+    }
+}