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,解决方案,升级框架!
在上图所示的地方,更改里面的值,就会更新框架。
更新框架必定要从新初始化数据库!
相关文章
相关标签/搜索