From 0c196588cb747a3d74a48f7891a03d7706f46d73 Mon Sep 17 00:00:00 2001 From: yanzai Date: Fri, 13 Jun 2025 10:40:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=A3=80=E6=9F=A5=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=20=E3=80=81=E5=8C=BB=E7=94=9F=E8=B7=B3=E8=BD=AC=20?= =?UTF-8?q?=E4=B8=AD=E8=BD=AC=E4=B8=80=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../API/His/CheckItemController.php | 90 +++++++++++++++++++ .../Controllers/API/His/EntrustController.php | 15 ++++ .../Controllers/API/His/HisController.php | 11 +++ Laravel/app/Lib/Tools.php | 19 ++++ Laravel/routes/api.php | 1 + Laravel/routes/web.php | 25 ++++++ 6 files changed, 161 insertions(+) create mode 100644 Laravel/app/Http/Controllers/API/His/CheckItemController.php create mode 100644 Laravel/app/Http/Controllers/API/His/EntrustController.php create mode 100644 Laravel/app/Http/Controllers/API/His/HisController.php diff --git a/Laravel/app/Http/Controllers/API/His/CheckItemController.php b/Laravel/app/Http/Controllers/API/His/CheckItemController.php new file mode 100644 index 0000000..b50a067 --- /dev/null +++ b/Laravel/app/Http/Controllers/API/His/CheckItemController.php @@ -0,0 +1,90 @@ +'all'){ + $data=[ + 'termClassId' => $termClassId, + ]; + $where=['termClassId'=>$termClassId]; + } + + $res=\Tools::Get($url,$data,'更新检查项目'); + if($res['code']==200){ + $res_data=$res['data']; + if(isset($res_data['list']) and !empty($res_data['list'])){ + $db_data=DB::table('s_check_item')->where($where)->get();//库里的数据 + //根据 接收数据的undrugId,和库里的item_code进行比对,如果库里存在则更新,如果库里没有则添加,如果库里有但是接收数据里没有则在库里标记is_del=0 + $db_map = []; + foreach ($db_data as $db_item) { + $db_map[$db_item->item_code] = $db_item; + } + + // 用于记录接收到的数据中的 item_code,方便后面判断哪些需要删除 + $received_ids = []; + + foreach ($res_data['list'] as $item) { + // 假设远程返回字段是 undrugId 和 undrugName,对应数据库字段是 item_code 和 item_name + $item_code = $item['undrugId']; + $item_name = $item['termName']; + + // 添加到接收 ID 列表 + $received_ids[] = $item_code; + + // 快速查找是否已存在该 item_code + if (isset($db_map[$item_code])) { + // 存在则更新 + DB::table('s_check_item') + ->where('item_code', $item_code) + ->update([ + 'termClassId'=>$item['termClassId'], + 'item_name' => $item_name, + 'item_desc' => $item_name, + 'is_del' => 0, // 取消删除标记 + ]); + } else { + // 不存在则插入新记录 + DB::table('s_check_item')->insert([ + 'termClassId'=>$item['termClassId'], + 'item_code' => $item_code, + 'item_name' => $item_name, + 'item_desc' => $item_name, + ]); + } + } + + // 处理数据库中存在但远程没有返回的数据,标记为删除 + foreach ($db_map as $item_code => $db_item) { + if (!in_array($item_code, $received_ids)) { + DB::table('s_check_item') + ->where('item_code', $item_code) + ->update([ + 'is_del' => 1 + ]); + } + } + + return \Yz::return(true,'更新检查项目成功',[]); + }else{ + return \Yz::echoError1('His接口返回数据为空'); + } + }else{ + return \Yz::echoError1('更新失败'); + } + } +} diff --git a/Laravel/app/Http/Controllers/API/His/EntrustController.php b/Laravel/app/Http/Controllers/API/His/EntrustController.php new file mode 100644 index 0000000..76c4b5b --- /dev/null +++ b/Laravel/app/Http/Controllers/API/His/EntrustController.php @@ -0,0 +1,15 @@ +$url, + 'get_data'=>$data_s, + ]; + $log_id=self::RequestLog($data,0,$mark); + $response = Http::get($url,$data_s); + if ($response->successful()) { + $res = $response->json(); + }else{ + $res=$response->body(); + } + $data=[ + 'response_data'=>$res + ]; + self::RequestLog($data,$log_id); + return $res; + } public static function Post($url, $data_string,$mark='') { $data=[ diff --git a/Laravel/routes/api.php b/Laravel/routes/api.php index 93a1cc8..e273186 100644 --- a/Laravel/routes/api.php +++ b/Laravel/routes/api.php @@ -120,6 +120,7 @@ Route::group(['middleware'=>['log']],function () { Route::post('admin/getMainDetail_duoren','App\Http\Controllers\API\Admin\YeWu\EntrustController@getMainDetail_duoren');//获取医嘱信息(支持多人) Route::post('admin/AutoYuYue','App\Http\Controllers\API\Admin\YeWu\PlanListController@AutoYuYue');//自动预约 + Route::post('admin/updateCheckItem','App\Http\Controllers\API\His\CheckItemController@UpdateCheckItem');//调用his更新检查项目 }); //H5端接口 diff --git a/Laravel/routes/web.php b/Laravel/routes/web.php index 08abe1d..03c8560 100644 --- a/Laravel/routes/web.php +++ b/Laravel/routes/web.php @@ -1,5 +1,6 @@ server('QUERY_STRING'); // 获取原始查询字符串 + return redirect("http://192.168.80.76/jq_page/appointment.html?".$queryString); + //parse_str(urldecode($queryString), $data); // 先 urldecode,再 parse_str 解析 + // dd($queryString); +// $regnum=$request->query('regnum'); +// $entrustid=$request->query('entrustid'); +// $episodeid=$request->query('episodeid'); +// $dotype=$request->query('dotype'); +// $appointment_type=$request->query('appointment_type'); + +// $data=[ +// 'regnum'=>$regnum, +// 'entrustid'=>$entrustid, +// 'episodeid'=>$episodeid, +// 'dotype'=>$dotype, +// 'appointment_type'=>$appointment_type, +// ]; +// dd($data); +}); + +