作者 李宇航

合并分支 'lyh-server' 到 'master'

Lyh server



查看合并请求 !2613
@@ -74,32 +74,29 @@ class TicketCount extends Command @@ -74,32 +74,29 @@ 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();  
81 $ticketManageCountModel = new TicketDailyManageCount(); 77 $ticketManageCountModel = new TicketDailyManageCount();
82 foreach ($manageList as $item){ 78 foreach ($manageList as $item){
83 $average_time = null; 79 $average_time = null;
84 $this->output('按人员统计:执行的人员名称/id:'.$item['name'].'/'.$item['manage_id']); 80 $this->output('按人员统计:执行的人员名称/id:'.$item['name'].'/'.$item['manage_id']);
85 $ticketLogModel = new TicketLog(); 81 $ticketLogModel = new TicketLog();
86 $ticket_num = $ticketLogModel->counts(['engineer_id'=>$item['manage_id'],'is_engineer'=>1]); 82 $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]]]);  
89 //工单总时长 83 //工单总时长
90 $timeCount = $ticketLogModel->formatQuery(['engineer_id'=>$item['manage_id'],'is_engineer'=>1])->sum('end_time'); 84 $timeCount = $ticketLogModel->formatQuery(['engineer_id'=>$item['manage_id'],'is_engineer'=>1])->sum('end_time');
91 - $ticket_end_num = $ticketLogModel->counts(['engineer_id'=>$item['manage_id'],'is_engineer'=>1,'end_at'=>['!=',null]]); 85 + $complete_num = $ticketLogModel->counts(['engineer_id'=>$item['manage_id'],'is_engineer'=>1,'end_at'=>['!=',null]]);
92 if(!empty($timeCount)){ 86 if(!empty($timeCount)){
93 - $average_time = round($timeCount / $ticket_end_num, 2); 87 + $average_time = round($timeCount / $complete_num, 2);
94 } 88 }
95 //最快完成的时间 89 //最快完成的时间
96 $fastest_time = $ticketLogModel->formatQuery(['engineer_id'=>$item['manage_id'],'is_engineer'=>1,'end_at'=>['!=',null]])->min('end_time'); 90 $fastest_time = $ticketLogModel->formatQuery(['engineer_id'=>$item['manage_id'],'is_engineer'=>1,'end_at'=>['!=',null]])->min('end_time');
  91 + //最快完成时间
97 if(!$fastest_time){ 92 if(!$fastest_time){
98 $fastest_time = null; 93 $fastest_time = null;
99 } 94 }
100 //超时工单数量 95 //超时工单数量
101 - $timeout_num = $ticketLogModel->counts(['end_at'=>null,'engineer_id'=>$item['manage_id'],'is_engineer'=>1,'plan_end_at'=>['>',date('Y-m-d H:i:s')]]);  
102 - $complete_num = $ticketLogModel->counts(['end_at'=>['!=',null],'engineer_id'=>$item['manage_id'],'is_engineer'=>1]); 96 + $timeout_num = $ticketLogModel->counts(['engineer_id'=>$item['manage_id'],'is_engineer'=>1,'plan_end_at'=>['>',date('Y-m-d H:i:s')]]);
  97 + if(!empty($timeout_num)){
  98 + $timeout_ratio = round($timeout_num / $ticket_num, 2);
  99 + }
