当前位置:   article > 正文

python自动生成入库序列号_python生成序列号

python生成序列号

模型定义

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

序列生成

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

使用方法

str(sequence.get_next_sequence('xxx')).zfill(3)
  • 1
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/795949
推荐阅读
相关标签
  

闽ICP备14008679号