| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241 | <?phpnamespace app\api\controller\screen;use app\hander\HelpHander;use think\Controller;use think\Db;use think\helper\Str;use think\Request;class Threelevel extends Controller{    private $orgId = 0; //组织id    private $title = '';    private $spOrgId = 5; //国天sp 厦门中山医院    private $bjOrgId = 11; //霸洁云 贵州省黔西市人民医院    private $xcOrgId = 18; //新城悦 嘉善县中医院    protected function initialize()    {        parent::initialize();        $dd = think_decrypt(input('orgId','','trim'));        if(!$dd){            HelpHander::error('参数错误1');        }        $dd = explode('|',$dd);        if(count($dd) != 2){            HelpHander::error('参数错误2');        }        $orgId = (int)$dd[0];        if($orgId < 1){            HelpHander::error('参数错误3');        }        $this->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 = '<img src="'.$host.'/screen/images/TOP1.png" width="20" >';                }elseif (isset($k) && $k==1){                    $top = '<img src="'.$host.'/screen/images/TOP2.png" width="20" >';                }elseif (isset($k) && $k==2){                    $top = '<img src="'.$host.'/screen/images/TOP3.png" width="20">';                }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 = '<img src="'.$host.'/screen/images/TOP1.png" width="20" >';                }elseif (isset($k) && $k==1){                    $top = '<img src="'.$host.'/screen/images/TOP2.png" width="20" >';                }elseif (isset($k) && $k==2){                    $top = '<img src="'.$host.'/screen/images/TOP3.png" width="20">';                }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 = '<img src="'.$host.'/screen/images/TOP1.png" width="20" >';                }elseif (isset($k) && $k==1){                    $top = '<img src="'.$host.'/screen/images/TOP2.png" width="20" >';                }elseif (isset($k) && $k==2){                    $top = '<img src="'.$host.'/screen/images/TOP3.png" width="20">';                }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 = '<img src="'.$host.'/screen/images/TOP1.png" width="20" >';                }elseif (isset($k) && $k==1){                    $top = '<img src="'.$host.'/screen/images/TOP2.png" width="20" >';                }elseif (isset($k) && $k==2){                    $top = '<img src="'.$host.'/screen/images/TOP3.png" width="20">';                }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' => '工程 <br> 报修',                'url' => config('app.screen_url').'/home?token='.think_encrypt('6|'.$this->orgId.'|'.time()),                'count' => 1,            ],            [                'title' => '投诉 <br> 处理',                'url' => '',                'count' => 1,            ],            [                'title' => '日常 <br> 工作',                'url' => config('app.screen_url').'/home?token='.think_encrypt('2|'.$this->orgId.'|'.time()),                'count' => 1,            ],            [                'title' => '中央 <br> 运送',                'url' => config('app.screen_url').'/home?token='.think_encrypt('3|'.$this->orgId.'|'.time()),                'count' => 1,            ],            [                'title' => '订单 <br> 管理',                'url' => '',                'count' => 1,            ],            [                'title' => '隐患 <br> 上报',                'url' => '',                'count' => 1,            ],            [                'title' => '会议室 <br> 预订',                'url' => '',                'count' => 2,            ],            [                'title' => '绿化 <br> 养护',                'url' => '',                'count' => 1,            ],        ];        $icons2 = [            [                'title' => '设备 <br> 台账',                'url' => '',                'count' => 1,            ],            [                'title' => '品质 <br> 检查',                'url' => '',                'count' => 1,            ],            [                'title' => '巡更 <br> 巡检',                'url' => config('app.screen_url').'/home?token='.think_encrypt('2|'.$this->orgId.'|'.time()),                'count' => 1,            ],            [                'title' => '专项 <br> 保洁',                'url' => '',                'count' => 1,            ],            [                'title' => '人员 <br> 考勤',                'url' => '',                'count' => 1,            ],            [                'title' => '满意度 <br> 调查',                'url' => '',                'count' => 2,            ],            [                'title' => '安全 <br> 保卫',                'url' => '',                'count' => 1,            ],            [                'title' => '智慧 <br> 抢单',                'url' => '',                'count' => 1,            ],            [                'title' => '垃圾 <br> 分类',                'url' => '',                'count' => 1,            ],        ];        $icons3 = [            [                'title' => '医废 <br> 管理',                'url' => config('app.screen_url').'/home?token='.think_encrypt('4|'.$this->orgId.'|'.time()),                'count' => 1,            ],            [                'title' => '医疗 <br> 陪护',                'url' => '',                'count' => 1,            ],            [                'title' => ' 线上 <br> 订餐',                'url' => '',                'count' => 1,            ],            [                'title' => '设备 <br> 监控',                'url' => '',                'count' => 1,            ],            [                'title' => '耗材 <br> 管理',                'url' => '',                'count' => 1,            ],            [                'title' => '中央运送 <br> HIS/LIS对接',                'url' => '',                'count' => 3,            ],            [                'title' => '医废监管 <br> 平台对接',                '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);    }}
 |