作者 lyh

gx

@@ -61,7 +61,7 @@ class GeoQuestionRes extends Command @@ -61,7 +61,7 @@ class GeoQuestionRes extends Command
61 $geoQuestionModel->edit(['status'=>$geoQuestionModel::STATUS_CLOSE],['id'=>$task_id]); 61 $geoQuestionModel->edit(['status'=>$geoQuestionModel::STATUS_CLOSE],['id'=>$task_id]);
62 continue; 62 continue;
63 } 63 }
64 - if(empty($taskInfo['question']) || empty($taskInfo['keywords']) || empty($taskInfo['url'])){ 64 + if(empty($taskInfo['question']) || (empty($taskInfo['keywords']) && empty($taskInfo['url']) && empty($taskInfo['expect_result']))){
65 $this->output('task id: ' . $task_id . ', error: 任务数据缺失, continue!'); 65 $this->output('task id: ' . $task_id . ', error: 任务数据缺失, continue!');
66 $geoQuestionModel->edit(['status'=>$geoQuestionModel::STATUS_CLOSE],['id'=>$task_id]); 66 $geoQuestionModel->edit(['status'=>$geoQuestionModel::STATUS_CLOSE],['id'=>$task_id]);
67 continue; 67 continue;
@@ -113,7 +113,6 @@ class GeoQuestionRes extends Command @@ -113,7 +113,6 @@ class GeoQuestionRes extends Command
113 } 113 }
114 // 命中文案 114 // 命中文案
115 $hit_data[] = $result['text']; 115 $hit_data[] = $result['text'];
116 -  
117 if(!empty($result['annotations'])){ 116 if(!empty($result['annotations'])){
118 $url = array_column(array_column($result['annotations'], 'url_citation'), 'url'); 117 $url = array_column(array_column($result['annotations'], 'url_citation'), 'url');
119 $title = array_column(array_column($result['annotations'], 'url_citation'), 'title'); 118 $title = array_column(array_column($result['annotations'], 'url_citation'), 'title');
@@ -74,12 +74,18 @@ class TicketCount extends Command @@ -74,12 +74,18 @@ class TicketCount extends Command
74 $manageHrModel = new ManageHr(); 74 $manageHrModel = new ManageHr();
75 $manageList = $manageHrModel->list(['status'=>1,'dept_id'=>['in',[1,2]]],'id',['id','dept_id','manage_id','name','nickname']); 75 $manageList = $manageHrModel->list(['status'=>1,'dept_id'=>['in',[1,2]]],'id',['id','dept_id','manage_id','name','nickname']);
76 $date = Carbon::yesterday()->toDateString(); // 昨日时间 76 $date = Carbon::yesterday()->toDateString(); // 昨日时间
  77 + // 当月开始时间(零点)
  78 + $startOfMonth = Carbon::now()->startOfMonth()->toDateTimeString();
  79 + // 当月结束时间(最后一秒)
  80 + $endOfMonth = Carbon::now()->endOfMonth()->toDateTimeString();
77 $ticketManageCountModel = new TicketDailyManageCount(); 81 $ticketManageCountModel = new TicketDailyManageCount();
78 foreach ($manageList as $item){ 82 foreach ($manageList as $item){
79 $average_time = null; 83 $average_time = null;
80 $this->output('按人员统计:执行的人员名称/id:'.$item['name'].'/'.$item['manage_id']); 84 $this->output('按人员统计:执行的人员名称/id:'.$item['name'].'/'.$item['manage_id']);
81 $ticketLogModel = new TicketLog(); 85 $ticketLogModel = new TicketLog();
82 $ticket_num = $ticketLogModel->counts(['engineer_id'=>$item['manage_id'],'is_engineer'=>1]); 86 $ticket_num = $ticketLogModel->counts(['engineer_id'=>$item['manage_id'],'is_engineer'=>1]);
  87 + //当月工单总数
  88 + $month_ticket_num = $ticketLogModel->counts(['engineer_id'=>$item['manage_id'],'is_engineer'=>1,'created_at'=>['between',[$startOfMonth,$endOfMonth]]]);
83 //工单总时长 89 //工单总时长
84 $timeCount = $ticketLogModel->formatQuery(['engineer_id'=>$item['manage_id'],'is_engineer'=>1])->sum('end_time'); 90 $timeCount = $ticketLogModel->formatQuery(['engineer_id'=>$item['manage_id'],'is_engineer'=>1])->sum('end_time');
85 $ticket_end_num = $ticketLogModel->counts(['engineer_id'=>$item['manage_id'],'is_engineer'=>1,'end_at'=>['!=',null]]); 91 $ticket_end_num = $ticketLogModel->counts(['engineer_id'=>$item['manage_id'],'is_engineer'=>1,'end_at'=>['!=',null]]);
@@ -103,7 +109,10 @@ class TicketCount extends Command @@ -103,7 +109,10 @@ class TicketCount extends Command
103 'fastest_time'=>$fastest_time ?? null,//最快完成工单时间 109 'fastest_time'=>$fastest_time ?? null,//最快完成工单时间
104 'timeout_num'=>$timeout_num,//超时工单数量 110 'timeout_num'=>$timeout_num,//超时工单数量
105 'complete_num'=>$complete_num,//完成工单数量 111 'complete_num'=>$complete_num,//完成工单数量
106 - 'dept_id'=>$item['dept_id'] 112 + 'dept_id'=>$item['dept_id'],
  113 + 'month'=>$date('Y-m'),
  114 + 'month_ticket_num'=>$month_ticket_num,
  115 +
107 ]; 116 ];
108 //查询当前用户是否当日已有记录 117 //查询当前用户是否当日已有记录
109 $ticketManageInfo = $ticketManageCountModel->read(['date'=>$date,'manage_id'=>$item['id']],['id']); 118 $ticketManageInfo = $ticketManageCountModel->read(['date'=>$date,'manage_id'=>$item['id']],['id']);
@@ -186,6 +195,10 @@ class TicketCount extends Command @@ -186,6 +195,10 @@ class TicketCount extends Command
186 ) 195 )
187 ->groupBy('p.project_cate') 196 ->groupBy('p.project_cate')
188 ->pluck('ticket_count', 'project_cate'); 197 ->pluck('ticket_count', 'project_cate');
  198 + $timeout_num = $ticketModel->counts(['end_at'=>null,'plan_end_at'=>['>',date('Y-m-d H:i:s')]]);
  199 + if(!empty($timeout_num)){
  200 + $timeout_ratio = round($timeout_num / $ticket_num, 2);
  201 + }
