12.3. 员工入门应用程序的源代码概述
员工的入门程序应用程序由以下主要组件组成:
-
一个后端
,它使用红帽构建的 OptaPlanner 实现逻辑,并提供 REST API -
使用 React 实施用户界面并通过 REST API
与后端
模块交互的前端模块
您可以独立构建和使用这些组件。特别是,您可以实施不同的用户界面,并使用 REST API 调用服务器。
除了两个主要组件外,员工还包含随机源数据的生成器(用于演示和测试目的)和基准测试应用程序。
模块和密钥类
员工模板的 Java 源代码包含多个 Maven 模块。每个模块都包含单独的 Maven 项目文件(pom.xml
),但它们则用于在通用项目中构建。
模块包含多个文件,包括 Java 类。本文档列出所有模块,以及包含员工计算关键信息的类和其他文件。
-
optaweb-employee-rostering-benchmark
模块:包含生成随机数据和基准测试解决方案的额外应用程序。 -
optaweb-employee-rostering-distribution
模块:包含 README 文件。 -
optaweb-employee-rostering-docs
模块:包含文档文件。 -
optaweb-employee-rostering-frontend
模块:将客户端应用程序与用户界面包含在 React 中。 optaweb-employee-rostering-backend
模块:包含使用 OptaPlanner 执行 rostering 计算的服务器应用程序。-
src/main/java/org.optaweb.employeerostering.service.roster/rosterGenerator.java
: 为演示和测试目的生成随机输入数据。如果您更改了所需的输入数据,请相应地更改生成器。 -
src/main/java/org.optaweb.employeerostering.domain.employee/EmployeeAvailability.java
: 定义员工的可用性信息。对于每个时间插槽,员工都可以不可用、可用或时间表为员工指定首选的时区。 -
src/main/java/org.optaweb.employeerostering.domain.employee/Employee.java
: 定义员工。员工具有名称、经验列表,并在合同下工作。知识由专家对象表示。 -
src/main/java/org.optaweb.employeerostering.domain.roster/Roster.java
: 定义计算的信息。 -
src/main/java/org.optaweb.employeerostering.domain.shift/Shift.java
: 定义可以为其分配员工的过渡。转换由一个时间插槽和点定义。例如,在 diner 中,在 2 月 20 8AM-4PM 时间插槽的 Kitchen spot 中可能会进行转换。可以为特定的 spot 和 time 插槽定义多个转换。在这种情况下,这个 spot 和 time 插槽需要多个员工。 -
src/main/java/org.optaweb.employeerostering.domain.skill/Skill.java
: 定义员工可以拥有的承诺。 -
src/main/java/org.optaweb.employeerostering.domain.spot/Spot.java
: 定义可以放置员工的 spot。例如,Kitchen
可以是 spot。 -
src/main/java/org.optaweb.employeerostering.domain.contract/Contract.java
: 定义在不同时间段内为员工设置限制的合同。 -
src/main/java/org.optaweb.employeerostering.domain.tenant/Tenant.java
: 定义租户。每个租户代表一组独立的数据。一个租户的数据更改不会影响任何其他租户。 -
bedoview.java
:与域对象相关的类,用于定义从其他信息计算的值集;客户端应用可以通过 REST API 读取这些值,但不能写这些值。 -
evinceservice.java
: 接口位于定义 REST API 的服务软件包中。服务器和客户端应用都单独定义这些接口的实施。
-
-
optaweb-employee-rostering-standalone
模块:包含独立应用程序的 assembly 配置。