Файл: Разработка имитационных моделей управления запасами в цепях поставок Москва 2011 2 Введение.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.12.2023
Просмотров: 90
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
116
Приложение 2. Код actionChart(). Может быть использован вместо вызова функции диаграммы действий:
//модуль обработки спроса:
for
(Retailer ret: retailer){
int
j=ret.getIndex();
//начало дня - рассчитываем издержки на хранение retHoldingcost=retHoldingcost+ret.retholdingrate*retStock[j];
//генерация спроса в розничных точках:
ret.currentDemand =round( max (normal(demandStd[j],demandMean[j]),0));
//сравнение спроса с запасом:
if
( ret.currentDemand > retStock[j]) {
//учет дефицита:
retShortage[j]++;
//проверка нахождения заказа от дистрибьютора в пути:
if
(truck.get(j).isMoving() ==
false
){
//проверка нужного количества запаса у дистрибьютора:
if
(DCStock < retEOQ[j]){
DCShortage++;
}
else
{
DCStock-= retEOQ[j]; create_RetReplenishment(ret.retDist/10,ret.retDist/10,j); truck.get(j).rectangle.setVisible(
true
); truck.get(j).moveTo(ret.getX(),ret.getY());
}
}
}
else
{
//выполнение розничного заказа:
retStock[j]-= ret.currentDemand;
//проверка порогового уровня запаса и наличия заказа в пути:
if
(retStock[j] < retROP[j] && truck.get(j).isMoving() ==
false
){
//проверка наличия запаса у дистрибьютера:
if
(DCStock < retEOQ[j]){
DCShortage++;
}
else
{
DCStock-= retEOQ[j]; create_RetReplenishment(ret.retDist/10,ret.retDist/10,j); truck.get(j).rectangle.setVisible(
true
); truck.get(j).moveTo(ret.getX(),ret.getY());
}
}
}
//проверка порогового уровня запаса дистрибьютора:
if
(DCStock < DCROP && truck.get(8).isMoving() ==
false
){
//обработка заказа от поставщика truck.get(8).rectangle.setVisible(
true
); truck.get(8).moveTo(distributor.get(0).getX(),distributor.get(0).getY()); create_DCReplenishment (distributor.get(0).dcDist/10,distributor.get(0).dcDist/10);
}
}