I find the few times this has happened to us, the cities have made a mistake in their accounting and will rectify it. This usually happens when someone forgets to enter an invoice in their system. Otherwise I would treat them just like a civilian customer that didn't pay.
First:
Advise them of the issue. We just talk to the city and we are pretty upfront about the problem. Make sure they have the invoice, and directly ask them when the payment will be cut. We don't mind giving the city accounts more time to pay, but they better hold true to their word. We have found that every department we have had to do this to has been overly apologetic and get a check cut right away.
If they tell you that payments are made at a certain time, hold them to it. If they miss it, I have no issue letting them know that i would be holding back on more work until the last bit is paid in full and/or adding interest to thief bill. They usually find a way to cut a check pretty quick.
If they threaten to pull the work, that is fine. non paying work is no good anyway. They know they are in the wrong and they know they are required to pay. City attorneys, council, and the powers that be all believe this, and will all be pushing to get you paid just to avoid lawsuits, if you let them know the situation.
Next time you contract, make sure everyone understands the Term. If they need 60 days, give them that, but plan and budget accordingly. When a department does this, we may opt to give them a 5% net 30 discount, and it is shocking how many people will take us up on that. They all have the money in the account, they just choose to wait 30-60 days to give it to you.
This is assuming that you are doing your due diligence as a business and providing the work as contracted at the price you gave them with the right parts as quoted.
If fire is contracted through the same person as police, I would absolutely hold the fire vehicles in the shop until payment was received on the past projects. If fire asks, I would tell them that you are waiting on payment on the last vehicles before you COULD release the next vehicles. Fire will be upset but it should be at their city, not at you. Usually enough fire and police guys complaining in the check writers office will help speed up payment
If fire is contracted through fire, and paid by the fire budget, then technically it is a different customer and I would release their trucks holding them to the same standard as police.
Don't get me wrong, I am a super nice and forgiving guy, but I do not believe in providing work to the government for free. We do quality work, and we expect to get paid for it. if they don't want to pay, I don't want their work. easy as that.