diff --git a/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs b/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs index 1e346ce8..69fa34c9 100644 --- a/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs +++ b/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs @@ -708,7 +708,6 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA InStockStrategyQuery inStockStrategyInput = new() { warehouse_id = "1", Size = 1, passage = startlocation.passage, AvoidBusyPassage = true, Region_id = WmsWareHouseConst.REGION_Purchase_ID, PolicyCode = WmsWareHouseConst.POLICY_YCLINSTOCK }; List endLocations = await _wareHouseService.InStockStrategy(inStockStrategyInput); if (endLocations.Count() == 0) - { LoggerYCLInternalTransfer.LogWarning($"【YCLInternalTransfer】 当前巷道没有空库位可以入库或者有任务正在执行"); continue; diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceD.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceD.cs index f9a0df57..7b1e0ebe 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceD.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceD.cs @@ -5,7 +5,7 @@ using SqlSugar; namespace Tnb.WarehouseMgr.Entities.Entity; /// -/// 委外订单表子表 +/// 委外收货表子表 /// [SugarTable("wms_outsource_d")] public partial class WmsOutsourceD : BaseEntity diff --git a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs index 9b5cd304..95c739ac 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs @@ -145,8 +145,8 @@ namespace Tnb.WarehouseMgr return _Logger; } } - protected string _LoggerAgvElevatorTaskFileName = ""; - protected ILogger _LoggerAgvElevatorTask; + protected static string _LoggerAgvElevatorTaskFileName = ""; + protected static ILogger _LoggerAgvElevatorTask; protected ILogger LoggerAgvElevatorTask { get diff --git a/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs b/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs index 7f693af9..4012227f 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs @@ -403,7 +403,7 @@ namespace Tnb.WarehouseMgr Logger.Information($"【UnloadConfirm】 发送电梯{devName}前门开门指令"); _ = await _elevatorControlService.SendOpenCloseCmd(devName, 3); //发送电梯前门开门指令 } - string innerpos = ""; + // 3 4号梯需要电梯是当前楼层开门状态就能进 bool canEnter = false; if (devName == "Elevator3" || devName == "Elevator4") @@ -431,18 +431,14 @@ namespace Tnb.WarehouseMgr Logger.LogInformation($"电梯内{devName}已有两托货!"); return await ToApiResult(HttpStatusCode.InternalServerError, $"电梯{devName}内已有两托货!"); } - WmsElevatorH wmsElevatorH = await _db.Queryable().Where(r => r.elevator_id == elevator.device_id).FirstAsync(); WmsElevatorcacheArea wmsElevatorcacheArea = await _db.Queryable().Where(r => r.location_id == dis.startlocation_id).FirstAsync(); // 如果当前所放梯内货位已占用 - if (wmsElevatorH.innerpos.Contains(wmsElevatorcacheArea.name)) + if (elevator.innerpos.Contains(wmsElevatorcacheArea.name)) { Logger.LogInformation($"电梯{devName}内托盘{dis.carry_code}当前准备放置的货位已有货!"); return await ToApiResult(HttpStatusCode.InternalServerError, $"电梯{devName}内托盘{dis.carry_code}当前准备放置的货位已有货!"); } - innerpos = wmsElevatorH.innerpos + "," + wmsElevatorcacheArea.name; - - canEnter = true; } @@ -452,8 +448,7 @@ namespace Tnb.WarehouseMgr await _db.Updateable().SetColumns(r => new WmsElevatorH { is_use = (int)EnumElevatorUseStatus.占用, - use_tasks = $"','{r.use_tasks}".Trim(','), - innerpos = innerpos.Trim(',') + use_tasks = $"','{r.use_tasks}".Trim(',') }).Where(r => r.elevator_id == elevator.device_id).ExecuteCommandAsync(); s_eleUseStatusDic[elevator.device_id] = (int)EnumElevatorUseStatus.占用; Logger.Information($"【UnloadConfirm】 {devName}放货成功 状态变更为占用 {s_eleUseStatusDic.GetHashCode()} {s_eleUseStatusDic[elevator.device_id]}"); @@ -953,6 +948,24 @@ namespace Tnb.WarehouseMgr await _wareHouseService.AgvelevatorTimerTaskExceptionHandle(); } } + else if(disTask.area_code == "FC") + { + WmsElevatorcacheArea wmsElevatorcacheArea = await _db.Queryable().Where(r => r.location_id == disTask.startlocation_id).FirstAsync(); + + ElevagorInfoQuery q = new() { taskCode = input.taskCode, sourceName = input.sourceName }; + WmsElevatorH elevator = await FindElevatorFromPars(q); + if (elevator.IsNull()) + { + Logger.Error($"【UnloadConfirm】 根据参数,sourceName:{input.sourceName},taskCode:{input.taskCode},未找到匹配的电梯任务"); + } + string innerpos = elevator.innerpos + "," + wmsElevatorcacheArea.name; + await _db.Updateable().SetColumns(r => new WmsElevatorH + { + is_use = (int)EnumElevatorUseStatus.占用, + use_tasks = $"','{r.use_tasks}".Trim(','), + innerpos = innerpos.Trim(',') + }).Where(r => r.elevator_id == elevator.device_id).ExecuteCommandAsync(); + } Logger.Information($"【TaskCallback】 Agv放货完成,任务编号:{string.Join(",", disTasks.Select(x => x.bill_code))}"); } @@ -960,8 +973,8 @@ namespace Tnb.WarehouseMgr } catch (Exception ex) { - Logger.Error("【TaskCallback】 任务状态上报出现错误", ex.Message); - Logger.Error("【TaskCallback】 任务状态上报错误堆栈信息", ex.StackTrace); + Logger.Error($"【TaskCallback】 任务状态上报出现错误{ex.Message}"); + Logger.Error($"【TaskCallback】 任务状态上报错误堆栈信息{ex.Message}"); return await ToApiResult(HttpStatusCode.InternalServerError, "请重试!" + ex.Message); throw; } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index d332fbfa..571e48dd 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -303,13 +303,6 @@ namespace Tnb.WarehouseMgr .Select((a, b) => b.passage).ToListAsync(); - string sss = db.Queryable() - .InnerJoin((a, b) => - (a.status != WmsWareHouseConst.PRETASK_BILL_STATUS_COMPLE_ID && a.status != WmsWareHouseConst.PRETASK_BILL_STATUS_CANCEL_ID) - && (b.id == a.startlocation_id || b.id == a.endlocation_id)) - .Where((a, b) => b.wh_id == input.warehouse_id) - .Where((a, b) => b.is_type == ((int)EnumLocationType.存储库位).ToString()) - .WhereIF(!string.IsNullOrEmpty(input.Region_id), (a, b) => b.region_id == input.Region_id).ToSqlString(); } Expression> whereExp = Expressionable.Create() @@ -1085,14 +1078,14 @@ namespace Tnb.WarehouseMgr getdic.Add("ZS-C13-2", new string[] { "hxjC", "A14AGV允许入满箱", "true" }); getdic.Add("ZS-C14-2", new string[] { "hxjC", "A1AGV允许入满箱", "true" }); - getdic.Add("ZS-A01-2", new string[] { "hxjA", "A3AGV允许入满箱", "true" }); - getdic.Add("ZS-A02-2", new string[] { "hxjA", "A4AGV允许入满箱", "true" }); - getdic.Add("ZS-A03-2", new string[] { "hxjA", "A5AGV允许入满箱", "true" }); - getdic.Add("ZS-D06-2", new string[] { "hxjA", "A6AGV允许入满箱", "true" }); - getdic.Add("ZS-A05-2", new string[] { "hxjA", "A7AGV允许入满箱", "true" }); - getdic.Add("ZS-A06-2", new string[] { "hxjA", "A8AGV允许入满箱", "true" }); - getdic.Add("ZS-A07-2", new string[] { "hxjA", "A9AGV允许入满箱", "true" }); - getdic.Add("ZS-A08-2", new string[] { "hxjA", "A10AGV允许入满箱", "true" }); + //getdic.Add("ZS-A01-2", new string[] { "hxjA", "A3AGV允许入满箱", "true" }); + //getdic.Add("ZS-A02-2", new string[] { "hxjA", "A4AGV允许入满箱", "true" }); + //getdic.Add("ZS-A03-2", new string[] { "hxjA", "A5AGV允许入满箱", "true" }); + //getdic.Add("ZS-D06-2", new string[] { "hxjA", "A6AGV允许入满箱", "true" }); + //getdic.Add("ZS-A05-2", new string[] { "hxjA", "A7AGV允许入满箱", "true" }); + //getdic.Add("ZS-A06-2", new string[] { "hxjA", "A8AGV允许入满箱", "true" }); + //getdic.Add("ZS-A07-2", new string[] { "hxjA", "A9AGV允许入满箱", "true" }); + //getdic.Add("ZS-A08-2", new string[] { "hxjA", "A10AGV允许入满箱", "true" }); getdic.Add("ZS-A09-2", new string[] { "hxjA", "A11AGV允许入满箱", "true" }); getdic.Add("ZS-A10-2", new string[] { "hxjA", "A12AGV允许入满箱", "true" }); getdic.Add("ZS-A11-2", new string[] { "hxjA", "A13AGV允许入满箱", "true" }); @@ -1229,14 +1222,14 @@ namespace Tnb.WarehouseMgr getdic.Add("ZS-C13-2", new string[] { "hxjC", "A14AGV允许入满箱", "true" }); getdic.Add("ZS-C14-2", new string[] { "hxjC", "A1AGV允许入满箱", "true" }); - getdic.Add("ZS-A01-2", new string[] { "hxjA", "A3AGV允许入满箱", "true" }); - getdic.Add("ZS-A02-2", new string[] { "hxjA", "A4AGV允许入满箱", "true" }); - getdic.Add("ZS-A03-2", new string[] { "hxjA", "A5AGV允许入满箱", "true" }); - getdic.Add("ZS-D06-2", new string[] { "hxjA", "A6AGV允许入满箱", "true" }); - getdic.Add("ZS-A05-2", new string[] { "hxjA", "A7AGV允许入满箱", "true" }); - getdic.Add("ZS-A06-2", new string[] { "hxjA", "A8AGV允许入满箱", "true" }); - getdic.Add("ZS-A07-2", new string[] { "hxjA", "A9AGV允许入满箱", "true" }); - getdic.Add("ZS-A08-2", new string[] { "hxjA", "A10AGV允许入满箱", "true" }); + //getdic.Add("ZS-A01-2", new string[] { "hxjA", "A3AGV允许入满箱", "true" }); + //getdic.Add("ZS-A02-2", new string[] { "hxjA", "A4AGV允许入满箱", "true" }); + //getdic.Add("ZS-A03-2", new string[] { "hxjA", "A5AGV允许入满箱", "true" }); + //getdic.Add("ZS-D06-2", new string[] { "hxjA", "A6AGV允许入满箱", "true" }); + //getdic.Add("ZS-A05-2", new string[] { "hxjA", "A7AGV允许入满箱", "true" }); + //getdic.Add("ZS-A06-2", new string[] { "hxjA", "A8AGV允许入满箱", "true" }); + //getdic.Add("ZS-A07-2", new string[] { "hxjA", "A9AGV允许入满箱", "true" }); + //getdic.Add("ZS-A08-2", new string[] { "hxjA", "A10AGV允许入满箱", "true" }); getdic.Add("ZS-A09-2", new string[] { "hxjA", "A11AGV允许入满箱", "true" }); getdic.Add("ZS-A10-2", new string[] { "hxjA", "A12AGV允许入满箱", "true" }); getdic.Add("ZS-A11-2", new string[] { "hxjA", "A13AGV允许入满箱", "true" }); @@ -2746,8 +2739,8 @@ namespace Tnb.WarehouseMgr } catch (Exception ex) { - Logger.LogWarning("执行到目标楼层电梯任务失败", ex.Message); - Logger.LogWarning("执行到目标楼层电梯任务失败", ex.StackTrace); + Logger.LogWarning($"执行到目标楼层电梯任务失败{ex.Message}"); + Logger.LogWarning($"执行到目标楼层电梯任务失败{ex.StackTrace}"); throw; } } @@ -3165,13 +3158,13 @@ namespace Tnb.WarehouseMgr work_station = "" }).Where(r => r.id == dt.carry_id).ExecuteCommandAsync(); - await QTRK2BIP(dt, db); + //await QTRK2BIP(dt, db); // require_code是任务单 //string mo_task_code = dt.require_code; } else if (dt.biz_type == "erp_qtrk") { - await QTRK2BIP(dt, db); + //await QTRK2BIP(dt, db); } #endregion @@ -4756,11 +4749,12 @@ namespace Tnb.WarehouseMgr else { // 仅切换电梯后 如果一托任务在等第二托时要做特殊处理 - if (wmsElevatorH.task_nums == 1) - { - await ChangeSelectedElevator(db_agvElevatorTaskExceptionHandles); - } - else + //if (wmsElevatorH.task_nums == 1) + //{ + // await ChangeSelectedElevator(db_agvElevatorTaskExceptionHandles); + // elevatorSno = elevatorSno == "3" ? "4" : "3"; + //} + //else { // 剩余可放托数 await db_agvElevatorTaskExceptionHandles.Updateable().SetColumns(r => r.value == floor3FirstSelectElevatorTasknums.value) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsInStockService.cs index 67c179aa..beba37b0 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsInStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsInStockService.cs @@ -28,6 +28,7 @@ using Tnb.WarehouseMgr.Interfaces; using Tnb.ProductionMgr.Entities.Entity; using Tnb.BasicData; using Tnb.WarehouseMgr.Entities.Entity; +using Microsoft.Extensions.Logging; namespace Tnb.WarehouseMgr { @@ -297,6 +298,14 @@ namespace Tnb.WarehouseMgr // 采购入库 if (instock.bill_type == WmsWareHouseConst.BILLTYPE_MATERIALINSTOCK_ID) { + WmsPurchaseD wmsPurchaseD = await _db.Queryable().SingleAsync(x => x.id == input.wmsDistaskH.source_id); + + await _db.Updateable().SetColumns(r => new WmsCarryCode + { + auxprop_gys = wmsPurchaseD.auxprop_gys, + auxprop_xph = wmsPurchaseD.auxprop_xph + }).Where(r => r.carry_id == input.wmsDistaskH.carry_id).ExecuteCommandAsync(); + if (instock.sync_status != WmsWareHouseConst.SYNC_STATUS_NONEEDSYNC) { //如果是自动单据,需要回更上层系统 @@ -443,11 +452,18 @@ namespace Tnb.WarehouseMgr // 委外入库 else if (instock.bill_type == WmsWareHouseConst.BILLTYPE_OUTSOURCEINSTOCK_ID) { - + } // 调拨入库 else if (instock.bill_type == WmsWareHouseConst.BILLTYPE_RAWMATTRANSFERINSTOCK_ID) { + WmsRawmatTransferinstockD wmsRawmatTransferinstockD = await _db.Queryable().SingleAsync(x => x.id == input.wmsDistaskH.source_id); + + await _db.Updateable().SetColumns(r => new WmsCarryCode + { + auxprop_gys = wmsRawmatTransferinstockD.auxprop_gys, + auxprop_xph = wmsRawmatTransferinstockD.auxprop_xph + }).Where(r => r.carry_id == input.wmsDistaskH.carry_id).ExecuteCommandAsync(); // List allInstockDetails = await _db.Queryable().Where(it => it.bill_id == input.requireId).ToListAsync(); // // WmsTempCode wmsTempCode = await _db.Queryable() @@ -563,8 +579,10 @@ namespace Tnb.WarehouseMgr await _db.Ado.CommitTranAsync(); } - catch (Exception) + catch (Exception ex) { + Logger.LogWarning($"【WmsInStockService Modify】 {ex.Message}"); + Logger.LogWarning($"【MaterialSign Modify】 {ex.StackTrace}"); await _db.Ado.RollbackTranAsync(); throw; }