This commit is contained in:
wucongxing 2023-03-31 16:10:53 +08:00
parent 8be42f20f0
commit 878bd21ec0
8 changed files with 98 additions and 27 deletions

View File

@ -21,7 +21,9 @@ use Extend\Ca\Ca;
use Hyperf\Amqp\Producer;
use Hyperf\DbConnection\Db;
use Hyperf\Utils\ApplicationContext;
use Imagick;
use Intervention\Image\ImageManager;
use Spatie\PdfToImage\Pdf;
use TCPDF;
class TestController extends AbstractController
@ -505,22 +507,27 @@ class TestController extends AbstractController
}
public function test_11(){
$OrderPrescriptionService = new OrderPrescriptionService();
$prescription_img = $OrderPrescriptionService->openPrescription($order_prescription->order_prescription_id,$user_info['user_id']);
if (empty($prescription_img)){
Db::rollBack();
return fail(HttpEnumCode::SERVER_ERROR, "处方开具失败");
$ca = new Ca();
$prescription_pdf_result = $ca->getSignedFile("491925054435950592","1641368425758359554");
if (empty($prescription_pdf_result)){
throw new BusinessException("下载处方签章文件失败");
}
// 修改处方表
$data = array();
$data['prescription_img'] = $prescription_img;
$data['doctor_created_time'] = date('Y-m-d H:i:s',time());
$file = fopen("./runtime/test.pdf", "w") or die("Unable to open file!");
fwrite($file, $prescription_pdf_result);
fclose($file);
$params = array();
$params['order_prescription_id'] = $order_prescription->order_prescription_id;
OrderPrescription::edit($params,$data);
// 将临时文件转换为图片
$pdf = new Pdf("./runtime/test.pdf");
$pdf->saveImage("./runtime/test.jpg");
// dump($prescription_pdf_result);
//
// $manager = new ImageManager();
// $image = $manager->make($prescription_pdf_result)->convert('jpg');
//
// // 保存图片
// $image->save('./runtime/image.jpg');
}
}

View File

