From ff966fd569c28c7475b10d8cdc003755fa682f2f Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Wed, 2 Aug 2023 15:58:08 +0800 Subject: [PATCH] =?UTF-8?q?PDA=E9=BD=90=E5=A5=97=E5=87=BA=E5=BA=93?= =?UTF-8?q?=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/PrdManage/KittingOutInput.cs | 88 ++++++++++ .../Entity/PrdKittingOutH.cs | 2 +- .../Tnb.ProductionMgr/PrdKittingOutService.cs | 162 +++++++++++++++--- .../Tnb.ProductionMgr/PrdMoTaskService.cs | 22 ++- .../Permission/DepartmentService.cs | 22 +++ 5 files changed, 266 insertions(+), 30 deletions(-) create mode 100644 ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/KittingOutInput.cs diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/KittingOutInput.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/KittingOutInput.cs new file mode 100644 index 00000000..bbbfda0b --- /dev/null +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/KittingOutInput.cs @@ -0,0 +1,88 @@ +namespace Tnb.ProductionMgr.Entities.Dto +{ + public class KittingOutInput + { + public string id { get; set; } + /// + /// 出库仓库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? workline_id { get; set; } + + /// + /// 任务单 + /// + public string? mo_task_id { get; set; } + + public List> tableField115 { get; set; } + } +} \ No newline at end of file diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdKittingOutH.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdKittingOutH.cs index c5fd5cbc..6169c976 100644 --- a/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdKittingOutH.cs +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdKittingOutH.cs @@ -87,7 +87,7 @@ public partial class PrdKittingOutH : BaseEntity /// /// 所属产线 /// - public string? worklinei_d { get; set; } + public string? workline_id { get; set; } /// /// 任务单 diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs index 8b6a4da7..5674bd65 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs @@ -20,6 +20,7 @@ using Tnb.BasicData.Entities; using Tnb.ProductionMgr.Entities; using Tnb.ProductionMgr.Interfaces; using Tnb.WarehouseMgr.Entities.Dto.Inputs; +using Tnb.ProductionMgr.Entities.Dto; namespace Tnb.ProductionMgr { @@ -46,10 +47,115 @@ namespace Tnb.ProductionMgr _repository = repository; _userManager = userManager; _billRullService = billRullService; - OverideFuncs.CreateAsync = Create; + // OverideFuncs.CreateAsync = Create; } - private async Task Create(VisualDevModelDataCrInput visualDevModelDataCrInput) + // private async Task Create(VisualDevModelDataCrInput visualDevModelDataCrInput) + // { + // PrdKittingOutH prdKittingOutH = new PrdKittingOutH(); + // try + // { + // var db = _repository.AsSugarClient(); + // + // List input = new List(); + // 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 = prdKittingOutH.id, + // 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 + // { + // prdKittingOutH.code = await _billRullService.GetBillNumber(CodeTemplateConst.PRDKITTINGOUTSTOCK_CODE); + // prdKittingOutH.warehouse_id = visualDevModelDataCrInput.data.ContainsKey("warehouse_id") ? visualDevModelDataCrInput.data["warehouse_id"].ToString() : ""; + // prdKittingOutH.location_code = visualDevModelDataCrInput.data.ContainsKey("location_code") ? visualDevModelDataCrInput.data["location_code"].ToString() : ""; + // prdKittingOutH.material_id = visualDevModelDataCrInput.data.ContainsKey("material_id") ? visualDevModelDataCrInput.data["material_id"].ToString() : ""; + // prdKittingOutH.material_code = visualDevModelDataCrInput.data.ContainsKey("material_code") ? visualDevModelDataCrInput.data["material_code"].ToString() : ""; + // prdKittingOutH.collocation_scheme_id = visualDevModelDataCrInput.data.ContainsKey("collocation_scheme_id") ? visualDevModelDataCrInput.data["collocation_scheme_id"].ToString() : ""; + // prdKittingOutH.collocation_scheme_code = visualDevModelDataCrInput.data.ContainsKey("collocation_scheme_code") ? visualDevModelDataCrInput.data["collocation_scheme_code"].ToString() : ""; + // prdKittingOutH.workline_id = visualDevModelDataCrInput.data.ContainsKey("worklinei_d") ? visualDevModelDataCrInput.data["worklinei_d"].ToString() : ""; + // prdKittingOutH.workstation_id = visualDevModelDataCrInput.data.ContainsKey("workstation_id") ? visualDevModelDataCrInput.data["workstation_id"].ToString() : ""; + // prdKittingOutH.mo_task_id = visualDevModelDataCrInput.data.ContainsKey("mo_task_id") ? visualDevModelDataCrInput.data["mo_task_id"].ToString() : ""; + // prdKittingOutH.seq = visualDevModelDataCrInput.data.ContainsKey("seq") ? visualDevModelDataCrInput.data["seq"]?.ToString() : "0"; + // prdKittingOutH.create_id = _userManager.UserId; + // prdKittingOutH.create_time = DateTime.Now; + // prdKittingOutH.org_id = _userManager.GetUserInfo().Result.organizeId; + // List prdKittingOutDs = new List(); + // foreach (var item in (JArray)visualDevModelDataCrInput.data["tableField115"]) + // { + // prdKittingOutDs.Add(new PrdKittingOutD() + // { + // material_id = item.Value("material_id"), + // material_code = item.Value("material_code"), + // unit_id = item.Value("unit_id"), + // unit_code = item.Value("unit_code"), + // pr_qty = item.Value("pr_qty"), + // code_batch = item.Value("code_batch"), + // box = item.Value("box"), + // kitting_out_id = prdKittingOutH.id, + // }); + // } + // + // // VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true); + // // await _runService.Create(templateEntity, visualDevModelDataCrInput); + // + // DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () => + // { + // await _repository.InsertAsync(prdKittingOutH); + // if (prdKittingOutDs.Count > 0) + // { + // await db.Insertable(prdKittingOutDs).ExecuteCommandAsync(); + // } + // }); + // + // if (!result.IsSuccess) + // { + // throw Oops.Bah(result.ErrorMessage); + // } + // } + // return await Task.FromResult(true); + // } + // catch (Exception e) + // { + // Console.WriteLine(e); + // Log.Error(e.Message); + // throw Oops.Bah(e.Message); + // } + // + // } + + /// + /// 齐套出库申请 + /// + /// + /// + /// + [HttpPost] + public async Task KittingOut(KittingOutInput kittingOutInput) { PrdKittingOutH prdKittingOutH = new PrdKittingOutH(); try @@ -61,19 +167,19 @@ namespace Tnb.ProductionMgr { 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() : "", + warehouse_id = kittingOutInput.warehouse_id, + location_code = kittingOutInput.location_code, + material_id = kittingOutInput.material_id, + material_code = kittingOutInput.material_code, + collocation_scheme_id = kittingOutInput.collocation_scheme_id, + collocation_scheme_code = kittingOutInput.collocation_scheme_code, source_id = prdKittingOutH.id, - seq = visualDevModelDataCrInput.data.ContainsKey("seq") ? (int)visualDevModelDataCrInput.data["seq"] : 0, + seq = !string.IsNullOrEmpty(kittingOutInput.seq) ? Convert.ToInt32(kittingOutInput.seq) : 0, create_id = _userManager.UserId, wmsKittingoutDs = new List(), }); - input[0].wmsKittingoutDs = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(visualDevModelDataCrInput.data["tableField115"])); + input[0].wmsKittingoutDs = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(kittingOutInput.tableField115)); string domain = (App.HttpContext.Request.IsHttps ? "https://" : "http://") + App.HttpContext.Request.Host; Dictionary header = new Dictionary() { @@ -90,31 +196,31 @@ namespace Tnb.ProductionMgr else { prdKittingOutH.code = await _billRullService.GetBillNumber(CodeTemplateConst.PRDKITTINGOUTSTOCK_CODE); - prdKittingOutH.warehouse_id = visualDevModelDataCrInput.data.ContainsKey("warehouse_id") ? visualDevModelDataCrInput.data["warehouse_id"].ToString() : ""; - prdKittingOutH.location_code = visualDevModelDataCrInput.data.ContainsKey("location_code") ? visualDevModelDataCrInput.data["location_code"].ToString() : ""; - prdKittingOutH.material_id = visualDevModelDataCrInput.data.ContainsKey("material_id") ? visualDevModelDataCrInput.data["material_id"].ToString() : ""; - prdKittingOutH.material_code = visualDevModelDataCrInput.data.ContainsKey("material_code") ? visualDevModelDataCrInput.data["material_code"].ToString() : ""; - prdKittingOutH.collocation_scheme_id = visualDevModelDataCrInput.data.ContainsKey("collocation_scheme_id") ? visualDevModelDataCrInput.data["collocation_scheme_id"].ToString() : ""; - prdKittingOutH.collocation_scheme_code = visualDevModelDataCrInput.data.ContainsKey("collocation_scheme_code") ? visualDevModelDataCrInput.data["collocation_scheme_code"].ToString() : ""; - prdKittingOutH.worklinei_d = visualDevModelDataCrInput.data.ContainsKey("worklinei_d") ? visualDevModelDataCrInput.data["worklinei_d"].ToString() : ""; - prdKittingOutH.workstation_id = visualDevModelDataCrInput.data.ContainsKey("workstation_id") ? visualDevModelDataCrInput.data["workstation_id"].ToString() : ""; - prdKittingOutH.mo_task_id = visualDevModelDataCrInput.data.ContainsKey("mo_task_id") ? visualDevModelDataCrInput.data["mo_task_id"].ToString() : ""; - prdKittingOutH.seq = visualDevModelDataCrInput.data.ContainsKey("seq") ? visualDevModelDataCrInput.data["seq"]?.ToString() : "0"; + prdKittingOutH.warehouse_id = kittingOutInput.warehouse_id; + prdKittingOutH.location_code = kittingOutInput.location_code; + prdKittingOutH.material_id = kittingOutInput.material_id; + prdKittingOutH.material_code = kittingOutInput.material_code; + prdKittingOutH.collocation_scheme_id = kittingOutInput.collocation_scheme_id; + prdKittingOutH.collocation_scheme_code = kittingOutInput.collocation_scheme_code; + prdKittingOutH.workline_id = kittingOutInput.workline_id; + prdKittingOutH.workstation_id = kittingOutInput.workstation_id; + prdKittingOutH.mo_task_id = kittingOutInput.mo_task_id; + prdKittingOutH.seq = kittingOutInput.seq; prdKittingOutH.create_id = _userManager.UserId; prdKittingOutH.create_time = DateTime.Now; prdKittingOutH.org_id = _userManager.GetUserInfo().Result.organizeId; List prdKittingOutDs = new List(); - foreach (var item in (JArray)visualDevModelDataCrInput.data["tableField115"]) + foreach (var item in kittingOutInput.tableField115) { prdKittingOutDs.Add(new PrdKittingOutD() { - material_id = item.Value("material_id"), - material_code = item.Value("material_code"), - unit_id = item.Value("unit_id"), - unit_code = item.Value("unit_code"), - pr_qty = item.Value("pr_qty"), - code_batch = item.Value("code_batch"), - box = item.Value("box"), + material_id = item.ContainsKey("material_id") ? item["material_id"].ToString() : "", + material_code = item.ContainsKey("material_code") ? item["material_code"].ToString() : "", + unit_id = item.ContainsKey("unit_id") ? item["unit_id"].ToString() : "", + unit_code = item.ContainsKey("unit_code") ? item["unit_code"].ToString() : "", + pr_qty = item.ContainsKey("pr_qty") ? Convert.ToDecimal(item["pr_qty"]) : 0, + code_batch = item.ContainsKey("code_batch") ? item["code_batch"].ToString() : "", + box = item.ContainsKey("box") ? Convert.ToInt32(item["box"]) : 0, kitting_out_id = prdKittingOutH.id, }); } diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs index a1bdb730..9305e7eb 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs @@ -1871,6 +1871,13 @@ namespace Tnb.ProductionMgr return await _db.Queryable().Where(it => it.eqp_id == eqpId && it.mo_task_status == DictConst.InProgressEnCode).ToListAsync(); } + + /// + /// 计算预计结束日期 + /// + /// + /// + /// [HttpPost] public async Task GetEstimatedEndTime(CountEstimatedEndTimeInput input) { @@ -1903,6 +1910,19 @@ namespace Tnb.ProductionMgr } } - + + /// + /// 获取这个产线生产中的任务单 + /// + /// + /// + [HttpPost] + public async Task GetMoTaskByWorklineId(Dictionary dic) + { + string id = dic["id"]; + return await _repository.AsSugarClient().Queryable() + .Where(x => x.workline_id == id && x.mo_task_status == DictConst.InProgressEnCode).FirstAsync(); + } + } } diff --git a/system/Tnb.Systems/Permission/DepartmentService.cs b/system/Tnb.Systems/Permission/DepartmentService.cs index a50f9a88..0bbea0f5 100644 --- a/system/Tnb.Systems/Permission/DepartmentService.cs +++ b/system/Tnb.Systems/Permission/DepartmentService.cs @@ -666,6 +666,28 @@ public class DepartmentService : IDepartmentService, IDynamicApiController, ITra }; } + + /// + /// 根据工位id获取产线信息 + /// + /// + /// + [HttpPost] + public async Task GetWorklineByWorkstationId(Dictionary dic) + { + string id = dic["id"]; + var db = _repository.AsSugarClient(); + OrganizeEntity organizeEntity = await db.Queryable().SingleAsync(x => x.Id == id); + if (organizeEntity != null && !string.IsNullOrEmpty(organizeEntity.OrganizeIdTree)) + { + string[] arr = organizeEntity.OrganizeIdTree.Split(","); + return await db.Queryable().SingleAsync(x => arr.Contains(x.Id) && x.Category == DictConst.RegionCategoryWorklineCode); + } + + return null; + + } + #endregion #region PublicMethod