/*** 生成快递单号* * @param str*            第一个快递单号* @param w*            递增的个数,或递减的个数* @param status*            判断是递增还是递减 1 = 递增 else = 递减* @param is_EMS*            判断是否是EMS 1 = 是EMS else = 其他* @return*/public String createExpress(String str, Integer w, Integer status,Integer is_EMS) {/* 快递单号转换为字符数组 */char strs[] = str.toCharArray();/* map存放每个数字或字符,位置和值 */Map<String, Object> map = new HashMap<String, Object>();/* lists存放数字在整个字符当中的位置 */List<Integer> lists = new ArrayList<Integer>();for (int i = 0; i < strs.length; i++) {// 把字符串转换为字符,再调用Character.isDigit(char)方法判断是否是数字,是返回True,否则Falseif (Character.isDigit(strs[i])) {map.put("" + i + "", strs[i]);lists.add(i);} else {map.put("" + i + "", strs[i]);}}StringBuffer hire = new StringBuffer();// 把数字放到hire中for (Integer integer : lists) {hire.append(map.get("" + integer + ""));}long num = Long.parseLong(hire.toString());String long_str = null;if (is_EMS == 1) {long_str = createEMS(num, w, status);} else {if (status == 1) {long_str = Long.toString(num + w);} else {long_str = Long.toString(num - w);}}char long_char[] = long_str.toCharArray();for (int i = 0; i < lists.size(); i++) {if(long_char.length == lists.size()){
<span style="white-space:pre">             </span>map.put(""+lists.get(i)+"", long_char[i]);
<span style="white-space:pre">         </span>}else{
<span style="white-space:pre">             </span>if(i<long_char.length){
<span style="white-space:pre">                 </span>map.put(""+lists.get(i)+"", long_char[i]);
<span style="white-space:pre">             </span>}else{
<span style="white-space:pre">                 </span>map.remove(""+lists.get(i)+"");
<span style="white-space:pre">             </span>}
<span style="white-space:pre">         </span>}}hire = new StringBuffer();// 把数字放到hire中for (int i = 0; i < map.size(); i++) {hire.append(map.get("" + i + ""));}return hire.toString();}/*** 根据EMS规则生成订单号* * @param ems*            去掉前后字符,取中间数字部分* @param w*            递增或递减的个数* @param status*            判断是递增还是递减* @return*/public String createEMS(long ems, Integer w, Integer status) {if (status == 1) {ems = ems + (w * 10);} else {ems = ems - (w * 10);}String long_str = Long.toString(ems);String[] long_sp = long_str.split("");int[] long_int = new int[long_sp.length - 1];for (int i = 0; i < long_sp.length - 1; i++) {long_int[i] = Integer.parseInt(long_sp[i + 1]);}int X = long_int[0] * 8 + long_int[1] * 6 + long_int[2] * 4+ long_int[3] * 2 + long_int[4] * 3 + long_int[5] * 5+ long_int[6] * 9 + long_int[7] * 7;int Y = X % 11;int Z = 11 - Y;if (Z == 10) {long_int[8] = 0;} else if (Z == 11) {long_int[8] = 5;} else if (Z < 10) {long_int[8] = Z;}/** -------------------- */StringBuffer long_strBf = new StringBuffer();for (int i = 0; i < long_int.length; i++) {long_strBf.append(long_int[i]);}return long_strBf.toString();}

