.Net可擴展的單據編號生成器-SNF.CodeRule--SNF快速開發平台3.2


1.背景

在企業應用中單據編號的自定義是一個很常見的需求,如工號、業務單據編碼等,能不能抽象一個通用的框架呢?

2.思路

這里的難點在於實現"解釋器",比如將"前綴"是日期、年月、固定字符、部門代碼等。而且“解釋器”的“規則”允許動態增加。實施人員和用戶可以自由改變單號的生成規則。

還要考慮並發問題,如一個單據同時多人訪問編碼是否唯一,如果不唯一那就有問題了。

 

3.具體實現類圖

4.界面使用效果

         這個編碼規則的維護頁面可是耗費了我不少的精力,除了編碼規則的技術實現還要考慮這樣一個技術難題,就是表格級聯,是什么意思呢就是當一個編碼生成規則有很多段的時候,不同的段的信息是不一樣的,如果一個段是日期,那么編碼段值就是年月日或者只有年月等可以選擇,而如果編碼段是自定義那就是那么就是固定字符需要用戶手動輸入,而且是必須項,還有很多種,很種段類開對應的段值都是不一樣的,所以需要動態改變同列不同行采用的是不同控件處理。

 

首先要先維護編碼規則信息,之后是程序調用生成編碼。編碼生成已經集成到最新的代碼生成器中。可以完美的結合快速代碼生成器進行使用。那么我們就一起來體驗一下吧。

1.打開編碼規則程序:

2.新增,編碼規則:

3.輸入編碼規則編碼和選擇模塊,再增加編碼規則段。規則編碼段有自定義、日期、流水號、部門、公司、用戶編碼等。

規則講解:

  1. 編碼段,可以是用戶自定義、日期、流水碼、公司等等。
  2. 編碼段值,與編碼段是一對,在編碼段不同時意義不同。
  3. 流水號可以不是最后一個編碼段,可以是中間的段。但一個業務單據的編碼規則只能有一個流水碼段。
  4. 長度、補位,只有流水碼需要補位其它都是定長。流水號不夠長度時是否補位,如果補位補位的字符是什么。
  5. 初始值,流水碼從哪個值做為第一個編碼出現。
  6. 步長,當獲取最大編碼時流水碼下一個編碼是什么這也是關鍵值,默認步長是1。
  7. 流水依據段,是查當前最大編碼是否依據這個編碼段。這也是這個編碼生成的一個特點,也是為什么流水碼可以不是最后一個的關鍵。

4.維護完成后 生效保存。

5.保存成功后,調用時可以按編碼規則的編碼或者模塊編碼獲取最大編號。

6.下面是SNF.CodeGenerator-代碼生成器生成的多表頁面,運行效果如下:

5.高並發測試結果

同時起了100個線程,和每個線程獲取單據號100次。最終測試結果是可以保證唯一性的,如下:

6.優點

  1. 編碼規則用戶可以進行維護,方便快捷,簡單方便,組合性強。

  2. 可以用於業務單據的單號也可以單獨調用使用。靈活。

  3. 同時在調用時也可以選擇獲取的最大編號是否立即生效。

  4. 還解決了easyui的技術問題:動態改變同列不同行采用的是不同控件處理。

  5. 處理了並發問題,有效防止出現重復編碼。

  6. 代碼生成器中增加了 “業務單號”,完全與單表和多表生成代碼進行整合。

  

作者: 王春天 2015-11-23
作者Blog:http://www.cnblogs.com/spring_wang 出處: http://www.cnblogs.com/spring_wang/p/4988837.html

  如果覺得還不錯,歡迎轉載。

本系列文章列表如下:

基於SNF-快速開發平台框架的系列文章:

SNF快速開發平台3.2之--.Net可擴展的單據編號生成器-SNF.CodeRule

SNF快速開發平台3.1之--審核流(3)低調奢華,簡單不凡,實例演示-SNF.WorkFlow

SNF快速開發平台3.1之--審核流(2)流程設計-SNF.WorkFlow功能使用說明

SNF快速開發平台3.1之--審核流(1)SNF.WorkFlow審核流簡介

SNF快速開發平台3.0之--完美的代碼生成器SNF.CodeGenerator-快速開發者的利器

基於MVC4+EasyUI的Web開發框架--Spring.Net.FrameworkV3.0總體介紹

SNF快速開發平台3.0之--MVC 打印解決方案

SNF快速開發平台3.0之--文件批量上傳-統一附件管理器-在線預覽文件(有互聯網和沒有兩種)

SNF快速開發平台3.0之--asp.net mvc4 強大的導出和不需要上傳文件的批量導入EXCEL

SNF快速開發平台3.0之MVC通用控件庫展示-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout

SNF快速開發平台3.0之BS頁面展示和九大優點-部分頁面顯示效果-Asp.net+MVC4.0+WebAPI+EasyUI +Knockout

SNF快速開發平台3.0之-界面個性化配置+10種皮膚+7種菜單-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout

SNF快速開發平台3.0之-CS頁面-Asp.net+Spring.Net.Framework

SNF快速開發平台3.0之--系統里廣播的作用--迅速及時、簡明扼要的把信息發送給接收者

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM