Create the framework of ReportService, when DAO layers are done, we just need to "fill in the blanks".
Add return type to PDFService. When a contract is generated successfully, it will return "true", otherwise return "false". The front-end can show messages to users base on these return valuses.