fix(flows): run starter selv om én valgt bygning mangler markør; advarsel nævner bygningen (v1.14.2.0)
This commit is contained in:
@@ -573,12 +573,27 @@ local function getCargoTarget(adEnv, run, vehicle)
|
|||||||
return ADOutbound.planCargoTarget(adEnv, run, vehicle, fillType, liters) or false
|
return ADOutbound.planCargoTarget(adEnv, run, vehicle, fillType, liters) or false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Én gang pr. (run, bygningsliste): valgte bygninger uden markør springes over.
|
||||||
|
local warnedMissing = {}
|
||||||
|
local function warnMissingMarkers(run, missing)
|
||||||
|
local text = table.concat(missing, ", ")
|
||||||
|
if warnedMissing[run.id] == text then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
warnedMissing[run.id] = text
|
||||||
|
Logging.warning(ADRunsController.LOG_PREFIX .. "run '%s': %s har ingen AD-markør ved triggeren (inden for 40 m) og springes over", tostring(run.name), text)
|
||||||
|
end
|
||||||
|
|
||||||
local function validateOutboundVehicle(adEnv, run, vehicle, result)
|
local function validateOutboundVehicle(adEnv, run, vehicle, result)
|
||||||
local resolved = ADRunsController.resolveMarkers(adEnv, run)
|
local resolved = ADRunsController.resolveMarkers(adEnv, run)
|
||||||
if resolved.missing[1] ~= nil then
|
if resolved.missing[1] ~= nil then
|
||||||
|
-- afvis kun når INGEN valgt bygning (eller rå markør) har en markør; ellers kør med de andre
|
||||||
|
if #(run.sourceWayPointIds or {}) == 0 then
|
||||||
result.reason, result.missingBuilding = "noMarker", resolved.missing[1]
|
result.reason, result.missingBuilding = "noMarker", resolved.missing[1]
|
||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
|
warnMissingMarkers(run, resolved.missing)
|
||||||
|
end
|
||||||
if #getRunSources(adEnv, run, ADSmartPickup.getFarmId(vehicle)) == 0 then
|
if #getRunSources(adEnv, run, ADSmartPickup.getFarmId(vehicle)) == 0 then
|
||||||
result.reason = "noSource"
|
result.reason = "noSource"
|
||||||
return result
|
return result
|
||||||
@@ -645,9 +660,12 @@ function ADRunsController.validateVehicle(adEnv, run, vehicle)
|
|||||||
end
|
end
|
||||||
local resolvedIn = ADRunsController.resolveMarkers(adEnv, run)
|
local resolvedIn = ADRunsController.resolveMarkers(adEnv, run)
|
||||||
if resolvedIn.missing[1] ~= nil then
|
if resolvedIn.missing[1] ~= nil then
|
||||||
|
if #ADRunsController.getRunTargets(run) == 0 then
|
||||||
result.reason, result.missingBuilding = "noMarker", resolvedIn.missing[1]
|
result.reason, result.missingBuilding = "noMarker", resolvedIn.missing[1]
|
||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
|
warnMissingMarkers(run, resolvedIn.missing)
|
||||||
|
end
|
||||||
local hasTarget = false
|
local hasTarget = false
|
||||||
for _, wayPointId in ipairs(ADRunsController.getRunTargets(run)) do
|
for _, wayPointId in ipairs(ADRunsController.getRunTargets(run)) do
|
||||||
if adEnv.ADGraphManager:getMapMarkerByWayPointId(wayPointId) ~= nil then
|
if adEnv.ADGraphManager:getMapMarkerByWayPointId(wayPointId) ~= nil then
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<modDesc descVersion="107">
|
<modDesc descVersion="107">
|
||||||
<author>masterdraco</author>
|
<author>masterdraco</author>
|
||||||
<version>1.14.1.0</version>
|
<version>1.14.2.0</version>
|
||||||
<title>
|
<title>
|
||||||
<en>AD Smart Pickup</en>
|
<en>AD Smart Pickup</en>
|
||||||
</title>
|
</title>
|
||||||
|
|||||||
@@ -664,6 +664,14 @@ ADRunsController.updateRun(flowOut.id, {sourceBuildingIds = {"shed"}, sourceWayP
|
|||||||
local cfValidation = ADRunsController.validateVehicle(adEnv, ADRuns.getRun(ADRunsController.store, flowOut.id), cfVehicle)
|
local cfValidation = ADRunsController.validateVehicle(adEnv, ADRuns.getRun(ADRunsController.store, flowOut.id), cfVehicle)
|
||||||
check("CF4 noMarker", cfValidation.reason, "noMarker")
|
check("CF4 noMarker", cfValidation.reason, "noMarker")
|
||||||
check("CF4 hvilken bygning", cfValidation.missingBuilding, "Palleskur")
|
check("CF4 hvilken bygning", cfValidation.missingBuilding, "Palleskur")
|
||||||
|
-- CF4b: ÉN bygning uden markør blandt flere med markør -> start alligevel, advar om den ene
|
||||||
|
ADRunsController.updateRun(flowOut.id, {sourceBuildingIds = {"barn1", "shed"}, sourceWayPointIds = {}})
|
||||||
|
logLines = {}
|
||||||
|
local cfValidation2 = ADRunsController.validateVehicle(adEnv, ADRuns.getRun(ADRunsController.store, flowOut.id), cfVehicle)
|
||||||
|
check("CF4b ikke afvist pga. markør", cfValidation2.reason ~= "noMarker", true)
|
||||||
|
local warned = false
|
||||||
|
for _, line in ipairs(logLines) do if line:find("Palleskur", 1, true) and line:find("springes over", 1, true) then warned = true end end
|
||||||
|
check("CF4b advarsel nævner bygningen", warned, true)
|
||||||
-- CF5: flow-række til tavlen
|
-- CF5: flow-række til tavlen
|
||||||
ADRunsController.updateRun(flowOut.id, {sourceBuildingIds = {"barn1"}, products = {{fillType = "SUGAR", policy = "sell"}, {fillType = "FORAGE", policy = "store"}}, collectRound = true})
|
ADRunsController.updateRun(flowOut.id, {sourceBuildingIds = {"barn1"}, products = {{fillType = "SUGAR", policy = "sell"}, {fillType = "FORAGE", policy = "store"}}, collectRound = true})
|
||||||
ADRunsController.assignVehicle(flowOut.id, cfVehicle)
|
ADRunsController.assignVehicle(flowOut.id, cfVehicle)
|
||||||
|
|||||||
Reference in New Issue
Block a user