Abstract This paper addresses a scheduling problem for a two-stage assembly shop in a machinery factory. At stage one, all parts of jobs are assembled simultaneously on a batch machine with a common processing time and a constant batch setup time. Then the assembled jobs are moved to the second stage to perform system integration with different processing times on a discrete machine. On both machines, a family setup time is required when the processing switches from one family to a different one. The objective is to minimize the weighted sum of makespan, total completion time and total tardiness. A Mixed Integer Programming (MIP) model is developed for solving small-size problems, and three heuristics are proposed for solving medium- and large- size problems. Computational experiments show that RFBFS, a full batch family sorting heuristic combining with rolling horizon scheduling strategy, is better than the other two heuristics in terms of solution quality. Real-life implementation also shows that the performance of RFBFS is significantly better than the current method.