From d2829c0267dc39246081eab236430b94c9f18231 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Tue, 22 Jul 2025 18:43:32 +0800 Subject: [PATCH 1/5] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E6=85=A2=E6=8E=A5=E5=8F=A3=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1471132643852288]工单详情页慢接口优化 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1471132643852288 --- .../ISelectContentByHashCrossoverMapper.java | 3 +++ .../framework/process/dto/ProcessTaskFormVo.java | 5 ++++- .../process/dto/ProcessTaskStepConfigVo.java | 5 ++++- .../core/OperationAuthHandlerBase.java | 14 ++++++++++---- .../operationauth/core/ProcessAuthManager.java | 15 ++++++++++++++- 5 files changed, 35 insertions(+), 7 deletions(-) diff --git a/src/main/java/neatlogic/framework/process/crossover/ISelectContentByHashCrossoverMapper.java b/src/main/java/neatlogic/framework/process/crossover/ISelectContentByHashCrossoverMapper.java index 2a8b1591..30b71202 100644 --- a/src/main/java/neatlogic/framework/process/crossover/ISelectContentByHashCrossoverMapper.java +++ b/src/main/java/neatlogic/framework/process/crossover/ISelectContentByHashCrossoverMapper.java @@ -20,6 +20,7 @@ package neatlogic.framework.process.crossover; import neatlogic.framework.crossover.ICrossoverService; import neatlogic.framework.process.dto.ProcessTaskConfigVo; import neatlogic.framework.process.dto.ProcessTaskContentVo; +import neatlogic.framework.process.dto.ProcessTaskStepConfigVo; import java.util.List; @@ -27,6 +28,8 @@ public interface ISelectContentByHashCrossoverMapper extends ICrossoverService { String getProcessTaskStepConfigByHash(String hash); + List getProcessTaskStepConfigListByHashList(List hashList); + ProcessTaskContentVo getProcessTaskContentByHash(String hash); String getProcessTaskContentStringByHash(String hash); diff --git a/src/main/java/neatlogic/framework/process/dto/ProcessTaskFormVo.java b/src/main/java/neatlogic/framework/process/dto/ProcessTaskFormVo.java index f477d413..9ec6df63 100755 --- a/src/main/java/neatlogic/framework/process/dto/ProcessTaskFormVo.java +++ b/src/main/java/neatlogic/framework/process/dto/ProcessTaskFormVo.java @@ -3,7 +3,10 @@ package neatlogic.framework.process.dto; import org.apache.commons.lang3.StringUtils; import org.springframework.util.DigestUtils; -public class ProcessTaskFormVo { +import java.io.Serializable; + +public class ProcessTaskFormVo implements Serializable { + private static final long serialVersionUID = 1097967001105204846L; // @ESKey(type = ESKeyType.PKEY, name ="processTaskId") private Long processTaskId; private String formUuid; diff --git a/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepConfigVo.java b/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepConfigVo.java index 776a8dd4..011a187c 100755 --- a/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepConfigVo.java +++ b/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepConfigVo.java @@ -1,6 +1,9 @@ package neatlogic.framework.process.dto; -public class ProcessTaskStepConfigVo { +import java.io.Serializable; + +public class ProcessTaskStepConfigVo implements Serializable { + private static final long serialVersionUID = 1097967001105204845L; private String hash; private String config; diff --git a/src/main/java/neatlogic/framework/process/operationauth/core/OperationAuthHandlerBase.java b/src/main/java/neatlogic/framework/process/operationauth/core/OperationAuthHandlerBase.java index b59b7d1b..fbfc81e1 100644 --- a/src/main/java/neatlogic/framework/process/operationauth/core/OperationAuthHandlerBase.java +++ b/src/main/java/neatlogic/framework/process/operationauth/core/OperationAuthHandlerBase.java @@ -1,5 +1,6 @@ package neatlogic.framework.process.operationauth.core; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONPath; @@ -226,11 +227,16 @@ public abstract class OperationAuthHandlerBase implements IOperationAuthHandler protected boolean checkOperationAuthIsConfigured(ProcessTaskVo processTaskVo, ProcessTaskStepVo processTaskStepVo, IOperationType operationType, String userUuid) { JSONArray authorityList = null; - ISelectContentByHashCrossoverMapper selectContentByHashCrossoverMapper = CrossoverServiceFactory.getApi(ISelectContentByHashCrossoverMapper.class); - String stepConfig = selectContentByHashCrossoverMapper.getProcessTaskStepConfigByHash(processTaskStepVo.getConfigHash()); - Integer enableAuthority = (Integer) JSONPath.read(stepConfig, "enableAuthority"); + JSONObject stepConfigObj = processTaskStepVo.getConfig(); + if (stepConfigObj == null) { + ISelectContentByHashCrossoverMapper selectContentByHashCrossoverMapper = CrossoverServiceFactory.getApi(ISelectContentByHashCrossoverMapper.class); + String stepConfig = selectContentByHashCrossoverMapper.getProcessTaskStepConfigByHash(processTaskStepVo.getConfigHash()); + stepConfigObj = JSON.parseObject(stepConfig); + processTaskStepVo.setConfig(stepConfigObj); + } + Integer enableAuthority = stepConfigObj.getInteger("enableAuthority"); if (Objects.equals(enableAuthority, 1)) { - authorityList = (JSONArray) JSONPath.read(stepConfig, "authorityList"); + authorityList = stepConfigObj.getJSONArray("authorityList"); } else { String handler = processTaskStepVo.getHandler(); IProcessStepInternalHandler processStepUtilHandler = ProcessStepInternalHandlerFactory.getHandler(handler); diff --git a/src/main/java/neatlogic/framework/process/operationauth/core/ProcessAuthManager.java b/src/main/java/neatlogic/framework/process/operationauth/core/ProcessAuthManager.java index 8a382b5e..5b88afe4 100644 --- a/src/main/java/neatlogic/framework/process/operationauth/core/ProcessAuthManager.java +++ b/src/main/java/neatlogic/framework/process/operationauth/core/ProcessAuthManager.java @@ -1,5 +1,6 @@ package neatlogic.framework.process.operationauth.core; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import neatlogic.framework.asynchronization.threadlocal.UserContext; import neatlogic.framework.crossover.CrossoverServiceFactory; @@ -242,6 +243,15 @@ public class ProcessAuthManager { Map processTaskStepAgentMap = processTaskStepAgentList.stream().collect(Collectors.toMap(e -> e.getProcessTaskStepId(), e -> e)); List processTaskStepList = processTaskCrossoverMapper.getProcessTaskStepListByProcessTaskIdList(processTaskIdList); + ISelectContentByHashCrossoverMapper selectContentByHashCrossoverMapper = CrossoverServiceFactory.getApi(ISelectContentByHashCrossoverMapper.class); + Map hash2ConfigMap = new HashMap<>(); + Set configHashSet = processTaskStepList.stream().map(ProcessTaskStepVo::getConfigHash).filter(Objects::nonNull).collect(Collectors.toSet()); + if (CollectionUtils.isNotEmpty(configHashSet)) { + List configList = selectContentByHashCrossoverMapper.getProcessTaskStepConfigListByHashList(new ArrayList<>(configHashSet)); + for (ProcessTaskStepConfigVo processTaskStepConfigVo : configList) { + hash2ConfigMap.put(processTaskStepConfigVo.getHash(), processTaskStepConfigVo.getConfig()); + } + } Map> processTaskStepListMap = new HashMap<>(); for (ProcessTaskStepVo processTaskStepVo : processTaskStepList) { processTaskStepVo.setWorkerList( @@ -254,6 +264,10 @@ public class ProcessAuthManager { } processTaskStepListMap.computeIfAbsent(processTaskStepVo.getProcessTaskId(), k -> new ArrayList<>()) .add(processTaskStepVo); + String stepConfig = hash2ConfigMap.get(processTaskStepVo.getConfigHash()); + if (StringUtils.isNotBlank(stepConfig)) { + processTaskStepVo.setConfig(JSON.parseObject(stepConfig)); + } } List processTaskStepRelList = processTaskCrossoverMapper.getProcessTaskStepRelListByProcessTaskIdList(processTaskIdList); @@ -267,7 +281,6 @@ public class ProcessAuthManager { List processTaskList = processTaskCrossoverMapper.getProcessTaskListByIdList(processTaskIdList); Set hashSet = processTaskList.stream().map(ProcessTaskVo::getConfigHash).collect(Collectors.toSet()); // long startTime3 = System.currentTimeMillis(); - ISelectContentByHashCrossoverMapper selectContentByHashCrossoverMapper = CrossoverServiceFactory.getApi(ISelectContentByHashCrossoverMapper.class); List processTaskConfigList = selectContentByHashCrossoverMapper.getProcessTaskConfigListByHashList(new ArrayList<>(hashSet)); // logger.error("D:" + (System.currentTimeMillis() - startTime3)); Map processTaskConfigMap = processTaskConfigList.stream().collect(Collectors.toMap(e->e.getHash(), e -> e.getConfig())); -- Gitee From 1c563e59f9b53644814e63a8045eed935011e127 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Sat, 26 Jul 2025 17:02:10 +0800 Subject: [PATCH 2/5] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E6=85=A2=E6=8E=A5=E5=8F=A3=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1471132643852288]工单详情页慢接口优化 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1471132643852288 --- .../IProcessTaskStepDataCrossoverMapper.java | 5 +- .../dto/ProcessTaskStepContentTargetVo.java | 52 +++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 src/main/java/neatlogic/framework/process/dto/ProcessTaskStepContentTargetVo.java diff --git a/src/main/java/neatlogic/framework/process/crossover/IProcessTaskStepDataCrossoverMapper.java b/src/main/java/neatlogic/framework/process/crossover/IProcessTaskStepDataCrossoverMapper.java index 0a2c0a2a..403c0ef6 100644 --- a/src/main/java/neatlogic/framework/process/crossover/IProcessTaskStepDataCrossoverMapper.java +++ b/src/main/java/neatlogic/framework/process/crossover/IProcessTaskStepDataCrossoverMapper.java @@ -19,14 +19,17 @@ package neatlogic.framework.process.crossover; import neatlogic.framework.crossover.ICrossoverService; import neatlogic.framework.process.dto.ProcessTaskStepDataVo; +import org.apache.ibatis.annotations.Param; import java.util.List; public interface IProcessTaskStepDataCrossoverMapper extends ICrossoverService { - List getProcessTaskStepDataByProcessTaskIdAndStepId(Long processTaskId, Long stepId); + List getProcessTaskStepDataByProcessTaskIdAndStepId(@Param("processTaskId") Long processTaskId, @Param("processTaskStepId") Long stepId); ProcessTaskStepDataVo getProcessTaskStepData(ProcessTaskStepDataVo processTaskStepDataVo); + List searchProcessTaskStepData(ProcessTaskStepDataVo processTaskStepDataVo); + Long getProcessTaskStepDataId(ProcessTaskStepDataVo processTaskStepDataVo); int checkProcessTaskStepDataIdIsExists(Long id); diff --git a/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepContentTargetVo.java b/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepContentTargetVo.java new file mode 100644 index 00000000..467f3688 --- /dev/null +++ b/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepContentTargetVo.java @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 深圳极向量科技有限公司 All Rights Reserved. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package neatlogic.framework.process.dto; + +import java.io.Serializable; + +public class ProcessTaskStepContentTargetVo implements Serializable { + private static final long serialVersionUID = -3871232273093802237L; + + private Long contentId; + private String type; + private String uuid; + + public Long getContentId() { + return contentId; + } + + public void setContentId(Long contentId) { + this.contentId = contentId; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } +} -- Gitee From 953f8a2b8ad8ac6b37b05ce0b5f3be515ee9d5fe Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Sat, 26 Jul 2025 17:31:45 +0800 Subject: [PATCH 3/5] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E6=85=A2=E6=8E=A5=E5=8F=A3=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1471132643852288]工单详情页慢接口优化 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1471132643852288 --- .../process/operationauth/core/ProcessAuthManager.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/neatlogic/framework/process/operationauth/core/ProcessAuthManager.java b/src/main/java/neatlogic/framework/process/operationauth/core/ProcessAuthManager.java index 5b88afe4..8d34634e 100644 --- a/src/main/java/neatlogic/framework/process/operationauth/core/ProcessAuthManager.java +++ b/src/main/java/neatlogic/framework/process/operationauth/core/ProcessAuthManager.java @@ -267,6 +267,8 @@ public class ProcessAuthManager { String stepConfig = hash2ConfigMap.get(processTaskStepVo.getConfigHash()); if (StringUtils.isNotBlank(stepConfig)) { processTaskStepVo.setConfig(JSON.parseObject(stepConfig)); + } else { + processTaskStepVo.setConfig(new JSONObject()); } } List processTaskStepRelList = -- Gitee From 2dff595be8369047af645ab6af707fb3b8d8b127 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Mon, 28 Jul 2025 12:11:53 +0800 Subject: [PATCH 4/5] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E6=85=A2=E6=8E=A5=E5=8F=A3=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1471132643852288]工单详情页慢接口优化 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1471132643852288 --- .../neatlogic/framework/process/dto/ProcessTaskStepUserVo.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepUserVo.java b/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepUserVo.java index 307895eb..26e93d8c 100644 --- a/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepUserVo.java +++ b/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepUserVo.java @@ -1,7 +1,6 @@ package neatlogic.framework.process.dto; import neatlogic.framework.dto.UserVo; -import neatlogic.framework.process.constvalue.ProcessTaskStatus; import neatlogic.framework.process.constvalue.ProcessTaskStepUserStatus; import org.apache.commons.lang3.StringUtils; @@ -96,7 +95,7 @@ public class ProcessTaskStepUserVo { @Deprecated public UserVo getUserVo() { if (userVo == null && StringUtils.isNotBlank(userUuid)) { - userVo = new UserVo(userUuid); + userVo = new UserVo(userUuid, false); userVo.setUserName(userName); } return userVo; -- Gitee From b64c3d95ac41b4564fae1506070a08a52f4229ad Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Mon, 28 Jul 2025 18:10:33 +0800 Subject: [PATCH 5/5] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E6=85=A2=E6=8E=A5=E5=8F=A3=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1471132643852288]工单详情页慢接口优化 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1471132643852288 --- .../process/stephandler/core/ProcessTaskStepContext.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/neatlogic/framework/process/stephandler/core/ProcessTaskStepContext.java b/src/main/java/neatlogic/framework/process/stephandler/core/ProcessTaskStepContext.java index c3e501ef..27f35f95 100644 --- a/src/main/java/neatlogic/framework/process/stephandler/core/ProcessTaskStepContext.java +++ b/src/main/java/neatlogic/framework/process/stephandler/core/ProcessTaskStepContext.java @@ -101,8 +101,8 @@ public class ProcessTaskStepContext { * @return FormAttributeVo */ public FormAttributeVo getFormAttribute(String attributeUuid) { - IFormCrossoverService formCrossoverMapper = CrossoverServiceFactory.getApi(IFormCrossoverService.class); - return formCrossoverMapper.getFormAttributeByUuid(attributeUuid); + IFormCrossoverService formCrossoverService = CrossoverServiceFactory.getApi(IFormCrossoverService.class); + return formCrossoverService.getFormAttributeByUuid(attributeUuid); } /** -- Gitee