首页 > 解决方案 > 为 ResourcePool 设置多个计划

问题描述

我正在模拟一条通过 Excel 构建的生产线。现在有一个,需要为每台机器自由设置工人班次,一共三班。

我的想法是创建三个不同的 Schedules,分别代表三个班次,然后在 ResourcePool 中,使用 If 语句设置每个班次的使用。如图所示在此处输入图片说明

但它没有用。如果可能,请告诉我Java语句是否有问题或想法错误。如果可能,您能告诉我如何在 ResourcePool 中设置多个计划吗?

问题补充: 模型是对生产系统做评价,工人班次是一个重要的评价参数。我要做的是直接在Excel工作表中输入工人的轮班,ResourcePool识别并使用相应的Schedule。

我尝试通过代码生成对应的Schedule,但是Resourcepool的Schedule不能动态设置。所以我想尝试手动将多个Schedule输入到模型中,然后像图片一样通过If语句在ResourcePool中设置对应的Schedule。

提前致谢

标签: scheduleanylogic

解决方案


您需要知道的第一件事是您放置代码的位置是一个静态参数,因此它只被评估一次,当对象被创建而不是连续检查时。

当您将鼠标悬停在将输入字段从代码更改为值的按钮上时,小弹出窗口会指示这一点

在此处输入图像描述

如果它是动态的,它将声明动态值而不是静态值

其次,在该字段内,您必须使用三元运算符,而不是 if 语句,以便公式的结果是计划对象,否则您将收到“错位构造”错误

如果您将代码更改为

v_Shift == "Shift1" ? 
s_Shift1 : v_Shift == "Shift2" ? s_Shift2 : s_Shift3

它会起作用但是:

  1. 它只会在创建对象时被评估,而不是再次被评估
  2. 而不是==在字符串上使用,总是.equals()在字符串上使用 , 它可能会起作用,有时可能不会。你可以做一些研究为什么;-)

解决方案:您将不得不使用一个函数来更改资源池的计划。v_Shift每当变量更改时调用此函数

在此处输入图像描述


推荐阅读