189 $data = [ 202 $data = [
190 'date' => $date, 203 'date' => $date,
191 'ticket_num'=>$ticket_num, 204 'ticket_num'=>$ticket_num,
@@ -194,7 +207,9 @@ class TicketCount extends Command @@ -194,7 +207,9 @@ class TicketCount extends Command
194 'processed_num'=>$processed_num, 207 'processed_num'=>$processed_num,
195 'average_time'=>$average_time ?? null, 208 'average_time'=>$average_time ?? null,
196 'source'=>json_encode(['a'=>$submit_a_side,'b'=>$submit_b_side],true), 209 'source'=>json_encode(['a'=>$submit_a_side,'b'=>$submit_b_side],true),
197 - 'source_type'=>json_encode($dbResult,true) 210 + 'source_type'=>json_encode($dbResult,true),
  211 + 'timeout_num'=>$timeout_num,
  212 + 'timeout_ratio'=>$timeout_ratio ?? null
198 ]; 213 ];
199 $ticketDailyModel = new TicketDailyCount(); 214 $ticketDailyModel = new TicketDailyCount();
200 $ticketDailyInfo = $ticketDailyModel->read(['date'=>$date],['id']); 215 $ticketDailyInfo = $ticketDailyModel->read(['date'=>$date],['id']);