/**
*
* 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;
}
}
/**
*
* 服务实现类
*
*
* @author _Artisan
* @since 2017-10-27
*/
@Service
public class PurchaseServiceImpl extends ServiceImpl 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 = 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;
}
}