```python
from collections import deque
from typing import Optional, Dict

class JobQueue:
    def __init__(self):
        self._queue = deque()
        self._results: Dict[str, Dict] = {}
        self._processed: set = set()

    def add_job(self, job_id: str, data: dict) -> str:
        self._queue.append((job_id, data))
        return job_id

    def get_result(self, job_id: str) -> Optional[Dict]:
        return self._results.get(job_id)

    def process(self):
        if self._queue:
            job_id, data = self._queue.popleft()
            if job_id not in self._results:
                self._results[job_id] = {"status": "completed", "data": data}
                self._processed.add(job_id)

    def process_all(self):
        while self._queue:
            job_id, data = self._queue.popleft()
            if job_id not in self._results:
                self._results[job_id] = {"status": "completed", "data": data}
                self._processed.add(job_id)
```