|
@@ -67,13 +67,39 @@ class Proorder extends Base
|
|
|
if ($param['order_code'] != '') $db->whereLike("a.order_code", '%' . $param['order_code'] . '%');
|
|
|
if ($param['action_uid'] != '') $db->where('a.action_uid', $param['action_uid']);
|
|
|
|
|
|
- $count = $db->count();
|
|
|
+ $count = $db
|
|
|
+// ->field("ANY_VALUE(`a`.`id`) id,`a`.order_type,`a`.order_id,GROUP_CONCAT(`a`.`id` ORDER BY `a`.`id` DESC) ids")
|
|
|
+ ->group('a.order_type,a.order_id')
|
|
|
+// ->order(['a.id'=>'desc'])
|
|
|
+// ->fetchSql()
|
|
|
+// ->withAttr('ids', function ($val) {
|
|
|
+// $temp = explode(',', $val);
|
|
|
+// return $temp[0];
|
|
|
+// })
|
|
|
+// ->page($page, $param['size'])
|
|
|
+ ->count('a.id');
|
|
|
|
|
|
$total = ceil($count / $param['size']);
|
|
|
$page = $param['page'] > $total ? $total : $param['page'];
|
|
|
- $list = $db
|
|
|
- ->field("b.apply_id,b.apply_name,a.addtime,a.action_uid,a.action_name,a.order_status,a.order_type,a.order_process,a.order_code,a.order_id,a.id")
|
|
|
+
|
|
|
+ //筛选符合条件的order_type,排除重复数据
|
|
|
+ $order_types = $db
|
|
|
+ ->field("ANY_VALUE(`a`.`id`) id,`a`.order_type,`a`.order_id,GROUP_CONCAT(`a`.`id` ORDER BY `a`.`id` DESC) ids")
|
|
|
+ ->group('a.order_type,a.order_id')
|
|
|
+ ->order(['id' => 'desc'])
|
|
|
+ ->withAttr('ids', function ($val) {
|
|
|
+ $temp = explode(',', $val);
|
|
|
+ return $temp[0];
|
|
|
+ })
|
|
|
->page($page, $param['size'])
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+
|
|
|
+ $list = ProcessWait::alias("a")
|
|
|
+ ->field("b.apply_id,b.apply_name,a.addtime,a.action_uid,a.action_name,a.order_status,a.order_type,a.order_process,a.order_code,a.order_id,a.id,a.order_process_finally")
|
|
|
+ ->whereIn('a.id', array_column($order_types, 'ids'))
|
|
|
+ ->leftJoin("workflow b", "a.order_type=b.order_type and a.order_code=b.order_code")
|
|
|
+// ->page($page, $param['size'])
|
|
|
->order("a.addtime desc")
|
|
|
->select()
|
|
|
->toArray();
|
|
@@ -86,15 +112,18 @@ class Proorder extends Base
|
|
|
$data = [];
|
|
|
foreach ($list as $value) {
|
|
|
$var = Db::name("action_process")
|
|
|
- ->where(['order_type' => $value['order_type'], 'order_process' => $value['order_process']])
|
|
|
- ->field("status_name,order_process,order_name,roleid")
|
|
|
- ->find();
|
|
|
+ ->where(['order_type' => $value['order_type']])
|
|
|
+ ->whereIn('order_process', [$value['order_process'], $value['order_process_finally']])
|
|
|
+// ->field("status_name,order_process,order_name,roleid")
|
|
|
+ ->column('status_name,order_process,order_name,roleid', 'order_process');
|
|
|
+// ->find();
|
|
|
$value['process_name'] = isset($all_process[$value['order_type']]) ? $all_process[$value['order_type']] : '';
|
|
|
- $value['order_name'] = $var['order_name'];
|
|
|
- $value['status_name'] = $var['status_name'];
|
|
|
+ $value['order_name'] = $var[$value['order_process']]['order_name'];
|
|
|
+ $value['status_name'] = $var[$value['order_process']]['status_name'];
|
|
|
+ $value['order_process_finally_status_name'] = $var[$value['order_process_finally']]['status_name'] ?? '';
|
|
|
$data[] = $value;
|
|
|
}
|
|
|
- return app_show(0, "获取成功", ["list" => $data, 'count' => $count]);
|
|
|
+ return app_show(0, "获取成功", ['count' => $count, 'list' => $data]);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -109,12 +138,13 @@ class Proorder extends Base
|
|
|
$db = ProcessWait::alias("a")
|
|
|
->leftJoin('workflow b', 'a.order_type=b.order_type and a.order_code=b.order_code')
|
|
|
// ->leftJoin('process p', 'p.process_type=a.order_type AND p.is_del=0 AND p.status=1')
|
|
|
- ->where(['a.status' => ProcessWait::$status_wait])
|
|
|
- ->whereFindInSet('handle_user_list', $this->uid);
|
|
|
+ ->where(['a.status' => ProcessWait::$status_wait]);
|
|
|
+
|
|
|
|
|
|
// $db->where(function ($query) use ($param) {
|
|
|
//所属角色
|
|
|
-// $role = $this->checkRole();
|
|
|
+ $role = $this->checkRole();
|
|
|
+ if ($role['roleid'] != 1) $db->whereFindInSet('handle_user_list', $this->uid);
|
|
|
|
|
|
// if (!empty($role['write']) || $role['roleid'] == 33) $query->whereFindInSet('roleid', $role['roleid']);
|
|
|
// $query->whereFindInSet('roleid', $role['roleid']);
|
|
@@ -323,5 +353,4 @@ class Proorder extends Base
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
}
|