From a5eb93809d0298736e630b4fbbdd43d4c1729447 Mon Sep 17 00:00:00 2001 From: zhou keda <1315948824@qq.com> Date: Mon, 24 Jun 2024 11:09:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=96=99=E7=AD=BE=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PrdMaterialReceiptService.cs | 99 ++++++++++++++++++- .../Tnb.ProductionMgr/PrdMoTaskService.cs | 4 +- common/Tnb.Common/Utils/HttpClientHelper.cs | 6 +- 3 files changed, 105 insertions(+), 4 deletions(-) diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMaterialReceiptService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMaterialReceiptService.cs index 76878d99..934626f2 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMaterialReceiptService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMaterialReceiptService.cs @@ -19,7 +19,11 @@ using Tnb.ProductionMgr.Entities.Dto; using Tnb.ProductionMgr.Interfaces; using Tnb.WarehouseMgr; using Tnb.WarehouseMgr.Entities; +using Tnb.WarehouseMgr.Entities.Attributes; using Tnb.WarehouseMgr.Entities.Dto; +using Tnb.WarehouseMgr.Entities.Dto.Inputs; +using Tnb.WarehouseMgr.Interfaces; +using Tnb.WarehouseMgr.Entities.Dto.Outputs; namespace Tnb.ProductionMgr { @@ -28,19 +32,23 @@ namespace Tnb.ProductionMgr /// [ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 700)] [Route("api/[area]/[controller]/[action]")] - public class PrdMaterialReceiptService : IPrdMaterialReceiptService, IDynamicApiController, ITransient + [ServiceModule(BizTypeId)] + public class PrdMaterialReceiptService : BaseWareHouseService,IPrdMaterialReceiptService, IDynamicApiController, ITransient { + private const string BizTypeId = "26786119531541"; private readonly ISqlSugarRepository _repository; private readonly IUserManager _userManager; private readonly IOrganizeService _organizeService; private readonly IBillRullService _billRullService; private readonly IPrdMoTaskService _prdMoTaskService; + private readonly IWmsCarryQueryService _wmsCarryQueryService; public PrdMaterialReceiptService( ISqlSugarRepository repository, IBillRullService billRullService, IOrganizeService organizeService, IPrdMoTaskService prdMoTaskService, + IWmsCarryQueryService wmsCarryQueryService, IUserManager userManager ) { @@ -49,6 +57,7 @@ namespace Tnb.ProductionMgr _organizeService = organizeService; _billRullService = billRullService; _prdMoTaskService = prdMoTaskService; + _wmsCarryQueryService = wmsCarryQueryService; } @@ -370,5 +379,93 @@ namespace Tnb.ProductionMgr ? throw Oops.Bah(result.ErrorMessage) : !result2.IsSuccess ? throw Oops.Bah(result2.ErrorMessage) : (dynamic)"签收成功"; } + + public override async Task ModifyAsync(WareHouseUpInput input) + { + if (input == null) + { + throw new ArgumentNullException(nameof(input)); + } + + if (string.IsNullOrEmpty(input.requireId)) + { + throw Oops.Bah("来源id为空"); + } + + var db = _repository.AsSugarClient(); + PrdMoTask moTask = await db.Queryable().SingleAsync(x => x.id == input.requireId); + if (moTask == null) + { + throw Oops.Bah($"未找到来源id为{input.requireId}的生产任务单"); + } + string code = await _billRullService.GetBillNumber(Tnb.BasicData.CodeTemplateConst.MATERIAL_RECEIPT_CODE); + OrganizeEntity workshop = await _organizeService.GetAnyParentByWorkstationId(moTask.workstation_id, DictConst.RegionCategoryWorkshopCode); + List insertHList = new List(); + List insertDList = new List(); + string orgId = _userManager.GetUserInfo().Result.organizeId; + foreach(string carryId in input.carryIds) + { + WmsCarryH carry = await db.Queryable().SingleAsync(x => x.id == carryId); + + PrdMaterialReceiptH prdMaterialReceiptH = new PrdMaterialReceiptH() + { + code = code, + station_id = moTask.workstation_id, + mo_task_id = moTask.id, + process_id = moTask.process_id, + equip_id = moTask.eqp_id, + workshop_id = workshop?.Id ?? "", + carry_id = carry.id, + workline_id = moTask.workline_id, + carry_code = carry.carry_code, + mbom_process_id = moTask.mbom_process_id, + create_id = _userManager.UserId, + create_time = DateTime.Now, + org_id = orgId + }; + insertHList.Add(prdMaterialReceiptH); + + CarryQueryOutput carryQueryOutput = await _wmsCarryQueryService.MESCarryQueryResult(new MESCarryQueryResultInput(){carry_code = carry.carry_code}); + if (carryQueryOutput.wmsCarryCodes != null && carryQueryOutput.wmsCarryCodes.Count > 0) + { + foreach (var item in carryQueryOutput.wmsCarryCodes) + { + + insertDList.Add(new PrdMaterialReceiptD + { + material_receipt_id = prdMaterialReceiptH.id, + material_id = item.material_id, + num = item.codeqty, + batch = item.code_batch, + unit_id = item.unit_id, + carry_id = carry.id, + barcode = item.barcode, + is_all_feeding = 0, + member_carry_id = item.member_carryid, + member_carry_code = item.member_carrycode, + feeding_num = 0, + supplier_id = item.supplier_id, + instock_time = item.instock_time, + check_conclusion = item.check_conclusion, + }); + } + } + else + { + throw Oops.Bah("未找到物料明细"); + } + + } + + DbResult result = await db.Ado.UseTranAsync(async () => + { + await db.Insertable(insertHList).ExecuteCommandAsync(); + await db.Insertable(insertDList).ExecuteCommandAsync(); + }); + if (!result.IsSuccess) + { + throw Oops.Bah(result.ErrorMessage); + } + } } } \ No newline at end of file diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs index af8f4428..103c6697 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs @@ -2042,7 +2042,7 @@ namespace Tnb.ProductionMgr string responseresult = await HttpClientHelper.GetRequestAsync(_eleCtlCfg.WriteTagUrl, dicCommand2); Log.Information($"提拔确认完成参数成返回结果:{responseresult}"); X2ServerResult x2ServerResult = JsonConvert.DeserializeObject(responseresult); - if (x2ServerResult.Result != "OK") + if (x2ServerResult.Result != X2ServerResult.Ok) { throw Oops.Bah(x2ServerResult.Msg); } @@ -2071,7 +2071,7 @@ namespace Tnb.ProductionMgr string responseresult = await HttpClientHelper.GetRequestAsync(_eleCtlCfg.WriteTagUrl, dicCommand3,false); Log.Information($"{eqpDaq3.equip_code},{eqpDaq3.label_name}称重完成返回结果:{responseresult}"); X2ServerResult x2ServerResult = JsonConvert.DeserializeObject(responseresult); - if (x2ServerResult.Result != "OK") + if (x2ServerResult.Result != X2ServerResult.Ok) { throw Oops.Bah(x2ServerResult.Msg); } diff --git a/common/Tnb.Common/Utils/HttpClientHelper.cs b/common/Tnb.Common/Utils/HttpClientHelper.cs index 89f4b8ef..56b83f15 100644 --- a/common/Tnb.Common/Utils/HttpClientHelper.cs +++ b/common/Tnb.Common/Utils/HttpClientHelper.cs @@ -13,8 +13,12 @@ namespace Tnb.Common.Utils public string Content { get; set; } } - public class X2ServerResult : Exception + + + public class X2ServerResult { + + public const string Ok = "Ok"; public string Result { get; set; } public string Msg { get; set; }