Compare commits

...

4 Commits

Author SHA1 Message Date
李栋 71e3c61f3d 单点登录日志 2 years ago
李栋 7f3acb3ad9 Merge branch 'main' into feature-LeeD-20221025
# Conflicts:
#	src/com/api/signature/GetDocSignatureWebAction.java
2 years ago
李栋 f3f37a1b7c 人员部门变动后流程可见性优化增加定时任务 2 years ago
李栋 0d8e3fc096 人员部门变动后流程可见性优化增加定时任务 2 years ago

@ -5,8 +5,10 @@ import com.alibaba.fastjson.JSONObject;
import com.api.system.language.util.ParseLangDataUtil;
import com.cloudstore.dev.api.bean.CodeTimeBean;
import com.cloudstore.dev.api.util.EMManager;
import com.cloudstore.dev.api.util.LogUtil;
import com.cloudstore.dev.api.util.Util_DataMap;
import com.cloudstore.dev.api.util.Util_public;
import com.cloudstore.dev.bean.LoginLogEntity;
import com.cloudstore.eccom.common.WeaIndexManager;
import com.cloudstore.eccom.constant.WeaMessageCode;
import com.cloudstore.eccom.core.WeaDataChange;
@ -24,20 +26,6 @@ import com.engine.msgcenter.util.ValveConfigManager;
import com.engine.systeminfo.util.AppSyncUtil;
import com.engine.systeminfo.util.IpTablesUtil;
import com.google.common.collect.Maps;
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLDecoder;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@ -45,6 +33,7 @@ import weaver.common.util.string.StringUtil;
import weaver.conn.RecordSet;
import weaver.general.PasswordUtil;
import weaver.general.ThreadVarLanguage;
import weaver.general.TimeUtil;
import weaver.general.Util;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.OnLineMonitor;
@ -54,6 +43,22 @@ import weaver.mobile.plugin.ecology.service.HrmResourceService;
import weaver.rsa.security.RSA;
import weaver.systeminfo.SystemEnv;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLDecoder;
import java.util.*;
@Path("/ec/dev/app")
public class ServiceEC {
private static volatile boolean inited;
@ -242,66 +247,73 @@ public class ServiceEC {
*/
private User ssoLoginByAuthCode(HttpServletRequest request) {
String authCode = request.getParameter("authCode");
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("auth_code", authCode);
logger.info("ssoLogin_auth_code" + authCode);
MobileSsoLoginService mobileSsoLoginService = getMobileSsoLoginService();
Map<String, Object> userInfo = mobileSsoLoginService.getUserInfo(paramMap, null);
Map<String, Object> userInfoData = (HashMap<String, Object>) userInfo.get("data");
String userCode = (String) userInfoData.get("userCode");
logger.info("userCode:" + userCode);
if (StringUtils.isNotEmpty(userCode)) {
RecordSet rs = new RecordSet();
String sql = " select * from hrmresource where workcode=?";
rs.executeQuery(sql, userCode);
if (rs.next()) {
User user = new User();
String languageidweaver = "8";
user.setUid(rs.getInt("id"));
user.setLoginid(rs.getString("loginid"));
user.setFirstname(rs.getString("firstname"));
user.setLastname(rs.getString("lastname"));
user.setAliasname(rs.getString("aliasname"));
user.setTitle(rs.getString("title"));
user.setTitlelocation(rs.getString("titlelocation"));
user.setSex(rs.getString("sex"));
user.setPwd(rs.getString("password"));
languageidweaver = rs.getString("systemlanguage");
user.setLanguage(Util.getIntValue(languageidweaver, 0));
user.setTelephone(rs.getString("telephone"));
user.setMobile(rs.getString("mobile"));
user.setMobilecall(rs.getString("mobilecall"));
user.setEmail(rs.getString("email"));
user.setCountryid(rs.getString("countryid"));
user.setLocationid(rs.getString("locationid"));
user.setResourcetype(rs.getString("resourcetype"));
user.setStartdate(rs.getString("startdate"));
user.setEnddate(rs.getString("enddate"));
user.setContractdate(rs.getString("contractdate"));
user.setJobtitle(rs.getString("jobtitle"));
user.setJobgroup(rs.getString("jobgroup"));
user.setJobactivity(rs.getString("jobactivity"));
user.setJoblevel(rs.getString("joblevel"));
user.setSeclevel(rs.getString("seclevel"));
user.setUserDepartment(Util.getIntValue(rs.getString("departmentid"), 0));
user.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"), 0));
user.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"), 0));
user.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"), 0));
user.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"), 0));
user.setManagerid(rs.getString("managerid"));
user.setAssistantid(rs.getString("assistantid"));
user.setPurchaselimit(rs.getString("purchaselimit"));
user.setCurrencyid(rs.getString("currencyid"));
user.setLastlogindate(rs.getString("currentdate"));
user.setLogintype("1");
user.setAccount(rs.getString("account"));
user.setLoginip(request.getRemoteAddr());
request.getSession(true).setMaxInactiveInterval(60 * 60 * 24);
request.getSession(true).setAttribute("weaver_user@bean", user);
request.getSession(true).setAttribute("moniter", new OnLineMonitor("" + user.getUID(), user.getLoginip()));
return user;
try {
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("auth_code", authCode);
logger.info("ssoLogin_auth_code" + authCode);
MobileSsoLoginService mobileSsoLoginService = getMobileSsoLoginService();
Map<String, Object> userInfo = mobileSsoLoginService.getUserInfo(paramMap, null);
Map<String, Object> userInfoData = (HashMap<String, Object>) userInfo.get("data");
String userCode = (String) userInfoData.get("userCode");
logger.info("userCode:" + userCode);
if (StringUtils.isNotEmpty(userCode)) {
RecordSet rs = new RecordSet();
String sql = " select * from hrmresource where workcode=?";
rs.executeQuery(sql, userCode);
if (rs.next()) {
User user = new User();
String languageidweaver = "8";
user.setUid(rs.getInt("id"));
user.setLoginid(rs.getString("loginid"));
user.setFirstname(rs.getString("firstname"));
user.setLastname(rs.getString("lastname"));
user.setAliasname(rs.getString("aliasname"));
user.setTitle(rs.getString("title"));
user.setTitlelocation(rs.getString("titlelocation"));
user.setSex(rs.getString("sex"));
user.setPwd(rs.getString("password"));
languageidweaver = rs.getString("systemlanguage");
user.setLanguage(Util.getIntValue(languageidweaver, 0));
user.setTelephone(rs.getString("telephone"));
user.setMobile(rs.getString("mobile"));
user.setMobilecall(rs.getString("mobilecall"));
user.setEmail(rs.getString("email"));
user.setCountryid(rs.getString("countryid"));
user.setLocationid(rs.getString("locationid"));
user.setResourcetype(rs.getString("resourcetype"));
user.setStartdate(rs.getString("startdate"));
user.setEnddate(rs.getString("enddate"));
user.setContractdate(rs.getString("contractdate"));
user.setJobtitle(rs.getString("jobtitle"));
user.setJobgroup(rs.getString("jobgroup"));
user.setJobactivity(rs.getString("jobactivity"));
user.setJoblevel(rs.getString("joblevel"));
user.setSeclevel(rs.getString("seclevel"));
user.setUserDepartment(Util.getIntValue(rs.getString("departmentid"), 0));
user.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"), 0));
user.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"), 0));
user.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"), 0));
user.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"), 0));
user.setManagerid(rs.getString("managerid"));
user.setAssistantid(rs.getString("assistantid"));
user.setPurchaselimit(rs.getString("purchaselimit"));
user.setCurrencyid(rs.getString("currencyid"));
user.setLastlogindate(rs.getString("currentdate"));
user.setLogintype("1");
user.setAccount(rs.getString("account"));
user.setLoginip(request.getRemoteAddr());
request.getSession(true).setMaxInactiveInterval(60 * 60 * 24);
request.getSession(true).setAttribute("weaver_user@bean", user);
request.getSession(true).setAttribute("moniter", new OnLineMonitor("" + user.getUID(), user.getLoginip()));
LogUtil.log(LoginLogEntity.builder().param("workcode-" + userCode).result("成功").msg(authCode).modedate(TimeUtil.getCurrentTimeString()).build());
return user;
} else {
LogUtil.log(LoginLogEntity.builder().param("workcode-" + userCode).result("失败").msg("人员在oa不存在").modedate(TimeUtil.getCurrentTimeString()).build());
}
}
} catch (Exception e) {
LogUtil.log(LoginLogEntity.builder().param("authcode-" + authCode).result("失败").msg(e.getMessage()).modedate(TimeUtil.getCurrentTimeString()).build());
}
return null;
}

@ -0,0 +1,46 @@
package com.cloudstore.dev.api.util;
import com.cloudstore.dev.bean.LoginLogEntity;
import weaver.conn.RecordSet;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.BaseBean;
import weaver.general.ThreadPoolUtil;
import weaver.interfaces.dito.comInfo.PropBean;
import java.util.concurrent.ExecutorService;
/**
* @version 1.0
* @Title ecology-9
* @Company
* @CreateDate 2023/8/9
* @Description app
* @Author Lee
*/
public class LogUtil {
public static void log(LoginLogEntity logEntity) {
try {
Runnable runnable = new Runnable() {
@Override
public void run() {
String formModeId = PropBean.getUfPropValue("logEntityFormModeId");
String logEntityCustomId = PropBean.getUfPropValue("logEntityCustomId");
String logEntityTable = PropBean.getUfPropValue("logEntityTable");
RecordSet recordSet = new RecordSet();
String sql = "insert into " + logEntityTable + " (param,msg,result,formmodeid,modedate) values(?,?,?,?,?)";
recordSet.executeUpdate(sql, logEntity.getParam(), logEntity.getMsg(), logEntity.getResult(), formModeId, logEntity.getModedate());
//权限重构
ModeRightInfo ModeRightInfo = new ModeRightInfo();
ModeRightInfo.setNewRight(true);
ModeRightInfo.editModeDataShare(1, Integer.parseInt(formModeId), Integer.parseInt(logEntityCustomId));
}
};
ExecutorService threadPool = ThreadPoolUtil.getThreadPool(null, null);
threadPool.execute(runnable);
} catch (Exception e) {
new BaseBean().writeLog("LogUtil" + e.getMessage());
}
}
}

@ -0,0 +1,26 @@
package com.cloudstore.dev.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @version 1.0
* @Title ecology-9
* @Company
* @CreateDate 2023/8/10
* @Description ${description}
* @Author Lee
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class LoginLogEntity {
private String param;
private String msg;
private String result;
private String formmodeid;
private String modedate;
}

@ -1,112 +0,0 @@
package com.customization.dito.intercept;
import com.engine.core.cfg.annotation.CommandDynamicProxy;
import com.engine.core.interceptor.AbstractCommandProxy;
import com.engine.core.interceptor.Command;
import com.engine.workflow.cmd.workflowPath.node.operatorSetting.DoSaveOperatorGroupInfoCmd;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import weaver.conn.RecordSet;
import weaver.general.TimeUtil;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.workflow.request.RequestCheckUser;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
/**
* @author Lee
*/
@CommandDynamicProxy(target = DoSaveOperatorGroupInfoCmd.class, desc = "流程创建权限保存后将有权限人员插入到新表")
public class NodeSetCmdIntercept extends AbstractCommandProxy<Map<String, Object>> {
private final Log log = LogFactory.getLog(NodeSetCmdIntercept.class);
@Override
public Map<String, Object> execute(Command<Map<String, Object>> command) {
DoSaveOperatorGroupInfoCmd cmd = (DoSaveOperatorGroupInfoCmd) command;
String workflowIdString = (String) cmd.getParams().get("workflowId");
int workflowId = Integer.parseInt(workflowIdString);
Map<String, Object> result = nextExecute(cmd);
try {
//启动线程同步人员到中间表
new Thread(new Runnable() {
@Override
public void run() {
log.info(workflowId + "-DoSaveOperatorGroupInfoCmd-start-" + TimeUtil.getCurrentTimeString());
String userStatus = PropBean.getUfPropValue("userStatus");
String tableName = PropBean.getUfPropValue("workflowCreatorTableName");
// String userStatus = "0,1,2,3";
// String tableName = "uf_workflowcreator";
RecordSet rs = new RecordSet();
//先查出该流程已经插入的人员
String createrSql = "SELECT userid FROM " + tableName + " where workflowid=" + workflowId;
HashSet<Integer> existUserSet = new HashSet<>();
rs.execute(createrSql);
while (rs.next()) {
existUserSet.add(rs.getInt("userid"));
}
//查询所有人员sql
String userSql = "SELECT id FROM HrmResource WHERE status IN (" + userStatus + ")";
//插入中间表sql
String insertSql = "INSERT INTO " + tableName + " (workflowid,userid)VALUES(?,?)";
HashSet<Integer> userIdSet = new HashSet<>();
rs.execute(userSql);
while (rs.next()) {
userIdSet.add(rs.getInt("id"));
}
//有权限创建该流程的人员集合
HashSet<Integer> rightUserSet = new HashSet<>();
RequestCheckUser rcu = new RequestCheckUser();
userIdSet.forEach(userId -> {
rcu.resetParameter();
rcu.setUserid(userId);
rcu.setWorkflowid(workflowId);
rcu.setLogintype("1");
try {
rcu.checkUser();
} catch (Exception e) {
e.printStackTrace();
}
int hasRight = rcu.getHasright();
if (1 == hasRight) {
rightUserSet.add(userId);
}
});
//本次需要删除的中间表人员
HashSet<Integer> set = new HashSet<>(existUserSet);
HashSet<Integer> set2 = new HashSet<>(existUserSet);
set.retainAll(rightUserSet);
set2.removeAll(set);
String deleteSql = "delete from " + tableName + " where workflowid=? and userid=?";
for (Integer creator : set2) {
rs.executeUpdate(deleteSql, workflowId, creator);
}
//集合移除已经插入的人员,避免重复插入
rightUserSet.removeAll(existUserSet);
List<List> batchList = new ArrayList<>();
for (Integer creator : rightUserSet) {
List<Integer> list = new ArrayList<>();
list.add(workflowId);
list.add(creator);
batchList.add(list);
}
rs.executeBatchSql(insertSql, batchList);
log.info(workflowId + "-DoSaveOperatorGroupInfoCmd-end-" + TimeUtil.getCurrentTimeString());
}
}).start();
Thread.sleep(3000);
} catch (Exception e) {
log.error("DoSaveOperatorGroupInfoCmd-error-" + e.getMessage());
}
return result;
}
}

@ -1,11 +1,14 @@
package com.engine.dito.ssologin.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.cloudstore.dev.api.util.LogUtil;
import com.cloudstore.dev.api.util.Util_DataCache;
import com.cloudstore.dev.bean.LoginLogEntity;
import com.engine.core.impl.Service;
import com.engine.dito.ssologin.service.MobileSsoLoginService;
import org.apache.commons.lang3.StringUtils;
import weaver.general.BaseBean;
import weaver.general.TimeUtil;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.util.HttpUtils;
@ -80,8 +83,9 @@ public class MobileSsoLoginServiceImpl extends Service implements MobileSsoLogin
Map<String, Object> dataMap = new HashMap<>();
BaseBean baseBean = new BaseBean();
baseBean.writeLog("getUserInfoStart");
String authCode = "";
try {
String authCode = (String) paramMap.get("auth_code");
authCode = (String) paramMap.get("auth_code");
String accessToken = (String) Util_DataCache.getObjVal(SSO_LOGIN_ACCESS_TOKEN);
if (StringUtils.isEmpty(accessToken)) {
accessToken = getAccessToken();
@ -110,6 +114,7 @@ public class MobileSsoLoginServiceImpl extends Service implements MobileSsoLogin
baseBean.writeLog("获取用户信息失败", dataJson.toString());
return dataMap;
} catch (Exception e) {
LogUtil.log(LoginLogEntity.builder().param("authCode-" + authCode).result("失败").msg("获取用户信息接口异常").modedate(TimeUtil.getCurrentTimeString()).build());
baseBean.writeLog("获取用户信息异常", e.getMessage());
dataMap.put("api_status", false);
dataMap.put("errorMsg", e.getMessage());

@ -1,23 +0,0 @@
package weaver.interfaces.dito.job;
import weaver.general.BaseBean;
import weaver.interfaces.schedule.BaseCronJob;
/**
* @version 1.0
* @Title ecology-9
* @Company
* @CreateDate 2022/11/14
* @Description ${description}
* @Author Lee
*/
public class WorkflowAuthModelingCronJobTest extends BaseCronJob {
@Override
public void execute() {
BaseBean bb = new BaseBean();
bb.writeLog("start WorkflowAuthModelingCronJobTest");
WorkflowAuthModelingUtil workflowAuthModelingUtil = new WorkflowAuthModelingUtil();
workflowAuthModelingUtil.executeData("");
}
}

@ -1,102 +0,0 @@
package weaver.interfaces.dito.job;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import weaver.conn.RecordSet;
import weaver.general.TimeUtil;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.schedule.BaseCronJob;
import weaver.workflow.request.RequestCheckUser;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
/**
* @version 1.0
* @Title ecology-9
* @Company
* @CreateDate 2023/3/30
* @Description
* @Author Lee
*/
public class WorkflowCreatorsCornJob extends BaseCronJob {
private static final Log log = LogFactory.getLog(WorkflowCreatorsCornJob.class);
@Override
public void execute() {
//查询出中间表所有流程,重新校验人员权限
RecordSet rs = new RecordSet();
rs.execute("SELECT DISTINCT workflowselect as workflowId FROM uf_workflow_auth");
HashSet<Integer> workflowIds = new HashSet<>();
while (rs.next()) {
workflowIds.add(rs.getInt("workflowId"));
}
//查询所有人员,用于比对每条流程有创建权限的人员
String userStatus = PropBean.getUfPropValue("userStatus");
String userSql = "SELECT id FROM HrmResource WHERE status IN (" + userStatus + ")";
HashSet<Integer> userIdSet = new HashSet<>();
rs.execute(userSql);
while (rs.next()) {
userIdSet.add(rs.getInt("id"));
}
String tableName = PropBean.getUfPropValue("workflowCreatorTableName");
//插入中间表sql
String insertSql = "INSERT INTO " + tableName + " (workflowid,userid)VALUES(?,?)";
//每条流程重新比对人员权限
for (int workflowId : workflowIds) {
log.info(workflowId + "-WorkflowCreatorsCornJob-start-" + TimeUtil.getCurrentTimeString());
//先查出该流程已经插入的人员
String createrSql = "SELECT userid FROM " + tableName + " where workflowid=" + workflowId;
HashSet<Integer> existUserSet = new HashSet<>();
rs.execute(createrSql);
while (rs.next()) {
existUserSet.add(rs.getInt("userid"));
}
//有权限创建该流程的人员集合
HashSet<Integer> rightUserSet = new HashSet<>();
RequestCheckUser rcu = new RequestCheckUser();
userIdSet.forEach(userId -> {
rcu.resetParameter();
rcu.setUserid(userId);
rcu.setWorkflowid(workflowId);
rcu.setLogintype("1");
try {
rcu.checkUser();
} catch (Exception e) {
e.printStackTrace();
}
int hasRight = rcu.getHasright();
if (1 == hasRight) {
rightUserSet.add(userId);
}
});
//本次需要删除的中间表人员
HashSet<Integer> set = new HashSet<>(existUserSet);
HashSet<Integer> set2 = new HashSet<>(existUserSet);
set.retainAll(rightUserSet);
set2.removeAll(set);
String deleteSql = "delete from " + tableName + " where workflowid=? and userid=?";
for (Integer creator : set2) {
rs.executeUpdate(deleteSql, workflowId, creator);
}
//集合移除已经插入的人员,避免重复插入
rightUserSet.removeAll(existUserSet);
List<List> batchList = new ArrayList<>();
for (Integer creator : rightUserSet) {
List<Integer> list = new ArrayList<>();
list.add(workflowId);
list.add(creator);
batchList.add(list);
}
rs.executeBatchSql(insertSql, batchList);
log.info(workflowId + "-WorkflowCreatorsCornJob-end-" + TimeUtil.getCurrentTimeString());
}
}
}

@ -10,6 +10,7 @@ import weaver.general.Util;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.util.HttpUtils;
import weaver.interfaces.schedule.BaseCronJob;
import weaver.workflow.request.DevWorkflowCreater;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
@ -46,14 +47,14 @@ public class WorkflowUserCronJob extends BaseCronJob {
String synchronizeUserUrl = PropBean.getUfPropValue("synchronizeUserUrl");
String accountName = PropBean.getUfPropValue("username");
String password = PropBean.getUfPropValue("passwd");
String workflowCreatorTableName = PropBean.getUfPropValue("workflowCreatorTableName");
// String workflowCreatorTableName = PropBean.getUfPropValue("workflowCreatorTableName");
/*
E9idSet
*/
//根据流程id查询出所有创建人id,封装成Map<String,Set>
// ShareManager shareManager = new ShareManager();
DevWorkflowCreater workflowCreater = new DevWorkflowCreater();
Set<String> baseWorkflowIdSet = new HashSet<>();
Map<String, Set<String>> baseWorkflowMap = new HashMap<>();
Map<String, String> baseWorkflowName = new HashMap<>();
@ -69,13 +70,14 @@ public class WorkflowUserCronJob extends BaseCronJob {
continue;
}
baseWorkflowIdSet.add(workflowId);
// String userIds = shareManager.getWorkflowCreater(Integer.parseInt(workflowId));
String baseUserSql = "select userid from "+workflowCreatorTableName+ " where workflowid=?";
recordSet.executeQuery(baseUserSql,workflowId);
String userIds = workflowCreater.getWorkflowCreater(Integer.parseInt(workflowId));
// String baseUserSql = "select userid from "+workflowCreatorTableName+ " where workflowid=?";
// recordSet.executeQuery(baseUserSql,workflowId);
Set<String> userIdList = new HashSet<>();
while (recordSet.next()) {
userIdList.add(recordSet.getString("userid"));
}
Collections.addAll(userIdList, userIds.split(","));
// while (recordSet.next()) {
// userIdList.add(recordSet.getString("userid"));
// }
logger.info("workflowname-baseUserListSize-" + userIdList.size());
baseWorkflowMap.put(workflowId, userIdList);
baseWorkflowName.put(workflowId, workflowname);
@ -131,14 +133,17 @@ public class WorkflowUserCronJob extends BaseCronJob {
headers.put("Authorization", "Basic " + Base64.getUrlEncoder().encodeToString((accountName + ":" + password).getBytes()));
Set<String> updateSet = new HashSet<>(baseWorkflowIdSet);
//交集
updateSet.retainAll(modelWorkflowIdSet);
Set<String> deleteSet = new HashSet<>(modelWorkflowIdSet);
//差集
deleteSet.removeAll(updateSet);
Set<String> addSet = new HashSet<>(baseWorkflowIdSet);
addSet.removeAll(updateSet);
//人员权限新增同步
if (addSet.size() != 0) {
addWorkflow(bb, addSet, baseWorkflowMap, baseWorkflowName, baseWorkflowCataCode, formModeId);
// syncWorkflowByHttp(ACTION_TYPE_ADD, center, addSet, baseWorkflowName, baseWorkflowCataCode, headers);
List<List<Map<String, Object>>> addUserList = new LinkedList<>();
getUserConditionByWorkflow(center, addSet, baseWorkflowName, baseWorkflowCataCode, addUserList);
syncUser(synchronizeUserUrl, addUserList, headers);
@ -146,7 +151,7 @@ public class WorkflowUserCronJob extends BaseCronJob {
//人员权限修改同步
if (updateSet.size() != 0) {
HashSet<String> needUpdateSet = updateWorkflow(bb, updateSet, baseWorkflowMap, modeWorkflowMap, baseWorkflowName, baseWorkflowCataCode,formModeId);
Set<String> needUpdateSet = updateWorkflow(bb, updateSet, baseWorkflowMap, modeWorkflowMap, baseWorkflowName, baseWorkflowCataCode,formModeId);
needUpdateSet.addAll(needUpdateWorkflowSet);
logger.info("needUpdateSet-size:" + needUpdateSet.size());
//先删除流程再重新同步人员权限
@ -181,7 +186,7 @@ public class WorkflowUserCronJob extends BaseCronJob {
* @param modeWorkflowCataCode
* @param headers
*/
private void syncWorkflowByHttp(String action, String center, HashSet<String> needUpdateSet, Map<String, String> modeWorkflowName, Map<String, String> modeWorkflowCataCode, HashMap<String, String> headers) {
private void syncWorkflowByHttp(String action, String center, Set<String> needUpdateSet, Map<String, String> modeWorkflowName, Map<String, String> modeWorkflowCataCode, HashMap<String, String> headers) {
String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl");
String synchronizeFlowUrl = PropBean.getUfPropValue("synchronizeFlowUrl");
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");

Loading…
Cancel
Save