No, I don't think you can. You would have to repeat the decode e.g.
select decode(table1.field1<table1.field2, "late", table1.field1=table1.field2, "on time", "early"

part_status
where decode(table1.field1<table1.field2, "late", table1.field1=table1.field2, "on time", "early"

= "late"
But I'm not sure this would be very sensible anyway. It might be more efficient just to re-write the query as:
select "late" part_status
from ...
where table1.field1<table1.field2
That way, if there is an good index on table1.field1 or table2.field2, there's a chance Oracle will use it. With the decode there is no chance.