HomeController.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  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::service();
  31. $row->column(3,new InfoBox('今日预约数量(人次)', 'users', 'aqua', '/cdms/home', $data['schedule_paitent']));
  32. $row->column(3,new InfoBox('今日排班(人)', 'calendar-check-o', 'aqua', '/cdms/home', $data['schedule_docter']));
  33. $row->column(3,new InfoBox('接诊患者(人次)', 'user', 'aqua', '/cdms/home', $data['paitent_num']));
  34. })
  35. ->row(function (Row $row){
  36. 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>');
  37. })
  38. ->row(function (Row $row){
  39. $data = StatController::vaccine();
  40. $row->column(3,new InfoBox('今日预约数量(人次)', 'users', 'aqua', '/cdms/home', $data['today_schedule']));
  41. // $row->column(3,new InfoBox('疫苗种类(种)', 'eyedropper', 'aqua', '/cdms/home', $data['sum_num']));
  42. $row->column(3,new InfoBox('疫苗库存量)', 'home', 'aqua', '/cdms/home', $data['have_num']));
  43. $row->column(3,new InfoBox('疫苗库存告急(种)', 'genderless', 'aqua', '/cdms/home', $data['less_num']));
  44. })
  45. ->row(function (Row $row){
  46. $data = StatController::vaccine();
  47. $row->column(3,new InfoBox('昨日接种量(人次)', 'genderless', 'aqua', '/cdms/home', $data['less_num']));
  48. $row->column(3,new InfoBox('明日预约量(人次)', 'genderless', 'aqua', '/cdms/home', $data['less_num']));
  49. // $row->column(3,new InfoBox('今日预约(人支)', 'hospital-o', 'aqua', '/cdms/home', $data['today_schedule']));
  50. // $row->column(3,new InfoBox('预计今日消耗(支)', 'calendar', 'aqua', '/cdms/home', $data['today_vaccine']));
  51. })
  52. ->row(function (Row $row){
  53. 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>');
  54. })
  55. ->row(function (Row $row){
  56. $data = StatController::nurse();
  57. $row->column(3,new InfoBox('门诊订单(个)', 'first-order', 'aqua', '/cdms/home', $data[0]));
  58. $row->column(3,new InfoBox('计免订单(个)', 'first-order', 'aqua', '/cdms/home', $data[1]));
  59. $row->column(3,new InfoBox('儿保订单(个)', 'first-order', 'aqua', '/cdms/home', $data[2]));
  60. })
  61. ->row(function (Row $row){
  62. 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>');
  63. })
  64. ->row(function (Row $row){
  65. $data = StatController::clinc();
  66. $data = StatController::schedule();
  67. $row->column(3,new InfoBox('计免医生(人)', 'hospital-o', 'aqua', '/cdms/home', $data['vaccine_num']));
  68. $row->column(3,new InfoBox('儿保医生(人)', 'hospital-o', 'aqua', '/cdms/home', $data['nurse_num']));
  69. $row->column(3,new InfoBox('门诊医生(人)', 'hospital-o', 'aqua', '/cdms/home', $data['clinic_num']));
  70. });
  71. // ->row($this->real_data())
  72. // ->row($this->vaccine_data())
  73. // ->row($this->nurse_data())
  74. // ->row($this->schedule_data());
  75. }
  76. //1. 门诊预约
  77. //(1) 今日预约数量
  78. //(2) 今日排班(人)
  79. //(3) 昨日预约数
  80. //(4) 昨日接诊人数
  81. //2. 计免预约
  82. //(1) 今日预约数量(人次)
  83. //(2) 疫苗库存量
  84. //(3) 疫苗库存告急(种)
  85. //(4) 昨日接种量(人次)
  86. //(5) 明日预约量(人次)
  87. //3. 儿保预约
  88. //(1) 今日预约数量(人次)
  89. //(2) 昨日预约数量(人次)
  90. //(3) 昨日服务数量(人次)
  91. //(4) 明日预约数量(人次)
  92. public function real_data()
  93. {
  94. $data = StatController::service();
  95. return view('cdms.real_data',compact('data'));
  96. }
  97. public function vaccine_data()
  98. {
  99. $data = StatController::vaccine();
  100. return view('cdms.vaccine_data',compact('data'));
  101. }
  102. public function nurse_data()
  103. {
  104. $data = StatController::nurse();
  105. return view('cdms.nurse_data',compact('data'));
  106. }
  107. public function schedule_data()
  108. {
  109. $data = StatController::schedule();
  110. return view('cdms.schedule_data',compact('data'));
  111. }
  112. public function order_detail()
  113. {
  114. $id = request('id');
  115. if(empty($id)){
  116. return redirect('/cdms/docter_chats');
  117. }
  118. $data = Order::where('id',$id)->with('orderPatient')->first();
  119. if(!empty($data->orderPatient->medical_imgs)){
  120. $data->orderPatient->medical_imgs = object_array(json_decode($data->orderPatient->medical_imgs ));
  121. } else {
  122. $data->orderPatient->medical_imgs = [];
  123. }
  124. $content = new Content();
  125. $status = Order::getStatus();
  126. $content->view('cdms.order_detail',compact('data','status'));
  127. return $content;
  128. }
  129. public function schedule(){
  130. $time = redirect('time');
  131. $time = '2020-12-07至2020-12-13';
  132. $data = sechedule_timeperiod();
  133. $org_id = Admin::user()->org_id;
  134. $where = [];
  135. if($org_id){
  136. $where['organization_id'] = $org_id;
  137. }
  138. if($time){
  139. } else {
  140. $where['schedule_date']=date('Y-m-d',strtotime('this week'));
  141. }
  142. Schedule::where($where)->pluck('id');
  143. }
  144. }