On second look it seems like everything is coded to slow down updates:
WAITFOR DELAY '00:00:01'
What is it for?
SELECT @orderNumber=PARTSMANUFACTURING.M01_PRODUCTIONORDERNUMBER
FROM PARTSMANUFACTURING,INSERTED
WHERE PARTSMANUFACTURING.M01_PRODUCTIONORDERNUMBER=INSERTED.M01_PRODUCTIONORDERNUMBER;
1. This works fine for single record update only.
2. why join to PARTSMANUFACTURING since all you fetch is M01_PRODUCTIONORDERNUMBER? It's the same as:
SELECT @orderNumber=M01_PRODUCTIONORDERNUMBER FROM INSERTED
After all this, trigger executes external java program without parameters, which presumably scans the whole temp table, so a single record update takes some seconds.