JAVA生成一张草稿

/**
 * 
 * ClassName: PrimaryUtils
 * @Description: 生成ID工具类
 * [@author](https://my.oschina.net/arthor) _Artisan
 * [@date](https://my.oschina.net/u/2504391) 2017年11月8日
 */
public class PrimaryUtils {
	
	/**
	 * 
	 * [@Title](https://my.oschina.net/w2e): getRule 
	 * @Description: 生成ID的规则
	 * @param @param prefix
	 * @param @return
	 * @return String
	 * @throws
	 */
	public static String getRule(String prefix){
		return prefix + "-" + DateUtils.getNowSpecialFormat("yyyyMMdd")+ "-";
	}
	
	/**
	 * 
	 * @Title: getId 
	 * @Description: 获取Id
	 * @param @param prefix
	 * @param @param number
	 * @param @return
	 * @return String
	 * @throws
	 */
	public static String getId(String prefix,int number){
		return getRule(prefix) + number;
	}
	
}

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author _Artisan
 * @since 2017-10-27
 */
@Service
public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> implements IPurchaseService {

	@Autowired
	private PurchaseMapper purchaseDao;
	
	private int number = 1; // 编号
	private int day = DateUtils.getDay();

	private String createId() {
		// 第二天重置编号为1
		if (day != DateUtils.getDay()){
			day = DateUtils.getDay();
			number = 1;
		}
		String id = PrimaryUtils.getId("PURCHASE", number);		
		Purchase o = purchaseDao.selectById(id);
		// 如果能取得记录说明已经存在了
		while (o != null){
			number++;
			id = PrimaryUtils.getId("PURCHASE", number);
			o = purchaseDao.selectById(id);
		}
		return id;
	}
	
	@Override
	public Purchase createPurchase() {
		// 1.查询是否有未提交的采购单,如果有,返回该采购单
		Purchase o = new Purchase();

		o.setUserId(SessionUtils.getLoginUser().getId());
		// 标识为草稿
		o.setIsSubmit(0);

		List<Purchase> purchase = purchaseDao.select(o);
		
		if (purchase != null && purchase.size() > 0) {
			// 如果有草稿,直接返回草稿
			o = purchase.get(0); 
		} else {
			// 生成单号
			o.setId(createId());
			o.setCreateTime(DateUtils.getNowDefaultFormat());
			// 保存草稿
			purchaseDao.insert(o);
		}
		return o;
	}
	
}

转载于:https://my.oschina.net/u/2489258/blog/1570149

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值