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 0000000000000000000000000000000000000000..821cb6287fc095cbc2c7d2424b18685bd8abcec7
--- /dev/null
+++ b/src/main/java/neatlogic/module/process/aop/MethodTimingAspect.java
@@ -0,0 +1,84 @@
+/*
+ * 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.common.config.Config;
+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 {
+ if (!Config.ENABLE_METHOD_TIMING_ASPECT()) {
+ return joinPoint.proceed();
+ }
+ 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 2840bcf12238e9c559843950b498e404facdd48e..f050fa3f3e96dc3fe3d1a8d1ebee5bb48aa96ec2 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 eeb5d14d54895a32a41d9538e745508d483c7de2..8e680c0b18f24a5dc56c77af9518e36387e159b5 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 70fa4b7e79e5241ad0edd5e9f4b52d9a3456de9e..e30aff40bf24ea421e26e17e9fa75f1b0ef9809a 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
+
+ INSERT INTO `processtask_step_worker_policy` (`processtask_id`,
+ `processtask_step_id`,
+ `process_step_uuid`,
+ `policy`,
+ `sort`,
+ `config`)
+ VALUES
+
+ (#{item.processTaskId},
+ #{item.processTaskStepId},
+ #{item.processStepUuid},
+ #{item.policy},
+ #{item.sort},
+ #{item.config})
+
+
+
INSERT ignore INTO `processtask_formattribute` (`processtask_id`, `form_attribute_data_id`)
VALUES (#{processTaskId}, #{id})
+
+ INSERT ignore INTO `processtask_formattribute` (`processtask_id`, `form_attribute_data_id`)
+ VALUES
+
+ (#{item.processTaskId}, #{item.id})
+
+
+
INSERT ignore INTO `processtask_extend_formattribute` (`processtask_id`, `form_attribute_data_id`, `tag`)
VALUES (#{processTaskId}, #{id}, #{tag})
+
+ INSERT ignore INTO `processtask_extend_formattribute` (`processtask_id`, `form_attribute_data_id`, `tag`)
+ VALUES
+
+ (#{item.processTaskId}, #{item.id}, #{item.tag})
+
+
+
INSERT IGNORE INTO `processtask_converge` (`converge_id`,
`processtask_step_id`,
@@ -3103,6 +3124,32 @@
#{type})
+
+ INSERT INTO `processtask_step_rel` (`processtask_id`,
+ `from_process_step_uuid`,
+ `to_process_step_uuid`,
+ `from_processtask_step_id`,
+ `to_processtask_step_id`,
+ `condition`,
+ `is_hit`,
+ `uuid`,
+ `name`,
+ `type`)
+ VALUES
+
+ (#{item.processTaskId},
+ #{item.fromProcessStepUuid},
+ #{item.toProcessStepUuid},
+ #{item.fromProcessTaskStepId},
+ #{item.toProcessTaskStepId},
+ #{item.condition},
+ #{item.isHit},
+ #{item.processStepRelUuid},
+ #{item.name},
+ #{item.type})
+
+
+
INSERT INTO `processtask_step` (
@@ -3130,6 +3177,34 @@
)
+
+ INSERT INTO `processtask_step` (
+ `id`,
+ `processtask_id`,
+ `name`,
+ `process_step_uuid`,
+ `status`,
+ `type`,
+ `handler`,
+ `is_active`,
+ `config_hash`
+ )
+ VALUES
+
+ (
+ #{item.id},
+ #{item.processTaskId},
+ #{item.name},
+ #{item.processStepUuid},
+ #{item.status},
+ #{item.type},
+ #{item.handler},
+ #{item.isActive},
+ #{item.configHash}
+ )
+
+
+
REPLACE INTO `processtask_step` (
@@ -3364,6 +3439,15 @@
VALUES (#{hash}, #{config})
+
+ insert ignore INTO `processtask_step_config` (`hash`, `config`)
+ VALUES
+
+ (#{item.hash}, #{item.config})
+
+
+
INSERT IGNORE INTO `processtask_config` (`hash`, `config`)
VALUES (#{hash}, #{config})
@@ -3400,26 +3484,6 @@
NOW(3))
-
-
-
- INSERT INTO `processtask_step_notify_policy` (`processtask_step_id`,
- `policy_id`,
- `policy_name`,
- `policy_handler`,
- `policy_config_hash`)
- VALUES (#{processTaskStepId},
- #{policyId},
- #{policyName},
- #{policyHandler},
- #{policyConfigHash})
-
-
REPLACE INTO `processtask_old_form_prop` (`processtask_id`, `form`, `prop`)
VALUES (#{processTaskId}, #{form}, #{prop})
@@ -3560,6 +3624,18 @@
#{tagId})
+
+ INSERT INTO `processtask_step_tag` (`processtask_id`,
+ `processtask_step_id`,
+ `tag_id`)
+ VALUES
+
+ (#{item.processTaskId},
+ #{item.processTaskStepId},
+ #{item.tagId})
+
+
+
REPLACE INTO `processtask_repeat` (`processtask_id`, `repeat_group_id`) VALUES
@@ -3931,7 +4007,7 @@
- DELETE ps,psa,psau,psaud,psc,psnp,psd,psf,psr,psrl,pss,pst,psu,psw,pswp
+ DELETE ps,psa,psau,psaud,psc,psd,psf,psr,psrl,pss,pst,psu,psw,pswp
FROM `processtask_step` ps
LEFT JOIN
`processtask_step_agent` psa
@@ -3941,7 +4017,6 @@
LEFT JOIN `processtask_step_audit_detail` psaud ON psau.id = psaud.audit_id
LEFT JOIN `processtask_step_content` psc ON psc.`processtask_id` =
ps.`processtask_id` AND psc.`processtask_step_id` = ps.id
- LEFT JOIN `processtask_step_notify_policy` psnp ON psnp.`processtask_step_id` = ps.id
LEFT JOIN `processtask_step_data` psd
ON psd.`processtask_id` = ps.`processtask_id` AND psd.`processtask_step_id` =
ps.id
diff --git a/src/main/java/neatlogic/module/process/service/ProcessStepHandlerUtil.java b/src/main/java/neatlogic/module/process/service/ProcessStepHandlerUtil.java
index a568bdf47079ff572f9b202472c0478700928508..9f77350ab3181ff6c4efdfd805782a9199acf9cf 100644
--- a/src/main/java/neatlogic/module/process/service/ProcessStepHandlerUtil.java
+++ b/src/main/java/neatlogic/module/process/service/ProcessStepHandlerUtil.java
@@ -981,6 +981,7 @@ public class ProcessStepHandlerUtil implements IProcessStepHandlerUtil, IProcess
}
// 写入当前工单的表单属性值
+ List needSaveProcessTaskFormAttributeDataList = new ArrayList<>();
for (ProcessTaskFormAttributeDataVo dataVo : newProcessTaskFormAttributeDataList) {
String attributeUuid = dataVo.getAttributeUuid();
ProcessTaskFormAttributeDataVo oldProcessTaskFormAttributeDataVo = oldProcessTaskFormAttributeDataMap.get(attributeUuid);
@@ -999,14 +1000,20 @@ public class ProcessStepHandlerUtil implements IProcessStepHandlerUtil, IProcess
dataVo.setData(dataObj.toString());
}
}*/
- formMapper.insertFormAttributeData(dataVo);
- processTaskMapper.insertProcessTaskFormAttribute(dataVo);
+// formMapper.insertFormAttributeData(dataVo);
+// processTaskMapper.insertProcessTaskFormAttribute(dataVo);
+ needSaveProcessTaskFormAttributeDataList.add(dataVo);
+ }
+ if (CollectionUtils.isNotEmpty(needSaveProcessTaskFormAttributeDataList)) {
+ formMapper.insertFormAttributeDataList(needSaveProcessTaskFormAttributeDataList);
+ processTaskMapper.insertProcessTaskFormAttributeList(needSaveProcessTaskFormAttributeDataList);
}
// 保存表单扩展组件值
List oldExtendAttributeDataList = processTaskMapper.getProcessTaskExtendFormAttributeDataListByProcessTaskId(processTaskId, null);
Map oldExtendAttributeDataMap = oldExtendAttributeDataList.stream().collect(Collectors.toMap(AttributeDataVo::getAttributeUuid, e -> e));
JSONArray formExtendAttributeDataList = paramObj.getJSONArray("formExtendAttributeDataList");
if (CollectionUtils.isNotEmpty(formExtendAttributeDataList)) {
+ List needSaveProcessTaskFormExtendAttributeDataList = new ArrayList<>();
for (int j = 0; j < formExtendAttributeDataList.size(); j++) {
JSONObject formExtendAttributeDataObj = formExtendAttributeDataList.getJSONObject(j);
if (MapUtils.isEmpty(formExtendAttributeDataObj)) {
@@ -1031,9 +1038,14 @@ public class ProcessStepHandlerUtil implements IProcessStepHandlerUtil, IProcess
processTaskExtendFormAttributeDataVo.setAttributeUuid(formAttributeVo.getUuid());
processTaskExtendFormAttributeDataVo.setAttributeLabel(formAttributeVo.getLabel());
processTaskExtendFormAttributeDataVo.setData(dataList);
- formMapper.insertFormExtendAttributeData(processTaskExtendFormAttributeDataVo);
+// formMapper.insertFormExtendAttributeData(processTaskExtendFormAttributeDataVo);
processTaskExtendFormAttributeDataVo.setProcessTaskId(processTaskId);
- processTaskMapper.insertProcessTaskExtendFormAttribute(processTaskExtendFormAttributeDataVo);
+// processTaskMapper.insertProcessTaskExtendFormAttribute(processTaskExtendFormAttributeDataVo);
+ needSaveProcessTaskFormExtendAttributeDataList.add(processTaskExtendFormAttributeDataVo);
+ }
+ if (CollectionUtils.isNotEmpty(needSaveProcessTaskFormExtendAttributeDataList)) {
+ formMapper.insertFormExtendAttributeDataList(needSaveProcessTaskFormExtendAttributeDataList);
+ processTaskMapper.insertProcessTaskExtendFormAttributeList(needSaveProcessTaskFormExtendAttributeDataList);
}
}
}
diff --git a/src/main/java/neatlogic/module/process/service/ProcessTaskStepTaskServiceImpl.java b/src/main/java/neatlogic/module/process/service/ProcessTaskStepTaskServiceImpl.java
index 0f6eca5fc7523916448a1ab47a318443515c6a19..10b3b1536c7955e2acf3694b8d007e4c9833ddf8 100644
--- a/src/main/java/neatlogic/module/process/service/ProcessTaskStepTaskServiceImpl.java
+++ b/src/main/java/neatlogic/module/process/service/ProcessTaskStepTaskServiceImpl.java
@@ -76,7 +76,7 @@ public class ProcessTaskStepTaskServiceImpl implements ProcessTaskStepTaskServic
@Resource
ProcessTaskService processTaskService;
@Resource
- ProcessTaskAgentServiceImpl processTaskAgentServiceImpl;
+ ProcessTaskAgentService processTaskAgentService;
@Resource
private FileMapper fileMapper;
@@ -713,7 +713,7 @@ public class ProcessTaskStepTaskServiceImpl implements ProcessTaskStepTaskServic
return 1;
}
}
- List fromUuidList = processTaskAgentServiceImpl.getFromUserUuidListByToUserUuidAndChannelUuid(UserContext.get().getUserUuid(true), processTaskVo.getChannelUuid());
+ List fromUuidList = processTaskAgentService.getFromUserUuidListByToUserUuidAndChannelUuid(UserContext.get().getUserUuid(true), processTaskVo.getChannelUuid());
if (fromUuidList.contains(stepTaskUserUuid)) {
return 1;
}