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>
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>
[SugarColumn(IsIgnore = true)]
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,
KIVA = 2,
AGV = 3,
= 4,
线 = 5,
}
}

View File

@@ -218,7 +218,7 @@ namespace Tnb.WarehouseMgr
try
{
Logger.Information($"任务链编号:{input.taskChainCode},状态:{input.status},设备ID{input.deviceID}");
switch (input.status)
/*switch (input.status)
{
case "CREATED": break;
case "ALLOCATED": break;
@@ -242,9 +242,23 @@ namespace Tnb.WarehouseMgr
case "FAILURE": break;
case "FINISHED": 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>();
UserAgent userAgent = new(App.HttpContext);
//写系统日志
@@ -321,6 +335,10 @@ namespace Tnb.WarehouseMgr
return await ToApiResult(HttpStatusCode.InternalServerError, "请重试!");
throw;
}
finally
{
_ = InvokeGenPretaskExcute();
}
return await ToApiResult(HttpStatusCode.OK, "成功");
}

View File

@@ -256,19 +256,20 @@ namespace Tnb.WarehouseMgr
.OrderBy(a => new { priority = SqlFunc.Desc(a.priority), a.bill_code })
.Select((a, b, c) => new WmsPretaskH
{
move_num = c.move_num
move_num = c.move_num,
third_eqp_type = c.third_eqp_type,
}, true)
.ToListAsync();
List<WmsPretaskH> agvElevatorTasks = preTasks
.Where(it => it.endlocation_code.StartsWith("DT", StringComparison.OrdinalIgnoreCase) &&
!it.area_code.Contains("ELE", StringComparison.OrdinalIgnoreCase))
.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());
agvElevatorTasks = agvElevatorTasks.FindAll(x => firstEleGrp.Select(y => y.endlocation_code).Contains(x.endlocation_code));
preTasks = preTasks.Concat(agvElevatorTasks).ToList();
List<string> ids = preTasks.Select(x => x.id).Distinct().ToList();
List<WmsPretaskCode>? preTaskCodes = await db.Queryable<WmsPretaskCode>().Where(it => ids.Contains(it.bill_id)).ToListAsync();
@@ -297,7 +298,7 @@ namespace Tnb.WarehouseMgr
{
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 =>
{
@@ -385,7 +386,7 @@ namespace Tnb.WarehouseMgr
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();
}
//先注释 by ly on 20231025
/* var eleP = preTasks.Find(x => x.area_code.Contains("ELE"));
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();
}
*/
var eleP = preTasks.Find(x => x.area_code.Contains("ELE"));
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();
}
return row > 0;
}
/// <summary>