Small Aircraft; Low Wing; 1 Eng; Fixed Gear
Air Traffic Control Fully Certified
Communication Breakdown; Distraction; Situational Awareness
ATC Issue All Types; Conflict Ground Conflict; Critical; Deviation - Track / Heading All Types; Deviation / Discrepancy - Procedural Clearance; Ground Incursion Runway
General None Reported / Taken
Environment - Non Weather Related; Human Factors; Procedure
I was on Local Control. Aircraft X inbound wanted to park at an FBO. I gave instructions to make left traffic to the Runway 31L. I had a maintenance vehicle and company on the runway at the time. I decided to change Aircraft X to Runway 31R instead. I told Aircraft X to expect Runway 31R. Pilot read back Runway 31R. I saw the aircraft turning toward the airport at 140 knots. I had an expectation bias that the pilot would do what he said. I got complacent with summer traffic and was talking to other controllers in the Tower Cab. I missed the aircraft landing on the wrong runway and opposite direction. The maintenance vehicle asked if I saw the aircraft that flew over them. And that's when I saw the aircraft rolling out on the runway.Aircraft landed on wrong runway without a landing clearance with vehicles on the runway. Reduce side conversations and increase my awareness through scanning more actively.
PSP Tower Controller reported not noticing an aircraft land on the wrong runway which had a vehicle on it until the vehicle operator queried the Controller about the aircraft.