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