4.Java开发者手册

本文末尾提供 demo 项目,提供开发环境所必需的类等。

1,硬性规则

必须实现 implements JaninoCommonScriptBody 接口

必须重写 public Void body(ScriptExecuteWrap wrap) 方法

image

2,注意事项

不支持泛型,凡是调用的方法出现泛型返回,必须强制转型。

image

3,获取输入分组的数据

ParamsContext paramsContext = (ParamsContext) wrap.cmp.getFirstContextBean();
Map<String, List<Map<String, String>>> tableDetailMap = (Map) paramsContext.getTableDetailMap();

image

3.1, 使用场景

在开发脚本代码时,用于获取规则中输入分组的系统数据。

3.2, 接口说明

wrap 为 脚本类中实现的JaninoCommonScriptBody 接口中的 body 方法的参数。

(ParamsContext) wrap.cmp.getFirstContextBean(); 这是获取到系统预置的上下文对象。输入分组的数据便在其中。

(Map) paramsContext.getTableDetailMap(); 这是从上下文中获取的输入分组数据。

3.3, 输入分组数据格式

{
  "员工信息表": [
    {
      "姓名": "张三",
      "年龄": 30
    },
    {
      "姓名": "李四",
      "年龄": 53
    },
    {
      "姓名": "王五",
      "年龄": 41
    }
  ]
}

3.4, 数据映射关系

image

image

4,设置结果分组数据

Map<String, List<Map<String, String>>> resultDataMap = new HashMap<>();
paramsContext.setResultDataMap(resultDataMap);

image

4.1, 使用场景

在开发脚本代码时,用于存放 规则中结果分组的系统数据。后续薪人薪事系统存储。

4.2,接口说明

paramsContext 这是获取到系统预置的上下文对象。结果分组的数据便在其中设置。

paramsContext.setResultDataMap(resultDataMap); 这是将脚本的计算结果设置到上下文,便于后续薪人薪事系统获取后存储。

4.3,结果分组数据格式

{
  "员工工龄系数表": [
    {
      "姓名":"张三",
      "工龄系数": 8
    },
    {
      "姓名":"李四",
      "工龄系数": 31
    }
  ]
}

数据格式和输入数据格式一致。

5,example 项目概述

5.1,目录结构

/src/main/java

/bean 存放上下文参数

/controller 接口

/mock.data 假数据

/node 开发节点

/resources

/java 脚本运行文件

5.2,开发步骤

2.1)开发者下载文末的 example 项目,解压缩后导入开发工具。

2.2)在 com.xrxs.calculation.open.platform.mock.data.MockDataUtil 中修改 tableDetailTest 方法中的输入参数。mock 一个更符合自己系统所需要的数据--参考上文步骤 3 的“输入数据格式”。

2.3)在 com.xrxs.calculation.open.platform.node.javaDemo 类中开发所需业务。确保编译无误。

2.4)除了 第一行 "package com.xrxs.script.example.node;" 不粘贴之外,其余全部代码拷贝至 resources/java/javaDemo.java 文件中。

2.5) 启动项目,浏览器访问http://localhost:8080/观察输出是否和预期一致。也就是上文中步骤 4 的

“输出数据格式”一致的样式。

2.6)粘贴到主系统,等待审核。

5.3, 总结

开发者只需要改动 MockDataUtil 的 mock 输入数据、javaDemo 类的代码和 resources/java/javaDemo.java 的代码。测试通过后,粘贴 resources/java/javaDemo.java 全文到系统代码页面即可。

下载附件 example.zip

2024 © 企家有道网络技术(北京)有限公司版权所有@京ICP备15035315号 all right reserved,powered by Gitbookupdate by: 2024-04-09 09:45:21

results matching ""

    No results matching ""