From a23e890d2e3d919d330659bf1ce1f08ff155d699 Mon Sep 17 00:00:00 2001
From: "1437892690@qq.com" <1437892690@qq.com>
Date: Thu, 22 May 2025 18:38:27 +0800
Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=BA=93=E6=96=87?=
=?UTF-8?q?=E4=BB=B6=E7=B1=BB=E5=9E=8B=E7=9A=84=E8=87=AA=E5=AE=9A=E4=B9=89?=
=?UTF-8?q?=E5=B7=A5=E5=85=B7=E5=BA=93=E7=9A=84=E5=BC=95=E7=94=A8=E5=88=97?=
=?UTF-8?q?=E8=A1=A8=E6=9F=A5=E8=AF=A2=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
关联 #[1323225085083648]库文件类型的自定义工具库的引用列表查询优化 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1323225085083648
---
...utoexecScript2ScriptDependencyHandler.java | 85 +++++++++++++++++++
.../service/AutoexecScriptServiceImpl.java | 5 ++
2 files changed, 90 insertions(+)
create mode 100644 src/main/java/neatlogic/module/autoexec/dependency/AutoexecScript2ScriptDependencyHandler.java
diff --git a/src/main/java/neatlogic/module/autoexec/dependency/AutoexecScript2ScriptDependencyHandler.java b/src/main/java/neatlogic/module/autoexec/dependency/AutoexecScript2ScriptDependencyHandler.java
new file mode 100644
index 00000000..c0f1ee99
--- /dev/null
+++ b/src/main/java/neatlogic/module/autoexec/dependency/AutoexecScript2ScriptDependencyHandler.java
@@ -0,0 +1,85 @@
+/*
+ * 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.dependency;
+
+import com.alibaba.fastjson.JSONObject;
+import neatlogic.framework.asynchronization.threadlocal.TenantContext;
+import neatlogic.framework.autoexec.constvalue.AutoexecFromType;
+import neatlogic.framework.autoexec.constvalue.ScriptVersionStatus;
+import neatlogic.framework.autoexec.dao.mapper.AutoexecScriptMapper;
+import neatlogic.framework.autoexec.dto.script.AutoexecScriptVersionVo;
+import neatlogic.framework.autoexec.dto.script.AutoexecScriptVo;
+import neatlogic.framework.dependency.core.DefaultDependencyHandlerBase;
+import neatlogic.framework.dependency.core.IFromType;
+import neatlogic.framework.dependency.dto.DependencyInfoVo;
+import neatlogic.framework.dependency.dto.DependencyVo;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+@Component
+public class AutoexecScript2ScriptDependencyHandler extends DefaultDependencyHandlerBase {
+
+ @Resource
+ private AutoexecScriptMapper autoexecScriptMapper;
+
+ @Override
+ protected DependencyInfoVo parse(DependencyVo dependencyVo) {
+ Long versionId = Long.valueOf(dependencyVo.getTo());
+ AutoexecScriptVersionVo versionVo = autoexecScriptMapper.getVersionByVersionId(versionId);
+ if (versionVo == null) {
+ return null;
+ }
+ AutoexecScriptVo scriptVo = autoexecScriptMapper.getScriptBaseInfoById(versionVo.getScriptId());
+ if (scriptVo == null) {
+ return null;
+ }
+ String urlFormat = "";
+ String lastName = "";
+ JSONObject dependencyInfoConfig = new JSONObject();
+ dependencyInfoConfig.put("scriptId", versionVo.getScriptId());
+ dependencyInfoConfig.put("versionId", versionVo.getId());
+ dependencyInfoConfig.put("status", versionVo.getStatus());
+ if (Objects.equals(versionVo.getIsActive(), 1)) {
+ lastName = "版本" + versionVo.getVersion() + "(" + versionVo.getTitle() + ")";
+ urlFormat = "/" + TenantContext.get().getTenantUuid() + "/autoexec.html#/script-detail?scriptId=${DATA.scriptId}&status=${DATA.status}";
+ } else {
+ urlFormat = "/" + TenantContext.get().getTenantUuid() + "/autoexec.html#/script-detail?versionId=${DATA.versionId}&status=${DATA.status}";
+ if (Objects.equals(versionVo.getStatus(), ScriptVersionStatus.PASSED.getValue())) {
+ lastName = "版本" + versionVo.getVersion() + "(" + versionVo.getTitle() + ")";
+ } else {
+ lastName = ScriptVersionStatus.getText(versionVo.getStatus()) + "(" + versionVo.getTitle() + ")";
+ if (Objects.equals(versionVo.getStatus(), ScriptVersionStatus.SUBMITTED.getValue())) {
+ urlFormat = "/" + TenantContext.get().getTenantUuid() + "/autoexec.html#/review-detail?scriptId=${DATA.scriptId}&versionId=${DATA.versionId}";
+ }
+ }
+ }
+
+ List pathList = new ArrayList<>();
+ pathList.add("自定义工具库(" + scriptVo.getName() + ")");
+ return new DependencyInfoVo(Long.valueOf(dependencyVo.getTo()), dependencyInfoConfig, lastName, pathList, urlFormat, this.getGroupName());
+ }
+
+ @Override
+ public IFromType getFromType() {
+ return AutoexecFromType.SCRIPT;
+ }
+}
diff --git a/src/main/java/neatlogic/module/autoexec/service/AutoexecScriptServiceImpl.java b/src/main/java/neatlogic/module/autoexec/service/AutoexecScriptServiceImpl.java
index 6fc5bf66..16b2a7a2 100644
--- a/src/main/java/neatlogic/module/autoexec/service/AutoexecScriptServiceImpl.java
+++ b/src/main/java/neatlogic/module/autoexec/service/AutoexecScriptServiceImpl.java
@@ -43,6 +43,7 @@ import neatlogic.framework.fulltextindex.core.IFullTextIndexHandler;
import neatlogic.framework.lrcode.LRCodeManager;
import neatlogic.module.autoexec.dao.mapper.AutoexecCustomTemplateMapper;
import neatlogic.module.autoexec.dao.mapper.AutoexecProfileMapper;
+import neatlogic.module.autoexec.dependency.AutoexecScript2ScriptDependencyHandler;
import neatlogic.module.autoexec.fulltextindex.AutoexecFullTextIndexType;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
@@ -743,8 +744,12 @@ public class AutoexecScriptServiceImpl implements AutoexecScriptService {
}
//保存依赖工具
autoexecScriptMapper.deleteScriptVersionLibByScriptVersionId(versionVo.getId());
+ DependencyManager.delete(AutoexecScript2ScriptDependencyHandler.class, versionVo.getId());
if (CollectionUtils.isNotEmpty(versionVo.getUseLib())) {
autoexecScriptMapper.insertScriptVersionUseLib(versionVo.getId(), versionVo.getUseLib());
+ for (Long useLibId : versionVo.getUseLib()) {
+ DependencyManager.insert(AutoexecScript2ScriptDependencyHandler.class, useLibId, versionVo.getId());
+ }
}
}
--
Gitee