@Override public int releaseCurrentUserWorkItems(String globalStepName, List<Long> wfItemIds) throws UnifyException { WfStepDef wfStepDef = accessCurrentUserStep(globalStepName); WfItemQuery wfItemQuery = getCurrentUserParticipationWfItemQuery(wfStepDef); wfItemQuery.idIn(wfItemIds); wfItemQuery.heldBy(getUserToken().getUserLoginId()); return db().updateAll(wfItemQuery, new Update().add("heldBy", null)); }
@Override public WfItemObjects getCurrentUserWorkItems(String globalStepName) throws UnifyException { WfStepDef wfStepDef = accessCurrentUserStep(globalStepName); String useLoginID = getUserToken().getUserLoginId(); List<WfItem> wfItemList = db().listAll(new WfItemQuery().globalTemplateName(wfStepDef.getGlobalTemplateName()) .wfStepName(wfStepDef.getName()).heldBy(useLoginID)); List<WfAction> actions = new ArrayList<WfAction>(); for (WfUserActionDef wfUserActionDef : wfStepDef.getUserActionList()) { actions.add(new WfAction(wfUserActionDef.getName(), resolveSessionMessage(wfUserActionDef.getLabel()), wfUserActionDef.getNoteReqType(), wfUserActionDef.isValidatePage())); } return new WfItemObjects(globalStepName, wfItemList, actions); }
@Override public void logIn(UserToken userToken) throws UnifyException { SessionContext sessionContext = getRequestContext().getSessionContext(); // Add user session if not existing if (getUserSession(sessionContext.getId()) == null) { addUserSession(new LocalUserSession(sessionContext)); } // Update user session database record String userLoginId = userToken.getUserLoginId(); String sessionId = sessionContext.getId(); db().updateAll(new UserSessionTrackingQuery().id(sessionId), new Update().add("userLoginId", userLoginId) .add("userLoginId", userToken.getUserLoginId()).add("userName", userToken.getUserName())); if (!userToken.isAllowMultipleLogin()) { List<String> sessionIdList = db().valueList(String.class, "sessionId", new UserSessionTrackingQuery().userLoginId(userLoginId).idNot(sessionId)); if (!sessionIdList.isEmpty()) { // Log other user sessions out db().updateAll(new UserSessionTrackingQuery().idAmongst(sessionIdList), new Update().add("userLoginId", null).add("userLoginId", null).add("userName", null)); forceLogOut(sessionIdList.toArray(new String[sessionIdList.size()])); } } // Update session context sessionContext.setUserToken(userToken); }
@Override public List<Long> grabCurrentUserWorkItems(String globalStepName) throws UnifyException { WfStepDef wfStepDef = accessCurrentUserStep(globalStepName); WfItemQuery wfItemQuery = getCurrentUserParticipationWfItemQuery(wfStepDef); String userLoginID = getUserToken().getUserLoginId(); if (!wfStepDef.isIncludeForwarder()) { wfItemQuery.notForwardedBy(userLoginID); } wfItemQuery.isUnheldOrHeldBy(userLoginID); if (wfStepDef.getItemsPerSession() > 0) { wfItemQuery.limit(wfStepDef.getItemsPerSession()); } db().updateAll(wfItemQuery, new Update().add("heldBy", userLoginID)); wfItemQuery.clear(); wfItemQuery.globalTemplateName(wfStepDef.getGlobalTemplateName()); wfItemQuery.wfStepName(wfStepDef.getName()); wfItemQuery.heldBy(userLoginID); return db().valueList(Long.class, "id", wfItemQuery); }
@Override public void applyWorkflowAction(WfItemObject workflowItem, String actionName) throws UnifyException { WfUserActionDef wfUserActionDef = workflowItem.getWfStepDef().getWfUserActionDef(actionName); WfStepDef trgWfStep = getWfStepDef(wfUserActionDef.getTargetGlobalName()); // Check if current user holds workflow item Long wfItemId = workflowItem.getWfItemId(); String userLoginId = getUserToken().getUserLoginId(); WfItemQuery wfItemQuery = ((WfItemQuery) new WfItemQuery().id(wfItemId)).heldBy(userLoginId); if (db().countAll(wfItemQuery) > 0) { // Log history Date actionDt = db().getNow(); db().updateById(WfItemEvent.class, workflowItem.getWfHistEventId(), new Update().add("actionDt", actionDt) .add("actor", userLoginId).add("wfAction", actionName).add("notes", workflowItem.getNotes())); // Route to target step WfStepDef settleQ = pushIntoStep(trgWfStep, workflowItem); if (!settleQ.isEnd()) { // Release workflow item db().updateAll(wfItemQuery, new Update().add("heldBy", null)); } } else { throw new UnifyException(WorkflowModuleErrorConstants.WORKFLOW_APPLY_ACTION_UNHELD, actionName, workflowItem.getDescription()); } }
@Override protected void doWriteBehavior(ResponseWriter writer, Widget widget) throws UnifyException { RemoteDocViewPanel remoteDocViewPanel = (RemoteDocViewPanel) widget; writer.write("ux.loadRemoteDocViewPanel({"); writer.write("\"pId\":\"").write(remoteDocViewPanel.getId()).write('"'); writer.write(",\"pWinPgNm\":\"").write(getResponseControllerWinId()).write("\""); writer.write(",\"pRemoteURL\":\"").write(remoteDocViewPanel.getRemoteDocViewInfo().getRemoteDocUrl()) .write("\""); UserToken userToken = getUserToken(); writer.write(",\"pRemoteLoginId\":\"").write(userToken.getUserLoginId()).write("\""); writer.write(",\"pRemoteUserName\":\"").write(userToken.getUserName()).write("\""); if (userToken.getRoleCode() != null) { writer.write(",\"pRemoteRoleCode\":\"").write(userToken.getRoleCode()).write("\""); } if (userToken.getBranchCode() != null) { writer.write(",\"pRemoteBranchCode\":\"").write(userToken.getBranchCode()).write("\""); } writer.write(",\"pRemoteGlobalFlag\":").write(userToken.isGlobalAccess()); writer.write("});"); }
String forwardedBy = null; if (!userToken.isReservedUser()) { forwardedBy = userToken.getUserLoginId();