作者 李宇航

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

gx



查看合并请求 !1747
@@ -11,6 +11,7 @@ namespace App\Console\Commands\DayCount; @@ -11,6 +11,7 @@ namespace App\Console\Commands\DayCount;
11 11
12 use App\Models\Manage\ManageHr; 12 use App\Models\Manage\ManageHr;
13 use App\Models\Project\Project; 13 use App\Models\Project\Project;
  14 +use App\Models\RankData\RankDataLog;
14 use Carbon\Carbon; 15 use Carbon\Carbon;
15 use App\Models\HomeCount\AfterCount as AfterCountModel; 16 use App\Models\HomeCount\AfterCount as AfterCountModel;
16 use Illuminate\Console\Command; 17 use Illuminate\Console\Command;
@@ -58,17 +59,49 @@ class AfterCount extends Command @@ -58,17 +59,49 @@ class AfterCount extends Command
58 public function _action(){ 59 public function _action(){
59 $this->managerHrModel = new ManageHr(); 60 $this->managerHrModel = new ManageHr();
60 $projectModel = new Project(); 61 $projectModel = new Project();
  62 + $rankDataLogModel = new RankDataLog();
61 $todayMidnight = date('Y-m-d 00:00:00', strtotime('today')); 63 $todayMidnight = date('Y-m-d 00:00:00', strtotime('today'));
62 $saveData = []; 64 $saveData = [];
  65 + $projectIdArr = $rankDataLogModel->selectField(['is_compliance'=>1,'date'=>date('Y-m-d', strtotime('-3 months'))],'project_id');//3个月前达标的项目id
63 foreach ($this->after_manager as $key => $valM){ 66 foreach ($this->after_manager as $key => $valM){
64 $idArr = $this->managerHrModel->selectField(['name'=>['in',$valM]],'id'); 67 $idArr = $this->managerHrModel->selectField(['name'=>['in',$valM]],'id');
65 - $project_count = $projectModel->where('gl_project.extend_type',0)->where('gl_project.delete_status',0)->where('gl_project.created_at','<=',$todayMidnight)->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)->whereIn('gl_project.type',[2,4])->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')->count();  
66 - $qualified_count = $projectModel->where('gl_project.extend_type',0)->where('gl_project.delete_status',0)->where('gl_project.created_at','<=',$todayMidnight)->where('gl_project.is_remain_today',1)->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)->whereIn('gl_project.type',[2,4])->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')->count(); 68 + $project_count = $projectModel->where('gl_project.extend_type',0)
  69 + ->where('gl_project.delete_status',0)
  70 + ->where('gl_project.created_at','<=',$todayMidnight)
  71 + ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)
  72 + ->whereIn('gl_project.type',[2,4])
  73 + ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')->count();
  74 + $qualified_count = $projectModel->where('gl_project.extend_type',0)
  75 + ->where('gl_project.delete_status',0)
  76 + ->where('gl_project.created_at','<=',$todayMidnight)
  77 + ->where('gl_project.is_remain_today',1)
  78 + ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)
  79 + ->whereIn('gl_project.type',[2,4])
  80 + ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')->count();
67 $rate = number_format($qualified_count / $project_count, 2); 81 $rate = number_format($qualified_count / $project_count, 2);
68 $threeMonthsAgo = date('Y-m-d 00:00:00', strtotime('-3 months')); 82 $threeMonthsAgo = date('Y-m-d 00:00:00', strtotime('-3 months'));
69 - $three_project_count = $projectModel->where('gl_project.extend_type',0)->where('gl_project.delete_status',0)->where('gl_project.created_at','<=',$threeMonthsAgo)->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)->whereIn('gl_project.type',[2,4])->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')->count();  
70 - $three_qualified_count = $projectModel->where('gl_project.extend_type',0)->where('gl_project.delete_status',0)->where('gl_project.created_at','<=',$threeMonthsAgo)->where('gl_project.is_remain_today',1)->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)->whereIn('gl_project.type',[2,4])->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')->count(); 83 + $three_project_count = $projectModel->where('gl_project.extend_type',0)
  84 + ->where('gl_project.delete_status',0)
  85 + ->where('gl_project.created_at','<=',$threeMonthsAgo)
  86 + ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)
  87 + ->whereIn('gl_project.type',[2,4])
  88 + ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')->count();
  89 + $three_qualified_count = $projectModel->where('gl_project.extend_type',0)
  90 + ->whereIn('gl_project.id',$projectIdArr)
  91 + ->where('gl_project.delete_status',0)
  92 + ->where('gl_project.created_at','<=',$threeMonthsAgo)
  93 + ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)
  94 + ->whereIn('gl_project.type',[2,4])
  95 + ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')->count();
71 $three_rate = number_format($three_qualified_count / $three_project_count, 2); 96 $three_rate = number_format($three_qualified_count / $three_project_count, 2);
  97 + $data = $projectModel->where('gl_project.extend_type',0)
  98 + ->where('gl_project.delete_status',0)
  99 + ->where('gl_project.created_at','<=',$todayMidnight)
  100 + ->where('gl_project.is_remain_today',1)
  101 + ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)
  102 + ->whereIn('gl_project.type',[2,4])
  103 + ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')
  104 + ->pluck('gl_project.title');
72 $saveData[] = [ 105 $saveData[] = [
73 'date'=>date('Y-m-d', strtotime('yesterday')), 106 'date'=>date('Y-m-d', strtotime('yesterday')),
74 'type'=> $key, 107 'type'=> $key,
@@ -78,6 +111,7 @@ class AfterCount extends Command @@ -78,6 +111,7 @@ class AfterCount extends Command
78 'three_project_count'=>$three_project_count, 111 'three_project_count'=>$three_project_count,
79 'three_qualified_count'=>$three_qualified_count, 112 'three_qualified_count'=>$three_qualified_count,
80 'three_rate'=>$three_rate, 113 'three_rate'=>$three_rate,
  114 + 'data' => json_encode($data)
81 ]; 115 ];
82 } 116 }
83 return $saveData; 117 return $saveData;