looks like you are looking for a smart item reader that can dynamically detect the collection of input resources, and also dynamically assign them to chunk partitioins. One simple way is to deposit all facility data into a shared location / directory, and assign each facility data file to its own partition. You can implement javax.batch.api.chunk.CheckpointAlgorithm to dynamically assign partitions.
If each data file is not big enough to warranty its own partition, you can assign multiple input files to a partition. We currently have a open feature request to implement an item reader that reads from multiple resource:
Implement ItemReader that reads from multiple resources