序列号管理

本文通过产品编码和订单流水号介绍一下序列号(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

最新文章

  1. 添加OSG各种事件处理器
  2. Python面向对象详解
  3. HTTP 初步知识总结
  4. css三角形的实现
  5. 使用jprofiler8远程监控weblogic的配置方法
  6. C语言中使用静态函数的好处
  7. HOCON 了解
  8. [Ajax] 使用Ajax异步上传图片文件(非Form表单提交)
  9. MySQL 卸载 --Mac
  10. <转>HTML中的table转为excel
  11. visual studio 未将对象引用设置到对象的实例
  12. 开源Math.NET基础数学类库使用(04)C#解析Matrix Marke数据格式
  13. Java爬虫——人人网模拟登录
  14. Windows下使用OpenSSL生成自签证书
  15. mysql关于排序值的问题,指定排序值
  16. ALV编辑数据后未更新到内表
  17. JAVA第三周学习总结
  18. 用HTML,Vue+element-UI做桌面UI
  19. 自定义ListView 、GradView 重写onMeasure方法让其正确显示
  20. lava.lang.String数据转换为java.sql.Date

热门文章

  1. ThreadLocal使用全解
  2. Selenium刚玩一会儿,就感受了私人秘书的体验
  3. Kubernets二进制安装(17)之安装部署Dashboard
  4. VScode 配置c++环境
  5. spring-cloud-sleuth/zipkin
  6. 硬盘测试工具fio用法总结
  7. jupyter-notebook kernel died
  8. cnblogs & 502 Bad Gateway
  9. 如何实现一个 markdown 图片粘贴上传的博客后台系统
  10. TypedArray & buffer