From f56c1d1120874688fb5013b0afc5bc6c36cc0057 Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Fri, 3 Nov 2023 10:27:58 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=B7=BB=E5=8A=A0x2server=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=85=B3=E8=81=94=E7=9A=84=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpEquipment.cs | 5 +++++ .../Dto/PrdManage/PADPackageTaskPageOutput.cs | 10 ++++++++++ .../Tnb.ProductionMgr/PrdPackReportService.cs | 5 ++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpEquipment.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpEquipment.cs index aa667ea2..70b020ae 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpEquipment.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpEquipment.cs @@ -217,5 +217,10 @@ public partial class EqpEquipment : BaseEntity /// 入库库位id /// public string? as_location_id { get; set; } + + /// + /// 第三方平台设备编号 + /// + public string? third_equip_code { get; set; } } diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PADPackageTaskPageOutput.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PADPackageTaskPageOutput.cs index a0365f28..f332da09 100644 --- a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PADPackageTaskPageOutput.cs +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/PADPackageTaskPageOutput.cs @@ -144,5 +144,15 @@ namespace Tnb.ProductionMgr.Entities.Dto.PrdManage /// 副单位数量(kg) /// public string? deputy_num { get; set; } + + /// + /// 第三方平台设备编号 + /// + public string? third_equip_code { get; set; } + + /// + /// 称重点位名称 + /// + public string? weight_name { get; set; } } } \ No newline at end of file diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs index d975fe21..f7751cfd 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdPackReportService.cs @@ -401,13 +401,14 @@ namespace Tnb.ProductionMgr .LeftJoin((a,b,c,d,e,f,g,h,i)=>a.process_id==i.process_id && i.enabled==1) .LeftJoin((a,b,c,d,e,f,g,h,i,j)=>a.mo_id==j.id) .LeftJoin((a,b,c,d,e,f,g,h,i,j,k)=>a.material_id==k.material_id && k.auxiliary_unit_id=="kg") + .LeftJoin((a,b,c,d,e,f,g,h,i,j,k,l)=>a.eqp_id==l.equip_id && l.enabled==1 && l.label_point=="提报装箱称重点位") .Where((a, b) => a.workstation_id == input.stationId && (a.mo_task_status == DictConst.ToBeStartedEnCode || a.mo_task_status == DictConst.MoStatusPauseCode || a.mo_task_status == DictConst.ComplatedEnCode || a.mo_task_status == DictConst.InProgressEnCode) ) .WhereIF(!string.IsNullOrEmpty(mo_task_code),a=>a.mo_task_code.Contains(mo_task_code)) //.WhereIF(!string.IsNullOrEmpty(mo_task_status),a=>a.mo_task_status==mo_task_status) .WhereIF(statusList.Count>0,a=>statusList.Contains(a.mo_task_status)) .WhereIF(status=="3" && start_time!=null,a=>a.act_end_date>=start_time) .WhereIF(status=="3" && end_time!=null,a=>a.act_end_date<=end_time) - .Select((a, b, c, d, e,f,g,h,i,j,k) => new PADPackageTaskPageOutput + .Select((a, b, c, d, e,f,g,h,i,j,k,l) => new PADPackageTaskPageOutput { id = a.id, mo_task_code = a.mo_task_code, @@ -448,6 +449,8 @@ namespace Tnb.ProductionMgr minpacking = b.minpacking, main_num = k.number_of_primary_unit, deputy_num = k.number_of_auxiliary_unit, + third_equip_code = f.third_equip_code, + weight_name = l.label_name }) .MergeTable() .OrderBy($"{input.sidx} {input.sort}") From 7a1dbf4e97b6ad4d5aee2473a563408af189894d Mon Sep 17 00:00:00 2001 From: FanLian Date: Fri, 3 Nov 2023 11:37:58 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=88=A0=E9=99=A4=E9=BD=90=E5=A5=97?= =?UTF-8?q?=E5=87=BA=E5=BA=93=E6=8E=A5=E5=8F=A3=E7=9A=84seq=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/Inputs/MESKittingOutStkInput.cs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESKittingOutStkInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESKittingOutStkInput.cs index ec0f52d8..c93af439 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESKittingOutStkInput.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESKittingOutStkInput.cs @@ -81,11 +81,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto.Inputs /// public string source_code { get; set; } - /// - /// 顺序号 - /// - public int seq { get; set; } - /// /// 创建用户ID /// From c7add3bfe50937ea4f8f1ed18a785f0e869139e5 Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Fri, 3 Nov 2023 14:29:22 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E9=BD=90=E5=A5=97=E5=87=BA=E5=BA=93?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BasicData/Tnb.BasicData/BasQrcodeService.cs | 9 +- .../Dto/PrdManage/KittingOutNewInput.cs | 27 ++++ .../Tnb.ProductionMgr/PrdKittingOutService.cs | 142 +++++++++++++++++- 3 files changed, 176 insertions(+), 2 deletions(-) create mode 100644 ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/KittingOutNewInput.cs diff --git a/BasicData/Tnb.BasicData/BasQrcodeService.cs b/BasicData/Tnb.BasicData/BasQrcodeService.cs index 796891dc..c3875673 100644 --- a/BasicData/Tnb.BasicData/BasQrcodeService.cs +++ b/BasicData/Tnb.BasicData/BasQrcodeService.cs @@ -10,6 +10,7 @@ using Tnb.BasicData.Entities.Dto; using Tnb.BasicData.Entitys.Dto.BasProcess; using Tnb.BasicData.Interfaces; using Tnb.EquipMgr.Entities; +using Tnb.WarehouseMgr.Entities; namespace Tnb.BasicData { @@ -41,8 +42,10 @@ namespace Tnb.BasicData .LeftJoin((a, b) => a.source_id == b.Id) .LeftJoin((a, b, c) => a.source_id == c.id) .LeftJoin((a, b, c, d) => a.source_id == d.id) + .LeftJoin((a,b,c,d,e)=>a.source_id==e.id) + .LeftJoin((a,b,c,d,e,f)=>a.source_id==f.id) .Where((a, b, c, d) => a.code == code) - .Select((a, b, c, d) => new + .Select((a, b, c, d,e,f) => new { id = a.id, source_id = a.source_id, @@ -52,6 +55,10 @@ namespace Tnb.BasicData equip_code = a.code, equip_name = c.name, tool_location_code = d.location_code, + bas_location_name = e.location_name, + bas_location_code = e.location_code, + carry_name = f.carry_name, + carry_code = f.carry_code, }).FirstAsync(); return result; } diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/KittingOutNewInput.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/KittingOutNewInput.cs new file mode 100644 index 00000000..bf98ca2b --- /dev/null +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Dto/PrdManage/KittingOutNewInput.cs @@ -0,0 +1,27 @@ +namespace Tnb.ProductionMgr.Entities.Dto +{ + public class KittingOutNewInput + { + + /// + /// 目标库位编号 + /// + public string location_code { get; set; } = string.Empty; + + + /// + /// 齐套搭配方案ID + /// + public string collocation_scheme_id { get; set; } = string.Empty; + + /// 所属工位 + /// + public string? workstation_id { get; set; } + + /// + /// 任务单 + /// + public string? mo_task_id { get; set; } + + } +} \ No newline at end of file diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs index e94f3915..fd32c7c9 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs @@ -8,6 +8,7 @@ using JNPF.Extras.CollectiveOAuth.Utils; using JNPF.FriendlyException; using JNPF.Logging; using JNPF.Systems.Entitys.Permission; +using JNPF.Systems.Entitys.System; using JNPF.Systems.Interfaces.Permission; using JNPF.Systems.Interfaces.System; using JNPF.VisualDev; @@ -23,11 +24,12 @@ using Tnb.ProductionMgr.Entities; using Tnb.ProductionMgr.Interfaces; using Tnb.WarehouseMgr.Entities.Dto.Inputs; using Tnb.ProductionMgr.Entities.Dto; +using Tnb.WarehouseMgr.Entities; namespace Tnb.ProductionMgr { /// - /// 生产领料 + /// 齐套出库 /// [ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 700)] [Route("api/[area]/[controller]/[action]")] @@ -262,5 +264,143 @@ namespace Tnb.ProductionMgr } } + + + /// + /// 齐套出库申请 + /// + /// + /// + /// + [HttpPost] + public async Task KittingOutNew(KittingOutNewInput kittingOutInput) + { + PrdKittingOutH prdKittingOutH = new PrdKittingOutH(); + string warehouse_id = "26103348825381";//二楼缓存仓 + try + { + var db = _repository.AsSugarClient(); + PrdMoTask prdMoTask = await db.Queryable().SingleAsync(x=>x.id==kittingOutInput.mo_task_id); + BasMaterial basMaterial = await db.Queryable().SingleAsync(x=>x.id==prdMoTask.material_id); + WmsCollocationSchemeH wmsCollocationSchemeH = await db.Queryable().SingleAsync(x=>x.id==kittingOutInput.collocation_scheme_id); + List wmsCollocationSchemeDs = await db.Queryable().Where(x=>x.bill_id==kittingOutInput.collocation_scheme_id).ToListAsync(); + List materialIds = wmsCollocationSchemeDs.Select(x => x.material_id).ToList(); + List basMaterials = await db.Queryable().Where(x=>materialIds.Contains(x.id)).ToListAsync(); + Dictionary unitIdDic = await db.Queryable() + .LeftJoin((a, b) => b.EnCode == DictConst.MeasurementUnit) + .LeftJoin((a, b, c) => b.Id == c.DictionaryTypeId && a.unit_id == c.EnCode) + .Where((a,b,c)=>materialIds.Contains(a.id)) + .Select((a, b, c) => new + { + key = a.id, + value = c.Id + }) + .ToDictionaryAsync(x => x.key, x => x.value); + Dictionary unitCodeDic = basMaterials.ToDictionary(x => x.id, x => x.unit_id); + OrganizeEntity workline = await _organizeService.GetAnyParentByWorkstationId(kittingOutInput.workstation_id, DictConst.RegionCategoryWorklineCode); + + List input = new List(); + input.Add(new MESKittingOutStkInput() + { + org_id = _userManager.GetUserInfo().Result.organizeId, + bill_date = DateTime.Now, + warehouse_id = warehouse_id, + location_code = kittingOutInput.location_code, + material_id = prdMoTask.material_id, + material_code = basMaterial.code, + collocation_scheme_id = kittingOutInput.collocation_scheme_id, + collocation_scheme_code = wmsCollocationSchemeH.bill_code, + source_id = prdKittingOutH.id, + seq = 0, + create_id = _userManager.UserId, + wmsKittingoutDs = new List(), + }); + + foreach (var item in wmsCollocationSchemeDs) + { + input[0].wmsKittingoutDs.Add(new MESKittingOutStkDInput() + { + material_id = item.material_id, + material_code = item.material_code, + unit_id = unitIdDic.ContainsKey(item.material_id) ? unitIdDic[item.material_id].ToString() : "", + unit_code = unitCodeDic.ContainsKey(item.material_id) ? unitCodeDic[item.material_id].ToString() : "", + pr_qty = item.qty, + code_batch = "", + box = item.box, + }); + } + + 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 = warehouse_id; + prdKittingOutH.location_code = kittingOutInput.location_code; + prdKittingOutH.material_id = basMaterial.id; + prdKittingOutH.material_code = basMaterial.code; + prdKittingOutH.collocation_scheme_id = kittingOutInput.collocation_scheme_id; + prdKittingOutH.collocation_scheme_code = wmsCollocationSchemeH.bill_code; + prdKittingOutH.workline_id = workline?.Id ?? ""; + prdKittingOutH.workstation_id = kittingOutInput.workstation_id; + prdKittingOutH.mo_task_id = kittingOutInput.mo_task_id; + prdKittingOutH.seq = "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 wmsCollocationSchemeDs) + { + prdKittingOutDs.Add(new PrdKittingOutD() + { + material_id = item.material_id, + material_code = item.material_code, + unit_id = unitIdDic.ContainsKey(item.material_id) ? unitIdDic[item.material_id].ToString() : "", + unit_code = unitCodeDic.ContainsKey(item.material_id) ? unitCodeDic[item.material_id].ToString() : "", + pr_qty = item.qty, + code_batch = "", + box = item.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); + } + + } } } \ No newline at end of file From 1e74928799d69b102ddde4a20daa49bb4b5441cd Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Fri, 3 Nov 2023 14:32:08 +0800 Subject: [PATCH 4/4] bug --- ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs index fd32c7c9..fd81e5b3 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdKittingOutService.cs @@ -186,7 +186,6 @@ namespace Tnb.ProductionMgr collocation_scheme_id = kittingOutInput.collocation_scheme_id, collocation_scheme_code = kittingOutInput.collocation_scheme_code, source_id = prdKittingOutH.id, - seq = !string.IsNullOrEmpty(kittingOutInput.seq) ? Convert.ToInt32(kittingOutInput.seq) : 0, create_id = _userManager.UserId, wmsKittingoutDs = new List(), }); @@ -311,7 +310,6 @@ namespace Tnb.ProductionMgr collocation_scheme_id = kittingOutInput.collocation_scheme_id, collocation_scheme_code = wmsCollocationSchemeH.bill_code, source_id = prdKittingOutH.id, - seq = 0, create_id = _userManager.UserId, wmsKittingoutDs = new List(), });