From 9b14c845e6010716736b492d85f53b9e1005d40b Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Fri, 21 Jul 2023 13:29:06 +0800 Subject: [PATCH] =?UTF-8?q?=E9=BD=90=E5=A5=97=E5=87=BA=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Consts/WebApiConst.cs | 3 + .../Entity/PrdKittingOutD.cs | 57 +++++++++ .../Entity/PrdKittingOutH.cs | 97 ++++++++++++++++ .../IPrdKittingOutService.cs | 10 ++ .../Tnb.ProductionMgr/PrdKittingOutService.cs | 108 ++++++++++++++++++ 5 files changed, 275 insertions(+) create mode 100644 ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdKittingOutD.cs create mode 100644 ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdKittingOutH.cs create mode 100644 ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdKittingOutService.cs create mode 100644 ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs diff --git a/BasicData/Tnb.BasicData.Entities/Consts/WebApiConst.cs b/BasicData/Tnb.BasicData.Entities/Consts/WebApiConst.cs index bc6ff7f8..c4488373 100644 --- a/BasicData/Tnb.BasicData.Entities/Consts/WebApiConst.cs +++ b/BasicData/Tnb.BasicData.Entities/Consts/WebApiConst.cs @@ -12,6 +12,9 @@ namespace Tnb.BasicData //生产出库接口 public const string MES_CREATE_OUTSTOCK = "/api/wms/wms-out-stock/mes-create-outstock"; + + //齐套出库接口 + public const string MES_KITTING_OUT_STK = "/api/wms/wmskitting-out/mes-kitting-out-stk"; #endregion diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdKittingOutD.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdKittingOutD.cs new file mode 100644 index 00000000..d0245679 --- /dev/null +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdKittingOutD.cs @@ -0,0 +1,57 @@ +using JNPF.Common.Contracts; +using JNPF.Common.Security; +using SqlSugar; + +namespace Tnb.ProductionMgr.Entities; + +/// +/// mes齐套出库子表 +/// +[SugarTable("prd_kitting_out_d")] +public partial class PrdKittingOutD : BaseEntity +{ + public PrdKittingOutD() + { + id = SnowflakeIdHelper.NextId(); + } + /// + /// 物料ID + /// + public string material_id { get; set; } = string.Empty; + + /// + /// 物料编号 + /// + public string? material_code { get; set; } + + /// + /// 单位ID + /// + public string? unit_id { get; set; } + + /// + /// 单位代码 + /// + public string? unit_code { get; set; } + + /// + /// 批次 + /// + public string? code_batch { get; set; } + + /// + /// 数量(件数) + /// + public decimal pr_qty { get; set; } + + /// + /// 箱数 + /// + public int box { get; set; } + + /// + /// q齐套出库id + /// + public string kitting_out_id { get; set; } = string.Empty; + +} \ No newline at end of file diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdKittingOutH.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdKittingOutH.cs new file mode 100644 index 00000000..c5fd5cbc --- /dev/null +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdKittingOutH.cs @@ -0,0 +1,97 @@ +using JNPF.Common.Contracts; +using JNPF.Common.Security; +using SqlSugar; + +namespace Tnb.ProductionMgr.Entities; + +/// +/// mes齐套出库主表 +/// +[SugarTable("prd_kitting_out_h")] +public partial class PrdKittingOutH : BaseEntity +{ + public PrdKittingOutH() + { + id = SnowflakeIdHelper.NextId(); + } + /// + /// 出库仓库ID + /// + public string warehouse_id { get; set; } = string.Empty; + + /// + /// 目标库位编号 + /// + public string location_code { get; set; } = string.Empty; + + /// + /// 产品ID + /// + public string material_id { get; set; } = string.Empty; + + /// + /// 产品编号 + /// + public string? material_code { get; set; } + + /// + /// 齐套搭配方案ID + /// + public string collocation_scheme_id { get; set; } = string.Empty; + + /// + /// 齐套搭配方案编号 + /// + public string? collocation_scheme_code { get; set; } + + /// + /// 顺序号 + /// + public string? seq { get; set; } + + /// + /// 创建用户 + /// + public string? create_id { get; set; } + + /// + /// 创建时间 + /// + public DateTime? create_time { get; set; } + + /// + /// 所属组织 + /// + public string? org_id { get; set; } + + /// + /// 流程任务Id + /// + public string? f_flowtaskid { get; set; } + + /// + /// 流程引擎Id + /// + public string? f_flowid { get; set; } + + /// + /// 单据号 + /// + public string code { get; set; } = string.Empty; + + /// + /// 所属工位 + /// + public string? workstation_id { get; set; } + + /// + /// 所属产线 + /// + public string? worklinei_d { get; set; } + + /// + /// 任务单 + /// + public string? mo_task_id { get; set; } + +} \ No newline at end of file diff --git a/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdKittingOutService.cs b/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdKittingOutService.cs new file mode 100644 index 00000000..b86a0354 --- /dev/null +++ b/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdKittingOutService.cs @@ -0,0 +1,10 @@ +namespace Tnb.ProductionMgr.Interfaces +{ + /// + /// MES齐套出库接口 + /// + public interface IPrdKittingOutService + { + + } +} \ No newline at end of file diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs new file mode 100644 index 00000000..598f9a33 --- /dev/null +++ b/ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs @@ -0,0 +1,108 @@ +using JNPF; +using JNPF.Common.Core.Manager; +using JNPF.Common.Dtos.VisualDev; +using JNPF.DependencyInjection; +using JNPF.DynamicApiController; +using JNPF.Extras.CollectiveOAuth.Models; +using JNPF.Extras.CollectiveOAuth.Utils; +using JNPF.FriendlyException; +using JNPF.Logging; +using JNPF.Systems.Interfaces.System; +using JNPF.VisualDev; +using JNPF.VisualDev.Entitys; +using JNPF.VisualDev.Interfaces; +using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json; +using SqlSugar; +using Tnb.BasicData; +using Tnb.BasicData.Entities; +using Tnb.ProductionMgr.Entities; +using Tnb.ProductionMgr.Interfaces; +using Tnb.WarehouseMgr.Entities.Dto.Inputs; + +namespace Tnb.ProductionMgr +{ + /// + /// 生产领料 + /// + [ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 700)] + [Route("api/[area]/[controller]/[action]")] + [OverideVisualDev(ModuleId)] + public class PrdKittingOutService : IOverideVisualDevService, IPrdKittingOutService, IDynamicApiController, ITransient + { + private const string ModuleId = "27565198830357"; + private readonly ISqlSugarRepository _repository; + private readonly ISqlSugarClient _db; + private readonly IRunService _runService; + private readonly IVisualDevService _visualDevService; + private readonly IDictionaryDataService _dictionaryDataService; + private readonly IUserManager _userManager; + public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); + + public PrdKittingOutService(ISqlSugarRepository repository, IRunService runService, IUserManager userManager,IVisualDevService visualDevService, IDictionaryDataService dictionaryDataService) + { + _db = repository.AsSugarClient(); + _runService = runService; + _visualDevService = visualDevService; + _dictionaryDataService = dictionaryDataService; + _repository = repository; + _userManager = userManager; + OverideFuncs.CreateAsync = Create; + } + + private async Task Create(VisualDevModelDataCrInput visualDevModelDataCrInput) + { + try + { + var db = _repository.AsSugarClient(); + + List input = new List(); + visualDevModelDataCrInput.data["code"] = "111"; + input.Add(new MESKittingOutStkInput() + { + org_id = _userManager.GetUserInfo().Result.organizeId, + bill_date = DateTime.Now, + warehouse_id = visualDevModelDataCrInput.data.ContainsKey("warehouse_id") ? visualDevModelDataCrInput.data["warehouse_id"].ToString() : "", + location_code = visualDevModelDataCrInput.data.ContainsKey("location_code") ? visualDevModelDataCrInput.data["location_code"].ToString() : "", + material_id = visualDevModelDataCrInput.data.ContainsKey("material_id") ? visualDevModelDataCrInput.data["material_id"].ToString() : "", + material_code = visualDevModelDataCrInput.data.ContainsKey("material_code") ? visualDevModelDataCrInput.data["material_code"].ToString() : "", + collocation_scheme_id = visualDevModelDataCrInput.data.ContainsKey("collocation_scheme_id") ? visualDevModelDataCrInput.data["collocation_scheme_id"].ToString() : "", + collocation_scheme_code = visualDevModelDataCrInput.data.ContainsKey("collocation_scheme_code") ? visualDevModelDataCrInput.data["collocation_scheme_code"].ToString() : "", + source_id = visualDevModelDataCrInput.data.ContainsKey("code") ? visualDevModelDataCrInput.data["code"].ToString() : "", + // source_id = "123", + seq = visualDevModelDataCrInput.data.ContainsKey("seq") ? (int)visualDevModelDataCrInput.data["seq"] : 0, + create_id = _userManager.UserId, + wmsKittingoutDs = new List(), + }); + + input[0].wmsKittingoutDs = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(visualDevModelDataCrInput.data["tableField115"])); + string domain = (App.HttpContext.Request.IsHttps ? "https://" : "http://") + App.HttpContext.Request.Host; + Dictionary header = new Dictionary() + { + ["Authorization"] = App.HttpContext.Request.Headers["Authorization"] + }; + var sendResult = HttpUtils.RequestPost(domain + WebApiConst.MES_KITTING_OUT_STK,JsonConvert.SerializeObject(input),header); + Log.Information(sendResult); + + AuthResponse authResponse = JsonConvert.DeserializeObject(sendResult); + if (authResponse.code != 200) + { + throw Oops.Bah(authResponse.msg); + } + else + { + VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true); + await _runService.Create(templateEntity, visualDevModelDataCrInput); + } + return await Task.FromResult(true); + } + catch (Exception e) + { + Console.WriteLine(e); + Log.Error(e.Message); + throw Oops.Bah(e.Message); + } + + } + } +} \ No newline at end of file