diff --git a/src/com/engine/ditoSsologin/constant/DitoConstant.java b/src/com/engine/ditoSsologin/constant/DitoConstant.java index 00db78c5..f05fca6d 100644 --- a/src/com/engine/ditoSsologin/constant/DitoConstant.java +++ b/src/com/engine/ditoSsologin/constant/DitoConstant.java @@ -30,9 +30,12 @@ public class DitoConstant { public static final String EFFECTIVE_NO = "1"; /** * 0 -添加流程1 -修改流程名称(不能修改流程代码)2 -删除流程 + * 0-添加权限 1-删除权限 */ public static final String ACTION_TYPE_ADD = "0"; public static final String ACTION_TYPE_DELETE = "2"; + public static final String ACTION_TYPE_ADD_USER= "0"; + public static final String ACTION_TYPE_DELETE_USER = "1"; /** * 同步作用:0流程推送--有其他用途可追加 */ diff --git a/src/weaver/interfaces/job/WorkflowSyncCronJob.java b/src/weaver/interfaces/job/WorkflowSyncCronJob.java index e07ec118..c126f592 100644 --- a/src/weaver/interfaces/job/WorkflowSyncCronJob.java +++ b/src/weaver/interfaces/job/WorkflowSyncCronJob.java @@ -85,6 +85,7 @@ public class WorkflowSyncCronJob extends BaseCronJob { */ private void syncWorkflowByCondition(BaseBean bb, String synchronizeFlowUrl, String synchronizeUserUrl, String center, String cataCode, String workflowAuthTable, String accountName, String password, String timeCondition) { RecordSet recordSet = new RecordSet(); + RecordSet recordSet2 = new RecordSet(); ArrayList> addWorkflowList = new ArrayList<>(); ArrayList> delWorkflowList = new ArrayList<>(); ArrayList> addUserList = new ArrayList<>(); @@ -101,16 +102,19 @@ public class WorkflowSyncCronJob extends BaseCronJob { String effective = recordSet.getString("effective"); String flowCode = recordSet.getString("flowCode"); String flowName = recordSet.getString("flowName"); + if (EFFECTIVE_YES.equals(effective)) { //拼接有效流程请求参数 concatWorkflowCondition(center, cataCode, flowCode, flowName, ACTION_TYPE_ADD, addWorkflowList); //有效流程关联的人员参数拼接 - getUserConditionByWorkflow(center, cataCode, flowCode, flowName, ACTION_TYPE_ADD, addUserList, timeCondition); + getUserConditionByWorkflow(center, cataCode, flowCode, flowName, ACTION_TYPE_ADD_USER, addUserList, timeCondition); } else if (EFFECTIVE_NO.equals(effective)) { - //拼接无效流程请求参数 - concatWorkflowCondition(center, cataCode, flowCode, flowName, ACTION_TYPE_DELETE, delWorkflowList); + //拼接无效流程请求参数,如果有流程还有效则不删除 + if (!workflowHasEffective(workflowAuthTable, recordSet2, flowCode)) { + concatWorkflowCondition(center, cataCode, flowCode, flowName, ACTION_TYPE_DELETE, delWorkflowList); + } //无效流程关联的人员参数拼接 - getUserConditionByWorkflow(center, cataCode, flowCode, flowName, ACTION_TYPE_DELETE, delUserList, timeCondition); + getUserConditionByWorkflow(center, cataCode, flowCode, flowName, ACTION_TYPE_DELETE_USER, delUserList, timeCondition); } } HashMap headers = new HashMap<>(); @@ -144,6 +148,19 @@ public class WorkflowSyncCronJob extends BaseCronJob { } } + /** + * 查询还在使用中的流程 + * @param workflowAuthTable + * @param recordSet2 + * @param flowCode + * @return + */ + private boolean workflowHasEffective(String workflowAuthTable, RecordSet recordSet2, String flowCode) { + String querySql = "SELECT top 1 id FROM " + workflowAuthTable + " WHERE workflowselect=? AND effective=?"; + recordSet2.executeQuery(querySql, flowCode, EFFECTIVE_YES); + return recordSet2.next(); + } + /** * 组装流程同步API请求参数 *