From 7bd4d48b63d0bd45a2ccf6272c6641b0df2d829b Mon Sep 17 00:00:00 2001 From: "DEVICE8\\12494" Date: Wed, 19 Apr 2023 13:38:51 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E6=8E=92=E4=BA=A7=E5=8A=9F=E8=83=BD=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Tnb.ProductionPlanMgr.Entitys/Class1.cs | 7 + .../Dto/WorkOrder/WorkOrderIssueCrInput.cs | 19 ++ .../Entity/PrdMoEntity.cs | 239 ++++++++++++++++++ .../Tnb.ProductionPlanMgr.Entitys.csproj | 14 + .../IWorkOrderCreateService.cs | 12 + .../Tnb.ProductionPlanMgr.Interfaces.csproj | 14 + .../Tnb.ProductionPlanMgr.csproj | 17 ++ .../WorkOrderCreateService.cs | 50 ++++ .../WorkOrderSchedulingService.cs | 23 ++ .../internals/BaseService.cs | 27 ++ Tnb.Server.sln | 29 ++- .../Configurations/ConnectionStrings.json | 2 +- apihost/Tnb.API.Entry/Tnb.API.Entry.csproj | 1 + system/Tnb.Systems/System/DbLinkService.cs | 14 +- visualdev/Tnb.VisualDev/RunService.cs | 3 +- visualdev/Tnb.VisualDev/VisualDevService.cs | 1 + 16 files changed, 461 insertions(+), 11 deletions(-) create mode 100644 Tnb.ProductionPlanMgr.Entitys/Class1.cs create mode 100644 Tnb.ProductionPlanMgr.Entitys/Dto/WorkOrder/WorkOrderIssueCrInput.cs create mode 100644 Tnb.ProductionPlanMgr.Entitys/Entity/PrdMoEntity.cs create mode 100644 Tnb.ProductionPlanMgr.Entitys/Tnb.ProductionPlanMgr.Entitys.csproj create mode 100644 Tnb.ProductionPlanMgr.Interfaces/IWorkOrderCreateService.cs create mode 100644 Tnb.ProductionPlanMgr.Interfaces/Tnb.ProductionPlanMgr.Interfaces.csproj create mode 100644 Tnb.ProductionPlanMgr/Tnb.ProductionPlanMgr.csproj create mode 100644 Tnb.ProductionPlanMgr/WorkOrderCreateService.cs create mode 100644 Tnb.ProductionPlanMgr/WorkOrderSchedulingService.cs create mode 100644 Tnb.ProductionPlanMgr/internals/BaseService.cs diff --git a/Tnb.ProductionPlanMgr.Entitys/Class1.cs b/Tnb.ProductionPlanMgr.Entitys/Class1.cs new file mode 100644 index 00000000..d6367141 --- /dev/null +++ b/Tnb.ProductionPlanMgr.Entitys/Class1.cs @@ -0,0 +1,7 @@ +namespace Tnb.ProductionPlanMgr.Entitys +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/Tnb.ProductionPlanMgr.Entitys/Dto/WorkOrder/WorkOrderIssueCrInput.cs b/Tnb.ProductionPlanMgr.Entitys/Dto/WorkOrder/WorkOrderIssueCrInput.cs new file mode 100644 index 00000000..d3c9084c --- /dev/null +++ b/Tnb.ProductionPlanMgr.Entitys/Dto/WorkOrder/WorkOrderIssueCrInput.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.ProductionPlanMgr.Entitys.Dto.WorkOrder +{ + /// + /// 生产工单下发输入参数 + /// + public class WorkOrderIssueCrInput + { + /// + /// 生产工单Id列表 + /// + public List WorkOrderIds { get; set; } + } +} diff --git a/Tnb.ProductionPlanMgr.Entitys/Entity/PrdMoEntity.cs b/Tnb.ProductionPlanMgr.Entitys/Entity/PrdMoEntity.cs new file mode 100644 index 00000000..e4f2a0a6 --- /dev/null +++ b/Tnb.ProductionPlanMgr.Entitys/Entity/PrdMoEntity.cs @@ -0,0 +1,239 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using Tnb.Common.Contracts; + +namespace Tnb.ProductionPlanMgr.Entitys.Entity +{ + /// + /// MES生产工单 + /// + [SugarTable("prd_mo")] + public class PrdMoEntity : BaseEntity + { + /// + /// 租户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; } + /// + /// 工单代码 + /// + [SugarColumn(ColumnName = "mo_code")] + public string MoCode { get; set; } + /// + /// 产品代码, BAS_MATERIA.MATERIALCODE BAS_ITEM.ITEMCODE + /// + [SugarColumn(ColumnName = "item_code")] + public string ItemCode { get; set; } + /// + /// 产品附属信息 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "item_attribute")] + public string ItemAttribute { get; set; } + /// + /// 工单类型:1-正常工单、2-返工工单、3-试制工单 + /// + [SugarColumn(ColumnName = "mo_type")] + public string MoType { get; set; } + /// + /// 生产状态 Initial: 初始, Confirm:确认 Release: 下发, Open: 生产中, Close: 关单, Pending: 暂停 + /// + [SugarColumn(ColumnName = "mo_status")] + public string MoStatus { get; set; } + /// + /// 生产数量 + /// + [SugarColumn(ColumnName = "plan_qty")] + public decimal PlanQty { get; set; } + /// + /// 已投入数量 + /// + [SugarColumn(ColumnName = "input_qty")] + public decimal? InputQty { get; set; } + /// + /// 已完工数量 + /// + [SugarColumn(ColumnName = "complete_qty")] + public decimal? CompleteQty { get; set; } + /// + /// 报废数量 + /// + [SugarColumn(ColumnName = "scrap_qty")] + public decimal? ScrapQty { get; set; } + /// + /// 计划开始时间 + /// + [SugarColumn(ColumnName = "plan_start_date")] + public DateTime PlanStartDate { get; set; } + /// + /// 计划结束时间 + /// + [SugarColumn(ColumnName = "plan_end_date")] + public DateTime PlanEndDate { get; set; } + /// + /// 实际开工日期 + /// + [SugarColumn(ColumnName = "act_start_date")] + public DateTime? ActStartDate { get; set; } + /// + /// 实际完工日期 + /// + [SugarColumn(ColumnName = "act_end_date")] + public DateTime? ActEndDate { get; set; } + /// + /// 生产部门ID + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "dept_id")] + public string DeptId { get; set; } + /// + /// 客户代码 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "customer_code")] + public string CustomerCode { get; set; } + /// + /// 订单号 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "order_no")] + public string OrderNo { get; set; } + /// + /// 订单行号 + /// + [SugarColumn(ColumnName = "order_seq")] + public int? OrderSeq { get; set; } + /// + /// BOM版本 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "bom_version")] + public string BomVersion { get; set; } + /// + /// 关联比例 + /// + [SugarColumn(ColumnName = "relation_ratio")] + public decimal? RelationRatio { get; set; } + /// + /// 下发人员ID + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "mo_down_user_id")] + public string MoDownUserId { get; set; } + /// + /// 下发人员名称 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "mo_down_user_name")] + public string MoDownUserName { get; set; } + /// + /// 下发日期 + /// + [SugarColumn(ColumnName = "mo_down_date")] + public DateTime? MoDownDate { get; set; } + /// + /// 备注 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "remark")] + public string Remark { get; set; } + /// + /// 工作中心代码 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "work_center_code")] + public string WorkCenterCode { get; set; } + /// + /// 主工单代码 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "parent_mo_code")] + public string ParentMoCode { get; set; } + /// + /// 排程开始时间 + /// + [SugarColumn(ColumnName = "seduling_start_date")] + public DateTime? SedulingStartDate { get; set; } + /// + /// 排程结束时间 + /// + [SugarColumn(ColumnName = "seduling_end_date")] + public DateTime? SedulingEndDate { get; set; } + /// + /// 是否生派工单 + /// + [SugarColumn(ColumnName = "is_create_dispatch")] + public int? IsCreateDispatch { get; set; } + /// + /// 子工单序号(1开始,最大+1,不强制连续) + /// + [SugarColumn(ColumnName = "seq")] + public int? Seq { get; set; } + /// + /// 数据来源 10-计划,20-插入,30-导入 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "data_sources")] + public string DataSources { get; set; } + /// + /// 产线代码 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "production_linecode")] + public string ProductionLinecode { get; set; } + /// + /// ismerge + /// + [SugarColumn(ColumnName = "is_merge")] + public int? IsMerge { get; set; } + /// + /// 组合工单 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "combine_mo_code")] + public string CombineMoCode { get; set; } + /// + /// 时间戳 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "time_stamp")] + public string TimeStamp { get; set; } + /// + /// 创建用户 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "create_id")] + public string CreateId { get; set; } + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "create_time")] + public DateTime? CreateTime { get; set; } + /// + /// 修改用户 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "modify_id")] + public string ModifyId { get; set; } + /// + /// 修改时间 + /// + [SugarColumn(ColumnName = "modify_time")] + public DateTime? ModifyTime { get; set; } + /// + /// 扩展字段 + /// + [SugarColumn(ColumnName = "extras")] + public string Extras { get; set; } + } +} diff --git a/Tnb.ProductionPlanMgr.Entitys/Tnb.ProductionPlanMgr.Entitys.csproj b/Tnb.ProductionPlanMgr.Entitys/Tnb.ProductionPlanMgr.Entitys.csproj new file mode 100644 index 00000000..01bb3f48 --- /dev/null +++ b/Tnb.ProductionPlanMgr.Entitys/Tnb.ProductionPlanMgr.Entitys.csproj @@ -0,0 +1,14 @@ + + + + net6.0 + enable + enable + True + + + + + + + diff --git a/Tnb.ProductionPlanMgr.Interfaces/IWorkOrderCreateService.cs b/Tnb.ProductionPlanMgr.Interfaces/IWorkOrderCreateService.cs new file mode 100644 index 00000000..9570bb1f --- /dev/null +++ b/Tnb.ProductionPlanMgr.Interfaces/IWorkOrderCreateService.cs @@ -0,0 +1,12 @@ +using Tnb.ProductionPlanMgr.Entitys.Dto.WorkOrder; + +namespace Tnb.ProductionPlanMgr.Interfaces +{ + /// + /// 工单生成 + /// + public interface IWorkOrderCreateService + { + Task WorkOrderIssue(WorkOrderIssueCrInput input); + } +} \ No newline at end of file diff --git a/Tnb.ProductionPlanMgr.Interfaces/Tnb.ProductionPlanMgr.Interfaces.csproj b/Tnb.ProductionPlanMgr.Interfaces/Tnb.ProductionPlanMgr.Interfaces.csproj new file mode 100644 index 00000000..6fb744e9 --- /dev/null +++ b/Tnb.ProductionPlanMgr.Interfaces/Tnb.ProductionPlanMgr.Interfaces.csproj @@ -0,0 +1,14 @@ + + + + net6.0 + enable + enable + True + + + + + + + diff --git a/Tnb.ProductionPlanMgr/Tnb.ProductionPlanMgr.csproj b/Tnb.ProductionPlanMgr/Tnb.ProductionPlanMgr.csproj new file mode 100644 index 00000000..126ca9b8 --- /dev/null +++ b/Tnb.ProductionPlanMgr/Tnb.ProductionPlanMgr.csproj @@ -0,0 +1,17 @@ + + + + net6.0 + enable + enable + True + + + + + + + + + + diff --git a/Tnb.ProductionPlanMgr/WorkOrderCreateService.cs b/Tnb.ProductionPlanMgr/WorkOrderCreateService.cs new file mode 100644 index 00000000..19654e3d --- /dev/null +++ b/Tnb.ProductionPlanMgr/WorkOrderCreateService.cs @@ -0,0 +1,50 @@ +using JNPF.Common.Core.Manager; +using JNPF.DependencyInjection; +using JNPF.DynamicApiController; +using JNPF.Systems.Entitys.System; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using NPOI.OpenXmlFormats.Shared; +using SqlSugar; +using Tnb.ProductionPlanMgr.Entitys.Dto.WorkOrder; +using Tnb.ProductionPlanMgr.Entitys.Entity; +using Tnb.ProductionPlanMgr.Interfaces; + +namespace Tnb.ProductionPlanMgr +{ + /// + /// 生产计划管理 + /// + [ApiDescriptionSettings(Tag = "ProductPlanMgr", Name = "WorkOrderCreate", Order = 700)] + [Route("api/production/[controller]")] + public class WorkOrderCreateService :IWorkOrderCreateService,IDynamicApiController, ITransient + { + private readonly ISqlSugarRepository _repository; + private readonly IDataBaseManager _dataBaseManager; + public WorkOrderCreateService(ISqlSugarRepository repository, IDataBaseManager dataBaseManager) + { + _repository = repository; + _dataBaseManager = dataBaseManager; + } + /// + /// 生产工单创建-生产工单下发 + /// + /// 生产工单下发输入参数 + /// + [HttpPut("workorder-issue")] + public async Task WorkOrderIssue(WorkOrderIssueCrInput input) + { + if (input is null) + { + throw new ArgumentNullException(nameof(input)); + } + var link = await _repository.AsSugarClient().Queryable().FirstAsync(x => x.FullName == "tnb_mes"); + var db = _dataBaseManager.ChangeDataBase(link); + var row = await db.Updateable() + .SetColumns(it => new PrdMoEntity { MoStatus = "25019232867093" }) + .Where(it => input.WorkOrderIds.Contains(it.Id)) + .ExecuteCommandAsync(); + return (row > 0); + } + } +} \ No newline at end of file diff --git a/Tnb.ProductionPlanMgr/WorkOrderSchedulingService.cs b/Tnb.ProductionPlanMgr/WorkOrderSchedulingService.cs new file mode 100644 index 00000000..dfba6aad --- /dev/null +++ b/Tnb.ProductionPlanMgr/WorkOrderSchedulingService.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Aspose.Cells; +using JNPF.DependencyInjection; +using JNPF.DynamicApiController; +using Microsoft.AspNetCore.Mvc; + +namespace Tnb.ProductionPlanMgr +{ + [ApiDescriptionSettings(Tag = "ProductPlanMgr", Name = "WorkOrderScheduling", Order = 700)] + [Route("api/production/[controller]")] + public class WorkOrderSchedulingService: IDynamicApiController, ITransient + { + + public WorkOrderSchedulingService() + { + + } + } +} diff --git a/Tnb.ProductionPlanMgr/internals/BaseService.cs b/Tnb.ProductionPlanMgr/internals/BaseService.cs new file mode 100644 index 00000000..14933bef --- /dev/null +++ b/Tnb.ProductionPlanMgr/internals/BaseService.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using JNPF; +using JNPF.Common.Core.Manager; +using JNPF.DependencyInjection; +using JNPF.Systems.Entitys.System; +using SqlSugar; + +namespace Tnb.ProductionPlanMgr.internals +{ + public class BaseService : ITransient + { + private readonly Dictionary _dbContextDic = new(StringComparer.OrdinalIgnoreCase); + static BaseService() + { + var repo = App.GetService>(); + var = await repo.GetListAsync(); + var dbMgr = App.GetService(); + + } + + + } +} diff --git a/Tnb.Server.sln b/Tnb.Server.sln index f30f130d..ec7d3b6e 100644 --- a/Tnb.Server.sln +++ b/Tnb.Server.sln @@ -91,11 +91,19 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tnb.SqlSugar", "common\Tnb. 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}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "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}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "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}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tnb.BasicData", "Tnb.BasicData\Tnb.BasicData.csproj", "{C37798AB-AF09-4260-BEF5-92F7D373A4EA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "10-ProductionPlanMgr", "10-ProductionPlanMgr", "{ABE58B5E-610B-4159-BFF0-8B04BF700B3C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tnb.ProductionPlanMgr", "Tnb.ProductionPlanMgr\Tnb.ProductionPlanMgr.csproj", "{1E8D442B-D136-4D1A-A265-16E2DE19D938}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tnb.ProductionPlanMgr.Entitys", "Tnb.ProductionPlanMgr.Entitys\Tnb.ProductionPlanMgr.Entitys.csproj", "{CE77DCAE-5210-4876-8C52-443823FF886F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tnb.ProductionPlanMgr.Interfaces", "Tnb.ProductionPlanMgr.Interfaces\Tnb.ProductionPlanMgr.Interfaces.csproj", "{BCC64BB9-B22C-475E-BF6C-BF22B644C359}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -235,6 +243,18 @@ Global {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 + {1E8D442B-D136-4D1A-A265-16E2DE19D938}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E8D442B-D136-4D1A-A265-16E2DE19D938}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E8D442B-D136-4D1A-A265-16E2DE19D938}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1E8D442B-D136-4D1A-A265-16E2DE19D938}.Release|Any CPU.Build.0 = Release|Any CPU + {CE77DCAE-5210-4876-8C52-443823FF886F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CE77DCAE-5210-4876-8C52-443823FF886F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CE77DCAE-5210-4876-8C52-443823FF886F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CE77DCAE-5210-4876-8C52-443823FF886F}.Release|Any CPU.Build.0 = Release|Any CPU + {BCC64BB9-B22C-475E-BF6C-BF22B644C359}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BCC64BB9-B22C-475E-BF6C-BF22B644C359}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCC64BB9-B22C-475E-BF6C-BF22B644C359}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BCC64BB9-B22C-475E-BF6C-BF22B644C359}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -272,6 +292,9 @@ Global {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} + {1E8D442B-D136-4D1A-A265-16E2DE19D938} = {ABE58B5E-610B-4159-BFF0-8B04BF700B3C} + {CE77DCAE-5210-4876-8C52-443823FF886F} = {ABE58B5E-610B-4159-BFF0-8B04BF700B3C} + {BCC64BB9-B22C-475E-BF6C-BF22B644C359} = {ABE58B5E-610B-4159-BFF0-8B04BF700B3C} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {646DDD1C-F143-42C2-894F-F5C7B3A0CE74} diff --git a/apihost/Tnb.API.Entry/Configurations/ConnectionStrings.json b/apihost/Tnb.API.Entry/Configurations/ConnectionStrings.json index 2b96adcf..aeadd7ea 100644 --- a/apihost/Tnb.API.Entry/Configurations/ConnectionStrings.json +++ b/apihost/Tnb.API.Entry/Configurations/ConnectionStrings.json @@ -4,7 +4,7 @@ "DBType": "PostgreSQL", //MySql;SqlServer;Oracle;PostgreSQL;Dm;Kdbndp;Sqlite; "Host": "localhost", "Port": "5432", - "DBName": "tnb_bas", + "DBName": "tianyi_bas", "UserName": "totong", "Password": "IPANyxGSKxIXg0dBM", //SqlServer diff --git a/apihost/Tnb.API.Entry/Tnb.API.Entry.csproj b/apihost/Tnb.API.Entry/Tnb.API.Entry.csproj index 64149742..13267fd0 100644 --- a/apihost/Tnb.API.Entry/Tnb.API.Entry.csproj +++ b/apihost/Tnb.API.Entry/Tnb.API.Entry.csproj @@ -39,6 +39,7 @@ + diff --git a/system/Tnb.Systems/System/DbLinkService.cs b/system/Tnb.Systems/System/DbLinkService.cs index 60fc9d88..d920a7f6 100644 --- a/system/Tnb.Systems/System/DbLinkService.cs +++ b/system/Tnb.Systems/System/DbLinkService.cs @@ -318,12 +318,14 @@ public class DbLinkService : IDbLinkService, IDynamicApiController, ITransient [NonAction] public async Task GetInfo(string id) { - var model = await _memCache.GetOrCreateAsync($"DbLink_{id}", async entry => - { - //entry.AbsoluteExpiration = DateTime.Now.AddMinutes(60); - //entry.SlidingExpiration = TimeSpan.FromSeconds(-1); - return await _repository.AsSugarClient().CopyNew().Queryable().FirstAsync(m => m.Id == id && m.DeleteMark == null); - }); + //modified by ly on 20230417 + var model = await _repository.AsSugarClient().CopyNew().Queryable().FirstAsync(m => m.Id == id && m.DeleteMark == null); + //await _memCache.GetOrCreateAsync($"DbLink_{id}", async entry => + //{ + // //entry.AbsoluteExpiration = DateTime.Now.AddMinutes(60); + // //entry.SlidingExpiration = TimeSpan.FromSeconds(-1); + // return await _repository.AsSugarClient().CopyNew().Queryable().FirstAsync(m => m.Id == id && m.DeleteMark == null); + //}); return model; } #endregion diff --git a/visualdev/Tnb.VisualDev/RunService.cs b/visualdev/Tnb.VisualDev/RunService.cs index c329f870..65f351e4 100644 --- a/visualdev/Tnb.VisualDev/RunService.cs +++ b/visualdev/Tnb.VisualDev/RunService.cs @@ -208,7 +208,7 @@ public class RunService : IRunService, ITransient if (templateInfo.SingleFormData.Any(x => x.__config__.templateJson != null && x.__config__.templateJson.Any())) realList.list = await _formDataParsing.GetKeyData(templateInfo.SingleFormData.Where(x => x.__config__.templateJson != null && x.__config__.templateJson.Any()).ToList(), realList.list, templateInfo.ColumnData, actionType, templateInfo.WebType, primaryKey); else //modified by ly on 20230407 - realList.list = await _formDataParsing.GetKeyData(templateInfo.SingleFormData.Where(x => x.__config__.templateJson == null|| !x.__config__.templateJson.Any()).ToList(), realList.list, templateInfo.ColumnData, actionType, templateInfo.WebType, primaryKey); + realList.list = await _formDataParsing.GetKeyData(templateInfo.SingleFormData.Where(x => x.__config__.templateJson == null || !x.__config__.templateJson.Any()).ToList(), realList.list, templateInfo.ColumnData, actionType, templateInfo.WebType, primaryKey); // 如果是无表数据并且排序字段不为空,再进行数据排序 if (!templateInfo.IsHasTable && input.sidx.IsNotEmptyOrNull()) @@ -1558,6 +1558,7 @@ public class RunService : IRunService, ITransient { List childFieldsModelList = model.__config__.children; object? objectData = allDataMap[strKey[i]]; + List> childAllDataMapList = objectData.ToJsonString().ToObject>>(); if (childAllDataMapList != null && childAllDataMapList.Count > 0) { diff --git a/visualdev/Tnb.VisualDev/VisualDevService.cs b/visualdev/Tnb.VisualDev/VisualDevService.cs index 860f9ee6..94151705 100644 --- a/visualdev/Tnb.VisualDev/VisualDevService.cs +++ b/visualdev/Tnb.VisualDev/VisualDevService.cs @@ -349,6 +349,7 @@ public class VisualDevService : IVisualDevService, IDynamicApiController, ITrans _db.BeginTran(); // 开启事务 // 修改功能 + await _visualDevRepository.AsSugarClient().Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).CallEntityMethod(m => m.LastModify()).ExecuteCommandAsync(); // 修改流程表单 From 95fb16a3bf2ab3f1f5b70702babc69ffceb60cc3 Mon Sep 17 00:00:00 2001 From: "DEVICE8\\12494" Date: Wed, 19 Apr 2023 13:41:48 +0800 Subject: [PATCH 2/5] 1 --- Tnb.ProductionPlanMgr/internals/BaseService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tnb.ProductionPlanMgr/internals/BaseService.cs b/Tnb.ProductionPlanMgr/internals/BaseService.cs index 14933bef..05f0b7f7 100644 --- a/Tnb.ProductionPlanMgr/internals/BaseService.cs +++ b/Tnb.ProductionPlanMgr/internals/BaseService.cs @@ -17,7 +17,7 @@ namespace Tnb.ProductionPlanMgr.internals static BaseService() { var repo = App.GetService>(); - var = await repo.GetListAsync(); + //var = await repo.GetListAsync(); var dbMgr = App.GetService(); } From 95cc47ebac541ec3c25ebe058359dcf33aafa29a Mon Sep 17 00:00:00 2001 From: PhilPan Date: Thu, 20 Apr 2023 10:00:18 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Tnb.BasicData.Entitys/Tnb.BasicData.Entitys.csproj | 3 +-- Tnb.BasicData.Interfaces/Tnb.BasicData.Interfaces.csproj | 1 + Tnb.BasicData/ProcessManageService.cs | 6 +++++- Tnb.BasicData/Tnb.BasicData.csproj | 5 ++--- .../Tnb.ProductionPlanMgr.Entitys.csproj | 1 + .../Tnb.ProductionPlanMgr.Interfaces.csproj | 1 + Tnb.ProductionPlanMgr/Tnb.ProductionPlanMgr.csproj | 1 + 7 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Tnb.BasicData.Entitys/Tnb.BasicData.Entitys.csproj b/Tnb.BasicData.Entitys/Tnb.BasicData.Entitys.csproj index dbd75127..0bcc6059 100644 --- a/Tnb.BasicData.Entitys/Tnb.BasicData.Entitys.csproj +++ b/Tnb.BasicData.Entitys/Tnb.BasicData.Entitys.csproj @@ -1,4 +1,5 @@ + net6.0 @@ -7,9 +8,7 @@ - - diff --git a/Tnb.BasicData.Interfaces/Tnb.BasicData.Interfaces.csproj b/Tnb.BasicData.Interfaces/Tnb.BasicData.Interfaces.csproj index c8883128..baafef62 100644 --- a/Tnb.BasicData.Interfaces/Tnb.BasicData.Interfaces.csproj +++ b/Tnb.BasicData.Interfaces/Tnb.BasicData.Interfaces.csproj @@ -1,4 +1,5 @@ + net6.0 diff --git a/Tnb.BasicData/ProcessManageService.cs b/Tnb.BasicData/ProcessManageService.cs index 80f8b7ed..0ea22015 100644 --- a/Tnb.BasicData/ProcessManageService.cs +++ b/Tnb.BasicData/ProcessManageService.cs @@ -8,6 +8,7 @@ using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.Systems.Entitys.System; using JNPF.Systems.Interfaces.System; +using JNPF.VisualDev; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using NPOI.SS.Formula.Functions; @@ -25,7 +26,7 @@ namespace Tnb.BasicData [ApiDescriptionSettings(Tag = "BasicData", Name = "ProcessManage", Order = 700)] [Route("api/basic/[controller]")] - public class ProcessManageService : IDynamicApiController, ITransient + public class ProcessManageService : IOverideVisualDevService, IDynamicApiController, ITransient { private readonly ISqlSugarRepository _repository; private readonly DataBaseManager _dbManager; @@ -42,6 +43,9 @@ namespace Tnb.BasicData _dbManager = dbManager; _dictionaryTypeId = "24950639717653"; } + + public OverideVisualDevFunc OverideFuncs => new OverideVisualDevFunc(); + /// /// 获取工艺路线树形结构 /// diff --git a/Tnb.BasicData/Tnb.BasicData.csproj b/Tnb.BasicData/Tnb.BasicData.csproj index 68439026..02bcf680 100644 --- a/Tnb.BasicData/Tnb.BasicData.csproj +++ b/Tnb.BasicData/Tnb.BasicData.csproj @@ -1,4 +1,5 @@ + net6.0 @@ -8,10 +9,8 @@ - - - + diff --git a/Tnb.ProductionPlanMgr.Entitys/Tnb.ProductionPlanMgr.Entitys.csproj b/Tnb.ProductionPlanMgr.Entitys/Tnb.ProductionPlanMgr.Entitys.csproj index 01bb3f48..1e0abb62 100644 --- a/Tnb.ProductionPlanMgr.Entitys/Tnb.ProductionPlanMgr.Entitys.csproj +++ b/Tnb.ProductionPlanMgr.Entitys/Tnb.ProductionPlanMgr.Entitys.csproj @@ -1,4 +1,5 @@ + net6.0 diff --git a/Tnb.ProductionPlanMgr.Interfaces/Tnb.ProductionPlanMgr.Interfaces.csproj b/Tnb.ProductionPlanMgr.Interfaces/Tnb.ProductionPlanMgr.Interfaces.csproj index 6fb744e9..989d9ab5 100644 --- a/Tnb.ProductionPlanMgr.Interfaces/Tnb.ProductionPlanMgr.Interfaces.csproj +++ b/Tnb.ProductionPlanMgr.Interfaces/Tnb.ProductionPlanMgr.Interfaces.csproj @@ -1,4 +1,5 @@ + net6.0 diff --git a/Tnb.ProductionPlanMgr/Tnb.ProductionPlanMgr.csproj b/Tnb.ProductionPlanMgr/Tnb.ProductionPlanMgr.csproj index 126ca9b8..9e1129e2 100644 --- a/Tnb.ProductionPlanMgr/Tnb.ProductionPlanMgr.csproj +++ b/Tnb.ProductionPlanMgr/Tnb.ProductionPlanMgr.csproj @@ -1,4 +1,5 @@ + net6.0 From d9ad2fd3456b84a0b213f10523fbe17530e349bb Mon Sep 17 00:00:00 2001 From: PhilPan Date: Thu, 20 Apr 2023 16:59:21 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0=E6=9D=A1=E4=BB=B6=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Tnb.BasicData.Entitys/Mapper/Mapper.cs | 3 +-- .../DictionaryTypeInfoOutput.cs | 4 +++ system/Tnb.Systems.Entitys/Enum/AreaType.cs | 26 +++++++++++++++++++ .../Permission/IOrganizeService.cs | 7 +++-- .../Tnb.Systems/Permission/OrganizeService.cs | 8 +++--- .../System/DictionaryDataService.cs | 7 ++++- 6 files changed, 45 insertions(+), 10 deletions(-) create mode 100644 system/Tnb.Systems.Entitys/Enum/AreaType.cs diff --git a/Tnb.BasicData.Entitys/Mapper/Mapper.cs b/Tnb.BasicData.Entitys/Mapper/Mapper.cs index 3c664fd1..62a2b39b 100644 --- a/Tnb.BasicData.Entitys/Mapper/Mapper.cs +++ b/Tnb.BasicData.Entitys/Mapper/Mapper.cs @@ -1,5 +1,4 @@ -using JNPF.Systems.Entitys.System; -using Mapster; +using Mapster; using SqlSugar; using Tnb.BasicData.Entitys.Dto.ProcessManage; using Tnb.BasicData.Entitys.Entity; diff --git a/system/Tnb.Systems.Entitys/Dto/System/DictionaryType/DictionaryTypeInfoOutput.cs b/system/Tnb.Systems.Entitys/Dto/System/DictionaryType/DictionaryTypeInfoOutput.cs index 332ffeaa..9657ecfc 100644 --- a/system/Tnb.Systems.Entitys/Dto/System/DictionaryType/DictionaryTypeInfoOutput.cs +++ b/system/Tnb.Systems.Entitys/Dto/System/DictionaryType/DictionaryTypeInfoOutput.cs @@ -1,4 +1,5 @@ using JNPF.DependencyInjection; +using JNPF.Systems.Entitys.Dto.DictionaryData; namespace JNPF.Systems.Entitys.Dto.DictionaryType; @@ -42,4 +43,7 @@ public class DictionaryTypeInfoOutput /// 排序. /// public long? sortCode { get; set; } + + public List items { get; set; } + } \ No newline at end of file diff --git a/system/Tnb.Systems.Entitys/Enum/AreaType.cs b/system/Tnb.Systems.Entitys/Enum/AreaType.cs new file mode 100644 index 00000000..24b9fda8 --- /dev/null +++ b/system/Tnb.Systems.Entitys/Enum/AreaType.cs @@ -0,0 +1,26 @@ +using JNPF.DependencyInjection; +using System.ComponentModel; + +namespace JNPF.Systems.Entitys.Enum; + +/// +/// 区域类型. +/// +[SuppressSniffer] +public enum AreaType +{ + [Description("公司")] + company, + [Description("工厂")] + factory, + [Description("部门")] + department, + [Description("车间")] + workshop, + [Description("工作中心")] + workgroup, + [Description("工位")] + workstation, + [Description("产线")] + workline +} \ No newline at end of file diff --git a/system/Tnb.Systems.Interfaces/Permission/IOrganizeService.cs b/system/Tnb.Systems.Interfaces/Permission/IOrganizeService.cs index 1cde0b0e..2f5aa59d 100644 --- a/system/Tnb.Systems.Interfaces/Permission/IOrganizeService.cs +++ b/system/Tnb.Systems.Interfaces/Permission/IOrganizeService.cs @@ -1,4 +1,5 @@ -using JNPF.Systems.Entitys.Dto.Organize; +using System.Linq.Expressions; +using JNPF.Systems.Entitys.Dto.Organize; using JNPF.Systems.Entitys.Permission; namespace JNPF.Systems.Interfaces.Permission; @@ -21,14 +22,12 @@ public interface IOrganizeService /// /// 获取机构列表 - /// 提供给其他服务使用. /// /// - Task> GetListAsync(); + Task> GetListAsync(Expression> expression = null); /// /// 获取公司列表 - /// 提供给其他服务使用. /// /// Task> GetCompanyListAsync(); diff --git a/system/Tnb.Systems/Permission/OrganizeService.cs b/system/Tnb.Systems/Permission/OrganizeService.cs index 45d04e5a..fd50240f 100644 --- a/system/Tnb.Systems/Permission/OrganizeService.cs +++ b/system/Tnb.Systems/Permission/OrganizeService.cs @@ -1,4 +1,5 @@ -using JNPF.Common.Core.Manager; +using System.Linq.Expressions; +using JNPF.Common.Core.Manager; using JNPF.Common.Enums; using JNPF.Common.Extension; using JNPF.Common.Filter; @@ -626,9 +627,10 @@ public class OrganizeService : IOrganizeService, IDynamicApiController, ITransie /// /// [NonAction] - public async Task> GetListAsync() + public async Task> GetListAsync(Expression> expression = null) { - return await _repository.AsQueryable().Where(t => t.EnabledMark == 1 && t.DeleteMark == null).OrderBy(o => o.SortCode).OrderBy(a => a.CreatorTime, OrderByType.Desc).ToListAsync(); + var query = _repository.AsQueryable().Where(t => t.EnabledMark == 1 && t.DeleteMark == null).WhereIF(expression!=null, expression); + return await query.OrderBy(o => o.SortCode).OrderBy(a => a.CreatorTime, OrderByType.Desc).ToListAsync(); } /// diff --git a/system/Tnb.Systems/System/DictionaryDataService.cs b/system/Tnb.Systems/System/DictionaryDataService.cs index efec0a69..1ff8d35b 100644 --- a/system/Tnb.Systems/System/DictionaryDataService.cs +++ b/system/Tnb.Systems/System/DictionaryDataService.cs @@ -1,6 +1,7 @@ using JNPF.Common.Core.Manager; using JNPF.Common.Core.Manager.Files; using JNPF.Common.Enums; +using JNPF.Common.Manager; using JNPF.Common.Security; using JNPF.DatabaseAccessor; using JNPF.DependencyInjection; @@ -46,6 +47,8 @@ public class DictionaryDataService : IDictionaryDataService, IDynamicApiControll /// private readonly IUserManager _userManager; + private readonly ICacheManager _cache; + /// /// 初始化一个类型的新实例. /// @@ -53,12 +56,14 @@ public class DictionaryDataService : IDictionaryDataService, IDynamicApiControll ISqlSugarRepository repository, IDictionaryTypeService dictionaryTypeService, IFileManager fileManager, - IUserManager userManager) + IUserManager userManager, + ICacheManager cache) { _repository = repository; _dictionaryTypeService = dictionaryTypeService; _fileManager = fileManager; _userManager = userManager; + _cache = cache; } #region GET From ab92c808381a43bc7e7a363f264f95f76ff4e7fa Mon Sep 17 00:00:00 2001 From: "DEVICE8\\12494" Date: Fri, 21 Apr 2023 09:06:49 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Tnb.BasicData.Entitys/Mapper/Mapper.cs | 3 +- Tnb.ProductionPlanMgr.Entitys/Class1.cs | 7 - .../WorkOrder/ProductionSchedulingCrInput.cs | 68 ++++++ .../Entity/MoldsEntity.cs | 142 ++++++++++++ .../Entity/PrdMoEntity.cs | 2 +- .../Entity/PrdTask.cs | 203 ++++++++++++++++++ .../Mapper/Mapper.cs | 14 ++ ...sproj => Tnb.ProductionMgr.Entitys.csproj} | 0 ...OrderCreateService.cs => IPrdMoService.cs} | 2 +- ...oj => Tnb.ProductionMgr.Interfaces.csproj} | 2 +- ...kOrderCreateService.cs => PrdMoService.cs} | 39 +++- ...lanMgr.csproj => Tnb.ProductionMgr.csproj} | 4 +- .../WorkOrderSchedulingService.cs | 70 +++++- .../internals/BaseService.cs | 6 +- Tnb.Server.sln | 6 +- apihost/Tnb.API.Entry/Tnb.API.Entry.csproj | 2 +- .../Manager/DataBase/DataBaseManager.cs | 2 +- .../Department/DepartmentCrInput.cs | 4 + .../Department/DepartmentInfoOutput.cs | 5 + .../Mapper/PermissionMapper.cs | 6 +- system/Tnb.Systems/Common/TestService.cs | 7 + 21 files changed, 558 insertions(+), 36 deletions(-) delete mode 100644 Tnb.ProductionPlanMgr.Entitys/Class1.cs create mode 100644 Tnb.ProductionPlanMgr.Entitys/Dto/WorkOrder/ProductionSchedulingCrInput.cs create mode 100644 Tnb.ProductionPlanMgr.Entitys/Entity/MoldsEntity.cs create mode 100644 Tnb.ProductionPlanMgr.Entitys/Entity/PrdTask.cs create mode 100644 Tnb.ProductionPlanMgr.Entitys/Mapper/Mapper.cs rename Tnb.ProductionPlanMgr.Entitys/{Tnb.ProductionPlanMgr.Entitys.csproj => Tnb.ProductionMgr.Entitys.csproj} (100%) rename Tnb.ProductionPlanMgr.Interfaces/{IWorkOrderCreateService.cs => IPrdMoService.cs} (84%) rename Tnb.ProductionPlanMgr.Interfaces/{Tnb.ProductionPlanMgr.Interfaces.csproj => Tnb.ProductionMgr.Interfaces.csproj} (91%) rename Tnb.ProductionPlanMgr/{WorkOrderCreateService.cs => PrdMoService.cs} (59%) rename Tnb.ProductionPlanMgr/{Tnb.ProductionPlanMgr.csproj => Tnb.ProductionMgr.csproj} (87%) diff --git a/Tnb.BasicData.Entitys/Mapper/Mapper.cs b/Tnb.BasicData.Entitys/Mapper/Mapper.cs index 3c664fd1..62a2b39b 100644 --- a/Tnb.BasicData.Entitys/Mapper/Mapper.cs +++ b/Tnb.BasicData.Entitys/Mapper/Mapper.cs @@ -1,5 +1,4 @@ -using JNPF.Systems.Entitys.System; -using Mapster; +using Mapster; using SqlSugar; using Tnb.BasicData.Entitys.Dto.ProcessManage; using Tnb.BasicData.Entitys.Entity; diff --git a/Tnb.ProductionPlanMgr.Entitys/Class1.cs b/Tnb.ProductionPlanMgr.Entitys/Class1.cs deleted file mode 100644 index d6367141..00000000 --- a/Tnb.ProductionPlanMgr.Entitys/Class1.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Tnb.ProductionPlanMgr.Entitys -{ - public class Class1 - { - - } -} \ No newline at end of file diff --git a/Tnb.ProductionPlanMgr.Entitys/Dto/WorkOrder/ProductionSchedulingCrInput.cs b/Tnb.ProductionPlanMgr.Entitys/Dto/WorkOrder/ProductionSchedulingCrInput.cs new file mode 100644 index 00000000..ac852eb4 --- /dev/null +++ b/Tnb.ProductionPlanMgr.Entitys/Dto/WorkOrder/ProductionSchedulingCrInput.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.ProductionMgr.Entitys.Dto.WorkOrder +{ + /// + /// 生产工单排产输入参数 + /// + public class ProductionSchedulingCrInput + { + /// + /// 生产任务主键Id + /// + public string? Id { get; set; } + /// + /// 工单类型 1、注塑/挤出 2、组装/包装 + /// + public int MoType { get; set; } + /// + /// 工单Id + /// + public int MoId { get; set; } + /// + /// 产品编号 + /// + public string ItemId { get; set; } + /// + /// 产品名称 + /// + public string ItemName { get; set; } + + #region 注塑工单 + /// + /// 模具Id + /// + public string MoldId { get; set; } + /// + /// 模具名称 + /// + public string MoldName { get; set; } + /// + /// 设备Id + /// + public string EqpId { get; set; } + /// + /// 设备名称 + /// + public string EqpName { get; set; } + #endregion + + #region 组装包装工单 + /// + /// 产线编号 + /// + public string LineId { get; set; } + /// + /// 产线名称 + /// + public string LineName { get; set; } + #endregion + + + } + +} diff --git a/Tnb.ProductionPlanMgr.Entitys/Entity/MoldsEntity.cs b/Tnb.ProductionPlanMgr.Entitys/Entity/MoldsEntity.cs new file mode 100644 index 00000000..409b8b0c --- /dev/null +++ b/Tnb.ProductionPlanMgr.Entitys/Entity/MoldsEntity.cs @@ -0,0 +1,142 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using Tnb.Common.Contracts; + +namespace Tnb.ProductionMgr.Entitys.Entity +{ + /// + /// 模具信息表 + /// + [SugarTable("tool_molds")] + public class MoldsEntity : BaseEntity + { + ///// + ///// 主键 + ///// + // [SugarColumn(ColumnName="id" ,IsPrimaryKey = true )] + // public string Id { get; set; } + /// + /// 磨具编号 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "mold_code")] + public string MoldCode { get; set; } + /// + /// 磨具名称 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "mold_name")] + public string MoldName { get; set; } + /// + /// 产品代码 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "item_id")] + public string ItemId { get; set; } + /// + /// 设备Id + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "eqp_id")] + public string EqpId { get; set; } + /// + /// 设备代码 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "eqp_code")] + public string EqpCode { get; set; } + /// + /// 生产模数 + /// + [SugarColumn(ColumnName = "production_modulus")] + public int? ProductionModulus { get; set; } + /// + /// 保养模次 + /// + [SugarColumn(ColumnName = "maintain_num")] + public int? MaintainNum { get; set; } + /// + /// 磨具使用状态 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "mold_status")] + public string MoldStatus { get; set; } + /// + /// 日定额 + /// + [SugarColumn(ColumnName = "daily_rate")] + public decimal? DailyRate { get; set; } + /// + /// 工时定额(H/PCS) + /// + [SugarColumn(ColumnName = "hour_norm")] + public decimal? HourNorm { get; set; } + /// + /// 成长周期 + /// + [SugarColumn(ColumnName = "growth_cycle")] + public int? GrowthCycle { get; set; } + /// + /// 型腔数 + /// + [SugarColumn(ColumnName = "cavity_num")] + public int? CavityNum { get; set; } + /// + /// 模具寿命 + /// + [SugarColumn(ColumnName = "mold_life")] + public int? MoldLife { get; set; } + /// + /// 模具剩余寿命 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "mold_remaining_life")] + public string MoldRemainingLife { get; set; } + /// + /// 库房编号 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "warehosue_id")] + public string WarehosueId { get; set; } + /// + /// 库位编号 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "location_id")] + public string LocationId { get; set; } + /// + /// 备注 + /// + [SugarColumn(ColumnName = "remark")] + public string Remark { get; set; } + /// + /// 创建用户 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "create_id")] + public string CreateId { get; set; } + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "create_time")] + public DateTime? CreateTime { get; set; } + /// + /// 修改用户 + /// 默认值: NULL::character varying + /// + [SugarColumn(ColumnName = "modify_id")] + public string ModifyId { get; set; } + /// + /// 修改时间 + /// + [SugarColumn(ColumnName = "modify_time")] + public DateTime? ModifyTime { get; set; } + /// + /// 扩展字段 + /// + [SugarColumn(ColumnName = "extras")] + public string Extras { get; set; } + } +} diff --git a/Tnb.ProductionPlanMgr.Entitys/Entity/PrdMoEntity.cs b/Tnb.ProductionPlanMgr.Entitys/Entity/PrdMoEntity.cs index e4f2a0a6..2fc1ef74 100644 --- a/Tnb.ProductionPlanMgr.Entitys/Entity/PrdMoEntity.cs +++ b/Tnb.ProductionPlanMgr.Entitys/Entity/PrdMoEntity.cs @@ -4,7 +4,7 @@ using System.Linq; using SqlSugar; using Tnb.Common.Contracts; -namespace Tnb.ProductionPlanMgr.Entitys.Entity +namespace Tnb.ProductionMgr.Entitys.Entity { /// /// MES生产工单 diff --git a/Tnb.ProductionPlanMgr.Entitys/Entity/PrdTask.cs b/Tnb.ProductionPlanMgr.Entitys/Entity/PrdTask.cs new file mode 100644 index 00000000..0fea1d8f --- /dev/null +++ b/Tnb.ProductionPlanMgr.Entitys/Entity/PrdTask.cs @@ -0,0 +1,203 @@ +using System; +using System.Linq; +using System.Text; +using SqlSugar; + +namespace Tnb.ProductionMgr.Entitys.Entity +{ + /// + ///生产任务信息 + /// + [SugarTable("prd_task")] + public partial class PrdTask + { + public PrdTask(){ + + + } + /// + /// Desc:主键 + /// Default: + /// Nullable:False + /// + [SugarColumn(IsPrimaryKey=true,ColumnName="id")] + public string Id {get;set;} + + /// + /// Desc:工单类型 1、注塑/挤出工单 2、组装/包装工单 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="mo_type")] + public int? MoType {get;set;} + + /// + /// Desc:计划开始时间 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="plan_start_date")] + public DateTime? PlanStartDate {get;set;} + + /// + /// Desc:计划结束时间 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="plan_end_date")] + public DateTime? PlanEndDate {get;set;} + + /// + /// Desc:预计开始时间 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="estimated_start_date")] + public DateTime? EstimatedStartDate {get;set;} + + /// + /// Desc:预计结束时间 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="estimated_end_date")] + public DateTime? EstimatedEndDate {get;set;} + + /// + /// Desc:实际开工时间 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="start_date")] + public DateTime? StartDate {get;set;} + + /// + /// Desc:实际完工时间 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="end_date")] + public DateTime? EndDate {get;set;} + + /// + /// Desc:创建时间 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="create_time")] + public DateTime? CreateTime {get;set;} + + /// + /// Desc:修改时间 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="modify_time")] + public DateTime? ModifyTime {get;set;} + + /// + /// Desc:扩展字段 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="extras")] + public string Extras {get;set;} + + /// + /// Desc:工单Id + /// Default:NULL::character varying + /// Nullable:True + /// + [SugarColumn(ColumnName="mo_id")] + public string MoId {get;set;} + + /// + /// Desc:工单代码 + /// Default:NULL::character varying + /// Nullable:True + /// + [SugarColumn(ColumnName="mo_code")] + public string MoCode {get;set;} + + /// + /// Desc:模具Id + /// Default:NULL::character varying + /// Nullable:True + /// + [SugarColumn(ColumnName="mold_id")] + public string MoldId {get;set;} + + /// + /// Desc:模具名称 + /// Default:NULL::character varying + /// Nullable:True + /// + [SugarColumn(ColumnName="mold_name")] + public string MoldName {get;set;} + + /// + /// Desc:设备Id + /// Default:NULL::character varying + /// Nullable:True + /// + [SugarColumn(ColumnName="eqp_id")] + public string EqpId {get;set;} + + /// + /// Desc:设备名称 + /// Default:NULL::character varying + /// Nullable:True + /// + [SugarColumn(ColumnName="eqp_name")] + public string EqpName {get;set;} + + /// + /// Desc:产线编号 + /// Default:NULL::character varying + /// Nullable:True + /// + [SugarColumn(ColumnName="line_id")] + public string LineId {get;set;} + + /// + /// Desc:产线名称 + /// Default:NULL::character varying + /// Nullable:True + /// + [SugarColumn(ColumnName="line_name")] + public string LineName {get;set;} + + /// + /// Desc:产品Id + /// Default:NULL::character varying + /// Nullable:True + /// + [SugarColumn(ColumnName="item_id")] + public string ItemId {get;set;} + + /// + /// Desc:产品名称 + /// Default:NULL::character varying + /// Nullable:True + /// + [SugarColumn(ColumnName="item_name")] + public string ItemName {get;set;} + + /// + /// Desc:创建用户 + /// Default:NULL::character varying + /// Nullable:True + /// + [SugarColumn(ColumnName="create_id")] + public string CreateId {get;set;} + + /// + /// Desc:修改用户 + /// Default:NULL::character varying + /// Nullable:True + /// + [SugarColumn(ColumnName="modify_id")] + public string ModifyId {get;set;} + + } +} diff --git a/Tnb.ProductionPlanMgr.Entitys/Mapper/Mapper.cs b/Tnb.ProductionPlanMgr.Entitys/Mapper/Mapper.cs new file mode 100644 index 00000000..74927245 --- /dev/null +++ b/Tnb.ProductionPlanMgr.Entitys/Mapper/Mapper.cs @@ -0,0 +1,14 @@ +using Mapster; +using Tnb.ProductionMgr.Entitys.Dto.WorkOrder; +using Tnb.ProductionMgr.Entitys.Entity; + +namespace Tnb.ProductionMgr.Entitys.Mapper +{ + public class Mapper : IRegister + { + public void Register(TypeAdapterConfig config) + { + config.ForType(); + } + } +} \ No newline at end of file diff --git a/Tnb.ProductionPlanMgr.Entitys/Tnb.ProductionPlanMgr.Entitys.csproj b/Tnb.ProductionPlanMgr.Entitys/Tnb.ProductionMgr.Entitys.csproj similarity index 100% rename from Tnb.ProductionPlanMgr.Entitys/Tnb.ProductionPlanMgr.Entitys.csproj rename to Tnb.ProductionPlanMgr.Entitys/Tnb.ProductionMgr.Entitys.csproj diff --git a/Tnb.ProductionPlanMgr.Interfaces/IWorkOrderCreateService.cs b/Tnb.ProductionPlanMgr.Interfaces/IPrdMoService.cs similarity index 84% rename from Tnb.ProductionPlanMgr.Interfaces/IWorkOrderCreateService.cs rename to Tnb.ProductionPlanMgr.Interfaces/IPrdMoService.cs index 9570bb1f..097de8cb 100644 --- a/Tnb.ProductionPlanMgr.Interfaces/IWorkOrderCreateService.cs +++ b/Tnb.ProductionPlanMgr.Interfaces/IPrdMoService.cs @@ -5,7 +5,7 @@ namespace Tnb.ProductionPlanMgr.Interfaces /// /// 工单生成 /// - public interface IWorkOrderCreateService + public interface IPrdMoService { Task WorkOrderIssue(WorkOrderIssueCrInput input); } diff --git a/Tnb.ProductionPlanMgr.Interfaces/Tnb.ProductionPlanMgr.Interfaces.csproj b/Tnb.ProductionPlanMgr.Interfaces/Tnb.ProductionMgr.Interfaces.csproj similarity index 91% rename from Tnb.ProductionPlanMgr.Interfaces/Tnb.ProductionPlanMgr.Interfaces.csproj rename to Tnb.ProductionPlanMgr.Interfaces/Tnb.ProductionMgr.Interfaces.csproj index 989d9ab5..378ec7c5 100644 --- a/Tnb.ProductionPlanMgr.Interfaces/Tnb.ProductionPlanMgr.Interfaces.csproj +++ b/Tnb.ProductionPlanMgr.Interfaces/Tnb.ProductionMgr.Interfaces.csproj @@ -9,7 +9,7 @@ - + diff --git a/Tnb.ProductionPlanMgr/WorkOrderCreateService.cs b/Tnb.ProductionPlanMgr/PrdMoService.cs similarity index 59% rename from Tnb.ProductionPlanMgr/WorkOrderCreateService.cs rename to Tnb.ProductionPlanMgr/PrdMoService.cs index 19654e3d..31807629 100644 --- a/Tnb.ProductionPlanMgr/WorkOrderCreateService.cs +++ b/Tnb.ProductionPlanMgr/PrdMoService.cs @@ -1,13 +1,17 @@ using JNPF.Common.Core.Manager; +using JNPF.Common.Extension; +using JNPF.Common.Security; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.Systems.Entitys.System; +using Mapster; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using NPOI.OpenXmlFormats.Shared; using SqlSugar; +using Tnb.ProductionMgr.Entitys.Dto.WorkOrder; +using Tnb.ProductionMgr.Entitys.Entity; using Tnb.ProductionPlanMgr.Entitys.Dto.WorkOrder; -using Tnb.ProductionPlanMgr.Entitys.Entity; using Tnb.ProductionPlanMgr.Interfaces; namespace Tnb.ProductionPlanMgr @@ -15,13 +19,13 @@ namespace Tnb.ProductionPlanMgr /// /// 生产计划管理 /// - [ApiDescriptionSettings(Tag = "ProductPlanMgr", Name = "WorkOrderCreate", Order = 700)] + [ApiDescriptionSettings(Tag = "ProductionMgr", Name = "WorkOrderCreate", Order = 700)] [Route("api/production/[controller]")] - public class WorkOrderCreateService :IWorkOrderCreateService,IDynamicApiController, ITransient + public class PrdMoService : IPrdMoService, IDynamicApiController, ITransient { private readonly ISqlSugarRepository _repository; private readonly IDataBaseManager _dataBaseManager; - public WorkOrderCreateService(ISqlSugarRepository repository, IDataBaseManager dataBaseManager) + public PrdMoService(ISqlSugarRepository repository, IDataBaseManager dataBaseManager) { _repository = repository; _dataBaseManager = dataBaseManager; @@ -38,13 +42,36 @@ namespace Tnb.ProductionPlanMgr { throw new ArgumentNullException(nameof(input)); } - var link = await _repository.AsSugarClient().Queryable().FirstAsync(x => x.FullName == "tnb_mes"); - var db = _dataBaseManager.ChangeDataBase(link); + var db = await GetDbContext(); var row = await db.Updateable() .SetColumns(it => new PrdMoEntity { MoStatus = "25019232867093" }) .Where(it => input.WorkOrderIds.Contains(it.Id)) .ExecuteCommandAsync(); return (row > 0); } + /// + /// 生产工单-生产排产 + /// + /// + /// + [HttpPost("scheduling")] + public async Task ProductionScheduling(ProductionSchedulingCrInput input) + { + var entity = input.Adapt(); + entity.Id = input.Id ?? SnowflakeIdHelper.NextId(); + var db = await GetDbContext(); + var row = await db.Storageable(entity).ExecuteCommandAsync(); + return (row > 0); + } + + private async Task GetDbContext() + { + var link = await _repository.AsSugarClient().Queryable().FirstAsync(x => x.FullName == "tnb_mes"); + var db = _dataBaseManager.ChangeDataBase(link); + return db; + } } + + + } \ No newline at end of file diff --git a/Tnb.ProductionPlanMgr/Tnb.ProductionPlanMgr.csproj b/Tnb.ProductionPlanMgr/Tnb.ProductionMgr.csproj similarity index 87% rename from Tnb.ProductionPlanMgr/Tnb.ProductionPlanMgr.csproj rename to Tnb.ProductionPlanMgr/Tnb.ProductionMgr.csproj index 9e1129e2..60920d19 100644 --- a/Tnb.ProductionPlanMgr/Tnb.ProductionPlanMgr.csproj +++ b/Tnb.ProductionPlanMgr/Tnb.ProductionMgr.csproj @@ -11,8 +11,8 @@ - - + + diff --git a/Tnb.ProductionPlanMgr/WorkOrderSchedulingService.cs b/Tnb.ProductionPlanMgr/WorkOrderSchedulingService.cs index dfba6aad..1e4905c8 100644 --- a/Tnb.ProductionPlanMgr/WorkOrderSchedulingService.cs +++ b/Tnb.ProductionPlanMgr/WorkOrderSchedulingService.cs @@ -4,20 +4,80 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Aspose.Cells; +using DingTalk.Api.Request; +using JNPF.Common.Core.Manager; +using JNPF.Common.Security; using JNPF.DependencyInjection; using JNPF.DynamicApiController; +using JNPF.Systems.Entitys.System; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using NPOI.SS.UserModel; +using SqlSugar; +using Tnb.ProductionMgr.Entitys.Entity; namespace Tnb.ProductionPlanMgr { - [ApiDescriptionSettings(Tag = "ProductPlanMgr", Name = "WorkOrderScheduling", Order = 700)] + /// + /// 生产排产 + /// + [ApiDescriptionSettings(Tag = "ProductMgr", Name = "WorkOrderScheduling", Order = 700)] [Route("api/production/[controller]")] - public class WorkOrderSchedulingService: IDynamicApiController, ITransient + public class WorkOrderSchedulingService : IDynamicApiController, ITransient { - - public WorkOrderSchedulingService() + private readonly IDataBaseManager _dataBaseManager; + private readonly ISqlSugarRepository _repository; + public WorkOrderSchedulingService(IDataBaseManager dataBaseManager, ISqlSugarRepository repository) { - + _dataBaseManager = dataBaseManager; + _repository = repository; + } + + /// + /// 测试数据导入 + /// + /// + [HttpPost("data")] + [AllowAnonymous] + public async Task ImportMoldsData() + { + List<(string pId, string eqpId)> multi = new() + { + ("25546268026149","25530823999765"), + ("25546256076325","25530834099477"), + }; + List list = new(); + var index = 1; + foreach (var item in multi) + { + MoldsEntity entity = new(); + entity.Id = SnowflakeIdHelper.NextId(); + entity.MoldCode = $"m00{index}"; + entity.MoldName = "磨具" + index; + entity.ItemId = item.pId; + entity.EqpId = item.eqpId; + list.Add(entity); + index++; + } + var link = await _repository.GetFirstAsync(x => x.FullName == "tnb_eqp"); + var db = _dataBaseManager.ChangeDataBase(link); + var row = await db.Insertable(list).ExecuteCommandAsync(); + if (row > 0) + { + foreach (var item in list) + { + var dic = new Dictionary + { + {"id",item.EqpId }, + { "mold_id", item.Id} + }; + var row2 = await db.Updateable(dic).AS("eqp_equipment") + .WhereColumns("id"). + ExecuteCommandAsync(); + } + } + + await Task.CompletedTask; } } } diff --git a/Tnb.ProductionPlanMgr/internals/BaseService.cs b/Tnb.ProductionPlanMgr/internals/BaseService.cs index 05f0b7f7..f3e6f073 100644 --- a/Tnb.ProductionPlanMgr/internals/BaseService.cs +++ b/Tnb.ProductionPlanMgr/internals/BaseService.cs @@ -9,17 +9,13 @@ using JNPF.DependencyInjection; using JNPF.Systems.Entitys.System; using SqlSugar; -namespace Tnb.ProductionPlanMgr.internals +namespace Tnb.ProductionPlanMgr { public class BaseService : ITransient { private readonly Dictionary _dbContextDic = new(StringComparer.OrdinalIgnoreCase); static BaseService() { - var repo = App.GetService>(); - //var = await repo.GetListAsync(); - var dbMgr = App.GetService(); - } diff --git a/Tnb.Server.sln b/Tnb.Server.sln index ec7d3b6e..4510444c 100644 --- a/Tnb.Server.sln +++ b/Tnb.Server.sln @@ -99,11 +99,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tnb.BasicData", "Tnb.BasicD EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "10-ProductionPlanMgr", "10-ProductionPlanMgr", "{ABE58B5E-610B-4159-BFF0-8B04BF700B3C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tnb.ProductionPlanMgr", "Tnb.ProductionPlanMgr\Tnb.ProductionPlanMgr.csproj", "{1E8D442B-D136-4D1A-A265-16E2DE19D938}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tnb.ProductionMgr", "Tnb.ProductionPlanMgr\Tnb.ProductionMgr.csproj", "{1E8D442B-D136-4D1A-A265-16E2DE19D938}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tnb.ProductionPlanMgr.Entitys", "Tnb.ProductionPlanMgr.Entitys\Tnb.ProductionPlanMgr.Entitys.csproj", "{CE77DCAE-5210-4876-8C52-443823FF886F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tnb.ProductionMgr.Entitys", "Tnb.ProductionPlanMgr.Entitys\Tnb.ProductionMgr.Entitys.csproj", "{CE77DCAE-5210-4876-8C52-443823FF886F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tnb.ProductionPlanMgr.Interfaces", "Tnb.ProductionPlanMgr.Interfaces\Tnb.ProductionPlanMgr.Interfaces.csproj", "{BCC64BB9-B22C-475E-BF6C-BF22B644C359}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tnb.ProductionMgr.Interfaces", "Tnb.ProductionPlanMgr.Interfaces\Tnb.ProductionMgr.Interfaces.csproj", "{BCC64BB9-B22C-475E-BF6C-BF22B644C359}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/apihost/Tnb.API.Entry/Tnb.API.Entry.csproj b/apihost/Tnb.API.Entry/Tnb.API.Entry.csproj index 13267fd0..f9101102 100644 --- a/apihost/Tnb.API.Entry/Tnb.API.Entry.csproj +++ b/apihost/Tnb.API.Entry/Tnb.API.Entry.csproj @@ -39,7 +39,7 @@ - + diff --git a/common/Tnb.Common.Core/Manager/DataBase/DataBaseManager.cs b/common/Tnb.Common.Core/Manager/DataBase/DataBaseManager.cs index 7ff09329..f6460e7d 100644 --- a/common/Tnb.Common.Core/Manager/DataBase/DataBaseManager.cs +++ b/common/Tnb.Common.Core/Manager/DataBase/DataBaseManager.cs @@ -316,7 +316,7 @@ public class DataBaseManager : IDataBaseManager, ITransient if (pageInput.superQueryJson.IsNotEmptyOrNull()) superQueryJson = _sqlSugarClient.Utilities.JsonToConditionalModels(pageInput.superQueryJson); // var sql = _sqlSugarClient.SqlQueryable(strSql) // .Where(querJson).Where(superQueryJson).Where(dataPermissions).ToSqlString(); - DataTable dt = _sqlSugarClient.SqlQueryable(strSql) + DataTable dt = _sqlSugarClient.CopyNew().SqlQueryable(strSql) .Where(querJson).Where(superQueryJson).Where(dataPermissions) .OrderByIF(sidx, pageInput.sidx + " " + pageInput.sort).OrderByIF(!sidx && defaultSidx, columnDesign.defaultSidx + " " + columnDesign.sort) .ToDataTablePage(pageInput.currentPage, pageInput.pageSize, ref total); diff --git a/system/Tnb.Systems.Entitys/Dto/Permission/Department/DepartmentCrInput.cs b/system/Tnb.Systems.Entitys/Dto/Permission/Department/DepartmentCrInput.cs index 862ba4c8..59a0335e 100644 --- a/system/Tnb.Systems.Entitys/Dto/Permission/Department/DepartmentCrInput.cs +++ b/system/Tnb.Systems.Entitys/Dto/Permission/Department/DepartmentCrInput.cs @@ -42,4 +42,8 @@ public class DepartmentCrInput /// 排序码. /// public long? sortCode { get; set; } + /// + /// 组织类型 + /// + public string category { get; set; } } \ No newline at end of file diff --git a/system/Tnb.Systems.Entitys/Dto/Permission/Department/DepartmentInfoOutput.cs b/system/Tnb.Systems.Entitys/Dto/Permission/Department/DepartmentInfoOutput.cs index dbf215df..286425bd 100644 --- a/system/Tnb.Systems.Entitys/Dto/Permission/Department/DepartmentInfoOutput.cs +++ b/system/Tnb.Systems.Entitys/Dto/Permission/Department/DepartmentInfoOutput.cs @@ -52,4 +52,9 @@ public class DepartmentInfoOutput /// 所属组织 组织树. /// public List organizeIdTree { get; set; } + /// + /// 机构类型 + /// added by ly on 20230420 + /// + public string category { get; set; } } \ No newline at end of file diff --git a/system/Tnb.Systems.Entitys/Mapper/PermissionMapper.cs b/system/Tnb.Systems.Entitys/Mapper/PermissionMapper.cs index c615a0a3..2cf51800 100644 --- a/system/Tnb.Systems.Entitys/Mapper/PermissionMapper.cs +++ b/system/Tnb.Systems.Entitys/Mapper/PermissionMapper.cs @@ -36,8 +36,12 @@ public class PermissionMapper : IRegister config.ForType() .Ignore(dest => dest.UserId); config.ForType() - .Ignore(dest => dest.organizeIdTree); + .Ignore(dest => dest.organizeIdTree) + .NameMatchingStrategy(NameMatchingStrategy.IgnoreCase); //modified by ly on 20230420 config.ForType() .Ignore(dest => dest.organizeIdTree); + //modified by ly on 20230420 + config.ForType() + .NameMatchingStrategy(NameMatchingStrategy.IgnoreCase); //忽略字段大小写 } } \ No newline at end of file diff --git a/system/Tnb.Systems/Common/TestService.cs b/system/Tnb.Systems/Common/TestService.cs index 98576c4b..23d62315 100644 --- a/system/Tnb.Systems/Common/TestService.cs +++ b/system/Tnb.Systems/Common/TestService.cs @@ -70,6 +70,13 @@ public class TestService : IDynamicApiController, ITransient } } + + public async Task ImportMoldData() + { + + } + + public void xx(UserEntity user) { user.Account = "2312321";