From dcbf6fbc953901c79bc59a253439fa094ee35616 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 28 Jun 2023 14:36:07 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=87=BA=E5=BA=93=E7=AD=BE=E6=94=B6?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E5=9B=9E=E6=9B=B4=EF=BC=8C=E5=88=86=E6=8B=A3?= =?UTF-8?q?=E5=87=BA=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IWmsCarryMoveInStockService.cs | 17 +++++ .../WmsCarryMoveInStockService.cs | 5 +- .../Tnb.WarehouseMgr/WmsOutStockService.cs | 67 +++++++++++++++++-- .../WmsSignForDeliveryService.cs | 7 +- 4 files changed, 89 insertions(+), 7 deletions(-) create mode 100644 WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsCarryMoveInStockService.cs diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsCarryMoveInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsCarryMoveInStockService.cs new file mode 100644 index 00000000..c6308eba --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsCarryMoveInStockService.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using JNPF.Common.Dtos.VisualDev; + +namespace Tnb.WarehouseMgr.Interfaces +{ + /// + /// 载具移入服务接口 + /// + public interface IWmsCarryMoveInStockService + { + Task CarryMoveIn(VisualDevModelDataCrInput input); + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs index 4e9ade4d..ab349cb8 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs @@ -30,7 +30,7 @@ namespace Tnb.WarehouseMgr /// [OverideVisualDev(ModuleConsts.MODULE_CARRYMOVEINSTOCK_ID)] [ServiceModule(BizTypeId)] - public class WmsCarryMoveInStockService : BaseWareHouseService + public class WmsCarryMoveInStockService : BaseWareHouseService, IWmsCarryMoveInStockService { private const string BizTypeId = "26121988909861"; private readonly ISqlSugarClient _db; @@ -58,7 +58,8 @@ namespace Tnb.WarehouseMgr OverideFuncs.CreateAsync = CarryMoveIn; } - private async Task CarryMoveIn(VisualDevModelDataCrInput input) + [NonAction] + public async Task CarryMoveIn(VisualDevModelDataCrInput input) { try diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs index 63a030f5..d7ddf2b2 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs @@ -40,6 +40,9 @@ namespace Tnb.WarehouseMgr private readonly IWareHouseService _wareHouseService; private readonly IUserManager _userManager; private readonly IBillRullService _billRullService; + private readonly IWmsCarryMoveInStockService _wmsCarryMoveInStockService; + private readonly IWmsCarryService _wareCarryService; + public WmsOutStockService( ISqlSugarRepository repository, @@ -48,7 +51,9 @@ namespace Tnb.WarehouseMgr IVisualDevService visualDevService, IWareHouseService wareHouseService, IUserManager userManager, - IBillRullService billRullService) + IBillRullService billRullService, + IWmsCarryMoveInStockService wmsCarryMoveInStockService, + IWmsCarryService wareCarryService) { _db = repository.AsSugarClient(); _dictionaryDataService = dictionaryDataService; @@ -57,6 +62,8 @@ namespace Tnb.WarehouseMgr _wareHouseService = wareHouseService; _userManager = userManager; _billRullService = billRullService; + _wmsCarryMoveInStockService = wmsCarryMoveInStockService; + _wareCarryService = wareCarryService; OverideFuncs.CreateAsync = OutStockApplyFor; } @@ -261,7 +268,7 @@ namespace Tnb.WarehouseMgr [HttpGet] public async Task Testxx() { - var carryCodePropNames = typeof(WmsCarryCode).GetProperties().Select(p => p.Name); + var carryCodePropNames = typeof(WmsDistaskCode).GetProperties().Select(p => p.Name); var outStockCodePropNames = typeof(WmsOutstockCode).GetProperties().Select(p => p.Name); var intersects = carryCodePropNames.Intersect(outStockCodePropNames).ToList(); var excepts = carryCodePropNames.Except(outStockCodePropNames).ToList(); @@ -326,13 +333,65 @@ namespace Tnb.WarehouseMgr await _db.Updateable().SetColumns(it => new WmsOutstockH { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.id == input.requireId).ExecuteCommandAsync(); //如果是自动单据,需要回更上层系统 } + await _wareCarryService.UpdateNullCarry(carry); } else if (outStatus == EnumOutStatus.分拣出) { + if (input.distaskCodes?.Count > 0) + { + var osCodes = input.distaskCodes.Adapt>(); + osCodes.ForEach(x => x.id = SnowflakeIdHelper.NextId()); + await _db.Insertable(osCodes).ExecuteCommandAsync(); + + var carryCodes = await _db.Queryable().Where(it => input.carryIds.Contains(it.carry_id)).ToListAsync(); + var dicCodeQty = carryCodes.GroupBy(g => g.barcode).ToDictionary(x => x.Key, x => x.First().codeqty); + var dicUpdate = new Dictionary(); + var delBarcodes = new List(); + foreach (var dtc in input.distaskCodes) + { + if (dicCodeQty.ContainsKey(dtc.barcode)) + { + if (dtc.codeqty < dicCodeQty[dtc.barcode]) + { + dicUpdate[dtc.barcode] = dicCodeQty[dtc.barcode] - dtc.codeqty; + } + else + { + delBarcodes.Add(dtc.barcode); + } + } + } + if (dicUpdate.Count > 0) + { + foreach (var pair in dicUpdate) + { + WmsCarryCode carryCode = new(); + carryCode.codeqty = pair.Value; + await _db.Updateable(carryCode).UpdateColumns(it => it.codeqty).Where(it => it.barcode == pair.Key).ExecuteCommandAsync(); + } + await _db.Updateable().SetColumns(it => new WmsCarryH { out_status = ((int)EnumOutStatus.正常).ToString() }).Where(it => input.carryIds.Contains(it.id)).ExecuteCommandAsync(); + await _db.Deleteable().Where(it => input.carryIds.Contains(it.carry_id)).ExecuteCommandAsync(); + + } + if (delBarcodes.Count > 0) + { + await _db.Deleteable().Where(it => delBarcodes.Contains(it.barcode)).ExecuteCommandAsync(); + } + //载具移入 + var outStockH = await _db.Queryable().SingleAsync(it => it.id == input.requireId); + var visulDevInput = new VisualDevModelDataCrInput(); + visulDevInput.data = new Dictionary + { + [nameof(InStockStrategyQuery.warehouse_id)] = outStockH.warehouse_id, + [nameof(WmsPointH.location_id)] = outStockH.location_id, + [nameof(WmsCarryD.carry_id)] = input.carryIds.First(), + [nameof(WmsHandleH.biz_type)] = input.bizTypeId, + [nameof(WmsHandleH.bill_code)] = outStockH.bill_code, + }; + await _wmsCarryMoveInStockService.CarryMoveIn(visulDevInput); + } } - - //更新执行任务已签收 } } catch (Exception ex) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsSignForDeliveryService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsSignForDeliveryService.cs index 5f972f85..ca8672f7 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsSignForDeliveryService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsSignForDeliveryService.cs @@ -30,12 +30,14 @@ namespace Tnb.WarehouseMgr private readonly ISqlSugarClient _db; private readonly IWmsCarryService _wareCarryService; private readonly IDictionaryDataService _dictionaryDataService; + private readonly IWmsCarryMoveInStockService _wmsCarryMoveInStockService; private static Dictionary _dicBizType = new(); - public WmsSignForDeliveryService(ISqlSugarRepository repository, IWmsCarryService wareCarryService, IDictionaryDataService dictionaryDataService) + public WmsSignForDeliveryService(ISqlSugarRepository repository, IWmsCarryService wareCarryService, IDictionaryDataService dictionaryDataService, IWmsCarryMoveInStockService wmsCarryMoveInStockService) { _db = repository.AsSugarClient(); _wareCarryService = wareCarryService; _dictionaryDataService = dictionaryDataService; + _wmsCarryMoveInStockService = wmsCarryMoveInStockService; } /// /// 根据载具ID获取,对应的执行任务记录 @@ -87,6 +89,7 @@ namespace Tnb.WarehouseMgr WareHouseUpInput upInput = new() { loginType = "web", bizTypeId = disTask.biz_type, requireId = disTask.require_id, carryIds = new List { input.carryId } }; await DoUpdate(upInput); //回更业务 await _wareCarryService.UpdateNullCarry(carry); + } break; case "载具移出": @@ -98,6 +101,8 @@ namespace Tnb.WarehouseMgr } } + disTask.is_sign = 1; + await _db.Updateable(disTask).UpdateColumns(it => it.is_sign).ExecuteCommandAsync(); } } await _db.Ado.CommitTranAsync(); From 49578c27c2094fc921a9c4c95caddede5f95ae6f Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 28 Jun 2023 14:36:20 +0800 Subject: [PATCH 2/2] +1 --- WarehouseMgr/Tnb.WarehouseMgr/WmsSignForDeliveryService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsSignForDeliveryService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsSignForDeliveryService.cs index ca8672f7..34cccb55 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsSignForDeliveryService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsSignForDeliveryService.cs @@ -88,7 +88,7 @@ namespace Tnb.WarehouseMgr { WareHouseUpInput upInput = new() { loginType = "web", bizTypeId = disTask.biz_type, requireId = disTask.require_id, carryIds = new List { input.carryId } }; await DoUpdate(upInput); //回更业务 - await _wareCarryService.UpdateNullCarry(carry); + } break;