diff --git a/Laravel.zip b/Laravel.zip new file mode 100644 index 0000000..308764b Binary files /dev/null and b/Laravel.zip differ diff --git a/Laravel/app/Http/Controllers/API/Admin/ConfigController.php b/Laravel/app/Http/Controllers/API/Admin/ConfigController.php index 57ae4d1..1882c9a 100644 --- a/Laravel/app/Http/Controllers/API/Admin/ConfigController.php +++ b/Laravel/app/Http/Controllers/API/Admin/ConfigController.php @@ -12,12 +12,11 @@ class ConfigController extends Controller //获取站点配置信息 public function GetConfigInfo(){ $configs = new ConfigService(); - return $configs->GetConfigInfo(['站点名称','站点图片']); + return $configs->GetConfigInfo(['站点名称','站点图片','门诊缴费超时时间','门诊缴费轮询间隔']); } public function SaveConfig(){ - $name = request('name'); - $logo = request('logo'); + $info = request('info'); $configs = new ConfigService(); - return $configs->SaveConfig($name,$logo); + return $configs->SaveConfig($info); } } diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanListController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanListController.php index dc9baab..ecd8cb8 100644 --- a/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanListController.php +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanListController.php @@ -62,6 +62,7 @@ class PlanListController extends Controller // 循环日期并判断星期 $current_date = clone $start_date; DB::beginTransaction(); + $success_count=0;//成功创建的数量 while ($current_date <= $end_date) { // 获取当前日期的星期几(0表示星期日,1表示星期一,以此类推) $weekday = $current_date->format('w'); @@ -113,6 +114,9 @@ class PlanListController extends Controller $plan_id = DB::table('s_source_roster_detail')->insertGetId($data); + if($plan_id){ + $success_count++; + } // 插入数量表 $model_count_info = DB::table('s_source_roster_count')->where(['roster_id' => $model->id])->get(); if (count($model_count_info) > 0) { @@ -154,9 +158,10 @@ class PlanListController extends Controller } // 将当前日期增加一天 $current_date->modify('+1 day'); + } DB::commit(); - return \Yz::Return(true, '创建成功', []); + return \Yz::Return(true, '执行完成,范围:'.$dateRange[0].'-'.$dateRange[1].',共计生成计划 '.$success_count.' 条', ['dateRange'=>$dateRange,'success_count'=>$success_count]); } } @@ -400,9 +405,20 @@ class PlanListController extends Controller $list=DB::table('s_list') ->leftJoin('s_department_resources','s_list.reservation_sources','=','s_department_resources.id') ->select('s_list.*','s_department_resources.department_resources_name') - ->where(['s_list.roster_id'=>$planid,'s_list.appointment_type_id'=>$qudaoid,'s_list.is_del'=>0,'s_list.is_nullify'=>0])->whereIn('s_list.list_status',[1,2,3])->get(); - + ->where(['s_list.roster_id'=>$planid,'s_list.is_del'=>0,'s_list.is_nullify'=>0])->whereIn('s_list.list_status',[1,2,3]); + if (!empty($qudaoid)) { + $list=$list->where(['s_list.appointment_type_id'=>$qudaoid]); + } + $list=$list->get(); + $qudao=DB::table('s_appointment_type')->get(); + foreach ($list as $key=>$item){ + foreach ($qudao as $q){ + if($q->id==$item->appointment_type_id){ + $item->qudao_name=$q->name; + } + } + } return \Yz::Return(true,'查询完成',$list); } } diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanModelController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanModelController.php index 4d8df6b..bea42a2 100644 --- a/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanModelController.php +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanModelController.php @@ -49,8 +49,10 @@ class PlanModelController extends Controller $count = $list; $count = $count->count(); - $list = $list->orderBy('id', 'desc')->limit($pageSize)->skip(($page - 1) * $pageSize) // 跳过前9999条记录 - ->take($pageSize)->get(); + $list=$list->orderByRaw(DB::raw( + "FIELD(`weekname`, '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日') ASC" + )); + $list = $list->orderBy('s_source_roster.begin_time')->get(); $ids = []; foreach ($list as $key => $value) { $list[$key]->countsInfo = []; diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/WorkMainController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/WorkMainController.php index 1dc7177..46bff29 100644 --- a/Laravel/app/Http/Controllers/API/Admin/YeWu/WorkMainController.php +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/WorkMainController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers\API\Admin\YeWu; use App\Http\Controllers\Controller; use DateTime; use Illuminate\Http\Request; +use Illuminate\Support\Carbon; use Illuminate\Support\Facades\DB; use Tools; @@ -142,7 +143,7 @@ class WorkMainController extends Controller public function GetLoglist() { $id = request('id'); - $List=DB::table('s_list_log')->where(['list_id'=>$id])->get(); + $List=DB::table('s_list_log')->where(['list_id'=>$id])->orderBy('id','desc')->get(); return \Yz::Return(true,'查询完成',$List); } @@ -169,6 +170,7 @@ class WorkMainController extends Controller //获取所有传过来的检查项目关联的设备 $ItemsDevices= DB::table('s_check_item as a') ->leftJoin('s_check_item_device as b','a.id','=','b.item_id') + ->leftJoin('s_devices as c','b.device_id','=','c.id') ->whereIn('a.item_name',$itemNames)->where(['a.is_del'=>0,'a.status'=>1])->get(); //按照第一个勾选的检查项目关联的设备进行分组,能在一个设备上进行检查的分在一组 if(!empty($FirstItemDevices)){ @@ -177,10 +179,11 @@ class WorkMainController extends Controller $lg=[]; foreach ($ItemsDevices as $v){ if($v->device_id==$value){ - foreach ($items as $item){ if($item['name']==$v->item_name){ $v->rowid=$item['rowid']; + + } } $lg[]=$v; @@ -221,4 +224,52 @@ class WorkMainController extends Controller } return \Yz::Return(true,'可以预约',[]); } + //检查是否有超时未支付的门诊预约记录,如果有则给其取消,并恢复名额 + public function NoPayCancel() + { + date_default_timezone_set('PRC'); + $config=DB::table('configs')->where(['label'=>'门诊缴费超时时间'])->first(); + if($config->value>0){ + $currentDateTime = Carbon::now()->subHours($config->value); + $list=DB::table('s_list')->where(['list_status'=>1,'patient_type'=>1,'is_pay'=>0,'is_del'=>0,'is_nullify'=>0]) + ->where('entrust_date', '<', $currentDateTime->toDateString()) + ->orWhere(function($query) use ($currentDateTime) { + $query->whereDate('entrust_date', $currentDateTime->toDateString()) + ->whereTime('entrust_time', '<', $currentDateTime->toTimeString()); + })->get(); + $success_count=0; + foreach ($list as $key=>$item){ + $u_data=[ + 'list_status' => 0, + 'reservation_date' => null, + 'reservation_time' => null, + 'reservation_sources' => null, + 'services_group' => null, + 'roster_id' => null, + 'xuhao' => null, + 'department_id'=>null, + 'appointment_type_id' => null, + 'canel_time' => date('Y-m-d H:i:s'), + ]; + $u_mainList = DB::table('s_list')->where(['id' => $item->id,'list_status'=>1])->update($u_data); + $i_log=DB::table('s_list_log')->insert([ + 'list_id'=>$item->id, + 'reg_num'=>$item->reg_num, + 'old_status'=>$item->list_status, + 'new_status'=>0, + 'create_user'=>null, + 'note'=>'超时取消', + 'data'=>json_encode($u_data) + ]); + $u_count = DB::table('s_source_roster_detail_count')->where(['roster_detail_id' => $item->roster_id, 'appointment_type_id' => $item->appointment_type_id])->decrement('used_count'); + if($u_count){ + $success_count++; + } + } + return \Yz::Return(true,"执行完成",['success_count'=>$success_count]); + }else{ + return \Yz::echoError1("超时参数未设置"); + } + + } } diff --git a/Laravel/app/Http/Controllers/API/H5/EntrustController.php b/Laravel/app/Http/Controllers/API/H5/EntrustController.php index b6ee568..63b2614 100644 --- a/Laravel/app/Http/Controllers/API/H5/EntrustController.php +++ b/Laravel/app/Http/Controllers/API/H5/EntrustController.php @@ -17,7 +17,6 @@ class EntrustController extends Controller $userid = $request->get('userid');//中间件产生的参数 - $list=DB::table('s_list') ->leftJoin('s_period','s_list.reservation_time','=','s_period.id') ->leftJoin('s_department_resources','s_list.reservation_sources','=','s_department_resources.id') diff --git a/Laravel/app/Http/Controllers/API/H5/LoginController.php b/Laravel/app/Http/Controllers/API/H5/LoginController.php index 71c26b6..1545528 100644 --- a/Laravel/app/Http/Controllers/API/H5/LoginController.php +++ b/Laravel/app/Http/Controllers/API/H5/LoginController.php @@ -13,7 +13,7 @@ class LoginController extends Controller $jwt= new JWT(); $accessTimeout = $jwt -> GetGetSecretTimeOut(); $refreshTimeout = $jwt -> GetRefreshTokenTimeOut(); - $access_token = $jwt->BuildJWT('yz','access','0001289649',666,$accessTimeout); + $access_token = $jwt->BuildJWT('yz','access','0006944759',666,$accessTimeout); $refresh_token = $jwt->BuildJWT('yz','refresh',9999,'',$refreshTimeout); $result['token']=$access_token; $result['refresh_token']=$refresh_token; diff --git a/Laravel/app/Services/Admin/MenuService.php b/Laravel/app/Services/Admin/MenuService.php index 861a853..437c822 100644 --- a/Laravel/app/Services/Admin/MenuService.php +++ b/Laravel/app/Services/Admin/MenuService.php @@ -6,13 +6,13 @@ class MenuService public function GetBaseMenuList($arr){ $result=array(); if($arr['userid']=='search'){ - $menulist=DB::select("select b.id,b.pid,b.order,b.icon, b.name,b.url from group_menu as a left join menu as b on a.menu_id=b.id where a.group_id =? and b.status=1",[$arr['group']]); + $menulist=DB::select("select b.id,b.pid,b.order,b.icon, b.name,b.url from group_menu as a left join menu as b on a.menu_id=b.id where a.group_id =? and b.status=1 order by `order` ",[$arr['group']]); $result['list']=$menulist; $result['status']='ok'; }else{ $query=DB::select("select `group` from users where id =? ",[$arr['userid']]); if($query[0]->group==$arr['group']){ - $menulist=DB::select("select b.id,b.pid,b.order,b.icon, b.name,b.url from group_menu as a left join menu as b on a.menu_id=b.id where a.group_id =? and b.status=1",[$arr['group']]); + $menulist=DB::select("select b.id,b.pid,b.order,b.icon, b.name,b.url from group_menu as a left join menu as b on a.menu_id=b.id where a.group_id =? and b.status=1 order by `order`",[$arr['group']]); $result['list']=$menulist; $result['status']='ok'; diff --git a/Laravel/app/Services/Admin/YeWu/PlanListService.php b/Laravel/app/Services/Admin/YeWu/PlanListService.php index 46fd1e3..936d795 100644 --- a/Laravel/app/Services/Admin/YeWu/PlanListService.php +++ b/Laravel/app/Services/Admin/YeWu/PlanListService.php @@ -146,12 +146,28 @@ WHERE $oldMainInfos=[];//临时存储原来的主表信息,用于改约 //遍历多个s_list表id,前端多选,一次预约多个检查项目 foreach ($mainlistids as $key_m=>$mainlistid ){ - $mainInfo = DB::table('s_list')->where(['id' => $mainlistid])->first(); + $mainInfo = DB::table('s_list as a') + ->select('a.*','b.period_begin_time','b.period_end_time') + ->leftJoin('s_period as b','a.reservation_time','=','b.id') + ->where(['a.id' => $mainlistid])->first(); $oldMainInfos[]=$mainInfo; if (!$mainInfo) return \Yz::echoError1('医嘱不存在'); //判断状态 - if ($do_type == 1 && $mainInfo->list_status <> 0) return \Yz::echoError1($mainInfo->entrust.' 该医嘱状态不允许预约,当前状态:' . $mainInfo->list_status); - if ($do_type == 2 && $mainInfo->list_status <> 1) return \Yz::echoError1($mainInfo->entrust.' 该医嘱状态不允许改约操作,当前状态:' . $mainInfo->list_status); + $msg_t=""; + if($mainInfo->list_status==0){ + $msg_t="当前状态为待预约"; + } + if($mainInfo->list_status==1){ + $msg_t="已经在".$mainInfo->reservation_date.'的'.$mainInfo->period_begin_time.'-'.$mainInfo->period_end_time.'预约成功,不能再次预约'; + } + if($mainInfo->list_status==2){ + $msg_t="当前状态为已登记"; + } + if($mainInfo->list_status==3){ + $msg_t="当前状态为已完成"; + } + if ($do_type == 1 && $mainInfo->list_status <> 0) return \Yz::echoError1($mainInfo->entrust.' '.$msg_t.',禁止预约'); + if ($do_type == 2 && $mainInfo->list_status <> 1) return \Yz::echoError1($mainInfo->entrust.' '.$msg_t.',不允许改约操作'); //判断互斥(暂时根据reg_num判断身份) @@ -265,7 +281,7 @@ WHERE } catch (\Exception $e) { DB::rollBack(); - return \Yz::echoError1('预约异常'.$e); + return \Yz::echoError1('预约异常'.$e->getMessage()); } diff --git a/Laravel/app/Services/ConfigService.php b/Laravel/app/Services/ConfigService.php index ced8996..73d6d07 100644 --- a/Laravel/app/Services/ConfigService.php +++ b/Laravel/app/Services/ConfigService.php @@ -19,12 +19,13 @@ class ConfigService return \Yz::Return(false, '查询失败'); } } - public function SaveConfig($name,$logo){ + public function SaveConfig($info){ $result=array(); DB::beginTransaction(); try { - $d= DB::table('configs')->where('label', '=', '站点名称')->update(['value'=>$name]); - $d= DB::table('configs')->where('label', '=', '站点图片')->update(['value'=>$logo]); + foreach ($info as $key=>$value){ + $d= DB::table('configs')->where('label', '=', $key)->update(['value'=>$value]); + } DB::commit(); // 手动提交事务 return \Yz::Return(true, '操作成功'); } catch (\Exception $e) { diff --git a/Laravel/public/jq_page/appointment.html b/Laravel/public/jq_page/appointment.html index 11e261a..a51e0cd 100644 --- a/Laravel/public/jq_page/appointment.html +++ b/Laravel/public/jq_page/appointment.html @@ -105,7 +105,7 @@ var currentDate = new Date(data.data.today_date) currentDate.setDate(currentDate.getDate() + 1) tomorrowDate = currentDate.toISOString().split('T')[0] - + $('.yiyuInfo:first').trigger('click'); } else { MsgAlert(data.msg) @@ -130,35 +130,45 @@ if (data.data.appointment_date == $('#datetimepicker1 input').val()) { $('#xingqi1').html(data.data.weekname); $('#table1 tbody').html('') - data.data.plan_list.forEach(function(v, i) { + if(data.data.plan_list.length>0){ + data.data.plan_list.forEach(function(v, i) { $('#table1 tbody').append('\n' + ' ' + v.date + '\n' + ' ' + v.weekname + '\n' + ' ' + v.department_resources_name + '\n' + ' ' + v.devices + '\n' + ' ' + v.begin_time + '-' + v.end_time + '\n' + - ' ' + v.used_count + '/' + v.count + '\n' + + ' ' + v.used_count + '/' + v.count + '\n' + ' ') }) + }else{ + $('#table1 tbody').append('暂无可用计划') + } + } if (data.data.appointment_date == $('#datetimepicker2 input').val()) { $('#xingqi2').html(data.data.weekname); $('#table2 tbody').html('') - data.data.plan_list.forEach(function(v, i) { + if(data.data.plan_list.length>0){ + data.data.plan_list.forEach(function(v, i) { $('#table2 tbody').append('\n' + ' ' + v.date + '\n' + ' ' + v.weekname + '\n' + ' ' + v.department_resources_name + '\n' + ' ' + v.devices + '\n' + ' ' + v.begin_time + '-' + v.end_time + '\n' + - ' ' + v.used_count + '/' + v.count + '\n' + + ' ' + v.used_count + '/' + v.count + '\n' + ' ') }) + }else{ + $('#table2 tbody').append('暂无可用计划') + } + } //选中某一行 - $('.table_row').off('click').on('click', function() { + $('.table_row').off('click').on('click', function(event) { if ($(this).hasClass('row_selected')) { // 如果已经选中,则移除选中状态 $('.table_row').removeClass('row_selected') @@ -216,6 +226,9 @@ $('#loadingModal').modal('hide'); if (data.status) { MsgAlert("操作成功") + if($('#enable_print').is(':checked')){ + PrintFunc(); + } getPlanList($('#datetimepicker1 input').val()) getPlanList($('#datetimepicker2 input').val()) GetMainInfo() @@ -270,12 +283,7 @@ if (selectedId == 0) { return false } - if (confirm("你确定要继续吗?")) { - start_yuyue() - }else{ - - } - + start_yuyue() }) $('.model_button').on('click',function(){ @@ -362,7 +370,52 @@ } $('#dayin_button').on('click',function(){ - PrintInfo=null + PrintFunc(); + }) + + $('#shuaxin_button').on('click',function(){ + window.location.reload() + }) + //点击下一页 + $('#xiayiye_button').on('click',function(){ + if($(".lanse_bg").length>0){ + var cr = new Date($('#datetimepicker2 input').val()) + cr.setDate(cr.getDate() + 1) + t1 = cr.toISOString().split('T')[0] + cr.setDate(cr.getDate() + 1) + t2 = cr.toISOString().split('T')[0] + //日历设置日期,支持查询计划 + $('#datetimepicker1 input').val(t1) + $('#datetimepicker2 input').val(t2) + getPlanList(t1) + getPlanList(t2) + } + }) + //点击上一页 + $('#shangyiye_button').on('click',function(){ + if($(".lanse_bg").length>0){ + var cr = new Date($('#datetimepicker1 input').val()) + cr.setDate(cr.getDate() - 1) + t2 = cr.toISOString().split('T')[0] + cr.setDate(cr.getDate() - 1) + t1 = cr.toISOString().split('T')[0] + //日历设置日期,支持查询计划 + $('#datetimepicker1 input').val(t1) + $('#datetimepicker2 input').val(t2) + getPlanList(t1) + getPlanList(t2) + } + }) + $('#tablelist').load("tablelist.html"); + }) + + function MsgAlert(msg){ + $('#tishi .tishineirong').html(msg); + $('#tishi').modal('show'); + } + //打印 + function PrintFunc(){ + PrintInfo=null $("#shenqingdan").html('') if($(".lanse_bg").length==0){ MsgAlert('请选择要打印的申请单'); @@ -413,16 +466,8 @@ }) - }) - $('#shuaxin_button').on('click',function(){ - window.location.reload() - }) - }) - - function MsgAlert(msg){ - $('#tishi .tishineirong').html(msg); - $('#tishi').modal('show'); - } + } + @@ -470,7 +515,7 @@
-
姓名: 患者id: 性别: +
姓名: 登记号: 性别: 年龄: 电话: 孕周:
@@ -506,15 +551,18 @@
- + + + +

-
日期
-
+
日期
+
@@ -526,20 +574,21 @@
-
- - - - - - - - - - - -
日期星期资源服务组时间段已用/总数
+
+ + + + + + + + + + + +
日期星期资源服务组时间段已用/总数
+
@@ -551,8 +600,8 @@
-
日期
-
+
日期
+
@@ -564,20 +613,21 @@
-
-
- - - - - - - - - - -
日期星期资源服务组时间段已用/总数
+
+ + + + + + + + + + + +
日期星期资源服务组时间段已用/总数
+
@@ -613,7 +663,10 @@ - +
+ +
+