I am missing some code, but it seems that:

for dept_rec in deptCk Loop
open generic_cursor for select * from Dept
where deptd = dept_rec.deptId;
end loop;

loops complete through dept_rec and then exits the procedure
and that is at the last record.