From 3349d0d93381d4bdec10ba39d4f321fe799fb7cd Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Fri, 24 May 2024 18:40:42 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20IT=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?-=E6=AD=A5=E9=AA=A4=E6=95=B0=E9=87=8F=E5=A4=9A=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E6=B5=81=E8=BD=AC=E6=85=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1162398289854464]IT服务-步骤数量多时,流转慢 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1162398289854464 --- .../process/aop/MethodTimingAspect.java | 80 ++++++++++ .../dao/mapper/process/ProcessMapper.java | 2 + .../dao/mapper/process/ProcessMapper.xml | 9 ++ .../mapper/processtask/ProcessTaskMapper.java | 21 ++- .../mapper/processtask/ProcessTaskMapper.xml | 151 +++++++++++++----- .../service/ProcessStepHandlerUtil.java | 20 ++- .../ProcessTaskStepTaskServiceImpl.java | 4 +- 7 files changed, 237 insertions(+), 50 deletions(-) create mode 100644 src/main/java/neatlogic/module/process/aop/MethodTimingAspect.java diff --git a/src/main/java/neatlogic/module/process/aop/MethodTimingAspect.java b/src/main/java/neatlogic/module/process/aop/MethodTimingAspect.java new file mode 100644 index 000000000..d917b7dd7 --- /dev/null +++ b/src/main/java/neatlogic/module/process/aop/MethodTimingAspect.java @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2024 深圳极向量科技有限公司 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.module.process.aop; + +import com.alibaba.fastjson.JSON; +import neatlogic.framework.util.UuidUtil; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import java.time.Duration; +import java.time.Instant; +import java.util.Arrays; + +@Aspect +@Component +public class MethodTimingAspect { + + private final static Logger logger = LoggerFactory.getLogger(MethodTimingAspect.class); + + @Around("execution(* neatlogic.module.process.api..*(..))") + public Object logExecutionTime0(ProceedingJoinPoint joinPoint) throws Throwable { + return log(joinPoint); + } + @Around("execution(* neatlogic.module.process.service..*(..))") + public Object logExecutionTime1(ProceedingJoinPoint joinPoint) throws Throwable { + return log(joinPoint); + } + @Around("execution(* neatlogic.module.process.dao.mapper..*(..))") + public Object logExecutionTime2(ProceedingJoinPoint joinPoint) throws Throwable { + return log(joinPoint); + } + @Around("execution(* neatlogic.module.process.stephandler..*(..))") + public Object logExecutionTime3(ProceedingJoinPoint joinPoint) throws Throwable { + return log(joinPoint); + } + @Around("execution(* neatlogic.framework.process.stephandler..*(..))") + public Object logExecutionTime4(ProceedingJoinPoint joinPoint) throws Throwable { + return log(joinPoint); + } + @Around("execution(* neatlogic.framework.process.operationauth..*(..))") + public Object logExecutionTime5(ProceedingJoinPoint joinPoint) throws Throwable { + return log(joinPoint); + } + @Around("execution(* neatlogic.module.process.operationauth..*(..))") + public Object logExecutionTime6(ProceedingJoinPoint joinPoint) throws Throwable { + return log(joinPoint); + } + + private Object log(ProceedingJoinPoint joinPoint) throws Throwable { + String uuid = UuidUtil.randomUuid(); + Instant start = Instant.now(); + Object[] args = joinPoint.getArgs(); + logger.error(" " + uuid + " " + joinPoint.getSignature().toShortString() + " 参数: " + JSON.toJSONString(Arrays.asList(args))); + Object result = joinPoint.proceed(); // 继续执行目标方法 + Instant finish = Instant.now(); + long timeElapsed = Duration.between(start, finish).toMillis(); + String format = (timeElapsed < 100 ? " " : "* ") + "% 5d ms %s %s -> %s"; + logger.error(String.format(format, timeElapsed, uuid, joinPoint.getSignature().toShortString(), joinPoint.getSignature().toLongString())); + return result; + } +} diff --git a/src/main/java/neatlogic/module/process/dao/mapper/process/ProcessMapper.java b/src/main/java/neatlogic/module/process/dao/mapper/process/ProcessMapper.java index 2840bcf12..f050fa3f3 100644 --- a/src/main/java/neatlogic/module/process/dao/mapper/process/ProcessMapper.java +++ b/src/main/java/neatlogic/module/process/dao/mapper/process/ProcessMapper.java @@ -94,6 +94,8 @@ public interface ProcessMapper extends IProcessCrossoverMapper { List getProcessStepTagIdListByProcessStepUuid(String processStepUuid); + List getProcessStepTagListByProcessUuid(String processUuid); + int insertProcess(ProcessVo processVo); int insertProcessStep(ProcessStepVo processStepVo); diff --git a/src/main/java/neatlogic/module/process/dao/mapper/process/ProcessMapper.xml b/src/main/java/neatlogic/module/process/dao/mapper/process/ProcessMapper.xml index eeb5d14d5..8e680c0b1 100644 --- a/src/main/java/neatlogic/module/process/dao/mapper/process/ProcessMapper.xml +++ b/src/main/java/neatlogic/module/process/dao/mapper/process/ProcessMapper.xml @@ -441,6 +441,15 @@ SELECT `tag_id` FROM `process_step_tag` WHERE `process_step_uuid` = #{value} + + INSERT INTO `process_sla` ( `uuid`, 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 70fa4b7e7..e30aff40b 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 @@ -191,8 +191,6 @@ public interface ProcessTaskMapper extends IProcessTaskCrossoverMapper { List getProcessTaskStepListByIdList(List processTaskStepIdList); -// ProcessTaskStepNotifyPolicyVo getProcessTaskStepNotifyPolicy(ProcessTaskStepNotifyPolicyVo processTaskStepNotifyPolicyVo); - Map getProcessTaskOldFormAndPropByTaskId(Long processTaskId); List> getWorkloadByTeamUuid(String teamUuid); @@ -385,6 +383,8 @@ public interface ProcessTaskMapper extends IProcessTaskCrossoverMapper { int insertProcessTaskStep(ProcessTaskStepVo processTaskStepVo); + int insertProcessTaskStepList(List processTaskStepList); + int replaceProcessTaskStep(ProcessTaskStepVo processTaskStepVo); int insertProcessTaskStepUser(ProcessTaskStepUserVo processTaskStepUserVo); @@ -393,8 +393,12 @@ public interface ProcessTaskMapper extends IProcessTaskCrossoverMapper { int insertProcessTaskStepWorkerPolicy(ProcessTaskStepWorkerPolicyVo processTaskStepWorkerPolicyVo); + int insertProcessTaskStepWorkerPolicyList(List processTaskStepWorkerPolicyList); + int insertProcessTaskStepRel(ProcessTaskStepRelVo processTaskStepRelVo); + int insertProcessTaskStepRelList(List processTaskStepRelList); + int insertProcessTaskStepContent(ProcessTaskStepContentVo processTaskStepContentVo); int insertProcessTaskOperationContent(ProcessTaskOperationContentVo processTaskOperationContentVo); @@ -417,20 +421,23 @@ public interface ProcessTaskMapper extends IProcessTaskCrossoverMapper { int insertIgnoreProcessTaskStepConfig(ProcessTaskStepConfigVo processTaskStepConfigVo); -// int insertProcessTaskStepFormAttribute( -// ProcessTaskStepFormAttributeVo processTaskStepFormAttributeVo); + int insertIgnoreProcessTaskStepConfigList(List processTaskStepConfigList); int insertProcessTaskFormAttribute(ProcessTaskFormAttributeDataVo processTaskFromAttributeDataVo); + int insertProcessTaskFormAttributeList(List processTaskFromAttributeDataList); + int insertProcessTaskExtendFormAttribute(ProcessTaskFormAttributeDataVo processTaskFormAttributeDataVo); + int insertProcessTaskExtendFormAttributeList(List processTaskFormAttributeDataList); + int insertProcessTaskStepFile(ProcessTaskStepFileVo processTaskStepFileVo); int insertProcessTaskAssignWorker(ProcessTaskAssignWorkerVo processTaskAssignWorkerVo); -// int insertIgnoreProcessTaskStepNotifyPolicyConfig(ProcessTaskStepNotifyPolicyVo processTaskStepNotifyPolicyVo); +// int insertProcessTaskStepNotifyPolicy(ProcessTaskStepNotifyPolicyVo processTaskStepNotifyPolicyVo); - int insertProcessTaskStepNotifyPolicy(ProcessTaskStepNotifyPolicyVo processTaskStepNotifyPolicyVo); +// int insertProcessTaskStepNotifyPolicyList(List processTaskStepNotifyPolicyList); int insertProcessTaskTransferReport(ProcessTaskTransferReportVo processTaskTransferReportVo); @@ -455,6 +462,8 @@ public interface ProcessTaskMapper extends IProcessTaskCrossoverMapper { int insertProcessTaskStepTag(ProcessTaskStepTagVo processTaskStepTagVo); + int insertProcessTaskStepTagList(List processTaskStepTagList); + int replaceProcessTaskRepeatList(List processTaskRepeatList); int replaceProcessTaskRepeat(ProcessTaskRepeatVo processTaskRepeatVo); 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 dff853de9..c8af7dd74 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 @@ -1299,22 +1299,6 @@ - -