14.3. 员工指定入门应用程序的源代码概述
员工的入门应用程序由以下主要组件组成:
-
使用红帽构建的 OptaPlanner 并提供 REST API,实现 rostering 逻辑
的后端
-
使用 React 实施用户界面并通过 REST API 与
backend
模块交互的frontend
模块
您可以独立构建和使用这些组件。特别是,您可以实施不同的用户界面,并使用 REST API 调用服务器。
除两个主要组件外,员工的 rostering 模板还包含随机源数据生成器(用于演示和测试目的)和基准测试应用程序。
模块和密钥类
staff rostering 模板的 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 执行恶意计算的服务器应用程序。-
src/main/java/org.optaweb.employeerostering.service.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
:定义计算的 rostering 信息。 -
src/main/java/org.optaweb.employeerostering.domain.shift/Shift.java
:定义可为其分配员工的转换。转换由一个时间窗和 spot 定义。例如,在外围的位置可能会发生 20 8AM-4PM 时间段 2 月 20 8AM-4PM 的位置。可以为特定的位置和时间插槽定义多个转换。在这种情况下,这个位置和时间插槽需要多个员工。 -
src/main/java/org.optaweb.employeeroeerostering.domain.skill/Skill.java
:定义员工可以拥有的技术。 -
src/main/java/org.optaweb.employeerostering.domain.spot/Spot.java
:定义可放置员工的位置。例如,Kitchen
可以是 spot。 -
src/main/java/org.optaweb.employeeroeerostering.domain.contract.java
: 定义在各种时间段内为员工设置工作时间的合同。 -
src/main/java/org.optaweb.employeerostering.domain.tenant/Tenant.java
: Defines a tenant.每个租户代表一组独立的数据。个租户的数据更改不会影响任何其他租户。 -
*view.java
:与域对象相关的类定义从其他信息计算的值集;客户端应用可以通过 REST API 读取这些值,但不写入它们。 -
*service.java :位于定义 REST API 的服务
软件包中的接口。服务器和客户端应用都单独定义对这些接口的实施。
-
-
optaweb-employee-rostering-standalone
模块:包含独立应用程序的装配配置。