I think you can try any of below 2 options. below is high level logic. you might need take care of code in detail while implementing.
Option 1
1. Edit your default view and add content editor webpart
2. Add some script to this content editor webpart. Idea would be
to get current user display name which in your case would be
"DepartmentID/StaffName"
var currentusername = $().SPServices.SPGetCurrentUser({ fieldName: "Title", debug: false });
assuming above gave you "1231321\Siddharth"
var seprate = currentusername.split("\\");
var deparmentid = currentusername[0];
if(querystring is empty) // take care of syntax here
{
window.location.href= window.location.href + "?FilterField1=DeparmentId&FilterValue1=" + deparmentid;
}
Note - "DeparmentId" should be the field name in your custom list, the query string parameters name and values are case sensitive so take care of it.
Explanation - Basically here we are finding current logged in users deparement id and then passing it to list view to filter data based on deparement id...one disadvantage here you will see some lag because user will be redirected again on same page. make sure content editor web part is first in sequence so that before list view is loaded redirect happens.
Option 2 - Use CSOM code to create custom view. Above code can be reffered to get current logged in users department id.
use this departement id to pass in caml query filter.
<script type="text/javascript" src="/Documents/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="/Documents/jquery.SPServices-0.7.2.min.js"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$().SPServices({
operation: "GetListItems",
async: false,
listName: "Video",
CAMLQuery: "<Query><Where><Eq><FieldRef Name='DepartmentId' /><Value Type='Choice'>" + deparmentid + "</Value></Eq></Where></Query>", // here deparmentid is variable which should have value of current logged in user department id
CAMLViewFields: "<ViewFields> <FieldRef Name='DepartmentId' /> </ViewFields>", //Fetch other fields which you want.
completefunc: function (xData, Status) {
$(xData.responseXML).SPFilterNode("z:row").each(function() {
var liHtml = "<li>" + $(this).attr("ows_Title") + "</li>";
$("#tasksUL").append(liHtml);
});
}
});
});
</script>
<ul id="tasksUL"/>
Option 3 - Create custom webpart using server object model and use listview control to find custom data...