/** * * 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; } }