103 $data = [ 100 $data = [
104 'date'=>$date, 101 'date'=>$date,
105 'manage_id'=>$item['id'], 102 'manage_id'=>$item['id'],
@@ -110,9 +107,7 @@ class TicketCount extends Command @@ -110,9 +107,7 @@ class TicketCount extends Command
110 'timeout_num'=>$timeout_num,//超时工单数量 107 'timeout_num'=>$timeout_num,//超时工单数量
111 'complete_num'=>$complete_num,//完成工单数量 108 'complete_num'=>$complete_num,//完成工单数量
112 'dept_id'=>$item['dept_id'], 109 'dept_id'=>$item['dept_id'],
113 - 'month'=>$date('Y-m'),  
114 - 'month_ticket_num'=>$month_ticket_num,  
115 - 110 + 'timeout_ratio'=>$timeout_ratio
116 ]; 111 ];
117 //查询当前用户是否当日已有记录 112 //查询当前用户是否当日已有记录
118 $ticketManageInfo = $ticketManageCountModel->read(['date'=>$date,'manage_id'=>$item['id']],['id']); 113 $ticketManageInfo = $ticketManageCountModel->read(['date'=>$date,'manage_id'=>$item['id']],['id']);
@@ -150,12 +145,18 @@ class TicketCount extends Command @@ -150,12 +145,18 @@ class TicketCount extends Command
150 if(!empty($timeCount)){ 145 if(!empty($timeCount)){
151 $average_time = round($timeCount / $ticket_num, 2); 146 $average_time = round($timeCount / $ticket_num, 2);
152 } 147 }
  148 + //超期工单数量
  149 + $timeout_num = $ticketLogModel->counts(['engineer_id'=>['in',$manageIdArr],'is_engineer'=>1,'plan_end_at'=>['>',date('Y-m-d H:i:s')]]);
  150 + if(!empty($timeout_num)){
  151 + $timeout_ratio = round($timeout_num / $ticket_num, 2);
  152 + }
153 $data = [ 153 $data = [
154 'date'=>$date, 154 'date'=>$date,
155 'dept_id'=>$item['id'], 155 'dept_id'=>$item['id'],
156 'dept_name'=>$item['name'], 156 'dept_name'=>$item['name'],
157 'ticket_num'=>$ticket_num ?? 0, 157 'ticket_num'=>$ticket_num ?? 0,
158 - 'average_time'=>$average_time ?? null 158 + 'average_time'=>$average_time ?? null,
  159 + 'timeout_ratio'=>$timeout_ratio ?? null
159 ]; 160 ];
160 $deptInfo = $ticketDailyDeptModel->read(['date'=>$date,'dept_id'=>$item['id']],['id']); 161 $deptInfo = $ticketDailyDeptModel->read(['date'=>$date,'dept_id'=>$item['id']],['id']);
161 if($deptInfo === false){ 162 if($deptInfo === false){
@@ -59,12 +59,13 @@ class TicketLogic extends BaseLogic @@ -59,12 +59,13 @@ class TicketLogic extends BaseLogic
59 public function getDailyTicketCount(){ 59 public function getDailyTicketCount(){
60 $date = Carbon::yesterday()->toDateString(); //昨日时间 60 $date = Carbon::yesterday()->toDateString(); //昨日时间
61 $dailyModel = new TicketDailyCount(); 61 $dailyModel = new TicketDailyCount();
62 - $dailyList = $dailyModel->list([],'date',['*'],'desc',5);//取最近5条数据 62 + $dailyList = $dailyModel->list([],'date');//取最近5条数据
63 $manageModel = new TicketDailyManageCount(); 63 $manageModel = new TicketDailyManageCount();
64 - $manageList = $manageModel->list(['date'=>$date,'ticket_num'=>['!=',0],'average_time'=>['!=','']],'average_time',['*'],'asc',5);//取最近5条数据 64 + $manageList = $manageModel->list(['dept_id'=>1,'date'=>$date,'ticket_num'=>['!=',0],'average_time'=>['!=','']],'average_time',['*'],'asc');
  65 + $manage2List = $manageModel->list(['dept_id'=>2,'date'=>$date,'ticket_num'=>['!=',0],'average_time'=>['!=','']],'average_time',['*'],'asc');
65 $deptModel = new TicketDailyDeptCount(); 66 $deptModel = new TicketDailyDeptCount();
66 $deptList = $deptModel->list(['date'=>$date,'ticket_num'=>['!=',0]],'average_time',['*'],'asc',5); 67 $deptList = $deptModel->list(['date'=>$date,'ticket_num'=>['!=',0]],'average_time',['*'],'asc',5);
67 - $data = ['daily'=>$dailyList,'manage'=>$manageList,'dept'=>$deptList]; 68 + $data = ['daily'=>$dailyList,'manage'=>$manageList,'manage2'=>$manage2List,'dept'=>$deptList];
68 return $this->success($data); 69 return $this->success($data);
69 } 70 }
70 71