diff --git a/src/weaver/interfaces/dito/job/WorkflowSyncCornJob.java b/src/weaver/interfaces/dito/job/WorkflowSyncCornJob.java index 11d6a990..7ce4c592 100644 --- a/src/weaver/interfaces/dito/job/WorkflowSyncCornJob.java +++ b/src/weaver/interfaces/dito/job/WorkflowSyncCornJob.java @@ -32,15 +32,18 @@ public class WorkflowSyncCornJob extends BaseCronJob { String workflowSyncFormModeId = PropBean.getUfPropValue("workflowSyncFormModeId"); RecordSet rs = new RecordSet(); //建模表有效流程id - String modelWorkflowSql = "SELECT workflowselect,workflowname FROM uf_sync_workflow"; + String modelWorkflowSql = "SELECT DISTINCT workflowselect,workflowname,u.cataCodeName FROM uf_sync_workflow w left join uf_syncCataCode u on w.workflowselect=u.flowCode"; rs.execute(modelWorkflowSql); HashSet modeWorkflowSet = new HashSet<>(); HashMap modeWorkflowInfo = new HashMap<>(); + HashMap modeCataCode = new HashMap<>(); while (rs.next()) { String modeWorkFlowId = rs.getString("workflowselect"); String modeWorkFlowName = rs.getString("workflowname"); + String cataCodeName = Util.null2String(rs.getString("cataCodeName")); modeWorkflowSet.add(modeWorkFlowId); modeWorkflowInfo.put(modeWorkFlowId, modeWorkFlowName); + modeCataCode.put(modeWorkFlowId, cataCodeName); } //系统有效流程id @@ -59,17 +62,17 @@ public class WorkflowSyncCornJob extends BaseCronJob { } //控制删除所有流程 if ("yes".equals(isDeleteAll)) { - syncWorkflow(ACTION_TYPE_DELETE, workflowSyncFormModeId, workflowSet, modeWorkflowSet, workflowInfo, baseCataCode); + syncWorkflow(ACTION_TYPE_DELETE, workflowSyncFormModeId, workflowSet, modeWorkflowSet, workflowInfo, baseCataCode, modeCataCode); } //系统有效流程新增或修改,无法判断流程更改了什么,新增后再更新 - syncWorkflow(ACTION_TYPE_ADD, workflowSyncFormModeId, workflowSet, modeWorkflowSet, workflowInfo,baseCataCode); - syncWorkflow(ACTION_TYPE_UPDATE, workflowSyncFormModeId, workflowSet, modeWorkflowSet, workflowInfo, baseCataCode); + syncWorkflow(ACTION_TYPE_ADD, workflowSyncFormModeId, workflowSet, modeWorkflowSet, workflowInfo,baseCataCode, modeCataCode); + syncWorkflow(ACTION_TYPE_UPDATE, workflowSyncFormModeId, workflowSet, modeWorkflowSet, workflowInfo, baseCataCode, modeCataCode); //建模表的差集需要删除 Set deleteSet = new HashSet<>(modeWorkflowSet); deleteSet.removeAll(workflowSet); if (deleteSet.size() != 0) { - syncWorkflow(ACTION_TYPE_DELETE, workflowSyncFormModeId, deleteSet, modeWorkflowSet, modeWorkflowInfo, baseCataCode); + syncWorkflow(ACTION_TYPE_DELETE, workflowSyncFormModeId, deleteSet, modeWorkflowSet, modeWorkflowInfo, baseCataCode,modeCataCode); } } catch (Exception e) { logger.info("WorkflowSyncModeCornJob:" + e.getMessage()); @@ -106,8 +109,9 @@ public class WorkflowSyncCornJob extends BaseCronJob { * @param modeWorkflowSet * @param workflowInfo 流程信息 * @param baseCataCode + * @param modeCataCode */ - private void syncWorkflow(String actionType, String workflowSyncFormModeId, Set updateOrAddSet, HashSet modeWorkflowSet, HashMap workflowInfo, HashMap baseCataCode) { + private void syncWorkflow(String actionType, String workflowSyncFormModeId, Set updateOrAddSet, HashSet modeWorkflowSet, HashMap workflowInfo, HashMap baseCataCode, HashMap modeCataCode) { String center = PropBean.getUfPropValue("newWorkflowCenter"); String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl"); String synchronizeFlowUrl = PropBean.getUfPropValue("synchronizeFlowUrl"); @@ -118,6 +122,9 @@ public class WorkflowSyncCornJob extends BaseCronJob { List deleteList = new ArrayList<>(); for (String workflowId : updateOrAddSet) { String cataCode = baseCataCode.get(workflowId); + if (actionType.equals(ACTION_TYPE_DELETE)) { + cataCode = modeCataCode.get(workflowId); + } if (StringUtils.isEmpty(cataCode)) { continue; }