@ -19,7 +19,7 @@ class PatientFamilyRequest extends FormRequest
protected array $scenes = [
'addFamily' => [ // 新增家庭成员
'relation',
// 'relation',
'is_default',
'card_name',
'mobile',
@ -33,7 +33,7 @@ class PatientFamilyRequest extends FormRequest
'marital_status',
],
'editFamily' => [ // 修改家庭成员
'relation',
// 'relation',
'is_default',
'card_name',
'type',

View File

@ -112,9 +112,9 @@ class OrderPrescriptionService extends BaseService
* 开具处方
* @param string $order_prescription_id
* @param string $user_id
* @return string
* @return array
*/
public function openPrescription(string $order_prescription_id,string $user_id): string
public function openPrescription(string $order_prescription_id,string $user_id): array
{
try {
// 获取用户数据
@ -253,7 +253,8 @@ class OrderPrescriptionService extends BaseService
$image = $manager->make($prescription_image);
$fontPath = './extend/Ca/ZiYuYongSongTi-2.ttf';
// $fontPath = './extend/Ca/ZiYuYongSongTi-2.ttf';
$fontPath = './extend/Ca/msyh.ttf';
// 处方号
$image->text($order_prescription['prescription_code'], 1480, 540, function ($font) use($fontPath) {
@ -354,6 +355,12 @@ class OrderPrescriptionService extends BaseService
// 生成图片
$img_result = (string) $image->encode('png', 75);
dump("处方图片生成成功");
// 上传处方图片至oss
$filename = "applet/prescription/" . $order_prescription['order_prescription_id'] . '.' . 'jpg';
$prescription_img_url = $oss->putObject($filename, $img_result);
dump("处方图片上传oss成功");
// 图片生成pdf
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
@ -432,7 +439,10 @@ class OrderPrescriptionService extends BaseService
$filename = "applet/prescription/" . $order_prescription['order_prescription_id'] . '.' . 'pdf';
$prescription_pdf_url = $oss->putObject($filename, $prescription_pdf_result);
return $prescription_pdf_url;
$result = array();
$result['prescription_img_url'] = $prescription_img_url ?: "";
$result['prescription_pdf_url'] = $prescription_pdf_url ?: "";
return $result;
} catch (\Exception $e) {
throw new BusinessException($e->getMessage());

View File

@ -171,7 +171,9 @@ class PatientFamilyService extends BaseService
// 新增 患者家庭成员信息表-基本信息patient_family
$data = array();
$data['patient_id'] = $user_info['client_user_id'];
$data['relation'] = $request_params['relation'];
if (!empty($request_params['relation'])){
$data['relation'] = $request_params['relation'];
}
$data['status'] = 1;
$data['is_default'] = empty($request_params['is_default']) ? 0 : 1;
$data['card_name'] = $request_params['card_name'];

View File

@ -1117,15 +1117,16 @@ class UserDoctorService extends BaseService
}
$OrderPrescriptionService = new OrderPrescriptionService();
$prescription_img = $OrderPrescriptionService->openPrescription($order_prescription->order_prescription_id,$user_info['user_id']);
if (empty($prescription_img)){
$prescription_open_result = $OrderPrescriptionService->openPrescription($order_prescription->order_prescription_id,$user_info['user_id']);
if (empty($prescription_open_result['prescription_img_url']) || empty($prescription_open_result['prescription_pdf_url'])){
Db::rollBack();
return fail(HttpEnumCode::SERVER_ERROR, "处方开具失败");
}
// 修改处方表
$data = array();
$data['prescription_img'] = $prescription_img;
$data['prescription_img'] = $prescription_open_result['prescription_img_url'];
$data['prescription_pdf'] = $prescription_open_result['prescription_pdf_url'];
$data['doctor_created_time'] = date('Y-m-d H:i:s',time());
$params = array();
@ -1310,15 +1311,16 @@ class UserDoctorService extends BaseService
// 开具处方
$OrderPrescriptionService = new OrderPrescriptionService();
$prescription_img = $OrderPrescriptionService->openPrescription($order_prescription->order_prescription_id,$user_info['user_id']);
if (empty($prescription_img)){
$prescription_open_result = $OrderPrescriptionService->openPrescription($order_prescription->order_prescription_id,$user_info['user_id']);
if (empty($prescription_open_result['prescription_img_url']) || empty($prescription_open_result['prescription_pdf_url'])){
Db::rollBack();
return fail(HttpEnumCode::SERVER_ERROR, "处方开具失败");
}
// 修改处方表
$data = array();
$data['prescription_img'] = $prescription_img;
$data['prescription_img'] = $prescription_open_result['prescription_img_url'];
$data['prescription_pdf'] = $prescription_open_result['prescription_pdf_url'];
$data['doctor_created_time'] = date('Y-m-d H:i:s',time());
$params = array();

View File

@ -37,6 +37,7 @@
"hyperf/snowflake": "^3.0",
"hyperf/validation": "^3.0",
"intervention/image": "^2.7",
"spatie/pdf-to-image": "^1.2",
"tecnickcom/tcpdf": "^6.6",
"w7corp/easywechat": "^6.7"
},

51
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "f11dd54f0558de3aed797460197d3986",
"content-hash": "bdf6fc89c13c332770e8c88e1076586f",
"packages": [
{
"name": "adbario/php-dot-notation",
@ -4689,6 +4689,55 @@
"description": "A polyfill for getallheaders.",
"time": "2019-03-08T08:55:37+00:00"
},
{
"name": "spatie/pdf-to-image",
"version": "1.2.2",
"source": {
"type": "git",
"url": "https://github.com/spatie/pdf-to-image.git",
"reference": "9a5cb264a99e87e010c65d4ece03b51f821d55bd"
},
"dist": {
"type": "zip",
"url": "https://mirrors.huaweicloud.com/repository/php/spatie/pdf-to-image/1.2.2/spatie-pdf-to-image-1.2.2.zip",
"reference": "9a5cb264a99e87e010c65d4ece03b51f821d55bd",
"shasum": ""
},
"require": {
"php": ">=5.5.0"
},
"require-dev": {
"phpunit/phpunit": "4.*",
"scrutinizer/ocular": "~1.1"
},
"type": "library",
"autoload": {
"psr-4": {
"Spatie\\PdfToImage\\": "src"
}
},
"license": [
"MIT"
],
"authors": [
{
"name": "Freek Van der Herten",
"email": "freek@spatie.be",
"homepage": "https://spatie.be",
"role": "Developer"
}
],
"description": "Convert a pdf to an image",
"homepage": "https://github.com/spatie/pdf-to-image",
"keywords": [
"convert",
"image",
"pdf",
"pdf-to-image",
"spatie"
],
"time": "2016-12-14T15:37:00+00:00"
},
{
"name": "symfony/cache",
"version": "v6.0.18",

BIN
extend/Ca/msyh.ttf Executable file

Binary file not shown.