diff --git a/src/main/java/neatlogic/framework/process/crossover/IProcessCrossoverMapper.java b/src/main/java/neatlogic/framework/process/crossover/IProcessCrossoverMapper.java index 14f985037704ebe4edee0d0bcd8ffe4e123fe4e9..32a6735421db5dfbfdbd3404612b18d7f5b010f5 100644 --- a/src/main/java/neatlogic/framework/process/crossover/IProcessCrossoverMapper.java +++ b/src/main/java/neatlogic/framework/process/crossover/IProcessCrossoverMapper.java @@ -84,4 +84,6 @@ public interface IProcessCrossoverMapper extends ICrossoverService { List getProcessStepTagIdListByProcessStepUuid(String processStepUuid); + List getProcessStepTagListByProcessUuid(String processUuid); + } diff --git a/src/main/java/neatlogic/framework/process/crossover/IProcessTaskCrossoverMapper.java b/src/main/java/neatlogic/framework/process/crossover/IProcessTaskCrossoverMapper.java index 5d5ad52a374c3ace4b3f18a5d38cc0c8849e31a4..00e6c228b49c852c1d14100d0ddde51bca40d12e 100644 --- a/src/main/java/neatlogic/framework/process/crossover/IProcessTaskCrossoverMapper.java +++ b/src/main/java/neatlogic/framework/process/crossover/IProcessTaskCrossoverMapper.java @@ -122,14 +122,20 @@ public interface IProcessTaskCrossoverMapper extends ICrossoverService { int insertProcessTaskStep(ProcessTaskStepVo processTaskStepVo); + int insertProcessTaskStepList(List processTaskStepList); + int insertProcessTaskStepUser(ProcessTaskStepUserVo processTaskStepUserVo); int insertProcessTaskStepMinorUser(ProcessTaskStepUserVo processTaskStepUserVo); int insertProcessTaskStepWorkerPolicy(ProcessTaskStepWorkerPolicyVo processTaskStepWorkerPolicyVo); + int insertProcessTaskStepWorkerPolicyList(List processTaskStepWorkerPolicyList); + int insertProcessTaskStepRel(ProcessTaskStepRelVo processTaskStepRelVo); + int insertProcessTaskStepRelList(List processTaskStepRelList); + int insertIgnoreProcessTaskStepWorker(ProcessTaskStepWorkerVo processTaskStepWorkerVo); int insertIgnoreProcessTaskStepUser(ProcessTaskStepUserVo processTaskStepUserVo); @@ -140,7 +146,7 @@ public interface IProcessTaskCrossoverMapper extends ICrossoverService { int insertIgnoreProcessTaskStepConfig(ProcessTaskStepConfigVo processTaskStepConfigVo); - int insertProcessTaskStepNotifyPolicy(ProcessTaskStepNotifyPolicyVo processTaskStepNotifyPolicyVo); + int insertIgnoreProcessTaskStepConfigList(List processTaskStepConfigList); int insertProcessTaskTransferReport(ProcessTaskTransferReportVo processTaskTransferReportVo); @@ -154,6 +160,8 @@ public interface IProcessTaskCrossoverMapper extends ICrossoverService { int insertProcessTaskStepTag(ProcessTaskStepTagVo processTaskStepTagVo); + int insertProcessTaskStepTagList(List processTaskStepTagList); + int insertProcessTaskStepReapprovalRestoreBackup(ProcessTaskStepReapprovalRestoreBackupVo processTaskStepReapprovalRestoreBackupVo); void insertProcessTaskTimeCost(ProcessTaskTimeCostVo processTaskTimeCostVo); diff --git a/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepHandlerBase.java b/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepHandlerBase.java index 9d2fe1d134dc6fa1ad1a574c2bf68841a3ffaf93..445a8dcc4ce9a9751f0b9db415bf7b9acb48e9e5 100644 --- a/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepHandlerBase.java +++ b/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepHandlerBase.java @@ -36,7 +36,6 @@ import neatlogic.framework.form.dto.FormVersionVo; import neatlogic.framework.fulltextindex.core.FullTextIndexHandlerFactory; import neatlogic.framework.fulltextindex.core.IFullTextIndexHandler; import neatlogic.framework.notify.dao.mapper.NotifyMapper; -import neatlogic.framework.notify.dto.NotifyPolicyVo; import neatlogic.framework.process.constvalue.*; import neatlogic.framework.process.crossover.*; import neatlogic.framework.process.dto.*; @@ -1835,7 +1834,12 @@ public abstract class ProcessStepHandlerBase implements IProcessStepHandler { processTaskCrossoverMapper.insertProcessTaskScoreTemplate(processTaskScoreTemplateVo); } Map stepIdMap = new HashMap<>(); + List processTaskStepList = new ArrayList<>(); + List processTaskStepConfigList = new ArrayList<>(); + List processTaskStepWorkerPolicyList = new ArrayList<>(); + List processTaskStepTagList = new ArrayList<>(); /* 写入所有步骤信息 **/ + List processStepTagList = processCrossoverMapper.getProcessStepTagListByProcessUuid(currentProcessTaskStepVo.getProcessUuid()); List processStepList = processCrossoverMapper.getProcessStepDetailByProcessUuid(currentProcessTaskStepVo.getProcessUuid()); for (ProcessStepVo stepVo : processStepList) { ProcessTaskStepVo ptStepVo = new ProcessTaskStepVo(stepVo); @@ -1846,27 +1850,21 @@ public abstract class ProcessStepHandlerBase implements IProcessStepHandler { /* 对步骤配置进行散列处理 **/ String hash = DigestUtils.md5DigestAsHex(stepConfig.getBytes()); ptStepVo.setConfigHash(hash); - processTaskCrossoverMapper.insertIgnoreProcessTaskStepConfig(new ProcessTaskStepConfigVo(hash, stepConfig)); +// processTaskCrossoverMapper.insertIgnoreProcessTaskStepConfig(new ProcessTaskStepConfigVo(hash, stepConfig)); + processTaskStepConfigList.add(new ProcessTaskStepConfigVo(hash, stepConfig)); } - processTaskCrossoverMapper.insertProcessTaskStep(ptStepVo); +// processTaskCrossoverMapper.insertProcessTaskStep(ptStepVo); + processTaskStepList.add(ptStepVo); stepIdMap.put(ptStepVo.getProcessStepUuid(), ptStepVo.getId()); - /* 写入步骤表单属性 **/ -// if (CollectionUtils.isNotEmpty(ptStepVo.getFormAttributeList())) { -// for (ProcessTaskStepFormAttributeVo processTaskStepFormAttributeVo : ptStepVo.getFormAttributeList()) { -// processTaskStepFormAttributeVo.setProcessTaskId(processTaskVo.getId()); -// processTaskStepFormAttributeVo.setProcessTaskStepId(ptStepVo.getId()); -// processTaskMapper.insertProcessTaskStepFormAttribute(processTaskStepFormAttributeVo); -// } -// } - /* 写入用户分配策略信息 **/ if (CollectionUtils.isNotEmpty(ptStepVo.getWorkerPolicyList())) { for (ProcessTaskStepWorkerPolicyVo policyVo : ptStepVo.getWorkerPolicyList()) { policyVo.setProcessTaskId(processTaskVo.getId()); policyVo.setProcessTaskStepId(ptStepVo.getId()); - processTaskCrossoverMapper.insertProcessTaskStepWorkerPolicy(policyVo); +// processTaskCrossoverMapper.insertProcessTaskStepWorkerPolicy(policyVo); + processTaskStepWorkerPolicyList.add(policyVo); } } @@ -1875,34 +1873,53 @@ public abstract class ProcessStepHandlerBase implements IProcessStepHandler { currentProcessTaskStepVo.setId(ptStepVo.getId()); } - Long notifyPolicyId = processCrossoverMapper.getNotifyPolicyIdByProcessStepUuid(ptStepVo.getProcessStepUuid()); - if (notifyPolicyId != null) { - NotifyPolicyVo notifyPolicyVo = notifyMapper.getNotifyPolicyById(notifyPolicyId); - if (notifyPolicyVo != null) { - ProcessTaskStepNotifyPolicyVo processTaskStepNotifyPolicyVo = new ProcessTaskStepNotifyPolicyVo(); - processTaskStepNotifyPolicyVo.setProcessTaskStepId(ptStepVo.getId()); - processTaskStepNotifyPolicyVo.setPolicyId(notifyPolicyVo.getId()); - processTaskStepNotifyPolicyVo.setPolicyName(notifyPolicyVo.getName()); - processTaskStepNotifyPolicyVo.setPolicyHandler(notifyPolicyVo.getHandler()); - processTaskStepNotifyPolicyVo.setPolicyConfig(notifyPolicyVo.getConfigStr()); -// processTaskMapper.insertIgnoreProcessTaskStepNotifyPolicyConfig(processTaskStepNotifyPolicyVo); - processTaskCrossoverMapper.insertProcessTaskStepNotifyPolicy(processTaskStepNotifyPolicyVo); +// Long notifyPolicyId = processCrossoverMapper.getNotifyPolicyIdByProcessStepUuid(ptStepVo.getProcessStepUuid()); +// if (notifyPolicyId != null) { +// NotifyPolicyVo notifyPolicyVo = notifyMapper.getNotifyPolicyById(notifyPolicyId); +// if (notifyPolicyVo != null) { +// ProcessTaskStepNotifyPolicyVo processTaskStepNotifyPolicyVo = new ProcessTaskStepNotifyPolicyVo(); +// processTaskStepNotifyPolicyVo.setProcessTaskStepId(ptStepVo.getId()); +// processTaskStepNotifyPolicyVo.setPolicyId(notifyPolicyVo.getId()); +// processTaskStepNotifyPolicyVo.setPolicyName(notifyPolicyVo.getName()); +// processTaskStepNotifyPolicyVo.setPolicyHandler(notifyPolicyVo.getHandler()); +// processTaskStepNotifyPolicyVo.setPolicyConfig(notifyPolicyVo.getConfigStr()); +// processTaskCrossoverMapper.insertProcessTaskStepNotifyPolicy(processTaskStepNotifyPolicyVo); +// processTaskStepNotifyPolicyList.add(processTaskStepNotifyPolicyVo); +// } +// } + +// List tagIdList = processCrossoverMapper.getProcessStepTagIdListByProcessStepUuid(stepVo.getUuid()); + List tagIdList = new ArrayList<>(); + for (ProcessStepTagVo processStepTagVo : processStepTagList) { + if (Objects.equals(processStepTagVo.getProcessStepUuid(), stepVo.getUuid())) { + tagIdList.add(processStepTagVo.getTagId()); } } - - List tagIdList = processCrossoverMapper.getProcessStepTagIdListByProcessStepUuid(stepVo.getUuid()); if (CollectionUtils.isNotEmpty(tagIdList)) { ProcessTaskStepTagVo processTaskStepTagVo = new ProcessTaskStepTagVo(); processTaskStepTagVo.setProcessTaskId(processTaskVo.getId()); processTaskStepTagVo.setProcessTaskStepId(ptStepVo.getId()); for (Long tagId : tagIdList) { processTaskStepTagVo.setTagId(tagId); - processTaskCrossoverMapper.insertProcessTaskStepTag(processTaskStepTagVo); +// processTaskCrossoverMapper.insertProcessTaskStepTag(processTaskStepTagVo); + processTaskStepTagList.add(processTaskStepTagVo); } } } - + if (CollectionUtils.isNotEmpty(processTaskStepList)) { + processTaskCrossoverMapper.insertProcessTaskStepList(processTaskStepList); + } + if (CollectionUtils.isNotEmpty(processTaskStepConfigList)) { + processTaskCrossoverMapper.insertIgnoreProcessTaskStepConfigList(processTaskStepConfigList); + } + if (CollectionUtils.isNotEmpty(processTaskStepWorkerPolicyList)) { + processTaskCrossoverMapper.insertProcessTaskStepWorkerPolicyList(processTaskStepWorkerPolicyList); + } + if (CollectionUtils.isNotEmpty(processTaskStepTagList)) { + processTaskCrossoverMapper.insertProcessTaskStepTagList(processTaskStepTagList); + } /* 写入关系信息 **/ + List processTaskStepRelList = new ArrayList<>(); List processStepRelList = processCrossoverMapper.getProcessStepRelByProcessUuid(currentProcessTaskStepVo.getProcessUuid()); for (ProcessStepRelVo relVo : processStepRelList) { ProcessTaskStepRelVo processTaskStepRelVo = new ProcessTaskStepRelVo(relVo); @@ -1911,10 +1928,13 @@ public abstract class ProcessStepHandlerBase implements IProcessStepHandler { processTaskStepRelVo.setToProcessTaskStepId(stepIdMap.get(processTaskStepRelVo.getToProcessStepUuid())); /* 同时找到from step id 和to step id 时才写入,其他数据舍弃 **/ if (processTaskStepRelVo.getFromProcessTaskStepId() != null && processTaskStepRelVo.getToProcessTaskStepId() != null) { - processTaskCrossoverMapper.insertProcessTaskStepRel(processTaskStepRelVo); +// processTaskCrossoverMapper.insertProcessTaskStepRel(processTaskStepRelVo); + processTaskStepRelList.add(processTaskStepRelVo); } } - + if (CollectionUtils.isNotEmpty(processTaskStepRelList)) { + processTaskCrossoverMapper.insertProcessTaskStepRelList(processTaskStepRelList); + } IProcessTaskSlaCrossoverMapper processTaskSlaCrossoverMapper = CrossoverServiceFactory.getApi(IProcessTaskSlaCrossoverMapper.class); /* 写入sla信息 **/ List processSlaList = processCrossoverMapper.getProcessSlaByProcessUuid(currentProcessTaskStepVo.getProcessUuid());