搜索

14.3. 员工指定入门应用程序的源代码概述

download PDF

员工的入门应用程序由以下主要组件组成:

  • 使用红帽构建的 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 模块:包含独立应用程序的装配配置。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.