> 自动生成规则编码,比如: 订单号的生成,前缀+年月日时分秒 时间戳

如果创建一个规则实现?

* 第一步:实现接口 IFillRuleHandler

参考实例:

```

/**

* 填值规则Demo:生成订单号

* 【测试示例】

*/

public class OrderNumberRule implements IFillRuleHandler {

@Override

public Object execute(JSONObject params, JSONObject formData) {

String prefix = "CN";

//订单前缀默认为CN 如果规则参数不为空,则取自定义前缀

if (params != null) {

Object obj = params.get("prefix");

if (obj != null) prefix = obj.toString();

}

SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");

int random = RandomUtils.nextInt(90) + 10;

String value = prefix + format.format(new Date()) + random;

// 根据formData的值的不同,生成不同的订单号

String name = formData.getString("name");

if (!StringUtils.isEmpty(name)) {

value += name;

}

return value;

}

}

```

* 第二步:在规则管理里面配置

![](https://img.kancloud.cn/d6/ae/d6ae25b38d3e1bf51ae44f1b87fd23c8_978x513.png)

* 第三步:通过接口执行规则生成

参数:

ruleCode | 规则编码

formData | 表单数据JSON

接口URL: /sys/fillRule/executeRuleByCode/{ruleCode}

![](https://img.kancloud.cn/0c/5d/0c5d450c886376746b3b3d31c3c3c40f_801x256.png)

* 第四步:批量编码规则生成接口

/sys/fillRule/executeRuleByCode/executeRuleByCodeBatch

具体用法参考:

org.jeecg.modules.system.controller.SysFillRuleController#executeByRuleCodeBatch

![](https://img.kancloud.cn/07/50/0750994f53462800e816d79eb9277a39_757x461.png)

## 其他技巧

### JAVA代码里,如何直接调用生成编码?

~~~

* @param ruleCode 填值规则Code

* @param formData 表单参数

FillRuleUtil.executeRule(String ruleCode, JSONObject formData)

~~~

### 前端JS里如何调用生成编码?

可通过`put`请求调用后台填值规则接口来实现生成编码。

#### 示例

``` js

import { putAction } from '@api/manage'

const ruleBaseURL = '/sys/fillRule/executeRuleByCode/'

export default {

name: 'App',

data() {

return {

// 页面的数据

model: { orderNum: '' },

// 请求的url

url: {

rule: {

orderNum: ruleBaseURL + 'order_num_rule'

},

}

}

},

methods: {

getOrderNum() {

putAction(this.url.rule.orderNum, this.model).then(res => {

// 执行成功,获取返回的值,并赋到页面上

if (res.success) {

this.model.orderNum = res.result

}

})

}

}

}

```

### Online表单的JS增强里如何调用生成编码?

和前端JS里一样,可通过`putAction`方法来调用接口生成编码

### 表单设计器 JS 增强里如何调用生成编码?

可以通过`api.put()`方法实现获取填值规则的值,获取到之后再通过`api.setFormData()`方法赋到页面上。

api的使用方法可见 `表单设计器-->高级操作手册-->JS增强`文档

#### 示例

``` js

// 获取所有 form data

var formData = api.getFormData() || {}

// 请求后台的填值规则接口地址

var url = '/sys/fillRule/executeRuleByCode/'

var ruleCode = 'order_num_rule'

api.put(url + ruleCode, formData).then(res => {

// 执行成功,获取返回的值,并赋到页面上

if (res.success) {

var value = res.result

api.setFormData('orderNum', value)

}

})

```

java 按规则生成编码_填值规则(编码生成)相关推荐

  1. 【jeecg-boot项目开发crm】:day07JeecgBoot-零基础入门视频-05Online表单默认值和填值规则使用【p3】

    解决:订单编码自动生成[上节遗留问题一] 文档的查看 1. [商城订单表]添加一个填值规则--修改页面属性 ${shop_order_num} 2. 填值规则的定义 规则实现类先默认写 3. 填值规则 ...

  2. 【JEECG技术文档】JEECG online 表单填值规则使用说明

    1. 功能介绍 JEECG online规则值自动生成功能 为实现online表单数据初始化功能. 为实现图中红框字段初始化功能,需要完成下面4步操作: 1)编写规则实现类 2) 配置填值规则 3)o ...

  3. Java动态初始化数组,元素默认值规则

    1.动态初始化数组: 定义数组的时候,只确定元素的类型和数组的长度,之后再存入具体数据. 2.动态初始化数组的基本原理: 当你赋值后,数组的默认值0,就会变成你赋的值. 3.数组的动态初始化格式: 格 ...

  4. html自动生成工具_关于STM32代码自动生成的工具的进度....

    前情提要:STM32代码自动生成工具_本想...但是...可是...所以 首先说一下那几天大家的反应,有的持观望态度,毕竟STM32CUBE很香:有的很激动,期待我快点出东西:还有的很淡定,知道我在挖 ...

  5. 北大青鸟消防设备类型编码_探测器该如何编码?即报警区域、探测区域的真正用途...

    <火灾自动报警系统设计规范> GB 50116-2013中说到 报警区域是将火灾自动报警系统的警戒范围按防火分区或楼层等划分的单元. 报警区域应根据防火分区或楼层划分:可将一个防火分区或一 ...

  6. python2默认编码_解决Python2.x编码之殇

    Python编码问题一直困扰了我许久,之前有过一些总结,但并不系统,比较凌乱.当然python2.x编码问题本身,便是剪不断理还乱.本篇将系统介绍python2.x编程中会遇到的一些编码问题,并给出解 ...

  7. 我的世界java史莱姆生成条件_我的世界史莱姆生成条件 史莱姆在哪里

    在我的世界中,因为史莱姆生成条件的限制,所以这种生物在游戏中非常的少见,那么史莱姆究竟在哪里,它的生成条件又是什么呢?今天小编就带着大家一起来看看我的世界史莱姆生存条件吧! 我的世界史莱姆生成条件 史 ...

  8. java验证码图片滑动验证码_图片滑动验证码的生成

    使用Java生成图片滑动验证码 image.png 目前接到了一个新的小需求,要在登录时进行滑动图片验证. 搜了一下网上的demo,没有太多很完整的demo.就参考各种文档自己拼凑了一个出来.整理一下 ...

  9. java 判断zip文件编码_如何使用UTF-8编码打开java程序生成的zip文件

    我们的产品有一个导出功能,它使用ZipOutputStream压缩目录;但是,当您尝试压缩包含具有中文或日文字符的文件名的目录时,导出将无法正常工作.由于某种原因,压缩文件中的新文件的命名方式不同.以 ...

