I'd suggest using a wildcard url alias for your /company
page. Then your URL will look something like /company/1234
, a little more friendly.
Next add a custom query repeater to your page. Generate a query calling your module class data. You will need to create a container page type (one without any fields) which will hold transformations and queries. Create your query in there. Be sure to use the query macros as defined in the custom query documentation. Your query could look like this:
SELECT ##TOPN## ##COLUMNS##
FROM My_CustomModuleTable
WHERE ##WHERE##
ORDER BY ##ORDERBY##
After you have your query created, finish setting up the webpart. In the Where clause, click the arrow to the left of the textbox and enter
ModuleIDColumn = {%ToInt(QueryString.GetValue("ID"))|(default)0%}
After you've got that setup, you'll need to create a transformation, for the details but it sounds like you have that done already.
Lastly, you'll want to control when the list and details webparts are visible. You can simply set the Visible property to a macro to show the details if there is a querystring value.
{%QueryString.GetValue("ID") != ""%}
And of course for the list webpart, you set the operator to ==
vs. !=