123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241 |
- <?php
- namespace 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);
- }
- }
|