We consider a two-level supply chain that consists of multiple suppliers and a manufacturing plant. Each supplier produces semi-finished products needed for several types of (finished) products and delivers the semi-finished products to the manufacturing plant, where the products are produced to satisfy dynamic demands. In each supplier, production times of semi-finished products for different product types may be different, but processing should be started at the same time if they are in the same production batch although they may be completed at different times. The problem considered here is to determine production plans of the suppliers with the objective of minimizing the sum of raw material purchasing costs, production costs, setup costs of the suppliers, transportation costs, and costs for outsourcing semi-finished products. We present a mixed integer programming model and develop a two-step heuristic algorithm in which the problem is decomposed into two subproblems and these subproblems are solved sequentially. We also present solution-improvement procedures. Performance of the algorithm is evaluated by comparing its solutions with optimal solutions and good solutions obtained from a simulated annealing algorithm developed in this study, and results are reported.