package xhs.test;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
* 生成单据号(需考虑WEB全局引用的问题)
* @since 2011-6-14
* @author xiaohuasi
*/
public class Bills {
// 格式化年月日的字符窜
private static final SimpleDateFormat yyyyMMdd = new SimpleDateFormat("yyyyMMdd");
private static Map<String, String> billsMap = new HashMap<String, String>();
private static Bills bills = null;
private Date date = null;
public Bills() {
}
/**
* 返回一个对象
* 供外调用非静态方法
*/
public static Bills instance() {
if (bills == null) {
bills = new Bills();
}
return bills;
}
public static Map<String, String> getBillsMap() {
return billsMap;
}
/** 获得单据号 在正常项目中此处需改成访问数据库的方法,建议在service层更改此方法*/
public String getBillsCode() {
int size = 0;
String dateStr = this.getYyyyMMdd();
Set<String> keySet = billsMap.keySet();
String keyVal = null;
for (Iterator<String> iter = keySet.iterator(); iter.hasNext();) {
keyVal = iter.next();
if (keyVal.indexOf(dateStr) == -1) {
iter.remove();
}
}
size = billsMap.size();
String billsCode = this.createBillsCode(size);
billsMap.put(billsCode, billsCode);
return billsCode;
}
/**
* 创建一个单据号
* @count:今日已经创建的单据号的数量
*/
private String createBillsCode(int count) {
int size = count + 1;
StringBuffer numbers = new StringBuffer();
//单据号前缀
numbers.append(getYyyyMMdd());
//单据号后缀
if (size >= 0 && size < 10) {
numbers.append("000");
} else if (size >= 10 && size < 100) {
numbers.append("00");
} else if (size >= 100 && size < 1000) {
numbers.append("0");
}
numbers.append(size);
return numbers.toString();
}
/**返回或创建一个日期*/
private Date getDate() {
if (date == null) {
date = new Date();
}
return date;
}
/**返回日期字符串 */
private String getYyyyMMdd() {
return yyyyMMdd.format(getDate());
}
}
分享到:
相关推荐
《淘宝快递单号自动生成大师v10.6与快递管理技术详解》 在电子商务行业中,尤其是淘宝平台,处理大量的订单和快递单号是日常运营的重要环节。"淘宝快递单号自动生成大师v10.6"是一款专为淘宝商家设计的高效工具,它...
在IT行业中,快递单号自动生成是一个常见的需求,特别是在电商和物流系统中。这个系统能够高效、快速地为每一笔订单分配独特的快递单号,确保包裹的追踪与管理。在这个"快递单号自动生成"的项目中,我们可以深入探讨...
"乐冠快递单号生成器免费版.exe"正是这样一款软件,它能够自动化地生成各快递公司的有效单号,大大减轻了用户的工作负担。 该工具的核心功能包括: 1. **自动生成功能**:用户只需选择相应的快递公司,工具将自动...
【真实快递单号生成器(获取器)绿色版】是一个工具软件,主要用于生成模拟真实快递公司的运单号码。这类工具在开发、测试或者数据分析场景中可能会有应用,比如模拟大量订单数据进行系统测试,或者在教学过程中演示...
千度快递单号生成器软件特点: 1. 版本更新为6.0版本,特点:完全简化操作 2次扫描只需要点一键智能扫描,为店主节省宝贵时间多赚钱。 2. 非固数式快递单号生成器,可生成当日快递单号,且不需要提供固数。 3. ...
在IT行业中,快递单号生成器是一个非常实用的工具,特别是在电商、物流或者配送服务等领域。这个工具的主要功能是自动生成具有唯一性的快递订单编号,确保每个包裹在运输过程中的可追溯性。以下是对"快递单号生成器...
《快递单号生成V4.0》能够自动生成符合各大快递公司格式的单号,确保每个单号都是合法且未被使用的,避免了因重复单号导致的混淆和错误。这一功能尤其适用于需要大量生成快递单号的商家,如在线商城、批发商等。 ...
真实快递单号生成器,单号生成系统,DELPHI开发。支持圆通,汇通,CCES,中通单号生成,无需注册,下载即用。
淘宝快递单号生成器2.0是一款专门设计用于模拟生成淘宝平台上的快递单号的工具。在电商行业中,每个订单都会关联一个独特的快递单号,以便于跟踪包裹的物流状态。这款生成器可以帮助用户快速创建测试数据,尤其对于...
在实际应用中,这个生成器可能被集成到一个更复杂的系统中,比如电子商务平台,在用户下单时自动为其生成顺丰单号,便于后续的物流跟踪。 总的来说,这个PHP源码项目展示了如何利用PHP的基本功能来解决实际问题,即...
1. 非固数式快递单号生成器,可生成当日快递单号,且不需要提供固数,软件可以锁定全国任何一个城市。 2. 软件独创智能扫描能智能分析单号范围进行扫描。 3. 软件保证可用可生成最新快递单号,杜绝因发货日期过期被...
js版生成快递单号,目前只支持宅急送、EMS、顺丰三家,能够进行往上、往下匹配。
慧达汇通快递单号生成器V10.0版,支持生成当天真实汇通快递单号,系统采用了当前最先进的超云查询与高级类推技术,并与每晚的23:00-13:00开放了免费使用,慧达旗下快递单号生成器是目前行业内使用人数最多、查询...
VBA自动生成单据号
快递单号生成器小软件。 【基本介绍】 独创智能扫描能智能分析单号范围进行扫描。 【软件特点】 1. 解决不能显示单号收货地址这一难题, 当日软件可以预知收货地址(仅供参考)。 2. 非固数式快递单号生成器,可生成...
采用全新的云内核,多台服务器24小时运算,给用户提供最快、最全、最准单号数据。...完美支持 圆通快递单号生成器 中通快递单号生成器 天天快递单号生成器 韵达快递单号生成器 V5软件是目前最强大的单号生成器
1.智能生成快递单号,自动过滤重复 2.查询速度超快,100个单号只要几秒钟,10000个单号只要几分钟,在同类软件中绝对是No.1 3.多家快递公司可供选择 4.多种条件一键智能筛选单号 5.绿色软件无需安装,无毒无马,不写...
慧达快递单号生成器V10.0版,支持生成当天真实EMS快递单号,系统采用了当前最先进的超云查询与高级类推技术,并与每晚的23:00-13:00开放了免费使用,慧达旗下快递.单号生成器是目前行业内使用人数最多、查询能力...
在IT行业中,生成物流单号是一项常见的需求,特别是在电商系统或者物流管理软件中。这篇内容将详细介绍如何使用PHP来生成邮局EMS(Express Mail Service)单号,以及相关的技术要点。 首先,EMS单号通常由一系列...