From 53e938e66daacd2cd004e8970aa7a3b1dadec8c3 Mon Sep 17 00:00:00 2001
From: "1437892690@qq.com" <1437892690@qq.com>
Date: Mon, 31 Mar 2025 12:22:40 +0800
Subject: [PATCH] =?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-=E8=87=AA=E5=8A=A8=E5=8C=96?=
=?UTF-8?q?=E4=BD=9C=E4=B8=9A=E8=8A=82=E7=82=B9=E5=BC=82=E5=B8=B8=E4=BF=A1?=
=?UTF-8?q?=E6=81=AF=E5=B1=95=E7=A4=BA=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
关联 #[1356418362343424]工单详情页-自动化作业节点异常信息展示优化 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1356418362343424
---
.../AutoexecSuccessMessageAuditHandler.java | 95 +++++++++++++++++++
.../AutoexecProcessTaskAuditDetailType.java | 71 ++++++++++++++
.../component/CreateJobProcessComponent.java | 10 +-
3 files changed, 175 insertions(+), 1 deletion(-)
create mode 100644 src/main/java/neatlogic/module/autoexec/process/audithandler/handler/AutoexecSuccessMessageAuditHandler.java
create mode 100644 src/main/java/neatlogic/module/autoexec/process/constvalue/AutoexecProcessTaskAuditDetailType.java
diff --git a/src/main/java/neatlogic/module/autoexec/process/audithandler/handler/AutoexecSuccessMessageAuditHandler.java b/src/main/java/neatlogic/module/autoexec/process/audithandler/handler/AutoexecSuccessMessageAuditHandler.java
new file mode 100644
index 00000000..10fd5e86
--- /dev/null
+++ b/src/main/java/neatlogic/module/autoexec/process/audithandler/handler/AutoexecSuccessMessageAuditHandler.java
@@ -0,0 +1,95 @@
+/*
+ * 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.module.autoexec.process.audithandler.handler;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import neatlogic.framework.autoexec.constvalue.JobStatus;
+import neatlogic.framework.autoexec.dao.mapper.AutoexecJobMapper;
+import neatlogic.framework.autoexec.dto.job.AutoexecJobPhaseVo;
+import neatlogic.framework.autoexec.dto.job.AutoexecJobVo;
+import neatlogic.framework.process.audithandler.core.IProcessTaskStepAuditDetailHandler;
+import neatlogic.framework.process.dto.ProcessTaskStepAuditDetailVo;
+import neatlogic.module.autoexec.process.constvalue.AutoexecProcessTaskAuditDetailType;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.MapUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class AutoexecSuccessMessageAuditHandler implements IProcessTaskStepAuditDetailHandler {
+
+ @Resource
+ private AutoexecJobMapper autoexecJobMapper;
+
+ @Override
+ public String getType() {
+ return AutoexecProcessTaskAuditDetailType.AUTOEXECMESSAGE.getValue();
+ }
+
+ @Override
+ public int handle(ProcessTaskStepAuditDetailVo processTaskStepAuditDetailVo) {
+ JSONObject resultObj = new JSONObject();
+ String newContent = processTaskStepAuditDetailVo.getNewContent();
+ if (StringUtils.isNotBlank(newContent)) {
+ JSONObject jsonObj = JSONObject.parseObject(newContent);
+ if (MapUtils.isNotEmpty(jsonObj)) {
+ JSONArray jobIdArray = jsonObj.getJSONArray("jobIdList");
+ if (CollectionUtils.isNotEmpty(jobIdArray)) {
+ List jobIdList = jobIdArray.toJavaList(Long.class);
+ int completed = 0, failed = 0, running = 0;
+ Map> jobIdToAutoexecJobPhaseListMap = new HashMap<>();
+ List jobPhaseList = autoexecJobMapper.getJobPhaseListWithGroupByJobIdList(jobIdList);
+ for (AutoexecJobPhaseVo autoexecJobPhaseVo : jobPhaseList) {
+ jobIdToAutoexecJobPhaseListMap.computeIfAbsent(autoexecJobPhaseVo.getJobId(), key -> new ArrayList<>()).add(autoexecJobPhaseVo);
+ }
+ List autoexecJobList = autoexecJobMapper.getJobListByIdList(jobIdList);
+ for (AutoexecJobVo autoexecJobVo : autoexecJobList) {
+ List jobPhaseVoList = jobIdToAutoexecJobPhaseListMap.get(autoexecJobVo.getId());
+ autoexecJobVo.setPhaseList(jobPhaseVoList);
+ if (JobStatus.isRunningStatus(autoexecJobVo.getStatus())) {
+ running++;
+ } else if (JobStatus.isCompletedStatus(autoexecJobVo.getStatus())) {
+ completed++;
+ } else if (JobStatus.isFailedStatus(autoexecJobVo.getStatus())) {
+ failed++;
+ }
+ }
+
+ if (running > 0) {
+ resultObj.put("status", JobStatus.RUNNING.getValue());
+ } else if (failed > 0) {
+ resultObj.put("status", JobStatus.FAILED.getValue());
+ } else if (completed > 0) {
+ resultObj.put("status", JobStatus.COMPLETED.getValue());
+ }
+ resultObj.put("jobList", autoexecJobList);
+ processTaskStepAuditDetailVo.setNewContent(resultObj.toJSONString());
+ }
+ return 1;
+ }
+ }
+ return 0;
+ }
+}
diff --git a/src/main/java/neatlogic/module/autoexec/process/constvalue/AutoexecProcessTaskAuditDetailType.java b/src/main/java/neatlogic/module/autoexec/process/constvalue/AutoexecProcessTaskAuditDetailType.java
new file mode 100644
index 00000000..747f1c71
--- /dev/null
+++ b/src/main/java/neatlogic/module/autoexec/process/constvalue/AutoexecProcessTaskAuditDetailType.java
@@ -0,0 +1,71 @@
+/*
+ * 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.module.autoexec.process.constvalue;
+
+import neatlogic.framework.process.audithandler.core.IProcessTaskAuditDetailType;
+
+public enum AutoexecProcessTaskAuditDetailType implements IProcessTaskAuditDetailType {
+ AUTOEXECMESSAGE("autoexecmessage", "", "autoexecMessage", "oldAutoexecMessage", 22, false),
+ ;
+
+ private String value;
+ private String text;
+ private String paramName;
+ private String oldDataParamName;
+ private int sort;
+ private boolean needCompression;
+
+ AutoexecProcessTaskAuditDetailType(String value, String text, String paramName, String oldDataParamName, int sort, boolean needCompression) {
+ this.value = value;
+ this.text = text;
+ this.paramName = paramName;
+ this.oldDataParamName = oldDataParamName;
+ this.sort = sort;
+ this.needCompression = needCompression;
+ }
+
+ @Override
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String getText() {
+ return text;
+ }
+
+ @Override
+ public String getParamName() {
+ return paramName;
+ }
+
+ @Override
+ public String getOldDataParamName() {
+ return oldDataParamName;
+ }
+
+ @Override
+ public int getSort() {
+ return sort;
+ }
+
+ @Override
+ public boolean getNeedCompression() {
+ return needCompression;
+ }
+}
diff --git a/src/main/java/neatlogic/module/autoexec/process/stephandler/component/CreateJobProcessComponent.java b/src/main/java/neatlogic/module/autoexec/process/stephandler/component/CreateJobProcessComponent.java
index 0e084334..13eeb3ad 100644
--- a/src/main/java/neatlogic/module/autoexec/process/stephandler/component/CreateJobProcessComponent.java
+++ b/src/main/java/neatlogic/module/autoexec/process/stephandler/component/CreateJobProcessComponent.java
@@ -50,6 +50,7 @@ import neatlogic.framework.process.stephandler.core.*;
import neatlogic.module.autoexec.constvalue.FailPolicy;
import neatlogic.module.autoexec.dao.mapper.AutoexecCombopVersionMapper;
import neatlogic.module.autoexec.dao.mapper.AutoexecServiceMapper;
+import neatlogic.module.autoexec.process.constvalue.AutoexecProcessTaskAuditDetailType;
import neatlogic.module.autoexec.process.constvalue.CreateJobProcessStepHandlerType;
import neatlogic.module.autoexec.process.dto.AutoexecJobBuilder;
import neatlogic.module.autoexec.process.dto.CreateJobConfigConfigVo;
@@ -335,6 +336,7 @@ public class CreateJobProcessComponent extends ProcessStepHandlerBase {
processTaskStepDataVo.setData(dataObj.toJSONString());
processTaskStepDataVo.setFcu(UserContext.get().getUserUuid());
processTaskStepDataCrossoverMapper.replaceProcessTaskStepData(processTaskStepDataVo);
+ currentProcessTaskStepVo.getParamObj().put(AutoexecProcessTaskAuditDetailType.AUTOEXECMESSAGE.getParamName(), dataObj.toJSONString());
String failPolicy = createJobConfigVo.getFailPolicy();
if (FailPolicy.KEEP_ON.getValue().equals(failPolicy)) {
if (CollectionUtils.isNotEmpty(jobIdList)) {
@@ -364,11 +366,17 @@ public class CreateJobProcessComponent extends ProcessStepHandlerBase {
IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class);
/* 触发通知 **/
processStepHandlerCrossoverUtil.notify(processTaskStepVo, AutoexecNotifyTriggerType.CREATE_JOB_FAILED);
+ } else {
+ JSONObject dataObj = new JSONObject();
+ dataObj.put("jobIdList", jobIdList);
+ currentProcessTaskStepVo.getParamObj().put(AutoexecProcessTaskAuditDetailType.AUTOEXECMESSAGE.getParamName(), dataObj.toJSONString());
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
+ } finally {
+ IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class);
+ processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ProcessTaskAuditType.ACTIVE);
}
-
}
};
processTaskStepThreadList.add(thread);
--
Gitee