序列号管理

本文通过产品编码和订单流水号介绍一下序列号(Sequence)在crudapi中的应用。

概要

序列号

MySQL数据库没有单独的Sequence,只支持自增长(increment)主键,但是不能设置步长、开始索引、格式等,最重要的是一张表只能由一个字段使用自增,但有的时候我们需要多个字段实现序列号功能或者需要支持复杂格式,MySQL本身是实现不了的,所以crudapi封装了复杂序列号,支持字符串和数字,自定义格式,也可以设置为时间戳。可以用于产品编码、订单流水号等场景!

配置序列号

产品编码



产品编码采用字符串方式,格式为:PROD_%09d,表示长度为9,宽度不足用0补齐,最小值从1开始, 最大值为999999999,下一个值为1,步长为1。

销售订单流水号



产品编码采用时间戳方式,格式为:'SO'yyyyMMddHHmmssSSS,SO表示前缀,精确到年月日时分秒毫秒

表定义配置序列号属性

产品编码



产品表配置序列号字段

销售订单流水号



销售订单表配置序列号字段

验证序列号功能

产品



通过ui创建产品,因为编码字段设置了序列号,所以留空,这样后台会自动生成编码,如果编码字段手工输入,就以手工输入地值为准。



生成的编码为PROD_000000001,和期望的一致。

销售订单



通过Postman创建销售订单



ui查看订单列表,流水号发现SO20210212110955912生成成功

高级

序列号API



序列号提供了获取下一个值功能的API,适合UI定制的场景,显式的把值显示在ui上,这样更加直观,但是如果用户不点保存或者保存失败的话,可能会浪费值。查看swagger文档:

https://demo.crudapi.cn/swagger-ui.html

验证



通过Postman获取到下一个值为PROD_000000002

小结

本文通过配置序列号的方式实现了特定字段的自动赋值功能,无需编码,并且支持二次开发。目前有点不完善的地方,产品和销售订单都是孤立的单表,后续会介绍如果配置表关系,实现一对多,一对一,多对多等主子表。

附demo演示

本系统属于产品级的零代码平台,不同于自动代码生成器,不需要生成Controller、Service、Repository、Entity等业务代码,程序运行起来就可以使用,真正0代码,可以覆盖基本的和业务无关的CRUD RESTful API。

官网地址:https://crudapi.cn

测试地址:https://demo.crudapi.cn/crudapi/login

通过序列号Sequence零代码实现订单流水号的更多相关文章

  1. 订单和产品的多对多表关系在crudapi系统零代码实现

    表关系管理 在上一篇序列号管理中,产品和销售订单都是孤立的单表,本文通过crudapi中表关系(relation)管理将多个表连接起来,形成一个整体. 概要 关系类型 表与表之间的关系(relatio ...

  2. Magento代码之订单创建流程

    Magento代码之订单创建流程         直接看代码吧.下面的代码是如何通过程序创建一个完美订单.        <?php        require_once 'app/Mage. ...

  3. .net EF 事物 订单流水号的生成 (二):观察者模式、事物、EF

    针对.net EF 事物 订单流水号的生成 (一)  的封装. 数据依然不变. using System; using System.Linq; using System.Transactions; ...

  4. 零代码第一步,做个添加数据的服务先。node.js + mysql

    node.js + mysql 实现数据添加的功能.万事基于服务! 增删改查之添加数据. 优点:只需要设置一个json文件,就可以实现基本的添加功能,可以视为是零代码. 添加数据的服务实现的功能: 1 ...

  5. "零代码”开发B/S企业管理软件之一 :怎么创建数据库表

    声明:该软件为本人原创作品,多年来一直在使用该软件做项目,软件本身也一直在改善,在增加新的功能.但一个人总是会有很多考虑不周全的地方,希望能找到做同类软件的同行一起探讨. 本人文笔不行,能把意思表达清 ...

  6. Excel催化剂开源第42波-与金融大数据TuShare对接实现零门槛零代码获取数据

    在金融大数据功能中,使用了TuShare的数据接口,其所有接口都采用WebAPI的方式提供,本来还在纠结着应该搬那些数据接口给用户使用,后来发现,所有数据接口都有其通用性,结合Excel灵活友好的输入 ...

  7. 个人永久性免费-Excel催化剂功能第98波-零代码零距离轻松接触并拥有金融大数据

    数据产生价值的一个最突出的领域-金融领域,股票.证券.上市公司财务报表等,多少人在其中发掘出宝贵的数据价值.今天Excel催化剂联合Tushare金融大数据平台,让这一切的数据都能成为你我普通人零代码 ...

  8. Spring Cloud Alibaba迁移指南(二):零代码替换 Eureka

    自 Spring Cloud 官方宣布 Spring Cloud Netflix 进入维护状态后,我们开始制作<Spring Cloud Alibaba迁移指南>系列文章,向开发者提供更多 ...

  9. 大话深度学习:B站Up主麦叔教你零代码实现图像分类神经网络

    之前,我在B站发布了“大话神经网络,10行代码不调包,听不懂你打我!”的视频后,因为简单易懂受到了很多小伙伴的喜欢! 但也有小伙伴直呼不够过瘾,因为大话神经网络只有4个神经元. 也有小伙伴问不写代码, ...

随机推荐

  1. C# 网络流

    流(stream)是对串行传输的数据的一种抽象表示,底层的设备可以是文件.外部设备.主存.网络套接字等等. 流有三种基本的操作:写入.读取和查找. 如果数据从内存缓冲区传输到外部源,这样的流叫作&qu ...

  2. Linux系统CentOS进入单用户模式和救援模式详解

    一.概述 目前在运维日常工作中,经常会遇到服务器异常断电.忘记root密码.系统引导文件损坏无法进入系统等等操作系统层面的问题,给运维带来诸多不便,现将上述现象的解决方法和大家分享一下,本次主要以Ce ...

  3. Leetcode(13)-罗马数字转整数

    罗马数字包含以下七种字符:I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列 ...

  4. Netty(三)基于Bio和Netty 的简易版Tomcat

    参考代码: https://github.com/FLGBetter/tomcat-rpc-demo

  5. Linux下为Chromium安装Flash插件

    方案1: http://askubuntu.com/questions/158388/how-do-i-make-chromium-use-flash-from-google-chrome/21647 ...

  6. Kafka 博文索引

    博文索引 KafkaBroker 简析 KafkaConsumer 简析 KafkaProducer 简析 KafkaMirrorMaker 的不足以及一些改进 Kafka 简介 数据是系统的燃料,系 ...

  7. 如何在手机上实现 H5 页面全屏显示

    如何在手机上实现 H5 页面全屏显示 fullscreen 隐藏头部地址栏 隐藏底部导航栏 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才 ...

  8. OOP & 模块化, 多态, 封装

    OOP 面向对象编程 (OOP) 是用抽象方式创建基于现实世界模型的一种编程模式.它使用先前建立的范例,包括模块化,多态和封装几种技术. 在 OOP 中,每个对象能够接收消息,处理数据和发送消息给其他 ...

  9. HTML spaces types: &nbsp; & &emsp; & &ensp;

    HTML spaces types:   &   &   What is the difference between   and   https://stackoverflow.co ...

  10. component & slot

    component & slot <template> <div class="myHeaderContainer"> <header cla ...