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

This commit is contained in:
2023-11-09 14:39:08 +08:00
5 changed files with 44 additions and 15 deletions

View File

@@ -73,5 +73,9 @@ public partial class WmsAreaH : BaseEntity<string>
/// 时间戳(用于并发控制) /// 时间戳(用于并发控制)
/// </summary> /// </summary>
public DateTime? timestamp { get; set; } public DateTime? timestamp { get; set; }
/// <summary>
/// 第三方设备类型
/// </summary>
public string third_eqp_type { get; set; }
} }

View File

@@ -13,4 +13,9 @@ public partial class WmsPretaskH : ITaskManagerDel
/// </summary> /// </summary>
[SugarColumn(IsIgnore = true)] [SugarColumn(IsIgnore = true)]
public int move_num { get; set; } public int move_num { get; set; }
/// <summary>
/// 第三方设备类型
/// </summary>
[SugarColumn(IsIgnore = true)]
public string third_eqp_type { get; set; }
} }

View File

@@ -8,5 +8,7 @@
CTU = 1, CTU = 1,
KIVA = 2, KIVA = 2,
AGV = 3, AGV = 3,
= 4,
线 = 5,
} }
} }

View File

@@ -218,7 +218,7 @@ namespace Tnb.WarehouseMgr
try try
{ {
Logger.Information($"任务链编号:{input.taskChainCode},状态:{input.status},设备ID{input.deviceID}"); Logger.Information($"任务链编号:{input.taskChainCode},状态:{input.status},设备ID{input.deviceID}");
switch (input.status) /*switch (input.status)
{ {
case "CREATED": break; case "CREATED": break;
case "ALLOCATED": break; case "ALLOCATED": break;
@@ -242,9 +242,23 @@ namespace Tnb.WarehouseMgr
case "FAILURE": break; case "FAILURE": break;
case "FINISHED": break; case "FINISHED": break;
default: break; default: break;
}*/
if (input.taskChainCode.Trim().IsNullOrEmpty())
{
return await ToApiResult(HttpStatusCode.InternalServerError, "请重试!");
} }
//写入redis
//await _cacheManager.SetAsync($"{input.taskChainCode}", $"任务链状态上报,上报状态{input.status}"); List<WmsDistaskH> disTasks = await _db.Queryable<WmsDistaskH>().Where(it => it.bill_code.Contains(input.taskChainCode)).ToListAsync();
List<EqpEquipment> eps = await _db.Queryable<EqpEquipment>().Where(it => it.code.Contains(input.deviceID)).ToListAsync();
TaskExecuteUpInput taskExecuteUpInput = new()
{
disTaskIds = disTasks.Select(x => x.id).ToList(),
EqpIds = eps.Select(x => x.id).ToList(),
};
await _wareHouseService.TaskExecute(taskExecuteUpInput);
ConnectionConfigOptions opts = App.GetOptions<ConnectionConfigOptions>(); ConnectionConfigOptions opts = App.GetOptions<ConnectionConfigOptions>();
UserAgent userAgent = new(App.HttpContext); UserAgent userAgent = new(App.HttpContext);
//写系统日志 //写系统日志
@@ -321,6 +335,10 @@ namespace Tnb.WarehouseMgr
return await ToApiResult(HttpStatusCode.InternalServerError, "请重试!"); return await ToApiResult(HttpStatusCode.InternalServerError, "请重试!");
throw; throw;
} }
finally
{
_ = InvokeGenPretaskExcute();
}
return await ToApiResult(HttpStatusCode.OK, "成功"); return await ToApiResult(HttpStatusCode.OK, "成功");
} }

View File

