From fe5d86cd4678773de0c2d89e85009758707f88f3 Mon Sep 17 00:00:00 2001 From: haomingming Date: Thu, 25 Dec 2025 14:49:26 +0800 Subject: [PATCH 01/66] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8A=84=E6=96=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AutoFinishInquiryDelayDirectConsumer.php | 32 +++++++---- ...oPharmacistCaVerifyDelayDirectConsumer.php | 12 +++++ app/Command/ReportRegulatoryCommand.php | 17 ++++++ app/Model/OrderInquiry.php | 5 +- app/Model/UserDoctor.php | 3 +- app/Services/UserDoctorService.php | 54 +++++++++++++++++-- 6 files changed, 105 insertions(+), 18 deletions(-) diff --git a/app/Amqp/Consumer/AutoFinishInquiryDelayDirectConsumer.php b/app/Amqp/Consumer/AutoFinishInquiryDelayDirectConsumer.php index fab256d..f4d077b 100644 --- a/app/Amqp/Consumer/AutoFinishInquiryDelayDirectConsumer.php +++ b/app/Amqp/Consumer/AutoFinishInquiryDelayDirectConsumer.php @@ -171,17 +171,27 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage $this->computeDoctorAvgPesponseTime($order_inquiry['doctor_id']); // 新增上报监管平台数据,只上报 多点执业的医生 20251021 测试分支 - if ($user_doctor['multi_point_status'] == 1){//医生多点执业认证状态(0:未认证 1:认证通过 2:审核中 3:认证失败) - $reportRegulatoryService = new ReportRegulatoryService(); - $res = $reportRegulatoryService->addReportRegulatory($order_inquiry['order_inquiry_id']); - if (!$res) { - // 新增上报失败 - Db::rollBack(); - Log::getInstance("queue-AutoFinishInquiry")->error("新增上报监管平台数据失败"); - return Result::REQUEUE; - } - }else{ - Log::getInstance("queue-AutoFinishInquiry")->info("非多点执业的医生不上报监管平台"); + // if ($user_doctor['multi_point_status'] == 1){//医生多点执业认证状态(0:未认证 1:认证通过 2:审核中 3:认证失败) + // $reportRegulatoryService = new ReportRegulatoryService(); + // $res = $reportRegulatoryService->addReportRegulatory($order_inquiry['order_inquiry_id']); + // if (!$res) { + // // 新增上报失败 + // Db::rollBack(); + // Log::getInstance("queue-AutoFinishInquiry")->error("新增上报监管平台数据失败"); + // return Result::REQUEUE; + // } + // }else{ + // Log::getInstance("queue-AutoFinishInquiry")->info("非多点执业的医生不上报监管平台"); + // } + + //新增抄方功能,所有要全部保存,上报的时候再判断 + $reportRegulatoryService = new ReportRegulatoryService(); + $res = $reportRegulatoryService->addReportRegulatory($order_inquiry['order_inquiry_id']); + if (!$res) { + // 新增上报失败 + Db::rollBack(); + Log::getInstance("queue-AutoFinishInquiry")->error("新增上报监管平台数据失败"); + return Result::REQUEUE; } Db::commit(); diff --git a/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php b/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php index ebfb2e0..4b500ab 100644 --- a/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php +++ b/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php @@ -100,6 +100,18 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage return Result::ACK; } + // 获取抄方医生数据 (如果存在抄方操作) + if(!empty($order_inquiry['transfer_doctor_id'])){ + $params = array(); + $params['doctor_id'] = $order_inquiry['transfer_doctor_id']; + $user_doctor = UserDoctor::getOne($params); + if (empty($user_doctor)) { + Log::getInstance("queue-AutoPharmacistCaVerify")->error("错误:抄方医生数据错误"); + return Result::ACK; + } + } + + // 获取用户数据 $params = array(); $params['patient_id'] = $order_prescription['patient_id']; diff --git a/app/Command/ReportRegulatoryCommand.php b/app/Command/ReportRegulatoryCommand.php index 0c52d28..244c740 100644 --- a/app/Command/ReportRegulatoryCommand.php +++ b/app/Command/ReportRegulatoryCommand.php @@ -319,6 +319,23 @@ class ReportRegulatoryCommand extends HyperfCommand return false; } + //判断该问诊是否为抄方 + if(!empty($order_inquiry['transfer_doctor_id'])){ + $this->line("信息:该问诊为抄方类型,不执行"); + return false; + }else{ + $params = array(); + $params['doctor_id'] = $order_inquiry['doctor_id']; + $user_doctor_info = UserDoctorInfo::getOne($params); + if (empty($user_doctor_info)) { + $this->line("错误:医生详情数据错误,不执行"); + return false; + } + if ($user_doctor_info['multi_point_status'] != 1) { + $this->line("错误:医生为非多点执业,不执行"); + return false; + } + } return true; } diff --git a/app/Model/OrderInquiry.php b/app/Model/OrderInquiry.php index 0363de8..af5d3da 100644 --- a/app/Model/OrderInquiry.php +++ b/app/Model/OrderInquiry.php @@ -13,11 +13,12 @@ use Hyperf\DbConnection\Db; use Hyperf\Snowflake\Concern\Snowflake; /** - * @property int $order_inquiry_id 主键id + * @property int $order_inquiry_id 主键id * @property int $order_id 订单id * @property int $user_id 用户id-患者 * @property int $patient_id 患者id * @property int $doctor_id 医生id(未分配时为null) + * @property int $transfer_doctor_id 接受抄方的医生id * @property int $family_id 家庭成员id(就诊用户) * @property int $inquiry_type 订单类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药 5:检测) * @property int $inquiry_mode 接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员 6:疑难会诊 7:附赠 8:健康包 9:随访包) @@ -65,7 +66,7 @@ class OrderInquiry extends Model /** * The attributes that are mass assignable. */ - protected array $fillable = ['order_inquiry_id', 'order_id', 'user_id', 'patient_id', 'doctor_id', 'family_id', 'inquiry_type', 'inquiry_mode', 'inquiry_status', 'is_delete', 'inquiry_refund_status', 'inquiry_pay_channel', 'inquiry_pay_status', 'inquiry_no', 'escrow_trade_no', 'amount_total', 'coupon_amount_total', 'payment_amount_total', 'pay_time', 'reception_time', 'complete_time', 'finish_time', 'statistics_status', 'statistics_time', 'is_withdrawal', 'withdrawal_time', 'cancel_time', 'cancel_reason', 'cancel_remarks', 'times_number', 'duration', 'patient_name', 'patient_name_mask', 'patient_sex', 'patient_age', 'created_at', 'updated_at']; + protected array $fillable = ['order_inquiry_id', 'order_id', 'user_id', 'patient_id', 'doctor_id', 'transfer_doctor_id', 'family_id', 'inquiry_type', 'inquiry_mode', 'inquiry_status', 'is_delete', 'inquiry_refund_status', 'inquiry_pay_channel', 'inquiry_pay_status', 'inquiry_no', 'escrow_trade_no', 'amount_total', 'coupon_amount_total', 'payment_amount_total', 'pay_time', 'reception_time', 'complete_time', 'finish_time', 'statistics_status', 'statistics_time', 'is_withdrawal', 'withdrawal_time', 'cancel_time', 'cancel_reason', 'cancel_remarks', 'times_number', 'duration', 'patient_name', 'patient_name_mask', 'patient_sex', 'patient_age', 'created_at', 'updated_at']; protected string $primaryKey = "order_inquiry_id"; diff --git a/app/Model/UserDoctor.php b/app/Model/UserDoctor.php index 9be48de..286a9e1 100644 --- a/app/Model/UserDoctor.php +++ b/app/Model/UserDoctor.php @@ -50,6 +50,7 @@ use Hyperf\Utils\Arr; * @property int $is_enterprise_deep_cooperation 是否企业深度合作医生(0:否 1:是) * @property int $is_sys_diagno_cooperation 是否先思达合作医生(0:否 1:是) * @property int $is_welfare_cooperation 是否公益问诊合作医生(可把公益问诊设为0元) + * @property int $is_transfer_prescription 是否接受抄方(0:否 1:是) * @property string $qr_code 分享二维码 * @property string $be_good_at 擅长 * @property string $brief_introduction 医生简介 @@ -73,7 +74,7 @@ class UserDoctor extends Model /** * The attributes that are mass assignable. */ - protected array $fillable = ['doctor_id', 'user_id', 'user_name', 'open_id', 'union_id', 'wx_session_key', 'status', 'idcard_status', 'iden_auth_status', 'iden_auth_time', 'iden_auth_fail_reason', 'multi_point_status', 'multi_point_time', 'multi_point_fail_reason', 'introduction_status', 'introduction_time', 'is_bind_bank', 'is_recommend', 'avatar', 'doctor_title', 'department_custom_id', 'department_custom_name', 'department_custom_mobile', 'hospital_id', 'served_patients_num', 'praise_rate', 'avg_response_time', 'number_of_fans', 'is_img_expert_reception', 'is_img_welfare_reception', 'is_img_quick_reception', 'is_platform_deep_cooperation', 'is_enterprise_deep_cooperation', 'is_sys_diagno_cooperation', 'is_welfare_cooperation', 'qr_code', 'be_good_at', 'brief_introduction', 'created_at', 'updated_at']; + protected array $fillable = ['doctor_id', 'user_id', 'user_name', 'open_id', 'union_id', 'wx_session_key', 'status', 'idcard_status', 'iden_auth_status', 'iden_auth_time', 'iden_auth_fail_reason', 'multi_point_status', 'multi_point_time', 'multi_point_fail_reason', 'introduction_status', 'introduction_time', 'is_bind_bank', 'is_recommend', 'avatar', 'doctor_title', 'department_custom_id', 'department_custom_name', 'department_custom_mobile', 'hospital_id', 'served_patients_num', 'praise_rate', 'avg_response_time', 'number_of_fans', 'is_img_expert_reception', 'is_img_welfare_reception', 'is_img_quick_reception', 'is_platform_deep_cooperation', 'is_enterprise_deep_cooperation', 'is_sys_diagno_cooperation', 'is_welfare_cooperation', 'is_transfer_prescription', 'qr_code', 'be_good_at', 'brief_introduction', 'created_at', 'updated_at']; protected string $primaryKey = "doctor_id"; diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index a0a4415..5374f4f 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1336,13 +1336,47 @@ class UserDoctorService extends BaseService return fail(HttpEnumCode::HTTP_ERROR, $res); } - if ($user_doctor['multi_point_status'] != 1) { - return fail(HttpEnumCode::HTTP_ERROR, "请先完成多点执业认证"); + $is_transfer_prescription = false; // 是否抄方医生 false:不是抄方医生 true:抄方医生 + $transfer_doctor = null; // 抄方医生 + + Db::beginTransaction(); + try { + if ($user_doctor['multi_point_status'] != 1) { + + //查找可接受抄方的医生 + $params = array(); + $params['is_transfer_prescription'] = 1; + $params['multi_point_status'] = 1; + $transfer_prescription_list = UserDoctor::getList($params); + if (!empty($transfer_prescription_list)) { + $transfer_doctor = $transfer_prescription_list[0];//取第一个抄方医生 + $is_transfer_prescription = true; + + //修改抄方医生id + $data = array(); + $data['transfer_doctor_id'] = $transfer_doctor['doctor_id']; + $params = array(); + $params['order_inquiry_id'] = $order_inquiry_id; + $res = OrderInquiry::edit($params,$data); + if (!$res) { + Db::rollBack(); + return fail(HttpEnumCode::HTTP_ERROR, "开具处方失败"); + } + } + return fail(HttpEnumCode::HTTP_ERROR, "请先完成多点执业认证"); + } + } catch (\Exception $e) { + Db::rollBack(); + return fail(HttpEnumCode::HTTP_ERROR, "开具处方失败"); } + // 获取医生问诊配置-问诊购药 $params = array(); $params['doctor_id'] = $user_doctor['doctor_id']; + if ($is_transfer_prescription){ + $params['doctor_id'] = $transfer_doctor['doctor_id']; + } $params['inquiry_type'] = 4; $params['inquiry_mode'] = 1; $doctor_inquiry_config = DoctorInquiryConfig::getOne($params); @@ -1398,7 +1432,7 @@ class UserDoctorService extends BaseService return fail(HttpEnumCode::HTTP_ERROR, "请填写病情主诉"); } - Db::beginTransaction(); + $generator = $this->container->get(IdGeneratorInterface::class); try { @@ -1416,12 +1450,18 @@ class UserDoctorService extends BaseService $data = array(); $data['order_inquiry_id'] = $order_inquiry_id; $data['doctor_id'] = $user_info['client_user_id']; + if ($is_transfer_prescription){ + $data['doctor_id'] = $transfer_doctor['doctor_id']; + } $data['patient_id'] = $order_inquiry['patient_id']; $data['family_id'] = $order_inquiry['family_id']; $data['prescription_status'] = 1; $data['doctor_created_time'] = date('Y-m-d H:i:s',time()); $data['prescription_code'] = $generator->generate(); // 处方编号 $data['doctor_name'] = $user_doctor['user_name']; // 医生名称 + if ($is_transfer_prescription){ + $data['doctor_name'] = $transfer_doctor['user_name']; + } $data['patient_name'] = $order_inquiry['patient_name']; $data['patient_sex'] = $order_inquiry['patient_sex']; $data['patient_age'] = $order_inquiry['patient_age']; @@ -1542,8 +1582,14 @@ class UserDoctorService extends BaseService // 开具处方 $OrderPrescriptionService = new OrderPrescriptionService(); + $user_id = ""; + if ($is_transfer_prescription){ + $user_id = $transfer_doctor['user_id']; + }else{ + $user_id = $user_info['user_id']; + } dump($user_info['user_id']); - $prescription_open_result = $OrderPrescriptionService->openPrescription($order_prescription->order_prescription_id,2,$user_info['user_id']); + $prescription_open_result = $OrderPrescriptionService->openPrescription($order_prescription->order_prescription_id,2,$user_id); if (empty($prescription_open_result['prescription_img_oss_path']) || empty($prescription_open_result['file_id'])){ Db::rollBack(); return fail(HttpEnumCode::SERVER_ERROR, "处方开具失败"); From 339564c000f02c459be3eb504ae3fccb65e36e57 Mon Sep 17 00:00:00 2001 From: haomingming Date: Thu, 25 Dec 2025 15:10:53 +0800 Subject: [PATCH 02/66] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E8=BF=90=E8=B4=B90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 276f602..2e3ff5f 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -1687,7 +1687,7 @@ class PatientOrderService extends BaseService $logistics_fee = 7; }else{ //测试环境 运费 - $logistics_fee = 1.9; + $logistics_fee = 0; } // 实际支付金额=商品总金额-优惠卷金额+运费金额 @@ -2299,7 +2299,7 @@ class PatientOrderService extends BaseService $logistics_fee = 7; }else{ //测试环境 运费 - $logistics_fee = 1.9; + $logistics_fee = 0; } // 实际支付金额=商品总金额-优惠卷金额+运费金额 From 1ccc90bf625469c9457df20309a77c9c12e12d2f Mon Sep 17 00:00:00 2001 From: haomingming Date: Thu, 25 Dec 2025 16:50:58 +0800 Subject: [PATCH 03/66] =?UTF-8?q?=E6=8A=84=E6=96=B91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/UserDoctorService.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index 5374f4f..a620f8c 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1362,8 +1362,10 @@ class UserDoctorService extends BaseService Db::rollBack(); return fail(HttpEnumCode::HTTP_ERROR, "开具处方失败"); } + }else{ + return fail(HttpEnumCode::HTTP_ERROR, "请先完成多点执业认证"); } - return fail(HttpEnumCode::HTTP_ERROR, "请先完成多点执业认证"); + } } catch (\Exception $e) { Db::rollBack(); From f4f31a37e718d6bb468e13cb72749479f725798c Mon Sep 17 00:00:00 2001 From: haomingming Date: Thu, 25 Dec 2025 17:35:12 +0800 Subject: [PATCH 04/66] =?UTF-8?q?=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/UserDoctorService.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index a620f8c..3a1a973 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1349,9 +1349,12 @@ class UserDoctorService extends BaseService $params['multi_point_status'] = 1; $transfer_prescription_list = UserDoctor::getList($params); if (!empty($transfer_prescription_list)) { + dump($transfer_prescription_list); $transfer_doctor = $transfer_prescription_list[0];//取第一个抄方医生 $is_transfer_prescription = true; + dump($transfer_doctor); + //修改抄方医生id $data = array(); $data['transfer_doctor_id'] = $transfer_doctor['doctor_id']; From 63871e10ee8f4c6ebc209135e196a513104254a9 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 09:22:08 +0800 Subject: [PATCH 05/66] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E9=97=AE=E8=AF=8A=E8=B4=AD=E8=8D=AF=20=3D=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/UserDoctorService.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index 3a1a973..e8b5968 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -2986,6 +2986,9 @@ class UserDoctorService extends BaseService $result = DoctorInquiryConfig::getOne($params); if (!empty($result)){ $multi_point_enable = 1; // 是否开启问诊购药 + }else{ + //为空则默认为开启状态,抄方需要 + $multi_point_enable = 1; // 是否开启问诊购药 } } From 6436a4383aa8f581cbea7128a6ac81439fb0570e Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 09:35:05 +0800 Subject: [PATCH 06/66] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=8F=91=E9=80=81?= =?UTF-8?q?=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/MessagePush.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/Services/MessagePush.php b/app/Services/MessagePush.php index 07d0202..4af72c4 100644 --- a/app/Services/MessagePush.php +++ b/app/Services/MessagePush.php @@ -543,6 +543,10 @@ class MessagePush extends BaseService $params = array(); $params['order_inquiry_id'] = $this->order_inquiry['order_inquiry_id']; $params['doctor_id'] = $this->order_inquiry['doctor_id']; + //表示该问诊为抄方 + if(!empty($this->order_inquiry['transfer_doctor_id'])){ + $params['doctor_id'] = $this->order_inquiry['transfer_doctor_id']; + } $params['pharmacist_audit_status'] = 1; $order_prescription = OrderPrescription::getOne($params); if (empty($order_prescription)) { @@ -1345,6 +1349,10 @@ class MessagePush extends BaseService $params = array(); $params['order_inquiry_id'] = $this->order_inquiry['order_inquiry_id']; $params['doctor_id'] = $this->order_inquiry['doctor_id']; + //表示该问诊为抄方 + if(!empty($this->order_inquiry['transfer_doctor_id'])){ + $params['doctor_id'] = $this->order_inquiry['transfer_doctor_id']; + } $params['pharmacist_audit_status'] = 1; $order_prescription = OrderPrescription::getOne($params); if (empty($order_prescription)) { From 23e97b83ac1ce90daac9c2cfa70d5a9049288dcb Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 09:51:50 +0800 Subject: [PATCH 07/66] =?UTF-8?q?=E6=8A=84=E6=96=B9IM=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=EF=BC=8C=E5=8F=91=E9=80=81=E7=BB=99=E5=8E=9F=E5=8C=BB=E7=94=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...oPharmacistCaVerifyDelayDirectConsumer.php | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php b/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php index 4b500ab..bc519d4 100644 --- a/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php +++ b/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php @@ -94,24 +94,16 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage // 获取医生数据 $params = array(); $params['doctor_id'] = $order_prescription['doctor_id']; + // 获取抄方医生数据 (如果存在抄方操作) + if(!empty($order_inquiry['transfer_doctor_id'])){ + $params['doctor_id'] = $order_inquiry['transfer_doctor_id']; + } $user_doctor = UserDoctor::getOne($params); if (empty($user_doctor)) { Log::getInstance("queue-AutoPharmacistCaVerify")->error("错误:医生数据错误"); return Result::ACK; } - - // 获取抄方医生数据 (如果存在抄方操作) - if(!empty($order_inquiry['transfer_doctor_id'])){ - $params = array(); - $params['doctor_id'] = $order_inquiry['transfer_doctor_id']; - $user_doctor = UserDoctor::getOne($params); - if (empty($user_doctor)) { - Log::getInstance("queue-AutoPharmacistCaVerify")->error("错误:抄方医生数据错误"); - return Result::ACK; - } - } - // 获取用户数据 $params = array(); $params['patient_id'] = $order_prescription['patient_id']; @@ -283,7 +275,16 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage // 药师审核成功 // 发送IM消息-处方已开具 $imService = new ImService(); - $imService->prescriptionIssued($order_inquiry,$user_doctor['user_id'],$order_inquiry['user_id'],$product_name,(string)$data['order_prescription_id'],7); + + $doctor_im_id = $user_doctor['user_id']; + //如果为抄方,则发送给原医生IM + if(!empty($order_inquiry["transfer_doctor_id"])){ + $params = array(); + $params['doctor_id'] = $order_inquiry['doctor_id']; + $user_doctor = UserDoctor::getOne($params); + $doctor_im_id = $user_doctor['user_id']; + } + $imService->prescriptionIssued($order_inquiry,$doctor_im_id,$order_inquiry['user_id'],$product_name,(string)$data['order_prescription_id'],7); // 发送站内、短信消息-患者的处方被药师审核通过 $MessagePush = new MessagePush($order_inquiry['user_id'],$order_inquiry['inquiry_no']); From af95e480a89872cc6541c6500720606608b6fdc3 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 11:35:12 +0800 Subject: [PATCH 08/66] =?UTF-8?q?=E5=A4=84=E7=90=86=E6=82=A3=E8=80=85?= =?UTF-8?q?=E7=AB=AF=EF=BC=8C=E6=8A=84=E6=96=B9=E8=AE=A2=E5=8D=95=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 19 +++++++++++++++++++ app/Services/UserDoctorService.php | 4 ---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 2e3ff5f..aa8cce0 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -1998,6 +1998,25 @@ class PatientOrderService extends BaseService $order_prescription = OrderPrescription::getWithPage($params, ['*'], $page, $per_page); if (!empty($order_prescription['data'])) { foreach ($order_prescription['data'] as &$item) { + + //处理抄方情况 + $params = array(); + $params['order_inquiry_id'] = $item['order_inquiry_id']; + $OrderInquiry = OrderInquiry::getOne($params); + if (!empty($OrderInquiry)) { + //为抄方订单 + if (!empty($OrderInquiry['transfer_doctor_id'])) { + $params = array(); + $params['doctor_id'] = $OrderInquiry['transfer_doctor_id']; + $fields = ['doctor_id','user_name','doctor_title']; + + $UserDoctor = UserDoctor::getOne($params, $fields); + if (!empty($UserDoctor)) { + $item['UserDoctor'] = $UserDoctor->toArray(); + } + } + } + if (!empty($item['UserDoctor'])) { $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); } diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index e8b5968..cb9031f 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1349,12 +1349,8 @@ class UserDoctorService extends BaseService $params['multi_point_status'] = 1; $transfer_prescription_list = UserDoctor::getList($params); if (!empty($transfer_prescription_list)) { - dump($transfer_prescription_list); $transfer_doctor = $transfer_prescription_list[0];//取第一个抄方医生 $is_transfer_prescription = true; - - dump($transfer_doctor); - //修改抄方医生id $data = array(); $data['transfer_doctor_id'] = $transfer_doctor['doctor_id']; From e0e551aa599f58806b4452dbbd3a190060a66e64 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 11:48:43 +0800 Subject: [PATCH 09/66] =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index aa8cce0..d367ee5 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -2002,19 +2002,46 @@ class PatientOrderService extends BaseService //处理抄方情况 $params = array(); $params['order_inquiry_id'] = $item['order_inquiry_id']; + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("处理抄方情况开始", [ + 'order_prescription_id' => $item['order_prescription_id'] ?? null, + 'order_inquiry_id' => $item['order_inquiry_id'] ?? null, + ]); $OrderInquiry = OrderInquiry::getOne($params); if (!empty($OrderInquiry)) { + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("查询到OrderInquiry", [ + 'order_inquiry_id' => $OrderInquiry['order_inquiry_id'] ?? null, + 'transfer_doctor_id' => $OrderInquiry['transfer_doctor_id'] ?? null, + ]); //为抄方订单 if (!empty($OrderInquiry['transfer_doctor_id'])) { $params = array(); $params['doctor_id'] = $OrderInquiry['transfer_doctor_id']; $fields = ['doctor_id','user_name','doctor_title']; + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("查询UserDoctor", [ + 'transfer_doctor_id' => $OrderInquiry['transfer_doctor_id'], + ]); $UserDoctor = UserDoctor::getOne($params, $fields); if (!empty($UserDoctor)) { $item['UserDoctor'] = $UserDoctor->toArray(); + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("成功设置UserDoctor", [ + 'doctor_id' => $UserDoctor['doctor_id'] ?? null, + 'user_name' => $UserDoctor['user_name'] ?? null, + ]); + } else { + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->warning("未查询到UserDoctor", [ + 'transfer_doctor_id' => $OrderInquiry['transfer_doctor_id'], + ]); } + } else { + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("OrderInquiry中transfer_doctor_id为空", [ + 'order_inquiry_id' => $OrderInquiry['order_inquiry_id'] ?? null, + ]); } + } else { + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("未查询到OrderInquiry", [ + 'order_inquiry_id' => $item['order_inquiry_id'] ?? null, + ]); } if (!empty($item['UserDoctor'])) { From 2e7d3363ae1a181a315ed98c1d521fd5b56c9534 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 11:56:08 +0800 Subject: [PATCH 10/66] =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 118 +++++++++++++++------------ 1 file changed, 66 insertions(+), 52 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index d367ee5..d6a991c 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -1985,72 +1985,86 @@ class PatientOrderService extends BaseService */ public function getPatientPrescriptionOrderList(): array { - $user_info = $this->request->getAttribute("userInfo") ?? []; - $page = $this->request->input('page', 1); - $per_page = $this->request->input('per_page', 10); + try { + $user_info = $this->request->getAttribute("userInfo") ?? []; + $page = $this->request->input('page', 1); + $per_page = $this->request->input('per_page', 10); - // 获取处方数据 - $params = array(); - $params['patient_id'] = $user_info['client_user_id']; - $params['pharmacist_audit_status'] = 1; - $params['platform_audit_status'] = 1; - $params['is_delete'] = 0; - $order_prescription = OrderPrescription::getWithPage($params, ['*'], $page, $per_page); - if (!empty($order_prescription['data'])) { - foreach ($order_prescription['data'] as &$item) { + // 获取处方数据 + $params = array(); + $params['patient_id'] = $user_info['client_user_id']; + $params['pharmacist_audit_status'] = 1; + $params['platform_audit_status'] = 1; + $params['is_delete'] = 0; + $order_prescription = OrderPrescription::getWithPage($params, ['*'], $page, $per_page); + if (!empty($order_prescription['data'])) { + foreach ($order_prescription['data'] as &$item) { - //处理抄方情况 - $params = array(); - $params['order_inquiry_id'] = $item['order_inquiry_id']; - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("处理抄方情况开始", [ - 'order_prescription_id' => $item['order_prescription_id'] ?? null, - 'order_inquiry_id' => $item['order_inquiry_id'] ?? null, - ]); - $OrderInquiry = OrderInquiry::getOne($params); - if (!empty($OrderInquiry)) { - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("查询到OrderInquiry", [ - 'order_inquiry_id' => $OrderInquiry['order_inquiry_id'] ?? null, - 'transfer_doctor_id' => $OrderInquiry['transfer_doctor_id'] ?? null, + //处理抄方情况 + $params = array(); + $params['order_inquiry_id'] = $item['order_inquiry_id']; + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("处理抄方情况开始", [ + 'order_prescription_id' => $item['order_prescription_id'] ?? null, + 'order_inquiry_id' => $item['order_inquiry_id'] ?? null, ]); - //为抄方订单 - if (!empty($OrderInquiry['transfer_doctor_id'])) { - $params = array(); - $params['doctor_id'] = $OrderInquiry['transfer_doctor_id']; - $fields = ['doctor_id','user_name','doctor_title']; - - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("查询UserDoctor", [ - 'transfer_doctor_id' => $OrderInquiry['transfer_doctor_id'], + $OrderInquiry = OrderInquiry::getOne($params); + if (!empty($OrderInquiry)) { + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("查询到OrderInquiry", [ + 'order_inquiry_id' => $OrderInquiry['order_inquiry_id'] ?? null, + 'transfer_doctor_id' => $OrderInquiry['transfer_doctor_id'] ?? null, ]); - $UserDoctor = UserDoctor::getOne($params, $fields); - if (!empty($UserDoctor)) { - $item['UserDoctor'] = $UserDoctor->toArray(); - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("成功设置UserDoctor", [ - 'doctor_id' => $UserDoctor['doctor_id'] ?? null, - 'user_name' => $UserDoctor['user_name'] ?? null, - ]); - } else { - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->warning("未查询到UserDoctor", [ + //为抄方订单 + if (!empty($OrderInquiry['transfer_doctor_id'])) { + $params = array(); + $params['doctor_id'] = $OrderInquiry['transfer_doctor_id']; + $fields = ['doctor_id','user_name','doctor_title']; + + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("查询UserDoctor", [ 'transfer_doctor_id' => $OrderInquiry['transfer_doctor_id'], ]); + $UserDoctor = UserDoctor::getOne($params, $fields); + if (!empty($UserDoctor)) { + $item['UserDoctor'] = $UserDoctor->toArray(); + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("成功设置UserDoctor", [ + 'doctor_id' => $UserDoctor['doctor_id'] ?? null, + 'user_name' => $UserDoctor['user_name'] ?? null, + ]); + } else { + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->warning("未查询到UserDoctor", [ + 'transfer_doctor_id' => $OrderInquiry['transfer_doctor_id'], + ]); + } + } else { + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("OrderInquiry中transfer_doctor_id为空", [ + 'order_inquiry_id' => $OrderInquiry['order_inquiry_id'] ?? null, + ]); } } else { - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("OrderInquiry中transfer_doctor_id为空", [ - 'order_inquiry_id' => $OrderInquiry['order_inquiry_id'] ?? null, + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("未查询到OrderInquiry", [ + 'order_inquiry_id' => $item['order_inquiry_id'] ?? null, ]); } - } else { - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("未查询到OrderInquiry", [ - 'order_inquiry_id' => $item['order_inquiry_id'] ?? null, - ]); - } - if (!empty($item['UserDoctor'])) { - $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); + if (!empty($item['UserDoctor'])) { + $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); + } } } - } - return success($order_prescription); + return success($order_prescription); + } catch (\Throwable $e) { + $user_info = $this->request->getAttribute("userInfo") ?? []; + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->error("获取处方订单列表异常", [ + 'message' => $e->getMessage(), + 'file' => $e->getFile(), + 'line' => $e->getLine(), + 'trace' => $e->getTraceAsString(), + 'patient_id' => $user_info['client_user_id'] ?? null, + 'page' => $this->request->input('page', 1), + 'per_page' => $this->request->input('per_page', 10), + ]); + return fail(HttpEnumCode::SERVER_ERROR, "获取处方订单列表失败"); + } } /** From 3ef077b261e0e5fb2aa16c988fc9e49b5ce486f7 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 12:00:21 +0800 Subject: [PATCH 11/66] =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index d6a991c..3fbd37a 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -1999,6 +1999,10 @@ class PatientOrderService extends BaseService $order_prescription = OrderPrescription::getWithPage($params, ['*'], $page, $per_page); if (!empty($order_prescription['data'])) { foreach ($order_prescription['data'] as &$item) { + // 将模型对象转换为数组,避免间接修改重载元素错误 + if (is_object($item)) { + $item = $item->toArray(); + } //处理抄方情况 $params = array(); From ee00b234147835ebc7d9d690de3e854b355fa5c0 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 12:08:21 +0800 Subject: [PATCH 12/66] =?UTF-8?q?=E5=A4=84=E7=90=86=E6=8A=84=E6=96=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 55 ++++------------------------ 1 file changed, 7 insertions(+), 48 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 3fbd37a..b69b090 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -1999,74 +1999,33 @@ class PatientOrderService extends BaseService $order_prescription = OrderPrescription::getWithPage($params, ['*'], $page, $per_page); if (!empty($order_prescription['data'])) { foreach ($order_prescription['data'] as &$item) { - // 将模型对象转换为数组,避免间接修改重载元素错误 - if (is_object($item)) { - $item = $item->toArray(); - } - //处理抄方情况 $params = array(); $params['order_inquiry_id'] = $item['order_inquiry_id']; - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("处理抄方情况开始", [ - 'order_prescription_id' => $item['order_prescription_id'] ?? null, - 'order_inquiry_id' => $item['order_inquiry_id'] ?? null, - ]); $OrderInquiry = OrderInquiry::getOne($params); if (!empty($OrderInquiry)) { - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("查询到OrderInquiry", [ - 'order_inquiry_id' => $OrderInquiry['order_inquiry_id'] ?? null, - 'transfer_doctor_id' => $OrderInquiry['transfer_doctor_id'] ?? null, - ]); //为抄方订单 if (!empty($OrderInquiry['transfer_doctor_id'])) { $params = array(); - $params['doctor_id'] = $OrderInquiry['transfer_doctor_id']; + //若为抄方订单则显示原订单医生信息 + $params['doctor_id'] = $OrderInquiry['doctor_id']; $fields = ['doctor_id','user_name','doctor_title']; - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("查询UserDoctor", [ - 'transfer_doctor_id' => $OrderInquiry['transfer_doctor_id'], - ]); $UserDoctor = UserDoctor::getOne($params, $fields); if (!empty($UserDoctor)) { - $item['UserDoctor'] = $UserDoctor->toArray(); - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("成功设置UserDoctor", [ - 'doctor_id' => $UserDoctor['doctor_id'] ?? null, - 'user_name' => $UserDoctor['user_name'] ?? null, - ]); - } else { - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->warning("未查询到UserDoctor", [ - 'transfer_doctor_id' => $OrderInquiry['transfer_doctor_id'], - ]); + $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($UserDoctor['doctor_title']); + } + }else{ + if (!empty($item['UserDoctor'])) { + $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); } - } else { - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("OrderInquiry中transfer_doctor_id为空", [ - 'order_inquiry_id' => $OrderInquiry['order_inquiry_id'] ?? null, - ]); } - } else { - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("未查询到OrderInquiry", [ - 'order_inquiry_id' => $item['order_inquiry_id'] ?? null, - ]); - } - - if (!empty($item['UserDoctor'])) { - $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); } } } return success($order_prescription); } catch (\Throwable $e) { - $user_info = $this->request->getAttribute("userInfo") ?? []; - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->error("获取处方订单列表异常", [ - 'message' => $e->getMessage(), - 'file' => $e->getFile(), - 'line' => $e->getLine(), - 'trace' => $e->getTraceAsString(), - 'patient_id' => $user_info['client_user_id'] ?? null, - 'page' => $this->request->input('page', 1), - 'per_page' => $this->request->input('per_page', 10), - ]); return fail(HttpEnumCode::SERVER_ERROR, "获取处方订单列表失败"); } } From 438b5293cd4ff240252fcdb6bad96e420d05dbd1 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 12:20:48 +0800 Subject: [PATCH 13/66] 231 --- app/Services/PatientOrderService.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index b69b090..20c0a64 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -1999,6 +1999,11 @@ class PatientOrderService extends BaseService $order_prescription = OrderPrescription::getWithPage($params, ['*'], $page, $per_page); if (!empty($order_prescription['data'])) { foreach ($order_prescription['data'] as &$item) { + // 将模型对象转换为数组,避免间接修改重载元素错误 + if (is_object($item)) { + $item = $item->toArray(); + } + //处理抄方情况 $params = array(); $params['order_inquiry_id'] = $item['order_inquiry_id']; @@ -2013,14 +2018,18 @@ class PatientOrderService extends BaseService $UserDoctor = UserDoctor::getOne($params, $fields); if (!empty($UserDoctor)) { - $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($UserDoctor['doctor_title']); - } - }else{ - if (!empty($item['UserDoctor'])) { - $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); + $item['UserDoctor'] = $UserDoctor->toArray(); } } } + + if (!empty($item['UserDoctor'])) { + // 确保 UserDoctor 也是数组格式 + if (is_object($item['UserDoctor'])) { + $item['UserDoctor'] = $item['UserDoctor']->toArray(); + } + $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); + } } } From 80909e0ea222893435079d417bc7703a6c5a8419 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 13:11:36 +0800 Subject: [PATCH 14/66] =?UTF-8?q?=E4=B8=BA2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 20c0a64..12f2fdc 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -1999,10 +1999,7 @@ class PatientOrderService extends BaseService $order_prescription = OrderPrescription::getWithPage($params, ['*'], $page, $per_page); if (!empty($order_prescription['data'])) { foreach ($order_prescription['data'] as &$item) { - // 将模型对象转换为数组,避免间接修改重载元素错误 - if (is_object($item)) { - $item = $item->toArray(); - } + //处理抄方情况 $params = array(); @@ -2012,23 +2009,19 @@ class PatientOrderService extends BaseService //为抄方订单 if (!empty($OrderInquiry['transfer_doctor_id'])) { $params = array(); - //若为抄方订单则显示原订单医生信息 + //若为抄方订单则显示原订单 $params['doctor_id'] = $OrderInquiry['doctor_id']; $fields = ['doctor_id','user_name','doctor_title']; $UserDoctor = UserDoctor::getOne($params, $fields); if (!empty($UserDoctor)) { - $item['UserDoctor'] = $UserDoctor->toArray(); + $item['UserDoctor'] = $UserDoctor; } } } if (!empty($item['UserDoctor'])) { - // 确保 UserDoctor 也是数组格式 - if (is_object($item['UserDoctor'])) { - $item['UserDoctor'] = $item['UserDoctor']->toArray(); - } - $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); + $item['UserDoctor']->doctor_title = DoctorTitleCode::getMessage($item['UserDoctor']->doctor_title); } } } From 484f2b9826b9e5888429d4fa284c2b7a69605ca7 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 13:12:03 +0800 Subject: [PATCH 15/66] =?UTF-8?q?=E5=8F=91=E9=80=812?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 12f2fdc..5d2189d 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -2028,6 +2028,12 @@ class PatientOrderService extends BaseService return success($order_prescription); } catch (\Throwable $e) { + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->error("获取处方订单列表异常", [ + 'message' => $e->getMessage(), + 'file' => $e->getFile(), + 'line' => $e->getLine(), + 'trace' => $e->getTraceAsString(), + ]); return fail(HttpEnumCode::SERVER_ERROR, "获取处方订单列表失败"); } } From b1be3e9acc538e368e367cf53ee487193a058f76 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 13:14:41 +0800 Subject: [PATCH 16/66] 111 --- app/Services/PatientOrderService.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 5d2189d..424d4b7 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -2015,6 +2015,10 @@ class PatientOrderService extends BaseService $UserDoctor = UserDoctor::getOne($params, $fields); if (!empty($UserDoctor)) { + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("成功设置UserDoctor", [ + 'doctor_id' => $UserDoctor['doctor_id'] ?? null, + 'user_name' => $UserDoctor['user_name'] ?? null, + ]); $item['UserDoctor'] = $UserDoctor; } } From 0852c0912f4474ed332e27d3a99d1e6941e8ba65 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 13:21:00 +0800 Subject: [PATCH 17/66] 22 --- app/Services/PatientOrderService.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 424d4b7..cd12b8c 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -2015,17 +2015,13 @@ class PatientOrderService extends BaseService $UserDoctor = UserDoctor::getOne($params, $fields); if (!empty($UserDoctor)) { - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("成功设置UserDoctor", [ - 'doctor_id' => $UserDoctor['doctor_id'] ?? null, - 'user_name' => $UserDoctor['user_name'] ?? null, - ]); $item['UserDoctor'] = $UserDoctor; } } } if (!empty($item['UserDoctor'])) { - $item['UserDoctor']->doctor_title = DoctorTitleCode::getMessage($item['UserDoctor']->doctor_title); + $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); } } } From 3e28a4291f323e74a5aaf06f4be2b497ce82e975 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 13:25:30 +0800 Subject: [PATCH 18/66] =?UTF-8?q?=E8=80=8C=E5=91=83=E5=91=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index cd12b8c..ecab684 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -1999,7 +1999,10 @@ class PatientOrderService extends BaseService $order_prescription = OrderPrescription::getWithPage($params, ['*'], $page, $per_page); if (!empty($order_prescription['data'])) { foreach ($order_prescription['data'] as &$item) { - + + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("item 原来", [ + 'item["UserDoctor"]' => $item['UserDoctor']->toArray(), + ]); //处理抄方情况 $params = array(); @@ -2015,6 +2018,11 @@ class PatientOrderService extends BaseService $UserDoctor = UserDoctor::getOne($params, $fields); if (!empty($UserDoctor)) { + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("成功设置UserDoctor", [ + 'doctor_id' => $UserDoctor['doctor_id'] ?? null, + 'user_name' => $UserDoctor['user_name'] ?? null, + 'doctor_title' => $UserDoctor['doctor_title'] ?? null, + ]); $item['UserDoctor'] = $UserDoctor; } } @@ -2023,6 +2031,10 @@ class PatientOrderService extends BaseService if (!empty($item['UserDoctor'])) { $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); } + + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("item 最终", [ + 'item["UserDoctor"]' => $item['UserDoctor']->toArray(), + ]); } } From c7841f87f8d60e4e702f983c067d5c1ab31b54f5 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 13:31:47 +0800 Subject: [PATCH 19/66] 55 --- app/Services/PatientOrderService.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index ecab684..a2a8521 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -2023,13 +2023,24 @@ class PatientOrderService extends BaseService 'user_name' => $UserDoctor['user_name'] ?? null, 'doctor_title' => $UserDoctor['doctor_title'] ?? null, ]); - $item['UserDoctor'] = $UserDoctor; + // 使用 setRelation 方法确保关联对象正确设置 + $item->setRelation('UserDoctor', $UserDoctor); } } } if (!empty($item['UserDoctor'])) { - $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); + // 获取关联对象,优先使用关系访问方式 + $userDoctor = $item->getRelation('UserDoctor') ?? $item['UserDoctor']; + if (is_object($userDoctor)) { + // 使用对象属性语法修改 + $userDoctor->doctor_title = DoctorTitleCode::getMessage($userDoctor->doctor_title); + // 确保修改后的对象重新设置到关系中 + $item->setRelation('UserDoctor', $userDoctor); + } else { + // 如果是数组,直接修改数组 + $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); + } } Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("item 最终", [ From 3f02c0547e880ad50e626cb68f4e913f05f75036 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 13:36:20 +0800 Subject: [PATCH 20/66] 666 --- app/Services/PatientOrderService.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index a2a8521..80a000b 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -2023,8 +2023,9 @@ class PatientOrderService extends BaseService 'user_name' => $UserDoctor['user_name'] ?? null, 'doctor_title' => $UserDoctor['doctor_title'] ?? null, ]); - // 使用 setRelation 方法确保关联对象正确设置 + // 同时使用 setRelation 和数组赋值,确保无论是通过关系访问还是数组访问都能获取到新对象 $item->setRelation('UserDoctor', $UserDoctor); + $item['UserDoctor'] = $UserDoctor; } } } @@ -2035,8 +2036,9 @@ class PatientOrderService extends BaseService if (is_object($userDoctor)) { // 使用对象属性语法修改 $userDoctor->doctor_title = DoctorTitleCode::getMessage($userDoctor->doctor_title); - // 确保修改后的对象重新设置到关系中 + // 确保修改后的对象同时设置到关系和数组中 $item->setRelation('UserDoctor', $userDoctor); + $item['UserDoctor'] = $userDoctor; } else { // 如果是数组,直接修改数组 $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); From 0c1f78803ed4f97dd3080045e50be98e67cd3eac Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 13:41:59 +0800 Subject: [PATCH 21/66] 77 --- app/Services/PatientOrderService.php | 37 ++++++++-------------------- 1 file changed, 10 insertions(+), 27 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 80a000b..d9a01a7 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -1997,13 +1997,11 @@ class PatientOrderService extends BaseService $params['platform_audit_status'] = 1; $params['is_delete'] = 0; $order_prescription = OrderPrescription::getWithPage($params, ['*'], $page, $per_page); + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("order_prescription", [ + 'order_prescription' => $order_prescription, + ]); if (!empty($order_prescription['data'])) { foreach ($order_prescription['data'] as &$item) { - - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("item 原来", [ - 'item["UserDoctor"]' => $item['UserDoctor']->toArray(), - ]); - //处理抄方情况 $params = array(); $params['order_inquiry_id'] = $item['order_inquiry_id']; @@ -2018,39 +2016,24 @@ class PatientOrderService extends BaseService $UserDoctor = UserDoctor::getOne($params, $fields); if (!empty($UserDoctor)) { - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("成功设置UserDoctor", [ - 'doctor_id' => $UserDoctor['doctor_id'] ?? null, - 'user_name' => $UserDoctor['user_name'] ?? null, - 'doctor_title' => $UserDoctor['doctor_title'] ?? null, + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("修改 UserDoctor", [ + 'UserDoctor' => $UserDoctor->toArray(), ]); - // 同时使用 setRelation 和数组赋值,确保无论是通过关系访问还是数组访问都能获取到新对象 - $item->setRelation('UserDoctor', $UserDoctor); $item['UserDoctor'] = $UserDoctor; } } } if (!empty($item['UserDoctor'])) { - // 获取关联对象,优先使用关系访问方式 - $userDoctor = $item->getRelation('UserDoctor') ?? $item['UserDoctor']; - if (is_object($userDoctor)) { - // 使用对象属性语法修改 - $userDoctor->doctor_title = DoctorTitleCode::getMessage($userDoctor->doctor_title); - // 确保修改后的对象同时设置到关系和数组中 - $item->setRelation('UserDoctor', $userDoctor); - $item['UserDoctor'] = $userDoctor; - } else { - // 如果是数组,直接修改数组 - $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); - } + $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); } - - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("item 最终", [ - 'item["UserDoctor"]' => $item['UserDoctor']->toArray(), - ]); } } + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("order_prescription 最终", [ + 'order_prescription' => $order_prescription, + ]); + return success($order_prescription); } catch (\Throwable $e) { Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->error("获取处方订单列表异常", [ From 755fb711a957d5ed25ca4cd52505d47c11c26e4e Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 13:50:00 +0800 Subject: [PATCH 22/66] =?UTF-8?q?=E5=A4=9A=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index d9a01a7..9d86f78 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -1997,11 +1997,12 @@ class PatientOrderService extends BaseService $params['platform_audit_status'] = 1; $params['is_delete'] = 0; $order_prescription = OrderPrescription::getWithPage($params, ['*'], $page, $per_page); - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("order_prescription", [ - 'order_prescription' => $order_prescription, - ]); - if (!empty($order_prescription['data'])) { - foreach ($order_prescription['data'] as &$item) { + + // 创建新的数据副本 + $order_prescription_new = $order_prescription; + + if (!empty($order_prescription_new['data'])) { + foreach ($order_prescription_new['data'] as &$item) { //处理抄方情况 $params = array(); $params['order_inquiry_id'] = $item['order_inquiry_id']; @@ -2013,12 +2014,8 @@ class PatientOrderService extends BaseService //若为抄方订单则显示原订单 $params['doctor_id'] = $OrderInquiry['doctor_id']; $fields = ['doctor_id','user_name','doctor_title']; - $UserDoctor = UserDoctor::getOne($params, $fields); if (!empty($UserDoctor)) { - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("修改 UserDoctor", [ - 'UserDoctor' => $UserDoctor->toArray(), - ]); $item['UserDoctor'] = $UserDoctor; } } @@ -2030,11 +2027,8 @@ class PatientOrderService extends BaseService } } - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("order_prescription 最终", [ - 'order_prescription' => $order_prescription, - ]); - return success($order_prescription); + return success($order_prescription_new); } catch (\Throwable $e) { Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->error("获取处方订单列表异常", [ 'message' => $e->getMessage(), From 9f53e9551e47bc9bd8091c2d3842a28a892dfc2c Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 13:57:43 +0800 Subject: [PATCH 23/66] =?UTF-8?q?=E4=B8=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 31 +++++++++++++++++++++------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 9d86f78..437071c 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -1998,14 +1998,26 @@ class PatientOrderService extends BaseService $params['is_delete'] = 0; $order_prescription = OrderPrescription::getWithPage($params, ['*'], $page, $per_page); - // 创建新的数据副本 - $order_prescription_new = $order_prescription; + // 创建新的数据副本,初始化为空,保留分页信息 + $order_prescription_new = []; + if (!empty($order_prescription)) { + // 复制分页信息等非data字段 + foreach ($order_prescription as $key => $value) { + if ($key !== 'data') { + $order_prescription_new[$key] = $value; + } + } + $order_prescription_new['data'] = []; + } - if (!empty($order_prescription_new['data'])) { - foreach ($order_prescription_new['data'] as &$item) { + if (!empty($order_prescription['data'])) { + foreach ($order_prescription['data'] as $item) { + // 复制原始item数据 + $new_item = $item; + //处理抄方情况 $params = array(); - $params['order_inquiry_id'] = $item['order_inquiry_id']; + $params['order_inquiry_id'] = $new_item['order_inquiry_id']; $OrderInquiry = OrderInquiry::getOne($params); if (!empty($OrderInquiry)) { //为抄方订单 @@ -2016,14 +2028,17 @@ class PatientOrderService extends BaseService $fields = ['doctor_id','user_name','doctor_title']; $UserDoctor = UserDoctor::getOne($params, $fields); if (!empty($UserDoctor)) { - $item['UserDoctor'] = $UserDoctor; + $new_item['UserDoctor'] = $UserDoctor; } } } - if (!empty($item['UserDoctor'])) { - $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); + if (!empty($new_item['UserDoctor'])) { + $new_item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($new_item['UserDoctor']['doctor_title']); } + + // 将处理后的数据添加到新数组中 + $order_prescription_new['data'][] = $new_item; } } From 145045b34bf1bd7bc71ce4dc687dd1f1c24e0db1 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 14:10:58 +0800 Subject: [PATCH 24/66] =?UTF-8?q?=E9=97=AE=E9=97=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 34 ++++++++-------------------- 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 437071c..3264eee 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -1998,26 +1998,11 @@ class PatientOrderService extends BaseService $params['is_delete'] = 0; $order_prescription = OrderPrescription::getWithPage($params, ['*'], $page, $per_page); - // 创建新的数据副本,初始化为空,保留分页信息 - $order_prescription_new = []; - if (!empty($order_prescription)) { - // 复制分页信息等非data字段 - foreach ($order_prescription as $key => $value) { - if ($key !== 'data') { - $order_prescription_new[$key] = $value; - } - } - $order_prescription_new['data'] = []; - } - if (!empty($order_prescription['data'])) { - foreach ($order_prescription['data'] as $item) { - // 复制原始item数据 - $new_item = $item; - + foreach ($order_prescription['data'] as &$item) { //处理抄方情况 $params = array(); - $params['order_inquiry_id'] = $new_item['order_inquiry_id']; + $params['order_inquiry_id'] = $item['order_inquiry_id']; $OrderInquiry = OrderInquiry::getOne($params); if (!empty($OrderInquiry)) { //为抄方订单 @@ -2028,22 +2013,23 @@ class PatientOrderService extends BaseService $fields = ['doctor_id','user_name','doctor_title']; $UserDoctor = UserDoctor::getOne($params, $fields); if (!empty($UserDoctor)) { - $new_item['UserDoctor'] = $UserDoctor; + // 使用 setRelation 方法覆盖已加载的关联数据 + $item->setRelation('UserDoctor', $UserDoctor); } } } - if (!empty($new_item['UserDoctor'])) { - $new_item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($new_item['UserDoctor']['doctor_title']); + // 获取 UserDoctor 关联对象并修改 doctor_title + $userDoctor = $item->getRelation('UserDoctor'); + if (!empty($userDoctor)) { + // 修改模型属性 + $userDoctor->doctor_title = DoctorTitleCode::getMessage($userDoctor->doctor_title); } - - // 将处理后的数据添加到新数组中 - $order_prescription_new['data'][] = $new_item; } } - return success($order_prescription_new); + return success($order_prescription); } catch (\Throwable $e) { Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->error("获取处方订单列表异常", [ 'message' => $e->getMessage(), From 373d50aba97d984018479af530668696e1823fde Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 14:18:41 +0800 Subject: [PATCH 25/66] 454 --- app/Services/PatientOrderService.php | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 3264eee..08097f6 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -2004,6 +2004,15 @@ class PatientOrderService extends BaseService $params = array(); $params['order_inquiry_id'] = $item['order_inquiry_id']; $OrderInquiry = OrderInquiry::getOne($params); + // 打印原始的 UserDoctor 数据 + $originalUserDoctor = $item->getRelation('UserDoctor'); + if (!empty($originalUserDoctor)) { + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("原始 UserDoctor 数据", [ + 'order_prescription_id' => $item['order_prescription_id'], + 'original_user_doctor' => $originalUserDoctor->toArray() + ]); + } + if (!empty($OrderInquiry)) { //为抄方订单 if (!empty($OrderInquiry['transfer_doctor_id'])) { @@ -2024,10 +2033,32 @@ class PatientOrderService extends BaseService if (!empty($userDoctor)) { // 修改模型属性 $userDoctor->doctor_title = DoctorTitleCode::getMessage($userDoctor->doctor_title); + + // 打印最终的 UserDoctor 数据 + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("最终返回的 UserDoctor 数据", [ + 'order_prescription_id' => $item['order_prescription_id'], + 'final_user_doctor' => $userDoctor->toArray() + ]); } } } + // 打印最终返回的数据摘要(可选,用于调试) + if (!empty($order_prescription['data'])) { + $summary = []; + foreach ($order_prescription['data'] as $item) { + $userDoctor = is_object($item) ? $item->getRelation('UserDoctor') : ($item['UserDoctor'] ?? null); + $summary[] = [ + 'order_prescription_id' => is_object($item) ? $item['order_prescription_id'] : $item['order_prescription_id'], + 'user_doctor' => $userDoctor ? (is_object($userDoctor) ? $userDoctor->toArray() : $userDoctor) : null + ]; + } + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("最终返回的数据摘要", [ + 'total' => $order_prescription['total'] ?? 0, + 'current_page' => $order_prescription['current_page'] ?? 1, + 'data_summary' => $summary + ]); + } return success($order_prescription); } catch (\Throwable $e) { From bdd9375ab6128d3870ac9d1c02c73cb449d09d12 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 14:39:20 +0800 Subject: [PATCH 26/66] 45 --- app/Services/PatientOrderService.php | 43 ++++------------------------ 1 file changed, 5 insertions(+), 38 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 08097f6..3e5bcd0 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -2004,15 +2004,6 @@ class PatientOrderService extends BaseService $params = array(); $params['order_inquiry_id'] = $item['order_inquiry_id']; $OrderInquiry = OrderInquiry::getOne($params); - // 打印原始的 UserDoctor 数据 - $originalUserDoctor = $item->getRelation('UserDoctor'); - if (!empty($originalUserDoctor)) { - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("原始 UserDoctor 数据", [ - 'order_prescription_id' => $item['order_prescription_id'], - 'original_user_doctor' => $originalUserDoctor->toArray() - ]); - } - if (!empty($OrderInquiry)) { //为抄方订单 if (!empty($OrderInquiry['transfer_doctor_id'])) { @@ -2020,46 +2011,22 @@ class PatientOrderService extends BaseService //若为抄方订单则显示原订单 $params['doctor_id'] = $OrderInquiry['doctor_id']; $fields = ['doctor_id','user_name','doctor_title']; - $UserDoctor = UserDoctor::getOne($params, $fields); - if (!empty($UserDoctor)) { - // 使用 setRelation 方法覆盖已加载的关联数据 - $item->setRelation('UserDoctor', $UserDoctor); + $TransferDoctor = UserDoctor::getOne($params, $fields); + if (!empty($TransferDoctor)) { + $TransferDoctor->doctor_title = DoctorTitleCode::getMessage($TransferDoctor->doctor_title); + $item['TransferDoctor'] = $TransferDoctor; } } } // 获取 UserDoctor 关联对象并修改 doctor_title - $userDoctor = $item->getRelation('UserDoctor'); + $userDoctor = $item['UserDoctor']; if (!empty($userDoctor)) { // 修改模型属性 $userDoctor->doctor_title = DoctorTitleCode::getMessage($userDoctor->doctor_title); - - // 打印最终的 UserDoctor 数据 - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("最终返回的 UserDoctor 数据", [ - 'order_prescription_id' => $item['order_prescription_id'], - 'final_user_doctor' => $userDoctor->toArray() - ]); } } } - - // 打印最终返回的数据摘要(可选,用于调试) - if (!empty($order_prescription['data'])) { - $summary = []; - foreach ($order_prescription['data'] as $item) { - $userDoctor = is_object($item) ? $item->getRelation('UserDoctor') : ($item['UserDoctor'] ?? null); - $summary[] = [ - 'order_prescription_id' => is_object($item) ? $item['order_prescription_id'] : $item['order_prescription_id'], - 'user_doctor' => $userDoctor ? (is_object($userDoctor) ? $userDoctor->toArray() : $userDoctor) : null - ]; - } - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("最终返回的数据摘要", [ - 'total' => $order_prescription['total'] ?? 0, - 'current_page' => $order_prescription['current_page'] ?? 1, - 'data_summary' => $summary - ]); - } - return success($order_prescription); } catch (\Throwable $e) { Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->error("获取处方订单列表异常", [ From c2f67e31d83e769677a4f1acca5eb616ec114d5c Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 14:45:01 +0800 Subject: [PATCH 27/66] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8A=84=E6=96=B9?= =?UTF-8?q?=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 3e5bcd0..781b63d 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -2000,6 +2000,10 @@ class PatientOrderService extends BaseService if (!empty($order_prescription['data'])) { foreach ($order_prescription['data'] as &$item) { + + $item['original_doctor'] = null; + $item['transfer_order'] = false; + //处理抄方情况 $params = array(); $params['order_inquiry_id'] = $item['order_inquiry_id']; @@ -2014,7 +2018,8 @@ class PatientOrderService extends BaseService $TransferDoctor = UserDoctor::getOne($params, $fields); if (!empty($TransferDoctor)) { $TransferDoctor->doctor_title = DoctorTitleCode::getMessage($TransferDoctor->doctor_title); - $item['TransferDoctor'] = $TransferDoctor; + $item['original_doctor'] = $TransferDoctor; + $item['transfer_order'] = true; } } } From f8635a92093e6159b6f0901f670b751db1acac7d Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 14:45:37 +0800 Subject: [PATCH 28/66] ee --- app/Services/PatientOrderService.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 781b63d..8ee3869 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -2015,10 +2015,10 @@ class PatientOrderService extends BaseService //若为抄方订单则显示原订单 $params['doctor_id'] = $OrderInquiry['doctor_id']; $fields = ['doctor_id','user_name','doctor_title']; - $TransferDoctor = UserDoctor::getOne($params, $fields); - if (!empty($TransferDoctor)) { - $TransferDoctor->doctor_title = DoctorTitleCode::getMessage($TransferDoctor->doctor_title); - $item['original_doctor'] = $TransferDoctor; + $OriginalDoctor = UserDoctor::getOne($params, $fields); + if (!empty($OriginalDoctor)) { + $OriginalDoctor->doctor_title = DoctorTitleCode::getMessage($OriginalDoctor->doctor_title); + $item['original_doctor'] = $OriginalDoctor; $item['transfer_order'] = true; } } From cf9636041c50fc6b53bd06fd40031ef567e27d77 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 14:53:39 +0800 Subject: [PATCH 29/66] =?UTF-8?q?=E8=8D=AF=E5=93=81=E5=A2=9E=E5=8A=A0=20?= =?UTF-8?q?=E6=8A=84=E6=96=B9=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 8ee3869..6759271 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -661,8 +661,30 @@ class PatientOrderService extends BaseService 2 ); // 优惠金额 - $result = array(); + $result['transfer_order'] = false; + $result['original_doctor'] = []; + + //查询是否为抄方单 + $params = array(); + $params['order_inquiry_id'] = $order_product['order_inquiry_id']; + $OrderInquiry = OrderInquiry::getOne($params); + if (!empty($OrderInquiry)) { + //为抄方订单 + if (!empty($OrderInquiry['transfer_doctor_id'])) { + $params = array(); + //若为抄方订单则显示原订单 + $params['doctor_id'] = $OrderInquiry['doctor_id']; + $fields = ['doctor_id','user_name','doctor_title']; + $OriginalDoctor = UserDoctor::getOne($params, $fields); + if (!empty($OriginalDoctor)) { + $OriginalDoctor->doctor_title = DoctorTitleCode::getMessage($OriginalDoctor->doctor_title); + $result['original_doctor'] = $OriginalDoctor; + $result['transfer_order'] = true; + } + } + } + $result['user_doctor'] = $user_doctor ?? []; $result['order_product'] = $order_product; $result['order_product_item'] = $order_product_item; @@ -2001,7 +2023,7 @@ class PatientOrderService extends BaseService if (!empty($order_prescription['data'])) { foreach ($order_prescription['data'] as &$item) { - $item['original_doctor'] = null; + $item['original_doctor'] = []; $item['transfer_order'] = false; //处理抄方情况 From ea30873300a1989ba88a4420a41bf8cd59e47fce Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 14:56:29 +0800 Subject: [PATCH 30/66] 56 --- app/Services/PatientOrderService.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 6759271..05e9a57 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -672,11 +672,21 @@ class PatientOrderService extends BaseService if (!empty($OrderInquiry)) { //为抄方订单 if (!empty($OrderInquiry['transfer_doctor_id'])) { + // 获取问诊医生数据 + $fields = [ + 'doctor_id', + 'user_name', + 'multi_point_status', + 'avatar', + 'doctor_title', + 'department_custom_name', + 'be_good_at', + 'hospital_id', + ]; + $params = array(); - //若为抄方订单则显示原订单 - $params['doctor_id'] = $OrderInquiry['doctor_id']; - $fields = ['doctor_id','user_name','doctor_title']; - $OriginalDoctor = UserDoctor::getOne($params, $fields); + $params['doctor_id'] = $order_product['doctor_id']; + $OriginalDoctor = UserDoctor::getWithHospitalOne($params, $fields); if (!empty($OriginalDoctor)) { $OriginalDoctor->doctor_title = DoctorTitleCode::getMessage($OriginalDoctor->doctor_title); $result['original_doctor'] = $OriginalDoctor; From ae03385c1ab8ef620d1b7d266fef60b82d8cc9d2 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 14:57:39 +0800 Subject: [PATCH 31/66] 34 --- app/Services/PatientOrderService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 05e9a57..40bbc3b 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -685,7 +685,7 @@ class PatientOrderService extends BaseService ]; $params = array(); - $params['doctor_id'] = $order_product['doctor_id']; + $params['doctor_id'] = $OrderInquiry['transfer_doctor_id']; $OriginalDoctor = UserDoctor::getWithHospitalOne($params, $fields); if (!empty($OriginalDoctor)) { $OriginalDoctor->doctor_title = DoctorTitleCode::getMessage($OriginalDoctor->doctor_title); From 64d1d8294e799d69efc211e286f0675b55e54da8 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 14:59:43 +0800 Subject: [PATCH 32/66] 89 --- app/Services/PatientOrderService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 40bbc3b..ff890cc 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -685,7 +685,7 @@ class PatientOrderService extends BaseService ]; $params = array(); - $params['doctor_id'] = $OrderInquiry['transfer_doctor_id']; + $params['doctor_id'] = $OrderInquiry['doctor_id']; $OriginalDoctor = UserDoctor::getWithHospitalOne($params, $fields); if (!empty($OriginalDoctor)) { $OriginalDoctor->doctor_title = DoctorTitleCode::getMessage($OriginalDoctor->doctor_title); From 9890ae3b456bd5242968b3a2de9fc8cbd7dddac5 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 16:14:39 +0800 Subject: [PATCH 33/66] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=97=AE=E8=AF=8A?= =?UTF-8?q?=E8=B4=AD=E8=8D=AF=E9=85=8D=E7=BD=AE=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/UserDoctorController.php | 16 ++++ app/Model/OrderPrescription.php | 51 ++++++++++++ app/Services/IndexService.php | 17 ++++ app/Services/UserDoctorService.php | 105 ++++++++++++++++++++++++ config/routes.php | 3 + 5 files changed, 192 insertions(+) diff --git a/app/Controller/UserDoctorController.php b/app/Controller/UserDoctorController.php index 9faaef4..dd5463c 100644 --- a/app/Controller/UserDoctorController.php +++ b/app/Controller/UserDoctorController.php @@ -111,6 +111,22 @@ class UserDoctorController extends AbstractController return $this->response->json($data); } + /** + * 获取处方列表(抄方) + * @return ResponseInterface + * @throws ContainerExceptionInterface + * @throws NotFoundExceptionInterface + */ + public function getTransferPrescriptionList(): ResponseInterface + { + $request = $this->container->get(UserDoctorRequest::class); + $request->scene('getPrescriptionList')->validateResolved(); + + $UserDoctorService = new UserDoctorService(); + $data = $UserDoctorService->getTransferPrescriptionList(); + return $this->response->json($data); + } + /** * 获取医生个人中心数据 * @return ResponseInterface diff --git a/app/Model/OrderPrescription.php b/app/Model/OrderPrescription.php index b9d692f..3c33adf 100644 --- a/app/Model/OrderPrescription.php +++ b/app/Model/OrderPrescription.php @@ -83,6 +83,14 @@ class OrderPrescription extends Model return $this->hasOne(UserDoctor::class, 'doctor_id','doctor_id'); } + /** + * 关联问诊订单表 + */ + public function OrderInquiry(): HasOne + { + return $this->hasOne(OrderInquiry::class, 'order_inquiry_id','order_inquiry_id'); + } + /** * 获取信息-单条 * @param array $params @@ -163,6 +171,49 @@ class OrderPrescription extends Model return $data; } + /** + * 获取处方列表-分页 (抄方) + * @param array $params 条件 + * @param array $fields 字段 + * @param int|null $page 页码 + * @param int|null $per_page 每页个数 + * @return array + */ + public static function getTransferWithIcdPage(array $params, array $fields = ["*"], int $page = null, ?int $per_page = 10): array + { + $query = self::with([ + 'OrderPrescriptionIcd', + 'OrderInquiry' + ]); + + // 如果提供了 doctor_id,则添加 OrderInquiry 表的 doctor_id 条件 + if (isset($params['doctor_id'])) { + $doctorId = $params['doctor_id']; + // 从 $params 中移除 doctor_id,避免在 where($params) 中重复使用 + unset($params['doctor_id']); + $query->whereHas('OrderInquiry', function ($q) use ($doctorId) { + $q->where('doctor_id', $doctorId); + }); + } + + // 应用其他条件 + if (!empty($params)) { + $query->where($params); + } + + $raw = $query->orderBy('created_at','desc') + ->paginate($per_page, $fields, "page", $page); + + $data = array(); + $data['current_page'] = $raw->currentPage();// 当前页码 + $data['total'] = $raw->total();//数据总数 + $data['data'] = $raw->items();//数据 + $data['per_page'] = $raw->perPage();//每页个数 + $data['last_page'] = $raw->lastPage();//最后一页 + + return $data; + } + /** * 修改 * @param array $params diff --git a/app/Services/IndexService.php b/app/Services/IndexService.php index 7fc9ebc..79b026f 100644 --- a/app/Services/IndexService.php +++ b/app/Services/IndexService.php @@ -185,6 +185,23 @@ class IndexService extends BaseService // 在线问诊价格 $inquiry_price = ""; + //检查是否有问诊购药的配置(抄方需要) + if($doctor['idcard_status'] == 1 && $doctor['iden_auth_status'] == 1 && $doctor['is_bind_bank'] == 1){ + $params = array(); + $params['doctor_id'] = $doctor['doctor_id']; + $params['inquiry_type'] = 4; + + $doctor_inquiry_config_gouyao = DoctorInquiryConfigModel::getOne($params); + if(empty($doctor_inquiry_config_gouyao)){ + $data = array(); + $data['doctor_id'] = $doctor['doctor_id']; + $data['inquiry_type'] = 4; + $data['inquiry_mode'] = 1; + $data['is_enable'] = 1; + $data['last_enable_method'] = 1; + DoctorInquiryConfigModel::addInquiryConfig($data); + } + } // 获取医生问诊配置 $params = array(); $params['doctor_id'] = $doctor['doctor_id']; diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index cb9031f..46e1b0f 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -560,6 +560,111 @@ class UserDoctorService extends BaseService return success($order_prescriptions); } + + /** + * 获取处方列表(抄方) + * @return array + */ + public function getTransferPrescriptionList(): array + { + $user_info = $this->request->getAttribute("userInfo") ?? []; + + $pharmacist_audit_status = $this->request->input('pharmacist_audit_status'); + $page = $this->request->input('page', 1); + $per_page = $this->request->input('per_page', 10); + + // 获取医生信息 + $params = array(); + $params['doctor_id'] = $user_info['client_user_id']; + + $fields = [ + 'doctor_id', + 'iden_auth_status', + 'idcard_status', + 'multi_point_status', + ]; + $user_doctor = UserDoctor::getOne($params, $fields); + if (empty($user_doctor)) { + return fail(HttpEnumCode::HTTP_ERROR, "非法医生"); + } + + if ($user_doctor['iden_auth_status'] != 1) { + return fail(HttpEnumCode::HTTP_ERROR, "请先完成身份认证"); + } + + if ($user_doctor['idcard_status'] != 1) { + return fail(HttpEnumCode::HTTP_ERROR, "请先完成实名认证"); + } + + // 获取处方数据 + $params = array(); + $params['doctor_id'] = $user_info['client_user_id']; + $params['pharmacist_audit_status'] = $pharmacist_audit_status; + $params['is_delete'] = 0; + + if ($pharmacist_audit_status == 1){ + // 审核通过 + $params['platform_audit_status'] = 1; + } + + $order_prescriptions = OrderPrescription::getTransferWithIcdPage($params,['*'],$page,$per_page); + if (empty($order_prescriptions)) { + return success($order_prescriptions); + } + + // 处理数据 + $result = array(); + + foreach ($order_prescriptions['data'] as $order_prescription) { + $data = array(); + $data['order_prescription_id'] = $order_prescription['order_prescription_id']; + $data['order_inquiry_id'] = $order_prescription['order_inquiry_id']; + $data['patient_name'] = $order_prescription['patient_name']; + $data['patient_sex'] = $order_prescription['patient_sex']; + $data['patient_age'] = $order_prescription['patient_age']; + $data['created_at'] = date('Y-m-d H:i:s',strtotime($order_prescription['created_at'])); // 开方时间 + $data['pharmacist_audit_status'] = $order_prescription['pharmacist_audit_status'];// 药师审核状态(0:审核中 1:审核成功 2:审核驳回) + $data['pharmacist_fail_reason'] = $order_prescription['pharmacist_fail_reason'];// 驳回原因 + $data['platform_audit_status'] = $order_prescription['platform_audit_status'];// 处方平台审核状态(0:审核中 1:审核成功 2:审核驳回) + $data['platform_fail_reason'] = $order_prescription['platform_fail_reason'];// 处方平台驳回原因 + + // 获取病例信息 + $params = array(); + $params['order_inquiry_id'] = $order_prescription['order_inquiry_id']; + $params['status'] = 1; + $order_inquiry_case = OrderInquiryCase::getOne($params); + if (empty($order_inquiry_case)) { + return fail(HttpEnumCode::SERVER_ERROR); + } + + // 病情描述 + $data['disease_desc'] = $order_inquiry_case['disease_desc']; + + // 患病时长 + if (empty($order_inquiry_case['diagnosis_date'])) { + $data['diagnosis_date'] = ""; + } else { + $data['diagnosis_date'] = date('Y-m-d', strtotime($order_inquiry_case['diagnosis_date'])); + } + + // 疾病信息 + $data['order_prescription_icd'] = $order_prescription['OrderPrescriptionIcd'] ?? []; + + // 患者id + $data['patient_id'] = $order_inquiry_case['patient_id']; + + // 医生id + $data['doctor_id'] = $order_prescription['doctor_id']; + + $result[] = $data; + } + + unset($order_prescriptions['data']); + $order_prescriptions['data'] = $result; + + return success($order_prescriptions); + } + /** * 获取医生个人中心数据 * @return array diff --git a/config/routes.php b/config/routes.php index 3b22197..6b23d14 100644 --- a/config/routes.php +++ b/config/routes.php @@ -243,6 +243,9 @@ Router::addGroup('/doctor', function () { // 获取处方列表 Router::get('', [UserDoctorController::class, 'getPrescriptionList']); + // 获取处方列表(抄方) + Router::get('/transfer', [UserDoctorController::class, 'getTransferPrescriptionList']); + // 获取处方详情 Router::get('/info', [UserDoctorController::class, 'getPrescriptionInfo']); From eaa7a1de85eaac1b6165446c3093c2208bea6af4 Mon Sep 17 00:00:00 2001 From: haomingming Date: Tue, 30 Dec 2025 09:50:50 +0800 Subject: [PATCH 34/66] =?UTF-8?q?=E5=AE=B6=E5=A4=B4=E5=B7=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index ff890cc..6cb7cff 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -688,6 +688,7 @@ class PatientOrderService extends BaseService $params['doctor_id'] = $OrderInquiry['doctor_id']; $OriginalDoctor = UserDoctor::getWithHospitalOne($params, $fields); if (!empty($OriginalDoctor)) { + $OriginalDoctor['avatar'] = addAliyunOssWebsite($OriginalDoctor['avatar']); $OriginalDoctor->doctor_title = DoctorTitleCode::getMessage($OriginalDoctor->doctor_title); $result['original_doctor'] = $OriginalDoctor; $result['transfer_order'] = true; From a054cf27597c2b779ed79c5d38fe9f21e0085791 Mon Sep 17 00:00:00 2001 From: haomingming Date: Tue, 30 Dec 2025 10:29:38 +0800 Subject: [PATCH 35/66] 12 --- app/Services/UserDoctorService.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index 46e1b0f..143b30e 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -3087,9 +3087,6 @@ class UserDoctorService extends BaseService $result = DoctorInquiryConfig::getOne($params); if (!empty($result)){ $multi_point_enable = 1; // 是否开启问诊购药 - }else{ - //为空则默认为开启状态,抄方需要 - $multi_point_enable = 1; // 是否开启问诊购药 } } From 46f386af1c443fc5aa0aa9b39de677762a9e477a Mon Sep 17 00:00:00 2001 From: haomingming Date: Tue, 30 Dec 2025 13:37:59 +0800 Subject: [PATCH 36/66] 21 --- app/Services/UserDoctorService.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index 143b30e..73b267c 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -627,6 +627,15 @@ class UserDoctorService extends BaseService $data['pharmacist_fail_reason'] = $order_prescription['pharmacist_fail_reason'];// 驳回原因 $data['platform_audit_status'] = $order_prescription['platform_audit_status'];// 处方平台审核状态(0:审核中 1:审核成功 2:审核驳回) $data['platform_fail_reason'] = $order_prescription['platform_fail_reason'];// 处方平台驳回原因 + // 获取病例订单信息 + $params = array(); + $params['order_inquiry_id'] = $order_prescription['order_inquiry_id']; + $order_inquiry = OrderInquiry::getOne($params); + if (empty($order_inquiry)) { + return fail(HttpEnumCode::SERVER_ERROR); + } + // 医生id + $data['order_inquiry_doctor_id'] = $order_inquiry['doctor_id']; // 获取病例信息 $params = array(); From 05c8b4ced537c5053bc83a65593189314b006037 Mon Sep 17 00:00:00 2001 From: haomingming Date: Tue, 30 Dec 2025 14:45:00 +0800 Subject: [PATCH 37/66] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/UserDoctorService.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index 73b267c..4edbf88 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -523,6 +523,21 @@ class UserDoctorService extends BaseService $data['platform_audit_status'] = $order_prescription['platform_audit_status'];// 处方平台审核状态(0:审核中 1:审核成功 2:审核驳回) $data['platform_fail_reason'] = $order_prescription['platform_fail_reason'];// 处方平台驳回原因 + // 获取问诊订单信息 + $params = array(); + $params['order_inquiry_id'] = $order_prescription['order_inquiry_id']; + $order_inquiry = OrderInquiry::getOne($params); + if (empty($order_inquiry)) { + return fail(HttpEnumCode::SERVER_ERROR); + } + + //判断是否为抄方订单 + if($order_inquiry['doctor_id'] == $order_prescription['doctor_id']){ + $data['is_transfer_order'] = 0; + }else{ + $data['is_transfer_order'] = 1; + } + // 获取病例信息 $params = array(); $params['order_inquiry_id'] = $order_prescription['order_inquiry_id']; @@ -627,13 +642,17 @@ class UserDoctorService extends BaseService $data['pharmacist_fail_reason'] = $order_prescription['pharmacist_fail_reason'];// 驳回原因 $data['platform_audit_status'] = $order_prescription['platform_audit_status'];// 处方平台审核状态(0:审核中 1:审核成功 2:审核驳回) $data['platform_fail_reason'] = $order_prescription['platform_fail_reason'];// 处方平台驳回原因 - // 获取病例订单信息 + // 获取问诊订单信息 $params = array(); $params['order_inquiry_id'] = $order_prescription['order_inquiry_id']; $order_inquiry = OrderInquiry::getOne($params); if (empty($order_inquiry)) { return fail(HttpEnumCode::SERVER_ERROR); } + + //判断是否为抄方订单 必为抄方订单 + $data['is_transfer_order'] = 1; + // 医生id $data['order_inquiry_doctor_id'] = $order_inquiry['doctor_id']; From e34eea86e13a4a61e2f7d8e73e7cc37a8201cf63 Mon Sep 17 00:00:00 2001 From: haomingming Date: Tue, 30 Dec 2025 14:51:30 +0800 Subject: [PATCH 38/66] w --- app/Services/UserDoctorService.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index 4edbf88..5de8b58 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1120,6 +1120,8 @@ class UserDoctorService extends BaseService return fail(HttpEnumCode::HTTP_ERROR, $res); } + + // 获取患者病例表 $fields = [ 'inquiry_case_id', @@ -1150,6 +1152,14 @@ class UserDoctorService extends BaseService return fail(); } + // 获取问诊订单信息 + $params = array(); + $params['order_inquiry_id'] = $order_inquiry_id; + $order_inquiry = OrderInquiry::getOne($params); + if (empty($order_inquiry)) { + return fail(); + } + // 订单-商品订单列表 $OrderPrescriptionService = new OrderPrescriptionService(); $order_prescription_product = $OrderPrescriptionService->getproductList($order_prescription_id); @@ -1166,6 +1176,7 @@ class UserDoctorService extends BaseService } $result = array(); + $result['is_transfer_order'] = ($order_inquiry['doctor_id'] == $order_prescription['doctor_id']) ? 0 : 1;//判断是否为抄方订单 $result['inquiry_case_product'] = $inquiry_case_product;// 用药意向 $result['prescription_product'] = $order_prescription_product ?? [];// 开方药品 $result['case'] = $order_inquiry_case;// 病例数据 From 756048673196fc5680377b573f3a454cfbda91c7 Mon Sep 17 00:00:00 2001 From: haomingming Date: Tue, 30 Dec 2025 15:24:34 +0800 Subject: [PATCH 39/66] =?UTF-8?q?=E4=B8=8A=E6=8A=A5=E5=A4=84=E6=96=B9?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=20=E7=9B=91=E7=AE=A1=E5=B9=B3=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Command/ReportPreProductOrderCommand.php | 18 ++++++++++++++++++ app/Command/ReportRegulatoryCommand.php | 17 +++++++++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/app/Command/ReportPreProductOrderCommand.php b/app/Command/ReportPreProductOrderCommand.php index daf355f..5e72256 100644 --- a/app/Command/ReportPreProductOrderCommand.php +++ b/app/Command/ReportPreProductOrderCommand.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace App\Command; use App\Exception\BusinessException; +use App\Model\OrderInquiry; use App\Model\OrderPrescription; use App\Model\OrderProduct; use App\Model\OrderSystem; @@ -72,6 +73,22 @@ class ReportPreProductOrderCommand extends HyperfCommand continue; } + // 获取问诊订单数据 + $params = array(); + $params['order_inquiry_id'] = $item['order_inquiry_id']; + $order_inquiry = OrderInquiry::getOne($params); + if (empty($order_inquiry)) { + $this->line("结束,问诊订单数据错误"); + continue; + } + + //检测是否为抄方订单 + if (!empty($order_inquiry['transfer_doctor_id'])){ + $this->line("结束,该问诊订单为抄方订单"); + continue; + } + + Db::beginTransaction(); try { @@ -152,6 +169,7 @@ class ReportPreProductOrderCommand extends HyperfCommand 'order_product_id', 'patient_id', 'order_prescription_id', + 'order_inquiry_id', ]; $order_product = OrderProduct::getList($params,$fields); diff --git a/app/Command/ReportRegulatoryCommand.php b/app/Command/ReportRegulatoryCommand.php index 244c740..ccef66c 100644 --- a/app/Command/ReportRegulatoryCommand.php +++ b/app/Command/ReportRegulatoryCommand.php @@ -82,7 +82,9 @@ class ReportRegulatoryCommand extends HyperfCommand // 上报网络咨询 try { - if ($report_regulatory['report_consult_status'] != 1 && $report_regulatory['report_consult_int'] < 5){ + //检测是否为抄方订单 + $transferInquiryOrder = $this->checkTransferInquiryOrder($order_inquiry); + if ($report_regulatory['report_consult_status'] != 1 && $report_regulatory['report_consult_int'] < 5 && $transferInquiryOrder){ $this->line("上报网络咨询"); // 获取上报数据-网络咨询 @@ -115,7 +117,9 @@ class ReportRegulatoryCommand extends HyperfCommand // 上报复诊 try { - if ($report_regulatory['is_further_consult'] == 1){ + //检测是否为抄方订单 + $transferInquiryOrder = $this->checkTransferInquiryOrder($order_inquiry); + if ($report_regulatory['is_further_consult'] == 1 && $transferInquiryOrder){ if ($report_regulatory['report_further_consult_status'] != 1 && $report_regulatory['report_further_consult_int'] < 5) { $this->line("上报复诊"); @@ -318,7 +322,16 @@ class ReportRegulatoryCommand extends HyperfCommand $this->line("信息:订单未取消的未完成订单,不执行"); return false; } + return true; + } + /** + * 检测抄方订单 + * @param array|object $order_inquiry 问诊订单数据 + * @return bool true:可执行 false:不可执行 + */ + private function checkTransferInquiryOrder(array|object $order_inquiry): bool + { //判断该问诊是否为抄方 if(!empty($order_inquiry['transfer_doctor_id'])){ $this->line("信息:该问诊为抄方类型,不执行"); From e6ebb7372bacda6c13f40d45c43cd6828b1b6ffe Mon Sep 17 00:00:00 2001 From: haomingming Date: Tue, 30 Dec 2025 17:04:36 +0800 Subject: [PATCH 40/66] =?UTF-8?q?=E5=BC=80=E6=B5=8B=E8=AF=95=E7=9F=AD?= =?UTF-8?q?=E4=BF=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extend/Alibaba/Dysms.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/extend/Alibaba/Dysms.php b/extend/Alibaba/Dysms.php index a5e566a..fb8f313 100644 --- a/extend/Alibaba/Dysms.php +++ b/extend/Alibaba/Dysms.php @@ -74,10 +74,10 @@ class Dysms public static function sendSms(string $phone_numbers,array $template_param,string $template_code,string $scene_desc = ""): void { try { - $app_env = config('app_env','dev'); - if ($app_env == "dev"){ - return; - } + // $app_env = config('app_env','dev'); + // if ($app_env == "dev"){ + // return; + // } $config = config("alibaba.dysms"); From 51dbed179c5ea6158b13722ab9e88f3da3c3035c Mon Sep 17 00:00:00 2001 From: haomingming Date: Tue, 30 Dec 2025 17:13:49 +0800 Subject: [PATCH 41/66] 123 --- app/Services/CaService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Services/CaService.php b/app/Services/CaService.php index b4669e2..da2fd33 100644 --- a/app/Services/CaService.php +++ b/app/Services/CaService.php @@ -71,7 +71,7 @@ class CaService extends BaseService if ($app_env == 'prod'){ $this->entity_id = "1"; }else{ - $this->entity_id = "534534546"; + $this->entity_id = "534534546123"; } $this->card_num = "91510106MABTJY4K9R"; }elseif($type == 2){ From 9f6f0aa299b859ff662be187e55a78ea8a7bdf58 Mon Sep 17 00:00:00 2001 From: haomingming Date: Wed, 31 Dec 2025 08:53:50 +0800 Subject: [PATCH 42/66] 34 --- app/Services/CaService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Services/CaService.php b/app/Services/CaService.php index da2fd33..b4669e2 100644 --- a/app/Services/CaService.php +++ b/app/Services/CaService.php @@ -71,7 +71,7 @@ class CaService extends BaseService if ($app_env == 'prod'){ $this->entity_id = "1"; }else{ - $this->entity_id = "534534546123"; + $this->entity_id = "534534546"; } $this->card_num = "91510106MABTJY4K9R"; }elseif($type == 2){ From 3abb779df58eb4ac8b546f0348ca2b038703eeaf Mon Sep 17 00:00:00 2001 From: haomingming Date: Wed, 31 Dec 2025 11:35:03 +0800 Subject: [PATCH 43/66] wr --- app/Services/CaService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Services/CaService.php b/app/Services/CaService.php index b4669e2..a819da5 100644 --- a/app/Services/CaService.php +++ b/app/Services/CaService.php @@ -71,7 +71,7 @@ class CaService extends BaseService if ($app_env == 'prod'){ $this->entity_id = "1"; }else{ - $this->entity_id = "534534546"; + $this->entity_id = "53453454621"; } $this->card_num = "91510106MABTJY4K9R"; }elseif($type == 2){ From 31d228cef7af6476974b1f407af4cf1cb51fd24e Mon Sep 17 00:00:00 2001 From: haomingming Date: Wed, 31 Dec 2025 11:35:16 +0800 Subject: [PATCH 44/66] wr --- app/Services/UserDoctorService.php | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index 5de8b58..ed6777f 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1494,6 +1494,21 @@ class UserDoctorService extends BaseService $transfer_prescription_list = UserDoctor::getList($params); if (!empty($transfer_prescription_list)) { $transfer_doctor = $transfer_prescription_list[0];//取第一个抄方医生 + + // 获取抄方医生问诊配置-问诊购药 + $params = array(); + $params['doctor_id'] = $transfer_doctor['doctor_id']; + $params['inquiry_type'] = 4; + $params['inquiry_mode'] = 1; + $doctor_inquiry_config = DoctorInquiryConfig::getOne($params); + if (empty($doctor_inquiry_config)) { + return fail(HttpEnumCode::HTTP_ERROR, "请联系客服开启问诊购药服务!"); + } + + if ($doctor_inquiry_config['is_enable'] == 0){ + return fail(HttpEnumCode::HTTP_ERROR, "请联系客服开启问诊购药服务!"); + } + $is_transfer_prescription = true; //修改抄方医生id $data = array(); @@ -1519,9 +1534,6 @@ class UserDoctorService extends BaseService // 获取医生问诊配置-问诊购药 $params = array(); $params['doctor_id'] = $user_doctor['doctor_id']; - if ($is_transfer_prescription){ - $params['doctor_id'] = $transfer_doctor['doctor_id']; - } $params['inquiry_type'] = 4; $params['inquiry_mode'] = 1; $doctor_inquiry_config = DoctorInquiryConfig::getOne($params); From bf3c7eb7feac9562ddbb689d6a7f1680fc9f9ef4 Mon Sep 17 00:00:00 2001 From: haomingming Date: Wed, 31 Dec 2025 11:40:07 +0800 Subject: [PATCH 45/66] asd --- app/Services/CaService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Services/CaService.php b/app/Services/CaService.php index a819da5..b4669e2 100644 --- a/app/Services/CaService.php +++ b/app/Services/CaService.php @@ -71,7 +71,7 @@ class CaService extends BaseService if ($app_env == 'prod'){ $this->entity_id = "1"; }else{ - $this->entity_id = "53453454621"; + $this->entity_id = "534534546"; } $this->card_num = "91510106MABTJY4K9R"; }elseif($type == 2){ From d400bb356e567596d3156784a55de0190b233d43 Mon Sep 17 00:00:00 2001 From: haomingming Date: Wed, 31 Dec 2025 12:07:10 +0800 Subject: [PATCH 46/66] 12 --- ...oPharmacistCaVerifyDelayDirectConsumer.php | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php b/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php index bc519d4..5a77861 100644 --- a/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php +++ b/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php @@ -94,10 +94,6 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage // 获取医生数据 $params = array(); $params['doctor_id'] = $order_prescription['doctor_id']; - // 获取抄方医生数据 (如果存在抄方操作) - if(!empty($order_inquiry['transfer_doctor_id'])){ - $params['doctor_id'] = $order_inquiry['transfer_doctor_id']; - } $user_doctor = UserDoctor::getOne($params); if (empty($user_doctor)) { Log::getInstance("queue-AutoPharmacistCaVerify")->error("错误:医生数据错误"); @@ -156,7 +152,11 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage $this->modifyOrderPrescription($data['order_prescription_id'], 2, "请联系平台客服,请勿重开处方"); // 医生-开具的处方审核未通过 - $MessagePush = new MessagePush($user_doctor['user_id'], $order_inquiry['inquiry_no']); + $message_doctor_id = $user_doctor['user_id']; + if(!empty($order_inquiry["transfer_doctor_id"])){ + $message_doctor_id = $order_inquiry['doctor_id']; + } + $MessagePush = new MessagePush($message_doctor_id, $order_inquiry['inquiry_no']); $MessagePush->prescriptionVerifyFail($data['order_prescription_id']); // 患者-处方审核未通过 @@ -276,15 +276,12 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage // 发送IM消息-处方已开具 $imService = new ImService(); - $doctor_im_id = $user_doctor['user_id']; + $message_doctor_id = $user_doctor['user_id']; //如果为抄方,则发送给原医生IM if(!empty($order_inquiry["transfer_doctor_id"])){ - $params = array(); - $params['doctor_id'] = $order_inquiry['doctor_id']; - $user_doctor = UserDoctor::getOne($params); - $doctor_im_id = $user_doctor['user_id']; + $message_doctor_id = $order_inquiry['doctor_id']; } - $imService->prescriptionIssued($order_inquiry,$doctor_im_id,$order_inquiry['user_id'],$product_name,(string)$data['order_prescription_id'],7); + $imService->prescriptionIssued($order_inquiry,$message_doctor_id,$order_inquiry['user_id'],$product_name,(string)$data['order_prescription_id'],7); // 发送站内、短信消息-患者的处方被药师审核通过 $MessagePush = new MessagePush($order_inquiry['user_id'],$order_inquiry['inquiry_no']); @@ -292,7 +289,7 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage // 站内、订阅失败发送短信-医生开具的处方审核通过 // 发送目标不同,重新实例化 - $MessagePush = new MessagePush($user_doctor['user_id'],$order_inquiry['inquiry_no']); + $MessagePush = new MessagePush($message_doctor_id, $order_inquiry['inquiry_no']); $MessagePush->prescriptionVerifySuccess(); // 添加处方过期队列 From 5206f2f64daa0374a8d74a8e09136ab9a25cdc20 Mon Sep 17 00:00:00 2001 From: haomingming Date: Wed, 31 Dec 2025 13:09:45 +0800 Subject: [PATCH 47/66] w --- app/Services/CaService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Services/CaService.php b/app/Services/CaService.php index b4669e2..6c58ca6 100644 --- a/app/Services/CaService.php +++ b/app/Services/CaService.php @@ -71,7 +71,7 @@ class CaService extends BaseService if ($app_env == 'prod'){ $this->entity_id = "1"; }else{ - $this->entity_id = "534534546"; + $this->entity_id = "534534546223"; } $this->card_num = "91510106MABTJY4K9R"; }elseif($type == 2){ From 16e6bcc3c8aba3c0b3fc4f451bf3054452142af1 Mon Sep 17 00:00:00 2001 From: haomingming Date: Wed, 31 Dec 2025 13:14:37 +0800 Subject: [PATCH 48/66] w --- .../Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php | 4 ++-- app/Services/CaService.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php b/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php index 5a77861..b1421e3 100644 --- a/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php +++ b/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php @@ -152,7 +152,7 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage $this->modifyOrderPrescription($data['order_prescription_id'], 2, "请联系平台客服,请勿重开处方"); // 医生-开具的处方审核未通过 - $message_doctor_id = $user_doctor['user_id']; + $message_doctor_id = $user_doctor['doctor_id']; if(!empty($order_inquiry["transfer_doctor_id"])){ $message_doctor_id = $order_inquiry['doctor_id']; } @@ -276,7 +276,7 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage // 发送IM消息-处方已开具 $imService = new ImService(); - $message_doctor_id = $user_doctor['user_id']; + $message_doctor_id = $user_doctor['doctor_id']; //如果为抄方,则发送给原医生IM if(!empty($order_inquiry["transfer_doctor_id"])){ $message_doctor_id = $order_inquiry['doctor_id']; diff --git a/app/Services/CaService.php b/app/Services/CaService.php index 6c58ca6..b4669e2 100644 --- a/app/Services/CaService.php +++ b/app/Services/CaService.php @@ -71,7 +71,7 @@ class CaService extends BaseService if ($app_env == 'prod'){ $this->entity_id = "1"; }else{ - $this->entity_id = "534534546223"; + $this->entity_id = "534534546"; } $this->card_num = "91510106MABTJY4K9R"; }elseif($type == 2){ From fa2c1ce8a46c4a3b728a2f200fbb7a7a54b59ccd Mon Sep 17 00:00:00 2001 From: haomingming Date: Wed, 31 Dec 2025 13:24:08 +0800 Subject: [PATCH 49/66] fs --- .../AutoPharmacistCaVerifyDelayDirectConsumer.php | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php b/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php index b1421e3..89b1d93 100644 --- a/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php +++ b/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php @@ -143,6 +143,13 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage return Result::ACK; } + $message_doctor_id = $user_doctor['doctor_id']; + if(!empty($order_inquiry["transfer_doctor_id"])){ + $params = array(); + $params['doctor_id'] = $order_inquiry['doctor_id']; + $user_doctor = UserDoctor::getOne($params); + $message_doctor_id = $user_doctor['user_id']; + } if (!$res) { Log::getInstance("queue-AutoPharmacistCaVerify")->error("错误:超出最大执行次数或检测错误"); @@ -152,10 +159,6 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage $this->modifyOrderPrescription($data['order_prescription_id'], 2, "请联系平台客服,请勿重开处方"); // 医生-开具的处方审核未通过 - $message_doctor_id = $user_doctor['doctor_id']; - if(!empty($order_inquiry["transfer_doctor_id"])){ - $message_doctor_id = $order_inquiry['doctor_id']; - } $MessagePush = new MessagePush($message_doctor_id, $order_inquiry['inquiry_no']); $MessagePush->prescriptionVerifyFail($data['order_prescription_id']); @@ -276,11 +279,7 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage // 发送IM消息-处方已开具 $imService = new ImService(); - $message_doctor_id = $user_doctor['doctor_id']; //如果为抄方,则发送给原医生IM - if(!empty($order_inquiry["transfer_doctor_id"])){ - $message_doctor_id = $order_inquiry['doctor_id']; - } $imService->prescriptionIssued($order_inquiry,$message_doctor_id,$order_inquiry['user_id'],$product_name,(string)$data['order_prescription_id'],7); // 发送站内、短信消息-患者的处方被药师审核通过 From 93e999783c344f68d3d2b456412199fa98742c24 Mon Sep 17 00:00:00 2001 From: haomingming Date: Wed, 31 Dec 2025 13:27:45 +0800 Subject: [PATCH 50/66] fw --- .../Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php b/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php index 89b1d93..e7bd936 100644 --- a/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php +++ b/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php @@ -143,12 +143,12 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage return Result::ACK; } - $message_doctor_id = $user_doctor['doctor_id']; + $message_doctor_id = $user_doctor['user_id']; if(!empty($order_inquiry["transfer_doctor_id"])){ $params = array(); $params['doctor_id'] = $order_inquiry['doctor_id']; - $user_doctor = UserDoctor::getOne($params); - $message_doctor_id = $user_doctor['user_id']; + $user_doctor_temp = UserDoctor::getOne($params); + $message_doctor_id = $user_doctor_temp['user_id']; } if (!$res) { Log::getInstance("queue-AutoPharmacistCaVerify")->error("错误:超出最大执行次数或检测错误"); From 2fd9fc9e84bbf18b72138ce53561701116d39437 Mon Sep 17 00:00:00 2001 From: haomingming Date: Wed, 31 Dec 2025 13:32:18 +0800 Subject: [PATCH 51/66] eee --- app/Services/CaService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Services/CaService.php b/app/Services/CaService.php index b4669e2..9d25140 100644 --- a/app/Services/CaService.php +++ b/app/Services/CaService.php @@ -71,7 +71,7 @@ class CaService extends BaseService if ($app_env == 'prod'){ $this->entity_id = "1"; }else{ - $this->entity_id = "534534546"; + $this->entity_id = "53453454623"; } $this->card_num = "91510106MABTJY4K9R"; }elseif($type == 2){ From ffead75fb7db4a51d14dc77962d55baf2b0ffa6a Mon Sep 17 00:00:00 2001 From: haomingming Date: Wed, 31 Dec 2025 13:34:48 +0800 Subject: [PATCH 52/66] a --- app/Services/CaService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Services/CaService.php b/app/Services/CaService.php index 9d25140..b4669e2 100644 --- a/app/Services/CaService.php +++ b/app/Services/CaService.php @@ -71,7 +71,7 @@ class CaService extends BaseService if ($app_env == 'prod'){ $this->entity_id = "1"; }else{ - $this->entity_id = "53453454623"; + $this->entity_id = "534534546"; } $this->card_num = "91510106MABTJY4K9R"; }elseif($type == 2){ From 0e2d4675707d54340bf56390ec8a62ce04a1b6fd Mon Sep 17 00:00:00 2001 From: haomingming Date: Wed, 31 Dec 2025 13:54:07 +0800 Subject: [PATCH 53/66] r23 --- ...AutoPharmacistCaVerifyDelayDirectConsumer.php | 2 ++ app/Services/MessagePush.php | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php b/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php index e7bd936..d263d5b 100644 --- a/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php +++ b/app/Amqp/Consumer/AutoPharmacistCaVerifyDelayDirectConsumer.php @@ -144,6 +144,8 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage } $message_doctor_id = $user_doctor['user_id']; + + //抄方订单 消息发给问诊医生 if(!empty($order_inquiry["transfer_doctor_id"])){ $params = array(); $params['doctor_id'] = $order_inquiry['doctor_id']; diff --git a/app/Services/MessagePush.php b/app/Services/MessagePush.php index 4af72c4..e99cf57 100644 --- a/app/Services/MessagePush.php +++ b/app/Services/MessagePush.php @@ -1385,11 +1385,17 @@ class MessagePush extends BaseService Log::getInstance("MessagePush")->error("错误:加入站内推送队列失败" . json_encode($data, JSON_UNESCAPED_UNICODE)); } + $target_page = "user/pages/yishi/chufangsetup/index?status=1"; + //抄方订单 消息点击跳转到新页面 + if(!empty($order_inquiry["transfer_doctor_id"])){ + $target_page = "user/pages/yishi/transferchufangsetup/index?status=1"; + } + // 订阅 $sub_data = array(); $sub_data['push_user_id'] = $this->user['user_id']; $sub_data['wx_template_id'] = "kUy70xHlr7ADo4aIHiictM4Te7MSec3E5kHsYvFQu40"; // 处方审核结果通知 - $sub_data['params']['page'] = "user/pages/yishi/chufangsetup/index?status=1"; + $sub_data['params']['page'] = $target_page; $sub_data['params']['data'] = [ "phrase1" => "审方通过",// 审核结果 "thing2" => "审核通过",// 原因 @@ -1441,11 +1447,17 @@ class MessagePush extends BaseService return; } + $target_page = "user/pages/yishi/chufangsetup/index?status=2"; + //抄方订单 消息点击跳转到新页面 + if(!empty($order_inquiry["transfer_doctor_id"])){ + $target_page = "user/pages/yishi/transferchufangsetup/index?status=2"; + } + // 订阅 $sub_data = array(); $sub_data['push_user_id'] = $this->user['user_id']; $sub_data['wx_template_id'] = "kUy70xHlr7ADo4aIHiictM4Te7MSec3E5kHsYvFQu40"; // 处方审核结果通知 - $sub_data['params']['page'] = "user/pages/yishi/chufangsetup/index?status=2"; + $sub_data['params']['page'] = $target_page; $sub_data['params']['data'] = [ "phrase1" => "审方不通过",// 审核结果 "thing2" => (string)$order_prescription['pharmacist_fail_reason'],// 原因 From 159d719c6644957259e2da7c9b975c031585f26d Mon Sep 17 00:00:00 2001 From: haomingming Date: Wed, 31 Dec 2025 14:13:08 +0800 Subject: [PATCH 54/66] asdf --- app/Services/MessagePush.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Services/MessagePush.php b/app/Services/MessagePush.php index e99cf57..2a147c7 100644 --- a/app/Services/MessagePush.php +++ b/app/Services/MessagePush.php @@ -1387,7 +1387,7 @@ class MessagePush extends BaseService $target_page = "user/pages/yishi/chufangsetup/index?status=1"; //抄方订单 消息点击跳转到新页面 - if(!empty($order_inquiry["transfer_doctor_id"])){ + if(!empty($this->order_inquiry["transfer_doctor_id"])){ $target_page = "user/pages/yishi/transferchufangsetup/index?status=1"; } @@ -1449,7 +1449,7 @@ class MessagePush extends BaseService $target_page = "user/pages/yishi/chufangsetup/index?status=2"; //抄方订单 消息点击跳转到新页面 - if(!empty($order_inquiry["transfer_doctor_id"])){ + if(!empty($this->order_inquiry["transfer_doctor_id"])){ $target_page = "user/pages/yishi/transferchufangsetup/index?status=2"; } From 4af73702f31f7113f1db10aff764e962843185e4 Mon Sep 17 00:00:00 2001 From: haomingming Date: Wed, 31 Dec 2025 14:24:58 +0800 Subject: [PATCH 55/66] fas --- app/Services/CaService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Services/CaService.php b/app/Services/CaService.php index b4669e2..1398d59 100644 --- a/app/Services/CaService.php +++ b/app/Services/CaService.php @@ -71,7 +71,7 @@ class CaService extends BaseService if ($app_env == 'prod'){ $this->entity_id = "1"; }else{ - $this->entity_id = "534534546"; + $this->entity_id = "53453454611"; } $this->card_num = "91510106MABTJY4K9R"; }elseif($type == 2){ From 5f6a2d269ca62fa58a6a2338fa176db7c12c921f Mon Sep 17 00:00:00 2001 From: haomingming Date: Wed, 31 Dec 2025 14:30:00 +0800 Subject: [PATCH 56/66] fw --- app/Services/IndexService.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Services/IndexService.php b/app/Services/IndexService.php index 79b026f..293c288 100644 --- a/app/Services/IndexService.php +++ b/app/Services/IndexService.php @@ -198,6 +198,7 @@ class IndexService extends BaseService $data['inquiry_type'] = 4; $data['inquiry_mode'] = 1; $data['is_enable'] = 1; + $data['inquiry_price'] = 0; $data['last_enable_method'] = 1; DoctorInquiryConfigModel::addInquiryConfig($data); } From 60e003ae2cbaa34130bef8abfeb7dc7cd7cb42a4 Mon Sep 17 00:00:00 2001 From: haomingming Date: Sun, 4 Jan 2026 16:30:24 +0800 Subject: [PATCH 57/66] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B9=B4=E5=AE=A1?= =?UTF-8?q?=E5=BC=80=E5=85=B3=EF=BC=8C=E6=8E=A7=E5=88=B6=E6=8A=84=E6=96=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/UserDoctorService.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index ed6777f..bdbd8fe 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1487,6 +1487,23 @@ class UserDoctorService extends BaseService try { if ($user_doctor['multi_point_status'] != 1) { + // 获取系统配置 + $params = array(); + $params['system_config_id'] = 1; + $system_config = SystemConfig::getOne($params); + if (empty($system_config)){ + return fail(HttpEnumCode::HTTP_ERROR, "请先完成多点执业认证"); + } + + //检查是否年审 + $is_annual_review = $system_config['is_annual_review']; + //若处于年审,则关闭抄方功能 + if($is_annual_review == 1){ + return fail(HttpEnumCode::HTTP_ERROR, "请先完成多点执业认证"); + } + + + //查找可接受抄方的医生 $params = array(); $params['is_transfer_prescription'] = 1; From 43198f814f97ab900d097d6c3cb2e105dc251168 Mon Sep 17 00:00:00 2001 From: haomingming Date: Sun, 4 Jan 2026 16:36:31 +0800 Subject: [PATCH 58/66] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=B9=B4=E5=AE=A1=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/IndexService.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/Services/IndexService.php b/app/Services/IndexService.php index 293c288..c4425fe 100644 --- a/app/Services/IndexService.php +++ b/app/Services/IndexService.php @@ -12,7 +12,7 @@ use App\Model\PharmacistAuditStatistic; use App\Model\User; use App\Model\UserDoctor as UserDoctorModel; use App\Model\UserPharmacist; -use Hyperf\Utils\Parallel; +use App\Model\SystemConfig; use Hyperf\Utils\WaitGroup; /** @@ -247,10 +247,20 @@ class IndexService extends BaseService $info['introduction_status'] = $doctor['introduction_status'];// 个人简介审核状态(0:未审核 1:审核通过 2:审核中 3:审核失败) $info['is_welfare_cooperation'] = $doctor['is_welfare_cooperation'];// 是否公益问诊合作医生(可把公益问诊设为0元) + // 获取系统配置 + $is_annual_review = 0; + $params = array(); + $params['system_config_id'] = 1; + $system_config = SystemConfig::getOne($params); + if (!empty($system_config)){ + $is_annual_review = $system_config['is_annual_review']; + } + $data = array(); $data['banner'] = $banner ?? [];// banner $data['info'] = $info;// 医生数据 $data['doctor_inquiry_config'] = $doctor_inquiry_config;// 医生问诊配置 + $data['is_annual_review'] = $is_annual_review;// 年审开关 return success($data); } From b91b49ea51236521eaeff3d57f4f5ac41c2f646c Mon Sep 17 00:00:00 2001 From: haomingming Date: Mon, 5 Jan 2026 10:52:20 +0800 Subject: [PATCH 59/66] 67 --- app/Services/UserDoctorService.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index bdbd8fe..46f0dac 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1502,8 +1502,6 @@ class UserDoctorService extends BaseService return fail(HttpEnumCode::HTTP_ERROR, "请先完成多点执业认证"); } - - //查找可接受抄方的医生 $params = array(); $params['is_transfer_prescription'] = 1; @@ -1538,7 +1536,7 @@ class UserDoctorService extends BaseService return fail(HttpEnumCode::HTTP_ERROR, "开具处方失败"); } }else{ - return fail(HttpEnumCode::HTTP_ERROR, "请先完成多点执业认证"); + return fail(HttpEnumCode::HTTP_ERROR, "医师有误,请联系客服或小助手"); } } From 2a9030f27b9908bcdc65eff11541eded8ebbadf0 Mon Sep 17 00:00:00 2001 From: haomingming Date: Mon, 5 Jan 2026 11:11:37 +0800 Subject: [PATCH 60/66] tt --- app/Services/CaService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Services/CaService.php b/app/Services/CaService.php index 1398d59..b4669e2 100644 --- a/app/Services/CaService.php +++ b/app/Services/CaService.php @@ -71,7 +71,7 @@ class CaService extends BaseService if ($app_env == 'prod'){ $this->entity_id = "1"; }else{ - $this->entity_id = "53453454611"; + $this->entity_id = "534534546"; } $this->card_num = "91510106MABTJY4K9R"; }elseif($type == 2){ From 0027f93f9fe843f39403a92b88d5f2f654680bcf Mon Sep 17 00:00:00 2001 From: haomingming Date: Mon, 5 Jan 2026 11:13:13 +0800 Subject: [PATCH 61/66] 4 --- app/Services/UserDoctorService.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index 46f0dac..a65fbb2 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1533,7 +1533,7 @@ class UserDoctorService extends BaseService $res = OrderInquiry::edit($params,$data); if (!$res) { Db::rollBack(); - return fail(HttpEnumCode::HTTP_ERROR, "开具处方失败"); + return fail(HttpEnumCode::HTTP_ERROR, "开具处方失败1"); } }else{ return fail(HttpEnumCode::HTTP_ERROR, "医师有误,请联系客服或小助手"); @@ -1542,7 +1542,7 @@ class UserDoctorService extends BaseService } } catch (\Exception $e) { Db::rollBack(); - return fail(HttpEnumCode::HTTP_ERROR, "开具处方失败"); + return fail(HttpEnumCode::HTTP_ERROR, "开具处方失败2"); } From 4d5b679cfe33b392835fb3ec849df7c3631edfc7 Mon Sep 17 00:00:00 2001 From: haomingming Date: Mon, 5 Jan 2026 11:21:40 +0800 Subject: [PATCH 62/66] 12 --- app/Services/UserDoctorService.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index a65fbb2..6061d6c 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1507,7 +1507,8 @@ class UserDoctorService extends BaseService $params['is_transfer_prescription'] = 1; $params['multi_point_status'] = 1; $transfer_prescription_list = UserDoctor::getList($params); - if (!empty($transfer_prescription_list)) { + // 使用 count() 判断更明确,避免 empty() 对 Collection 的判断歧义 + if (count($transfer_prescription_list) > 0) { $transfer_doctor = $transfer_prescription_list[0];//取第一个抄方医生 // 获取抄方医生问诊配置-问诊购药 @@ -1533,7 +1534,7 @@ class UserDoctorService extends BaseService $res = OrderInquiry::edit($params,$data); if (!$res) { Db::rollBack(); - return fail(HttpEnumCode::HTTP_ERROR, "开具处方失败1"); + return fail(HttpEnumCode::HTTP_ERROR, "开具处方失败"); } }else{ return fail(HttpEnumCode::HTTP_ERROR, "医师有误,请联系客服或小助手"); @@ -1542,7 +1543,7 @@ class UserDoctorService extends BaseService } } catch (\Exception $e) { Db::rollBack(); - return fail(HttpEnumCode::HTTP_ERROR, "开具处方失败2"); + return fail(HttpEnumCode::HTTP_ERROR, "开具处方失败"); } From 90194053e05990210ae4fd5d8d2a3ac1eb79977c Mon Sep 17 00:00:00 2001 From: haomingming Date: Tue, 6 Jan 2026 08:56:48 +0800 Subject: [PATCH 63/66] 89 --- app/Command/ReportPreProductOrderCommand.php | 22 ++++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/app/Command/ReportPreProductOrderCommand.php b/app/Command/ReportPreProductOrderCommand.php index 5e72256..41ca606 100644 --- a/app/Command/ReportPreProductOrderCommand.php +++ b/app/Command/ReportPreProductOrderCommand.php @@ -74,19 +74,19 @@ class ReportPreProductOrderCommand extends HyperfCommand } // 获取问诊订单数据 - $params = array(); - $params['order_inquiry_id'] = $item['order_inquiry_id']; - $order_inquiry = OrderInquiry::getOne($params); - if (empty($order_inquiry)) { - $this->line("结束,问诊订单数据错误"); - continue; - } + // $params = array(); + // $params['order_inquiry_id'] = $item['order_inquiry_id']; + // $order_inquiry = OrderInquiry::getOne($params); + // if (empty($order_inquiry)) { + // $this->line("结束,问诊订单数据错误"); + // continue; + // } //检测是否为抄方订单 - if (!empty($order_inquiry['transfer_doctor_id'])){ - $this->line("结束,该问诊订单为抄方订单"); - continue; - } + // if (!empty($order_inquiry['transfer_doctor_id'])){ + // $this->line("结束,该问诊订单为抄方订单"); + // continue; + // } Db::beginTransaction(); From e825269798f928de937afa306f92751ab50d6e16 Mon Sep 17 00:00:00 2001 From: haomingming Date: Tue, 6 Jan 2026 09:11:55 +0800 Subject: [PATCH 64/66] =?UTF-8?q?=E4=B8=8A=E6=8A=A5=E7=9B=91=E7=AE=A1?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Command/ReportRegulatoryCommand.php | 176 +++++++++++++++++++++++- 1 file changed, 174 insertions(+), 2 deletions(-) diff --git a/app/Command/ReportRegulatoryCommand.php b/app/Command/ReportRegulatoryCommand.php index ccef66c..5f9b662 100644 --- a/app/Command/ReportRegulatoryCommand.php +++ b/app/Command/ReportRegulatoryCommand.php @@ -169,8 +169,16 @@ class ReportRegulatoryCommand extends HyperfCommand if (empty($order_prescription)){ $this->line("需上报复诊,但无处方数据"); }else{ - // 获取上报数据-处方 - $report_prescription_data = $this->getReportPrescriptionData($order_inquiry, $order_prescription); + + //检测是否为抄方订单 + $transferInquiryOrder = $this->checkTransferInquiryOrder($order_inquiry); + if($transferInquiryOrder){ + // 获取上报数据-处方 + $report_prescription_data = $this->getReportPrescriptionData($order_inquiry, $order_prescription); + }else{ + // 获取上报数据-处方 (抄方类型) + $report_prescription_data = $this->getReportTransferPrescriptionData($order_inquiry, $order_prescription); + } // 上报处方 $regulatoryPlatform = new regulatoryPlatform(); @@ -516,6 +524,170 @@ class ReportRegulatoryCommand extends HyperfCommand return $data; } + /** + * 获取上报数据-处方 (抄方类型) + * @param array|object $order_inquiry + * @param array|object $order_prescription + * @return bool|array + */ + private function getReportTransferPrescriptionData(array|object $order_inquiry, array|object $order_prescription): bool|array + { + // 获取医生数据 + $params = array(); + $params['doctor_id'] = $order_prescription['doctor_id']; + $user_doctor = UserDoctor::getOne($params); + if (empty($user_doctor)) { + $this->line("错误:医生数据错误"); + return false; + } + + $params = array(); + $params['doctor_id'] = $order_prescription['doctor_id']; + $user_doctor_info = UserDoctorInfo::getOne($params); + if (empty($user_doctor_info)) { + $this->line("错误:医生详情数据错误"); + return false; + } + + // 获取医生自定义科室数据 + $params = array(); + $params['department_custom_id'] = $user_doctor['department_custom_id']; + $hospital_department_custom = HospitalDepartmentCustom::getOne($params); + if (empty($hospital_department_custom)) { + $this->line("错误:医生自定义数据错误"); + return false; + } + + // 获取问诊患者数据 + $params = array(); + $params['family_id'] = $order_inquiry['family_id']; + $patient_family = PatientFamily::getOne($params); + if (empty($patient_family)) { + $this->line("错误:问诊患者数据错误"); + return false; + } + + // 获取患者问诊病例 + $params = array(); + $params['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; + $params['status'] = 1; + $order_inquiry_case = OrderInquiryCase::getOne($params); + if (empty($order_inquiry_case)) { + $this->line("错误:患者问诊病例错误"); + return false; + } + + // 获取药师数据 + $params = array(); + $params['pharmacist_id'] = $order_prescription['pharmacist_id']; + $user_pharmacist = UserPharmacist::getOne($params); + if (empty($user_pharmacist)) { + $this->line("错误:药师数据错误"); + return false; + } + + // 获取药师详情数据 + $params = array(); + $params['pharmacist_id'] = $order_prescription['pharmacist_id']; + $user_pharmacist_info = UserPharmacistInfo::getOne($params); + if (empty($user_pharmacist_info)) { + $this->line("错误:药师详情数据错误"); + return false; + } + + // 获取患者复诊疾病诊断数据 + $params = array(); + $params['order_prescription_id'] = $order_prescription['order_prescription_id']; + $order_prescription_icd = OrderPrescriptionIcd::getList($params); + if (empty($order_prescription_icd)) { + // 复诊,但是未找到关联疾病 + $this->line("错误:无复诊疾病诊断数据"); + return false; + } + + $icd_name_data = array_column($order_prescription_icd->toArray(), 'icd_name'); + if (!empty($icd_name_data)) { + if (count($icd_name_data) > 1) { + $icd_name = implode('|', $icd_name_data); + } else { + $icd_name = $icd_name_data[0]; + } + } + + // 获取处方商品数据 + $order_prescription_product = $this->getPreProductData($order_prescription['order_prescription_id']); + if (empty($order_prescription_product)){ + $this->line("错误:无处方商品数据"); + return false; + } + + // 获取医生ca数据 + $params = array(); + $params['user_id'] = $user_doctor['user_id']; + $params['type'] = 2; + $params['is_latest'] = 1; + $doctor_user_ca_cert = UserCaCert::getOne($params); + if (empty($doctor_user_ca_cert)){ + $this->line("错误:无医生ca数据"); + return false; + } + + // 获取药师ca数据 + $params = array(); + $params['user_id'] = $user_pharmacist['user_id']; + $params['type'] = 2; + $params['is_latest'] = 1; + $pharmacist_user_ca_cert = UserCaCert::getOne($params); + if (empty($pharmacist_user_ca_cert)){ + $this->line("错误:无药师ca数据"); + return false; + } + + $data = array(); + $data['thirdUniqueid'] = $order_inquiry['order_inquiry_id']; // 唯一标识 + $data['orgName'] = "成都金牛欣欣相照互联网医院"; // 机构名称 + $data['orgCode'] = "MA6CGUDA251010619D2112"; // 机构编码 + $data['section'] = $hospital_department_custom['department_name'];//科室名称 + $data['sectionCode'] = $hospital_department_custom['department_code'];//科室编码 + $data['docName'] = $user_doctor['user_name'];// 医师姓名 + $data['docCertificateNum'] = $user_doctor_info['qualification_cert_num']; // 医师执业资格证号 + $data['pharmacistName'] = $user_pharmacist_info['card_name']; // 药师姓名 + $data['pharmacistOrg'] = "成都金牛欣欣相照互联网医院"; // 药师执业机构 + $data['pharmacistCertificateNum'] = $user_pharmacist_info['qualification_cert_num']; // 药师执业资格证号 + $data['furtherConsultNo'] = $order_inquiry['order_inquiry_id']; // 网络复诊编号 + $data['furtherConsultDiagnosis'] = $icd_name; // 复诊诊断 复诊患者在实体医院的诊断名称,如有多条,使用“|”进行分隔 + $data['patientName'] = $order_inquiry['patient_name']; // 患者姓名 + $data['patientSex'] = $order_inquiry['patient_sex'] == 0 ?: 1; // 患者性别 + $data['patientAge'] = (int)$order_inquiry['patient_age']; // 患者年龄 + $data['patientIdcardType'] = 1; // 证件类型 + $data['patientIdcardNum'] = $patient_family['id_number']; // 患者证件号码 + $data['feeType'] = 1; // 费别 1自费 2医保 + $data['medicalHistory'] = $order_inquiry_case['disease_desc']; //患者病史描述 + $data['recipeTime'] = $order_prescription['doctor_created_time']; // 处方日期 + $data['recipeType'] = 2; // 处方类型 1中药 2西药 3成药(三医) + $data['reviewTime'] = $order_prescription['pharmacist_verify_time']; // 审方日期 + $data['recipeUnitPrice'] = $order_prescription_product['amount_total']; // 处方单价 元 + $data['drugName'] = $order_prescription_product['drug_name']; // 药品名称商品名 + $data['drugCode'] = $order_prescription_product['drug_code']; // 药品编码 + $data['drugCommonName'] = $order_prescription_product['drug_common_name']; // 药品通用名 + $data['specification'] = $order_prescription_product['specification']; // 规格 + $data['frequency'] = $order_prescription_product['frequency']; // 使用频度 + $data['usage'] = $order_prescription_product['usage']; // 用法 + $data['doseUnit'] = $order_prescription_product['dose_unit']; // 剂量单位 + $data['doseEachTime'] = $order_prescription_product['dose_each_time']; // 每次剂量 + $data['medicationDays'] = $order_prescription_product['medication_days']; // 用药天数 + $data['quantity'] = $order_prescription_product['quantity']; // 数量 + $data['drugPackage'] = $order_prescription_product['drug_package']; // 药品包装 + $data['recipeAllPrice'] = $order_prescription_product['amount_total']; // 处方总价 + $data['uploadTime'] = date("Y-m-d H:i:s",time()); // 上传时间 + $data['docCaSign'] = $doctor_user_ca_cert['cert_base64']; // 医师ca签名值 + $data['pharmacistCaSign'] = $pharmacist_user_ca_cert['cert_base64']; // 药师ca签名值 + $data['recipeNo'] = $order_prescription['order_prescription_id']; // 医院处方编号 + $data['cityId'] = "510100"; // 城市ID(参考地区字段) + + return $data; + } + /** * 获取处方商品数据 * @param string $order_prescription_id From 10e46b2f8ccd2803673c9177311161b7357fad2f Mon Sep 17 00:00:00 2001 From: haomingming Date: Tue, 6 Jan 2026 09:26:25 +0800 Subject: [PATCH 65/66] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Command/ReportPreProductOrderCommand.php | 21 +++++---- app/Command/ReportRegulatoryCommand.php | 48 ++++++++++++-------- 2 files changed, 41 insertions(+), 28 deletions(-) diff --git a/app/Command/ReportPreProductOrderCommand.php b/app/Command/ReportPreProductOrderCommand.php index 41ca606..5bc96ff 100644 --- a/app/Command/ReportPreProductOrderCommand.php +++ b/app/Command/ReportPreProductOrderCommand.php @@ -47,29 +47,29 @@ class ReportPreProductOrderCommand extends HyperfCommand */ public function handle(): void { - $this->line("开始"); + $this->line("==================开始=================="); // 获取可上报商品订单 $order_product_ids = $this->getExecProductOrder(); if (empty($order_product_ids)){ - $this->line("结束,无可上报的商品订单"); + $this->line("==================结束,无可上报的商品订单=================="); return; } foreach ($order_product_ids as $item){ - $this->line("本次请求订单号:" . $item['order_product_id']); + $this->line("--本次请求订单号(order_product_id):" . $item['order_product_id']); // 获取商品订单数据 $params = array(); $params['order_product_id'] = $item['order_product_id']; $order_product = OrderProduct::getOne($params); if (empty($order_product)) { - $this->line("结束,商品订单数据错误"); + $this->line("--结束,商品订单数据错误"); continue; } if ($order_product['report_pre_status'] == 1){ - $this->line("结束,订单已上报"); + $this->line("--结束,订单已上报"); continue; } @@ -98,7 +98,8 @@ class ReportPreProductOrderCommand extends HyperfCommand // 检测执行次数 $res = $this->checkHandleNumber($item['order_product_id']); if (!$res) { - Log::getInstance("queue-AutoPharmacistCaVerify")->error("错误:超出最大执行次数或检测错误"); + $this->line("--错误:超出最大执行次数或检测错误"); + Log::getInstance("queue-AutoPharmacistCaVerify")->error("--错误:超出最大执行次数或检测错误"); // 修改药品订单表上报处方平台状态 $this->saveOrderProductPeportPreStatus($item['order_product_id'],2,"超出最大上报次数"); @@ -129,7 +130,7 @@ class ReportPreProductOrderCommand extends HyperfCommand }catch(\Exception $e){ Db::rollBack(); // 记录失败次数 - $this->line("错误:" . $e->getMessage()); + $this->line("--错误:" . $e->getMessage()); continue; } @@ -141,16 +142,16 @@ class ReportPreProductOrderCommand extends HyperfCommand // 修改药品订单表上报处方平台状态 $this->saveOrderProductPeportPreStatus($item['order_product_id'],1); - $this->line("成功"); + $this->line("--成功"); Db::commit(); continue; } catch (\Exception $e) { Db::rollBack(); - $this->line("错误" . $e->getMessage()); + $this->line("--错误" . $e->getMessage()); continue; } } - $this->line("全部结束"); + $this->line("==================全部结束=================="); } /** diff --git a/app/Command/ReportRegulatoryCommand.php b/app/Command/ReportRegulatoryCommand.php index 5f9b662..69d37db 100644 --- a/app/Command/ReportRegulatoryCommand.php +++ b/app/Command/ReportRegulatoryCommand.php @@ -82,10 +82,15 @@ class ReportRegulatoryCommand extends HyperfCommand // 上报网络咨询 try { + + $this->line("A、开始上报网络咨询"); //检测是否为抄方订单 $transferInquiryOrder = $this->checkTransferInquiryOrder($order_inquiry); + if(!$transferInquiryOrder){ + $this->line("A-1、该问诊不上报网络咨询"); + } if ($report_regulatory['report_consult_status'] != 1 && $report_regulatory['report_consult_int'] < 5 && $transferInquiryOrder){ - $this->line("上报网络咨询"); + $this->line("A-2、上报网络咨询"); // 获取上报数据-网络咨询 $consult_data = $this->getConsultData($order_inquiry); @@ -94,41 +99,46 @@ class ReportRegulatoryCommand extends HyperfCommand $regulatoryPlatform = new regulatoryPlatform(); $result = $regulatoryPlatform->uploadConsult([$consult_data]); - $this->line("上报网络咨询成功" . json_encode($result,JSON_UNESCAPED_UNICODE)); + $this->line("A-3、上报网络咨询成功" . json_encode($result,JSON_UNESCAPED_UNICODE)); // 修改上报状态-网络咨询 $res = $this->modifyReportConsultStatus($report_regulatory, 1); if (!$res) { // 记录失败 - $this->line("上报成功,存储记录失败"); + $this->line("A-4、上报成功,存储记录失败"); } } }catch (\Throwable $e){ - $this->line("上报网络咨询失败" . $e->getMessage()); + $this->line("A-5、上报网络咨询失败" . $e->getMessage()); // 上报失败 $res = $this->modifyReportConsultStatus($report_regulatory, 2, $e->getMessage()); if (!$res) { // 记录失败 - $this->line("上报网络咨询失败,存储记录失败"); + $this->line("A-6、上报网络咨询失败,存储记录失败"); } } // 上报复诊 try { + + $this->line("B、开始上报复诊"); //检测是否为抄方订单 $transferInquiryOrder = $this->checkTransferInquiryOrder($order_inquiry); + if(!$transferInquiryOrder){ + $this->line("B-1、该问诊不上报复诊"); + } if ($report_regulatory['is_further_consult'] == 1 && $transferInquiryOrder){ if ($report_regulatory['report_further_consult_status'] != 1 && $report_regulatory['report_further_consult_int'] < 5) { - $this->line("上报复诊"); + $this->line("B-2、上报复诊"); // 获取处方数据 $params = array(); $params['order_prescription_id'] = $report_regulatory['order_prescription_id']; $order_prescription = OrderPrescription::getOne($params); if (empty($order_prescription)){ - $this->line("需上报复诊,但无处方数据"); + $this->line("B-3、需上报复诊,但无处方数据"); }else{ // 获取上报数据-复诊 $further_consult_data = $this->getFurtherConsultData($order_inquiry,$order_prescription); @@ -136,32 +146,31 @@ class ReportRegulatoryCommand extends HyperfCommand // 上报复诊 $regulatoryPlatform = new regulatoryPlatform(); $result = $regulatoryPlatform->uploadFurtherConsult([$further_consult_data]); - $this->line("上报复诊成功" . json_encode($result,JSON_UNESCAPED_UNICODE)); + $this->line("B-4、上报复诊成功" . json_encode($result,JSON_UNESCAPED_UNICODE)); // 修改上报状态-复诊 $res = $this->modifyReportFurtherConsultStatus($report_regulatory, 1); if (!$res) { // 记录失败 - $this->line("上报成功,存储记录失败"); + $this->line("B-5、上报成功,存储记录失败"); } } } } }catch (\Throwable $e){ - $this->line("上报复诊失败" . $e->getMessage()); + $this->line("B-6、上报复诊失败" . $e->getMessage()); // 上报失败 $res = $this->modifyReportFurtherConsultStatus($report_regulatory, 2, $e->getMessage()); if (!$res) { // 记录失败 - $this->line("上报复诊失败,存储记录失败"); + $this->line("B-7、上报复诊失败,存储记录失败"); } } // 上报处方 try { - $this->line("上报处方"); - + $this->line("C、开始上报处方"); // 获取处方数据 $params = array(); $params['order_prescription_id'] = $report_regulatory['order_prescription_id']; @@ -173,34 +182,37 @@ class ReportRegulatoryCommand extends HyperfCommand //检测是否为抄方订单 $transferInquiryOrder = $this->checkTransferInquiryOrder($order_inquiry); if($transferInquiryOrder){ + $this->line("C-1、检测处方数据"); // 获取上报数据-处方 $report_prescription_data = $this->getReportPrescriptionData($order_inquiry, $order_prescription); }else{ + $this->line("C-2、检测处方(抄方)数据"); // 获取上报数据-处方 (抄方类型) $report_prescription_data = $this->getReportTransferPrescriptionData($order_inquiry, $order_prescription); } + $this->line("C-3、上报处方"); // 上报处方 $regulatoryPlatform = new regulatoryPlatform(); $result = $regulatoryPlatform->uploadRecipe([$report_prescription_data]); - $this->line("上报处方成功" . json_encode($result,JSON_UNESCAPED_UNICODE)); + $this->line("C-4、上报处方成功" . json_encode($result,JSON_UNESCAPED_UNICODE)); // 上报成功 $res = $this->modifyReportRegulatoryPrescription($report_regulatory, 1); if (!$res) { // 记录失败 - $this->line("上报处方失败,存储记录失败"); + $this->line("C-5、上报处方失败,存储记录失败"); } } }catch (\Throwable $e){ - $this->line("上报处方失败" . $e->getMessage()); + $this->line("C-6、上报处方失败" . $e->getMessage()); // 上报失败 $res = $this->modifyReportRegulatoryPrescription($report_regulatory, 2, $e->getMessage()); if (!$res) { // 记录失败 - $this->line("上报复诊失败,存储记录失败"); + $this->line("C-7、上报复诊失败,存储记录失败"); return ; } } @@ -342,7 +354,7 @@ class ReportRegulatoryCommand extends HyperfCommand { //判断该问诊是否为抄方 if(!empty($order_inquiry['transfer_doctor_id'])){ - $this->line("信息:该问诊为抄方类型,不执行"); + $this->line("信息:该问诊为抄方类型"); return false; }else{ $params = array(); From c4a9012d80a165443dc6732d43908e1a0a7ab484 Mon Sep 17 00:00:00 2001 From: haomingming Date: Tue, 6 Jan 2026 10:42:52 +0800 Subject: [PATCH 66/66] =?UTF-8?q?=E4=B8=8A=E6=8A=A5=E7=9B=91=E7=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Command/ReportRegulatoryCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Command/ReportRegulatoryCommand.php b/app/Command/ReportRegulatoryCommand.php index 69d37db..e501102 100644 --- a/app/Command/ReportRegulatoryCommand.php +++ b/app/Command/ReportRegulatoryCommand.php @@ -359,7 +359,7 @@ class ReportRegulatoryCommand extends HyperfCommand }else{ $params = array(); $params['doctor_id'] = $order_inquiry['doctor_id']; - $user_doctor_info = UserDoctorInfo::getOne($params); + $user_doctor_info = UserDoctor::getOne($params); if (empty($user_doctor_info)) { $this->line("错误:医生详情数据错误,不执行"); return false;