diff --git a/src/main/java/neatlogic/module/process/api/processtask/manualintervention/UpdateProcessTaskConfigApi.java b/src/main/java/neatlogic/module/process/api/processtask/manualintervention/UpdateProcessTaskConfigApi.java index 073f7e1cce59a97a6e220f21731bdc57e01cf345..d9ce53a02864abbc375accb0a0d7113a48d1034a 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/manualintervention/UpdateProcessTaskConfigApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/manualintervention/UpdateProcessTaskConfigApi.java @@ -141,6 +141,55 @@ public class UpdateProcessTaskConfigApi extends PrivateApiComponentBase { } } } + JSONArray connectionList = process.getJSONArray("connectionList"); + if (CollectionUtils.isNotEmpty(connectionList)) { + List processTaskStepRelList = new ArrayList<>(); + List oldProcessTaskStepRelList = processTaskMapper.getProcessTaskStepRelByProcessTaskId(processTaskId); + for (int i = 0; i < connectionList.size(); i++) { + JSONObject connectionObj = connectionList.getJSONObject(i); + if (MapUtils.isNotEmpty(connectionObj)) { + String fromStepUuid = connectionObj.getString("fromStepUuid"); + String toStepUuid = connectionObj.getString("toStepUuid"); + String name = connectionObj.getString("name"); + String type = connectionObj.getString("type"); + String uuid = connectionObj.getString("uuid"); + String conditionConfig = connectionObj.getString("conditionConfig"); + ProcessTaskStepVo fromProcessTaskStepVo = processTaskStepMap.get(fromStepUuid); + if (fromProcessTaskStepVo == null) { + continue; + } + ProcessTaskStepVo toProcessTaskStepVo = processTaskStepMap.get(toStepUuid); + if (toProcessTaskStepVo == null) { + continue; + } + ProcessTaskStepRelVo processTaskStepRelVo = new ProcessTaskStepRelVo(); + processTaskStepRelVo.setProcessTaskId(processTaskId); + processTaskStepRelVo.setFromProcessStepUuid(fromStepUuid); + processTaskStepRelVo.setToProcessStepUuid(toStepUuid); + processTaskStepRelVo.setFromProcessTaskStepId(fromProcessTaskStepVo.getId()); + processTaskStepRelVo.setToProcessTaskStepId(toProcessTaskStepVo.getId()); + processTaskStepRelVo.setCondition(conditionConfig); + processTaskStepRelVo.setProcessStepRelUuid(uuid); + processTaskStepRelVo.setName(name); + processTaskStepRelVo.setType(type); + processTaskStepRelVo.setIsHit(0); + for (ProcessTaskStepRelVo oldProcessTaskStepRelVo : oldProcessTaskStepRelList) { + if (Objects.equals(oldProcessTaskStepRelVo.getFromProcessStepUuid(), processTaskStepRelVo.getFromProcessStepUuid()) + && Objects.equals(oldProcessTaskStepRelVo.getToProcessStepUuid(), processTaskStepRelVo.getToProcessStepUuid()) + && Objects.equals(oldProcessTaskStepRelVo.getFromProcessTaskStepId(), processTaskStepRelVo.getFromProcessTaskStepId()) + && Objects.equals(oldProcessTaskStepRelVo.getToProcessTaskStepId(), processTaskStepRelVo.getToProcessTaskStepId()) + ) { + processTaskStepRelVo.setIsHit(oldProcessTaskStepRelVo.getIsHit()); + } + } + processTaskStepRelList.add(processTaskStepRelVo); + } + } + if (CollectionUtils.isNotEmpty(processTaskStepRelList)) { + processTaskMapper.deleteProcessTaskStepRelByProcessTaskId(processTaskId); + processTaskMapper.insertProcessTaskStepRelList(processTaskStepRelList); + } + } return null; } diff --git a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.java b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.java index 3c6600499e39d360f34896a51fb2485ec1778981..0caad2de05cff528e29d5559f572d3b90bba1e3b 100644 --- a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.java +++ b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.java @@ -600,4 +600,6 @@ public interface ProcessTaskMapper extends IProcessTaskCrossoverMapper { int deleteProcessTaskFormContentByHash(String hash); int deleteProcessTaskStepWorkerPolicyByProcessTaskStepId(Long processTaskStepId); + + int deleteProcessTaskStepRelByProcessTaskId(Long processTaskId); } diff --git a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.xml b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.xml index d0d25eea22a71ee9e742c5ae66c516f75e278a37..1d577ad796ec4eba400eac9154f6f0a34b1c11a7 100644 --- a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.xml +++ b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.xml @@ -4170,4 +4170,10 @@ FROM `processtask_step_worker_policy` WHERE `processtask_step_id` = #{value} + + + DELETE + FROM `processtask_step_rel` + WHERE `processtask_id` = #{value} +