@@ -256,14 +256,15 @@ namespace Tnb.WarehouseMgr
.OrderBy(a => new { priority = SqlFunc.Desc(a.priority), a.bill_code }) .OrderBy(a => new { priority = SqlFunc.Desc(a.priority), a.bill_code })
.Select((a, b, c) => new WmsPretaskH .Select((a, b, c) => new WmsPretaskH
{ {
move_num = c.move_num move_num = c.move_num,
third_eqp_type = c.third_eqp_type,
}, true) }, true)
.ToListAsync(); .ToListAsync();
List<WmsPretaskH> agvElevatorTasks = preTasks List<WmsPretaskH> agvElevatorTasks = preTasks
.Where(it => it.endlocation_code.StartsWith("DT", StringComparison.OrdinalIgnoreCase) && .Where(it => it.endlocation_code.StartsWith("DT", StringComparison.OrdinalIgnoreCase) &&
!it.area_code.Contains("ELE", StringComparison.OrdinalIgnoreCase)) !it.area_code.Contains("ELE", StringComparison.OrdinalIgnoreCase))
.ToList(); .ToList();
preTasks = preTasks.Where(it => !agvElevatorTasks.Select(x=>x.endlocation_code).Contains(it.endlocation_code)).ToList(); preTasks = preTasks.Where(it => !agvElevatorTasks.Select(x => x.endlocation_code).Contains(it.endlocation_code)).ToList();
IEnumerable<WmsPretaskH?> firstEleGrp = agvElevatorTasks.GroupBy(g => g.endlocation_code).Select(t => t.OrderBy(o => o.bill_code).FirstOrDefault()); IEnumerable<WmsPretaskH?> firstEleGrp = agvElevatorTasks.GroupBy(g => g.endlocation_code).Select(t => t.OrderBy(o => o.bill_code).FirstOrDefault());
agvElevatorTasks = agvElevatorTasks.FindAll(x => firstEleGrp.Select(y => y.endlocation_code).Contains(x.endlocation_code)); agvElevatorTasks = agvElevatorTasks.FindAll(x => firstEleGrp.Select(y => y.endlocation_code).Contains(x.endlocation_code));
@@ -297,7 +298,7 @@ namespace Tnb.WarehouseMgr
{ {
List<WmsPretaskH> areaPreTasks = itGroup.ToList(); List<WmsPretaskH> areaPreTasks = itGroup.ToList();
if (moveNum == 1 || (moveNum > areaPreTasks.Count && areaPreTasks.Count == 1)) if (moveNum == 1 || (moveNum > areaPreTasks.Count && areaPreTasks.Count == 1) || areaPreTasks.Any(x => x.third_eqp_type.ToEnum<EnumTaskChainType>() != EnumTaskChainType.CTU))
{ {
items.ForEach(x => items.ForEach(x =>
{ {
@@ -385,7 +386,7 @@ namespace Tnb.WarehouseMgr
await db.Ado.CommitTranAsync(); await db.Ado.CommitTranAsync();
if(_eleCtlCfg.Environment == ElevatorConsts.EnvironmentName) if (string.Equals(_eleCtlCfg.Environment, ElevatorConsts.EnvironmentName, StringComparison.OrdinalIgnoreCase))
{ {
//呼梯操作 //呼梯操作
//获取目标库位为电梯库位的任务 //获取目标库位为电梯库位的任务
@@ -887,13 +888,12 @@ namespace Tnb.WarehouseMgr
{ {
row = await _db.Insertable(preTaskCodes).ExecuteCommandAsync(); row = await _db.Insertable(preTaskCodes).ExecuteCommandAsync();
} }
//先注释 by ly on 20231025 var eleP = preTasks.Find(x => x.area_code.Contains("ELE"));
/* var eleP = preTasks.Find(x => x.area_code.Contains("ELE")); if (eleP != null)
if (eleP != null) {
{ row = await _db.Updateable<WmsElevatorH>().SetColumns(it => it.task_nums == it.task_nums + 1).Where(it => it.area_code == eleP.area_code).ExecuteCommandAsync();
row = await _db.Updateable<WmsElevatorH>().SetColumns(it => it.task_nums == it.task_nums + 1).Where(it => it.area_code == eleP.area_code).ExecuteCommandAsync(); }
}
*/
return row > 0; return row > 0;
} }
/// <summary> /// <summary>