HAP编码规则使用整理


例子:
    生成订单编号为 公司代码+日期+序列号
下面开始操作:
   1.系统管理-编码规则

 

2.新建一个

段类型说明

  • 序列:利用redis实现的自增序列,需要设置序列位数与开始值,可以设置重置频率(每年,每季度,每月),在指定周期内会重置序列。

索引更新步长 为数据库更新周期,默认为100,即序列每自增100会将序列同步到数据库;

当前值 为序列在当前数据库更新周期的最大值,可以反应当前序列范围:比如当前值是1200、序列更细步长为100,那么此时序列范围是1100-1200

    • 常数:一个固定的字符串

    • 变量:动态参数,使用freemaker替换变量,${xxx}形式

    • 日期: 根据日期掩码拼接指定格式的日期

    • UUID: 生成一段32位长度的UUID


 

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方法,在原有的增加基础上生成订单编码

调用说明:

在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,解决方案,升级框架!
在上图所示的地方,更改里面的值,就会更新框架。
更新框架一定要重新初始化数据库!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM