diff --git a/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs b/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs index 24956a87..56950a38 100644 --- a/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs +++ b/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs @@ -1184,6 +1184,13 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA continue; } + WmsPretaskH wmsPretaskH = db_Floor2timer送空托到上升降区.Queryable().Where(r => r.endlocation_code == wmsMechanicalArmH.location_code + && r.status != WmsWareHouseConst.PRETASK_BILL_STATUS_COMPLE_ID && r.status != WmsWareHouseConst.PRETASK_BILL_STATUS_CANCEL_ID).First(); + if (wmsPretaskH != null) + { + LoggerFloor2RackDelivery.LogWarning($"【送空托到上升降区】料架区{wmsMechanicalArmH.location_code}存在未完成的预任务{wmsPretaskH.bill_code}!"); + continue; + } // 空料架 WmsCarryH targetCarry = wmsCarryHs[0]; @@ -1274,7 +1281,7 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA // 找到没有绑定料架的且库位未锁定的料架区 ISugarQueryable WmsMechanicalArmHsuagar = db_Floor2timer送满托到下升降区.Queryable() .InnerJoin((a, b) => a.location_id == b.id) - .Where((a, b) => string.IsNullOrEmpty(a.rackcode) && b.is_lock == 0 && configs_upMachine.Contains(a.name)); + .Where((a, b) => string.IsNullOrEmpty(a.rackcode) && b.is_lock == 0 && b.is_use == "0" && configs_upMachine.Contains(a.name)); List WmsMechanicalArmHs = WmsMechanicalArmHsuagar.ToList(); @@ -1284,7 +1291,7 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA return; } - + await db_Floor2timer送满托到下升降区.Ado.BeginTranAsync(); // 料架区 foreach (WmsMechanicalArmH wmsMechanicalArmH in WmsMechanicalArmHs) @@ -1352,6 +1359,14 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA continue; } + WmsPretaskH wmsPretaskH = db_Floor2timer送满托到下升降区.Queryable().Where(r => r.endlocation_code == wmsMechanicalArmH.location_code + && r.status != WmsWareHouseConst.PRETASK_BILL_STATUS_COMPLE_ID && r.status != WmsWareHouseConst.PRETASK_BILL_STATUS_CANCEL_ID).First(); + if (wmsPretaskH != null) + { + LoggerFloor2RackDelivery.LogWarning($"【送满托到下升降区】料架区{wmsMechanicalArmH.location_code}存在未完成的预任务{wmsPretaskH.bill_code}!"); + continue; + } + // 满料架 WmsCarryH targetCarry = wmsCarryHs[0]; diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs index fd4e5509..2bdbc601 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs @@ -42,7 +42,10 @@ /// 组装线边库 /// public const string WAREHOUSE_ZZXBK_ID = "26257716248101"; - + /// + /// 一楼包材缓存库 + /// + public const string WAREHOUSE_F1BCK_ID = "35418033338389"; /// /// 四楼包材库 /// diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsEmptycarryInstockLogService.cs b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsEmptycarryInstockLogService.cs index 55ff806c..d2bbb5e0 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsEmptycarryInstockLogService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsEmptycarryInstockLogService.cs @@ -10,6 +10,6 @@ namespace Tnb.WarehouseMgr.Interfaces public interface IWmsEmptycarryInstockLogService { - Task Instock(WmsEmptycarryInstockServiceInstockInput input); + Task Instock(WmsEmptycarryInstockServiceInstockInput input); } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index 5e0b394a..76f2a8df 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -963,7 +963,7 @@ namespace Tnb.WarehouseMgr if (disTask.area_code == "E" && basLocations.Count() == 0) { await _db.Ado.BeginTranAsync(); - Logger.Information($"【二楼机械臂Floor2MechanicalComplete】收到到货完成信号 传入参数: {disTask.bill_code} {action}"); + Logger.Information($"【二楼机械臂Floor2MechanicalComplete】收到到货确认信号 传入参数: {disTask.bill_code} {action}"); if (action == "UNLOAD") { @@ -2668,9 +2668,93 @@ namespace Tnb.WarehouseMgr - List roads = await _db.Queryable().Where(it => it.status == 1).ToListAsync(); + List wmsPointHs = await _db.Queryable().Where(it => it.status == 1).ToListAsync(); + + List points = new List(); + + // 待验证 算法太慢 电梯不跑算法 电梯起终点仓库对应表 + BasLocation startlocation = await _db.Queryable().InnerJoin((a, b) => a.id == b.location_id).Where((a, b) => b.id == pStartId).FirstAsync(); + BasLocation endlocation = await _db.Queryable().InnerJoin((a, b) => a.id == b.location_id).Where((a, b) => b.id == pEndId).FirstAsync(); + + // 后续可整理成配置表 + // 3-1 + if (startlocation.wh_id == WmsWareHouseConst.WAREHOUSE_CP_ID && endlocation.wh_id == WmsWareHouseConst.WAREHOUSE_CPCRK_ID) + { + WmsElevatorH wmsElevatorH = await _db.Queryable().Where(it => it.elevator_group == "2" && it.enabled == 1).OrderBy(r => r.task_nums).FirstAsync(); + string elevatorSno = wmsElevatorH.elevator_code.Replace("Elevator", ""); + + points.Add(wmsPointHs.Where(r => r.id == pStartId).First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-C-03-0{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-3-{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-1-{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-R-01-0{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.id == pEndId).First()); + } + //1-3 + else if (startlocation.wh_id == WmsWareHouseConst.WAREHOUSE_CPCRK_ID && endlocation.wh_id == WmsWareHouseConst.WAREHOUSE_CP_ID) + { + WmsElevatorH wmsElevatorH = await _db.Queryable().Where(it => it.elevator_group == "2" && it.enabled == 1).OrderBy(r => r.task_nums).FirstAsync(); + string elevatorSno = wmsElevatorH.elevator_code.Replace("Elevator", ""); + + points.Add(wmsPointHs.Where(r => r.id == pStartId).First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-C-01-0{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-1-{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-3-{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-R-03-0{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.id == pEndId).First()); + } + // 2-4 + else if(startlocation.wh_id == WmsWareHouseConst.WAREHOUSE_ZZXBK_ID && endlocation.wh_id == WmsWareHouseConst.WAREHOUSE_DMJC_ID) + { + WmsElevatorH wmsElevatorH = await _db.Queryable().Where(it => it.elevator_group == "1" && it.enabled == 1).OrderBy(r => r.task_nums).FirstAsync(); + string elevatorSno = wmsElevatorH.elevator_code.Replace("Elevator", ""); + + points.Add(wmsPointHs.Where(r => r.id == pStartId).First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-C-02-0{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-2-{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-4-{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-R-04-0{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.id == pEndId).First()); + } + // 1-4 + else if(startlocation.wh_id == WmsWareHouseConst.WAREHOUSE_F1BCK_ID && endlocation.wh_id == WmsWareHouseConst.WAREHOUSE_BCK_ID) + { + WmsElevatorH wmsElevatorH = await _db.Queryable().Where(it => it.elevator_group == "1" && it.enabled == 1).OrderBy(r => r.task_nums).FirstAsync(); + string elevatorSno = wmsElevatorH.elevator_code.Replace("Elevator", ""); + + points.Add(wmsPointHs.Where(r => r.id == pStartId).First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-C-01-0{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-1-{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-4-{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-R-04-0{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.id == pEndId).First()); + } + // 4-2 + else if (startlocation.wh_id == WmsWareHouseConst.WAREHOUSE_BCK_ID && endlocation.wh_id == WmsWareHouseConst.WAREHOUSE_F2BCQ_ID) + { + WmsElevatorH wmsElevatorH = await _db.Queryable().Where(it => it.elevator_group == "1" && it.enabled == 1).OrderBy(r => r.task_nums).FirstAsync(); + string elevatorSno = wmsElevatorH.elevator_code.Replace("Elevator", ""); + + points.Add(wmsPointHs.Where(r => r.id == pStartId).First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-C-04-0{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-4-{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-2-{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.point_code == $"DT-R-02-0{elevatorSno}").First()); + points.Add(wmsPointHs.Where(r => r.id == pEndId).First()); + } + else + { + List roads = await _db.Queryable().Where(it => it.status == 1).ToListAsync(); + points = await LocPathCalcAlgorithms(pStartId, pEndId, roads); + } + + + Logger.Information($"起点{startlocation.location_code} 终点{endlocation.location_code} 获取到路径 {JsonConvert.SerializeObject(points)}"); + if (points.Count < 6) + { + throw new AppFriendlyException($"路径错误,需要检查路径配置{JsonConvert.SerializeObject(points)}", 500); + } - // 待验证 电梯不跑算法 //List wmsRoads = await _db.Queryable().Where(r => r.startpoint_id == pStartId).ToListAsync(); //if (wmsRoads?.FindAll(x => x.endpoint_code != null && x.location_code.Contains("dt", StringComparison.OrdinalIgnoreCase))?.Count > 0) //{ @@ -2681,71 +2765,71 @@ namespace Tnb.WarehouseMgr - List points = await LocPathCalcAlgorithms(pStartId, pEndId, roads); - try - { - if (points?.FindAll(x => x.location_code != null && x.location_code.Contains("dt", StringComparison.OrdinalIgnoreCase))?.Count > 0) - { - //查询当前电梯点 - List curEleDs = await _db.Queryable().InnerJoin((a, b) => a.bill_id == b.id).Where((a, b) => points.Select(x => x.id).Contains(a.point_id)).ToListAsync(); - Logger.Information($"curEleDs==null :{curEleDs == null},curEleDs:{string.Join(",", curEleDs.Select(x => x.bill_id))}"); - //如果有电梯点,则会进行电梯的均匀分配 - if (curEleDs?.Count > 0) - { - //当前电梯 - WmsElevatorH curEle = await _db.Queryable().SingleAsync(it => it.id == curEleDs.First().bill_id); + + //try + //{ + // if (points?.FindAll(x => x.location_code != null && x.location_code.Contains("dt", StringComparison.OrdinalIgnoreCase))?.Count > 0) + // { + // //查询当前电梯点 + // List curEleDs = await _db.Queryable().InnerJoin((a, b) => a.bill_id == b.id).Where((a, b) => points.Select(x => x.id).Contains(a.point_id)).ToListAsync(); + // Logger.Information($"curEleDs==null :{curEleDs == null},curEleDs:{string.Join(",", curEleDs.Select(x => x.bill_id))}"); + // //如果有电梯点,则会进行电梯的均匀分配 + // if (curEleDs?.Count > 0) + // { + // //当前电梯 + // WmsElevatorH curEle = await _db.Queryable().SingleAsync(it => it.id == curEleDs.First().bill_id); - //同电梯组电梯 - List sGpEle = await _db.Queryable().Where(it => it.elevator_group == curEle.elevator_group && it.id != curEle.id && it.enabled == 1).ToListAsync(); - if (curEle.enabled == 0 && (sGpEle == null || sGpEle.Count < 1)) - { - throw new AppFriendlyException("电梯被禁用或未配置", 500); - } - if ((sGpEle == null || sGpEle.Count < 1) && curEle.enabled == 1) - { - return points; - } - if (sGpEle?.Count > 0 && curEle.enabled == 0) - { - return points; - } - //判断电梯组中各电梯任务数 - if (sGpEle.FindAll(x => Math.Abs(x.task_nums - curEle.task_nums) % 2 == 1)?.Count > 0) - { - List sGpDs = await _db.Queryable().Where(it => it.bill_id == sGpEle.First().id).ToListAsync(); - if (sGpDs?.Count > 0) - { - List sGpPoints = await _db.Queryable().Where(it => sGpDs.Select(x => x.point_id).Contains(it.id)).ToListAsync(); - string sFEndId = sGpDs.Single(x => x.floor == curEleDs.First().floor).point_id; - string eFStartId = sGpDs.Single(x => x.floor == curEleDs.Last().floor).point_id; - List sFPoints = await LocPathCalcAlgorithms(pStartId, sFEndId, roads); - List elePoints = new(); - foreach (WmsElevatorD pt in curEleDs) - { - WmsPointH? elePoint = sGpPoints.Find(x => x.floor == pt.floor); - if (elePoint != null) - { - elePoints.Add(elePoint); - } - } - List eFPoints = await LocPathCalcAlgorithms(eFStartId, pEndId, roads); - _ = elePoints.Remove(elePoints.First()); - _ = elePoints.Remove(elePoints.Last()); - points.Clear(); - points.AddRange(sFPoints); - points.AddRange(elePoints); - points.AddRange(eFPoints); - } - } + // //同电梯组电梯 + // List sGpEle = await _db.Queryable().Where(it => it.elevator_group == curEle.elevator_group && it.id != curEle.id && it.enabled == 1).ToListAsync(); + // if (curEle.enabled == 0 && (sGpEle == null || sGpEle.Count < 1)) + // { + // throw new AppFriendlyException("电梯被禁用或未配置", 500); + // } + // if ((sGpEle == null || sGpEle.Count < 1) && curEle.enabled == 1) + // { + // return points; + // } + // if (sGpEle?.Count > 0 && curEle.enabled == 0) + // { + // return points; + // } + // //判断电梯组中各电梯任务数 + // if (sGpEle.FindAll(x => Math.Abs(x.task_nums - curEle.task_nums) % 2 == 1)?.Count > 0) + // { + // List sGpDs = await _db.Queryable().Where(it => it.bill_id == sGpEle.First().id).ToListAsync(); + // if (sGpDs?.Count > 0) + // { + // List sGpPoints = await _db.Queryable().Where(it => sGpDs.Select(x => x.point_id).Contains(it.id)).ToListAsync(); + // string sFEndId = sGpDs.Single(x => x.floor == curEleDs.First().floor).point_id; + // string eFStartId = sGpDs.Single(x => x.floor == curEleDs.Last().floor).point_id; + // List sFPoints = await LocPathCalcAlgorithms(pStartId, sFEndId, roads); + // List elePoints = new(); + // foreach (WmsElevatorD pt in curEleDs) + // { + // WmsPointH? elePoint = sGpPoints.Find(x => x.floor == pt.floor); + // if (elePoint != null) + // { + // elePoints.Add(elePoint); + // } + // } + // List eFPoints = await LocPathCalcAlgorithms(eFStartId, pEndId, roads); + // _ = elePoints.Remove(elePoints.First()); + // _ = elePoints.Remove(elePoints.Last()); + // points.Clear(); + // points.AddRange(sFPoints); + // points.AddRange(elePoints); + // points.AddRange(eFPoints); + // } + // } - } - } - } - catch (Exception ex) - { - Logger.Error("路径算法异常", ex); - throw; - } + // } + // } + //} + //catch (Exception ex) + //{ + // Logger.Error("路径算法异常", ex); + // throw; + //} return points; } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptycarryInstockLogService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptycarryInstockLogService.cs index 3cc46700..1937184d 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptycarryInstockLogService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptycarryInstockLogService.cs @@ -48,7 +48,7 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost] - public async Task Instock(WmsEmptycarryInstockServiceInstockInput input) + public async Task Instock(WmsEmptycarryInstockServiceInstockInput input) { try { @@ -108,14 +108,14 @@ namespace Tnb.WarehouseMgr await _db.Ado.CommitTranAsync(); - return await Task.FromResult(true); + return await ToApiResult(HttpStatusCode.OK, "成功"); } catch (Exception ex) { Logger.LogInformation("【WmsEmptycarryInstockService-Instock】" + ex.Message); Logger.LogInformation("【WmsEmptycarryInstockService-Instock】" + ex.StackTrace); await _db.Ado.RollbackTranAsync(); - throw Oops.Bah(ex.Message); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); } } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs index 7b5e656d..7c4db2d7 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs @@ -298,7 +298,7 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost, NonUnify, AllowAnonymous] - public async Task Distribute(MaterialTransferDistributeInput input) + public async Task Distribute(MaterialTransferDistributeInput input) { try { @@ -421,7 +421,7 @@ namespace Tnb.WarehouseMgr await _db.Ado.RollbackTranAsync(); Logger.LogError("【Distribute】" + ex.Message); Logger.LogError("【Distribute】" + ex.StackTrace); - throw Oops.Bah(ex.Message); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); } finally { @@ -429,7 +429,7 @@ namespace Tnb.WarehouseMgr InvokeGenPretaskExcute(); } - return await Task.FromResult(true); + return await ToApiResult(HttpStatusCode.OK, "成功"); } /// @@ -439,7 +439,7 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost, NonUnify, AllowAnonymous] - public async Task DistributeHCC(MaterialTransferDistributeInput input) + public async Task DistributeHCC(MaterialTransferDistributeInput input) { try { @@ -571,7 +571,7 @@ namespace Tnb.WarehouseMgr await _db.Ado.RollbackTranAsync(); Logger.LogError("【Distribute】" + ex.Message); Logger.LogError("【Distribute】" + ex.StackTrace); - throw Oops.Bah(ex.Message); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); } finally { @@ -579,7 +579,7 @@ namespace Tnb.WarehouseMgr InvokeGenPretaskExcute(); } - return await Task.FromResult(true); + return await ToApiResult(HttpStatusCode.OK, "成功"); } /// @@ -645,7 +645,7 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost, NonUnify, AllowAnonymous] - public async Task DistributeBCK(MaterialTransferDistributeInput input) + public async Task DistributeBCK(MaterialTransferDistributeInput input) { try { @@ -759,7 +759,7 @@ namespace Tnb.WarehouseMgr await _db.Ado.RollbackTranAsync(); Logger.LogError("【Distribute】" + ex.Message); Logger.LogError("【Distribute】" + ex.StackTrace); - throw Oops.Bah(ex.Message); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); } finally { @@ -767,7 +767,7 @@ namespace Tnb.WarehouseMgr InvokeGenPretaskExcute(); } - return await Task.FromResult(true); + return await ToApiResult(HttpStatusCode.OK, "成功"); } @@ -910,7 +910,7 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost, NonUnify, AllowAnonymous] - public async Task DistributeToZCC(MaterialTransferDistributeToZCCInput input) + public async Task DistributeToZCC(MaterialTransferDistributeToZCCInput input) { s_taskDistributeToZCC.Wait(); @@ -1036,14 +1036,14 @@ namespace Tnb.WarehouseMgr await _db.Ado.RollbackTranAsync(); Logger.LogError("【DistributeToZCC】" + ex.Message); Logger.LogError("【DistributeToZCC】" + ex.StackTrace); - throw Oops.Bah(ex.Message); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); } finally { s_taskDistributeToZCC.Release(); InvokeGenPretaskExcute(); } - return await Task.FromResult(true); + return await ToApiResult(HttpStatusCode.OK, "成功"); } /// @@ -1053,7 +1053,7 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost, NonUnify, AllowAnonymous] - public async Task CallRackToProductionLine(MaterialTransferCallRackToProductionLineInput input) + public async Task CallRackToProductionLine(MaterialTransferCallRackToProductionLineInput input) { try { @@ -1155,10 +1155,10 @@ namespace Tnb.WarehouseMgr { Logger.LogError("【CallRackToProductionLine】" + ex.Message); Logger.LogError("【CallRackToProductionLine】" + ex.StackTrace); - throw Oops.Bah(ex.Message); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); } - return await Task.FromResult(true); + return await ToApiResult(HttpStatusCode.OK, "成功"); } /// @@ -1168,7 +1168,7 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost, NonUnify, AllowAnonymous] - public async Task RackAndMatByWorkstation(MaterialTransferGetRackAndMatByWorkStationInput input) + public async Task RackAndMatByWorkstation(MaterialTransferGetRackAndMatByWorkStationInput input) { try { @@ -1222,13 +1222,13 @@ namespace Tnb.WarehouseMgr pairs["details"] = JArray.Parse(JsonConvert.SerializeObject(matCodes)); jArray.Add(pairs); } - return Task.FromResult(true); + return await ToApiResult(HttpStatusCode.OK, jArray); } catch (Exception ex) { Logger.LogError("【RackAndMatByWorkstation】" + ex.Message); Logger.LogError("【RackAndMatByWorkstation】" + ex.StackTrace); - return Oops.Bah(ex.Message); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); } } @@ -1238,7 +1238,7 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost, NonUnify, AllowAnonymous] - public async Task RackInstock(MaterialTransferRackInstockInput input) + public async Task RackInstock(MaterialTransferRackInstockInput input) { WmsCarryH wmsCarryH = await _db.Queryable().Where(r => r.carry_code == input.carry_code).FirstAsync(); @@ -1255,11 +1255,11 @@ namespace Tnb.WarehouseMgr else { Logger.LogError($"【RackInstock】当前载具的规格id是{wmsCarryH.carrystd_id} 无法处理此类型的载具!"); - return Oops.Bah($"【RackInstock】当前载具的规格id是{wmsCarryH.carrystd_id} 无法处理此类型的载具!"); + return await ToApiResult(HttpStatusCode.InternalServerError, $"【RackInstock】当前载具的规格id是{wmsCarryH.carrystd_id} 无法处理此类型的载具!"); } } - async Task RackInstock_到暂存仓(MaterialTransferRackInstockInput input, WmsCarryH wmsCarryH) + async Task RackInstock_到暂存仓(MaterialTransferRackInstockInput input, WmsCarryH wmsCarryH) { try { @@ -1362,12 +1362,12 @@ namespace Tnb.WarehouseMgr Logger.LogError("【RackInstock】" + ex.Message); Logger.LogError("【RackInstock】" + ex.StackTrace); await _db.Ado.RollbackTranAsync(); - throw Oops.Bah(ex.Message); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); } - return await Task.FromResult(true); + return await ToApiResult(HttpStatusCode.OK, "成功"); } - async Task RackInstock_到缓存仓(MaterialTransferRackInstockInput input, WmsCarryH wmsCarryH) + async Task RackInstock_到缓存仓(MaterialTransferRackInstockInput input, WmsCarryH wmsCarryH) { try { @@ -1421,9 +1421,9 @@ namespace Tnb.WarehouseMgr Logger.LogError("【RackInstock】" + ex.Message); Logger.LogError("【RackInstock】" + ex.StackTrace); await _db.Ado.RollbackTranAsync(); - throw Oops.Bah(ex.Message); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); } - return await Task.FromResult(true); + return await ToApiResult(HttpStatusCode.OK, "成功"); } /// diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryBindService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryBindService.cs index 084bd538..8d57848e 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryBindService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryBindService.cs @@ -40,7 +40,7 @@ namespace Tnb.WarehouseMgr private readonly IWmsCarryUnbindService _wmsCarryUnbindService; private readonly IWmsCarryService _wmsCarryService; - + public WmsPDACarryBindService( ISqlSugarRepository repository, @@ -163,7 +163,7 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost, NonUnify, AllowAnonymous] - public async Task OutsourcedPartsInstock(OutsourcedPartsInstockInput input) + public async Task OutsourcedPartsInstock(OutsourcedPartsInstockInput input) { try { @@ -204,7 +204,7 @@ namespace Tnb.WarehouseMgr } WmsPointH sPoint = null!; WmsPointH ePoint = null!; - + sPoint = await _db.Queryable().FirstAsync(it => it.location_id == input.startlocation_id); if (endLocations?.Count > 0) { @@ -348,11 +348,11 @@ namespace Tnb.WarehouseMgr } // 入库明细都完成 回写主表完成状态 - List wmsTransferInstockDs =_db.Queryable().InnerJoin((a, b) => a.bill_id == b.bill_id).Where((a, b) => a.id == input.source_id) + List wmsTransferInstockDs = _db.Queryable().InnerJoin((a, b) => a.bill_id == b.bill_id).Where((a, b) => a.id == input.source_id) .Where((a, b) => b.status != WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID).ToList(); if (wmsTransferInstockDs.Count == 0) { - await _db.Updateable().SetColumns(r =>r.status == WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID).Where(r => r.id == wmsTransferInstockD.bill_id).ExecuteCommandAsync(); + await _db.Updateable().SetColumns(r => r.status == WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID).Where(r => r.id == wmsTransferInstockD.bill_id).ExecuteCommandAsync(); } await _db.Ado.CommitTranAsync(); @@ -360,7 +360,7 @@ namespace Tnb.WarehouseMgr catch (Exception ex) { await _db.Ado.RollbackTranAsync(); - throw Oops.Bah(ex.Message); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); } finally { @@ -368,7 +368,7 @@ namespace Tnb.WarehouseMgr await InvokeGenPretaskExcute(); } - return await Task.FromResult(true); + return await ToApiResult(HttpStatusCode.OK, "成功"); } /// @@ -377,7 +377,7 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost, NonUnify, AllowAnonymous] - public async Task FinishproductOutstockSign(FinishproductOutstockSignInput input) + public async Task FinishproductOutstockSign(FinishproductOutstockSignInput input) { Logger.LogInformation($"【FinishproductOutstockSign】载具签收 {input.carry_code}"); if (string.IsNullOrEmpty(input.carry_code)) @@ -414,7 +414,7 @@ namespace Tnb.WarehouseMgr throw new AppFriendlyException($"库位id {wmsCarryH.location_id}没有对应的库位基础资料!", 500); } - WmsDistaskH wmsDistaskH = _db.Queryable().Where(r => r.carry_code == input.carry_code && r.endlocation_id == location.id + WmsDistaskH wmsDistaskH = _db.Queryable().Where(r => r.carry_code == input.carry_code && r.endlocation_id == location.id && r.status != WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID && r.status != WmsWareHouseConst.TASK_BILL_STATUS_CANCEL_ID).First(); if (wmsDistaskH != null) { @@ -458,12 +458,12 @@ namespace Tnb.WarehouseMgr Logger.Error($"【FinishproductOutstockSign】 {ex.Message}"); Logger.Error($"【FinishproductOutstockSign】 {ex.StackTrace}"); await _db.Ado.RollbackTranAsync(); - throw Oops.Bah(ex.Message); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); } - return await Task.FromResult(true); + return await ToApiResult(HttpStatusCode.OK, "成功"); } - + } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPackInstockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPackInstockService.cs index b431e7a3..63f33a0d 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPackInstockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPackInstockService.cs @@ -118,7 +118,7 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost, NonUnify, AllowAnonymous] - public async Task PackInstock(OutsourcedPartsInstockInput input) + public async Task PackInstock(OutsourcedPartsInstockInput input) { try { @@ -180,10 +180,6 @@ namespace Tnb.WarehouseMgr } ePoint = await _db.Queryable().FirstAsync(it => it.location_id == endLocations[0].id); - if (ePoint == null) - { - throw new AppFriendlyException($"{endLocations[0].location_code}终点未配置点位", 500); - } } else { @@ -318,7 +314,7 @@ namespace Tnb.WarehouseMgr Logger.LogError($"【PackInstock】 {ex.Message}"); Logger.LogError($"【PackInstock】 {ex.StackTrace}"); await _db.Ado.RollbackTranAsync(); - throw Oops.Bah(ex.Message); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); } finally { @@ -326,7 +322,7 @@ namespace Tnb.WarehouseMgr await InvokeGenPretaskExcute(); } - return await Task.FromResult(true); + return await ToApiResult(HttpStatusCode.OK, "成功"); } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPrdReturnService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPrdReturnService.cs index 20db9a73..3bd72eb8 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPrdReturnService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPrdReturnService.cs @@ -59,7 +59,7 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost, NonUnify, AllowAnonymous] - public async Task PrdReturn(PrdReturnInput input) + public async Task PrdReturn(PrdReturnInput input) { WmsPrdReturnH wmsPrdReturnH = await _db.Queryable().Where(r => r.id == input.source_id).FirstAsync(); if (wmsPrdReturnH == null) @@ -93,12 +93,12 @@ namespace Tnb.WarehouseMgr else { Logger.LogError($"【PrdReturn】当前载具的规格id是{wmsCarryH.carrystd_id} 无法处理此类型的载具!"); - return Oops.Bah($"【PrdReturn】当前载具的规格id是{wmsCarryH.carrystd_id} 无法处理此类型的载具!"); + return await ToApiResult(HttpStatusCode.InternalServerError, $"【PrdReturn】当前载具的规格id是{wmsCarryH.carrystd_id} 无法处理此类型的载具!"); } } - async Task Return_到暂存仓(PrdReturnInput input, WmsCarryH wmsCarryH, WmsPrdReturnH wmsPrdReturnH) + async Task Return_到暂存仓(PrdReturnInput input, WmsCarryH wmsCarryH, WmsPrdReturnH wmsPrdReturnH) { try { @@ -134,15 +134,15 @@ namespace Tnb.WarehouseMgr BasLocation endlocation = rackEndLocations.First(); - var memberCarryCodes = _db.Queryable() - .InnerJoin((a, b) => a.id == b.carry_id) - .Where((a, b) => input.details.Select(r => r.carry_code).Contains(a.carry_code)).Select((a, b) => new - { - carry_code = a.carry_code, - barcode = b.barcode, - material_id = b.material_id, - material_code = b.material_code, - }).ToList(); + var memberCarryCodes = _db.Queryable() + .InnerJoin((a, b) => a.id == b.carry_id) + .Where((a, b) => input.details.Select(r => r.carry_code).Contains(a.carry_code)).Select((a, b) => new + { + carry_code = a.carry_code, + barcode = b.barcode, + material_id = b.material_id, + material_code = b.material_code, + }).ToList(); List matIds = memberCarryCodes.Select(r => r.material_id).Distinct().ToList(); @@ -177,7 +177,7 @@ namespace Tnb.WarehouseMgr await _db.Ado.BeginTranAsync(); // 标记为退料 - int row2= await _db.Updateable().SetColumns(r => r.carry_status == ((int)(EnumCarryStatus.退料)).ToString()).Where(r => r.carry_code == wmsCarryH.carry_code).ExecuteCommandAsync(); + int row2 = await _db.Updateable().SetColumns(r => r.carry_status == ((int)(EnumCarryStatus.退料)).ToString()).Where(r => r.carry_code == wmsCarryH.carry_code).ExecuteCommandAsync(); if (row2 == 0) { throw new AppFriendlyException($"【PrdReturn】 料架 {wmsCarryH.carry_code} 退料状态回写失败", 500); @@ -228,12 +228,12 @@ namespace Tnb.WarehouseMgr Logger.LogError("【PrdReturn】" + ex.Message); Logger.LogError("【PrdReturn】" + ex.StackTrace); await _db.Ado.RollbackTranAsync(); - throw Oops.Bah(ex.Message); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); } - return await Task.FromResult(true); + return await ToApiResult(HttpStatusCode.OK, "成功"); } - async Task Return_到缓存仓(PrdReturnInput input, WmsCarryH wmsCarryH, WmsPrdReturnH wmsPrdReturnH) + async Task Return_到缓存仓(PrdReturnInput input, WmsCarryH wmsCarryH, WmsPrdReturnH wmsPrdReturnH) { try { @@ -304,7 +304,7 @@ namespace Tnb.WarehouseMgr await _db.Ado.BeginTranAsync(); // 标记为退料 - int row2 =await _db.Updateable().SetColumns(r => r.carry_status == ((int)(EnumCarryStatus.退料)).ToString()).Where(r => r.id == wmsCarryH.id).ExecuteCommandAsync(); + int row2 = await _db.Updateable().SetColumns(r => r.carry_status == ((int)(EnumCarryStatus.退料)).ToString()).Where(r => r.id == wmsCarryH.id).ExecuteCommandAsync(); if (row2 == 0) { throw new AppFriendlyException($"【PrdReturn】 料架 {wmsCarryH.carry_code} 退料状态回写失败", 500); @@ -335,9 +335,9 @@ namespace Tnb.WarehouseMgr Logger.LogError("【PrdReturn】" + ex.Message); Logger.LogError("【PrdReturn】" + ex.StackTrace); await _db.Ado.RollbackTranAsync(); - throw Oops.Bah(ex.Message); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); } - return await Task.FromResult(true); + return await ToApiResult(HttpStatusCode.OK, "成功"); } public override async Task ModifyAsync(WareHouseUpInput input) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsSaleReleaseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsSaleReleaseService.cs index 7da3b8ee..4196f0d6 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsSaleReleaseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsSaleReleaseService.cs @@ -145,7 +145,7 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost, NonUnify, AllowAnonymous] - public async Task Distribute(SaleReleaseDistributeInput input) + public async Task Distribute(SaleReleaseDistributeInput input) { Logger.LogInformation($"【Distribute】 销售出库下发"); try @@ -163,7 +163,7 @@ namespace Tnb.WarehouseMgr await s_taskExecuteSemaphore.WaitAsync(); await _db.Ado.BeginTranAsync(); //入库取终点 //出库起点 - OutStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, material_id = wmsOutstockD.material_id, qty = input.qty, code_batch = wmsOutstockD.code_batch }; + OutStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, material_id = wmsOutstockD.material_id, qty = input.qty, code_batch = wmsOutstockD.code_batch }; List> items = await _wareHouseService.OutStockStrategy_saleRelease(inStockStrategyInput); decimal canOutstockQty = items.Sum(r => r.Item3.codeqty).ParseToDecimal(); @@ -359,7 +359,7 @@ namespace Tnb.WarehouseMgr await _db.Ado.RollbackTranAsync(); Logger.LogError($"【Distribute】 销售出库 {ex.Message}"); Logger.LogError($"【Distribute】 销售出库 {ex.StackTrace}"); - throw Oops.Bah(ex.Message); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); } finally { @@ -367,7 +367,7 @@ namespace Tnb.WarehouseMgr await InvokeGenPretaskExcute(); } - return await Task.FromResult(true); + return await ToApiResult(HttpStatusCode.OK, "成功"); } /// @@ -376,7 +376,7 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost, NonUnify, AllowAnonymous] - public async Task Sort(FinishproductOutstockSortInput input) + public async Task Sort(FinishproductOutstockSortInput input) { if (string.IsNullOrEmpty(input.source_id)) { @@ -413,10 +413,14 @@ namespace Tnb.WarehouseMgr catch (Exception ex) { await _db.Ado.RollbackTranAsync(); - throw Oops.Bah(ex.Message); + return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message); } - return await Task.FromResult(true); + return await ToApiResult(HttpStatusCode.OK, "成功"); } + + + + } }