修改上报数据

This commit is contained in:
wucongxing 2023-08-16 10:54:26 +08:00
parent a6732021ca
commit fd9c774c13
4 changed files with 70 additions and 27 deletions

View File

@ -1354,18 +1354,18 @@ class CallBackController extends AbstractController
} }
// 检测签名 // 检测签名
// $params = array(); $params = array();
// $params['app_id'] = $request_params['appId']; $params['app_id'] = $request_params['appId'];
// $basic_detection_organ = BasicDetectionOrgan::getOne($params); $basic_detection_organ = BasicDetectionOrgan::getOne($params);
// if (empty($basic_detection_organ)){ if (empty($basic_detection_organ)){
// return $this->detectionResultFailReturn("非法appId"); return $this->detectionResultFailReturn("非法appId");
// } }
//
// $time = date('Y-m-d'); $time = date('Y-m-d');
// $sign = md5($basic_detection_organ['app_id'] . $basic_detection_organ['app_secret'] . $time); $sign = md5($basic_detection_organ['app_id'] . $basic_detection_organ['app_secret'] . $time);
// if ($auth != $sign){ if ($auth != $sign){
// return $this->detectionResultFailReturn("签名错误"); return $this->detectionResultFailReturn("签名错误");
// } }
// 检测pdf文件 // 检测pdf文件
$pdfData = base64_decode($request_params['pdfReport']); $pdfData = base64_decode($request_params['pdfReport']);
@ -1392,9 +1392,9 @@ class CallBackController extends AbstractController
return $this->detectionResultSuccessReturn(); return $this->detectionResultSuccessReturn();
} }
// if ($order_detection['detection_bar_code'] != $request_params['detectBarcode']){ if ($order_detection['detection_bar_code'] != $request_params['detectBarcode']){
// return $this->detectionResultFailReturn("检测条码无法对应"); return $this->detectionResultFailReturn("检测条码无法对应");
// } }
// 获取医生数据 // 获取医生数据
$params = array(); $params = array();

View File

@ -7,6 +7,7 @@ use App\Constants\HttpEnumCode;
use App\Exception\BusinessException; use App\Exception\BusinessException;
use App\Model\Area; use App\Model\Area;
use App\Model\BasicCompany; use App\Model\BasicCompany;
use App\Model\BasicDetectionOrgan;
use App\Model\BasicNation; use App\Model\BasicNation;
use App\Model\DetectionProject; use App\Model\DetectionProject;
use App\Model\DetectionProjectPurpose; use App\Model\DetectionProjectPurpose;
@ -537,6 +538,10 @@ class DetectionService extends BaseService
$detection_pic = PcreMatch::pregRemoveOssWebsite($detection_pic); $detection_pic = PcreMatch::pregRemoveOssWebsite($detection_pic);
} }
if (!isset($detection_pic)){
return fail(HttpEnumCode::HTTP_ERROR,"上传图片失败");
}
// 检测检测管编码是否已被使用 // 检测检测管编码是否已被使用
$params = array(); $params = array();
$params['detection_bar_code'] = $request_params['detection_bar_code']; $params['detection_bar_code'] = $request_params['detection_bar_code'];
@ -545,21 +550,28 @@ class DetectionService extends BaseService
return fail(HttpEnumCode::HTTP_ERROR,"检测管已被使用"); return fail(HttpEnumCode::HTTP_ERROR,"检测管已被使用");
} }
// 计算检测机构 // 获取检测码对应的检测所
$detection_organ_id = 1; $detection_organ_code = substr($request_params['detection_bar_code'], 3, 1);
if (!$detection_organ_code){
return fail(HttpEnumCode::HTTP_ERROR,"检测码错误");
}
// 获取检测所数据
$params = array();
$params['detection_organ_code'] = $detection_organ_code;
$basic_detection_organ = BasicDetectionOrgan::getOne($params);
if (empty($basic_detection_organ)){
return fail(HttpEnumCode::HTTP_ERROR,"检测码错误");
}
Db::beginTransaction(); Db::beginTransaction();
try { try {
// 上报数据
$wy = new Wy($detection_organ_id);
$wy->report($order_detection);
// 修改检测订单 // 修改检测订单
$data = array(); $data = array();
$data['detection_pic'] = $detection_pic ?? ""; $data['detection_pic'] = $detection_pic;
$data['detection_bar_code'] = $request_params['detection_bar_code']; $data['detection_bar_code'] = $request_params['detection_bar_code'];
$data['detection_status'] = 3; $data['detection_status'] = 3;
$data['detection_organ_id'] = $detection_organ_id;// 检测机构id $data['detection_organ_id'] = $basic_detection_organ['detection_organ_id'];// 检测机构id
$data['detection_time'] = date('Y-m-d H:i:s', time());// 上传检测时间 $data['detection_time'] = date('Y-m-d H:i:s', time());// 上传检测时间
$params = array(); $params = array();
@ -570,11 +582,15 @@ class DetectionService extends BaseService
return fail(HttpEnumCode::HTTP_ERROR,"绑定失败"); return fail(HttpEnumCode::HTTP_ERROR,"绑定失败");
} }
// 上报数据
$wy = new Wy($basic_detection_organ['detection_organ_id']);
$wy->report($order_detection_id);
Db::commit(); Db::commit();
}catch (\Throwable $e){ }catch (\Throwable $e){
Db::rollBack(); Db::rollBack();
Log::getInstance("DetectionService-bindDetectionTube")->error($e->getMessage()); Log::getInstance("DetectionService-bindDetectionTube")->error($e->getMessage());
return fail(HttpEnumCode::HTTP_ERROR, "绑定失败"); return fail(HttpEnumCode::HTTP_ERROR, $e->getMessage());
} }
return success(); return success();

