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