📄 numgenerator.java
字号:
/*
* Created on 2003/12/29
*/
package com.leeman.wkexs.common;
import javax.ejb.ObjectNotFoundException;
import java.util.*;
import com.leeman.common.dao.*;
import com.leeman.common.util.Formatter;
import com.leeman.common.util.DateUtils;
import com.leeman.common.util.EjbGetter;
import com.leeman.wkexs.common.dao.*;
/**
* @author dennis
*/
public class NumGenerator{
private static double nextValue(String companyID, int runningTypeEnum, String runningYear) throws Exception
{
return nextValue(companyID, runningTypeEnum, runningYear, null);
}
private static double nextValue(String companyID, int runningTypeEnum, String runningYear, String optionValue1) throws Exception
{
NumDef def = new NumDef(runningTypeEnum);
String runningKey = null;
if (optionValue1 != null)
{
runningKey = def.getRunning_type() + "@" + optionValue1;
}
else
{
runningKey = def.getRunning_type();
}
double curr_no = 0;
Running_NumberHome home = (Running_NumberHome)EjbGetter.getEJBHome(Running_Number.JNDINAME, Running_NumberHome.class);
try{
Running_Number runningNumber = home.findByPrimaryKey(new Running_NumberKey(companyID, runningKey, runningYear));
curr_no = runningNumber.getLast_used_no().doubleValue() + runningNumber.getIncrement_by().doubleValue();
if (curr_no > runningNumber.getMax_value().doubleValue()){
if (runningNumber.getRecycle().equals(WKConstants.YES_FLAG)){
curr_no = runningNumber.getMin_value().doubleValue();
}
else{
throw new Exception ("Running type reaches maximum value.");
}
}
runningNumber.setLast_used_no(new Double(curr_no));
runningNumber = null;
return curr_no;
}
catch(ObjectNotFoundException e)
{
Running_Number runningNumber = home.create(companyID, runningKey, runningYear);
runningNumber.setIncrement_by(def.getIncrement_by());
runningNumber.setLast_used_no(def.getMin_value());
runningNumber.setMin_value(def.getMin_value());
runningNumber.setMax_value(def.getMax_value());
runningNumber.setRunning_desc(def.getRunning_desc());
runningNumber.setRecycle(WKConstants.YES_FLAG);
return def.getMin_value().doubleValue();
}
}
public static double generateNum(String companyID, int runningTypeEnum) throws Exception
{
return generateNum(companyID, runningTypeEnum, null);
}
public static double generateNum(String companyID, int runningTypeEnum, String optionValue1) throws Exception
{
double number = 0;
GregorianCalendar gc = (GregorianCalendar)GregorianCalendar.getInstance();
String yyyy = Formatter.lPad(String.valueOf(gc.get(GregorianCalendar.YEAR)), 4, '0');
//String yy = yyyy.substring(2,4);
//String mm = Formatter.lPad(String.valueOf(gc.get(GregorianCalendar.MONTH) + 1), 2, '0');
//String dd = Formatter.lPad(String.valueOf(gc.get(GregorianCalendar.DAY_OF_MONTH)), 2, '0');
//String hh = Formatter.lPad(String.valueOf(gc.get(GregorianCalendar.HOUR_OF_DAY)), 2, '0');
//String mi = Formatter.lPad(String.valueOf(gc.get(GregorianCalendar.MINUTE)), 2, '0');
//String ss = Formatter.lPad(String.valueOf(gc.get(GregorianCalendar.SECOND)), 2, '0');
switch (runningTypeEnum)
{
case NumDef.SC_TXN_NO:
number = nextValue(companyID, runningTypeEnum, yyyy);
break;
case NumDef.SC_NO:
number = nextValue(companyID, runningTypeEnum, yyyy);
break;
case NumDef.QUOTATION_TXN_NO:
number = nextValue(companyID, runningTypeEnum, yyyy);
break;
case NumDef.QUOTATION_NO:
number = nextValue(companyID, runningTypeEnum, yyyy);
break;
case NumDef.DEPOSIT_NO:
number = nextValue(companyID, runningTypeEnum, yyyy);
break;
case NumDef.DEBIT_NOTE_NO:
number = nextValue(companyID, runningTypeEnum, yyyy);
break;
case NumDef.CREDIT_NOTE_NO:
number = nextValue(companyID, runningTypeEnum, yyyy);
break;
case NumDef.SHIPMENT_NO:
number = nextValue(companyID, runningTypeEnum, yyyy);
break;
case NumDef.PN_NO:
number = nextValue(companyID, runningTypeEnum, yyyy);
break;
case NumDef.BR_NO:
number = nextValue(companyID, runningTypeEnum, yyyy);
break;
case NumDef.INVOICE_NO:
number = nextValue(companyID, runningTypeEnum, yyyy);
break;
case NumDef.CUSTOMER_NO:
number = nextValue(companyID, runningTypeEnum, "99");
break;
/* Amended by Anthea on 26/6/07 */
case NumDef.PRAR_NO:
number = nextValue(companyID, runningTypeEnum, yyyy);
break;
/* */
default:
throw new Exception("Invalid Running Type Enumulation.");
}
return number;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -