Process.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?php
  2. namespace app\admin\controller;
  3. use app\BaseController;
  4. use think\App;
  5. use think\facade\Db;
  6. //流程单
  7. class Process extends Base
  8. {
  9. public function __construct(App $app)
  10. {
  11. parent::__construct($app);
  12. }
  13. /**
  14. * @return \think\response\Json|void
  15. * @throws \think\db\exception\DataNotFoundException
  16. * @throws \think\db\exception\DbException
  17. * @throws \think\db\exception\ModelNotFoundException
  18. */
  19. public function list(){
  20. $page =isset($this->post['page']) &&$this->post['page']!="" ? intval($this->post['page']) : 1;
  21. $size =isset($this->post['size']) &&$this->post['size']!="" ? intval($this->post['size']) : 10;
  22. $count = Db::name("process")->where('is_del',0)->count();
  23. $total = ceil($count/$size);
  24. $page = $page>$total ? $total:$page;
  25. $list = Db::name("process")->where('is_del', 0)->page($page, $size)->select();
  26. return app_show(0,"获取成功",["list"=>$list,"count"=>$count]);
  27. }
  28. /**
  29. * @return \think\response\Json|void
  30. * @throws \think\db\exception\DataNotFoundException
  31. * @throws \think\db\exception\DbException
  32. * @throws \think\db\exception\ModelNotFoundException
  33. */
  34. public function info(){
  35. $id =isset($this->post['id']) &&$this->post['id']!="" ? intval($this->post['id']) : "";
  36. if($id==""){
  37. return error_show(1004,"参数id 不能为空");
  38. }
  39. $info = Db::name("process")->where(['id'=>$id,"is_del"=>0])->find();
  40. if(empty($info)){
  41. return error_show(1004,"流程信息未找到");
  42. }
  43. $list=Db::name("action_process")->where(["pid"=>$id,"is_del"=>0])->order("weight,id")->select();
  44. $info['item'] = empty($list) ? []:$list;
  45. return app_show(0,"获取成功",$info);
  46. }
  47. /**
  48. * @return \think\response\Json|void
  49. * @throws \think\db\exception\DataNotFoundException
  50. * @throws \think\db\exception\DbException
  51. * @throws \think\db\exception\ModelNotFoundException
  52. */
  53. public function process()
  54. {
  55. $process_type = isset($this->post['type']) && $this->post['type'] != "" ? $this->post['type'] : "";
  56. if ($process_type == "") {
  57. return error_show(1004, "参数type 不能为空");
  58. }
  59. $orderCode = isset($this->post['orderCode']) && $this->post['orderCode'] != "" ? $this->post['orderCode'] : "";
  60. if ($orderCode == "") {
  61. return error_show(1004, "参数orderCode不能为空");
  62. }
  63. $list = Db::name("action_process")
  64. ->where(['order_type' => $process_type, "is_del" => 0, "status" => 1])
  65. ->order("weight desc,id desc")
  66. ->column('*', 'order_process');
  67. //根据所有的状态,查询对应的操作
  68. $order_process_s = array_column($list, 'order_process');
  69. $rs = Db::name("process_order")
  70. ->where(["order_type" => $process_type])
  71. ->whereIn('action_process', $order_process_s)
  72. ->field('id,action_uid,action_name,addtime,action_process,order_type');
  73. if(is_numeric($orderCode)) $rs->where('order_id',$orderCode);
  74. else $rs->where('order_code',$orderCode);
  75. $node = $rs
  76. ->select()
  77. ->toArray();
  78. foreach ($node as &$value) {
  79. $value['order_process'] = isset($list[$value['action_process']]['order_process']) ? $list[$value['action_process']]['order_process'] : 0;
  80. $value['order_name'] = isset($list[$value['action_process']]['order_name']) ? $list[$value['action_process']]['order_name'] : '';
  81. $value['pid'] = isset($list[$value['action_process']]['pid']) ? $list[$value['action_process']]['pid'] : '';
  82. $value['status_name'] = isset($list[$value['action_process']]['status_name']) ? $list[$value['action_process']]['status_name'] : '';
  83. $value['roleid'] = isset($list[$value['action_process']]['roleid']) ? $list[$value['action_process']]['roleid'] : '';
  84. $value['status'] = isset($list[$value['action_process']]['status']) ? $list[$value['action_process']]['status'] : '';
  85. $value['weight'] = isset($list[$value['action_process']]['weight']) ? $list[$value['action_process']]['weight'] : '';
  86. $value['is_del'] = isset($list[$value['action_process']]['is_del']) ? $list[$value['action_process']]['is_del'] : '';
  87. // $value = isset($list[$value['action_process']])?array_merge($list[$value['action_process']],$value):$value;
  88. // $node = Db::name("process_order")
  89. // ->where([
  90. // "order_type"=>$value['order_type'],
  91. // "action_process"=>$value['order_process'],
  92. // "order_code"=>$orderCode])
  93. // ->find();
  94. // $value['action_uid']= isset($node[$value['order_process']]['action_uid']) ? $node[$value['order_process']]['action_uid']:'';
  95. // $value['action_name']= isset($node[$value['order_process']]['action_name']) ? $node[$value['order_process']]['action_name']:'';
  96. // $value['addtime']= isset($node[$value['order_process']]['addtime']) ? $node[$value['order_process']]['addtime']:'';
  97. // $data[]=$value;
  98. }
  99. return app_show(0, "获取成功", $node);
  100. }
  101. }