diff --git a/Laravel/app/Http/Controllers/API/mH5/PersonController.php b/Laravel/app/Http/Controllers/API/mH5/PersonController.php
index 62badad..0c429bc 100644
--- a/Laravel/app/Http/Controllers/API/mH5/PersonController.php
+++ b/Laravel/app/Http/Controllers/API/mH5/PersonController.php
@@ -30,6 +30,8 @@ class PersonController extends Controller
public function GetPersonReportDetail(){
$sfz =request('sfz');
$type =request('type');
+ $orig_sfz=$sfz;
+ $tijian_count=0;//最近体检的总数
//HSM加密
$HSM_sfz =\App\Lib\HSM::HsmEncrypt($sfz);
if($HSM_sfz['status']!=true){
@@ -41,11 +43,15 @@ class PersonController extends Controller
$info=$info->where('type',$type);
}
$info=$info ->orderBy('id', 'desc')->first();
- if($info){
+ $sixin_info=false;
+ if(!!$info){
+ $tijian_count++;
$info->pdfs=count(json_decode($info->pdfs, true));
+ $info->biao='examination_records';
$item=DB::table('report_result_item')
->where(['examination_id'=>$info->id])
->select(['item_name','item_result','flag'])->get();
+
$info->items=$item;
if(strlen($info->id_card_num)>30){
//HSM解密
@@ -63,8 +69,89 @@ class PersonController extends Controller
}
$info->tel=$HSM_tel['data'];
}
+ $sixin_info=$info;
+
+ }
+ $pingTaiOrgList=['北京市大兴区西红门镇社区卫生服务中心'];
+ $pingTaiInfo=false;
+ $pingTai=DB::table('health_certificate_push')
+ ->select('*','identifierValue as id_card_num','examDate as tijian_time','healthExaminationId as tijian_num')
+ ->where(['identifierValue'=>$orig_sfz])
+ ->whereIn('hospitalName',$pingTaiOrgList)
+ ->orderBy('id', 'desc')
+ ->first();
+ if(!!$pingTai && $type==1){
+ $pingTai->biao='health_certificate_push';
+ $tijian_count++;
+ $fieldsMap = [
+ 'hasBacterialDysentery' => '细菌性痢疾',
+ 'hasTyphoid' => '伤寒和副伤寒',
+ 'hasViralHepatitis' => '病毒性肝炎(甲型、戊型)',
+ 'hasActiveTB' => '活动性肺结核',
+ 'hasSkinDiseases' => '化脓性或渗出性皮肤病',
+ 'hasHandFungal' => '手部真菌感染性疾病(如手癣、指甲癣等)',
+ 'hasCholera' => '霍乱',
+ 'hasAmebicDysentery' => '阿米巴性痢疾',
+ 'hasHandEczema' => '手部湿疹',
+ 'hasHandPsoriasis' => '手部的银屑病或者鳞屑',
+ ];
+ $pingTaiInfo=$pingTai;
+ $pingTaiInfo->type=1;
+ $item = [];
+ foreach ($fieldsMap as $field => $name) {
+ $value = $pingTaiInfo->$field ?? null;
+
+ // 根据字段值判断状态
+ switch ($value) {
+ case 1:
+ $status = '有';
+ break;
+ case 2:
+ $status = '无';
+ break;
+ case -1:
+ $status = '未检查';
+ break;
+ case null:
+ $status = '未填写';
+ break;
+ default:
+ $status = '未填写';
+ }
+ $d=[
+ 'field' => $field,
+ 'item_name' => $name,
+ 'value' => $value, // 原始值(可选,用于前端判断或回显)
+ 'item_result' => $status, // 中文状态
+ 'flag'=>null,
+ ];
+ if($status<>'无'){
+ $d=[
+ 'field' => $field,
+ 'item_name' => $name,
+ 'value' => $value, // 原始值(可选,用于前端判断或回显)
+ 'item_result' => $status, // 中文状态
+ 'flag'=>'异常',
+ ];
+ }
+
+
+ $item[] = $d;
+ }
+ $pingTaiInfo->items=$item;
+ $pdf=DB::table('health_certificate_push_pdf')
+ ->where([ 'hospitalCode' => $pingTaiInfo->hospitalCode,'healthExaminationId' => $pingTaiInfo->healthExaminationId])
+ ->orderBy('id', 'desc')
+ ->first();
+ $pingTaiInfo->pdfs=0;
+ if(!!$pdf){
+ $pingTaiInfo->pdfs=1;
+ }
- return \Yz::Return(true,'',['info'=>$info]);
+ }
+ if($sixin_info || $pingTaiInfo){
+ $list=[$sixin_info,$pingTaiInfo];
+ return \Yz::Return(true,'',['list'=>$list,'tijian_count'=>$tijian_count]);
}else{
return \Yz::echoError1('未找到相关体检信息');
}
@@ -75,10 +162,27 @@ class PersonController extends Controller
{
$recordid =request('recordid');
$pdf_num =request('pdf_num');
- $query=DB::table('examination_records')->where(['id'=>$recordid])->first();
+ $biao =request('biao');
+ if($biao=='examination_records'){
+ $query=DB::table('examination_records')->where(['id'=>$recordid])->first();
+ }
+ if($biao=='health_certificate_push'){
+ $query=DB::table('health_certificate_push')->where(['id'=>$recordid])->first();
+ $pdf=DB::table('health_certificate_push_pdf')
+ ->where([ 'hospitalCode' => $query->hospitalCode,'healthExaminationId' => $query->healthExaminationId])
+ ->orderBy('id', 'desc')
+ ->first();
+
+ $query->pdfs=json_encode([$pdf->pdf_url],JSON_UNESCAPED_UNICODE);
+
+ }
+
if(!$query) return \Yz::echoError1('未找到对应体检记录');
+
$pdfs=json_decode($query->pdfs, true);
+
$pdfurl=$pdfs[$pdf_num];
+
// 使用 GuzzleHttp 获取第三方 PDF 地址的内容
$client = new Client();
$response = $client->get($pdfurl);
diff --git a/mH5/src/views/AppLogin.vue b/mH5/src/views/AppLogin.vue
index a211e9f..5b1451e 100644
--- a/mH5/src/views/AppLogin.vue
+++ b/mH5/src/views/AppLogin.vue
@@ -296,6 +296,7 @@
// 待解密的密文
let encryptedText = "AmAYzZaAwbOMPUptaxWQeE1WSE85wt7TxejYjxRXua5%2BAPGSiw8dPM5LMW1ti2ex11";
console.log('55555555',encryptedText)
+ // console.log('jiami',sm4Util.encryptData_ECB('userid=13062619850808587X'));
let hash1 = window.location.hash;
encryptedText= hash1.split('?')[1];
try {
@@ -310,7 +311,7 @@
console.log("解密结果:", openid);
sessionStorage.setItem('openid', openid);
AppGetUserinfoAction()
- //tiaoGuoAppYanzheng();
+ tiaoGuoAppYanzheng();
GetConfigInArrayFunc();
} catch (e) {
console.error("解密失败:", e);
@@ -326,8 +327,8 @@
})
//测试 跳过大兴app验证
const tiaoGuoAppYanzheng = () => {
- sessionStorage.setItem('sfz', "130302194510011112");
- //sessionStorage.setItem('sfz', "110224195909090061");
+ //sessionStorage.setItem('sfz', "130302194510011112");
+ sessionStorage.setItem('sfz', "110224195909090061");
sessionStorage.setItem('name', '测试');
sessionStorage.setItem('tel', "13333356789");
sessionStorage.setItem('sex', 1);
diff --git a/mH5/src/views/PreviewReport.vue b/mH5/src/views/PreviewReport.vue
index 0a25c59..00ec9ce 100644
--- a/mH5/src/views/PreviewReport.vue
+++ b/mH5/src/views/PreviewReport.vue
@@ -32,7 +32,7 @@
let loading = ref(false);
let pdf_num = route.query.pdf_num //获取到pdf array的key
let recordid = route.query.recordid
-
+ let biao = route.query.biao
let pdfData = ref(null);
@@ -43,7 +43,8 @@
loading.value = true
GetPersonPdfDetailByLink({
recordid: recordid,
- pdf_num: pdf_num
+ pdf_num: pdf_num,
+ biao:biao
}).then(res => {
loading.value = false
diff --git a/mH5/src/views/ShowReport.vue b/mH5/src/views/ShowReport.vue
index 48affd3..44ca932 100644
--- a/mH5/src/views/ShowReport.vue
+++ b/mH5/src/views/ShowReport.vue
@@ -48,6 +48,18 @@