diff --git a/system/Tnb.Systems.Interfaces/Permission/IOrganizeService.cs b/system/Tnb.Systems.Interfaces/Permission/IOrganizeService.cs
index 2f5aa59d..92a02c9b 100644
--- a/system/Tnb.Systems.Interfaces/Permission/IOrganizeService.cs
+++ b/system/Tnb.Systems.Interfaces/Permission/IOrganizeService.cs
@@ -78,4 +78,12 @@ public interface IOrganizeService
///
///
Task> GetChildOrgId(string id);
+
+ ///
+ /// 根据工位id获取其任意上级
+ ///
+ ///
+ ///
+ ///
+ Task GetAnyParentByWorkstationId(string id,string type);
}
\ No newline at end of file
diff --git a/system/Tnb.Systems/Permission/OrganizeService.cs b/system/Tnb.Systems/Permission/OrganizeService.cs
index fd02a5a2..e2a7bf88 100644
--- a/system/Tnb.Systems/Permission/OrganizeService.cs
+++ b/system/Tnb.Systems/Permission/OrganizeService.cs
@@ -19,6 +19,7 @@ using JNPF.Systems.Interfaces.System;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
+using Tnb.BasicData;
using Yitter.IdGenerator;
namespace JNPF.Systems;
@@ -835,6 +836,14 @@ public class OrganizeService : IOrganizeService, IDynamicApiController, ITransie
return (await _repository.GetListAsync(x => x.OrganizeIdTree.Contains(id) && x.EnabledMark == 1 && x.DeleteMark == null)).Select(x => x.Id).ToList();
}
+ public async Task GetAnyParentByWorkstationId(string id, string type)
+ {
+ return await _repository.AsQueryable()
+ .LeftJoin((a,b)=>a.OrganizeIdTree.Contains(b.Id) && b.Category==type)
+ .Where((a,b)=>a.Id==id)
+ .Select((a,b)=>b).FirstAsync();
+ }
+
///
/// 处理组织树 名称.
///
diff --git a/visualdev/Tnb.Vengine/CodeGenerator/TemplateContext.cs b/visualdev/Tnb.Vengine/CodeGenerator/TemplateContext.cs
index a62b4cd9..61468d79 100644
--- a/visualdev/Tnb.Vengine/CodeGenerator/TemplateContext.cs
+++ b/visualdev/Tnb.Vengine/CodeGenerator/TemplateContext.cs
@@ -1,4 +1,5 @@
using System.Text.RegularExpressions;
+using JNPF.Common.Configuration;
using Tnb.Core;
namespace Tnb.Vengine;
@@ -26,7 +27,7 @@ public class TemplateContext
#if DEBUG
BasePath = CodeHelper.GetSolutionDirectoryPath(false)!;
#else
- BasePath = EApp.Options.App.AcmenBasePath;
+ BasePath = FileVariable.GenerateCodePath;
#endif
ModuleCode = moduleCode;
}