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