wxz 5 years ago
parent
commit
2757fb7ef8
  1. 38
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java
  2. 201
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/IdCardNoValidatorUtils.java
  3. 2
      epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-dev.yml
  4. 2
      epmet-module/resi-partymember/resi-partymember-server/pom.xml

38
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java

@ -76,23 +76,23 @@ public enum RequirePermissionEnum {
/**
* 基层治理-议题管理
*/
WORK_GRASSROOTS_ISSUE_VOTINGLIST("work_grassroots_issue_voting_list","表决中","表决中议题列表查询"),
WORK_GRASSROOTS_ISSUE_SHIFTED_PROJECT_LIST("work_grassroots_issue_shifted_project_list", "已转项目列表查询","已转项目议题列表查询"),
WORK_GRASSROOTS_ISSUE_CLOSED_LIST("work_grassroots_issue_closed_list","已关闭","已关闭议题列表查询"),
WORK_GRASSROOTS_ISSUE_DETAIL("work_grassroots_issue_detail", "议题详情","议题详情界面所有的api添加此校验"),
WORK_GRASSROOTS_ISSUE_SHIFT_PROJECT("work_grassroots_issue_shift_project", "转项目","转项目(选择处理部门api也需要添加此校验)"),
WORK_GRASSROOTS_ISSUE_CLOSE("work_grassroots_issue_close","关闭议题","关闭议题"),
WORK_GRASSROOTS_ISSUE_VOTINGLIST("work_grassroots_issue_voting_list","基层治理:议题管理:表决中","表决中议题列表查询"),
WORK_GRASSROOTS_ISSUE_SHIFTED_PROJECT_LIST("work_grassroots_issue_shifted_project_list", "基层治理:议题管理:已转项目列表查询","已转项目议题列表查询"),
WORK_GRASSROOTS_ISSUE_CLOSED_LIST("work_grassroots_issue_closed_list","基层治理:议题管理:已关闭","已关闭议题列表查询"),
WORK_GRASSROOTS_ISSUE_DETAIL("work_grassroots_issue_detail", "基层治理:议题管理:议题详情","议题详情界面所有的api添加此校验"),
WORK_GRASSROOTS_ISSUE_SHIFT_PROJECT("work_grassroots_issue_shift_project", "基层治理:议题管理:转项目","转项目(选择处理部门api也需要添加此校验)"),
WORK_GRASSROOTS_ISSUE_CLOSE("work_grassroots_issue_close","基层治理:议题管理:关闭议题","关闭议题"),
/**
* 工作-项目跟踪
*/
WORK_PROJECT_TRACE_PENDING_LIST("work_project_trace_pending_list","待处理","待处理的项目,列表查询"),
WORK_PROJECT_TRACE_CREATED_LIST("work_project_trace_created_list","我发起","我发起的项目,列表查询"),
WORK_PROJECT_TRACE_INVOLVED_LIST("work_project_trace_involved_list","我参与","我参与的项目,列表查询"),
WORK_PROJECT_TRACE_DETAIL("work_project_trace_detail","项目详情","项目详情界面所有的api添加此校验"),
WORK_PROJECT_TRACE_CLOSE("work_project_trace_close","结案","结案"),
WORK_PROJECT_TRACE_TRANSFER("work_project_trace_transfer","转其他部门","转其他部门(选择处理部门api也需要添加此校验)"),
WORK_PROJECT_TRACE_RETURN("work_project_trace_return","退回","退回"),
WORK_PROJECT_TRACE_PENDING_LIST("work_project_trace_pending_list","项目跟踪:待处理","待处理的项目,列表查询"),
WORK_PROJECT_TRACE_CREATED_LIST("work_project_trace_created_list","项目跟踪:我发起","我发起的项目,列表查询"),
WORK_PROJECT_TRACE_INVOLVED_LIST("work_project_trace_involved_list","项目跟踪:我参与","我参与的项目,列表查询"),
WORK_PROJECT_TRACE_DETAIL("work_project_trace_detail","项目跟踪:项目详情","项目详情界面所有的api添加此校验"),
WORK_PROJECT_TRACE_CLOSE("work_project_trace_close","项目跟踪:结案","结案"),
WORK_PROJECT_TRACE_TRANSFER("work_project_trace_transfer","项目跟踪:转其他部门","转其他部门(选择处理部门api也需要添加此校验)"),
WORK_PROJECT_TRACE_RETURN("work_project_trace_return","项目跟踪:退回","退回"),
/**
* 党务工作-党建声音
@ -111,12 +111,12 @@ public enum RequirePermissionEnum {
/**
* 基层治理-支部管理
*/
WORK_GRASSROOTS_PARTY_BRANCH_ADD("work_grassroots_party_branch_add","添加党支部","支部管理-添加党支部"),
WORK_GRASSROOTS_PARTY_BRANCH_EDIT("work_grassroots_party_branch_edit","编辑党支部","支部管理-编辑党支部信息"),
WORK_GRASSROOTS_PARTY_BRANCH_DELETE("work_grassroots_party_branch_delete","删除党支部","支部管理-删除党支部"),
WORK_GRASSROOTS_PARTY_MEMBER_ADD("work_grassroots_party_member_add","添加党员","支部管理-添加党员"),
WORK_GRASSROOTS_PARTY_MEMBER_EDIT("work_grassroots_party_member_edit","编辑党员","支部管理-编辑党员"),
WORK_GRASSROOTS_PARTY_MEMBER_DELETE("work_grassroots_party_member_delete","删除党员","支部管理-删除党员");
WORK_GRASSROOTS_PARTY_BRANCH_ADD("work_grassroots_party_branch_add","基层治理:支部管理:添加党支部","支部管理-添加党支部"),
WORK_GRASSROOTS_PARTY_BRANCH_EDIT("work_grassroots_party_branch_edit","基层治理:支部管理:编辑党支部","支部管理-编辑党支部信息"),
WORK_GRASSROOTS_PARTY_BRANCH_DELETE("work_grassroots_party_branch_delete","基层治理:支部管理:删除党支部","支部管理-删除党支部"),
WORK_GRASSROOTS_PARTY_MEMBER_ADD("work_grassroots_party_member_add","基层治理:支部管理:添加党员","支部管理-添加党员"),
WORK_GRASSROOTS_PARTY_MEMBER_EDIT("work_grassroots_party_member_edit","基层治理:支部管理:编辑党员","支部管理-编辑党员"),
WORK_GRASSROOTS_PARTY_MEMBER_DELETE("work_grassroots_party_member_delete","基层治理:支部管理:删除党员","支部管理-删除党员");
private String key;

201
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/IdCardNoValidatorUtils.java

@ -1,19 +1,212 @@
package com.epmet.commons.tools.validator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Hashtable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static java.util.regex.Pattern.*;
/**
* 描述一下
* 身份证号校验
*
* @author yinzuomei@elink-cn.com
* @date 2020/6/18 9:59
*/
public class IdCardNoValidatorUtils {
//判断身份证号是否正确
private static Logger logger = LoggerFactory.getLogger(IdCardNoValidatorUtils.class);
/**
* 身份证验证
*
* @param idCardNo
* @return 校验信息correct为成功失败会返回对应的失败原因
*/
public static boolean checkIsIdCardNo(String idCardNo) {
String[] wf = {"1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"};
String[] checkCode = {"7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9", "10", "5", "8", "4", "2"};
String iDCardNo = "";
try {
//判断号码的长度 15位或18位
if (idCardNo.length() != 15 && idCardNo.length() != 18) {
logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证号码长度应该为15位或18位"));
return false;
}
if (idCardNo.length() == 18) {
String lastStr = idCardNo.substring(idCardNo.length() - 1);
if (!Character.isDigit(lastStr.charAt(0))) {
if (Character.isLowerCase(lastStr.charAt(0))) {
logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "18身份证号最后一位字母需要大写"));
return false;
}
} else {
logger.info(String.format("身份证号%s最后一位为数字"));
}
}
if (idCardNo.length() == 18) {
iDCardNo = idCardNo.substring(0, 17);
} else if (idCardNo.length() == 15) {
iDCardNo = idCardNo.substring(0, 6) + "19" + idCardNo.substring(6, 15);
}
if (isStrNum(iDCardNo) == false) {
logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证15位号码都应为数字;18位号码除最后一位外,都应为数字"));
return false;
}
//判断出生年月
String strYear = iDCardNo.substring(6, 10);// 年份
String strMonth = iDCardNo.substring(10, 12);// 月份
String strDay = iDCardNo.substring(12, 14);// 月份
if (isStrDate(strYear + "-" + strMonth + "-" + strDay) == false) {
logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证生日无效"));
return false;
}
GregorianCalendar gc = new GregorianCalendar();
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
if ((gc.get(Calendar.YEAR) - Integer.parseInt(strYear)) > 150 || (gc.getTime().getTime() - s.parse(strYear + "-" + strMonth + "-" + strDay).getTime()) < 0) {
logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证生日不在有效范围"));
return false;
}
if (Integer.parseInt(strMonth) > 12 || Integer.parseInt(strMonth) == 0) {
logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证月份无效"));
return false;
}
if (Integer.parseInt(strDay) > 31 || Integer.parseInt(strDay) == 0) {
logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证日期无效"));
return false;
}
//判断地区码
Hashtable h = GetAreaCode();
if (h.get(iDCardNo.substring(0, 2)) == null) {
logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证地区编码错误"));
return false;
}
//判断最后一位
int theLastOne = 0;
for (int i = 0; i < 17; i++) {
theLastOne = theLastOne + Integer.parseInt(String.valueOf(iDCardNo.charAt(i))) * Integer.parseInt(checkCode[i]);
}
int modValue = theLastOne % 11;
String strVerifyCode = wf[modValue];
iDCardNo = iDCardNo + strVerifyCode;
if (idCardNo.length() == 18 && !iDCardNo.equals(idCardNo)) {
logger.error(String.format("校验身份证号:%s错误:%s", idCardNo, "身份证无效,不是合法的身份证号码"));
return false;
}
} catch (Exception e) {
logger.error(String.format("校验身份证号方法异常"));
e.printStackTrace();
}
return true;
}
/**
* 地区代码
*
* @return Hashtable
*/
private static Hashtable GetAreaCode() {
Hashtable<String, String> hashtable = new Hashtable<String, String>();
hashtable.put("11", "北京");
hashtable.put("12", "天津");
hashtable.put("13", "河北");
hashtable.put("14", "山西");
hashtable.put("15", "内蒙古");
hashtable.put("21", "辽宁");
hashtable.put("22", "吉林");
hashtable.put("23", "黑龙江");
hashtable.put("31", "上海");
hashtable.put("32", "江苏");
hashtable.put("33", "浙江");
hashtable.put("34", "安徽");
hashtable.put("35", "福建");
hashtable.put("36", "江西");
hashtable.put("37", "山东");
hashtable.put("41", "河南");
hashtable.put("42", "湖北");
hashtable.put("43", "湖南");
hashtable.put("44", "广东");
hashtable.put("45", "广西");
hashtable.put("46", "海南");
hashtable.put("50", "重庆");
hashtable.put("51", "四川");
hashtable.put("52", "贵州");
hashtable.put("53", "云南");
hashtable.put("54", "西藏");
hashtable.put("61", "陕西");
hashtable.put("62", "甘肃");
hashtable.put("63", "青海");
hashtable.put("64", "宁夏");
hashtable.put("65", "新疆");
hashtable.put("71", "台湾");
hashtable.put("81", "香港");
hashtable.put("82", "澳门");
hashtable.put("91", "国外");
return hashtable;
}
/**
* 判断字符串是否为数字
*
* @param str
* @return
*/
private static boolean isStrNum(String str) {
Pattern pattern = compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
if (isNum.matches()) {
return true;
} else {
return false;
}
}
//根据身份证号判断性别
/**
* 判断字符串是否为日期格式
*
* @param strDate
* @return
*/
public static boolean isStrDate(String strDate) {
Pattern pattern = compile("^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1-2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$");
Matcher m = pattern.matcher(strDate);
if (m.matches()) {
return true;
} else {
return false;
}
}
//根据身份证号判断性别 1男2女0未知
public static String getGender(String idCard) {
return "1";
String gender = "0";
if (!IdCardNoValidatorUtils.checkIsIdCardNo(idCard)) {
return gender;
}
if (idCard.length() == 18) {
if (Integer.parseInt(idCard.substring(16).substring(0, 1)) % 2 == 0) {
gender = "2";
} else {
gender = "1";
}
} else if (idCard.length() == 15) {
String usex = idCard.substring(14, 15);
if (Integer.parseInt(usex) % 2 == 0) {
gender = "2";
} else {
gender = "1";
}
}
return gender;
}
}

2
epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
resi-partymember-server:
container_name: resi-partymember-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/resi-partymember-server:0.3.48
image: 192.168.1.130:10080/epmet-cloud-dev/resi-partymember-server:0.3.49
ports:
- "8096:8096"
network_mode: host # 使用现有网络

2
epmet-module/resi-partymember/resi-partymember-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.3.48</version>
<version>0.3.49</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>resi-partymember</artifactId>

Loading…
Cancel
Save