View File

@ -5,6 +5,7 @@ namespace Extend\Detection;
use App\Constants\HttpEnumCode; use App\Constants\HttpEnumCode;
use App\Exception\BusinessException; use App\Exception\BusinessException;
use App\Model\BasicDetectionOrgan; use App\Model\BasicDetectionOrgan;
use App\Utils\Log;
use GuzzleHttp\Client; use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException; use GuzzleHttp\Exception\GuzzleException;
use Hyperf\Di\Annotation\Inject; use Hyperf\Di\Annotation\Inject;
@ -78,6 +79,12 @@ class Base
$arg = array_merge($arg,$option); $arg = array_merge($arg,$option);
} }
// 打印使用
$l = $arg;
unset($l['json']['pictureOfDetectionTube']);
dump($l);
Log::getInstance("请求参数")->info(json_encode($arg,JSON_UNESCAPED_UNICODE));
$response = $this->client->post($path, $arg); $response = $this->client->post($path, $arg);
if ($response->getStatusCode() != '200'){ if ($response->getStatusCode() != '200'){

View File

@ -7,8 +7,10 @@ use App\Exception\BusinessException;
use App\Model\DetectionProject; use App\Model\DetectionProject;
use App\Model\DetectionProjectPurpose; use App\Model\DetectionProjectPurpose;
use App\Model\Hospital; use App\Model\Hospital;
use App\Model\OrderDetection;
use App\Model\OrderDetectionCase; use App\Model\OrderDetectionCase;
use App\Model\PatientFamily; use App\Model\PatientFamily;
use App\Model\User;
use App\Model\UserDoctor; use App\Model\UserDoctor;
use App\Model\UserLocation; use App\Model\UserLocation;
use App\Utils\Log; use App\Utils\Log;
@ -30,7 +32,7 @@ class Wy extends Base
throw new BusinessException("缺少签名数据"); throw new BusinessException("缺少签名数据");
} }
$time = date('Y-m-d'); $time = date('Ymd');
return md5($this->app_id . $this->secret . $time); return md5($this->app_id . $this->secret . $time);
} }
@ -38,8 +40,15 @@ class Wy extends Base
* 上报数据 * 上报数据
* @param array|object $order_detection * @param array|object $order_detection
*/ */
public function report(array|object $order_detection) public function report(string $order_detection_id)
{ {
$params = array();
$params['order_detection_id'] = $order_detection_id;
$order_detection = OrderDetection::getOne($params);
if (empty($order_detection)){
throw new BusinessException("检测订单数据错误");
}
// 获取检测订单病例数据 // 获取检测订单病例数据
$params = array(); $params = array();
$params['order_detection_id'] = $order_detection['order_detection_id']; $params['order_detection_id'] = $order_detection['order_detection_id'];
@ -96,6 +105,14 @@ class Wy extends Base
throw new BusinessException("检测数据错误"); throw new BusinessException("检测数据错误");
} }
// 获取用户数据
$params = array();
$params['user_id'] = $order_detection['user_id'];
$user = User::getOne($params);
if (empty($user)){
throw new BusinessException("用户数据错误");
}
// 处理检测管图片 // 处理检测管图片
$oss = new Oss(); $oss = new Oss();
@ -138,15 +155,17 @@ class Wy extends Base
$arg['userPatientRelationships'] = $patient_family['relation']; // 操作用户与患者关系1:本人 2:父母 3:爱人 4:子女 5:亲戚 6:其他 $arg['userPatientRelationships'] = $patient_family['relation']; // 操作用户与患者关系1:本人 2:父母 3:爱人 4:子女 5:亲戚 6:其他
$arg['patientName'] = $order_detection['patient_name']; // 患者姓名 $arg['patientName'] = $order_detection['patient_name']; // 患者姓名
$arg['patientSex'] = $order_detection['patient_sex']; // 患者性别(0未知 1男 2女) $arg['patientSex'] = $order_detection['patient_sex']; // 患者性别(0未知 1男 2女)
$arg['patientAge'] = $order_detection['patient_age']; // 患者年龄
$arg['patientNationality'] = $order_detection_case['nation_name']; // 患者民族 $arg['patientNationality'] = $order_detection_case['nation_name']; // 患者民族
$arg['patientPastMedicalHistory'] = $order_detection_case['detection_disease_class_names']; // 患者既往病史 $arg['patientPastMedicalHistory'] = $order_detection_case['detection_disease_class_names']; // 患者既往病史
$arg['patientCardNo'] = $patient_family['id_number']; // 患者身份证号 $arg['patientCardNo'] = $patient_family['id_number']; // 患者身份证号
$arg['patientPhone'] = $patient_family['mobile']; // 患者手机号 $arg['patientPhone'] = $user['mobile']; // 患者手机号
$arg['patientAddress'] = $address ?? ""; // 患者住址(非必填) $arg['patientAddress'] = $address ?? ""; // 患者住址(非必填)
$arg['detectBarCode'] = $order_detection['detection_bar_code']; // 检测条形码 $arg['detectBarCode'] = $order_detection['detection_bar_code']; // 检测条形码
$arg['pictureOfDetectionTube'] = $pics; // 检测管图片数组 $arg['pictureOfDetectionTube'] = $pics; // 检测管图片数组
$arg['hospitalName'] = $hospital['hospital_name']; // 医院名称(送检单位) $arg['hospitalName'] = $hospital['hospital_name']; // 医院名称(送检单位)
$arg['doctorName'] = $user_doctor['user_name']; // 医生名称 $arg['doctorName'] = $user_doctor['user_name']; // 医生名称
$arg['sendSampleDate'] = date('Y-m-d'); // 送检日期yyyy-MM-dd
$arg['projectName'] = $detection_project['detection_project_name']; // 检测项目名称 $arg['projectName'] = $detection_project['detection_project_name']; // 检测项目名称
$arg['projectPurpose'] = $detection_project_purpose['purpose_name']; // 检测项目用途名称 $arg['projectPurpose'] = $detection_project_purpose['purpose_name']; // 检测项目用途名称
$arg['payTime'] = $order_detection['pay_time']; // 支付时间 $arg['payTime'] = $order_detection['pay_time']; // 支付时间
@ -160,6 +179,7 @@ class Wy extends Base
$path = $this->request_url . "api/sdInternet/v1/externalData/saveOrder"; $path = $this->request_url . "api/sdInternet/v1/externalData/saveOrder";
try { try {
$response = $this->httpRequest($sign,$path,$option); $response = $this->httpRequest($sign,$path,$option);
dump($response);
if (empty($response)){ if (empty($response)){
// 返回值错误为空 // 返回值错误为空
throw new BusinessException(""); throw new BusinessException("");