生成订单编号 用java怎么处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成订单编号 用java怎么处理相关的知识,希望对你有一定的参考价值。

package com.zxd.base;

import java.text.SimpleDateFormat;
import java.util.Date;

public class OrderID
int i=0;
public String genOrderID()
int n=0;
String DateStr;
String istr;

//设置流水号,这里不知道怎么写
i++;
istr = String.valueOf(i);;
n = istr.length();;
if(n==1)
istr = "00000" + istr;
else if(n==2)
istr = "0000" + istr;
else if(n==3)
istr = "000" + istr;
else if(n==4)
istr = "00" + istr;
else if(n==5)
istr = "0" + istr;


//获得年月日字符串
SimpleDateFormat format1 = new SimpleDateFormat("yyyyMMdd");
//是不是严格按照指定的格式解析日期
format1.setLenient(false);;
DateStr = format1.format(new Date());

//构造订单号
StringBuffer orderId = new StringBuffer("WJY" + DateStr + istr);;
return orderId.toString();


这个流水号同一天肯定是不能重复的
我想设计成这样的格式
__________________________
| orderid |
___________________________
| 20090101000001 |
| 20090101000002 |
| 20090104000001 |

同一天的订单号码不重复
订单号码 前8位是 年月日 后面必须是6位数字
那位大侠帮我处理下,给出你的建议,或者有做过的给你的源码我看看谢谢

/**
* 得到一个新的订单代码
* 说明,此函数还没有进行过多线程测试,更新数据库时未加锁
* @return 新的订单代码
*/

public String getOrderCode()
//getParameter这个方法就是从数据库取2个参数的值 ORDER_CODE_DATE 和
//ORDER_CODE_NO是数据库字段名
BasParameters orderCodeDate = getParameter(ORDER_CODE_DATE);
BasParameters orderCodeNo = getParameter(ORDER_CODE_NO);

//当前日期
String currDate=new SimpleDateFormat("yyyyMMdd").format(new Date(System.currentTimeMillis()));

//每天的起始数
int orderNo = 100;

//表里存的日期和当前日期相同,顺序号累加
if (currDate.equals(orderCodeDate.getValue()))
orderCodeNo.setValue(""+(Integer.parseInt(orderCodeNo.getValue())+1));
orderNo = (Integer.parseInt(orderCodeNo.getValue()));
//save 就是保存ORDER_CODE_DATE 和 ORDER_CODE_NO当前值到数据库
save(orderCodeNo);
else
//表里存的日期和当前日期不同,顺序号重新开始,更新参数表的日期
orderCodeDate.setValue(currDate);
save(orderCodeDate);

orderCodeNo.setValue(orderNo);
save(orderCodeNo);



return currDate + new DecimalFormat("000000").format(orderNo);

参考技术A 我想你的订单编号是要存入数据库的吧(或者肯定要找一个地方存起来的),
这样的话,下次生成前,先读取一遍当前已生成的编号,然后顺便把当天
最大的那个号码取出,加1,就OK了么
参考技术B 给你个简单的办法》
全局一个int 储存流水号:
每天刷新:从0开始

如果是WEB就用application
参考技术C 用数据库的sequence啊,

selenium+python,关于表格操作:想通过获取订单状态去点击订单编号,可以怎么实现?

如图第1列是订单编号,最后一列是订单状态;
我需要筛选出对应的订单状态去点击订单编号,求问怎么实现?

参考技术A 用python 读取后生成DataFrame格式即可(pandas包)
例如读取到的df 中 列名分别为 订单编号 ,......,状态
import pandas as pd
df = pd.read_table('',sep='')#根据实际情况来
print(df[df['订单编号']=='12123123']]['状态']) 即可打印出该订单的状态
参考技术B 你这么一个小图图是看不出来什么的,有没有能提供的网页,或者是这一段的elements。有这些才能分析怎么去定位元素,获取元素后点击才能实现。 参考技术C 通过findelements找到每行对应的元素,然后对每行找到订单编号和状态这两个元素,可以用dict存储,判断状态是否满足某个条件,满足则点击对应的编号

以上是关于生成订单编号 用java怎么处理的主要内容,如果未能解决你的问题,请参考以下文章

java自动生成订单编号问题?

php如何生成订单号

如何生成唯一订单号

例76 快速自动生成订单编号【CONCATENATE】

java生成订单编号工具类

PHP购物车怎么生成订单号