import com.zdww.pyang.common.constants.Constants;
import org.apache.commons.lang3.StringUtils;
/**
* @title: 行政区划的帮助类
* @auther:
* @Date: 某年/某月/某日
*/
public final class AreaCodeHelper {
private AreaCodeHelper() {
}
/**
* 方法描述:截取areaCode
*/
public static final String subAreaCode(String areaCode) {
if (areaCode.endsWith("0000000000")) {
areaCode = areaCode.substring(0, 2);
} else if (areaCode.endsWith("00000000")) {
areaCode = areaCode.substring(0, 4);
} else if (areaCode.endsWith("000000")) {
areaCode = areaCode.substring(0, 6);
} else if (areaCode.endsWith("000")) {
areaCode = areaCode.substring(0, 9);
}
return areaCode;
}
/**
* 方法描述:截取areaCode
*/
public static final String subAreaCodeByLevel(String areaCode, String level) {
if ("1".equals(level)) {
areaCode = areaCode.substring(0, 2);
} else if ("2".equals(level)) {
areaCode = areaCode.substring(0, 4);
} else if ("3".equals(level)) {
areaCode = areaCode.substring(0, 6);
} else if ("4".equals(level)) {
areaCode = areaCode.substring(0, 9);
}
return areaCode;
}
/**
* 方法描述:获取行政区划的行政等级
*
* @param areaCode 行政区划
* @return String
*/
public static final String getAreaCodeLevel(String areaCode) {
int length = getVaildCode(areaCode).length();
String level = "1";
if (length > 0 && length <= 2) {// 省级
level = "1";
} else if (length > 2 && length <= 4) { // 市级
level = "2";
} else if (length > 4 && length <= 6) { // 县级
level = "3";
} else if (length > 6 && length <= 9) { // 乡级
level = "4";
} else if (length > 9 && length <= 12) { // 村级
level = "5";
}
return level;
}
public static String getVaildCode(String code) {
if ("0000000000".equals(code.substring(2, 12))) {
code = code.substring(0, 2);
} else if ("00000000".equals(code.substring(4, 12))) {
code = code.substring(0, 4);
} else if ("000000".equals(code.substring(6, 12))) {
code = code.substring(0, 6);
} else if ("000".equals(code.substring(9, 12))) {
code = code.substring(0, 9);
}
return code;
}
/**
* 获取有效行政区划值,包括类似于621000000000 -> 6210
*
* @param: code
* @return: java.lang.String
* @date 某年/某月/某日
*/
public static String getVaildCodeNew(String code) {
if ("0000000000".equals(code.substring(2, 12))) {
code = code.substring(0, 2);
} else if ("00000000".equals(code.substring(4, 12))) {
code = code.substring(0, 4);
} else if ("000000".equals(code.substring(6, 12))) {
code = code.substring(0, 6);
} else if ("000".equals(code.substring(9, 12))) {
code = code.substring(0, 9);
}
return code;
}
public static final String getAreaCodeLevelNew(String areaCode) {
int length = getVaildCodeNew(areaCode).length();
String level = "1";
if (length > 0 && length <= 2) {// 省级
level = "1";
} else if (length > 2 && length <= 4) { // 市级
level = "2";
} else if (length > 4 && length <= 6) { // 县级
level = "3";
} else if (length > 6 && length <= 9) { // 乡级
level = "4";
} else if (length > 9 && length <= 12) { // 村级
level = "5";
}
return level;
}
public static final String getParentAreaCodebyLevel(String areaCode, String level) {
String subLevel = getAreaCodeLevel(areaCode);
if (Integer.parseInt(subLevel) < Integer.parseInt(level)) {
return "";
} else if (Integer.parseInt(subLevel) == Integer.parseInt(level)) {
return areaCode;
} else {
// 省级
if ("1".equals(level)) {
return areaCode.substring(0, 2) + "0000000000";
} else if ("2".equals(level)) {
// 市级
return areaCode.substring(0, 4) + "00000000";
} else if ("3".equals(level)) {
// 县级
return areaCode.substring(0, 6) + "000000";
} else if ("4".equals(level)) {
// 乡级
return areaCode.substring(0, 9) + "000";
} else {
return areaCode;
}
}
}
public static final Boolean isNotNationwideAreaCode(String areaCode) {
return StringUtils.isNotBlank(areaCode) && !Constants.NUMBER_0.equals(areaCode);
}
}
07-01
1213

05-16
6027

02-23
646
