diff --git a/Tiobon.Core.Api/Controllers/Ghrp/Ghrp_TemplateAreaController.cs b/Tiobon.Core.Api/Controllers/Ghrp/Ghrp_TemplateAreaController.cs new file mode 100644 index 00000000..61ef42a4 --- /dev/null +++ b/Tiobon.Core.Api/Controllers/Ghrp/Ghrp_TemplateAreaController.cs @@ -0,0 +1,30 @@ +using Newtonsoft.Json.Linq; +using System.Data; + +namespace Tiobon.Core.Api.Controllers; + +/// +/// 模板区域(Controller) +/// +[Route("api/[controller]")] +[ApiController, GlobalActionFilter] +[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghrp)] +public class Ghrp_TemplateAreaController : BaseController +{ + public Ghrp_TemplateAreaController(IGhrp_TemplateAreaServices service) : base(service) + { + } + #region 加载左侧区域 + /// + /// 初始化获取区域元素 + /// + /// 阶段 + /// + [HttpPost, Route("InitAreaInfo")] + public async Task> InitAreaInfo() => await _service.InitAreaInfo(); + #endregion + + [HttpPost, Route("ItemMatchField")] + public async Task> ItemMatchField() => await _service.ItemMatchField(); + +} \ No newline at end of file diff --git a/Tiobon.Core.Api/Tiobon.Core.Model.xml b/Tiobon.Core.Api/Tiobon.Core.Model.xml index 5e162309..ad96c57d 100644 --- a/Tiobon.Core.Api/Tiobon.Core.Model.xml +++ b/Tiobon.Core.Api/Tiobon.Core.Model.xml @@ -4,56 +4,6 @@ Tiobon.Core.Model - - - 表主键 - - - - - 1:有效,0:未生效 - - - - - 创建人 - - - - - 创建时间 - - - - - 创建程序 - - - - - 创建IP - - - - - 最后修改人 - - - - - 最后修改时间 - - - - - 最后修改程序 - - - - - 最后修改IP - - 年级 (Dto.Base) @@ -3035,6 +2985,16 @@ 集团数据归属 + + + 类别 + + + + + 设计模板 + + 课程场景ID @@ -3045,6 +3005,186 @@ 课程ID + + + 证书模板 (Dto.Base) + + + + + 集团数据归属 + + + + + 规则类型 + + + + + 编号生成类型 + + + + + 规则编号 + + + + + 证书名称 + + + + + 课程场景ID + + + + + 课程场景ID + + + + + 课程ID + + + + + 课程ID + + + + + 有效期类型 + + + + + 固定数 + + + + + 固定类型 + + + + + 有效期 + + + + + 发放规则 + + + + + 分数 + + + + + 分数1 + + + + + 颁发机构类型 + + + + + 颁发机构ID + + + + + 颁发机构名称 + + + + + 类别 + + + + + 设计模板 + + + + + 备注 + + + + + 默认标志 + + + + + 预留字段1 + + + + + 预留字段2 + + + + + 预留字段3 + + + + + 预留字段4 + + + + + 预留字段5 + + + + + 预留字段6 + + + + + 预留字段7 + + + + + 预留字段8 + + + + + 预留字段9 + + + + + 预留字段10 + + + + + 预留字段11 + + + + + 预留字段12 + + 参数配置 (Dto.Base) @@ -4230,11 +4370,6 @@ 课程快照ID - - - 考试ID - - 获得日期 @@ -4315,6 +4450,11 @@ 预留字段12 + + + 考试ID + + 学分规则ID @@ -8320,6 +8460,16 @@ 预留字段12 + + + 生效日期 + + + + + 失效日期 + + 员工群组 (Dto.Base) @@ -8760,6 +8910,11 @@ 完成状态 + + + 学分 + + 培训记录明细 (Dto.Base) @@ -16775,6 +16930,286 @@ 内置 + + + 模板区域 (Dto.Base) + + + + + 模板ID + + + + + 前端UUID + + + + + 区域分类 + + + + + 区域分类名称 + + + + + 区域标题 + + + + + 区域说明 + + + + + 标题字体大小 + + + + + 说明字体大小 + + + + + 标题LangKey + + + + + 标题LangKey + + + + + 区域隐藏 + + + + + 权重合计显示 + + + + + 区域元素list + + + + + 区域元素列数 + + + + + 区域元素字体大小 + + + + + 元素标题对齐方式 + + + + + 区域元素对齐方式 + + + + + 显示分数 + + + + + 显示等级 + + + + + 分数显示位数 + + + + + 等级显示格式 + + + + + 显示操作人 + + + + + 显示操作时间 + + + + + 显示操作类型 + + + + + 显示操作备注 + + + + + 请假分组 + + + + + 选择假别 + + + + + 显示缺勤天数 + + + + + 奖励 + + + + + 惩罚 + + + + + 关联模板 + + + + + 关联区域 + + + + + 关联区域元素 + + + + + 关联期间类别 + + + + + 关联期间 + + + + + 头像显示 + + + + + 工号显示 + + + + + 姓名显示 + + + + + 提交时间显示 + + + + + 备注 + + + + + 排序 + + + + + 默认标志 + + + + + 预留字段1 + + + + + 预留字段2 + + + + + 预留字段3 + + + + + 预留字段4 + + + + + 预留字段5 + + + + + 预留字段6 + + + + + 预留字段7 + + + + + 预留字段8 + + + + + 预留字段9 + + + + + 预留字段10 + + + + + 预留字段11 + + + + + 预留字段12 + + + + + 内置 + + Ghrs_Attachment (Dto.Base) @@ -18522,6 +18957,11 @@ 培训证书规则 (Dto.EditInput) + + + 证书模板 (Dto.EditInput) + + 参数配置 (Dto.EditInput) @@ -19032,6 +19472,11 @@ 考核模板 (Dto.EditInput) + + + 模板区域 (Dto.EditInput) + + Ghrs_Attachment (Dto.EditInput) @@ -19182,6 +19627,11 @@ 培训证书规则 (Dto.InsertInput) + + + 证书模板 (Dto.InsertInput) + + 参数配置 (Dto.InsertInput) @@ -19708,6 +20158,11 @@ 考核模板 (Dto.InsertInput) + + + 模板区域 (Dto.InsertInput) + + Ghrs_Attachment (Dto.InsertInput) @@ -22947,6 +23402,196 @@ 集团数据归属 + + + 类别 + + + + + 设计模板 + + + + + 证书模板 (Model) + + + + + 集团数据归属 + + + + + 规则类型 + + + + + 编号生成类型 + + + + + 规则编号 + + + + + 证书名称 + + + + + 课程场景ID + + + + + 课程场景ID + + + + + 课程ID + + + + + 课程ID + + + + + 有效期类型 + + + + + 固定数 + + + + + 固定类型 + + + + + 有效期 + + + + + 发放规则 + + + + + 分数 + + + + + 分数1 + + + + + 颁发机构类型 + + + + + 颁发机构ID + + + + + 颁发机构名称 + + + + + 类别 + + + + + 设计模板 + + + + + 备注 + + + + + 默认标志 + + + + + 预留字段1 + + + + + 预留字段2 + + + + + 预留字段3 + + + + + 预留字段4 + + + + + 预留字段5 + + + + + 预留字段6 + + + + + 预留字段7 + + + + + 预留字段8 + + + + + 预留字段9 + + + + + 预留字段10 + + + + + 预留字段11 + + + + + 预留字段12 + + 参数配置 (Model) @@ -24127,11 +24772,6 @@ 课程快照ID - - - 考试ID - - 获得日期 @@ -24212,6 +24852,11 @@ 预留字段12 + + + 考试ID + + 学分规则ID @@ -28562,6 +29207,11 @@ 完成状态 + + + 学分 + + 培训记录明细 (Model) @@ -36712,6 +37362,286 @@ 内置 + + + 模板区域 (Model) + + + + + 模板ID + + + + + 前端UUID + + + + + 区域分类 + + + + + 区域分类名称 + + + + + 区域标题 + + + + + 区域说明 + + + + + 标题字体大小 + + + + + 说明字体大小 + + + + + 标题LangKey + + + + + 标题LangKey + + + + + 区域隐藏 + + + + + 权重合计显示 + + + + + 区域元素list + + + + + 区域元素列数 + + + + + 区域元素字体大小 + + + + + 元素标题对齐方式 + + + + + 区域元素对齐方式 + + + + + 显示分数 + + + + + 显示等级 + + + + + 分数显示位数 + + + + + 等级显示格式 + + + + + 显示操作人 + + + + + 显示操作时间 + + + + + 显示操作类型 + + + + + 显示操作备注 + + + + + 请假分组 + + + + + 选择假别 + + + + + 显示缺勤天数 + + + + + 奖励 + + + + + 惩罚 + + + + + 关联模板 + + + + + 关联区域 + + + + + 关联区域元素 + + + + + 关联期间类别 + + + + + 关联期间 + + + + + 头像显示 + + + + + 工号显示 + + + + + 姓名显示 + + + + + 提交时间显示 + + + + + 备注 + + + + + 排序 + + + + + 默认标志 + + + + + 预留字段1 + + + + + 预留字段2 + + + + + 预留字段3 + + + + + 预留字段4 + + + + + 预留字段5 + + + + + 预留字段6 + + + + + 预留字段7 + + + + + 预留字段8 + + + + + 预留字段9 + + + + + 预留字段10 + + + + + 预留字段11 + + + + + 预留字段12 + + + + + 内置 + + Ghrs_Attachment (Model) @@ -38364,41 +39294,6 @@ Reverse5 - - 博客ID - - - - - 创建时间 - - - - - 手机 - - - - - qq - - - - - 留言内容 - - - - - ip地址 - - - - - 是否显示在前台,0否1是 - - - 接口API地址信息表 @@ -38755,249 +39650,6 @@ 修改时间 - - - 状态
- 中立字段,某些表可使用某些表不使用 -
-
- - - 中立字段,某些表可使用某些表不使用
- 逻辑上的删除,非物理删除
- 例如:单据删除并非直接删除 -
-
- - - 中立字段
- 是否内置数据 -
-
- - - 创建ID - - - - - 创建者 - - - - - 创建时间 - - - - - 修改ID - - - - - 更新者 - - - - - 修改日期 - - - - - 数据版本 - - - - - 软删除 过滤器 - - - - - 系统租户表
- 根据TenantType 分为两种方案:
- 1.按租户字段区分
- 2.按租户分库
- -
- - 注意:
- 使用租户Id方案,无需配置分库的连接 -
-
- - - 名称 - - - - - 租户类型 - - - - - 数据库/租户标识 不可重复
- 使用Id方案,可无需配置 -
-
- - - 主机
- 使用Id方案,可无需配置 -
-
- - - 数据库类型
- 使用Id方案,可无需配置 -
-
- - - 数据库连接
- 使用Id方案,可无需配置 -
-
- - - 状态 - - - - - 备注 - - - - - 用户信息表 - - - - - 登录账号 - - - - - 登录密码 - - - - - 真实姓名 - - - - - 状态 - - - - - 部门 - - - - - 备注 - - - - - 创建时间 - - - - - 更新时间 - - - - - 关键业务修改时间 - - - - - 最后异常时间 - - - - - 错误次数 - - - - - 登录账号 - - - - - 租户Id - - - - - 业务数据
- 多租户 (Id 隔离) -
-
- - - 无需手动赋值 - - - - - 名称 - - - - - 金额 - - - - - 多租户-多表方案 业务表 子表
-
-
- - - 多租户-多表方案 业务表
-
-
- - - 名称 - - - - - 金额 - - - - - 多租户-多库方案 业务表
- 公共库无需标记[MultiTenant]特性 -
-
- - - 名称 - - - - - 金额 - - 用户跟角色关联表 @@ -39533,6 +40185,21 @@ 课程ID + + + 证书模板(Dto.View1) + + + + + 创建信息 + + + + + 修改信息 + + 参数配置(Dto.View) @@ -40228,6 +40895,16 @@ 修改信息 + + + 生效日期 + + + + + 失效日期 + + 员工群组(Dto.View1) @@ -41853,6 +42530,21 @@ 修改信息 + + + 模板区域(Dto.View1) + + + + + 创建信息 + + + + + 修改信息 + + Ghrs_Attachment(Dto.View) @@ -42408,21 +43100,6 @@ 已逾期 - - - 真实表名(数据库表名,若没有填写默认实体为表名) - - - - - 表中文名 - - - - - 是否校验唯一性 - - 以下model 来自ids4项目,多库模式,为了调取ids4数据 @@ -42552,23 +43229,6 @@ api ID - - - ID - 泛型主键Tkey - - - - - 用户信息表 - - - - - Id - 泛型主键Tkey - - 用户跟角色关联表 @@ -42642,177 +43302,11 @@ 查询条件( 例如:id = 1 and name = 小明) - - - 服务层响应实体(泛型) - - - - - 状态码 - - - - - 操作是否成功 - - - - - 返回信息 - - - - - 开发者信息 - - - - - 返回数据集合 - - - - - 返回成功 - - 消息 - - - - - 返回成功 - - 消息 - 数据 - - - - - 返回失败 - - 消息 - - - - - 返回失败 - - 消息 - 数据 - - - - - 返回消息 - - 失败/成功 - 消息 - 数据 - - - - - 服务层响应实体 - - - - - 状态码 - - - - - 操作是否成功 - - - - - 返回信息 - - - - - 返回数据集合 - - - - - 操作成功 - - - - - - - 操作失败 - - - - - - - - 返回数据 - - - - - 服务层分页响应实体(泛型) - - - - - 操作是否成功 - - - - - 返回信息 - - 数据库读取类型 - - - 租户模型接口 - - - - - 租户Id - - - - - 标识 多租户 的业务表
- 默认设置是多库
- 公共表无需区分 直接使用主库 各自业务在各自库中
-
-
- - - 租户隔离方案 - - - - - Id隔离 - - - - - 库隔离 - - - - - 表隔离 - - 博客信息展示类 @@ -42893,11 +43387,6 @@ - - - Type Description balabala - - bgColor @@ -43638,51 +44127,6 @@ Offer文件路径 - - - 留言信息展示类 - - - - 留言表 - - - - - 博客ID - - - - - 创建时间 - - - - - 手机 - - - - - qq - - - - - 留言内容 - - - - - ip地址 - - - - - 是否显示在前台,0否1是 - - - 实现IJob的类 @@ -43808,26 +44252,6 @@ 用来测试 RestSharp Post 请求 - - - 留言排名展示类 - - - - 博客ID - - - - - - 评论数量 - - - - 博客标题 - - - 分组 diff --git a/Tiobon.Core.Api/Tiobon.Core.xml b/Tiobon.Core.Api/Tiobon.Core.xml index 5ee6772c..d1a7c8c5 100644 --- a/Tiobon.Core.Api/Tiobon.Core.xml +++ b/Tiobon.Core.Api/Tiobon.Core.xml @@ -79,14 +79,14 @@ 初始化 (注入) - + 根据条件查询数据 条件 - + 查询作废 @@ -100,7 +100,7 @@ 主键ID - + 查询菜单表单信息 @@ -148,7 +148,7 @@ 主键IDs - + Excel导出 @@ -168,7 +168,7 @@ 公共服务 - + 构造函数 @@ -176,21 +176,21 @@ - + 获取菜单 - + 获取模块信息接口 - + 获取模块信息接口 @@ -205,7 +205,7 @@ - + 导出Excel @@ -222,14 +222,14 @@ 多语 - + 获取流程信息 - + 流程提交处理 @@ -512,7 +512,7 @@ - + 获取新入职人员列表 @@ -749,7 +749,7 @@ 培训记录(Controller) - + 根据条件查询数据 @@ -778,6 +778,17 @@ + + + 根据条件查询数据 + + + + + + 证书模板(Controller) + + 参数配置(Controller) @@ -804,7 +815,7 @@ 课程(Controller) - + 根据条件查询数据 @@ -827,7 +838,7 @@ - + 统计 @@ -873,14 +884,14 @@ 学分记录(Controller) - + 查询明细数据 body - + 根据工号查询学分明细 @@ -910,13 +921,13 @@ 考试(Controller) - + 查询初始化数据 - + 根据条件查询数据 @@ -1019,7 +1030,7 @@ - + 根据条件查询数据 @@ -1072,7 +1083,7 @@ 考试记录(Controller) - + 根据条件查询数据 @@ -1194,7 +1205,7 @@ 开班管理(Controller) - + 根据条件查询数据 @@ -1355,7 +1366,7 @@ 培训计划(Controller) - + 根据条件查询数据 @@ -1363,14 +1374,21 @@ status - + 根据条件查询数据 条件 - + + + 根据条件查询数据 + + 条件 + + + 培训计划达成率——宝连通 @@ -1414,7 +1432,7 @@ 培训需求(Controller) - + 根据条件查询数据 @@ -1422,7 +1440,7 @@ status - + 查询菜单表单信息 @@ -1434,7 +1452,7 @@ 必选修查询(Controller) - + 根据条件查询数据 @@ -1462,28 +1480,28 @@ 培训记录(Controller) - + 获取ESS查询条件 - + 获取ESS查询条件 - + 获取学习记录 - + 获取课程 @@ -1507,13 +1525,19 @@ - + 讲师上课分析 + + + 积分发放 + + + 培训记录明细(Controller) @@ -1536,7 +1560,7 @@ 必选修规则结果(Controller) - + 根据条件查询数据 @@ -1554,7 +1578,7 @@ 问卷调查(Controller) - + 根据条件查询数据 @@ -1636,6 +1660,13 @@ + + + QueryESS + + + + 问卷调查选项(Controller) @@ -1708,7 +1739,7 @@ 培训讲师异动(Controller) - + 根据条件查询数据 @@ -1721,7 +1752,7 @@ Ghre_Teacher(Controller) - + 根据条件查询数据 @@ -1749,7 +1780,7 @@ 【牛尾】培训计划(Controller) - + 根据条件查询数据 @@ -1789,7 +1820,7 @@ 人力需求维护(Controller) - + 根据条件查询数据 @@ -1797,7 +1828,7 @@ status - + Excel导出 @@ -1876,7 +1907,7 @@ - + 根据条件查询数据 @@ -1953,7 +1984,7 @@ - + 根据条件查询数据 @@ -2080,7 +2111,7 @@ 简历Ids - + ESS端查询面试记录 @@ -2164,7 +2195,7 @@ 语言别 - + Excel导出录用名单 @@ -2219,7 +2250,7 @@ - + 获取分组数据 @@ -2242,28 +2273,28 @@ - + 获取分组数据 - + 执行分组列栏位操作 - + 查询模板栏位 - + 查询模板栏位 @@ -2398,6 +2429,18 @@ 考核模板(Controller) + + + 模板区域(Controller) + + + + + 初始化获取区域元素 + + 阶段 + + Ghrs_Attachment(Controller) diff --git a/Tiobon.Core.IServices/Ghrp/IGhrp_TemplateAreaServices.cs b/Tiobon.Core.IServices/Ghrp/IGhrp_TemplateAreaServices.cs new file mode 100644 index 00000000..5cb7346e --- /dev/null +++ b/Tiobon.Core.IServices/Ghrp/IGhrp_TemplateAreaServices.cs @@ -0,0 +1,14 @@ +using System.Data; +using Tiobon.Core.Model.Models; + +namespace Tiobon.Core.IServices +{ + /// + /// 模板区域(自定义服务接口) + /// + public interface IGhrp_TemplateAreaServices :IBaseServices + { + Task> InitAreaInfo(); + Task> ItemMatchField(); + } +} \ No newline at end of file diff --git a/Tiobon.Core.Model/Base/Ghrp/Ghrp_TemplateArea.Dto.Base.cs b/Tiobon.Core.Model/Base/Ghrp/Ghrp_TemplateArea.Dto.Base.cs new file mode 100644 index 00000000..5f12f20d --- /dev/null +++ b/Tiobon.Core.Model/Base/Ghrp/Ghrp_TemplateArea.Dto.Base.cs @@ -0,0 +1,330 @@ +/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。 +* Ghrp_TemplateArea.cs +* +*功 能: N / A +* 类 名: Ghrp_TemplateArea +* +* Ver 变更日期 负责人 变更内容 +* ─────────────────────────────────── +*V0.01 2025/6/10 16:56:20 SimonHsiao 初版 +* +* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved. +*┌──────────────────────────────────┐ +*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │ +*│ 作者:SimonHsiao │ +*└──────────────────────────────────┘ +*/ +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Tiobon.Core.Model.Models +{ + + /// + /// 模板区域 (Dto.Base) + /// + public class Ghrp_TemplateAreaBase + { + + /// + /// 模板ID + /// + public long? PerformanceTemplateId { get; set; } + + /// + /// 前端UUID + /// + [Display(Name = "uuid"), Description("前端UUID"), MaxLength(100, ErrorMessage = "前端UUID 不能超过 100 个字符")] + public string uuid { get; set; } + + /// + /// 区域分类 + /// + [Display(Name = "AreaType"), Description("区域分类"), MaxLength(100, ErrorMessage = "区域分类 不能超过 100 个字符")] + public string AreaType { get; set; } + + /// + /// 区域分类名称 + /// + [Display(Name = "AreaTypeName"), Description("区域分类名称"), MaxLength(100, ErrorMessage = "区域分类名称 不能超过 100 个字符")] + public string AreaTypeName { get; set; } + + /// + /// 区域标题 + /// + [Display(Name = "AreaTitle"), Description("区域标题"), MaxLength(255, ErrorMessage = "区域标题 不能超过 255 个字符")] + public string AreaTitle { get; set; } + + /// + /// 区域说明 + /// + [Display(Name = "AreaSubTitle"), Description("区域说明"), MaxLength(800, ErrorMessage = "区域说明 不能超过 800 个字符")] + public string AreaSubTitle { get; set; } + + /// + /// 标题字体大小 + /// + public int? AreaTitleFontSize { get; set; } + + /// + /// 说明字体大小 + /// + public int? AreaSubTitleFontSize { get; set; } + + /// + /// 标题LangKey + /// + [Display(Name = "AreaTitleLangKey"), Description("标题LangKey"), MaxLength(255, ErrorMessage = "标题LangKey 不能超过 255 个字符")] + public string AreaTitleLangKey { get; set; } + + /// + /// 标题LangKey + /// + [Display(Name = "AreaSubTitleLangKey"), Description("标题LangKey"), MaxLength(255, ErrorMessage = "标题LangKey 不能超过 255 个字符")] + public string AreaSubTitleLangKey { get; set; } + + /// + /// 区域隐藏 + /// + public bool? AreaHide { get; set; } + + /// + /// 权重合计显示 + /// + public bool? ShowWeightSum { get; set; } + + /// + /// 区域元素list + /// + [Display(Name = "ElList"), Description("区域元素list"), MaxLength(-1, ErrorMessage = "区域元素list 不能超过 -1 个字符")] + public string ElList { get; set; } + + /// + /// 区域元素列数 + /// + public int? ElColNums { get; set; } + + /// + /// 区域元素字体大小 + /// + public int? ElFontSize { get; set; } + + /// + /// 元素标题对齐方式 + /// + [Display(Name = "ElLabelAlign"), Description("元素标题对齐方式"), MaxLength(255, ErrorMessage = "元素标题对齐方式 不能超过 255 个字符")] + public string ElLabelAlign { get; set; } + + /// + /// 区域元素对齐方式 + /// + [Display(Name = "ElAlign"), Description("区域元素对齐方式"), MaxLength(255, ErrorMessage = "区域元素对齐方式 不能超过 255 个字符")] + public string ElAlign { get; set; } + + /// + /// 显示分数 + /// + public bool? ShowScore { get; set; } + + /// + /// 显示等级 + /// + public bool? ShowGrade { get; set; } + + /// + /// 分数显示位数 + /// + public int? ScorePrecision { get; set; } + + /// + /// 等级显示格式 + /// + [Display(Name = "GradeFormat"), Description("等级显示格式"), MaxLength(-1, ErrorMessage = "等级显示格式 不能超过 -1 个字符")] + public string GradeFormat { get; set; } + + /// + /// 显示操作人 + /// + public bool? ShowOpStaff { get; set; } + + /// + /// 显示操作时间 + /// + public bool? ShowOpTime { get; set; } + + /// + /// 显示操作类型 + /// + public bool? ShowOpDoType { get; set; } + + /// + /// 显示操作备注 + /// + public bool? ShowOpRemark { get; set; } + + /// + /// 请假分组 + /// + [Display(Name = "LeaveTypeGroup"), Description("请假分组"), MaxLength(-1, ErrorMessage = "请假分组 不能超过 -1 个字符")] + public string LeaveTypeGroup { get; set; } + + /// + /// 选择假别 + /// + [Display(Name = "LeaveType"), Description("选择假别"), MaxLength(1000, ErrorMessage = "选择假别 不能超过 1000 个字符")] + public string LeaveType { get; set; } + + /// + /// 显示缺勤天数 + /// + public bool? ShowAbsence { get; set; } + + /// + /// 奖励 + /// + [Display(Name = "Reward"), Description("奖励"), MaxLength(-1, ErrorMessage = "奖励 不能超过 -1 个字符")] + public string Reward { get; set; } + + /// + /// 惩罚 + /// + [Display(Name = "Punish"), Description("惩罚"), MaxLength(-1, ErrorMessage = "惩罚 不能超过 -1 个字符")] + public string Punish { get; set; } + + /// + /// 关联模板 + /// + public long? QuoteTpl { get; set; } + + /// + /// 关联区域 + /// + public long? QuoteArea { get; set; } + + /// + /// 关联区域元素 + /// + public long? QuoteEl { get; set; } + + /// + /// 关联期间类别 + /// + public long? QuotePeriodType { get; set; } + + /// + /// 关联期间 + /// + public long? QuotePeriod { get; set; } + + /// + /// 头像显示 + /// + public bool? ShowStaffPhoto { get; set; } + + /// + /// 工号显示 + /// + public bool? ShowStaffNo { get; set; } + + /// + /// 姓名显示 + /// + public bool? ShowStaffName { get; set; } + + /// + /// 提交时间显示 + /// + public bool? ShowFlowTime { get; set; } + + /// + /// 备注 + /// + [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")] + public string RemarkSz { get; set; } + + /// + /// 排序 + /// + public int? SortNo { get; set; } + + /// + /// 默认标志 + /// + public int? IsDefault { get; set; } + + /// + /// 预留字段1 + /// + [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")] + public string Reverse1 { get; set; } + + /// + /// 预留字段2 + /// + [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")] + public string Reverse2 { get; set; } + + /// + /// 预留字段3 + /// + [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")] + public string Reverse3 { get; set; } + + /// + /// 预留字段4 + /// + [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")] + public string Reverse4 { get; set; } + + /// + /// 预留字段5 + /// + [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")] + public string Reverse5 { get; set; } + + /// + /// 预留字段6 + /// + [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")] + public string Reverse6 { get; set; } + + /// + /// 预留字段7 + /// + [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")] + public string Reverse7 { get; set; } + + /// + /// 预留字段8 + /// + [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")] + public string Reverse8 { get; set; } + + /// + /// 预留字段9 + /// + [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")] + public string Reverse9 { get; set; } + + /// + /// 预留字段10 + /// + [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")] + public string Reverse10 { get; set; } + + /// + /// 预留字段11 + /// + public int? ReverseI1 { get; set; } + + /// + /// 预留字段12 + /// + public int? ReverseI2 { get; set; } + + /// + /// 内置 + /// + public int? BuiltIn { get; set; } + } +} diff --git a/Tiobon.Core.Model/Edit/Ghrp/Ghrp_TemplateArea.Dto.EditInput.cs b/Tiobon.Core.Model/Edit/Ghrp/Ghrp_TemplateArea.Dto.EditInput.cs new file mode 100644 index 00000000..8397e877 --- /dev/null +++ b/Tiobon.Core.Model/Edit/Ghrp/Ghrp_TemplateArea.Dto.EditInput.cs @@ -0,0 +1,27 @@ +/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。 +* Ghrp_TemplateArea.cs +* +*功 能: N / A +* 类 名: Ghrp_TemplateArea +* +* Ver 变更日期 负责人 变更内容 +* ─────────────────────────────────── +*V0.01 2025/6/10 16:56:20 SimonHsiao 初版 +* +* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved. +*┌──────────────────────────────────┐ +*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │ +*│ 作者:SimonHsiao │ +*└──────────────────────────────────┘ +*/ + +namespace Tiobon.Core.Model.Models +{ + + /// + /// 模板区域 (Dto.EditInput) + /// + public class EditGhrp_TemplateAreaInput : Ghrp_TemplateAreaBase + { + } +} diff --git a/Tiobon.Core.Model/Insert/Ghrp/Ghrp_TemplateArea.Dto.InsertInput.cs b/Tiobon.Core.Model/Insert/Ghrp/Ghrp_TemplateArea.Dto.InsertInput.cs new file mode 100644 index 00000000..6dd3cd5f --- /dev/null +++ b/Tiobon.Core.Model/Insert/Ghrp/Ghrp_TemplateArea.Dto.InsertInput.cs @@ -0,0 +1,27 @@ +/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。 +* Ghrp_TemplateArea.cs +* +*功 能: N / A +* 类 名: Ghrp_TemplateArea +* +* Ver 变更日期 负责人 变更内容 +* ─────────────────────────────────── +*V0.01 2025/6/10 16:56:20 SimonHsiao 初版 +* +* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved. +*┌──────────────────────────────────┐ +*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │ +*│ 作者:SimonHsiao │ +*└──────────────────────────────────┘ +*/ + +namespace Tiobon.Core.Model.Models +{ + + /// + /// 模板区域 (Dto.InsertInput) + /// + public class InsertGhrp_TemplateAreaInput : Ghrp_TemplateAreaBase + { + } +} diff --git a/Tiobon.Core.Model/Models/Ghrp/Ghrp_TemplateArea.cs b/Tiobon.Core.Model/Models/Ghrp/Ghrp_TemplateArea.cs new file mode 100644 index 00000000..9d229b88 --- /dev/null +++ b/Tiobon.Core.Model/Models/Ghrp/Ghrp_TemplateArea.cs @@ -0,0 +1,332 @@ +/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。 +* Ghrp_TemplateArea.cs +* +*功 能: N / A +* 类 名: Ghrp_TemplateArea +* +* Ver 变更日期 负责人 变更内容 +* ─────────────────────────────────── +*V0.01 2025/6/10 16:56:20 SimonHsiao 初版 +* +* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved. +*┌──────────────────────────────────┐ +*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │ +*│ 作者:SimonHsiao │ +*└──────────────────────────────────┘ +*/ +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using SqlSugar; + +namespace Tiobon.Core.Model.Models +{ + + /// + /// 模板区域 (Model) + /// + [SugarTable("Ghrp_TemplateArea", "Ghrp_TemplateArea"), Entity(TableCnName = "模板区域", TableName = "Ghrp_TemplateArea")] + public class Ghrp_TemplateArea : BasePoco + { + + /// + /// 模板ID + /// + public long? PerformanceTemplateId { get; set; } + + /// + /// 前端UUID + /// + [Display(Name = "uuid"), Description("前端UUID"), MaxLength(100, ErrorMessage = "前端UUID 不能超过 100 个字符")] + public string uuid { get; set; } + + /// + /// 区域分类 + /// + [Display(Name = "AreaType"), Description("区域分类"), MaxLength(100, ErrorMessage = "区域分类 不能超过 100 个字符")] + public string AreaType { get; set; } + + /// + /// 区域分类名称 + /// + [Display(Name = "AreaTypeName"), Description("区域分类名称"), MaxLength(100, ErrorMessage = "区域分类名称 不能超过 100 个字符")] + public string AreaTypeName { get; set; } + + /// + /// 区域标题 + /// + [Display(Name = "AreaTitle"), Description("区域标题"), MaxLength(255, ErrorMessage = "区域标题 不能超过 255 个字符")] + public string AreaTitle { get; set; } + + /// + /// 区域说明 + /// + [Display(Name = "AreaSubTitle"), Description("区域说明"), MaxLength(800, ErrorMessage = "区域说明 不能超过 800 个字符")] + public string AreaSubTitle { get; set; } + + /// + /// 标题字体大小 + /// + public int? AreaTitleFontSize { get; set; } + + /// + /// 说明字体大小 + /// + public int? AreaSubTitleFontSize { get; set; } + + /// + /// 标题LangKey + /// + [Display(Name = "AreaTitleLangKey"), Description("标题LangKey"), MaxLength(255, ErrorMessage = "标题LangKey 不能超过 255 个字符")] + public string AreaTitleLangKey { get; set; } + + /// + /// 标题LangKey + /// + [Display(Name = "AreaSubTitleLangKey"), Description("标题LangKey"), MaxLength(255, ErrorMessage = "标题LangKey 不能超过 255 个字符")] + public string AreaSubTitleLangKey { get; set; } + + /// + /// 区域隐藏 + /// + public bool? AreaHide { get; set; } + + /// + /// 权重合计显示 + /// + public bool? ShowWeightSum { get; set; } + + /// + /// 区域元素list + /// + [Display(Name = "ElList"), Description("区域元素list"), MaxLength(-1, ErrorMessage = "区域元素list 不能超过 -1 个字符")] + public string ElList { get; set; } + + /// + /// 区域元素列数 + /// + public int? ElColNums { get; set; } + + /// + /// 区域元素字体大小 + /// + public int? ElFontSize { get; set; } + + /// + /// 元素标题对齐方式 + /// + [Display(Name = "ElLabelAlign"), Description("元素标题对齐方式"), MaxLength(255, ErrorMessage = "元素标题对齐方式 不能超过 255 个字符")] + public string ElLabelAlign { get; set; } + + /// + /// 区域元素对齐方式 + /// + [Display(Name = "ElAlign"), Description("区域元素对齐方式"), MaxLength(255, ErrorMessage = "区域元素对齐方式 不能超过 255 个字符")] + public string ElAlign { get; set; } + + /// + /// 显示分数 + /// + public bool? ShowScore { get; set; } + + /// + /// 显示等级 + /// + public bool? ShowGrade { get; set; } + + /// + /// 分数显示位数 + /// + public int? ScorePrecision { get; set; } + + /// + /// 等级显示格式 + /// + [Display(Name = "GradeFormat"), Description("等级显示格式"), MaxLength(-1, ErrorMessage = "等级显示格式 不能超过 -1 个字符")] + public string GradeFormat { get; set; } + + /// + /// 显示操作人 + /// + public bool? ShowOpStaff { get; set; } + + /// + /// 显示操作时间 + /// + public bool? ShowOpTime { get; set; } + + /// + /// 显示操作类型 + /// + public bool? ShowOpDoType { get; set; } + + /// + /// 显示操作备注 + /// + public bool? ShowOpRemark { get; set; } + + /// + /// 请假分组 + /// + [Display(Name = "LeaveTypeGroup"), Description("请假分组"), MaxLength(-1, ErrorMessage = "请假分组 不能超过 -1 个字符")] + public string LeaveTypeGroup { get; set; } + + /// + /// 选择假别 + /// + [Display(Name = "LeaveType"), Description("选择假别"), MaxLength(1000, ErrorMessage = "选择假别 不能超过 1000 个字符")] + public string LeaveType { get; set; } + + /// + /// 显示缺勤天数 + /// + public bool? ShowAbsence { get; set; } + + /// + /// 奖励 + /// + [Display(Name = "Reward"), Description("奖励"), MaxLength(-1, ErrorMessage = "奖励 不能超过 -1 个字符")] + public string Reward { get; set; } + + /// + /// 惩罚 + /// + [Display(Name = "Punish"), Description("惩罚"), MaxLength(-1, ErrorMessage = "惩罚 不能超过 -1 个字符")] + public string Punish { get; set; } + + /// + /// 关联模板 + /// + public long? QuoteTpl { get; set; } + + /// + /// 关联区域 + /// + public long? QuoteArea { get; set; } + + /// + /// 关联区域元素 + /// + public long? QuoteEl { get; set; } + + /// + /// 关联期间类别 + /// + public long? QuotePeriodType { get; set; } + + /// + /// 关联期间 + /// + public long? QuotePeriod { get; set; } + + /// + /// 头像显示 + /// + public bool? ShowStaffPhoto { get; set; } + + /// + /// 工号显示 + /// + public bool? ShowStaffNo { get; set; } + + /// + /// 姓名显示 + /// + public bool? ShowStaffName { get; set; } + + /// + /// 提交时间显示 + /// + public bool? ShowFlowTime { get; set; } + + /// + /// 备注 + /// + [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")] + public string RemarkSz { get; set; } + + /// + /// 排序 + /// + public int? SortNo { get; set; } + + /// + /// 默认标志 + /// + public int? IsDefault { get; set; } + + /// + /// 预留字段1 + /// + [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")] + public string Reverse1 { get; set; } + + /// + /// 预留字段2 + /// + [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")] + public string Reverse2 { get; set; } + + /// + /// 预留字段3 + /// + [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")] + public string Reverse3 { get; set; } + + /// + /// 预留字段4 + /// + [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")] + public string Reverse4 { get; set; } + + /// + /// 预留字段5 + /// + [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")] + public string Reverse5 { get; set; } + + /// + /// 预留字段6 + /// + [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")] + public string Reverse6 { get; set; } + + /// + /// 预留字段7 + /// + [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")] + public string Reverse7 { get; set; } + + /// + /// 预留字段8 + /// + [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")] + public string Reverse8 { get; set; } + + /// + /// 预留字段9 + /// + [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")] + public string Reverse9 { get; set; } + + /// + /// 预留字段10 + /// + [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")] + public string Reverse10 { get; set; } + + /// + /// 预留字段11 + /// + public int? ReverseI1 { get; set; } + + /// + /// 预留字段12 + /// + public int? ReverseI2 { get; set; } + + /// + /// 内置 + /// + public int? BuiltIn { get; set; } + } +} diff --git a/Tiobon.Core.Model/View/Ghrp/Ghrp_TemplateArea.Dto.View.cs b/Tiobon.Core.Model/View/Ghrp/Ghrp_TemplateArea.Dto.View.cs new file mode 100644 index 00000000..47c2b573 --- /dev/null +++ b/Tiobon.Core.Model/View/Ghrp/Ghrp_TemplateArea.Dto.View.cs @@ -0,0 +1,34 @@ +/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。 +* Ghrp_TemplateArea.cs +* +*功 能: N / A +* 类 名: Ghrp_TemplateArea +* +* Ver 变更日期 负责人 变更内容 +* ─────────────────────────────────── +*V0.01 2025/6/10 16:56:20 SimonHsiao 初版 +* +* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved. +*┌──────────────────────────────────┐ +*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │ +*│ 作者:SimonHsiao │ +*└──────────────────────────────────┘ +*/ + +namespace Tiobon.Core.Model.Models; + +/// +/// 模板区域(Dto.View1) +/// +public class Ghrp_TemplateAreaDto : Ghrp_TemplateArea +{ +/// +/// 创建信息 +/// +public string CreateDataInfo { get; set; } + +/// +/// 修改信息 +/// +public string UpdateDataInfo { get; set; } +} diff --git a/Tiobon.Core.Services/Ghrp/Ghrp_TemplateAreaServices.cs b/Tiobon.Core.Services/Ghrp/Ghrp_TemplateAreaServices.cs new file mode 100644 index 00000000..9de907fa --- /dev/null +++ b/Tiobon.Core.Services/Ghrp/Ghrp_TemplateAreaServices.cs @@ -0,0 +1,250 @@ +namespace Tiobon.Core.Services +{ + /// + /// 模板区域 (服务) + /// + public class Ghrp_TemplateAreaServices : BaseServices, IGhrp_TemplateAreaServices + { + private readonly IBaseRepository _dal; + public Ghrp_TemplateAreaServices(ICaching caching, IBaseRepository dal) + { + this._dal = dal; + base.BaseDal = dal; + base._caching = caching; + } + + #region 初始化模板参数 + /// + /// 初始化加载 区域元素 + /// + /// + public async Task> InitAreaInfo() + { + string sql = @"select (select 'Label' type,ColumnName field,StaffInfoColumnName [text] + from Ghra_StaffTemplateInfoGroupColumn a inner join Ghra_StaffInfoColumn b on a.StaffInfoColumnID = b.StaffInfoColumnId + where StaffTemplateId =1 + and a.IsEnable=1 and b.IsEnable=1 and b.IsRelease = 1 + and GroupType='base' + and IsDisplay=1 + order by RowNum,ColNum + for json path) StaffInfo, + (select 'Label' [type],field field,[label] [text] + from Ghrs_PageSettingEdit + where IsEnable=1 + and pageNo = 'F_PerformancePeriod' + and defaultHidden != 'true' + and elementType != 'FnKey' + order by RowNum,ColNum + for json path) PerformancePeriodInfo"; + DataTable dt = await Db.Ado.GetDataTableAsync(sql); + string StaffInfo = dt.Rows[0]["StaffInfo"].ToString(); + if (string.IsNullOrEmpty(StaffInfo)) StaffInfo = "[]"; + string PerformancePeriodInfo = dt.Rows[0]["PerformancePeriodInfo"].ToString(); + if (string.IsNullOrEmpty(PerformancePeriodInfo)) PerformancePeriodInfo = "[]"; + + string JsonStr = @"[ + { + ""title"": ""摘要区"", + ""name"": ""AbstractArea"", + ""children"": [ + { + ""groupName"": ""基本信息"", + ""groupList"": "+ StaffInfo + @" + }, + { + ""groupName"": ""考核期间信息"", + ""groupList"": " + PerformancePeriodInfo + @" + } + ] + }, + { + ""title"": ""考核单说明区"", + ""name"": ""DescriptionArea"", + ""children"": [ + { + ""groupName"": ""控件选择"", + ""groupList"": [ + { + ""type"": ""RichText"", + ""field"": null, + ""text"": ""富文本框"" + } + ] + } + ] + }, + { + ""title"": ""指标区"", + ""name"": ""TargetArea"", + ""children"": [ + { + ""groupName"": ""控件选择"", + ""groupList"": [ + { + ""type"": ""Table"", + ""field"": null, + ""text"": ""表格"" + } + ] + } + ] + }, + { + ""title"": ""调整显示区"", + ""name"": ""AdjustArea"", + ""children"": [ + { + ""groupName"": ""控件选择"", + ""groupList"": [ + { + ""type"": ""Input"", + ""field"": null, + ""text"": ""单行文本框"" + } + ] + } + ] + }, + { + ""title"": ""评语区"", + ""name"": ""CommentArea"", + ""children"": [ + { + ""groupName"": ""控件选择"", + ""groupList"": [ + { + ""type"": ""Input"", + ""field"": null, + ""text"": ""单行文本框"" + }, + { + ""type"": ""InputTextArea"", + ""field"": null, + ""text"": ""多行文本框"" + } + ] + } + ] + }, + { + ""title"": ""页面按钮区"", + ""name"": ""ButtonArea"", + ""children"": [ + { + ""groupName"": ""控件选择"", + ""groupList"": [ + { + ""type"": ""Button"", + ""field"": ""Save"", + ""text"": ""暂存"" + }, + { + ""type"": ""Button"", + ""field"": ""Reject"", + ""text"": ""驳回"" + }, + { + ""type"": ""Button"", + ""field"": ""Submit"", + ""text"": ""提交"" + }, + { + ""type"": ""Button"", + ""field"": ""Export"", + ""text"": ""导出"" + }, + { + ""type"": ""Button"", + ""field"": ""Close"", + ""text"": ""关闭"" + } + ] + } + ] + }, + { + ""title"": ""最终显示区"", + ""name"": ""FinalArea"", + ""children"": [] + }, + { + ""title"": ""操作历史区"", + ""name"": ""HistoryArea"", + ""children"": [] + }, + { + ""title"": ""考勤信息区"", + ""name"": ""AttendanceArea"", + ""children"": [] + }, + { + ""title"": ""奖惩信息区"", + ""name"": ""RewardsArea"", + ""children"": [] + }, + { + ""title"": ""自定义区域"", + ""name"": ""CustomizeArea"", + ""children"": [ + { + ""groupName"": ""控件选择"", + ""groupList"": [ + { + ""type"": ""Input"", + ""field"": null, + ""text"": ""单行文本框"" + }, + { + ""type"": ""InputTextArea"", + ""field"": null, + ""text"": ""多行文本框"" + }, + { + ""type"": ""ApiSelect"", + ""field"": null, + ""text"": ""下拉框"" + } + ] + } + ] + }, + { + ""title"": ""引用区域"", + ""name"": ""QuoteArea"", + ""children"": [] + }, + { + ""title"": ""流程区域"", + ""name"": ""FlowArea"", + ""children"": [] + }, + { + ""title"": ""附件区域"", + ""name"": ""FileUploadArea"", + ""children"": [] + } + ]"; + var Result = JArray.Parse(JsonStr); + return ServiceResult.OprateSuccess("查询成功!", Result); + } + + /// + /// 获取 指标匹配字段 + /// + /// + public async Task> ItemMatchField() + { + string sql = @"select field,label,dbo.FS_GetdataSourceBySet(dataSource,APIDataSourceType,Ghrs_PageSettingEdit.APIDataSourceID) dataSource + ,elementType,dataType + from Ghrs_PageSettingEdit + where IsEnable=1 + and pageNo = 'F_PerformanceItem' + and (field like 'Tag%')"; + DataTable dt = await Db.Ado.GetDataTableAsync(sql); + + return ServiceResult.OprateSuccess("查询成功!", dt); + } + + #endregion + } +} \ No newline at end of file