java自动生成物流单号

1


public class DeliveryNum {

/**
* //宅急送物流单 和 雅玛多物流单生成:加11,逢6 减6加10
* @param deliverynum 物流单号
* @return 后一个物流单号
*/
public static String getOneNum(String deliverynum)
{
String deliveryvalue="";
int num= Integer.parseInt(deliverynum);
int yushu = num % 10;
if(yushu == 6){
num = num -6 +10;
}else{
num = num + 11;
}
int intnum=String.valueOf(num).trim().length();//num 字符长度
int strnum=deliverynum.trim().length();//输入的物流单号字符长度
//判断int类型数据是否小于原来值的长度
//如物流单号是已’0‘开头的,需要把零补上
String value="";
if(intnum < strnum)
{
for(int j=0;j< (strnum -intnum);j++ )
{
value +="0";
}
}
deliveryvalue = value+num;
return deliveryvalue;
}
/**
* //中通、韵达、艾斯客、闵鑫 自动加 1
* @param deliverynum 物流单号
* @return 后一个物流单号
*/
public static String getTwoNum(String deliverynum)
{ 
String deliveryvalue="";
int num= Integer.parseInt(deliverynum);
num++;
System.out.println(num);
int intnum=String.valueOf(num).trim().length();//num 字符长度
int strnum=deliverynum.trim().length();//输入的物流单号字符长度
//判断int类型数据是否小于原来值的长度
//如物流单号是已’0‘开头的,需要把零补上
String value="";
if(intnum < strnum)
{
for(int j=0;j< (strnum -intnum);j++ )
{
value +="0";
}
}
deliveryvalue = value+num;
return deliveryvalue;
}
/**
* EMS物流单
* @param deliverynum EMS物流单号
* @return 后一个物流单号
*/
public static String getThreeNum(String deliverynum)
{
String strbegin = deliverynum.substring(0,2);
String strend = deliverynum.substring(deliverynum.length() - 2,deliverynum.length());
String modnum = deliverynum.substring(2,deliverynum.length() - 3);
//订单号加一
int intnum =  Integer.parseInt(modnum) + 1;
//判断字符串长度
int ontnum=String.valueOf(intnum).trim().length();//num 字符长度
int twonum=modnum.trim().length();//输入的物流单号字符长度
//判断int类型数据是否小于原来值的长度
//如物流单号是已’0‘开头的,需要把零补上
String value="";
if(ontnum < twonum)
{
for(int j=0;j< (twonum -ontnum);j++ )
{
value +="0";
}
}
//保存新单号数字字符串
modnum = value + intnum;

//求第九个数字位的验证字符
int verifynum = 0;//效验字符
int sum = 8*Integer.parseInt(modnum.substring(0,1)) +
 6*Integer.parseInt(modnum.substring(1,2))+
 4*Integer.parseInt(modnum.substring(2,3))+
 2*Integer.parseInt(modnum.substring(3,4))+
 3*Integer.parseInt(modnum.substring(4,5))+
 5*Integer.parseInt(modnum.substring(5,6))+
 9*Integer.parseInt(modnum.substring(6,7))+
 7*Integer.parseInt(modnum.substring(7,8));
int modnumber = sum%11;
if( 11-modnumber == 10){
verifynum =  0;
}else
if(11-modnumber == 11){
verifynum = 5;
}else{
verifynum = 11-modnumber;
}
deliverynum = strbegin + modnum + String.valueOf(verifynum) + strend;
return deliverynum; 
}

/**
* 获取下一个物流单号
* @param delivery 物流公司, @param deliverynum 物流单号
* @return
*/
public  static  String getDeliverynum(String delivery,String deliverynum)
{
//运算物流单号
if("4".equals(delivery) || "8".equals(delivery))
{
deliverynum = DeliveryNum.getOneNum(deliverynum);
}else
if("1".equals(delivery) || "5".equals(delivery)  || "6".equals(delivery)  || "7".equals(delivery))
{
deliverynum = DeliveryNum.getTwoNum(deliverynum);
}else
if("2".equals(delivery))
{
deliverynum = DeliveryNum.getThreeNum(deliverynum);
}
return deliverynum;
}
}
/**
* //中通、韵达、艾斯客、闵鑫 自动加 1
* @param deliverynum 物流单号
* @return 后一个物流单号
*/
public static String getTwoNum(String deliverynum)
{ 
String deliveryvalue="";
int num= Integer.parseInt(deliverynum);
num++;
System.out.println(num);
int intnum=String.valueOf(num).trim().length();//num 字符长度
int strnum=deliverynum.trim().length();//输入的物流单号字符长度
//判断int类型数据是否小于原来值的长度
//如物流单号是已’0‘开头的,需要把零补上
String value="";
if(intnum < strnum)
{
for(int j=0;j< (strnum -intnum);j++ )
{
value +="0";
}
}
deliveryvalue = value+num;
return deliveryvalue;
}
/**
* EMS物流单
* @param deliverynum EMS物流单号
* @return 后一个物流单号
*/
public static String getThreeNum(String deliverynum)
{
String strbegin = deliverynum.substring(0,2);
String strend = deliverynum.substring(deliverynum.length() - 2,deliverynum.length());
String modnum = deliverynum.substring(2,deliverynum.length() - 3);
//订单号加一
int intnum =  Integer.parseInt(modnum) + 1;
//判断字符串长度
int ontnum=String.valueOf(intnum).trim().length();//num 字符长度
int twonum=modnum.trim().length();//输入的物流单号字符长度
//判断int类型数据是否小于原来值的长度
//如物流单号是已’0‘开头的,需要把零补上
String value="";
if(ontnum < twonum)
{
for(int j=0;j< (twonum -ontnum);j++ )
{
value +="0";
}
}
//保存新单号数字字符串
modnum = value + intnum;
//求第九个数字位的验证字符
int verifynum = 0;//效验字符
int sum = 8*Integer.parseInt(modnum.substring(0,1)) +
 6*Integer.parseInt(modnum.substring(1,2))+
 4*Integer.parseInt(modnum.substring(2,3))+
 2*Integer.parseInt(modnum.substring(3,4))+
 3*Integer.parseInt(modnum.substring(4,5))+
 5*Integer.parseInt(modnum.substring(5,6))+
 9*Integer.parseInt(modnum.substring(6,7))+
 7*Integer.parseInt(modnum.substring(7,8));
int modnumber = sum%11;
if( 11-modnumber == 10){
verifynum =  0;
}else
if(11-modnumber == 11){
verifynum = 5;
}else{
verifynum = 11-modnumber;
}
deliverynum = strbegin + modnum + String.valueOf(verifynum) + strend;
return deliverynum; 
}

