From ba2ab842aa75518132fdc3a81b77929cda510b13 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Fri, 29 Nov 2024 18:36:31 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E5=B7=A5=E5=8D=95-?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E6=8E=A5=E5=8F=A3=E2=80=9C=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E6=B5=81=E7=A8=8B=E5=9B=BE=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E2=80=9D=E6=9B=B4=E6=96=B0=E6=AD=A5=E9=AA=A4=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=EF=BC=8C=E6=B5=81=E7=A8=8B=E5=9B=BE=E6=9B=B4=E6=96=B0=EF=BC=8C?= =?UTF-8?q?=E4=BD=86=E6=98=AF=E6=AD=A5=E9=AA=A4=E6=97=A5=E5=BF=97=E6=9C=AA?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1300770912174080]工单-通过接口“更新工单流程图配置”更新步骤名称,流程图更新,但是步骤日志未更新 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1300770912174080 --- .../UpdateProcessTaskConfigApi.java | 60 +++++++++++-------- .../mapper/processtask/ProcessTaskMapper.java | 2 +- .../mapper/processtask/ProcessTaskMapper.xml | 3 +- 3 files changed, 37 insertions(+), 28 deletions(-) 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 03d254e9c..073f7e1cc 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 @@ -40,6 +40,7 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; @Service @@ -87,7 +88,7 @@ public class UpdateProcessTaskConfigApi extends PrivateApiComponentBase { processTaskMapper.insertIgnoreProcessTaskConfig(processTaskConfigVo); processTaskMapper.updateProcessTaskConfigHashById(processTaskId, configHash); List processTaskStepList = processTaskMapper.getProcessTaskStepListByProcessTaskId(processTaskId); - Map processStepUuid2IdMap = processTaskStepList.stream().collect(Collectors.toMap(ProcessTaskStepVo::getProcessStepUuid, ProcessTaskStepVo::getId)); + Map processTaskStepMap = processTaskStepList.stream().collect(Collectors.toMap(ProcessTaskStepVo::getProcessStepUuid, e -> e)); JSONObject config = JSONObject.parseObject(configStr); JSONObject process = config.getJSONObject("process"); JSONArray stepList = process.getJSONArray("stepList"); @@ -96,40 +97,47 @@ public class UpdateProcessTaskConfigApi extends PrivateApiComponentBase { JSONObject stepObj = stepList.getJSONObject(i); if (MapUtils.isNotEmpty(stepObj)) { String uuid = stepObj.getString("uuid"); - Long processTaskStepId = processStepUuid2IdMap.get(uuid); - if (processTaskStepId == null) { + ProcessTaskStepVo processTaskStepVo = processTaskStepMap.get(uuid); + if (processTaskStepVo == null) { continue; } + Long processTaskStepId = processTaskStepVo.getId(); + String name = stepObj.getString("name"); JSONObject stepConfigObj = stepObj.getJSONObject("stepConfig"); String stepConfig = stepConfigObj.toJSONString(); String stepConfigHash = DigestUtils.md5DigestAsHex(stepConfig.getBytes()); - processTaskMapper.insertIgnoreProcessTaskStepConfig(new ProcessTaskStepConfigVo(stepConfigHash, stepConfig)); - processTaskMapper.updateProcessTaskStepConfigHashByProcessTaskIdAndProcessStepUuid(processTaskId, uuid, stepConfigHash); - processTaskMapper.deleteProcessTaskStepWorkerPolicyByProcessTaskStepId(processTaskStepId); - JSONObject workerPolicyConfig = stepConfigObj.getJSONObject("workerPolicyConfig"); - if (MapUtils.isNotEmpty(workerPolicyConfig)) { - JSONArray policyList = workerPolicyConfig.getJSONArray("policyList"); - if (CollectionUtils.isNotEmpty(policyList)) { - List workerPolicyList = new ArrayList<>(); - for (int k = 0; k < policyList.size(); k++) { - JSONObject policyObj = policyList.getJSONObject(k); - if (!"1".equals(policyObj.getString("isChecked"))) { - continue; + if (Objects.equals(name, processTaskStepVo.getName()) && Objects.equals(stepConfigHash, processTaskStepVo.getConfigHash())) { + continue; + } + if (!Objects.equals(stepConfigHash, processTaskStepVo.getConfigHash())) { + processTaskMapper.insertIgnoreProcessTaskStepConfig(new ProcessTaskStepConfigVo(stepConfigHash, stepConfig)); + processTaskMapper.deleteProcessTaskStepWorkerPolicyByProcessTaskStepId(processTaskStepId); + JSONObject workerPolicyConfig = stepConfigObj.getJSONObject("workerPolicyConfig"); + if (MapUtils.isNotEmpty(workerPolicyConfig)) { + JSONArray policyList = workerPolicyConfig.getJSONArray("policyList"); + if (CollectionUtils.isNotEmpty(policyList)) { + List workerPolicyList = new ArrayList<>(); + for (int k = 0; k < policyList.size(); k++) { + JSONObject policyObj = policyList.getJSONObject(k); + if (!"1".equals(policyObj.getString("isChecked"))) { + continue; + } + ProcessTaskStepWorkerPolicyVo processStepWorkerPolicyVo = new ProcessTaskStepWorkerPolicyVo(); + processStepWorkerPolicyVo.setProcessTaskId(processTaskId); + processStepWorkerPolicyVo.setProcessTaskStepId(processTaskStepId); + processStepWorkerPolicyVo.setProcessStepUuid(uuid); + processStepWorkerPolicyVo.setPolicy(policyObj.getString("type")); + processStepWorkerPolicyVo.setSort(k + 1); + processStepWorkerPolicyVo.setConfig(policyObj.getString("config")); + workerPolicyList.add(processStepWorkerPolicyVo); + } + if (CollectionUtils.isNotEmpty(workerPolicyList)) { + processTaskMapper.insertProcessTaskStepWorkerPolicyList(workerPolicyList); } - ProcessTaskStepWorkerPolicyVo processStepWorkerPolicyVo = new ProcessTaskStepWorkerPolicyVo(); - processStepWorkerPolicyVo.setProcessTaskId(processTaskId); - processStepWorkerPolicyVo.setProcessTaskStepId(processTaskStepId); - processStepWorkerPolicyVo.setProcessStepUuid(uuid); - processStepWorkerPolicyVo.setPolicy(policyObj.getString("type")); - processStepWorkerPolicyVo.setSort(k + 1); - processStepWorkerPolicyVo.setConfig(policyObj.getString("config")); - workerPolicyList.add(processStepWorkerPolicyVo); - } - if (CollectionUtils.isNotEmpty(workerPolicyList)) { - processTaskMapper.insertProcessTaskStepWorkerPolicyList(workerPolicyList); } } } + processTaskMapper.updateProcessTaskStepNameAndConfigHashByProcessTaskIdAndProcessStepUuid(processTaskId, uuid, name, stepConfigHash); } } } 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 47ad55a30..3c6600499 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 @@ -530,7 +530,7 @@ public interface ProcessTaskMapper extends IProcessTaskCrossoverMapper { int updateProcessTaskConfigHashById(@Param("id") Long id, @Param("configHash") String configHash); - int updateProcessTaskStepConfigHashByProcessTaskIdAndProcessStepUuid(@Param("processTaskId") Long processTaskId, @Param("processStepUuid") String processStepUuid, @Param("configHash") String configHash); + int updateProcessTaskStepNameAndConfigHashByProcessTaskIdAndProcessStepUuid(@Param("processTaskId") Long processTaskId, @Param("processStepUuid") String processStepUuid, @Param("name") String name, @Param("configHash") String configHash); int deleteProcessTaskFormAttributeByProcessTaskId(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 a03d6774a..371b205ee 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 @@ -3900,9 +3900,10 @@ WHERE `id` = #{id} - + UPDATE `processtask_step` SET + `name` = #{name}, `config_hash` = #{configHash} WHERE `processtask_id` = #{processTaskId} AND `process_step_uuid` = #{processStepUuid} -- Gitee