1、电梯服务类新增获取电梯状态接口
2、自定义日志记录器代码调整 3、电梯流程新增测试代码
This commit is contained in:
@@ -13,6 +13,7 @@ using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using Senparc.CO2NET.Cache;
|
||||
using SqlSugar;
|
||||
using Tnb.Common.Extension;
|
||||
using Tnb.EquipMgr.Entities;
|
||||
@@ -85,9 +86,8 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
WmsElevatorH elevator = await _db.Queryable<WmsElevatorH>().LeftJoin<WmsElevatorD>((a, b) => a.id == b.bill_id)
|
||||
.LeftJoin<WmsDistaskH>((a, b, c) => b.location_id == c.startlocation_id)
|
||||
.LeftJoin<WmsPointH>((a, b, c, d) => c.startlocation_id == d.location_id)
|
||||
.Where((a, b, c, d) => d.point_code == input.sourceName && input.taskCode.Contains(c.bill_code))
|
||||
.Select((a, b, c, d) => new WmsElevatorH
|
||||
.Where((a, b, c) => c.endpoint_code == input.sourceName && input.taskCode == input.taskCode)
|
||||
.Select((a, b, c) => new WmsElevatorH
|
||||
{
|
||||
distask_id = c.id,
|
||||
device_id = a.elevator_id,
|
||||
@@ -102,10 +102,13 @@ namespace Tnb.WarehouseMgr
|
||||
try
|
||||
{
|
||||
Logger.Information($"当前任务Id:{elevator.distask_id}");
|
||||
Logger.Information($"elevator.device_id={elevator.device_id}");
|
||||
if (s_elevatorMap.TryGetValue(elevator.device_id, out object? elevatorCode))
|
||||
{
|
||||
string devName = elevatorCode?.ToString() ?? _eleCtlCfg.DevName;
|
||||
(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) = await _elevatorControlService.GetElevatorStatus(devName, CancellationToken.None);
|
||||
|
||||
string devName = elevatorCode?.ToString() ?? _eleCtlCfg.DevName3;
|
||||
var tags = new[] { "SysStatus", "RunStatus", "FloorNo", "DoorStatus", "AGVStatus" };
|
||||
(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}");
|
||||
{
|
||||
if (doorStatus.ToEnum<EnumDoorStatus>() != EnumDoorStatus.开门到位保持)
|
||||
@@ -139,18 +142,18 @@ namespace Tnb.WarehouseMgr
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<Result> UnloadConfirm(ConfirmInput input)//
|
||||
{
|
||||
Logger.Information($"输入参数:{JsonConvert.SerializeObject(input)}");
|
||||
Logger.Information("放货确认..................");
|
||||
try
|
||||
{
|
||||
//根据Agv传递的参数获取,对应的电梯
|
||||
WmsElevatorH elevator = await _db.Queryable<WmsElevatorH>().LeftJoin<WmsElevatorD>((a, b) => a.id == b.bill_id)
|
||||
.LeftJoin<WmsDistaskH>((a, b, c) => b.location_id == c.endlocation_id)
|
||||
.LeftJoin<WmsPointH>((a, b, c, d) => c.endlocation_id == d.location_id)
|
||||
.Where((a, b, c, d) => d.point_code == input.targetName && c.bill_code == input.taskCode)
|
||||
.Select((a, b, c, d) => new WmsElevatorH
|
||||
.Where((a, b, c) => c.endpoint_code == input.targetName && (c.bill_code == input.taskCode || c.bill_code == input.taskChainCode))
|
||||
.Select((a, b, c) => new WmsElevatorH
|
||||
{
|
||||
end_floor = SqlFunc.ToInt32(c.end_floor),
|
||||
distask_id = c.id,
|
||||
device_id = a.elevator_id,
|
||||
}, true)
|
||||
.FirstAsync();
|
||||
if (elevator.IsNull())
|
||||
@@ -158,10 +161,11 @@ namespace Tnb.WarehouseMgr
|
||||
throw new Exception($"根据参数,sourceName:{input.sourceName},taskCode:{input.taskCode},未找到匹配的电梯任务");
|
||||
}
|
||||
|
||||
if (s_elevatorMap.TryGetValue(elevator.elevator_id, out object? elevatorCode))
|
||||
if (s_elevatorMap.TryGetValue(elevator.device_id, out object? elevatorCode))
|
||||
{
|
||||
string devName = elevatorCode?.ToString() ?? _eleCtlCfg.DevName;
|
||||
(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) = await _elevatorControlService.GetElevatorStatus(devName, CancellationToken.None);//elevator.elevator_code
|
||||
string devName = elevatorCode?.ToString() ?? _eleCtlCfg.DevName3;
|
||||
var tags = new[] { "SysStatus", "RunStatus", "FloorNo", "DoorStatus", "AGVStatus" };
|
||||
(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);//elevator.elevator_code
|
||||
Logger.Information($"电梯当前状态->系统状态:{sysStatus.ToEnum<EnumSysStatus>()},运行状态:{runStatus},门状态:{doorStatus},Agv状态:{agvStatus},当前楼层:{floorNo}");
|
||||
//判断Agv电梯是否进入状态
|
||||
if (agvStatus != (int)EnumAgvStatus.AGV运行状态)
|
||||
@@ -253,14 +257,22 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
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()
|
||||
if (disTasks == null || disTasks.Count < 1)
|
||||
{
|
||||
disTaskIds = disTasks.Select(x => x.id).ToList(),
|
||||
EqpIds = eps.Select(x => x.id).ToList(),
|
||||
};
|
||||
await _wareHouseService.TaskExecute(taskExecuteUpInput);
|
||||
Logger.Error($"根据任务链编号:{input.taskChainCode} ,未获取到任何任务");
|
||||
}
|
||||
if (disTasks?.Count > 0)
|
||||
{
|
||||
TaskExecuteUpInput taskExecuteUpInput = new()
|
||||
{
|
||||
disTaskIds = disTasks?.Select(x => x.id).ToList() ?? Enumerable.Empty<string>().ToList(),
|
||||
EqpIds = eps?.Select(x => x.id).ToList() ?? Enumerable.Empty<string>().ToList(),
|
||||
};
|
||||
await _wareHouseService.TaskExecute(taskExecuteUpInput);
|
||||
}
|
||||
|
||||
ConnectionConfigOptions opts = App.GetOptions<ConnectionConfigOptions>();
|
||||
|
||||
/*ConnectionConfigOptions opts = App.GetOptions<ConnectionConfigOptions>();
|
||||
UserAgent userAgent = new(App.HttpContext);
|
||||
//写系统日志
|
||||
await _eventPublisher.PublishAsync(new LogEventSource("Log:CreateOpLog", opts, new SysLogEntity
|
||||
@@ -275,11 +287,12 @@ namespace Tnb.WarehouseMgr
|
||||
Json = $"任务链状态上报,任务链编号:{input.taskChainCode},上报状态:{input.status},设备编号:{input.deviceID}",
|
||||
PlatForm = string.Format("{0}-{1}", userAgent.OS.ToString(), userAgent.RawValue),
|
||||
CreatorTime = DateTime.Now
|
||||
}));
|
||||
}));*/
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.Error("任务链状态上报", ex);
|
||||
Logger.Error($"任务链状态上报错误堆栈{Environment.NewLine}{ex.StackTrace}");
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, "请重试!");
|
||||
throw;
|
||||
}
|
||||
@@ -326,6 +339,7 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
disTaskIds = disTasks.Select(x => x.id).ToList()
|
||||
};
|
||||
Logger.Information($"taskCompleUpInput json parameter:{JsonConvert.SerializeObject(taskCompleUpInput)}");
|
||||
await _wareHouseService.TaskComplate(taskCompleUpInput);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user