/**
* 获取下一个物流单号
* @param delivery 物流公司, @param deliverynum 物流单号
* @return
*/
public  static  String getDeliverynum(String delivery,String deliverynum)
{
//运算物流单号
if("4".equals(delivery) || "8".equals(delivery))
{
deliverynum = DeliveryNum.getOneNum(deliverynum);
}else
if("1".equals(delivery) || "5".equals(delivery)  || "6".equals(delivery)  || "7".equals(delivery))
{
deliverynum = DeliveryNum.getTwoNum(deliverynum);
}else
if("2".equals(delivery))
{
deliverynum = DeliveryNum.getThreeNum(deliverynum);
}
return deliverynum;
}
}
//求第九个数字位的验证字符
int verifynum = 0;//效验字符
int sum = 8*Integer.parseInt(modnum.substring(0,1)) +
 6*Integer.parseInt(modnum.substring(1,2))+
 4*Integer.parseInt(modnum.substring(2,3))+
 2*Integer.parseInt(modnum.substring(3,4))+
 3*Integer.parseInt(modnum.substring(4,5))+
 5*Integer.parseInt(modnum.substring(5,6))+
 9*Integer.parseInt(modnum.substring(6,7))+
 7*Integer.parseInt(modnum.substring(7,8));
int modnumber = sum%11;
if( 11-modnumber == 10){
verifynum =  0;
}else
if(11-modnumber == 11){
verifynum = 5;
}else{
verifynum = 11-modnumber;
}
deliverynum = strbegin + modnum + String.valueOf(verifynum) + strend;
return deliverynum; 
}
/**
* 获取下一个物流单号
* @param delivery 物流公司, @param deliverynum 物流单号
* @return
*/
public  static  String getDeliverynum(String delivery,String deliverynum)
{
//运算物流单号
if("4".equals(delivery) || "8".equals(delivery))
{
deliverynum = DeliveryNum.getOneNum(deliverynum);
}else
if("1".equals(delivery) || "5".equals(delivery)  || "6".equals(delivery)  || "7".equals(delivery))
{
deliverynum = DeliveryNum.getTwoNum(deliverynum);
}else
if("2".equals(delivery))
{
deliverynum = DeliveryNum.getThreeNum(deliverynum);
}
return deliverynum;
}
}
/**
* 获取下一个物流单号
* @param delivery 物流公司, @param deliverynum 物流单号
* @return
*/
public  static  String getDeliverynum(String delivery,String deliverynum)
{
//运算物流单号
if("4".equals(delivery) || "8".equals(delivery))
{
deliverynum = DeliveryNum.getOneNum(deliverynum);
}else
if("1".equals(delivery) || "5".equals(delivery)  || "6".equals(delivery)  || "7".equals(delivery))
{
deliverynum = DeliveryNum.getTwoNum(deliverynum);
}else
if("2".equals(delivery))
{
deliverynum = DeliveryNum.getThreeNum(deliverynum);
}
return deliverynum;
}
}










  •  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值