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;
	}
	
}
相關文章
相關標籤/搜索