diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/HealthCheckupController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/HealthCheckupController.php
index 515da91..52b9b0f 100644
--- a/Laravel/app/Http/Controllers/API/Admin/YeWu/HealthCheckupController.php
+++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/HealthCheckupController.php
@@ -82,6 +82,7 @@ class HealthCheckupController extends Controller
//对外接口,创建体检记录 姓名、电话、身份证、体检机构编码、体检号、pdfs
public function CreateCheckupPdf()
{
+ date_default_timezone_set('PRC');
$id_card_num=request('id_card_num');
$name=request('name');
$tel=request('tel');
@@ -99,7 +100,9 @@ class HealthCheckupController extends Controller
//检查体检流水号是否存在,存在禁止再次插入。
$check_cunzai=DB::table('examination_records')->where('tijian_num',$tijian_num)->get();
if(count($check_cunzai)>0) return \Yz::echoError1('此体检号已经存在,禁止创建');
-
+ $sex=\App\Lib\Tools::getGenderFromIDCard($id_card_num);
+ $age=\App\Lib\Tools::calculateAgeFromID($id_card_num,date('Y-m-d H:i:s'));
+ $birthday=\App\Lib\Tools::getBirthdayFromIDCard($id_card_num);
//HSM加密
$HSM_sfz =\App\Lib\HSM::HsmEncrypt($id_card_num);
if($HSM_sfz['status']!=true){
@@ -122,7 +125,10 @@ class HealthCheckupController extends Controller
$i=DB::table('examination_records')->insertGetId([
"name"=>$name,
+ "age"=>$age,
+ "birthday"=>$birthday,
"tel"=>$tel,
+ "sex"=>$sex,
"id_card_num"=>$id_card_num,
"type"=>$type,
"institution_id"=>$org_id->id,
diff --git a/Laravel/app/Http/Controllers/API/mH5/PersonController.php b/Laravel/app/Http/Controllers/API/mH5/PersonController.php
index ffb18e8..6a6752b 100644
--- a/Laravel/app/Http/Controllers/API/mH5/PersonController.php
+++ b/Laravel/app/Http/Controllers/API/mH5/PersonController.php
@@ -54,6 +54,14 @@ class PersonController extends Controller
}
$info->id_card_num=$HSM_sfz['data'];
}
+ if(strlen($info->tel)>20){
+ //HSM解密
+ $HSM_tel =\App\Lib\HSM::HsmDecrypt($info->tel);
+ if($HSM_tel['status']!=true){
+ return \Yz::echoError1('调用HSM解密失败');
+ }
+ $info->tel=$HSM_tel['data'];
+ }
return \Yz::Return(true,'',['info'=>$info]);
}else{
diff --git a/Laravel/app/Lib/Tools.php b/Laravel/app/Lib/Tools.php
index 92e7d40..1efe01b 100644
--- a/Laravel/app/Lib/Tools.php
+++ b/Laravel/app/Lib/Tools.php
@@ -5,25 +5,6 @@ use DateTime;
class Tools{
//根据当前日期和身份证获取年龄
public static function calculateAgeFromID($idNumber, $targetDate) {
-// // 提取出生年月日
-// $birthYear = substr($idNumber, 6, 4);
-// $birthMonth = substr($idNumber, 10, 2);
-// $birthDay = substr($idNumber, 12, 2);
-//
-// // 创建出生日期和目标日期的 DateTime 对象
-// $birthdate = new DateTime("$birthYear-$birthMonth-$birthDay");
-// $target = new DateTime($targetDate);
-//
-// // 计算年龄
-// $interval = $birthdate->diff($target);
-// $age = $interval->y;
-//
-// // 如果生日还没到,减一岁
-// if ($target->format('m-d') < $birthdate->format('m-d')) {
-// $age--;
-// }
-//
-// return $age;
// 提取出生年月日
$birthYear = substr($idNumber, 6, 4);
$birthMonth = substr($idNumber, 10, 2);
@@ -64,4 +45,21 @@ class Tools{
// 格式化并返回日期字符串
return date('Y-m-d', strtotime($birthday));
}
+ //根据身份证判断性别
+ public static function getGenderFromIDCard($idCard) {
+ // 检查身份证号是否合法(长度应该是18)
+ if (strlen($idCard) != 18) {
+ return null;
+ }
+
+ // 获取身份证号的第17位
+ $genderBit = intval($idCard[16]);
+
+ // 判断性别
+ if ($genderBit % 2 == 0) {
+ return 0;
+ } else {
+ return 1;
+ }
+ }
}
diff --git a/Laravel/app/Services/Admin/YeWu/HealthCheckupService.php b/Laravel/app/Services/Admin/YeWu/HealthCheckupService.php
index 3b1179e..b7c8c8c 100644
--- a/Laravel/app/Services/Admin/YeWu/HealthCheckupService.php
+++ b/Laravel/app/Services/Admin/YeWu/HealthCheckupService.php
@@ -15,6 +15,9 @@ class HealthCheckupService
$firstDay = date('Y-01-01', strtotime($currentYear));
$lastDay = date('Y-12-31', strtotime($currentYear));
+ $age=\App\Lib\Tools::calculateAgeFromID($CheckupInfo['id_card_num'],date('Y-m-d H:i:s'));
+ $birthday=\App\Lib\Tools::getBirthdayFromIDCard($CheckupInfo['id_card_num']);
+
//HSM加密
$HSM_sfz =\App\Lib\HSM::HsmEncrypt($CheckupInfo['id_card_num']);
if($HSM_sfz['status']!=true){
@@ -81,6 +84,8 @@ class HealthCheckupService
$u2=DB::table('examination_records')->insertGetId([
"name"=>$CheckupInfo['name'],
"sex"=>$CheckupInfo['sex'],
+ "age"=>$age,
+ "birthday"=>$birthday,
"tel"=>$CheckupInfo['tel'],
"head_img"=>$img_url,
"id_card_num"=>$CheckupInfo['id_card_num'],
diff --git a/mH5/src/views/AppLogin.vue b/mH5/src/views/AppLogin.vue
index c0cb47a..38c3c69 100644
--- a/mH5/src/views/AppLogin.vue
+++ b/mH5/src/views/AppLogin.vue
@@ -238,8 +238,8 @@
})
//测试 跳过大兴app验证
const tiaoGuoAppYanzheng = () => {
- //sessionStorage.setItem('sfz', "130302199910001112");
- sessionStorage.setItem('sfz', "110224195909090061");
+ sessionStorage.setItem('sfz', "130302199910011112");
+ //sessionStorage.setItem('sfz', "110224195909090061");
sessionStorage.setItem('name', '测试');
sessionStorage.setItem('tel', "13333356789");
sessionStorage.setItem('sex', 1);
diff --git a/mH5/src/views/ShowReport.vue b/mH5/src/views/ShowReport.vue
index 7306a10..0f45001 100644
--- a/mH5/src/views/ShowReport.vue
+++ b/mH5/src/views/ShowReport.vue
@@ -8,10 +8,14 @@
{{reportinfo.name}}
+ 姓名:
+ {{reportinfo.tel}}
+
+
身份证:
{{reportinfo.id_card_num}}