123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- <?php
- namespace app\api\controller;
- use think\facade\Request;
- use app\model\PreformanceTasks as PreformanceTasksModel;
- use app\model\UserCollect;
- use app\model\Footprints;
- use app\model\Customer;
- use app\model\CustomersSubscribe;
- use app\model\CustomerVisitLog;
- use app\model\Org;
- use app\model\Employee;
- use app\model\User;
- use app\model\PreformanceTasksOrg;
- use app\model\Grant;
- class PreformanceTasks extends Base
- {
- //进行中
- public function ing_list($param){
- $token = $this->request->token;
- $token['org_id'] = Employee::where('id',$token['employee_id'])->value('org_id');
- $time = date('Y-m-d H:i:s');
- $w[] = ['del','=',0];
- $w[] = ['root_id','=',$token['root_org']];
- $w[] = ['start_date','<=',$time];
- $w[] = ['end_date','>=',$time];
- $pid = PreformanceTasksModel::where($w)->column('id');
- //正在进行中指派给我部门并且没有完成
- $w1[] = ['performance_tasks_id','in',$pid];
- $w1[] = ['org_id','=',$token['org_id']];
- // $w5[] = "if(is_deposit=1,`ok_deposit`<`deposit`,'1=1')";
- // $w5[] = "if(is_money=1,`ok_money`<`money`,'1=1')";
- $pid = PreformanceTasksOrg::where($w1)
- // ->where(function($query) use ($w5){
- // foreach ($w5 as $k => $v) {
- // $query->whereOr($v);
- // }
- // })
- ->column('performance_tasks_id');
- $w22[] = ['id','in',$pid];
- $org_id = $token['org_id'];
- $list = PreformanceTasksModel::with(['preformanceTasksOrgOne'=>function($query) use ($org_id){
- $query->where([['del','=',0],['org_id','=',$org_id]]);
- }])->where($w22)->page($param['page'],$param['limit'])->select();
- //逾期任务数量
- $wy[] = ['del','=',0];
- $wy[] = ['root_id','=',$token['root_org']];
- $wy[] = ['end_date','<',$time];
- $pid = PreformanceTasksModel::where($wy)->column('id');
- $w33[] = ['performance_tasks_id','in',$pid];
- $w33[] = ['root_id','=',$token['root_org']];
- $w33[] = ['del','=',0];
- $w33[] = ['org_id','=',$token['org_id']];
- $w5[] = "if(is_deposit=1,`ok_deposit`<`deposit`,'1=1')";
- $w5[] = "if(is_money=1,`ok_money`<`money`,'1=1')";
- $yuqi = PreformanceTasksOrg::where($w33)
- ->where(function($query) use ($w5){
- foreach ($w5 as $k => $v) {
- $query->whereOr($v);
- }
- })
- ->group('performance_tasks_id')->count();
- foreach ($list as $k => $v) {
- //自己的业绩
- $vid = $v->customer_visit_log_id;
- $w2[] = ['customer_employee_id','=',$token['employee_id']];
- $w2[] = ['confirm_date','between',[$v->start_date,$v->end_date]];
- $w2[] = ['id','in',explode(',',$vid)];
- $w2[] = ['customer_org_id','=',$token['org_id']];
- $w2[] = ['state', 'in',CustomerVisitLog::changeState('已交定', 'chaos')];
- $v->my_deposit = CustomerVisitLog::where($w2)->group('customer_id')->count();
- $w3[] = ['customer_employee_id','=',$token['employee_id']];
- $w3[] = ['confirm_date','between',[$v->start_date,$v->end_date]];
- $w3[] = ['state', 'in',CustomerVisitLog::changeState('已签单', 'chaos')];
- $w3[] = ['customer_org_id','=',$token['org_id']];
- $w3[] = ['id','in',explode(',',$vid)];
- $v->my_money = CustomerVisitLog::where($w3)->group('customer_id')->sum('money');
- $v->org_deposit = $v->preformanceTasksOrgOne->ok_deposit;
- $v->org_money = $v->preformanceTasksOrgOne->ok_money;
- $v->deposit = $v->preformanceTasksOrgOne->deposit;
- $v->money = $v->preformanceTasksOrgOne->money;
- unset($w2);
- unset($w3);
- unset($v->preformanceTasksOrgOne);
- $v->start_date = date('Y-m-d',strtotime($v->start_date));
- $v->end_date = date('Y-m-d',strtotime($v->end_date));
- //交定比例
- $v->org_deposit_grawht = $v->deposit==0 ? 0 : (floor($v->org_deposit/$v->deposit*100)>100 ? 100 : floor($v->org_deposit/$v->deposit*100));
- $v->my_deposit_grawth = $v->deposit==0 ? 0 : (floor($v->my_deposit/$v->deposit*100)>100 ? 100 : floor($v->my_deposit/$v->deposit*100));
- //签单比例
- $v->org_money_grawht = $v->money==0 ? 0 : (floor($v->org_money/$v->money*100)>100 ? 100 : floor($v->org_money/$v->money*100));
- $v->my_money_grawth = $v->money==0 ? 0 : (floor($v->my_money/$v->money*100)>100 ? 100 : floor($v->my_money/$v->money*100));
- }
- $count = PreformanceTasksModel::where($w22)->count();
- return json(['code' => 0, 'data' =>$list,'count'=>$count,'msg' => '编辑成功','yuqi'=>$yuqi]);
- }
- //业绩任务列表
- public function index(){
- $param = Request::only(['page'=>1,'limit'=>10,'type'=>1]);
- //进行中
- if ($param['type']==1) {
- $list = $this->ing_list($param);
- }else{//逾期
- $list = $this->yuqi_list($param);
- }
- return $list;
- }
- //逾期
- ////已完成和逾期未完成
- public function yuqi_list($param){
- //已完成
- $token = $this->request->token;
- $token['org_id'] = Employee::where('id',$token['employee_id'])->value('org_id');
- $time = date('Y-m-d H:i:s');
- $wy[] = ['del','=',0];
- $wy[] = ['root_id','=',$token['root_org']];
- $wy[] = ['end_date','<',$time];
- $pid = PreformanceTasksModel::where($wy)->column('id');
- $w334[] = ['performance_tasks_id','in',$pid];
- $w334[] = ['root_id','=',$token['root_org']];
- $w334[] = ['del','=',0];
- $w334[] = ['org_id','=',$token['org_id']];
- $pid = PreformanceTasksOrg::where($w334)->group('performance_tasks_id')->column('performance_tasks_id');
- $w6[] = ['id','in',$pid];
- $org_id = $token['org_id'];
- $list = PreformanceTasksModel::with(['preformanceTasksOrgOne'=>function($query) use ($org_id){
- $query->where([['del','=',0],['org_id','=',$org_id]]);
- }])->where($w6)->page($param['page'],$param['limit'])->select();
- foreach ($list as $k => $v) {
- $vid = $v->customer_visit_log_id;
- //自己的业绩
- $w23[] = ['customer_employee_id','=',$token['employee_id']];
- $w23[] = ['confirm_date','between',[$v->start_date,$v->end_date]];
- $w23[] = ['state', 'in',CustomerVisitLog::changeState('已交定', 'chaos')];
- $w23[] = ['customer_org_id','=',$token['org_id']];
- $w23[] = ['id','in',explode(',',$vid)];
- $v->my_deposit = CustomerVisitLog::where($w23)->group('customer_id')->count();
- $w33[] = ['customer_employee_id','=',$token['employee_id']];
- $w33[] = ['confirm_date','between',[$v->start_date,$v->end_date]];
- $w33[] = ['state', 'in',CustomerVisitLog::changeState('已签单', 'chaos')];
- $w33[] = ['customer_org_id','=',$token['org_id']];
- $w33[] = ['id','in',explode(',',$vid)];
- $v->my_money = CustomerVisitLog::where($w33)->group('customer_id')->sum('money');
- $v->org_deposit = $v->preformanceTasksOrgOne->ok_deposit;
- $v->org_money = $v->preformanceTasksOrgOne->ok_money;
- $v->deposit = $v->preformanceTasksOrgOne->deposit;
- $v->money = $v->preformanceTasksOrgOne->money;
- unset($w23);
- unset($w33);
- unset($v->preformanceTasksOrgOne);
- $v->start_date = date('Y-m-d',strtotime($v->start_date));
- $v->end_date = date('Y-m-d',strtotime($v->end_date));
- //交定比例
- $v->org_deposit_grawht = $v->deposit==0 ? 0 : (floor($v->org_deposit/$v->deposit*100)>100 ? 100 : floor($v->org_deposit/$v->deposit*100));
- $v->my_deposit_grawth = $v->deposit==0 ? 0 : (floor($v->my_deposit/$v->deposit*100)>100 ? 100 : floor($v->my_deposit/$v->deposit*100));
- //签单比例
- $v->org_money_grawht = $v->money==0 ? 0 : (floor($v->org_money/$v->money*100)>100 ? 100 : floor($v->org_money/$v->money*100));
- $v->my_money_grawth = $v->money==0 ? 0 : (floor($v->my_money/$v->money*100)>100 ? 100 : floor($v->my_money/$v->money*100));
- }
- $count = PreformanceTasksModel::where($w6)->count();
- return json(['code' => 0, 'data' =>$list,'count'=>$count,'msg' => '编辑成功']);
- }
- }
|