def METHOD_NAME(reqmgrSvc, globalQSvc, wfStatusDict, logger):
    """
    Handle workflows that have been either aborted or force-completed.
    This will ensure that no global workqueue elements will be left behind.
    :param reqmgrSvc: object instance of the ReqMgr class
    :param globalQSvc: object instance of the WorkQueue class
    :param wfStatusDict: workflow status according to the workqueue elements
    :param logger: a logger object instance
    :return: None object
    """
    for status, nextStatus in CANCEL_AUTO_TRANSITION.items():
        requests = reqmgrSvc.getRequestByStatus([status], detail=False)
        count = 0
        for wflowName in requests:
            stateFromGQ = wfStatusDict.get(wflowName, None)
            if stateFromGQ == "canceled":
                # elements still in CancelRequested, wait for the agent to do his job
                continue
            elif stateFromGQ in ["acquired", "running-open", "running-closed"]:
                # then something went wrong with the workflow abortion/force-completion
                # trigger another cancel request
                logger.info("%s in %s but WQEs in %s, cancelling it again!",
                            wflowName, status, stateFromGQ)
                globalQSvc.cancelWorkflow(wflowName)
            elif stateFromGQ in ["completed", None]:
                # all elements are already in a final state or no longer exist, advance status
                count += 1
                reqmgrSvc.updateRequestStatus(wflowName, nextStatus)
                logger.info("%s in %s moved to %s", wflowName, status, nextStatus)
        logger.info("Total %s: %d", nextStatus, count)