orgId = $orgId;
// $orgId = input('orgId',0);
// if($orgId < 1){
// HelpHander::error('参数错误');
// }
// $this->orgId = $orgId;
$org = Db::name('org')->where('del',0)->where('id',$orgId)->find();
if(!$org){
HelpHander::error('参数错误');
}
$this->title = $org['name'].'后勤总数据大屏';
}
public function getTitle(){
HelpHander::success($this->title);
}
public function projectCount(){
if($this->orgId == 3){
$userCount = gtspdb('user')
->alias('u')
->join('user_org uo','uo.USER_ID=u.USER_ID')
->join('org o','o.ORG_ID=uo.ORG_ID')
->where('u.DEL_REF',0)
->where('u.TYPE',0)
->where('o.ENABLE',1)
->where('o.DEL_REF',0)
->where('o.ORG_ID',$this->spOrgId)
->count();
$orderCount = gtspdb('orders')
->where('DEL_REF',0)
->where('ORG_ID',$this->spOrgId)
->count();
$todoCount = gtspdb('todo')
->where('DEL_REF',0)
->where('ORG_ID',$this->spOrgId)
->count();
$task1 = gtspdb('patrol_task')
->where('DEL_REF',0)
->where('ORG_ID',$this->spOrgId)
->count();
$taskCount = $task1;
}elseif($this->orgId == 24){
$userCount = bjydb('user')
->alias('u')
->join('user_org uo','uo.user_id=u.id')
->join('org o','o.id=uo.org_id')
->where('u.del',0)
->where('u.type',0)
->where('o.enable',1)
->where('o.del',0)
->where('o.id',$this->bjOrgId)
->count();
$orderCount = bjydb('orders')
->where('del',0)
->where('org_id',$this->bjOrgId)
->count();
$todoCount = bjydb('todo')
->where('del',0)
->where('org_id',$this->bjOrgId)
->count();
$task1 = bjydb('patrol_task')
->where('del',0)
->where('org_id',$this->bjOrgId)
->count();
$task2 = bjydb('device_task')
->where('del',0)
->where('org_id',$this->bjOrgId)
->count();
$taskCount = $task1 + $task2;
}elseif($this->orgId == 26){
$userCount = xcydb('user')
->alias('u')
->join('user_org uo','uo.user_id=u.id')
->join('org o','o.id=uo.org_id')
->where('u.del',0)
->where('u.type',0)
->where('o.enable',1)
->where('o.del',0)
->where('o.id',$this->xcOrgId)
->count();
$orderCount = xcydb('orders')
->where('del',0)
->where('org_id',$this->xcOrgId)
->count();
$todoCount = xcydb('todo')
->where('del',0)
->where('org_id',$this->xcOrgId)
->count();
$task1 = xcydb('patrol_task')
->where('del',0)
->where('org_id',$this->xcOrgId)
->count();
$task2 = xcydb('device_task')
->where('del',0)
->where('org_id',$this->xcOrgId)
->count();
$taskCount = $task1 + $task2;
}else{
$userCount = Db::name('user')
->alias('u')
->join('user_org uo','uo.user_id=u.id')
->join('org o','o.id=uo.org_id')
->where('u.del',0)
->where('u.type',0)
->where('o.enable',1)
->where('o.del',0)
->where('o.id',$this->orgId)
->count();
$orderCount = Db::name('orders')
->where('del',0)
->where('org_id',$this->orgId)
->count();
$todoCount = Db::name('todo')
->where('del',0)
->where('org_id',$this->orgId)
->count();
$task1 = Db::name('patrol_task')
->where('del',0)
->where('org_id',$this->orgId)
->count();
$task2 = Db::name('device_task')
->where('del',0)
->where('org_id',$this->orgId)
->count();
$taskCount = $task1 + $task2;
}
$data = [
'count1'=>$userCount,
'count2'=>$orderCount,
'count3'=>$todoCount,
'count4'=>$taskCount,
'count5'=>23,
];
HelpHander::success($data);
}
public function todayTodoInfo(){
$date = date('Ymd');
if($this->orgId == 3){
$map[] = ['CREATE_YYYYMMDD','=',$date];
$map[] = ['DEL_REF','=',0];
$count = gtspdb('todo')->where($map)->where('ORG_ID',$this->spOrgId)->count();
$map[] = ['TODO_MODE','=',3];
$overCount = gtspdb('todo')->where($map)->where('ORG_ID',$this->spOrgId)->count();
$overBl = 0;
if($count > 0){
$overBl = round($overCount/$count*100,0);
}
}elseif($this->orgId == 24){
$map[] = ['create_yyyymmdd','=',$date];
$map[] = ['del','=',0];
$count = bjydb('todo')->where($map)->where('org_id',$this->bjOrgId)->count();
$map[] = ['todo_mode','=',3];
$overCount = bjydb('todo')->where($map)->where('org_id',$this->bjOrgId)->count();
$overBl = 0;
if($count > 0){
$overBl = round($overCount/$count*100,0);
}
}elseif($this->orgId == 26){
$map[] = ['create_yyyymmdd','=',$date];
$map[] = ['del','=',0];
$count = xcydb('todo')->where($map)->where('org_id',$this->xcOrgId)->count();
$map[] = ['todo_mode','=',3];
$overCount = xcydb('todo')->where($map)->where('org_id',$this->xcOrgId)->count();
$overBl = 0;
if($count > 0){
$overBl = round($overCount/$count*100,0);
}
}else{
$map[] = ['create_yyyymmdd','=',$date];
$map[] = ['del','=',0];
$count = Db::name('todo')->where($map)->where('org_id',$this->orgId)->count();
$map[] = ['todo_mode','=',3];
$overCount = Db::name('todo')->where($map)->where('org_id',$this->orgId)->count();
$overBl = 0;
if($count > 0){
$overBl = round($overCount/$count*100,0);
}
}
$data = [
'count'=>$count,
'value'=>$overBl
];
HelpHander::success($data);
}
public function todayTodoType(){
$date = date('Ymd');
if($this->orgId == 3){
$map[] = ['CREATE_YYYYMMDD','=',$date];
$map[] = ['DEL_REF','=',0];
$map[] = ['ORG_ID','=',$this->spOrgId];
$count = gtspdb('todo')->where($map)->where('WORK_TYPE_MODE',1)->count();
$count2 = gtspdb('todo')->where($map)->where('WORK_TYPE_MODE',2)->count();
$count3 = gtspdb('todo')->where($map)->where('WORK_TYPE_MODE',3)->count();
$count4 = gtspdb('todo')->where($map)->where('WORK_TYPE_MODE',4)->count();
$map[] = ['TODO_MODE','=',3];
//保修
$bxCount = gtspdb('todo')->where($map)->where('WORK_TYPE_MODE',1)->count();
//保洁
$bjCount = gtspdb('todo')->where($map)->where('WORK_TYPE_MODE',2)->count();
//运送
$ysCount = gtspdb('todo')->where($map)->where('WORK_TYPE_MODE',3)->count();
//隐患
$yhCount = gtspdb('todo')->where($map)->where('WORK_TYPE_MODE',4)->count();
}elseif($this->orgId == 24){
$map[] = ['create_yyyymmdd','=',$date];
$map[] = ['del','=',0];
$count = bjydb('todo')->where($map)->where('work_type_mode',1)->where('org_id',$this->bjOrgId)->count();
$count2 = bjydb('todo')->where($map)->where('work_type_mode',2)->where('org_id',$this->bjOrgId)->count();
$count3 = bjydb('todo')->where($map)->where('work_type_mode',3)->where('org_id',$this->bjOrgId)->count();
$count4 = bjydb('todo')->where($map)->where('work_type_mode',4)->where('org_id',$this->bjOrgId)->count();
$map[] = ['todo_mode','=',3];
//保修
$bxCount = bjydb('todo')->where($map)->where('work_type_mode',1)->where('org_id',$this->bjOrgId)->count();
//保洁
$bjCount = bjydb('todo')->where($map)->where('work_type_mode',2)->where('org_id',$this->bjOrgId)->count();
//运送
$ysCount = bjydb('todo')->where($map)->where('work_type_mode',3)->where('org_id',$this->bjOrgId)->count();
//隐患
$yhCount = bjydb('todo')->where($map)->where('work_type_mode',4)->where('org_id',$this->bjOrgId)->count();
}elseif($this->orgId == 26){
$map[] = ['create_yyyymmdd','=',$date];
$map[] = ['del','=',0];
$count = xcydb('todo')->where($map)->where('work_type_mode',1)->where('org_id',$this->xcOrgId)->count();
$count2 = xcydb('todo')->where($map)->where('work_type_mode',2)->where('org_id',$this->xcOrgId)->count();
$count3 = xcydb('todo')->where($map)->where('work_type_mode',3)->where('org_id',$this->xcOrgId)->count();
$count4 = xcydb('todo')->where($map)->where('work_type_mode',4)->where('org_id',$this->xcOrgId)->count();
$map[] = ['todo_mode','=',3];
//保修
$bxCount = xcydb('todo')->where($map)->where('work_type_mode',1)->where('org_id',$this->xcOrgId)->count();
//保洁
$bjCount = xcydb('todo')->where($map)->where('work_type_mode',2)->where('org_id',$this->xcOrgId)->count();
//运送
$ysCount = xcydb('todo')->where($map)->where('work_type_mode',3)->where('org_id',$this->xcOrgId)->count();
//隐患
$yhCount = xcydb('todo')->where($map)->where('work_type_mode',4)->where('org_id',$this->xcOrgId)->count();
}else{
$map[] = ['create_yyyymmdd','=',$date];
$map[] = ['del','=',0];
$count = Db::name('todo')->where($map)->where('work_type_mode',1)->where('org_id',$this->orgId)->count();
$count2 = Db::name('todo')->where($map)->where('work_type_mode',2)->where('org_id',$this->orgId)->count();
$count3 = Db::name('todo')->where($map)->where('work_type_mode',3)->where('org_id',$this->orgId)->count();
$count4 = Db::name('todo')->where($map)->where('work_type_mode',4)->where('org_id',$this->orgId)->count();
$map[] = ['todo_mode','=',3];
//保修
$bxCount = Db::name('todo')->where($map)->where('work_type_mode',1)->where('org_id',$this->orgId)->count();
//保洁
$bjCount = Db::name('todo')->where($map)->where('work_type_mode',2)->where('org_id',$this->orgId)->count();
//运送
$ysCount = Db::name('todo')->where($map)->where('work_type_mode',3)->where('org_id',$this->orgId)->count();
//隐患
$yhCount = Db::name('todo')->where($map)->where('work_type_mode',4)->where('org_id',$this->orgId)->count();
}
$bxBl = $bjBl = $ysBl = $yhBl =0;
if($count > 0){
$bxBl = round($bxCount/$count*100,0);
}
if($count2 >0){
$bjBl = round($bjCount/$count2*100,0);
}
if($count3 >0){
$ysBl = round($ysCount/$count3*100,0);
}
if($count4 >0){
$yhBl = round($yhCount/$count4*100,0);
}
$data = [
'bx'=>['count'=>$bxCount,'bl'=>$bxBl],
'bj'=>['count'=>$bjCount,'bl'=>$bjBl],
'ys'=>['count'=>$ysCount,'bl'=>$ysBl],
'yh'=>['count'=>$yhCount,'bl'=>$yhBl],
];
HelpHander::success($data);
}
public function rolesUserList(){
if($this->orgId == 3){
$initarr = array(
array(
'type' => 1,
'name' => '客户人员',
'mode' => 182838,
),
array(
'type' => 2,
'name' => '综合人员',
'mode' => 182848,
),
array(
'type' => 3,
'name' => '运送人员',
'mode' => 182868,
),
array(
'type' => 4,
'name' => '维修人员',
'mode' => 182878,
),
array(
'type' => 5,
'name' => '保洁人员',
'mode' => 1828108,
),
array(
'type' => 6,
'name' => '保安人员',
'mode' => 182858,
),
array(
'type' => 7,
'name' => '调度人员',
'mode' => 1828118,
),
array(
'type' => 8,
'name' => '监管人员',
'mode' => 1828128,
)
);
$roles = [];
foreach ($initarr as $k=>$v){
$roles[$k]['name'] = $v['name'];
$rolesId = gtspdb('roles')
->where('mode','like',$v['mode'].'%')
->where('MODE','<>',$v['mode'])
->where('ORG_ID',$this->spOrgId)
->column('ROLES_ID');
$roles[$k]['ids'] = $rolesId;
}
foreach ($roles as $k=>$v){
$roles[$k]['value'] = gtspdb('user_roles')
->alias('ur')
->join('user u','u.USER_ID=ur.USER_ID')
->whereIn('ur.ROLES_ID',$v['ids'])
->where('u.DEL_REF',0)
->count();
}
}elseif($this->orgId == 24){
$roles = bjydb('roles')
->field('id,name')
->where('parent_id',0)
->whereIn('id',[5,6,7,8,9,11])
->where('type',1)
->where('del',0)
->where('enable',1)
->select();
foreach ($roles as $k=>$v){
$roles[$k]['ids'] = bjydb('roles')
->where('parent_id',$v['id'])
->where('type',1)
->where('del',0)
->where('enable',1)
->where('org_id',$this->bjOrgId)
->column('id');
}
foreach ($roles as $k=>$v){
$roles[$k]['value'] = bjydb('user_roles')
->alias('ur')
->join('user u','u.id=ur.user_id')
->whereIn('ur.roles_id',$v['ids'])
->where('u.del',0)
->count();
}
}elseif($this->orgId == 26){
$roles = xcydb('roles')
->field('id,name')
->where('parent_id',0)
->whereIn('id',[5,6,7,8,9,11])
->where('type',1)
->where('del',0)
->where('enable',1)
->select();
foreach ($roles as $k=>$v){
$roles[$k]['ids'] = xcydb('roles')
->where('parent_id',$v['id'])
->where('type',1)
->where('del',0)
->where('enable',1)
->where('org_id',$this->xcOrgId)
->column('id');
}
foreach ($roles as $k=>$v){
$roles[$k]['value'] = xcydb('user_roles')
->alias('ur')
->join('user u','u.id=ur.user_id')
->whereIn('ur.roles_id',$v['ids'])
->where('u.del',0)
->count();
}
}else{
$roles = Db::name('roles')
->field('id,name')
->where('parent_id',0)
->whereIn('id',[5,6,7,8,9,11])
->where('type',1)
->where('del',0)
->where('enable',1)
->select();
foreach ($roles as $k=>$v){
$roles[$k]['ids'] = Db::name('roles')
->where('parent_id',$v['id'])
->where('type',1)
->where('del',0)
->where('enable',1)
->where('org_id',$this->orgId)
->column('id');
}
foreach ($roles as $k=>$v){
$roles[$k]['value'] = Db::name('user_roles')
->alias('ur')
->join('user u','u.id=ur.user_id')
->whereIn('ur.roles_id',$v['ids'])
->where('u.del',0)
->count();
}
}
HelpHander::success($roles);
}
public function workTypeModeList(){
if($this->orgId == 3){
$map[] = ['ORG_ID','=',$this->spOrgId];
$map[] = ['CREATE_TIME','>=',date('Y-m').'-01 00:00:00'];
$map[] = ['CREATE_TIME','<=',date('Y-m').'-31 23:59:59'];
$map[] = ['DEL_REF','=',0];
$count = gtspdb('todo')->where($map)->count();
$bj = gtspdb('todo')->where('WORK_TYPE_MODE',2)->where($map)->count();
$ys = gtspdb('todo')->where('WORK_TYPE_MODE',3)->where($map)->count();
$bx = gtspdb('todo')->where('WORK_TYPE_MODE',1)->where($map)->count();
$yh = gtspdb('todo')->where('WORK_TYPE_MODE',4)->where($map)->count();
$data = [
'title'=>['总数','保洁','运送','保修','隐患',],
'list'=>[ $count,$bj,$ys,$bx,$yh],
];
}elseif($this->orgId == 24){
$map[] = ['org_id','=',$this->bjOrgId];
$map[] = ['create_time','>=',date('Y-m').'-01 00:00:00'];
$map[] = ['create_time','<=',date('Y-m').'-31 23:59:59'];
$count = bjydb('todo')->where($map)->count();
$bj = bjydb('todo')->where('work_type_mode',2)->where('del',0)->where($map)->count();
$ys = bjydb('todo')->where('work_type_mode',3)->where('del',0)->where($map)->count();
$bx = bjydb('todo')->where('work_type_mode',1)->where('del',0)->where($map)->count();
$yh = bjydb('todo')->where('work_type_mode',4)->where('del',0)->where($map)->count();
$ph = bjydb('ph_todo')->where($map)->count();
$data = [
'title'=>['总数','保洁','运送','保修','隐患','陪护'],
'list'=>[ $count+$ph,$bj,$ys,$bx,$yh,$ph],
];
}elseif($this->orgId == 26){
$map[] = ['org_id','=',$this->xcOrgId];
$map[] = ['create_time','>=',date('Y-m').'-01 00:00:00'];
$map[] = ['create_time','<=',date('Y-m').'-31 23:59:59'];
$count = xcydb('todo')->where($map)->count();
$bj = xcydb('todo')->where('work_type_mode',2)->where('del',0)->where($map)->count();
$ys = xcydb('todo')->where('work_type_mode',3)->where('del',0)->where($map)->count();
$bx = xcydb('todo')->where('work_type_mode',1)->where('del',0)->where($map)->count();
$yh = xcydb('todo')->where('work_type_mode',4)->where('del',0)->where($map)->count();
$ph = xcydb('ph_todo')->where($map)->count();
$data = [
'title'=>['总数','保洁','运送','保修','隐患','陪护'],
'list'=>[ $count+$ph,$bj,$ys,$bx,$yh,$ph],
];
}else{
$map[] = ['org_id','=',$this->orgId];
$map[] = ['create_time','>=',date('Y-m').'-01 00:00:00'];
$map[] = ['create_time','<=',date('Y-m').'-31 23:59:59'];
$count = Db::name('todo')->where($map)->count();
$bj = Db::name('todo')->where('work_type_mode',2)->where('del',0)->where($map)->count();
$ys = Db::name('todo')->where('work_type_mode',3)->where('del',0)->where($map)->count();
$bx = Db::name('todo')->where('work_type_mode',1)->where('del',0)->where($map)->count();
$yh = Db::name('todo')->where('work_type_mode',4)->where('del',0)->where($map)->count();
$ph = Db::name('ph_todo')->where($map)->count();
$data = [
'title'=>['总数','保洁','运送','保修','隐患','陪护'],
'list'=>[ $count+$ph,$bj,$ys,$bx,$yh,$ph],
];
}
HelpHander::success($data);
}
public function userCommentScoreList(){
if($this->orgId == 3){
$user = gtspdb('comment')
->field('USER_ID')
->where('ORG_ID',$this->spOrgId)
->group('USER_ID')
->select();
foreach ($user as $k=>$v){
$user[$k]['score'] = gtspdb('comment')
->where('USER_ID',$v['USER_ID'])
->sum('SCORE');
$user[$k]['name'] = gtspdb('user')->where('USER_ID',$v['USER_ID'])->value('REAL_NAME');
$user[$k]['dep'] = gtspdb('user_org')
->alias('uo')
->join('org o','o.ORG_ID=uo.ORG_ID')
->where('uo.USER_ID',$v['USER_ID'])
->where('uo.ORG_TYPE',1)
->where('o.TYPE',3)
->value('NAME');
$roles = gtspdb('user_roles')
->alias('ur')
->join('roles r','r.ROLES_ID=ur.ROLES_ID')
->where('ur.USER_ID',$v['USER_ID'])
->value('r.NAME');
$user[$k]['roles'] = $roles ? $roles:'';
// $task1 = gtspdb('patrol_task')
// ->alias('pt')
// ->join('patrol_record pr','pr.PATROL_TASK_ID=pt.PATROL_TASK_ID')
// ->where('pr.USER_ID',$v['USER_ID'])
// ->where('pt.STATUS',2)
// ->where('pt.DEL_REF',0)
// ->where('pr.ORG_ID',$this->spOrgId)
// ->count();
$task1 = gtspdb('comment')
->where('USER_ID',$v['USER_ID'])
->count();
$taskCount = $task1;
$user[$k]['task'] = $taskCount;
}
$list = list_sort_by($user,'score','desc');
$data = [];
$host = request()->domain(true);
foreach ($list as $k=>$v){
if(isset($k) && $k==0){
$top = '
';
}elseif (isset($k) && $k==1){
$top = '
';
}elseif (isset($k) && $k==2){
$top = '
';
}else{
$top = 'TOP'.($k+1);
}
$data[] = [$top,$v['name'],$v['dep'],$v['roles'],$v['task'],$v['score']];
}
}elseif($this->orgId == 24){
$user = bjydb('comment')
->field('user_id')
->where('org_id',$this->bjOrgId)
->group('user_id')
->select();
foreach ($user as $k=>$v){
$user[$k]['score'] = bjydb('comment')
->where('org_id',$this->bjOrgId)
->where('user_id',$v['user_id'])
->sum('score');
$user[$k]['name'] = bjydb('user')->where('id',$v['user_id'])->value('real_name');
$user[$k]['dep'] = bjydb('user_dep')
->alias('ud')
->join('dep d','d.id=ud.dep_id')
->where('ud.user_id',$v['user_id'])
->value('title');
$rolesId = bjydb('user_roles')
->alias('ur')
->join('roles r','r.id=ur.roles_id')
->where('ur.user_id',$v['user_id'])
->value('r.parent_id');
$user[$k]['roles'] = $rolesId ? bjydb('roles')->where('id',$rolesId)->value('name'):'';
$user[$k]['task'] = bjydb('comment')
->where('org_id',$this->bjOrgId)
->where('user_id',$v['user_id'])
->count();
}
$list = list_sort_by($user,'score','desc');
$data = [];
$host = request()->domain(true);
foreach ($list as $k=>$v){
if(isset($k) && $k==0){
$top = '
';
}elseif (isset($k) && $k==1){
$top = '
';
}elseif (isset($k) && $k==2){
$top = '
';
}else{
$top = 'TOP'.($k+1);
}
$data[] = [$top,$v['name'],$v['dep'],$v['roles'],$v['task'],$v['score']];
}
}elseif($this->orgId == 26){
$user = xcydb('comment')
->field('user_id')
->where('org_id',$this->xcOrgId)
->group('user_id')
->select();
foreach ($user as $k=>$v){
$user[$k]['score'] = xcydb('comment')
->where('org_id',$this->xcOrgId)
->where('user_id',$v['user_id'])
->sum('score');
$user[$k]['name'] = xcydb('user')->where('id',$v['user_id'])->value('real_name');
$user[$k]['dep'] = xcydb('user_dep')
->alias('ud')
->join('dep d','d.id=ud.dep_id')
->where('ud.user_id',$v['user_id'])
->value('title');
$rolesId = xcydb('user_roles')
->alias('ur')
->join('roles r','r.id=ur.roles_id')
->where('ur.user_id',$v['user_id'])
->value('r.parent_id');
$user[$k]['roles'] = $rolesId ? xcydb('roles')->where('id',$rolesId)->value('name'):'';
$user[$k]['task'] = xcydb('comment')
->where('org_id',$this->xcOrgId)
->where('user_id',$v['user_id'])
->count();
}
$list = list_sort_by($user,'score','desc');
$data = [];
$host = request()->domain(true);
foreach ($list as $k=>$v){
if(isset($k) && $k==0){
$top = '
';
}elseif (isset($k) && $k==1){
$top = '
';
}elseif (isset($k) && $k==2){
$top = '
';
}else{
$top = 'TOP'.($k+1);
}
$data[] = [$top,$v['name'],$v['dep'],$v['roles'],$v['task'],$v['score']];
}
}else{
$user = Db::name('comment')
->field('user_id')
->where('org_id',$this->orgId)
->group('user_id')
->select();
foreach ($user as $k=>$v){
$user[$k]['score'] = Db::name('comment')
->where('org_id',$this->orgId)
->where('user_id',$v['user_id'])
->sum('score');
$user[$k]['name'] = Db::name('user')->where('id',$v['user_id'])->value('real_name');
$user[$k]['dep'] = Db::name('user_dep')
->alias('ud')
->join('dep d','d.id=ud.dep_id')
->where('ud.user_id',$v['user_id'])
->value('title');
$rolesId = Db::name('user_roles')
->alias('ur')
->join('roles r','r.id=ur.roles_id')
->where('ur.user_id',$v['user_id'])
->value('r.parent_id');
$user[$k]['roles'] = $rolesId ? Db::name('roles')->where('id',$rolesId)->value('name'):'';
// $task1 = Db::name('patrol_task')
// ->alias('pt')
// ->join('patrol_record pr','pr.patrol_task_id=pt.id')
// ->where('pr.user_id',$v['user_id'])
// ->where('pt.status',2)
// ->where('pt.del',0)
// ->where('pr.org_id',$this->orgId)
// ->count();
//
// $task2 = Db::name('device_task')
// ->alias('dt')
// ->join('device_record dr','dr.task_id=dt.id')
// ->where('dr.user_id',$v['user_id'])
// ->where('dt.status',2)
// ->where('dt.del',0)
// ->where('dr.org_id',$this->orgId)
// ->count();
//
// $task3 = Db::name('daily_task')
// ->alias('dt')
// ->join('daily_record dr','dr.task_id=dt.id')
// ->where('dr.user_id',$v['user_id'])
// ->where('dt.status',2)
// ->where('dt.del',0)
// ->where('dr.org_id',$this->orgId)
// ->count();
//
// $taskCount = $task1 + $task2 + $task3;
$user[$k]['task'] = Db::name('comment')
->where('org_id',$this->orgId)
->where('user_id',$v['user_id'])
->count();
}
$list = list_sort_by($user,'score','desc');
$data = [];
$host = request()->domain(true);
foreach ($list as $k=>$v){
if(isset($k) && $k==0){
$top = '
';
}elseif (isset($k) && $k==1){
$top = '
';
}elseif (isset($k) && $k==2){
$top = '
';
}else{
$top = 'TOP'.($k+1);
}
$data[] = [$top,$v['name'],$v['dep'],$v['roles'],$v['task'],$v['score']];
}
}
HelpHander::success($data);
}
// 获取大屏紧急联系人或图片
public function getOrgInfo(){
$data = [
'name' => model('Config')->getConfig('org_emergency_name',$this->orgId),
'phone' => model('Config')->getConfig('org_emergency_phone',$this->orgId),
'img' => model('Config')->getConfig('org_screen_img',$this->orgId)
];
HelpHander::success($data);
}
public function orgQuarterRankList(){
//获取当前季度
$season = ceil((date('n'))/3);
//当前季度开始时间戳
$startTime = date('Y-m-d H:i:s', mktime(0,0,0,$season*3-3+1,1,date('Y')));
//获取当前季度结束时间戳
$overTime = date('Y-m-d H:i:s', mktime(23,59,59,$season*3,date('t',mktime(0,0,0,$season*3,1,date("Y"))),date('Y')));
$orgList = Db::name('org')
->field('id,name')
->where('type',2)
->where('enable',1)
->where('del',0)
->select();
foreach ($orgList as $k=>$v){
if($v['id'] == 3){
$orgList[$k]['count'] = gtspdb('comment')
->where('ORG_ID',$v['id'])
->where('CREATE_TIME','>=',$startTime)
->where('CREATE_TIME','<=',$overTime)
->sum('SCORE');
}elseif ($v['id'] == 24){
$orgList[$k]['count'] = bjydb('comment')
->where('org_id',$this->bjOrgId)
->where('create_time','>=',$startTime)
->where('create_time','<=',$overTime)
->sum('score');
}elseif ($v['id'] == 26){
$orgList[$k]['count'] = xcydb('comment')
->where('org_id',$this->xcOrgId)
->where('create_time','>=',$startTime)
->where('create_time','<=',$overTime)
->sum('score');
}else{
$orgList[$k]['count'] = Db::name('comment')
->where('org_id',$v['id'])
->where('create_time','>=',$startTime)
->where('create_time','<=',$overTime)
->sum('score');
}
}
$list = list_sort_by($orgList,'count','desc');
$curTop = 1;
$curNums = 0;
foreach ($list as $k=>$v){
if($v['id'] == $this->orgId){
$curTop = $k+1;
$curNums = $v['count'];
}
}
$data = [
'my'=>['top'=>$curTop,'nums'=>$curNums],
'jn'=>['top'=>2,'nums'=>4.6],
];
HelpHander::success($data);
}
//任务数据总览
public function taskList(){
$mode = input('mode/d',3);
if(!in_array($mode,[1,2,3,4])){
HelpHander::error('参数错误');
}
if($this->orgId == 3){
$data = [];
$header = ['状态', '类型', '始发地', '目的地', '需求时间', '执行人', '派工时间', '接收时间'];
if($mode == 5){
$header = ['状态', '订单号', '类型', '护工', '下单时间'];
$lists = Db::name('ph_orders')
->where('org_id',$this->orgId)
->where('status','in',[1,2])
->order('id desc')
->field('id,sn,cate_id,status,create_time')
->limit(20)
->select();
foreach ($lists as $k=>$v){
$cate = Db::name('cate')->where('id',$v['cate_id'])->value('title');
$stxt = '新订单';
$users = '';
if($v['status'] == 2){
$stxt = '服务中';
$unames = Db::name('ph_todo')
->alias('t')
->join('worker w','t.worker_id = w.id')
->join('user u','u.id = w.user_id')
->where('t.order_id',$v['id'])
->where('t.status',1)
->column('real_name');
$users = $unames?implode(',',$unames):'';
}
$data[] = [$stxt,$v['sn'],$cate,$users,$v['create_time']];
}
}else{
if($mode == 1){
$header = ['状态', '科室', '报修事项', '内容', '下单时间'];
}else if($mode == 2||$mode == 4){
$header = ['状态', '科室', '内容', '下单时间'];
}
$lists = gtspdb('orders')
->where('ORG_ID',$this->spOrgId)
->where('CURR_ORDER_MODE','in',[1,5])
->where('WORK_TYPE_MODE',$mode)
->where('DEL_REF',0)
->order('ORDER_ID DESC')
->limit(20)
->field('ORDER_ID,CURR_ORDER_MODE,CREATTE_TIME,SEND_TIME,CONTENT,DEP_ID')
->select();
foreach ($lists as $k=>$v){
$dep = gtspdb('org')->where('ORG_ID',$v['DEP_ID'])->value('NAME');
$status = gtspdb('order_mode')->where('ORDER_MODE',$v['CURR_ORDER_MODE'])->value('OUT_CONTENT');
if($mode == 1){ // 报修
$type = gtspdb('order_repair')
->alias('or')
->leftJoin('order_type ot','ot.ORDER_TYPE_ID = or.TYPE_ID')
->where('or.ORDER_ID',$v['ORDER_ID'])
->value('NAME');
$data[] = [$status,$dep,$type?$type:'',$v['CONTENT'],$v['CREATTE_TIME']];
}else if($mode == 3){ //运送
$convey = gtspdb('order_convey')
->alias('oc')
->join('convey_cate cc','cc.ID = oc.TYPE')
->where('oc.ORDER_ID',$v['ORDER_ID'])
->field('oc.*,cc.NAME as cate_title')
->find();
$sa = gtspdb('address')->where('ADDRESS_ID',$convey['START'])->find();
$sa1 = $ea1 = '';
if($sa){
$sa1 = gtspdb('address')->where('PARENT_ID',$sa['ADDRESS_ID'])->value('NAME');
}
$start = $sa1.$sa['NAME'];
$ea = gtspdb('address')->where('ADDRESS_ID',$convey['END'])->find();
if($ea){
$ea1 = gtspdb('address')->where('PARENT_ID',$sa['ADDRESS_ID'])->value('NAME');
}
$end = $ea1.$ea['NAME'];
$todos = gtspdb('todo')
->alias('t')
->join('user u','u.USER_ID = t.TO_USER_ID')
->where('t.ORDER_ID',$v['ORDER_ID'])
->where('t.DEL_REF',0)
->where('t.TODO_MODE','in',[1,2,3])
->field('t.CONFIRM_TIME,u.REAL_NAME')
->select();
$todos = $todos?$todos:[];
$unames = [];
$confirm = '';
foreach ($todos as $tk=>$tv){
$unames[] = $tv['REAL_NAME'];
if(!$confirm){
$confirm = $tv['CONFIRM_TIME'];
}
}
$un = $unames?implode(',',$unames):'';
$send = $v['SEND_TIME']?date('H:i',strtotime($v['SEND_TIME'])):'';
$xq = date('H:i',strtotime($convey['XQ_TIME']));
$confirm = $confirm?date('H:i',strtotime($confirm)):'';
$data[] = [$status,$convey['cate_title'],$start,$end,$xq,$un,$send,$confirm];
}else{ // 保洁,隐患预警
$data[] = [$status,$dep,$v['CONTENT'],$v['CREATTE_TIME']];
}
}
}
}elseif ($this->orgId == 24){
$data = [];
$header = ['状态', '类型', '始发地', '目的地', '需求时间', '执行人', '派工时间', '接收时间'];
if($mode == 1){
$header = ['状态', '科室', '报修事项', '内容', '下单时间'];
}else if($mode == 2||$mode == 4){
$header = ['状态', '科室', '内容', '下单时间'];
}
$lists = bjydb('orders')
->where('org_id',$this->bjOrgId)
->where('order_mode','in',[1,4])
->where('work_type_mode',$mode)
->where('del',0)
->order('id desc')
->limit(20)
->field('id,order_mode,create_time,send_time,content,dep_id')
->select();
foreach ($lists as $k=>$v){
$dep = bjydb('dep')->where('id',$v['dep_id'])->value('title');
$status = bjydb('order_mode')->where('id',$v['order_mode'])->value('out_content');
if($mode == 1){ // 报修
$type = bjydb('order_repair')
->alias('or')
->leftJoin('order_type ot','ot.id = or.type_id')
->where('or.order_id',$v['id'])
->value('title');
$data[] = [$status,$dep,$type?$type:'',$v['content'],$v['create_time']];
}else if($mode == 3){ //运送
$convey = bjydb('order_convey')
->alias('oc')
->join('convey_cate cc','cc.id = oc.type')
->where('oc.order_id',$v['id'])
->field('oc.*,cc.title as cate_title')
->find();
$start = bjydb('address')->where('id',$convey['start'])->value('title');
$end = bjydb('address')->where('id',$convey['end'])->value('title');
$todos = bjydb('todo')
->alias('t')
->join('user u','u.id = t.to_user_id')
->where('t.order_id',$v['id'])
->where('t.del',0)
->where('t.todo_mode','in',[1,2,3])
->field('t.confirm_time,u.real_name')
->select();
$todos = $todos?$todos:[];
$unames = [];
$confirm = '';
foreach ($todos as $tk=>$tv){
$unames[] = $tv['real_name'];
if(!$confirm){
$confirm = $tv['confirm_time'];
}
}
$un = $unames?implode(',',$unames):'';
$send = $v['send_time']?date('H:i',strtotime($v['send_time'])):'';
$xq = date('H:i',strtotime($convey['xq_time']));
$confirm = $confirm?date('H:i',strtotime($confirm)):'';
$data[] = [$status,$convey['cate_title'],$start,$end,$xq,$un,$send,$confirm];
}else{ // 保洁,隐患预警
$data[] = [$status,$dep,$v['content'],$v['create_time']];
}
}
}elseif ($this->orgId == 26){
$data = [];
$header = ['状态', '类型', '始发地', '目的地', '需求时间', '执行人', '派工时间', '接收时间'];
if($mode == 1){
$header = ['状态', '科室', '报修事项', '内容', '下单时间'];
}else if($mode == 2||$mode == 4){
$header = ['状态', '科室', '内容', '下单时间'];
}
$lists = xcydb('orders')
->where('org_id',$this->xcOrgId)
->where('order_mode','in',[1,4])
->where('work_type_mode',$mode)
->where('del',0)
->order('id desc')
->limit(20)
->field('id,order_mode,create_time,send_time,content,dep_id')
->select();
foreach ($lists as $k=>$v){
$dep = xcydb('dep')->where('id',$v['dep_id'])->value('title');
$status = xcydb('order_mode')->where('id',$v['order_mode'])->value('out_content');
if($mode == 1){ // 报修
$type = xcydb('order_repair')
->alias('or')
->leftJoin('order_type ot','ot.id = or.type_id')
->where('or.order_id',$v['id'])
->value('title');
$data[] = [$status,$dep,$type?$type:'',$v['content'],$v['create_time']];
}else if($mode == 3){ //运送
$convey = xcydb('order_convey')
->alias('oc')
->join('convey_cate cc','cc.id = oc.type')
->where('oc.order_id',$v['id'])
->field('oc.*,cc.title as cate_title')
->find();
$start = xcydb('address')->where('id',$convey['start'])->value('title');
$end = xcydb('address')->where('id',$convey['end'])->value('title');
$todos = xcydb('todo')
->alias('t')
->join('user u','u.id = t.to_user_id')
->where('t.order_id',$v['id'])
->where('t.del',0)
->where('t.todo_mode','in',[1,2,3])
->field('t.confirm_time,u.real_name')
->select();
$todos = $todos?$todos:[];
$unames = [];
$confirm = '';
foreach ($todos as $tk=>$tv){
$unames[] = $tv['real_name'];
if(!$confirm){
$confirm = $tv['confirm_time'];
}
}
$un = $unames?implode(',',$unames):'';
$send = $v['send_time']?date('H:i',strtotime($v['send_time'])):'';
$xq = date('H:i',strtotime($convey['xq_time']));
$confirm = $confirm?date('H:i',strtotime($confirm)):'';
$data[] = [$status,$convey['cate_title'],$start,$end,$xq,$un,$send,$confirm];
}else{ // 保洁,隐患预警
$data[] = [$status,$dep,$v['content'],$v['create_time']];
}
}
}else{
$data = [];
$header = ['状态', '类型', '始发地', '目的地', '需求时间', '执行人', '派工时间', '接收时间'];
if($mode == 5){
$header = ['状态', '订单号', '类型', '护工', '下单时间'];
$lists = Db::name('ph_orders')
->where('org_id',$this->orgId)
->where('status','in',[1,2])
->order('id desc')
->field('id,sn,cate_id,status,create_time')
->limit(20)
->select();
foreach ($lists as $k=>$v){
$cate = Db::name('cate')->where('id',$v['cate_id'])->value('title');
$stxt = '新订单';
$users = '';
if($v['status'] == 2){
$stxt = '服务中';
$unames = Db::name('ph_todo')
->alias('t')
->join('worker w','t.worker_id = w.id')
->join('user u','u.id = w.user_id')
->where('t.order_id',$v['id'])
->where('t.status',1)
->column('real_name');
$users = $unames?implode(',',$unames):'';
}
$data[] = [$stxt,$v['sn'],$cate,$users,$v['create_time']];
}
}else{
if($mode == 1){
$header = ['状态', '科室', '报修事项', '内容', '下单时间'];
}else if($mode == 2||$mode == 4){
$header = ['状态', '科室', '内容', '下单时间'];
}
$lists = Db::name('orders')
->where('org_id',$this->orgId)
->where('order_mode','in',[1,4])
->where('work_type_mode',$mode)
->where('del',0)
->order('id desc')
->limit(20)
->field('id,order_mode,create_time,send_time,content,dep_id')
->select();
foreach ($lists as $k=>$v){
$dep = Db::name('dep')->where('id',$v['dep_id'])->value('title');
$status = Db::name('order_mode')->where('id',$v['order_mode'])->value('out_content');
if($mode == 1){ // 报修
$type = Db::name('order_repair')
->alias('or')
->leftJoin('order_type ot','ot.id = or.type_id')
->where('or.order_id',$v['id'])
->value('title');
$data[] = [$status,$dep,$type?$type:'',$v['content'],$v['create_time']];
}else if($mode == 3){ //运送
$convey = Db::name('order_convey')
->alias('oc')
->join('convey_cate cc','cc.id = oc.type')
->where('oc.order_id',$v['id'])
->field('oc.*,cc.title as cate_title')
->find();
$start = Db::name('address')->where('id',$convey['start'])->value('title');
$end = Db::name('address')->where('id',$convey['end'])->value('title');
$todos = Db::name('todo')
->alias('t')
->join('user u','u.id = t.to_user_id')
->where('t.order_id',$v['id'])
->where('t.del',0)
->where('t.todo_mode','in',[1,2,3])
->field('t.confirm_time,u.real_name')
->select();
$todos = $todos?$todos:[];
$unames = [];
$confirm = '';
foreach ($todos as $tk=>$tv){
$unames[] = $tv['real_name'];
if(!$confirm){
$confirm = $tv['confirm_time'];
}
}
$un = $unames?implode(',',$unames):'';
$send = $v['send_time']?date('H:i',strtotime($v['send_time'])):'';
$xq = date('H:i',strtotime($convey['xq_time']));
$confirm = $confirm?date('H:i',strtotime($confirm)):'';
$data[] = [$status,$convey['cate_title'],$start,$end,$xq,$un,$send,$confirm];
}else{ // 保洁,隐患预警
$data[] = [$status,$dep,$v['content'],$v['create_time']];
}
}
}
}
HelpHander::success(['data'=>$data,'header'=>$header]);
}
public function wasteRecordList(){
$date = date('Ymd');
$edate = date("Ymd",strtotime("-1 months",strtotime($date)));
if($this->orgId == 3){
$addr = gtspdb('waste_device')
->field('WASTE_DEVICE_ID,TITLE')
->where('DEL_REF',0)
->where('ENABLE',1)
->where('ORG_ID',$this->spOrgId)
->select();
foreach ($addr as $k=>$v){
$nums1 = gtspdb('waste_record')
->where('CREATE_YYYYMMDD',$date)
->where('WASTE_DEVICE_ID',$v['WASTE_DEVICE_ID'])
->sum('WEIGHT');
$addr[$k]['nums1'] = $nums1 ? round($nums1/1000,0) : 0;
$nums2 = gtspdb('waste_record')
->where('CREATE_YYYYMM','=',$edate)
->where('WASTE_DEVICE_ID',$v['WASTE_DEVICE_ID'])
->sum('WEIGHT');
$addr[$k]['nums2'] = $nums2 ? round($nums2/30/1000,0) : 0;
}
$lists =array_slice(list_sort_by($addr,'nums1','desc'),0,5) ;
$data1 = array_column($lists,'nums1');
$data2 = array_column($lists,'nums2');
$title = array_column($lists,'TITLE');
}elseif($this->orgId == 24){
$addr = bjydb('address')
->field('id,title')
->where('del',0)
->where('enable',1)
->where('org_id',$this->bjOrgId)
->where('','exp',Db::raw("FIND_IN_SET(7,types)"))
->select();
foreach ($addr as $k=>$v){
$nums1 = bjydb('waste_record')
->where('create_yyyymmdd','=',$date)
->where('waste_device_id',$v['id'])
->sum('weight');
$addr[$k]['nums1'] = $nums1 ? round($nums1/1000,0) : 0;
$nums2 = bjydb('waste_record')
->where('create_yyyymm','=',$edate)
->where('waste_device_id',$v['id'])
->sum('weight');
$addr[$k]['nums2'] = $nums2 ? round($nums2/30/1000,0) : 0;
}
$lists =array_slice(list_sort_by($addr,'nums1','desc'),0,5) ;
$data1 = array_column($lists,'nums1');
$data2 = array_column($lists,'nums2');
$title = array_column($lists,'title');
}elseif($this->orgId == 26){
$addr = xcydb('address')
->field('id,title')
->where('del',0)
->where('enable',1)
->where('org_id',$this->xcOrgId)
->where('','exp',Db::raw("FIND_IN_SET(7,types)"))
->select();
foreach ($addr as $k=>$v){
$nums1 = xcydb('waste_record')
->where('create_yyyymmdd','=',$date)
->where('waste_device_id',$v['id'])
->sum('weight');
$addr[$k]['nums1'] = $nums1 ? round($nums1/1000,0) : 0;
$nums2 = xcydb('waste_record')
->where('create_yyyymm','=',$edate)
->where('waste_device_id',$v['id'])
->sum('weight');
$addr[$k]['nums2'] = $nums2 ? round($nums2/30/1000,0) : 0;
}
$lists =array_slice(list_sort_by($addr,'nums1','desc'),0,5) ;
$data1 = array_column($lists,'nums1');
$data2 = array_column($lists,'nums2');
$title = array_column($lists,'title');
}else{
$addr = Db::name('address')
->field('id,title')
->where('del',0)
->where('enable',1)
->where('org_id',$this->orgId)
->where('','exp',Db::raw("FIND_IN_SET(7,types)"))
->select();
foreach ($addr as $k=>$v){
$nums1 = Db::name('waste_record')
->where('create_yyyymmdd','=',$date)
->where('waste_device_id',$v['id'])
->sum('weight');
$addr[$k]['nums1'] = $nums1 ? round($nums1/1000,0) : 0;
$nums2 = Db::name('waste_record')
->where('create_yyyymm','=',$edate)
->where('waste_device_id',$v['id'])
->sum('weight');
$addr[$k]['nums2'] = $nums2 ? round($nums2/30/1000,0) : 0;
}
$lists =array_slice(list_sort_by($addr,'nums1','desc'),0,5) ;
$data1 = array_column($lists,'nums1');
$data2 = array_column($lists,'nums2');
$title = array_column($lists,'title');
}
$data = [
'data1'=>$data1,
'data2'=>$data2,
'title'=>$title,
];
HelpHander::success($data);
}
// 巡更任务数据统计 当天及30天异常数量
public function addrRecord(){
//先取30内的巡更地点
$curDay = date('Ymd');
$start = date('Ymd',strtotime(date('Y-m-d')) - 29*24*60*60);
if($this->orgId == 3||$this->orgId == 26){
$lists = gtspdb('patrol_record')
->alias('pr')
->join('patrol_addr a','a.PATROL_ADDR_ID = pr.PATROL_ADDR_ID')
->where('pr.ORG_ID',$this->spOrgId)
->where('pr.PATROL_MODE',4)
->where('pr.CREATE_YYYYMMDD','<=',$curDay)
->where('pr.CREATE_YYYYMMDD','>=',$start)
->field('a.PATROL_ADDR_ID,a.TITLE')
->group('pr.PATROL_ADDR_ID')
->distinct(true)
->select();
$titles = [];
$y1 = [];
$y2 = [];
foreach ($lists as $k=>$v){
$titles[] = mb_substr($v['TITLE'],0,4).'..';
$count1 = gtspdb('patrol_record')
->where('ORG_ID',$this->spOrgId)
->where('PATROL_MODE',4)
->where('CREATE_YYYYMMDD','=',$curDay)
->where('PATROL_ADDR_ID','=',$v['PATROL_ADDR_ID'])
->count();
$y1[] = $count1;
$count2 = gtspdb('patrol_record')
->where('ORG_ID',$this->spOrgId)
->where('PATROL_MODE',4)
->where('IS_NORMAL',1)
->where('CREATE_YYYYMMDD','<=',$curDay)
->where('CREATE_YYYYMMDD','>=',$start)
->where('PATROL_ADDR_ID','=',$v['PATROL_ADDR_ID'])
->count();
$y2[] = $count2;
}
}elseif($this->orgId == 24){
$lists = bjydb('patrol_record')
->alias('pr')
->join('address a','a.id = pr.patrol_addr_id')
->where('pr.org_id',$this->bjOrgId)
->where('pr.patrol_mode',1)
->where('pr.create_yyyymmdd','<=',$curDay)
->where('pr.create_yyyymmdd','>=',$start)
->field('a.id,a.title')
->group('pr.patrol_addr_id')
->distinct(true)
->select();
$titles = [];
$y1 = [];
$y2 = [];
foreach ($lists as $k=>$v){
$titles[] = $v['title'];
$count1 = bjydb('patrol_record')
->where('org_id',$this->bjOrgId)
->where('patrol_mode',1)
->where('create_yyyymmdd','=',$curDay)
->where('patrol_addr_id','=',$v['id'])
->count();
$y1[] = $count1;
$count2 = bjydb('patrol_record')
->where('org_id',$this->bjOrgId)
->where('patrol_mode',1)
->where('is_normal',1)
->where('create_yyyymmdd','<=',$curDay)
->where('create_yyyymmdd','>=',$start)
->where('patrol_addr_id','=',$v['id'])
->count();
$y2[] = $count2;
}
}else{
$lists = Db::name('patrol_record')
->alias('pr')
->join('address a','a.id = pr.patrol_addr_id')
->where('pr.org_id',$this->orgId)
->where('pr.patrol_mode',1)
->where('pr.create_yyyymmdd','<=',$curDay)
->where('pr.create_yyyymmdd','>=',$start)
->field('a.id,a.title')
->group('pr.patrol_addr_id')
->distinct(true)
->select();
$titles = [];
$y1 = [];
$y2 = [];
foreach ($lists as $k=>$v){
$titles[] = $v['title'];
$count1 = Db::name('patrol_record')
->where('org_id',$this->orgId)
->where('patrol_mode',1)
->where('create_yyyymmdd','=',$curDay)
->where('patrol_addr_id','=',$v['id'])
->count();
$y1[] = $count1;
$count2 = Db::name('patrol_record')
->where('org_id',$this->orgId)
->where('patrol_mode',1)
->where('is_normal',1)
->where('create_yyyymmdd','<=',$curDay)
->where('create_yyyymmdd','>=',$start)
->where('patrol_addr_id','=',$v['id'])
->count();
$y2[] = $count2;
}
}
HelpHander::success(['titles' => $titles,'y1' => $y1,'y2' => $y2]);
}
//巡查图片
public function patrolImg(){
if($this->orgId == 3||$this->orgId == 26){
$data = gtspdb('patrol_record')
->where('IMAGES','<>','')
->where('ORG_ID',$this->spOrgId)
->limit(20)
->order('PATROL_RECORD_ID desc')
->select();
foreach ($data as $k=>$v){
$img = explode(',',$v['IMAGES']);
if($img){
$data[$k]['images'] = $img[0];
}
}
}elseif($this->orgId == 24){
$data = bjydb('patrol_record')
->where('images','<>','')
->where('org_id',$this->bjOrgId)
->limit(20)
->order('id desc')
->select();
foreach ($data as $k=>$v){
$img = explode(',',$v['images']);
if($img){
$data[$k]['images'] = $img[0];
}
}
}else{
$data = Db::name('patrol_record')
->where('images','<>','')
->where('org_id',$this->orgId)
->limit(20)
->order('id desc')
->select();
foreach ($data as $k=>$v){
$img = explode(',',$v['images']);
if($img){
$data[$k]['images'] = $img[0];
}
}
}
if(count($data)>3){
$key = array_rand($data,4);
$list[] = $data[$key[0]];
$list[] = $data[$key[1]];
$list[] = $data[$key[2]];
$list[] = $data[$key[3]];
}
$eList = isset($list)?$list:$data;
HelpHander::success($eList);
}
public function patrolRecordList(){
$dlist = [
date('Y-m-d',strtotime('-6 days')),
date('Y-m-d',strtotime('-5 days')),
date('Y-m-d',strtotime('-4 days')),
date('Y-m-d',strtotime('-3 days')),
date('Y-m-d',strtotime('-2 days')),
date('Y-m-d',strtotime('-1 days')),
date('Y-m-d'),
];
$date = [];
$yCount = [];
$y2Count = [];
$y3Count = [];
$y4Count = [];
if($this->orgId == 3){
foreach ($dlist as $k=>$v){
$tt = date('Ymd',strtotime($v));
$count = gtspdb('patrol_record')
->where('ORG_ID',$this->spOrgId)
->where('CREATE_YYYYMMDD',$tt)
->where('PATROL_MODE',1)
->count();
$count2 = gtspdb('patrol_record')
->where('ORG_ID',$this->spOrgId)
->where('CREATE_YYYYMMDD',$tt)
->where('PATROL_MODE',2)
->count();
$count3 = gtspdb('patrol_record')
->where('ORG_ID',$this->spOrgId)
->where('CREATE_YYYYMMDD',$tt)
->where('PATROL_MODE',3)
->count();
$count4 = gtspdb('patrol_record')
->where('ORG_ID',$this->spOrgId)
->where('CREATE_YYYYMMDD',$tt)
->where('PATROL_MODE',4)
->count();
$date[] = date('m-d',strtotime($v));
$yCount[] = $count;
$y2Count[] = $count2;
$y3Count[] = $count3;
$y4Count[] = $count4;
}
}elseif($this->orgId == 24||$this->orgId == 26){
foreach ($dlist as $k=>$v){
$tt = date('Ymd',strtotime($v));
$count = bjydb('patrol_record')
->where('org_id',$this->bjOrgId)
->where('create_yyyymmdd',$tt)
->where('patrol_mode',1)
->count();
$count2 = bjydb('patrol_record')
->where('org_id',$this->bjOrgId)
->where('create_yyyymmdd',$tt)
->where('patrol_mode',2)
->count();
$count3 = bjydb('patrol_record')
->where('org_id',$this->bjOrgId)
->where('create_yyyymmdd',$tt)
->where('patrol_mode',3)
->count();
$count4 = bjydb('patrol_record')
->where('org_id',$this->bjOrgId)
->where('create_yyyymmdd',$tt)
->where('patrol_mode',4)
->count();
$date[] = date('m-d',strtotime($v));
$yCount[] = $count;
$y2Count[] = $count2;
$y3Count[] = $count3;
$y4Count[] = $count4;
}
}else{
foreach ($dlist as $k=>$v){
$tt = date('Ymd',strtotime($v));
$count = Db::name('patrol_record')
->where('org_id',$this->orgId)
->where('create_yyyymmdd',$tt)
->where('patrol_mode',1)
->count();
$count2 =Db::name('patrol_record')
->where('org_id',$this->orgId)
->where('create_yyyymmdd',$tt)
->where('patrol_mode',2)
->count();
$count3 =Db::name('patrol_record')
->where('org_id',$this->orgId)
->where('create_yyyymmdd',$tt)
->where('patrol_mode',3)
->count();
$count4 =Db::name('patrol_record')
->where('org_id',$this->orgId)
->where('create_yyyymmdd',$tt)
->where('patrol_mode',4)
->count();
$date[] = date('m-d',strtotime($v));
$yCount[] = $count;
$y2Count[] = $count2;
$y3Count[] = $count3;
$y4Count[] = $count4;
}
}
$data = [
'date'=>$date,
'count1'=>$yCount,
'count2'=>$y2Count,
'count3'=>$y3Count,
'count4'=>$y4Count,
];
HelpHander::success($data);
}
public function deviceNhImg(){
$host = request()->domain(true);
$img = [
$host.'/screen/images/nh1.png',
$host.'/screen/images/nh2.png',
$host.'/screen/images/nh3.png',
$host.'/screen/images/nh4.png',
$host.'/screen/images/nh5.png',
$host.'/screen/images/nh6.png',
];
if(count($img)>5){
$key = array_rand($img,6);
$list[] = $img[$key[0]];
$list[] = $img[$key[1]];
$list[] = $img[$key[2]];
$list[] = $img[$key[3]];
$list[] = $img[$key[4]];
$list[] = $img[$key[5]];
}
$eList = isset($list)?$list:$img;
HelpHander::success($eList);
}
public function energyList(){
// $day = date('d');
// $dayList = [];
// for ($i=1;$i<=$day;$i++){
// $dayList[] = $i;
// }
// $count1 = $count2 = [];
// foreach ($dayList as $k=>$v){
//
// $count1[] = 0;
// $count2[] = 0;
// }
$dlist = [
date('Y-m-d',strtotime('-6 days')),
date('Y-m-d',strtotime('-5 days')),
date('Y-m-d',strtotime('-4 days')),
date('Y-m-d',strtotime('-3 days')),
date('Y-m-d',strtotime('-2 days')),
date('Y-m-d',strtotime('-1 days')),
date('Y-m-d'),
];
$title = [];
foreach ($dlist as $k=>$v){
$title[] = date('m-d',strtotime($v));
}
$data = [
'date'=>$title,
'count1'=>[5,7,8,6,4,9,3],
'count2'=>[7,4,4,7,4,5,7],
];
HelpHander::success($data);
}
// 获取所有下级的id集合
public function getAllNextId($id,$data=[]){
$pids = DB::name('org')->where('parent_id',$id)->column('id');
if(count($pids)>0){
foreach($pids as $v){
$data[] = $v;
$data = $this->getAllNextId($v,$data); //注意写$data 返回给上级
}
}
if(count($data)>0){
return $data;
}else{
return [];
}
}
public function patrolList(){
$orgId = $this->orgId;
// $orgId = 23;
$lists = Db::name('patrol_task')
->where('org_id',$orgId)
->where('del',0)
->where('start_time','<=',date('Y-m-d H:i:s',time()+12*60*60))
->field('id,title,status')
->order('start_time desc,id desc')
->limit(20)
->select();
$lists = $lists?$lists:[];
$data = [];
foreach ($lists as $k=>$v){
if($v['status'] == 0){ //0=未执行 1=执行中 2=已完成 3=未完成 5=中断 6=已关闭
$status = "未执行";
}else if($v['status'] == 1){
$status = "执行中";
}else if($v['status'] == 2){
$status = "已完成";
}else if($v['status'] == 3){
$status = "未完成";
}else if($v['status'] == 5){
$status = "中断";
}else{
$status = "已关闭";
}
$users = Db::name('patrol_task_user')
->alias('a')
->join('user u','u.id = a.user_id')
->where('a.patrol_task_id',$v['id'])
->column('real_name');
$arr = [$v['title'],$status,$users?implode(',',$users):''];
$data[] = $arr;
}
HelpHander::success($data);
}
public function reservedList(){
$lists = Db::name('dinner_reserved')
->where('org_id',$this->orgId)
->where('del',0)
->field('type,title,start_time')
->order('start_time desc,id desc')
->limit(20)
->select();
$lists = $lists?$lists:[];
$data = [];
foreach ($lists as $k=>$v){
$status = "";
if($v['type'] == 1){ //1=早餐 2=午餐 3=晚餐
$status = "早餐";
}else if($v['type'] == 2){
$status = "午餐";
}else if($v['type'] == 3){
$status = "晚餐";
}
$arr = [$status,$v['title'],$v['start_time']];
$data[] = $arr;
}
HelpHander::success($data);
}
public function visitorList(){
$lists = Db::name('visitor_order')
->where('org_id',$this->orgId)
->where('del',0)
->where('type',2)
->field('name,access,create_time')
->order('id desc')
->limit(20)
->select();
$lists = $lists?$lists:[];
$data = [];
foreach ($lists as $k=>$v){
$arr = [$v['name'],$v['access'],$v['create_time']];
$data[] = $arr;
}
HelpHander::success($data);
}
public function dailyList(){
// $zdid = -30;
// $orgId = 23;
// if($this->orgId == $zdid){
// $orgId = $this->orgId;
// }
$orgId = $this->orgId;
$map[] = ['enable', '=', 1];
$map[] = ['org_id', '=', $orgId];
$map[] = ['del', '=', 0];
$lists = Db::name('daily')->where($map)->field('id,title')->order('id desc')->select();
// if($this->orgId == $zdid){
// $lists = Db::name('daily')->where($map)->field('id,title')->order('id desc')->select();
// }else{
// $lists = xcydb('daily')->where($map)->field('id,title')->order('id desc')->select();
// }
$hours = model('Daily')->getTimeDaily($this->orgId);
foreach ($lists as $k=>$v){
$m = [];
$m[] = ['org_id','=',$orgId];
$m[] = ['daily_id','=',$v['id']];
$m[] = ['create_time','>=',$hours['start']];
$m[] = ['create_time','<',$hours['end']];
$count = Db::name('daily_record')->where($m)->count();
// if($this->orgId == $zdid){
// $count = Db::name('daily_record')->where($m)->count();
// }else{
// $count = xcydb('daily_record')->where($m)->count();
// }
$lists[$k]['count'] = $count;
}
$lists = list_sort_by($lists,'count','desc');
if(count($lists) > 12){
$nlist = [];
foreach ($lists as $k=>$v){
if(count($nlist) < 12){
$nlist[] = $v;
}
}
HelpHander::success($nlist);
}else{
HelpHander::success($lists);
}
}
public function elevatorList(){
$this->orgId = 3;
$info = Db::name('elevator_record')->where('org_id',$this->orgId)->field('id,img,type,eid,create_time')->order('id desc')->find();
if($info){
$title = Db::name('elevator')->where('id',$info['eid'])->value('title');
$info['title'] = $title;
}else{
$info = [
'title' => '',
'type' => '',
'createTime' => '',
'img' => ''
];
}
HelpHander::success($info);
}
public function tossList(){
$this->orgId = 3;
$info = Db::name('toss')->where('org_id',$this->orgId)->field('id,img,type,address as title,create_time')->order('id desc')->find();
if(!$info){
$info = [
'title' => '',
'type' => '',
'createTime' => '',
'img' => ''
];
}
HelpHander::success($info);
}
public function parkList(){
$this->orgId = 3;
$info = Db::name('park_ill')->where('org_id',$this->orgId)->field('id,img,plate_sn as sn,address,create_time,video,order_id')->order('id desc')->find();
if(!$info){
$info = [
'sn' => '',
'address' => '',
'createTime' => '',
'img' => '',
'video' => '',
'orderId' => 0
];
}
HelpHander::success($info);
}
public function getIcons(){
$icons1 = [
[
'title' => '工程
报修',
'url' => config('app.screen_url').'/home?token='.think_encrypt('6|'.$this->orgId.'|'.time()),
'count' => 1,
],
[
'title' => '投诉
处理',
'url' => '',
'count' => 1,
],
[
'title' => '日常
工作',
'url' => config('app.screen_url').'/home?token='.think_encrypt('2|'.$this->orgId.'|'.time()),
'count' => 1,
],
[
'title' => '中央
运送',
'url' => config('app.screen_url').'/home?token='.think_encrypt('3|'.$this->orgId.'|'.time()),
'count' => 1,
],
[
'title' => '订单
管理',
'url' => '',
'count' => 1,
],
[
'title' => '隐患
上报',
'url' => '',
'count' => 1,
],
[
'title' => '会议室
预订',
'url' => '',
'count' => 2,
],
[
'title' => '绿化
养护',
'url' => '',
'count' => 1,
],
];
$icons2 = [
[
'title' => '设备
台账',
'url' => '',
'count' => 1,
],
[
'title' => '品质
检查',
'url' => '',
'count' => 1,
],
[
'title' => '巡更
巡检',
'url' => config('app.screen_url').'/home?token='.think_encrypt('2|'.$this->orgId.'|'.time()),
'count' => 1,
],
[
'title' => '专项
保洁',
'url' => '',
'count' => 1,
],
[
'title' => '人员
考勤',
'url' => '',
'count' => 1,
],
[
'title' => '满意度
调查',
'url' => '',
'count' => 2,
],
[
'title' => '安全
保卫',
'url' => '',
'count' => 1,
],
[
'title' => '智慧
抢单',
'url' => '',
'count' => 1,
],
[
'title' => '垃圾
分类',
'url' => '',
'count' => 1,
],
];
$icons3 = [
[
'title' => '医废
管理',
'url' => config('app.screen_url').'/home?token='.think_encrypt('4|'.$this->orgId.'|'.time()),
'count' => 1,
],
[
'title' => '医疗
陪护',
'url' => '',
'count' => 1,
],
[
'title' => ' 线上
订餐',
'url' => '',
'count' => 1,
],
[
'title' => '设备
监控',
'url' => '',
'count' => 1,
],
[
'title' => '耗材
管理',
'url' => '',
'count' => 1,
],
[
'title' => '中央运送
HIS/LIS对接',
'url' => '',
'count' => 3,
],
[
'title' => '医废监管
平台对接',
'url' => '',
'count' => 4,
],
];
HelpHander::success(['icons1'=>$icons1,'icons2'=>$icons2,'icons3'=>$icons3]);
}
public function canteen(){
// $weeks = [['product', '进场人次', '出场人次']];
// for ($i=7;$i>0;$i--){
// $day = date('Y-m-d',time() - $i*24*60*60);
// $weeks[] = [$day,mt_rand(200,1000),mt_rand(300,1000)];
// }
// $data = [
// 'in' => 413,
// 'out' => 489,
// 'source' => $weeks
// ];
$weeks = [['product', '留样数']];
for ($i=7;$i>0;$i--){
$day = date('Y-m-d',time() - ($i-1)*24*60*60);
$kin = Db::name('dinner_reserved')->where('org_id',$this->orgId)->where('del',0)->where('start_time',$day)->count();
$weeks[] = [$day,$kin];
}
$in = Db::name('dinner_reserved')->where('org_id',$this->orgId)->where('del',0)->count();
$out = Db::name('dinner_health')->where('org_id',$this->orgId)->where('del',0)->where('enable',0)->where('end_time','<',date('Y-m-d'))->count();
$data = [
'in' => $in,
'out' => $out,
'source' => $weeks
];
HelpHander::success($data);
}
/**
* 任务列表
*/
public function threejsdata(){
$map[] = ['type','in',[1,2]];
$map[] = ['org_id','=',$this->orgId];
$lists = Db::name('task')->where($map)->order('start_time desc')->select();
$lists = $lists?$lists:[];
$news = [];
foreach ($lists as $k=>$v){
$arr = [
'id' => $v['id'],
'start_time' => $v['start_time'],
'cate' => 0,
'content' => '',
'cate_title' => '',
'user_name' => '',
];
$arr['user_name'] = Db::name('user')->where('id',$v['user_id'])->value('real_name');
if($v['type'] == 1){ // 订单
$order = Db::name('todo')->where('todo_mode','in',[1,2])->where('del',0)->where('id',$v['bus_id'])->find();
if(!$order || $order['work_type_mode'] == 2 || $order['work_type_mode'] == 4){
continue;
}
$arr['status'] = $order['todo_mode'] == 1?0:1;
if($order['work_type_mode'] == 1){ // 报修,检查是否有报修地点
$addressId = Db::name('order_repair')->where('order_id',$order['order_id'])->value('address_id');
$address = Db::name('address')->where('id',$addressId)->field('id,title,xyz')->find();
if(!$address){
continue;
}
$xyz = $address['xyz']?explode(',',$address['xyz']):[];
if(empty($xyz) || $xyz[0] == ''){
$address['xyz'] = [];
}else{
$address['xyz'] = $xyz;
}
$arr['cate'] = 1; // 报修
$arr['cate_title'] = '报修';
$arr['address'] = $address;
$arr['content'] = Db::name('orders')->where('id',$order['order_id'])->value('content');
}
if($order['work_type_mode'] == 3){ // 运送
$addr = Db::name('order_convey')->where('order_id',$order['order_id'])->find();
if(!$addr){
continue;
}
$start = Db::name('address')->where('id',$addr['start'])->field('id,title,xyz')->find();
$xyz = $start['xyz']?explode(',',$start['xyz']):[];
if(empty($xyz) || $xyz[0] == ''){
$start['xyz'] = [];
}else{
$start['xyz'] = $xyz;
}
$end = Db::name('address')->where('id',$addr['end'])->field('id,title,xyz')->find();
$xyz = $end['xyz']?explode(',',$end['xyz']):[];
if(empty($xyz) || $xyz[0] == ''){
$end['xyz'] = [];
}else{
$end['xyz'] = $xyz;
}
$cateTitle = Db::name('convey_cate')->where('id',$addr['type'])->value('title');
$arr['cate'] = 2; // 运送
$arr['cate_title'] = '运送';
$arr['start'] = $start;
$arr['end'] = $end;
$arr['content'] = '从'.$start['title'].'至'.$end['title'].'执行'.$cateTitle.'任务';
}
}else{ // 巡更
$ptask = Db::name('patrol_task')->where('status','in',[0,1])->where('del',0)->where('id',$v['bus_id'])->find();
if(!$ptask){
continue;
}
$arr['content'] = $ptask['title'];
$arr['status'] = $ptask['status'];
if($ptask['patrol_mode'] == 1){ // 巡更
$arr['cate'] = 3;
$arr['cate_title'] = '巡更';
}else if($ptask['patrol_mode'] == 2){ //巡视
$arr['cate'] = 4;
$arr['cate_title'] = '巡视';
}else if($ptask['patrol_mode'] == 3){ //巡查
$arr['cate'] = 5;
$arr['cate_title'] = '巡查';
}else{ // 巡检
$arr['cate'] = 6;
$arr['cate_title'] = '巡检';
}
$addrids = Db::name('patrol_task_addr')
->where('patrol_task_id',$ptask['id'])
->column('address_id');
$addrs = Db::name('address')->where('id','in',$addrids)->field('id,title,xyz')->select();
$addrs = $addrs?$addrs:[];
foreach ($addrs as $kk=>$vv){
$xyz = $vv['xyz']?explode(',',$vv['xyz']):[];
if(empty($xyz) || $xyz[0] == ''){
$addrs[$kk]['xyz'] = [];
}else{
$addrs[$kk]['xyz'] = $xyz;
}
}
$arr['addrs'] = $addrs;
}
$news[] = $arr;
}
$addrList = Db::name('convey_plan_record')->where('org_id',$this->orgId)->field('addr_id,count(*) as count')->group('addr_id')->distinct(true)->select();
$addrList = $addrList?$addrList:[];
$newaddrs = [];
foreach ($addrList as $k=>$v){
$title = Db::name('address')->where('id',$v['addr_id'])->value('title');
$newaddrs[] = [$title,$v['count']];
}
$data = [
'task' => $news,
'addrs' => $newaddrs
];
HelpHander::success($data);
}
}