HomeController.php 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <?php
  2. namespace App\Community\Controllers;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\Order;
  5. use App\Models\Schedule;
  6. use App\Models\SchedulePeriod;
  7. use Encore\Admin\Controllers\Dashboard;
  8. use Encore\Admin\Facades\Admin;
  9. use Encore\Admin\Layout\Column;
  10. use Encore\Admin\Layout\Content;
  11. use Encore\Admin\Layout\Row;
  12. use Encore\Admin\Widgets\InfoBox;
  13. class HomeController extends Controller
  14. {
  15. public function index(){
  16. return redirect('/cdms/home');
  17. }
  18. public function home(Content $content)
  19. {
  20. if(!Admin::user()->inroles(['administrator','manager'])){
  21. return redirect('/cdms/notices');
  22. }
  23. return $content
  24. ->title('数据概况')
  25. ->description('社区段实时数据')
  26. ->row(function (Row $row){
  27. return $row->column(12,'<p style="font-family:Arial,Helvetica,sans-serif; font-size:1.2em; margin-top20px;vertical-align:middle; font-weight:normal ">服务数据</p>');
  28. })
  29. ->row(function (Row $row){
  30. $data = StatController::orderTotal();
  31. $row->column(3,new InfoBox('门诊订单总数(个)', 'users', 'aqua', '/cdms/orders', $data[0]));
  32. $row->column(3,new InfoBox('计免订单总数(个)', 'user', 'aqua', '/cdms/order_vaccines', $data[1]));
  33. $row->column(3,new InfoBox('儿保订单总数(个)', 'calendar-check-o', 'aqua', '/cdms/order_nurses', $data[2]));
  34. $row->column(3,new InfoBox('服务患者次数(次)', 'user', 'aqua', '/cdms/home', $data[3]));
  35. })
  36. ->row(function (Row $row){
  37. return $row->column(12,'<p style="font-family:Arial,Helvetica,sans-serif; font-size:1.2em; margin-top20px;vertical-align:middle; font-weight:normal ">门诊预约</p>');
  38. })
  39. ->row(function (Row $row){
  40. $data = StatController::clinc();
  41. $today = 'orderPatient[appoint_start_time][start]='.date('Y-m-d 00:00:00',time()).'&orderPatient[appoint_start_time][end]='.date('Y-m-d 00:00:00', strtotime('+1days'));
  42. $yersterday = 'orderPatient[appoint_start_time][start]='.date('Y-m-d 00:00:00',strtotime('-1 days')).'&orderPatient[appoint_start_time][end]='.date('Y-m-d 00:00:00', time());
  43. $row->column(3,new InfoBox('今日预约数量(人)', 'users', 'aqua', '/cdms/orders?'.$today, $data['today']));
  44. // $row->column(3,new InfoBox('疫苗种类(种)', 'eyedropper', 'aqua', '/cdms/home', $data['sum_num']));
  45. $row->column(3,new InfoBox('今日排班人数(人)', 'user', 'aqua', '/cdms/total_schedule?t=1', $data['docters']));
  46. $row->column(3,new InfoBox('昨日预约数量(人)', 'user', 'aqua', '/cdms/orders?'.$yersterday, $data['yesterday']));
  47. $row->column(3,new InfoBox('昨日接诊人数(人)', 'user', 'aqua', '#', $data['people']));
  48. })
  49. ->row(function (Row $row){
  50. return $row->column(12,'<p style="font-family:Arial,Helvetica,sans-serif; font-size:1.2em; margin-top20px;vertical-align:middle; font-weight:normal ">计免预约</p>');
  51. })
  52. ->row(function (Row $row){
  53. $data = StatController::vaccine();
  54. $today = 'appoint_start_time[start]='.date('Y-m-d 00:00:00',strtotime('today')).'&appoint_start_time[end]='.date('Y-m-d 00:00:00', strtotime('+1days'));
  55. $yersterday = 'appoint_start_time[start]='.date('Y-m-d 00:00:00',strtotime('-1 days'))
  56. .'&appoint_start_time[end]='.date('Y-m-d 00:00:00', time());
  57. $people = 'end_time[start]='.date('Y-m-d 00:00:00',strtotime('-1 days'))
  58. .'&end_time[end]='.date('Y-m-d 00:00:00', time());
  59. $tomorrow = 'appoint_start_time[start]='.date('Y-m-d 00:00:00',strtotime('+1 days'))
  60. .'&appoint_start_time[end]='.date('Y-m-d 00:00:00', strtotime('+2 days'));
  61. $row->column(3,new InfoBox('今日预约数量(人)', 'users', 'aqua', '/cdms/order_vaccines?'.$today, $data['today']));
  62. $row->column(3,new InfoBox('昨日预约数量(人)', 'user', 'aqua', '/cdms/order_vaccines?'.$yersterday, $data['yesterday']));
  63. $row->column(3,new InfoBox('昨日接种人数(人)', 'user', 'aqua', '/cdms/order_vaccines?status=4&'.$people, $data['people']));
  64. $row->column(3,new InfoBox('明日预约数量(人)', 'user', 'aqua', '/cdms/order_vaccines?'.$tomorrow, $data['tomorrow']));
  65. })
  66. ->row(function (Row $row){
  67. return $row->column(12,'<p style="font-family:Arial,Helvetica,sans-serif; font-size:1.2em; margin-top20px;vertical-align:middle; font-weight:normal ">儿保预约</p>');
  68. })
  69. ->row(function (Row $row){
  70. $data = StatController::nurse();
  71. $today = 'appoint_start_time[start]='.date('Y-m-d 00:00:00',time()).'&appoint_start_time[end]='.date('Y-m-d 00:00:00', strtotime('+1days'));
  72. $yersterday = 'appoint_start_time[start]='.date('Y-m-d 00:00:00',strtotime('-1 days'))
  73. .'&appoint_start_time[end]='.date('Y-m-d 00:00:00', time());
  74. $tommrow = 'appoint_start_time[start]='.date('Y-m-d 00:00:00',strtotime('+1 days'))
  75. .'&appoint_start_time[end]='.date('Y-m-d 00:00:00', strtotime('+2 days'));
  76. $people = 'end_time[start]='.date('Y-m-d 00:00:00',strtotime('-1 days'))
  77. .'&end_time[end]='.date('Y-m-d 00:00:00', time());
  78. $row->column(3,new InfoBox('今日预约数量(人)', 'users', 'aqua', '/cdms/order_nurses?'.$today, $data['today']));
  79. $row->column(3,new InfoBox('昨日预约数量(人)', 'user', 'aqua', '/cdms/order_nurses?'.$yersterday, $data['yesterday']));
  80. $row->column(3,new InfoBox('昨日接种人数(人)', 'user', 'aqua', '/cdms/order_nurses?orders[order_status]=4&'.$people, $data['people']));
  81. $row->column(3,new InfoBox('明日预约数量(人)', 'user', 'aqua', '/cdms/order_nurses?'.$tommrow, $data['tomorrow']));
  82. })
  83. ->row(function (Row $row){
  84. return $row->column(12,'<p style="font-family:Arial,Helvetica,sans-serif; font-size:1.2em; margin-top20px;vertical-align:middle; font-weight:normal ">疫苗库存概况</p>');
  85. })
  86. ->row(function (Row $row){
  87. $data = StatController::vaccineToal();
  88. $yersterday = 'appoint_start_time[start]='.date('Y-m-d 00:00:00',strtotime('-1 days'))
  89. .'&appoint_start_time[end]='.date('Y-m-d 00:00:00', time());
  90. $row->column(3,new InfoBox('疫苗总库存(支)', 'first-order', 'aqua', '/cdms/vaccines', $data['have_num']));
  91. $row->column(3,new InfoBox('疫苗库存告急(中)', 'first-order', 'aqua', '/cdms/vaccines', $data['less_num']));
  92. $row->column(3,new InfoBox('昨日接种消耗(支)', 'first-order', 'aqua', '/cdms/order_vaccines?order_status=4&'.$yersterday, $data['yesterday']));
  93. });
  94. }
  95. public function real_data()
  96. {
  97. $data = StatController::service();
  98. return view('cdms.real_data',compact('data'));
  99. }
  100. public function vaccine_data()
  101. {
  102. $data = StatController::vaccine();
  103. return view('cdms.vaccine_data',compact('data'));
  104. }
  105. public function nurse_data()
  106. {
  107. $data = StatController::nurse();
  108. return view('cdms.nurse_data',compact('data'));
  109. }
  110. public function schedule_data()
  111. {
  112. $data = StatController::schedule();
  113. return view('cdms.schedule_data',compact('data'));
  114. }
  115. public function order_detail()
  116. {
  117. $id = request('id');
  118. if(empty($id)){
  119. return redirect('/cdms/docter_chats');
  120. }
  121. $data = Order::where('id',$id)->with('orderPatient')->first();
  122. if(!empty($data->orderPatient->medical_imgs)){
  123. $data->orderPatient->medical_imgs = object_array(json_decode($data->orderPatient->medical_imgs ));
  124. } else {
  125. $data->orderPatient->medical_imgs = [];
  126. }
  127. $content = new Content();
  128. $status = Order::getStatus();
  129. $content->view('cdms.order_detail',compact('data','status'));
  130. return $content;
  131. }
  132. public function schedule(){
  133. $time = redirect('time');
  134. $time = '2020-12-07至2020-12-13';
  135. $data = sechedule_timeperiod();
  136. $org_id = Admin::user()->org_id;
  137. $where = [];
  138. if($org_id){
  139. $where['organization_id'] = $org_id;
  140. }
  141. if($time){
  142. } else {
  143. $where['schedule_date']=date('Y-m-d',strtotime('this week'));
  144. }
  145. Schedule::where($where)->pluck('id');
  146. }
  147. }