|
|
|
@ -31,7 +31,7 @@ public class WorkflowSyncCronJob extends BaseCronJob {
|
|
|
|
|
*/
|
|
|
|
|
private String syncType;
|
|
|
|
|
private static final Log logger = LogFactory.getLog(WorkflowSyncCronJob.class);
|
|
|
|
|
|
|
|
|
|
String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl");
|
|
|
|
|
@Override
|
|
|
|
|
public void execute() {
|
|
|
|
|
BaseBean bb = new BaseBean();
|
|
|
|
@ -80,18 +80,19 @@ public class WorkflowSyncCronJob extends BaseCronJob {
|
|
|
|
|
if (recordSet.next()) {
|
|
|
|
|
preTime = recordSet.getString("timenode");
|
|
|
|
|
}
|
|
|
|
|
syncWorkflowByCondition(bb, synchronizeFlowUrl, synchronizeUserUrl, center, workflowAuthTable, accountName, password, preTime);
|
|
|
|
|
syncWorkflowByCondition(synchronizeFlowUrl, synchronizeUserUrl, center, workflowAuthTable, accountName, password, preTime);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 全量同步
|
|
|
|
|
private void allSynchronizeWorkflow(BaseBean bb, String synchronizeFlowUrl, String synchronizeUserUrl, String center, String workflowAuthTable, String accountName, String password) {
|
|
|
|
|
syncWorkflowByCondition(bb, synchronizeFlowUrl, synchronizeUserUrl, center, workflowAuthTable, accountName, password, null);
|
|
|
|
|
syncWorkflowByCondition(synchronizeFlowUrl, synchronizeUserUrl, center, workflowAuthTable, accountName, password, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据不同条件请求同步方法
|
|
|
|
|
*/
|
|
|
|
|
private void syncWorkflowByCondition(BaseBean bb, String synchronizeFlowUrl, String synchronizeUserUrl, String center, String workflowAuthTable, String accountName, String password, String timeCondition) {
|
|
|
|
|
private void syncWorkflowByCondition(String synchronizeFlowUrl, String synchronizeUserUrl, String center, String workflowAuthTable, String accountName, String password, String timeCondition) {
|
|
|
|
|
logger.info("syncWorkflow-start:" + TimeUtil.getCurrentTimeString());
|
|
|
|
|
RecordSet recordSet = new RecordSet();
|
|
|
|
|
RecordSet recordSet2 = new RecordSet();
|
|
|
|
|
RecordSet recordSet3 = new RecordSet();
|
|
|
|
@ -113,14 +114,12 @@ public class WorkflowSyncCronJob extends BaseCronJob {
|
|
|
|
|
String effective = recordSet.getString("effective");
|
|
|
|
|
String flowCode = recordSet.getString("flowCode");
|
|
|
|
|
String flowName = recordSet.getString("flowName");
|
|
|
|
|
bb.writeLog("WorkflowSyncCronJob flowCode :" + flowCode);
|
|
|
|
|
String cataCode = "";
|
|
|
|
|
//查询要推送到哪个目录下
|
|
|
|
|
String cataCodeSql = "select cataCodeName from uf_syncCataCode where flowCode=?";
|
|
|
|
|
recordSet3.executeQuery(cataCodeSql, flowCode);
|
|
|
|
|
if (recordSet3.next()) {
|
|
|
|
|
cataCode = Util.null2String(recordSet3.getString("cataCodeName"));
|
|
|
|
|
bb.writeLog("WorkflowSyncCronJob cataCode :" + cataCode);
|
|
|
|
|
}
|
|
|
|
|
if (EFFECTIVE_YES.equals(effective)) {
|
|
|
|
|
//拼接有效流程请求参数
|
|
|
|
@ -136,32 +135,41 @@ public class WorkflowSyncCronJob extends BaseCronJob {
|
|
|
|
|
getUserConditionByWorkflow(workflowAuthTable, center, cataCode, flowCode, flowName, ACTION_TYPE_DELETE_USER, delUserList, timeCondition, effective);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
logger.info("syncWorkflow-end:" + TimeUtil.getCurrentTimeString());
|
|
|
|
|
HashMap<String, String> headers = new HashMap<>();
|
|
|
|
|
headers.put("Authorization", "Basic " + Base64.getUrlEncoder().encodeToString((accountName + ":" + password).getBytes()));
|
|
|
|
|
//调用流程同步方法
|
|
|
|
|
if (CollectionUtils.isNotEmpty(addWorkflowList)) {
|
|
|
|
|
for (Map<String, Object> workflowMap : addWorkflowList) {
|
|
|
|
|
String data = HttpUtils.doPost(synchronizeFlowUrl, workflowMap, headers);
|
|
|
|
|
bb.writeLog("addworkflow" + workflowMap.get("flowCode"), data);
|
|
|
|
|
logger.info("addworkflow" + workflowMap.get("flowCode") + data);
|
|
|
|
|
//无法判断流程的更改类型,所以在流程变动同时修改
|
|
|
|
|
workflowMap.put("actionType", ACTION_TYPE_UPDATE);
|
|
|
|
|
data = HttpUtils.doPost(synchronizeFlowUrl, workflowMap, headers);
|
|
|
|
|
bb.writeLog("updateworkflow" + workflowMap.get("flowCode"), data);
|
|
|
|
|
logger.info("updateworkflow" + workflowMap.get("flowCode") + data);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
logger.info("delUserList-start:" + TimeUtil.getCurrentTimeString());
|
|
|
|
|
logger.info("delUserList-size:" + delUserList.size());
|
|
|
|
|
//删除人员要在删除流程之前执行
|
|
|
|
|
if (CollectionUtils.isNotEmpty(delUserList)) {
|
|
|
|
|
addOrDeleteUser(synchronizeUserUrl, delUserList, headers);
|
|
|
|
|
}
|
|
|
|
|
logger.info("delUserList-end:" + TimeUtil.getCurrentTimeString());
|
|
|
|
|
logger.info("delWorkflowList-start:" + TimeUtil.getCurrentTimeString());
|
|
|
|
|
if (CollectionUtils.isNotEmpty(delWorkflowList)) {
|
|
|
|
|
for (Map<String, Object> workflowMap : delWorkflowList) {
|
|
|
|
|
String data = HttpUtils.doPost(synchronizeFlowUrl, workflowMap, headers);
|
|
|
|
|
bb.writeLog("deleteworkflow" + workflowMap.get("staffCode"), data);
|
|
|
|
|
logger.info("deleteworkflow" + workflowMap.get("staffCode") + data);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
logger.info("delWorkflowList-end:" + TimeUtil.getCurrentTimeString());
|
|
|
|
|
logger.info("addUserList-start:" + TimeUtil.getCurrentTimeString());
|
|
|
|
|
logger.info("addUserList-size:" + addUserList.size());
|
|
|
|
|
if (CollectionUtils.isNotEmpty(addUserList)) {
|
|
|
|
|
addOrDeleteUser(synchronizeUserUrl, addUserList, headers);
|
|
|
|
|
}
|
|
|
|
|
logger.info("addUserList-end:" + TimeUtil.getCurrentTimeString());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -181,8 +189,10 @@ public class WorkflowSyncCronJob extends BaseCronJob {
|
|
|
|
|
//超出字段长度限制请求接口后清空一次
|
|
|
|
|
if (stringBuilder.length() > 10000) {
|
|
|
|
|
userCondition.put("staffCode", stringBuilder.toString());
|
|
|
|
|
logger.info("synchronizeUser-start" + TimeUtil.getCurrentTimeString());
|
|
|
|
|
String data = HttpUtils.doPost(synchronizeUserUrl, userCondition, headers);
|
|
|
|
|
logger.info("addOrDeleteUser-" + data);
|
|
|
|
|
logger.info("synchronizeUser-data" + data);
|
|
|
|
|
logger.info("synchronizeUser-end" + TimeUtil.getCurrentTimeString());
|
|
|
|
|
stringBuilder.delete(0, stringBuilder.length());
|
|
|
|
|
}
|
|
|
|
|
stringBuilder.append(staffCode).append("|");
|
|
|
|
@ -190,7 +200,10 @@ public class WorkflowSyncCronJob extends BaseCronJob {
|
|
|
|
|
//最后字段可能没有超限,再同步最后的人员
|
|
|
|
|
if (stringBuilder.length() < 10000) {
|
|
|
|
|
userCondition.put("staffCode", stringBuilder.toString());
|
|
|
|
|
logger.info("synchronizeUser-last-start" + TimeUtil.getCurrentTimeString());
|
|
|
|
|
String data = HttpUtils.doPost(synchronizeUserUrl, userCondition, headers);
|
|
|
|
|
logger.info("synchronizeUser-last-data" + data);
|
|
|
|
|
logger.info("synchronizeUser-last-end" + TimeUtil.getCurrentTimeString());
|
|
|
|
|
logger.info("addOrDeleteUser-" + data);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -227,7 +240,7 @@ public class WorkflowSyncCronJob extends BaseCronJob {
|
|
|
|
|
workflowMap.put("cataCode", cataCode);
|
|
|
|
|
workflowMap.put("center", center);
|
|
|
|
|
workflowMap.put("urlPc", "/bpm/workflow/request/CreateRequestForward.jsp?workflowid=" + flowCode);
|
|
|
|
|
workflowMap.put("urlApp", "/bpm/spa/workflow/static4mobileform/index.html#/req?iscreate=1&workflowid=" + flowCode);
|
|
|
|
|
workflowMap.put("urlApp", bpm_app_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?iscreate=1&workflowid=" + flowCode);
|
|
|
|
|
workflowList.add(workflowMap);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|