HAP_编码规则

编码生成器:http://eco.hand-china.com/doc/hap/latest/dev_guide/02.backend/25_code_rule.html

业务需求:
1. 界面新增加“只读”列显示序列
2. 重写保存接口
3. dto.setxxx设置序列值

ORA_20796_DOC_NUM_RULE
新建记录前调用获取序列
ora_20796_<姓名>20180810<6位序列>
ora_20796 _ora20796 _20180810 _10001

步骤1:增加字段
image.png
image.png
image.png
image.png

接口类:方法名要和mapper.xml中新建的查询id一样


image.png

接口实现类


image.png

控制类
image.png

前端更改:
image.png

添加列


image.png

重启 这样,我们就添加字段成功了

image.png
步骤3:新建编码规则
image.png

更改控制类的插入方法


image.png

    @Autowired
    ISysCodeRuleProcessService codeRuleProcessService;



@RequestMapping(value = "/hap/demo/submit")
    @ResponseBody
    public ResponseData update(@RequestBody List dto, BindingResult result, HttpServletRequest request) {
        getValidator().validate(dto, result);

        if (result.hasErrors()) {
            ResponseData responseData = new ResponseData(false);
            responseData.setMessage(getErrorMessage(result, request));
            return responseData;
        }
        //设置编码
       // dto..setXXX(codeRuleProcessService.getRuleCode("编码code"))
        if(dto.size()>0){
            for(Ora20796Demo student:dto){
                try {
                    //使用动态参数,需要传入一个Map
                    //比如编码定义了一个变量${var}
                    Map map = new HashMap<>();
                    map.put("name",student.getName());
                    student.setDocNum(codeRuleProcessService.getRuleCode("ORA_20796_DOC_NUM_RULE",map));
                } catch (CodeRuleException e) {
                    e.printStackTrace();
                }
            }
        }
        IRequest requestCtx = createRequestContext(request);
        return new ResponseData(service.batchUpdate(requestCtx, dto));
    }

重启:测试


image.png

你可能感兴趣的:(HAP_编码规则)