HAP編碼規則使用整理

例子:
    生成訂單編號爲 公司代碼+日期+序列號
下面開始操做:
   1.系統管理-編碼規則

 

2.新建一個

段類型說明html

  • 序列:利用redis實現的自增序列,須要設置序列位數與開始值,能夠設置重置頻率(每一年,每季度,每個月),在指定週期內會重置序列。

索引更新步長 爲數據庫更新週期,默認爲100,即序列每自增100會將序列同步到數據庫;redis

當前值 爲序列在當前數據庫更新週期的最大值,能夠反應當前序列範圍:好比當前值是1200、序列更細步長爲100,那麼此時序列範圍是1100-1200spring

    • 常數:一個固定的字符串數據庫

    • 變量:動態參數,使用freemaker替換變量,${xxx}形式app

    • 日期: 根據日期掩碼拼接指定格式的日期框架

    • UUID: 生成一段32位長度的UUIDide


 

3.前臺寫的gird裏面增長一個公司的lov

 

js代碼:
{ field: "companyCode", title: '<@spring.message "order.companycode"/>', width: 120, template: function(dataItem) { return dataItem['LOV_COMPANY'] || '' }, editor: function(container, options) { $('<input required name="' + options.field + '"/>') .appendTo(container) .kendoLov({ //三個必須參數:code、contextPath、locale,其餘參數 根據實際狀況自行設置
                        code:"LOV_COMPANY", contextPath:'${base.contextPath}', locale:'${base.locale}', textField: 'LOV_COMPANY', select: function(e) { options.model.set('description', e.item.roleDescription); }, model: options.model }); }

 


 
4.後臺改寫  insert方法,在原有的增長基礎上生成訂單編碼

調用說明:ui

在service中注入ICodeRuleProcessService:編碼

@Service @Transactional(rollbackFor = Exception.class) public class OrderServiceImpl extends BaseServiceImpl<Order> implements IOrderService{ @Autowired ISysCodeRuleProcessService codeRuleProcessService; @Autowired private IOrderService orderService; @Override public List<Order> myBatchUpdate(IRequest iRequest, List<Order> orders) { if (orders != null && !orders.isEmpty()){ for (Order order: orders) { Map<String,String> map = new HashMap<>(); String companyCode = order.getCompanyCode(); map.put("var",companyCode); try { String demo = codeRuleProcessService.getRuleCode("demo", map); System.out.print(demo); order.setOrderCode(codeRuleProcessService.getRuleCode("demo",map)); } catch (CodeRuleException e) { e.printStackTrace(); } orderService.insertSelective(iRequest,order); } } return orders; } }

 


 
5.結果
6.萬年神坑!無力吐槽!
編碼規則上,報錯,請求參數中ToKen不存在!
發生緣由,HAP框架BUG,解決方案,升級框架!
在上圖所示的地方,更改裏面的值,就會更新框架。
更新框架必定要從新初始化數據庫!
相關文章
相關標籤/搜索