java生成稿件编号
1.java自动生成编号
private static int m=1;//全局静态变量,(必须static修饰)每调用一次方法自增1
public String add(){
addin(m);
return "addTiao";
}
public void addin(int a){
String str1="A";
Date date=new Date();
String str2=new SimpleDateFormat("yyyyMMdd"). format(date);//自动生成日期
int datee=Integer.parseInt(str2);
inlist=instockService.getInListDown();//按降幂排序
instockEntity=(InstockEntity) inlist.get(0);
String ss=instockEntity.getInstock_number();//得到最大日期
if(ss!=null){
String riqi=ss.substring(1, 9);
int riqi1=Integer.parseInt(riqi);
if(datee>riqi1){
a=1;//如果日期变大则初始化订单号
}
}
String str3=null;
if(a>=0&&a<=9){
str3="00"+String.valueOf(a);
}else if(a>=10&&a<=99){
str3="0"+String.valueOf(a);
}else if(a>=100&&a<=999){
str3=String.valueOf(a);
}
String instock_number=str1+str2+str3;
instockEntity.setInstock_number(instock_number);
instockService.add(instockEntity);
m=a+1;
}
2.java自动生成有规律的编号
public class Main { private static long n = 1; public static void main(String[] args) { System.out.println(test(n)); System.out.println(test(n)); } public static long test(long l) { String str = new SimpleDateFormat("yyyyMM") .format(new java.util.Date()); long m = Long.parseLong((str)) * 10000; long ret = m + l; n = l + 1; return ret; } }。
3.java生成编号
简单点的,可以判断生成的这个数除10,在转成字符串的时候加个判断
如果是0,说明是1位数,那么多加一个"0"在前面就行了。
如果不是0,说明不是1位数,那么就不加"0"了。
假设,int a就是生成的那个1。
String s是前面的时间包括"-"。
String str是最后的结果。
if(a/10 == 0){
str += "0";
}
str += a;
最后str就是有0的结果了,不知道能不能明白,不明白的话再hi我。
4.java中自动生成有规律的编号
实现思路:在本地存储一个文本文件用于记录上一次的编号序数,生成编号时从文件里读出编号序数后加一,并把结果保存回文件中以备下次生成使用。如此处理即可达成需求,具体代码如下(运行环境:jdk8或以上):
package com.file;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.time.LocalDate;
public class NoCreater {
public static void main(String[] args) {
System.out.println(next());
}
public static String next() {
File file = getCountFile();
try (BufferedReader fr = new BufferedReader(new FileReader(file))) {
int nextNum = Integer.valueOf(fr.readLine()) + 1;
try (FileOutputStream fos = new FileOutputStream(file)) {
fos.write(String.valueOf(nextNum).getBytes());
}
String next = "";
if (nextNum / 10
5.java实现自动生成流水号的方法
例如:
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class PrimaryGenerater {
private static final String SERIAL_NUMBER = "XXXX"; // 流水号格式
private static PrimaryGenerater primaryGenerater = null;
private PrimaryGenerater() {
}
public static PrimaryGenerater getInstance() {
if (primaryGenerater == null) {
synchronized (PrimaryGenerater.class) {
if (primaryGenerater == null) {
primaryGenerater = new PrimaryGenerater();
}
}
}
return primaryGenerater;
}
public synchronized String generaterNextNumber(String sno) {
String id = null;
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
if (sno == null) {
id = formatter.format(date) + "0001";
} else {
int count = SERIAL_NUMBER.length();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < count; i++) {
sb.append("0");
}
DecimalFormat df = new DecimalFormat("0000");
id = formatter.format(date)
+ df.format(1 + Integer.parseInt(sno.substring(8, 12)));
}
return id;
}
}
6.生成订单编号 用java怎么处理
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);
}
7.java自动生成订单编号问题
为了30分:
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
public static final String PREFIX = "DD";
private static long code;
public static void main(String[] args) {
System.out.println(Test.nextCode());
System.out.println(Test.nextCode());
System.out.println(Test.nextCode());
}
public static synchronized String nextCode() {
code++;
String str = new SimpleDateFormat("yyyyMM").format(new Date());
long m = Long.parseLong((str)) * 10000;
m += code;
return PREFIX + m;
}
}
8.java自动生成进货编码
import java.text.SimpleDateFormat;
import java.util.Date;
public class Autonum {
public String getNum(String start,String num){
String n=num.substring(0,3);
if(!n.equals(start)){
System.out.println("编号的开头与从数据库取得的编号开头不相同");
return "";
}
String strDate="";//流水号时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
//格式化当前时间,并按字符'-'分割
String[] sd=sdf.format(date).split("-");
//截取编号中的日期
String time=num.substring(3,11).toString();
for(int i=0;i<sd.length;i++){
strDate+=sd[i];
}
//如果当天或者表中没有记录,返回当天第一条记录
if(!time.equals(strDate)||num.equals("")){
return start+strDate+"0001";
}
// 截取编号最后的流水号
String end=num.substring(11, 15);
String s2="";
int lg=Integer.parseInt(end);
//对流水号结尾的四位数字进行判断,以便增加
if(lg>0&&lg<9){
s2="000"+(lg+1);
}else if(lg>=9&&lg<99){
s2="00"+(lg+1);
}else if(lg>=99&&lg<999){
s2="0"+(lg+1);
}else if(lg>=999&&lg<9999){
s2=""+(lg+1);
}
//返回自动生成后的流水号
return start+=strDate+s2;
}
}