|
@@ -1,10 +1,12 @@
|
|
|
package com.boman.web.core.service.vaccineInfo.impl;
|
|
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
import com.boman.common.core.utils.DateUtils;
|
|
|
import com.boman.common.core.utils.SecurityUtils;
|
|
|
+import com.boman.common.core.utils.StringUtils;
|
|
|
import com.boman.web.core.domain.VaccineInfoOperation;
|
|
|
import com.boman.web.core.mapper.VaccineInfoOperationMapper;
|
|
|
import com.boman.web.core.service.vaccineInfo.IVaccineInfoService;
|
|
@@ -139,6 +141,101 @@ public class VaccineInfoServiceImpl implements IVaccineInfoService {
|
|
|
return vaccineInfoMapper.deleteVaccineInfoById(id);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据身份证号查询用户信息
|
|
|
+ * @param vaccineInfo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public VaccineInfoOperation findHjInfo(VaccineInfoOperation vaccineInfo) {
|
|
|
+ VaccineInfoOperation hjInfo = vaccineInfoMapper.findHjInfo(vaccineInfo);
|
|
|
+ if (hjInfo == null){
|
|
|
+ String idCard = vaccineInfo.getIdCard();
|
|
|
+ if (StringUtils.isNotBlank(idCard)){
|
|
|
+ //根据身份证提取出生日和性别
|
|
|
+ String sex = getSex(idCard);
|
|
|
+ String birthday = getBirthday(idCard);
|
|
|
+ vaccineInfo.setGender(sex);
|
|
|
+ vaccineInfo.setBirthday(birthday);
|
|
|
+ return vaccineInfo;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return hjInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 15位身份证号
|
|
|
+ */
|
|
|
+ private static final Integer FIFTEEN_ID_CARD=15;
|
|
|
+ /**
|
|
|
+ * 18位身份证号
|
|
|
+ */
|
|
|
+ private static final Integer EIGHTEEN_ID_CARD=18;
|
|
|
+ private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据身份证号获取性别
|
|
|
+ * @param IDCard
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String getSex(String IDCard){
|
|
|
+ String sex ="";
|
|
|
+ if (StringUtils.isNotBlank(IDCard)){
|
|
|
+ //15位身份证号
|
|
|
+ if (IDCard.length() == FIFTEEN_ID_CARD){
|
|
|
+ if (Integer.parseInt(IDCard.substring(14, 15)) % 2 == 0) {
|
|
|
+ sex = "女";
|
|
|
+ } else {
|
|
|
+ sex = "男";
|
|
|
+ }
|
|
|
+ //18位身份证号
|
|
|
+ }else if(IDCard.length() == EIGHTEEN_ID_CARD){
|
|
|
+ // 判断性别
|
|
|
+ if (Integer.parseInt(IDCard.substring(16).substring(0, 1)) % 2 == 0) {
|
|
|
+ sex = "女";
|
|
|
+ } else {
|
|
|
+ sex = "男";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sex;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取出生日期 yyyy年MM月dd日
|
|
|
+ * @param IDCard
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String getBirthday(String IDCard){
|
|
|
+ String birthday="";
|
|
|
+ String year="";
|
|
|
+ String month="";
|
|
|
+ String day="";
|
|
|
+ if (StringUtils.isNotBlank(IDCard)){
|
|
|
+ //15位身份证号
|
|
|
+ if (IDCard.length() == FIFTEEN_ID_CARD){
|
|
|
+ // 身份证上的年份(15位身份证为1980年前的)
|
|
|
+ year = "19" + IDCard.substring(6, 8);
|
|
|
+ //身份证上的月份
|
|
|
+ month = IDCard.substring(8, 10);
|
|
|
+ //身份证上的日期
|
|
|
+ day= IDCard.substring(10, 12);
|
|
|
+ //18位身份证号
|
|
|
+ }else if(IDCard.length() == EIGHTEEN_ID_CARD){
|
|
|
+ // 身份证上的年份
|
|
|
+ year = IDCard.substring(6).substring(0, 4);
|
|
|
+ // 身份证上的月份
|
|
|
+ month = IDCard.substring(10).substring(0, 2);
|
|
|
+ //身份证上的日期
|
|
|
+ day=IDCard.substring(12).substring(0,2);
|
|
|
+ }
|
|
|
+ birthday=year+"-"+month+"-"+day;
|
|
|
+ }
|
|
|
+ return birthday;
|
|
|
+ }
|
|
|
+
|
|
|
private void genNowIn(VaccineInfoOperation vaccineInfo) {
|
|
|
// 现居地
|
|
|
String nowIn = vaccineInfo.getProvince() + vaccineInfo.getCity() + vaccineInfo.getRegion();
|