feat(udkørsel): kilder hvis læssestationer deler lager (mælketanke som udvidelser) regnes som ét stop (v1.17.3.0)
This commit is contained in:
@@ -62,6 +62,30 @@ local function fillTypeName(fillType)
|
||||
return g_fillTypeManager ~= nil and g_fillTypeManager:getFillTypeNameByIndex(fillType) or tostring(fillType)
|
||||
end
|
||||
|
||||
-- Lagrene en kildes læssestation trækker fra (FS25: sourceStorages = {[storage] = storage}); nil = ukendt.
|
||||
local function sourceStorages(source)
|
||||
local station = source ~= nil and source.station or nil
|
||||
if station == nil or type(station.sourceStorages) ~= "table" then
|
||||
return nil
|
||||
end
|
||||
local list = {}
|
||||
for key, value in pairs(station.sourceStorages) do
|
||||
table.insert(list, type(key) == "table" and key or value)
|
||||
end
|
||||
return #list > 0 and list or nil
|
||||
end
|
||||
|
||||
local mergedLogged = {}
|
||||
local function logMergedSources(vehicle, run, merged)
|
||||
for keptId, ids in pairs(merged or {}) do
|
||||
local key = tostring(run.id) .. ":" .. tostring(keptId) .. ":" .. table.concat(ids, ",")
|
||||
if not mergedLogged[key] then
|
||||
mergedLogged[key] = true
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "run '%s': kilde %s deler lager med %s — regnes som ét stop", tostring(run.name), tostring(keptId), table.concat(ids, ", "))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function getStatus(run)
|
||||
status[run.id] = status[run.id] or {}
|
||||
return status[run.id]
|
||||
@@ -199,6 +223,10 @@ function ADOutbound.buildPlanInput(adEnv, run, vehicle)
|
||||
sourcesById[wayPointId] = source
|
||||
end
|
||||
end
|
||||
-- kilder der deler lager (mælketanke som udvidelser) er ét stop — ellers kører runden mellem dem
|
||||
local merged
|
||||
sources, merged = ADOutboundPlanner.dedupeSharedSources(sources, sourceStorages)
|
||||
logMergedSources(vehicle, run, merged)
|
||||
local byName, products = {}, {}
|
||||
local time = now()
|
||||
for _, source in ipairs(sources) do
|
||||
|
||||
Reference in New Issue
Block a user