From 92291d66c2e67764e604a9a2b6246c937eef289c Mon Sep 17 00:00:00 2001 From: "DEVICE8\\12494" Date: Tue, 4 Apr 2023 14:43:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=9F=BA=E7=A1=80=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8E=A5=E5=8F=A3=E5=BA=93=EF=BC=8CMOM=E5=B7=A5?= =?UTF-8?q?=E8=89=BA=E8=B7=AF=E7=BA=BF=E6=A8=A1=E7=89=88=E5=B7=A6=E4=BE=A7?= =?UTF-8?q?=E6=A0=91=E5=BD=A2=E7=BB=93=E6=9E=84=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Tnb.BasicData.Entitys/Class1.cs | 7 ++ Tnb.BasicData.Entitys/Entity/BasRoute.cs | 88 +++++++++++++++++++ Tnb.BasicData.Entitys/Model/RouteModel.cs | 33 +++++++ .../Tnb.BasicData.Entitys.csproj | 18 ++++ .../Tnb.BasicData.Interfaces.csproj | 14 +++ Tnb.BasicData/RouteTreeService.cs | 76 ++++++++++++++++ Tnb.BasicData/Tnb.BasicData.csproj | 17 ++++ Tnb.Server.sln | 23 +++++ apihost/Tnb.API.Entry/Tnb.API.Entry.csproj | 1 + common/Tnb.Common/Contracts/BaseEntity`1.cs | 20 +++++ common/Tnb.Common/Enums/RouteType.cs | 36 ++++++++ 11 files changed, 333 insertions(+) create mode 100644 Tnb.BasicData.Entitys/Class1.cs create mode 100644 Tnb.BasicData.Entitys/Entity/BasRoute.cs create mode 100644 Tnb.BasicData.Entitys/Model/RouteModel.cs create mode 100644 Tnb.BasicData.Entitys/Tnb.BasicData.Entitys.csproj create mode 100644 Tnb.BasicData.Interfaces/Tnb.BasicData.Interfaces.csproj create mode 100644 Tnb.BasicData/RouteTreeService.cs create mode 100644 Tnb.BasicData/Tnb.BasicData.csproj create mode 100644 common/Tnb.Common/Contracts/BaseEntity`1.cs create mode 100644 common/Tnb.Common/Enums/RouteType.cs diff --git a/Tnb.BasicData.Entitys/Class1.cs b/Tnb.BasicData.Entitys/Class1.cs new file mode 100644 index 00000000..0264ac3e --- /dev/null +++ b/Tnb.BasicData.Entitys/Class1.cs @@ -0,0 +1,7 @@ +namespace Tnb.BasicData.Entitys +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/Tnb.BasicData.Entitys/Entity/BasRoute.cs b/Tnb.BasicData.Entitys/Entity/BasRoute.cs new file mode 100644 index 00000000..64c0d56a --- /dev/null +++ b/Tnb.BasicData.Entitys/Entity/BasRoute.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using JNPF.Common.Contracts; +using SqlSugar; +using Tnb.Common.Contracts; + +namespace Tnb.BasicData.Entitys.Entity +{ + /// + /// 工艺路线资料 + /// + [SugarTable("bas_route")] + public class BasRoute : BaseEntity + { + /// + /// 工艺路线代码 + /// + [SugarColumn(ColumnName = "route_code")] + public string RouteCode { get; set; } + /// + /// 工艺路线名称 + /// + [SugarColumn(ColumnName = "route_name")] + public string RouteName { get; set; } + /// + /// 工艺路线版本 + /// + [SugarColumn(ColumnName = "version")] + public string Version { get; set; } + /// + /// 工艺路线类型: 标准途程:Standard 返工途程:Rework 试制途程:Trial 返修途程:RMA + /// + [SugarColumn(ColumnName = "route_type")] + public string RouteType { get; set; } + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "create_time")] + public DateTime CreateTime { get; set; } + /// + /// 修改时间 + /// + [SugarColumn(ColumnName = "modify_time")] + public DateTime? ModifyTime { get; set; } + /// + /// 扩展字段 + /// + [SugarColumn(ColumnName = "extras")] + public string? Extras { get; set; } + /// + /// 租户ID + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "tenant_id")] + public string? TenantId { get; set; } + /// + /// 所属组织ID + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "org_id")] + public string? OrgId { get; set; } + /// + /// 备注 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "remark")] + public string? Remark { get; set; } + /// + /// 时间戳(用于并发控制) + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "timestamp")] + public string? Timestamp { get; set; } + /// + /// 创建用户 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "create_id")] + public string? CreateId { get; set; } + /// + /// 修改用户 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "modify_id")] + public string? ModifyId { get; set; } + } +} diff --git a/Tnb.BasicData.Entitys/Model/RouteModel.cs b/Tnb.BasicData.Entitys/Model/RouteModel.cs new file mode 100644 index 00000000..83c5553a --- /dev/null +++ b/Tnb.BasicData.Entitys/Model/RouteModel.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.BasicData.Entitys.Model +{ + public class RouteTree + { + /// + /// 工艺路线类型 + /// + public string RouteType { get; set; } + /// + /// 工艺路线名称 + /// + public List RouteName { get; set; } + + } + + public class RouteName + { + public string Tag { get; set; } + /// + /// 工艺路线版本 + /// + public List RouteVersion { get; set; } + } + + + +} diff --git a/Tnb.BasicData.Entitys/Tnb.BasicData.Entitys.csproj b/Tnb.BasicData.Entitys/Tnb.BasicData.Entitys.csproj new file mode 100644 index 00000000..c2fc7cb8 --- /dev/null +++ b/Tnb.BasicData.Entitys/Tnb.BasicData.Entitys.csproj @@ -0,0 +1,18 @@ + + + + net6.0 + enable + enable + + + + + + + + + + + + diff --git a/Tnb.BasicData.Interfaces/Tnb.BasicData.Interfaces.csproj b/Tnb.BasicData.Interfaces/Tnb.BasicData.Interfaces.csproj new file mode 100644 index 00000000..c8883128 --- /dev/null +++ b/Tnb.BasicData.Interfaces/Tnb.BasicData.Interfaces.csproj @@ -0,0 +1,14 @@ + + + + net6.0 + enable + enable + True + + + + + + + diff --git a/Tnb.BasicData/RouteTreeService.cs b/Tnb.BasicData/RouteTreeService.cs new file mode 100644 index 00000000..ba86e629 --- /dev/null +++ b/Tnb.BasicData/RouteTreeService.cs @@ -0,0 +1,76 @@ +using System.CodeDom; +using Aspose.Cells; +using JNPF.Common.Core.Manager; +using JNPF.DependencyInjection; +using JNPF.DynamicApiController; +using JNPF.Systems.Entitys.System; +using JNPF.Systems.Interfaces.System; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Spire.Presentation; +using SqlSugar; +using Tnb.BasicData.Entitys.Entity; +using Tnb.BasicData.Entitys.Model; + +namespace Tnb.BasicData +{ + /// + /// MOM基础数据服务 + /// + [ApiDescriptionSettings(Tag = "BasicData", Name = "RouteLineTemplate", Order = 700)] + [Route("api/Route/[controller]")] + public class RouteTreeService : IDynamicApiController, ITransient + { + private readonly ISqlSugarRepository _repository; + private readonly DataBaseManager _dbManager; + private readonly IDictionaryDataService _dictionaryDataService; + + public RouteTreeService( + IDictionaryDataService dictionaryDataService, + ISqlSugarRepository repository, + DataBaseManager dbManager) + { + _dictionaryDataService = dictionaryDataService; + _repository = repository; + _dbManager = dbManager; + } + /// + /// 返回工艺路线树形结构 + /// + /// 工艺路线模版树形结构 + [AllowAnonymous] + [HttpGet("route-tree")] + public async Task> GetRouteTreeList() + { + var dictaryDataList = await _dictionaryDataService.GetList("24950639717653"); + var dictaryData = dictaryDataList.ToDictionary(x => x.EnCode, x => x.FullName); + SqlSugarScope sugarClient = null!; + var result = new List(); + var momDbLink = await _repository.AsSugarClient().Queryable().FirstAsync(x => x.FullName == "tnb_mom"); + if (momDbLink != null) + { + sugarClient = _dbManager.ChangeDataBase(momDbLink); + } + + var list = await sugarClient.Queryable().ToListAsync(); + if (list?.Count > 0) + { + var routeGroups = list.GroupBy(g => g.RouteType); + foreach (var routeGroup in routeGroups) + { + var routeTree = new RouteTree(); + routeTree.RouteType = dictaryData.ContainsKey(routeGroup.Key) ? dictaryData[routeGroup.Key] : ""; + var routeNameGroup = routeGroup.GroupBy(g => new { g.RouteName, g.RouteCode }); + + routeTree.RouteName = routeNameGroup.Select(x => new RouteName + { + Tag = $"{x.Key.RouteName}|{x.Key.RouteCode}", + RouteVersion = x.Select(t => t.Version).ToList(), + }).ToList(); + result.Add(routeTree); + } + } + return result; + } + } +} \ No newline at end of file diff --git a/Tnb.BasicData/Tnb.BasicData.csproj b/Tnb.BasicData/Tnb.BasicData.csproj new file mode 100644 index 00000000..68439026 --- /dev/null +++ b/Tnb.BasicData/Tnb.BasicData.csproj @@ -0,0 +1,17 @@ + + + + net6.0 + enable + enable + True + + + + + + + + + + diff --git a/Tnb.Server.sln b/Tnb.Server.sln index ac6da3f3..f30f130d 100644 --- a/Tnb.Server.sln +++ b/Tnb.Server.sln @@ -89,6 +89,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tnb.Extend.Interfaces", "ex EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tnb.SqlSugar", "common\Tnb.SqlSugar\Tnb.SqlSugar.csproj", "{E600E59F-18EE-4DBC-8298-BEF4307F69D9}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "09-BasicData", "09-BasicData", "{52B19E13-6B04-444C-A38A-B9955B199A98}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tnb.BasicData.Entitys", "Tnb.BasicData.Entitys\Tnb.BasicData.Entitys.csproj", "{1E09E797-7DFF-49B1-ABB8-290660DB4451}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tnb.BasicData.Interfaces", "Tnb.BasicData.Interfaces\Tnb.BasicData.Interfaces.csproj", "{12A5A0D3-C608-46AB-AC4C-5D5EF729AF8E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tnb.BasicData", "Tnb.BasicData\Tnb.BasicData.csproj", "{C37798AB-AF09-4260-BEF5-92F7D373A4EA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -215,6 +223,18 @@ Global {E600E59F-18EE-4DBC-8298-BEF4307F69D9}.Debug|Any CPU.Build.0 = Debug|Any CPU {E600E59F-18EE-4DBC-8298-BEF4307F69D9}.Release|Any CPU.ActiveCfg = Release|Any CPU {E600E59F-18EE-4DBC-8298-BEF4307F69D9}.Release|Any CPU.Build.0 = Release|Any CPU + {1E09E797-7DFF-49B1-ABB8-290660DB4451}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E09E797-7DFF-49B1-ABB8-290660DB4451}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E09E797-7DFF-49B1-ABB8-290660DB4451}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1E09E797-7DFF-49B1-ABB8-290660DB4451}.Release|Any CPU.Build.0 = Release|Any CPU + {12A5A0D3-C608-46AB-AC4C-5D5EF729AF8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12A5A0D3-C608-46AB-AC4C-5D5EF729AF8E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12A5A0D3-C608-46AB-AC4C-5D5EF729AF8E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12A5A0D3-C608-46AB-AC4C-5D5EF729AF8E}.Release|Any CPU.Build.0 = Release|Any CPU + {C37798AB-AF09-4260-BEF5-92F7D373A4EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C37798AB-AF09-4260-BEF5-92F7D373A4EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C37798AB-AF09-4260-BEF5-92F7D373A4EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C37798AB-AF09-4260-BEF5-92F7D373A4EA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -249,6 +269,9 @@ Global {08A36D02-DC53-4895-9E1C-E02BC1BBA890} = {A5AB62A9-B65A-4348-BC4A-60EF67FC1B9D} {2E9F8B23-37B9-42BD-A62F-140A38C43A89} = {A5AB62A9-B65A-4348-BC4A-60EF67FC1B9D} {E600E59F-18EE-4DBC-8298-BEF4307F69D9} = {E4872924-2348-4E06-881A-08625ED98E9F} + {1E09E797-7DFF-49B1-ABB8-290660DB4451} = {52B19E13-6B04-444C-A38A-B9955B199A98} + {12A5A0D3-C608-46AB-AC4C-5D5EF729AF8E} = {52B19E13-6B04-444C-A38A-B9955B199A98} + {C37798AB-AF09-4260-BEF5-92F7D373A4EA} = {52B19E13-6B04-444C-A38A-B9955B199A98} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {646DDD1C-F143-42C2-894F-F5C7B3A0CE74} diff --git a/apihost/Tnb.API.Entry/Tnb.API.Entry.csproj b/apihost/Tnb.API.Entry/Tnb.API.Entry.csproj index 43f19f9b..64149742 100644 --- a/apihost/Tnb.API.Entry/Tnb.API.Entry.csproj +++ b/apihost/Tnb.API.Entry/Tnb.API.Entry.csproj @@ -38,6 +38,7 @@ + diff --git a/common/Tnb.Common/Contracts/BaseEntity`1.cs b/common/Tnb.Common/Contracts/BaseEntity`1.cs new file mode 100644 index 00000000..8ed80155 --- /dev/null +++ b/common/Tnb.Common/Contracts/BaseEntity`1.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using JNPF.Common.Contracts; +using SqlSugar; + +namespace Tnb.Common.Contracts +{ + public class BaseEntity : IEntity where TKey : IEquatable + { + /// + /// 获取或设置 编号. + /// + [SugarColumn(ColumnName = "id", ColumnDescription = "主键", IsPrimaryKey = true)] + public TKey Id { get; set; } + } + +} diff --git a/common/Tnb.Common/Enums/RouteType.cs b/common/Tnb.Common/Enums/RouteType.cs new file mode 100644 index 00000000..4580837b --- /dev/null +++ b/common/Tnb.Common/Enums/RouteType.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.Common.Enums +{ + /// + /// 工艺路线类型 + /// + public enum RouteType + { + /// + /// 标准途程 + /// + [Description("标准途程")] + Standard=1, + /// + /// 返工途程 + /// + [Description("返工途程")] + Rework=2, + /// + /// 试制途程 + /// + [Description("试制途程")] + Trial=4, + /// + /// 返修途程 + /// + [Description("返修途程")] + RMA =8, + } +}