WaybillTools.java
2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package com.tianbo.analysis.tools;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author mrz
* 关于运单的工具类
*/
@Slf4j
public class WaybillTools {
/**
* 检查运单格式是否符合要求 格式要求为172-66666666
* @param waybillNo 运单号
* @return true符合
*/
public static boolean checkWaybillFormat(String waybillNo){
if (StringUtils.isNotBlank(waybillNo)){
String pattern = "^\\d{3}-\\d{8}$";
// 创建 Pattern 对象
Pattern r = Pattern.compile(pattern);
boolean isMatch = Pattern.matches(pattern, waybillNo);
return isMatch;
}
return false;
}
/**
* 转换运单格式,将17266666666格式转换成172-66666666
* @param awbNo 运单号,格式为17255555555
* @return 转换后的运单号
*/
public static String awbFormat(String awbNo) {
if (!StringUtils.isEmpty(awbNo)) {
//适配邮单解析
String pattern = "\\d{11}";
boolean isMatch = Pattern.matches(pattern, awbNo);
if (!isMatch){
return awbNo;
}
StringBuffer stringBuffer = new StringBuffer(awbNo);
stringBuffer.insert(3, "-");
awbNo = stringBuffer.toString();
return awbNo;
}
return "";
}
/**
* 模七校验
* @param waybillNo
* @return
*/
public static boolean model7Check(String waybillNo){
String pattern = "\\d{3}-\\d{8}";
// 创建 Pattern 对象
Pattern r = Pattern.compile(pattern);
// 现在创建 matcher 对象
Matcher m = r.matcher(waybillNo);
if (m.find()){
String num = waybillNo.split("-")[1];
String num_7 = num.substring(0,7);
String num_end = num.substring(7,8);
if (Integer.parseInt(num_7)% 7 == Integer.parseInt(num_end)){
return true;
}else {
log.error("{}模七不通过",waybillNo);
}
}else {
log.error("{}运单格式不正确",waybillNo);
}
return false;
}
}