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