修改分配规则

This commit is contained in:
2023-04-21 17:00:36 +08:00
parent 22e6f174ab
commit ed4e8cd7df
5 changed files with 56 additions and 20 deletions
@@ -120,33 +120,36 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage
$params['order_prescription_id'] = $order_prescription['order_prescription_id'];
$order_prescription_product = OrderPrescriptionProduct::getList($params);
if (!empty($order_prescription_product)){
$product_name = array_column($order_prescription_product->toArray(),'product_name');
if (count($product_name) > 1){
$product_name = implode('、',$product_name);
$product_name_array = array_column($order_prescription_product->toArray(),'product_name');
if (count($product_name_array) > 1){
$product_name = implode('、',$product_name_array);
}else{
$product_name = $product_name[0];
$product_name = $product_name_array[0];
}
}
// 订单-处方
$OrderPrescriptionService = new OrderPrescriptionService();
// 下载医生签章文件
Db::beginTransaction();
try {
Log::getInstance("queue-AutoPharmacistCaVerify")->info("检测执行次数");
// 检测执行次数
$res = $this->checkHandleNumber($data['prescription_file_id']);
if (!$res) {
// 超出最大执行次数或检测错误
// 自动驳回
$OrderPrescriptionService->rejectPrescription(
$data['order_prescription_id'],
$user_doctor['user_id'],
$user_patient['user_id'],
$order_prescription['order_inquiry_id'],
"请联系平台客服,请勿重开处方"
);
Log::getInstance("queue-AutoPharmacistCaVerify")->error("错误:超出最大执行次数或检测错误");
// 修改处方表为未通过
$this->modifyOrderPrescription($data['prescription_file_id'],2,"请联系平台客服,请勿重开处方");
// 医生-开具的处方审核未通过
$MessagePush = new MessagePush($user_doctor['user_id'], $order_prescription['order_inquiry_id']);
$MessagePush->prescriptionVerifyFail($data['order_prescription_id']);
// 患者-处方审核未通过
$MessagePush = new MessagePush($user_patient['user_id'], $order_prescription['order_inquiry_id']);
$MessagePush->patientPrescriptionVerifyFail();
Db::commit();
return Result::ACK;
}
@@ -169,6 +172,8 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage
return Result::REQUEUE;
}
Log::getInstance("queue-AutoPharmacistCaVerify")->info("下载医生的签章pdf并上传至oss");
// 下载医生的签章pdf并上传至oss
$prescription_pdf_oss_path = $this->downCaPdfToOss($order_prescription, $user_doctor['user_id'],2,$order_prescription_file['doctor_ca_file_id']);
if (!$prescription_pdf_oss_path) {
@@ -197,6 +202,9 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage
// 修改处方文件表,添加prescription_pdf_oss_path字段
$this->modifyOrderPrescriptionFile($data['prescription_file_id'],$prescription_pdf_oss_path,$prescription_open_result['file_id']);
// 修改处方表为通过
$this->modifyOrderPrescription($data['prescription_file_id'],1);
Db::commit();
Log::getInstance("queue-AutoPharmacistCaVerify")->info("成功");
} catch (\Exception $e) {
@@ -413,4 +421,31 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage
}
}
/**
* 修改处方表
* @param string $order_prescription_id 处方id
* @param int $status 审核状态 1:成功 2:驳回
* @param string $pharmacist_fail_reason 驳回理由
* @return void
*/
protected function modifyOrderPrescription(string $order_prescription_id,int $status,string $pharmacist_fail_reason = ""): void
{
// 修改处方审核状态
$data = array();
if ($status == 1){
// 审核成功
$data['prescription_status'] = 2;
$data['pharmacist_audit_status'] = 1;
$data['platform_audit_status'] = 1;
}else{
$data['pharmacist_audit_status'] = 2;
$data['pharmacist_fail_reason'] = $pharmacist_fail_reason;
}
$data['pharmacist_verify_time'] = date('Y-m-d H:i:s',time());
$params = array();
$params['order_prescription_id'] = $order_prescription_id;
OrderPrescription::edit($params,$data);
}
}