最新文章

  1. exchange2003如何恢复邮件
  2. apache php value,apache-2.2 – 错误启动Apache“php value”
  3. linux关于bashrc与profile
  4. JavaBean为什么要实现Serializable接口
  5. session会话拦截ajax,session过期,拦截ajax请求并跳转登录页面
  6. Spring 依赖注入(集合)/util命名空间/自动注入
  7. Python教学与学习过程中应注意的九句话
  8. Hammer.js分析(四)——recognizer.js
  9. \r,\n,\r\n的问题分析
  10. Python模拟登陆CSDN
  11. Ace Admin 使用教程
  12. log4j日志配置(超详细)
  13. Nginx配置防盗链和内核参数优化
  14. 退出android recovery界面,怎么退出recovery模式?
  15. 学生用计算机的感叹号在哪,感叹号怎么打电脑(感叹号的用法及举例)
  16. java 文件上传乱码_java上传txt文件,出现中文乱码
  17. angular数据绑定
  18. SQL server 2008不允许保存更改的解决办法
  19. DB2001 深入了解DB2 reorg
  20. CAD快捷键out了?这样的CAD编辑命令,你见过嘛?

热门文章

  1. 调用农行融资申请的接口 代码梳理
  2. [cpp项目]2048
  3. D4RL Benchmark 安装教程Ubuntu20.04
  4. 大过年的生产项目频繁fullgc
  5. oracle12c命令行安装grid,oracle12c-RAC安装部署之GRID安装-grid设置
  6. 算法实验题 5.1 湖泊
  7. wordpress搜索不了中文linux,WordPress上传带中文汉字名称的图片不显示的解决办法...
  8. 机器人女友亮相科技展,未来智能美女机器人有可能会成为一种潮
  9. 大数据项目篇--项目架构图
  10. 学习微积分60年有感(IV)