We consider a real-world cargo assembly planning problem arising in a coal supply chain. The cargoes are built on the stockyard at a port terminal from coal delivered by trains. Then the cargoes are loaded onto vessels. Only a limited number of arriving vessels is known in advance. The goal is to minimize the average delay time of the vessels over a long planning period. We model the problem in the MiniZinc constraint programming language and design a large neighbourhood search scheme. The effects of various optional constraints are investigated. Some of the optional constraints expand the model's scope toward a system view (berth capacity, port channel). An adaptive scheme for a greedy heuristic from the literature is proposed and compared to the constraint programming approach.