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 0000000000000000000000000000000000000000..c0f1ee9922ead207cb944d1e8c15d5a8503a6ca2
--- /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 6fc5bf66e013ce862bdd4dce92fdbfa6239e3275..16b2a7a2bac8d63454a911f34fb392da98284b19 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());
+ }
}
}