解决冲突代码

This commit is contained in:
yang.lee
2023-12-15 09:55:25 +08:00
7 changed files with 429 additions and 154 deletions

View File

@@ -45,8 +45,7 @@ namespace Tnb.WarehouseMgr
private readonly IElevatorControlService _elevatorControlService;
private readonly ElevatorControlConfiguration _eleCtlCfg = App.Configuration.Build<ElevatorControlConfiguration>();
private readonly ILoggerFactory _loggerFactory;
private static bool unLoadComplete = true; //是否放货完成
public static Dictionary<string, int> s_eleUseStatusDic = new();
@@ -118,7 +117,6 @@ namespace Tnb.WarehouseMgr
Logger.Error("未找到匹配的电梯任务", new Exception($"根据参数,sourceName:{input.sourceName},taskCode:{input.taskCode},未找到匹配的电梯任务"));
return await ToApiResult(HttpStatusCode.InternalServerError, $"根据参数,sourceName:{input.sourceName},taskCode:{input.taskCode},未找到匹配的电梯任务");
}
try
{
if (s_elevatorMap.TryGetValue(elevator.device_id, out object? elevatorCode))
@@ -127,6 +125,7 @@ namespace Tnb.WarehouseMgr
string devName = elevatorCode?.ToString();
Logger.Information($"获取设备:{devName},状态");
var tags = _eleCtlCfg.tags;
await Task.Delay(1000);
(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
Logger.Information($"电梯当前状态->系统状态:{sysStatus.ToEnum<EnumSysStatus>()},运行状态:{runStatus.ToEnum<EnumRunStatus>()},Agv状态:{agvStatus.ToEnum<EnumAgvStatus>()},当前楼层:{floorNo}");
{
@@ -243,11 +242,10 @@ namespace Tnb.WarehouseMgr
if (doorStatus == (int)EnumDoorStatus. && s_eleUseStatusDic[elevator.device_id] == (int)EnumElevatorUseStatus.)
{
Logger.Information($"{devName.Match(@"\d+")}#梯,任务未完成");
return await ToApiResult(HttpStatusCode.InternalServerError, "电梯还未开门,请重试!");
await ToApiResult(HttpStatusCode.InternalServerError, "电梯还未开门,请重试!");
}
//电梯到达目标楼层后,判断当前电梯门状态是否为开门到位保持状态
if (s_eleUseStatusDic[elevator.device_id] == (int)EnumElevatorUseStatus. && doorStatus != (int)EnumDoorStatus. && curFloor == floorNo) //判断目标楼层与电梯所在楼层在同一层才可开门放货
if (doorStatus != (int)EnumDoorStatus. && curFloor == floorNo) //判断目标楼层与电梯所在楼层在同一层才可开门放货
{
_ = await _elevatorControlService.SendOpenCloseCmd(devName, 3); //发送电梯前门开门指令
}
@@ -256,7 +254,6 @@ namespace Tnb.WarehouseMgr
&& doorStatus == (int)EnumDoorStatus. && s_eleUseStatusDic[elevator.device_id] == (int)EnumElevatorUseStatus.)
{
s_eleUseStatusDic[elevator.device_id] = (int)EnumElevatorUseStatus.;
Logger.Information($"当前电梯状态:{s_eleUseStatusDic[elevator.device_id].ToEnum<EnumElevatorUseStatus>().ToString()}");
return await ToApiResult(HttpStatusCode.OK, "成功");
}
}
@@ -365,7 +362,7 @@ namespace Tnb.WarehouseMgr
List<WmsDistaskH> disTasks = new() { disTask };
if (input.action == "LOAD")
{
unLoadComplete = true;
TaskExecuteAfterUpInput taskExecuteAfterUpInput = new()
{
disTaskIds = disTasks.Select(x => x.id).ToList()