Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
2024-09-19 15:28:20 +08:00
6 changed files with 72 additions and 48 deletions

View File

@@ -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<BasLocation> endLocations = await _wareHouseService.InStockStrategy(inStockStrategyInput);
if (endLocations.Count() == 0)
{
LoggerYCLInternalTransfer.LogWarning($"【YCLInternalTransfer】 当前巷道没有空库位可以入库或者有任务正在执行");
continue;

View File

@@ -5,7 +5,7 @@ using SqlSugar;
namespace Tnb.WarehouseMgr.Entities.Entity;
/// <summary>
/// 委外订单表子表
/// 委外收货表子表
/// </summary>
[SugarTable("wms_outsource_d")]
public partial class WmsOutsourceD : BaseEntity<string>

View File

@@ -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

View File

@@ -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<WmsElevatorH>().Where(r => r.elevator_id == elevator.device_id).FirstAsync();
WmsElevatorcacheArea wmsElevatorcacheArea = await _db.Queryable<WmsElevatorcacheArea>().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<WmsElevatorH>().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<WmsElevatorcacheArea>().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<WmsElevatorH>().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;
}

View File

@@ -303,13 +303,6 @@ namespace Tnb.WarehouseMgr
.Select((a, b) => b.passage).ToListAsync();
string sss = db.Queryable<WmsPretaskH>()
.InnerJoin<BasLocation>((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<Func<BasLocation, bool>> whereExp = Expressionable.Create<BasLocation>()
@@ -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<BasFactoryConfig>().SetColumns(r => r.value == floor3FirstSelectElevatorTasknums.value)

View File

@@ -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<WmsPurchaseD>().SingleAsync(x => x.id == input.wmsDistaskH.source_id);
await _db.Updateable<WmsCarryCode>().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<WmsRawmatTransferinstockD>().SingleAsync(x => x.id == input.wmsDistaskH.source_id);
await _db.Updateable<WmsCarryCode>().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<WmsInstockD> allInstockDetails = await _db.Queryable<WmsInstockD>().Where(it => it.bill_id == input.requireId).ToListAsync();
//
// WmsTempCode wmsTempCode = await _db.Queryable<WmsCarryCode>()
@@ -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;
}