赞
踩
class Sequence(db.Model):
__tablename__ = 'sys_sequence'
__table_args__ = ({'comment': '序列维护表'})
id = db.Column(db.Integer, autoincrement=True, primary_key=True)
create_at = db.Column(db.DateTime, default=func.now(), comment='创建时间')
update_at = db.Column(db.DateTime, default=func.now(), onupdate=func.now(), comment='更新时间')
name = db.Column(db.String(255), comment='名称')
cur_num = db.Column(db.Integer, comment='当前值')
increase_by = db.Column(db.Integer, comment='步值')
def merge(self):
db.session.merge(self)
db.session.commit()
def save(self):
db.session.add(self)
db.session.flush()
db.session.commit()
import datetime
def get_next_sequence(seq_name):
from src.model.system.sequence import Sequence
seq = Sequence.query.filter_by(name=seq_name).first()
if seq is None:
seq = Sequence()
seq.name = seq_name
seq.cur_num = 1
seq.increase_by = 1
seq.save()
return 1
seq.cur_num = seq.cur_num + seq.increase_by
if __is_need_reset(seq.update_at):
seq.cur_num = 1
seq.update_at = datetime.datetime.now()
seq.merge()
return seq.cur_num
def __is_need_reset(check_date):
cur_date = datetime.datetime.now()
cur_year = cur_date.year
check_year = check_date.year
cur_day = cur_date.day
check_day = check_date.day
if cur_year == check_year and cur_day == check_day:
return False
else:
return True
str(sequence.get_next_sequence('xxx')).zfill(3)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。