根据快递单号,生成快递单号相关推荐

  1. 客户下单,自动分单,生成工单 发送短信 演...

    1. 启动相关系统  客户下单 bos_fore 前端系统 将订单数据发送到服务器 bos_management 自动分单,CRM 地址库完全匹配 crm_management 生成工单,发送短信 a ...

  2. mysql实现表单号:表单编码+时间+表单号

    背景:mysql+mybatis实现表单号: 表单规则为:表单编码+生成时间+随机号 例如:xft201911030056 1.新建表:base_coderole和base_codenumber SE ...

  3. 快速订单号生成(两秒左右10万条数据无重复)

    订单号生成 在开发当中我想大部分程序员都会做商城类的项目,其中订单号是一个相对比较重要的数据,在用户下单是不允许有重复订单生成的. 我给大家提供了一个生成订单的方法,希望对您有所帮助!!!!!!!!! ...

  4. html表单 asp验证,ASP中JavaScript处理复杂表单的生成与验证

    ASP中JavaScript处理复杂表单的生成与验证 更新时间:2007年03月25日 00:00:00   作者: 这里所谓的复杂表单,是指表单中包含多种不同的输入类型,比如下拉列表框.单行文本.多 ...

  5. php 快递单号生成规则,Thinkphp 生成订单号小案例

    Thinkphp 生成订单号小案例小伙伴们在日常的商城项目开发中,都会遇到订单号生成的问题,今天呢思梦PHP就带领大家去解读一下生成订单号的问题!首先,订单号我们要明确它有有3个性质:1.唯一性 2. ...

  6. 输入单号查快递:如何用快递单号查询快递信息

    作为商家,因为每天发出的快递公司不同,查询起来相对来说比较麻烦,那么如果一个这样的技巧,可以一次性查询多家快递,能对查询到的物流进行分析,该多好呢?小编觉得肯定是有的,下面一起来学习一下这个新技巧. ...

  7. 教你根据情况快速导入单号查询快递单号物流

    当我们需要查询快递单号物流时,在单号情况不同时如何快速导入单号查询每个单号物流呢?下面分析几种情况,希望能帮大家快速导入单号批量查询物流信息.一起来看看. 先在电脑上登录上"快递批量查询高手 ...

  8. PHP 通过单号查询快递( 申通、EMS、顺丰、圆通、中通、韵达、天天、汇通、全峰、德邦、宅急送)

    <meta charset="UTF-8"/> <!-- 让网页使用 UTF8 编码 --> <?php/*** @author ipqhjjybj* ...

  9. 众多快递中驿站代收的单号怎么查询、筛选的

    快递单号太多,怎么查询物流会比较快呢?像代收的单号可以筛选出来呢?小编的回答当然是可以的,下面一起来试试. 需要哪些工具? 快递批量查询高手 快递单号若干 怎么快速筛选? 运行[快递批量查询高手],记 ...

最新文章

  1. 【翻译】Jquery 1.7 发布
  2. java周志第二周_第二周JAVA学习日志
  3. 联想打印机 linux驱动怎么安装步骤,如何在MAC系统下安装打印机驱动
  4. 移动端学习笔记(小强测试品牌学员作品)
  5. arm-linux cannot find -lgcc_s,arm-linux-gcc编译avrdude时报错: cannot find -lncurses
  6. 计算机等级考试一级宝典,计算机等级考试一级通关宝典
  7. 如何在kylo中添加数据源
  8. html给标签添加背景,HTML – 如何在div上添加背景(灯箱效果)?
  9. mip php,zblog php mip主题开发官方指南
  10. android 手机超频降频秘籍
  11. Excel之如何使用VLOOKUP函数合并两张表
  12. 开源音乐_与这位开源音乐老师一起学习乐器
  13. 数据库设计基本概念及知识
  14. inductive bias:归纳偏置
  15. 深度学习-根据名字识别男女
  16. 如何简单使用纯CSS3模仿时钟的指针转动
  17. JAVA的奇门遁甲--lombok简单使用
  18. 嵩天-Python语言程序设计程序题--第五周:函数和代码复用
  19. 即时通信---环信SDK(IOS)使用教程
  20. ADB 命令结合 monkey 的简单使用,超详细

热门文章

  1. 《Scikit-Learn与TensorFlow机器学习实用指南》第13章 卷积神经网络
  2. Electric Fences_usaco3.4_皮克定理
  3. 你知道什么是 短路与 和 短路非吗 ???
  4. 储存过程的优点?缺点?
  5. 如何从0开始撰写一篇CS论文?(内附写作流程图)
  6. nodejs优雅的使用es6语法
  7. glibc和musl libc的区别
  8. IOS H5页面滑动过于频繁出现短暂白屏
  9. 智慧工地解决方案的关键技术
  10. RTL8189ES/ETV/FTV系列模块定频软件操作手册