Browse Source

Merge branch 'feature/visit_zhy'

dev_zufangUpdate
zhangyuan 3 years ago
parent
commit
4f183ed63b
  1. 1
      epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/VisitVisitorFormDTO.java
  2. 7
      epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/service/impl/VisitVisitorServiceImpl.java
  3. 7
      epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/Cities.java
  4. 85
      epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/IDUtils.java

1
epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/VisitVisitorFormDTO.java

@ -30,7 +30,6 @@ public class VisitVisitorFormDTO implements Serializable {
/** /**
* 身份证 * 身份证
*/ */
@NotBlank(message = "身份证号不能为空",groups = {AddGroup.class, DefaultGroup.class})
private String idCard; private String idCard;
/** /**

7
epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/service/impl/VisitVisitorServiceImpl.java

@ -22,6 +22,7 @@ import com.epmet.plugin.power.modules.visit.entity.VisitVisitorEntity;
import com.epmet.plugin.power.modules.visit.redis.VisitVisitorRedis; import com.epmet.plugin.power.modules.visit.redis.VisitVisitorRedis;
import com.epmet.plugin.power.modules.visit.service.VisitVisitorService; import com.epmet.plugin.power.modules.visit.service.VisitVisitorService;
import com.epmet.plugin.power.modules.visit.utils.DhDeviceUtil; import com.epmet.plugin.power.modules.visit.utils.DhDeviceUtil;
import com.epmet.plugin.power.modules.visit.utils.IDUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -169,12 +170,16 @@ public class VisitVisitorServiceImpl extends BaseServiceImpl<VisitVisitorDao, Vi
* @date 2022/7/28 9:13 * @date 2022/7/28 9:13
*/ */
private void sendAuth(VisitVisitorFormDTO dto) { private void sendAuth(VisitVisitorFormDTO dto) {
if (StringUtils.isBlank(dto.getIdCard())) {
dto.setIdCard(IDUtils.getIdNo(true));
}
DhPersonFormDTO formDTO = new DhPersonFormDTO(); DhPersonFormDTO formDTO = new DhPersonFormDTO();
formDTO.setPaperType("身份证"); formDTO.setPaperType("身份证");
formDTO.setPaperNumber(dto.getIdCard()); formDTO.setPaperNumber(dto.getIdCard());
formDTO.setName(dto.getName()); formDTO.setName(dto.getName());
formDTO.setCode(dto.getIdCard().substring(dto.getIdCard().length() - 10)); formDTO.setCode(dto.getIdCard().substring(dto.getIdCard().length() - 10));
formDTO.setSex(NumConstant.ZERO_STR.equals(dto.getGender()) ? "女" : "男"); formDTO.setSex(IDUtils.getSex(dto.getIdCard()));
formDTO.setBirthday(dto.getIdCard().substring(6, 10) + "-" + dto.getIdCard().substring(10, 12) + "-" + dto.getIdCard().substring(12, 14)); formDTO.setBirthday(dto.getIdCard().substring(6, 10) + "-" + dto.getIdCard().substring(10, 12) + "-" + dto.getIdCard().substring(12, 14));
formDTO.setPhone(dto.getMobile()); formDTO.setPhone(dto.getMobile());
formDTO.setStatus("在职"); formDTO.setStatus("在职");

7
epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/Cities.java

File diff suppressed because one or more lines are too long

85
epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/IDUtils.java

@ -0,0 +1,85 @@
package com.epmet.plugin.power.modules.visit.utils;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
public class IDUtils {
public static String getIdNo(boolean male) {
//随机生成生日 1~99岁
long begin = System.currentTimeMillis() - 3153600000000L;//100年内
long end = System.currentTimeMillis() - 31536000000L; //1年内
long rtn = begin + (long) (Math.random() * (end - begin));
Date date = new Date(rtn);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
String birth = simpleDateFormat.format(date);
return getIdNo(birth, male);
}
public static String getIdNo(String birth, boolean male) {
StringBuilder sb = new StringBuilder();
Random random = new Random();
int value = random.nextInt(Cities.cities.length);
sb.append(Cities.cities[value]);
sb.append(birth);
value = random.nextInt(999) + 1;
if (male && value % 2 == 0) {
value++;
}
if (!male && value % 2 == 1) {
value++;
}
if (value >= 100) {
sb.append(value);
} else if (value >= 10) {
sb.append('0').append(value);
} else {
sb.append("00").append(value);
}
sb.append(calcTrailingNumber(sb));
return sb.toString();
}
private static final int[] calcC = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
private static final char[] calcR = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
private static char calcTrailingNumber(StringBuilder sb) {
int[] n = new int[17];
int result = 0;
for (int i = 0; i < n.length; i++) {
n[i] = Integer.parseInt(String.valueOf(sb.charAt(i)));
}
for (int i = 0; i < n.length; i++) {
result += calcC[i] * n[i];
}
return calcR[result % 11];
}
/**
* 根据身份证号判断用户性别
*
* @param cardNo
* @return
*/
public static String getSex(String cardNo) {
String sexStr = "0";
if (cardNo.length() == 15) {
sexStr = cardNo.substring(14, 15);
} else if (cardNo.length() == 18) {
sexStr = cardNo.substring(16, 17);
}
int sexNo = Integer.parseInt(sexStr);
return sexNo % 2 == 0 ? "女" : "男";
}
// public static void main(String[] args) {
// long a = System.currentTimeMillis();
// System.out.println(getIdNo("19790306", true));
// System.out.println(getIdNo("20100112", false));
// System.out.println(getIdNo(true));
// System.out.println(getIdNo(false));
// a = System.currentTimeMillis() - a;
// System.out.println(a);
// }
}
Loading…
Cancel
Save