体检表增加 性别、年龄、生日

main
yanzai 1 year ago
parent 4b071b33b9
commit a2b9199ee5

@ -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,

@ -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{

@ -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;
}
}
}

@ -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'],

@ -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);

@ -8,10 +8,14 @@
<van-col span="18">{{reportinfo.name}}</van-col>
</van-row>
<van-row class="title">
<van-col span="6">姓名</van-col>
<van-col span="18">{{reportinfo.tel}}</van-col>
</van-row>
<!-- <van-row class="title">
<van-col span="6">性别</van-col>
<van-col span="18" v-if="reportinfo.sex==0"></van-col>
<van-col span="18" v-if="reportinfo.sex==1"></van-col>
</van-row>
</van-row> -->
<van-row class="title">
<van-col span="6">身份证</van-col>
<van-col span="18">{{reportinfo.id_card_num}}</van-col>

Loading…
Cancel
Save