|
@@ -1367,12 +1367,13 @@ class Orders extends Auth {
|
|
|
->group('to_user_id')
|
|
->group('to_user_id')
|
|
|
->select();
|
|
->select();
|
|
|
$taskCountMap = array_column($taskCounts, null, 'to_user_id');
|
|
$taskCountMap = array_column($taskCounts, null, 'to_user_id');
|
|
|
- $addrInfo = Db::name('order_convey')
|
|
|
|
|
- ->alias('cpr')
|
|
|
|
|
- ->join('todo os', 'cpr.order_id = os.order_id')
|
|
|
|
|
- ->field('os.to_user_id, os.todo_mode, cpr.end,cpr.start,os.create_time')
|
|
|
|
|
|
|
+ $addrInfo = Db::name('todo')
|
|
|
|
|
+ ->alias('os')
|
|
|
|
|
+ ->join('order_convey cpr', 'cpr.order_id = os.order_id', 'LEFT')
|
|
|
|
|
+ ->field('os.to_user_id, os.todo_mode, cpr.end, cpr.start, os.create_time')
|
|
|
->where('os.to_user_id', 'in', $userIds)
|
|
->where('os.to_user_id', 'in', $userIds)
|
|
|
->where('os.del', 0)
|
|
->where('os.del', 0)
|
|
|
|
|
+ ->whereBetween('os.create_time', [date('Y-m-d 00:00:00', strtotime('-7 days')), date('Y-m-d 23:59:59')])
|
|
|
->select();
|
|
->select();
|
|
|
unset($userIds,$taskCounts);
|
|
unset($userIds,$taskCounts);
|
|
|
$addrMap = [];
|
|
$addrMap = [];
|
|
@@ -1625,238 +1626,203 @@ class Orders extends Auth {
|
|
|
->where($map)
|
|
->where($map)
|
|
|
->order(['o.order_mode' => 'asc', 'oc.xq_time' => 'desc'])
|
|
->order(['o.order_mode' => 'asc', 'oc.xq_time' => 'desc'])
|
|
|
->select();
|
|
->select();
|
|
|
-// halt($lists);
|
|
|
|
|
- $newret = [];
|
|
|
|
|
- $newret1 = [];
|
|
|
|
|
- $newret2 = [];
|
|
|
|
|
- $newret3 = [];
|
|
|
|
|
- $newret4 = [];
|
|
|
|
|
- foreach ($lists as $k => $v) {
|
|
|
|
|
- $v = $this->model->formatOrder($v);
|
|
|
|
|
-
|
|
|
|
|
- $v['bed_number'] = '';
|
|
|
|
|
- $ocp = Db::name('order_convey_patient')
|
|
|
|
|
- ->where('order_id', $v['id'])
|
|
|
|
|
- ->find();
|
|
|
|
|
- $v['bed_number'] = !empty($ocp)?$ocp['bed_number']:'';
|
|
|
|
|
-
|
|
|
|
|
- $todo = Db::name('todo')
|
|
|
|
|
- ->alias('t')
|
|
|
|
|
- ->where('t.order_id', $v['id'])
|
|
|
|
|
- ->join('user u', 'u.id = t.to_user_id')
|
|
|
|
|
- ->where('t.todo_mode', 'in', [1, 2, 3, 4])
|
|
|
|
|
- ->where('t.del', 0)
|
|
|
|
|
- ->field('u.real_name,u.mobile,t.create_time,t.confirm_time')
|
|
|
|
|
- ->order('t.id asc')
|
|
|
|
|
- ->select();
|
|
|
|
|
- $users = [];
|
|
|
|
|
- $confirmtime = '';
|
|
|
|
|
- foreach ($todo as $kk => $vv) {
|
|
|
|
|
- $users[] = $vv['real_name'].($vv['mobile']?'['.$vv['mobile'].']':'');
|
|
|
|
|
- if (!$confirmtime && $vv['confirm_time']) {
|
|
|
|
|
- $confirmtime = $vv['confirm_time'];
|
|
|
|
|
- }
|
|
|
|
|
- else {
|
|
|
|
|
- if ($confirmtime && $vv['confirm_time'] && $vv['confirm_time'] < $confirmtime) {
|
|
|
|
|
- $confirmtime = $vv['confirm_time'];
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- $v['is_todo'] = $todo?1:0;
|
|
|
|
|
- $v['real_names'] = implode(',', $users);
|
|
|
|
|
- $v['confirm_time'] = $confirmtime;
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- $last = strtotime($v['ywc_time']) - time();
|
|
|
|
|
- $v['last_time'] = $last > 0 ? round($last / 60) : 0;
|
|
|
|
|
- //是否有延时
|
|
|
|
|
- $v['delay'] = 0; // 0=未延迟 1=延迟
|
|
|
|
|
- $v['delay_diff'] = 0;
|
|
|
|
|
- $v['delay_reason'] = '';
|
|
|
|
|
- $delays = Db::name('order_delay')
|
|
|
|
|
- ->where('order_id', $v['id'])
|
|
|
|
|
- ->select();
|
|
|
|
|
- $delays = $delays ? $delays : [];
|
|
|
|
|
- foreach ($delays as $vv) {
|
|
|
|
|
- if ($vv['status'] == 0) {
|
|
|
|
|
- $v['delay'] = 1;
|
|
|
|
|
- $v['delay_reason'] = $this->gettablefield('delay_reason', ['id' => $vv['delay_reason_id']], 'title');
|
|
|
|
|
- $vv['diff'] = time() - strtotime($vv['start_time']);
|
|
|
|
|
- }
|
|
|
|
|
- $v['delay_diff'] += $vv['diff'];
|
|
|
|
|
- }
|
|
|
|
|
- $v['delay_diff'] = round($v['delay_diff'] / 60);
|
|
|
|
|
- if ($v['delay'] == 1) {
|
|
|
|
|
- $v['status'] = 3;
|
|
|
|
|
- } else {
|
|
|
|
|
- if ($v['order_mode'] == 1) {
|
|
|
|
|
- $v['status'] = 1;
|
|
|
|
|
- } else {
|
|
|
|
|
- $v['status'] = 2;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- $convey = Db::name('convey_cate')
|
|
|
|
|
- ->alias('oc')
|
|
|
|
|
- ->join('time ot', 'ot.id = oc.time_id')
|
|
|
|
|
- ->where('oc.id', $v['type'])
|
|
|
|
|
- ->field('ot.*')
|
|
|
|
|
- ->find();
|
|
|
|
|
- $xqtime = strtotime($v['xq_time']);
|
|
|
|
|
- $curtime = time();
|
|
|
|
|
- if ($curtime > $xqtime) {
|
|
|
|
|
- $ct = round(($curtime - $xqtime) / 60);
|
|
|
|
|
- if ($ct < $convey['yy_time']) {
|
|
|
|
|
- $ss = 0;
|
|
|
|
|
- }
|
|
|
|
|
- else {
|
|
|
|
|
- if ($ct >= $convey['yy_time'] && $ct < $convey['bz_time']) {
|
|
|
|
|
- $ss = 1;
|
|
|
|
|
- }
|
|
|
|
|
- else {
|
|
|
|
|
- if ($ct >= $convey['bz_time'] && $ct < $convey['jg_time']) {
|
|
|
|
|
- $ss = 2;
|
|
|
|
|
- }
|
|
|
|
|
- else {
|
|
|
|
|
- if ($ct >= $convey['jg_time'] && $ct < $convey['wjjg_time']) {
|
|
|
|
|
- $ss = 3;
|
|
|
|
|
- }
|
|
|
|
|
- else {
|
|
|
|
|
- $ss = 4;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }else{
|
|
|
|
|
- $ss = 0;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- $v['ss'] = $ss;
|
|
|
|
|
- $v['xtime'] = date('H:i', strtotime($v['xq_time']));
|
|
|
|
|
- $v['stime'] = $v['send_time'] ? date('H:i', strtotime($v['send_time'])) : "";
|
|
|
|
|
- $v['ctime'] = $v['confirm_time'] ? date('H:i', strtotime($v['confirm_time'])) : "";
|
|
|
|
|
- $v['starttime'] = '';
|
|
|
|
|
- if($v['confirm_time']){ // 如果确认时间不为空
|
|
|
|
|
- $todoconvey = Db::name('todo_convey')
|
|
|
|
|
- ->alias('a')
|
|
|
|
|
- ->join('todo t','t.id = a.todo_id')
|
|
|
|
|
- ->where('t.order_id', $v['id'])
|
|
|
|
|
- ->field('a.*')
|
|
|
|
|
- ->order('a.id asc')
|
|
|
|
|
- ->find();
|
|
|
|
|
- if($todoconvey){
|
|
|
|
|
- $v['starttime'] = date('H:i', strtotime($todoconvey['start_time']));
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- $v['priorityName'] = isset($this->model->priority[$v['priority']])?$this->model->priority[$v['priority']]:'';
|
|
|
|
|
- if ($status == 3 && $v['delay'] == 1) { //延时任务
|
|
|
|
|
- $newret[] = $v;
|
|
|
|
|
- $newret1[] = $v;
|
|
|
|
|
- }
|
|
|
|
|
- if ($status == 1 && $v['order_mode'] == 1) { //新任务
|
|
|
|
|
- $newret[] = $v;
|
|
|
|
|
- $newret2[] = $v;
|
|
|
|
|
- }
|
|
|
|
|
- if ($status == 2 && $v['order_mode'] == 4) { // 进行中
|
|
|
|
|
- $newret[] = $v;
|
|
|
|
|
- $newret3[] = $v;
|
|
|
|
|
- }
|
|
|
|
|
- if (!$status || !in_array($status, [1, 2, 3])) {
|
|
|
|
|
- $newret[] = $v;
|
|
|
|
|
- $newret4[] = $v;
|
|
|
|
|
- }
|
|
|
|
|
- $lists[$k] = $v;
|
|
|
|
|
- }
|
|
|
|
|
- if(!empty($newret)){
|
|
|
|
|
- //$newret = arraySequence($newret,'status');//返回数组中指定的一列
|
|
|
|
|
-// $newret1 = $newret1?arraySequence($newret1,'xtime','SORT_DESC'):[];
|
|
|
|
|
-// $newret3 = $newret3?arraySequence($newret3,'xtime','SORT_DESC'):[];
|
|
|
|
|
-// $newret4 = $newret4?arraySequence($newret4,'xtime','SORT_DESC'):[];
|
|
|
|
|
-// $newret = array_merge($newret2,$newret3,$newret4,$newret1);
|
|
|
|
|
- $all = [];
|
|
|
|
|
- $newret2 = $newret2?arraySequence($newret2,'status'):[];
|
|
|
|
|
- $newret3 = $newret3?arraySequence($newret3,'status'):[];
|
|
|
|
|
- //$newret4 = $newret4?arraySequence($newret4,'status'):[];
|
|
|
|
|
- $newret1 = $newret1?arraySequence($newret1,'status'):[];
|
|
|
|
|
-
|
|
|
|
|
- $newret2 = $newret2?arraySequence($newret2,'xtime','SORT_DESC'):[];
|
|
|
|
|
- $newret3 = $newret3?arraySequence($newret3,'xtime','SORT_DESC'):[];
|
|
|
|
|
- // $newret4 = $newret4?arraySequence($newret4,'xtime','SORT_DESC'):[];
|
|
|
|
|
- $newret1 = $newret1?arraySequence($newret1,'xtime','SORT_DESC'):[];
|
|
|
|
|
|
|
|
|
|
- foreach ($newret2 as $k=>$v){
|
|
|
|
|
- $all[] = $v;
|
|
|
|
|
- }
|
|
|
|
|
- foreach ($newret3 as $k=>$v){
|
|
|
|
|
- $all[] = $v;
|
|
|
|
|
- }
|
|
|
|
|
- foreach ($newret1 as $k=>$v){
|
|
|
|
|
- $all[] = $v;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ list($newret,$newret1,$newret2,$newret3,$newret4) = $this->model->formatOrderConvey($lists,$status);
|
|
|
|
|
+// foreach ($lists as $k => $v) {
|
|
|
|
|
+// $v = $this->model->formatOrder($v);
|
|
|
|
|
+//
|
|
|
|
|
+// $v['bed_number'] = '';
|
|
|
|
|
+// $ocp = Db::name('order_convey_patient')
|
|
|
|
|
+// ->where('order_id', $v['id'])
|
|
|
|
|
+// ->find();
|
|
|
|
|
+// $v['bed_number'] = !empty($ocp)?$ocp['bed_number']:'';
|
|
|
|
|
+//
|
|
|
|
|
+// $todo = Db::name('todo')
|
|
|
|
|
+// ->alias('t')
|
|
|
|
|
+// ->where('t.order_id', $v['id'])
|
|
|
|
|
+// ->join('user u', 'u.id = t.to_user_id')
|
|
|
|
|
+// ->where('t.todo_mode', 'in', [1, 2, 3, 4])
|
|
|
|
|
+// ->where('t.del', 0)
|
|
|
|
|
+// ->field('u.real_name,u.mobile,t.create_time,t.confirm_time')
|
|
|
|
|
+// ->order('t.id asc')
|
|
|
|
|
+// ->select();
|
|
|
|
|
+// $users = [];
|
|
|
|
|
+// $confirmtime = '';
|
|
|
|
|
+// foreach ($todo as $kk => $vv) {
|
|
|
|
|
+// $users[] = $vv['real_name'].($vv['mobile']?'['.$vv['mobile'].']':'');
|
|
|
|
|
+// if (!$confirmtime && $vv['confirm_time']) {
|
|
|
|
|
+// $confirmtime = $vv['confirm_time'];
|
|
|
|
|
+// }
|
|
|
|
|
+// else {
|
|
|
|
|
+// if ($confirmtime && $vv['confirm_time'] && $vv['confirm_time'] < $confirmtime) {
|
|
|
|
|
+// $confirmtime = $vv['confirm_time'];
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// $v['is_todo'] = $todo?1:0;
|
|
|
|
|
+// $v['real_names'] = implode(',', $users);
|
|
|
|
|
+// $v['confirm_time'] = $confirmtime;
|
|
|
|
|
+//
|
|
|
|
|
+//
|
|
|
|
|
+//
|
|
|
|
|
+// $last = strtotime($v['ywc_time']) - time();
|
|
|
|
|
+// $v['last_time'] = $last > 0 ? round($last / 60) : 0;
|
|
|
|
|
+// //是否有延时
|
|
|
|
|
+// $v['delay'] = 0; // 0=未延迟 1=延迟
|
|
|
|
|
+// $v['delay_diff'] = 0;
|
|
|
|
|
+// $v['delay_reason'] = '';
|
|
|
|
|
+// $delays = Db::name('order_delay')
|
|
|
|
|
+// ->where('order_id', $v['id'])
|
|
|
|
|
+// ->select();
|
|
|
|
|
+// $delays = $delays ? $delays : [];
|
|
|
|
|
+// foreach ($delays as $vv) {
|
|
|
|
|
+// if ($vv['status'] == 0) {
|
|
|
|
|
+// $v['delay'] = 1;
|
|
|
|
|
+// $v['delay_reason'] = $this->gettablefield('delay_reason', ['id' => $vv['delay_reason_id']], 'title');
|
|
|
|
|
+// $vv['diff'] = time() - strtotime($vv['start_time']);
|
|
|
|
|
+// }
|
|
|
|
|
+// $v['delay_diff'] += $vv['diff'];
|
|
|
|
|
+// }
|
|
|
|
|
+// $v['delay_diff'] = round($v['delay_diff'] / 60);
|
|
|
|
|
+// if ($v['delay'] == 1) {
|
|
|
|
|
+// $v['status'] = 3;
|
|
|
|
|
+// } else {
|
|
|
|
|
+// if ($v['order_mode'] == 1) {
|
|
|
|
|
+// $v['status'] = 1;
|
|
|
|
|
+// } else {
|
|
|
|
|
+// $v['status'] = 2;
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// $convey = Db::name('convey_cate')
|
|
|
|
|
+// ->alias('oc')
|
|
|
|
|
+// ->join('time ot', 'ot.id = oc.time_id')
|
|
|
|
|
+// ->where('oc.id', $v['type'])
|
|
|
|
|
+// ->field('ot.*')
|
|
|
|
|
+// ->find();
|
|
|
|
|
+// $xqtime = strtotime($v['xq_time']);
|
|
|
|
|
+// $curtime = time();
|
|
|
|
|
+// if ($curtime > $xqtime) {
|
|
|
|
|
+// $ct = round(($curtime - $xqtime) / 60);
|
|
|
|
|
+// if ($ct < $convey['yy_time']) {
|
|
|
|
|
+// $ss = 0;
|
|
|
|
|
+// }
|
|
|
|
|
+// else {
|
|
|
|
|
+// if ($ct >= $convey['yy_time'] && $ct < $convey['bz_time']) {
|
|
|
|
|
+// $ss = 1;
|
|
|
|
|
+// }
|
|
|
|
|
+// else {
|
|
|
|
|
+// if ($ct >= $convey['bz_time'] && $ct < $convey['jg_time']) {
|
|
|
|
|
+// $ss = 2;
|
|
|
|
|
+// }
|
|
|
|
|
+// else {
|
|
|
|
|
+// if ($ct >= $convey['jg_time'] && $ct < $convey['wjjg_time']) {
|
|
|
|
|
+// $ss = 3;
|
|
|
|
|
+// }
|
|
|
|
|
+// else {
|
|
|
|
|
+// $ss = 4;
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// }else{
|
|
|
|
|
+// $ss = 0;
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// $v['ss'] = $ss;
|
|
|
|
|
+// $v['xtime'] = date('H:i', strtotime($v['xq_time']));
|
|
|
|
|
+// $v['stime'] = $v['send_time'] ? date('H:i', strtotime($v['send_time'])) : "";
|
|
|
|
|
+// $v['ctime'] = $v['confirm_time'] ? date('H:i', strtotime($v['confirm_time'])) : "";
|
|
|
|
|
+// $v['starttime'] = '';
|
|
|
|
|
+// if($v['confirm_time']){ // 如果确认时间不为空
|
|
|
|
|
+// $todoconvey = Db::name('todo_convey')
|
|
|
|
|
+// ->alias('a')
|
|
|
|
|
+// ->join('todo t','t.id = a.todo_id')
|
|
|
|
|
+// ->where('t.order_id', $v['id'])
|
|
|
|
|
+// ->field('a.*')
|
|
|
|
|
+// ->order('a.id asc')
|
|
|
|
|
+// ->find();
|
|
|
|
|
+// if($todoconvey){
|
|
|
|
|
+// $v['starttime'] = date('H:i', strtotime($todoconvey['start_time']));
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// $v['priorityName'] = isset($this->model->priority[$v['priority']])?$this->model->priority[$v['priority']]:'';
|
|
|
|
|
+// if ($status == 3 && $v['delay'] == 1) { //延时任务
|
|
|
|
|
+// $newret[] = $v;
|
|
|
|
|
+// $newret1[] = $v;
|
|
|
|
|
+// }
|
|
|
|
|
+// if ($status == 1 && $v['order_mode'] == 1) { //新任务
|
|
|
|
|
+// $newret[] = $v;
|
|
|
|
|
+// $newret2[] = $v;
|
|
|
|
|
+// }
|
|
|
|
|
+// if ($status == 2 && $v['order_mode'] == 4) { // 进行中
|
|
|
|
|
+// $newret[] = $v;
|
|
|
|
|
+// $newret3[] = $v;
|
|
|
|
|
+// }
|
|
|
|
|
+// if (!$status || !in_array($status, [1, 2, 3])) {
|
|
|
|
|
+// $newret[] = $v;
|
|
|
|
|
+// $newret4[] = $v;
|
|
|
|
|
+// }
|
|
|
|
|
+// $lists[$k] = $v;
|
|
|
|
|
+// }
|
|
|
|
|
+ if (!empty($newret)) {
|
|
|
|
|
+ $curtime = time();
|
|
|
|
|
+ $curtime15 = $curtime + 60 * 15;
|
|
|
|
|
+ $limitTime = date('Y-m-d H:i:s', $curtime15);
|
|
|
|
|
+
|
|
|
|
|
+ // 1. 各分组先按 status 升序,再按 xtime 降序(一次 sort 搞定,用 arraySequence 两次是历史写法)
|
|
|
|
|
+ $sortFn = function ($list) {
|
|
|
|
|
+ if (!$list) return [];
|
|
|
|
|
+ $list = arraySequence($list, 'status'); // 先按 status 升序
|
|
|
|
|
+ $list = arraySequence($list, 'xtime', 'SORT_DESC'); // 再按 xtime 降序(稳定排序,保持 status 分组)
|
|
|
|
|
+ return $list;
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ $newret2 = $sortFn($newret2);
|
|
|
|
|
+ $newret3 = $sortFn($newret3);
|
|
|
|
|
+ $newret1 = $sortFn($newret1);
|
|
|
|
|
+
|
|
|
|
|
+ // 2. 合并主列表
|
|
|
|
|
+ $all = array_merge($newret2, $newret3, $newret1);
|
|
|
|
|
+
|
|
|
|
|
+ // 3. newret4 按 status 拆成三组,统一走同样的过滤逻辑
|
|
|
$a1 = $a2 = $a3 = [];
|
|
$a1 = $a2 = $a3 = [];
|
|
|
- foreach ($newret4 as $k=>$v){
|
|
|
|
|
- if ($v['status'] == 3) { //延时任务
|
|
|
|
|
- $a1[] = $v;
|
|
|
|
|
- }
|
|
|
|
|
- if ($v['status'] == 1) { //新任务
|
|
|
|
|
- $a2[] = $v;
|
|
|
|
|
- }
|
|
|
|
|
- if ($v['status'] == 2) { // 进行中
|
|
|
|
|
- $a3[] = $v;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
|
|
+ foreach ($newret4 as $v) {
|
|
|
|
|
+ if ($v['status'] == 3) $a1[] = $v; // 延时任务
|
|
|
|
|
+ elseif ($v['status'] == 1) $a2[] = $v; // 新任务
|
|
|
|
|
+ elseif ($v['status'] == 2) $a3[] = $v; // 进行中
|
|
|
}
|
|
}
|
|
|
- $a1 = $a1?arraySequence($a1,'status'):[];
|
|
|
|
|
- $a2 = $a2?arraySequence($a2,'status'):[];
|
|
|
|
|
- $a3 = $a3?arraySequence($a3,'status'):[];
|
|
|
|
|
-
|
|
|
|
|
- $a1 = $a1?arraySequence($a1,'xtime','SORT_DESC'):[];
|
|
|
|
|
- $a2 = $a2?arraySequence($a2,'xtime','SORT_DESC'):[];
|
|
|
|
|
- $a3 = $a3?arraySequence($a3,'xtime','SORT_DESC'):[];
|
|
|
|
|
-
|
|
|
|
|
- // 预约类型-取15分钟后之前的订单
|
|
|
|
|
- $curtime15 = $curtime+60*15;
|
|
|
|
|
|
|
|
|
|
- foreach ($a2 as $k=>$v){
|
|
|
|
|
|
|
+ // 4. 三组合并后统一排序 + 统一过滤(priority != 4 且 xq_time < 15分钟后)
|
|
|
|
|
+ $a = array_merge($a2, $a3, $a1); // 保持 新任务 → 进行中 → 延时 的顺序
|
|
|
|
|
+ $a = $sortFn($a);
|
|
|
|
|
|
|
|
- if($v['priority'] !=4 && $v['xq_time'] < date('Y-m-d H:i:s',$curtime15) ){
|
|
|
|
|
- $all[] = $v;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
- foreach ($a3 as $k=>$v){
|
|
|
|
|
- if($v['priority'] !=4 && $v['xq_time'] < date('Y-m-d H:i:s',$curtime15) ){
|
|
|
|
|
|
|
+ foreach ($a as $v) {
|
|
|
|
|
+ if ($v['priority'] != 4 && $v['xq_time'] < $limitTime) {
|
|
|
$all[] = $v;
|
|
$all[] = $v;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- foreach ($a1 as $k=>$v){
|
|
|
|
|
- if($v['priority'] !=4 && $v['xq_time'] < date('Y-m-d H:i:s',$curtime15) ){
|
|
|
|
|
- $all[] = $v;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- $newret= $all;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ $newret = $all;
|
|
|
}
|
|
}
|
|
|
$sdd[] =['org_id','=',$this->orgId];
|
|
$sdd[] =['org_id','=',$this->orgId];
|
|
|
$sdd[] =['del','=',0];
|
|
$sdd[] =['del','=',0];
|
|
|
$sdd[] =['work_type_mode','=',3];
|
|
$sdd[] =['work_type_mode','=',3];
|
|
|
$sdd[] =['create_yyyymmdd','=',date('Ymd')];
|
|
$sdd[] =['create_yyyymmdd','=',date('Ymd')];
|
|
|
- $dcl = Db::name('orders')
|
|
|
|
|
- ->where($sdd)
|
|
|
|
|
- ->where('order_mode',1)
|
|
|
|
|
- ->count();
|
|
|
|
|
- $ypf = Db::name('orders')
|
|
|
|
|
- ->where($sdd)
|
|
|
|
|
- ->where('order_mode',4)
|
|
|
|
|
- ->count();
|
|
|
|
|
- $ywc = Db::name('orders')
|
|
|
|
|
|
|
+ $stat = Db::name('orders')
|
|
|
->where($sdd)
|
|
->where($sdd)
|
|
|
- ->where('order_mode','in',[5,6])
|
|
|
|
|
- ->count();
|
|
|
|
|
- $yqx = Db::name('orders')
|
|
|
|
|
- ->where($sdd)
|
|
|
|
|
- ->where('order_mode','in',[2,3])
|
|
|
|
|
- ->count();
|
|
|
|
|
|
|
+ ->field("
|
|
|
|
|
+ SUM(CASE WHEN order_mode = 1 THEN 1 ELSE 0 END) AS dcl,
|
|
|
|
|
+ SUM(CASE WHEN order_mode = 4 THEN 1 ELSE 0 END) AS ypf,
|
|
|
|
|
+ SUM(CASE WHEN order_mode IN (5,6) THEN 1 ELSE 0 END) AS ywc,
|
|
|
|
|
+ SUM(CASE WHEN order_mode IN (2,3) THEN 1 ELSE 0 END) AS yqx
|
|
|
|
|
+ ")
|
|
|
|
|
+ ->find();
|
|
|
|
|
+
|
|
|
|
|
+ $dcl = (int)($stat['dcl'] ?? 0);
|
|
|
|
|
+ $ypf = (int)($stat['ypf'] ?? 0);
|
|
|
|
|
+ $ywc = (int)($stat['ywc'] ?? 0);
|
|
|
|
|
+ $yqx = (int)($stat['yqx'] ?? 0);
|
|
|
//数据返回
|
|
//数据返回
|
|
|
$totalCount = count($newret);
|
|
$totalCount = count($newret);
|
|
|
$totalPage = ceil($totalCount / $length);
|
|
$totalPage = ceil($totalCount / $length);
|