电梯bug erp成品调拨入库单同步

This commit is contained in:
2024-08-21 10:43:32 +08:00
parent 241d6ae94c
commit c70b9be7fc
5 changed files with 66 additions and 50 deletions

View File

@@ -114,5 +114,10 @@ public partial class WmsTransferInstockH : BaseEntity<string>
/// erp仓库类型
/// </summary>
public string? erp_wh_type { get; set; }
/// <summary>
/// 入库仓库
/// </summary>
public string? incoming_ware { get; set; }
}

View File

@@ -759,6 +759,15 @@ namespace Tnb.WarehouseMgr
}).Where(r => r.elevator_id == elevator.device_id).ExecuteCommandAsync();
s_eleUseStatusDic[elevator.device_id] = (int)EnumElevatorUseStatus.;
Logger.Information($"【TaskCallback】 {devName.Match(@"\d+")}#梯,设备名称:{devName},开始进入关门流程 {devName} 变更为空闲 {s_eleUseStatusDic.GetHashCode()} {s_eleUseStatusDic[elevator.device_id]}");
int doorStatus = await _elevatorControlService.GetTagAsync(devName, ElevatorConsts.DoorStatus);
Logger.Information($"【TaskCallback】 设备:{devName},门状态:{doorStatus.ToEnum<EnumDoorStatus>().ToString()}");
if (doorStatus.ToEnum<EnumDoorStatus>() != EnumDoorStatus.
)//&& !disTask.endlocation_code.StartsWith("DT", StringComparison.OrdinalIgnoreCase)
{
_ = await _elevatorControlService.SendOpenCloseCmd(devName, 4); //向电梯发送前门关门指令
}
}
}
else
@@ -770,14 +779,14 @@ namespace Tnb.WarehouseMgr
}).Where(r => r.elevator_id == elevator.device_id).ExecuteCommandAsync();
s_eleUseStatusDic[elevator.device_id] = (int)EnumElevatorUseStatus.;
Logger.Information($"【TaskCallback】 {devName.Match(@"\d+")}#梯,设备名称:{devName},开始进入关门流程 {devName} 变更为空闲 {s_eleUseStatusDic.GetHashCode()} {s_eleUseStatusDic[elevator.device_id]}");
}
int doorStatus = await _elevatorControlService.GetTagAsync(devName, ElevatorConsts.DoorStatus);
Logger.Information($"【TaskCallback】 设备:{devName},门状态:{doorStatus.ToEnum<EnumDoorStatus>().ToString()}");
if (doorStatus.ToEnum<EnumDoorStatus>() != EnumDoorStatus.
)//&& !disTask.endlocation_code.StartsWith("DT", StringComparison.OrdinalIgnoreCase)
{
_ = await _elevatorControlService.SendOpenCloseCmd(devName, 4); //向电梯发送前门关门指令
int doorStatus = await _elevatorControlService.GetTagAsync(devName, ElevatorConsts.DoorStatus);
Logger.Information($"【TaskCallback】 设备:{devName},门状态:{doorStatus.ToEnum<EnumDoorStatus>().ToString()}");
if (doorStatus.ToEnum<EnumDoorStatus>() != EnumDoorStatus.
)//&& !disTask.endlocation_code.StartsWith("DT", StringComparison.OrdinalIgnoreCase)
{
_ = await _elevatorControlService.SendOpenCloseCmd(devName, 4); //向电梯发送前门关门指令
}
}
}
else

View File

@@ -971,6 +971,7 @@ namespace Tnb.WarehouseMgr
wmsTransferInstockH.bill_code = Code;
wmsTransferInstockH.erp_bill_code = input.transfer_order;
wmsTransferInstockH.outstockorg_code = input.outstockorg_code;
wmsTransferInstockH.incoming_ware = warehouse_instock.id;
wmsTransferInstockH.org_id = WmsWareHouseConst.AdministratorOrgId;
wmsTransferInstockH.erp_pk = input.erp_pk;
wmsTransferInstockH.create_id = WmsWareHouseConst.ErpUserId;
@@ -991,6 +992,7 @@ namespace Tnb.WarehouseMgr
var erpExtendField = await db.Queryable<ErpExtendField>().InnerJoin<DictionaryDataEntity>((a, b) => a.table_id == b.Id).Where((a, b) => a.cunitid == detail.unit_code).Select((a, b) => b).FirstAsync();
if (erpExtendField != null)
{
wmsTransferInstockD.unit_id = erpExtendField.Id;
wmsTransferInstockD.unit_code = erpExtendField.EnCode;
}
else

View File

@@ -2208,56 +2208,56 @@ namespace Tnb.WarehouseMgr
Logger.Information($"当前:{devName.Match(@"\d+")}#梯");
var tags = new[] { "SysStatus", "RunStatus", "FloorNo", "DoorStatus", "AGVStatus" };
(int sysStatus, int runStatus, int curFloorNo, int doorStatus, int agvStatus) eleStatusMulti = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
if (eleStatusMulti.agvStatus != (int)EnumAgvStatus.AGV运行状态)
{
_ = await _elevatorControlService.WriteTagAsync(devName, ElevatorConsts.AGVControl, 1);
}
//var tags = new[] { "SysStatus", "RunStatus", "FloorNo", "DoorStatus", "AGVStatus" };
//(int sysStatus, int runStatus, int curFloorNo, int doorStatus, int agvStatus) eleStatusMulti = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
//if (eleStatusMulti.agvStatus != (int)EnumAgvStatus.AGV运行状态)
//{
// _ = await _elevatorControlService.WriteTagAsync(devName, ElevatorConsts.AGVControl, 1);
//}
if (!_elevatorAgvCtlStatusMap.TryGetValue(disTask.id, out int agvCtlStatus) || agvCtlStatus != (int)EnumAgvStatus.AGV运行状态)
{
do
{
eleStatusMulti = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
Logger.Information($"{devName.Match(@"\d+")}#, 当前Agv状态:{eleStatusMulti.agvStatus.ToEnum<EnumAgvStatus>()}");
await Task.Delay(1000);
} while (eleStatusMulti.agvStatus != (int)EnumAgvStatus.AGV运行状态);
Logger.Information($"{devName.Match(@"\d+")}#, 当前Agv状态:{eleStatusMulti.agvStatus.ToEnum<EnumAgvStatus>()}");
_elevatorAgvCtlStatusMap[disTask.id] = eleStatusMulti.agvStatus;
}
//if (!_elevatorAgvCtlStatusMap.TryGetValue(disTask.id, out int agvCtlStatus) || agvCtlStatus != (int)EnumAgvStatus.AGV运行状态)
//{
// do
// {
// eleStatusMulti = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
// Logger.Information($"{devName.Match(@"\d+")}#, 当前Agv状态:{eleStatusMulti.agvStatus.ToEnum<EnumAgvStatus>()}");
// await Task.Delay(1000);
// } while (eleStatusMulti.agvStatus != (int)EnumAgvStatus.AGV运行状态);
// Logger.Information($"{devName.Match(@"\d+")}#, 当前Agv状态:{eleStatusMulti.agvStatus.ToEnum<EnumAgvStatus>()}");
// _elevatorAgvCtlStatusMap[disTask.id] = eleStatusMulti.agvStatus;
//}
int doorStatus = -1;
bool closeDoorRes = await _elevatorControlService.SendOpenCloseCmd(devName, 4); //向电梯发送前门关门指令
Logger.Information($"关门结果:{closeDoorRes}");
do
{
doorStatus = await _elevatorControlService.GetTagAsync(devName, ElevatorConsts.DoorStatus);
Logger.Information($"当前门状态:{doorStatus}");
await Task.Delay(1000);
} while (doorStatus != 4);
Logger.Information($"当前门状态:{doorStatus}");
//int doorStatus = -1;
//bool closeDoorRes = await _elevatorControlService.SendOpenCloseCmd(devName, 4); //向电梯发送前门关门指令
//Logger.Information($"关门结果:{closeDoorRes}");
//do
//{
// doorStatus = await _elevatorControlService.GetTagAsync(devName, ElevatorConsts.DoorStatus);
// Logger.Information($"当前门状态:{doorStatus}");
// await Task.Delay(1000);
//} while (doorStatus != 4);
//Logger.Information($"当前门状态:{doorStatus}");
int floor = await GetRealFloor(devName, disTask.end_floor);
//int floor = await GetRealFloor(devName, disTask.end_floor);
//电梯任务手动执行任务状态上报
(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) tuple = (-1, -1, -1, -1, -1);
tuple = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
Logger.Information($"目标楼层:{floor} 当前楼层:{tuple.floorNo}");
////电梯任务手动执行任务状态上报
//(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) tuple = (-1, -1, -1, -1, -1);
//tuple = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
//Logger.Information($"目标楼层:{floor} 当前楼层:{tuple.floorNo}");
Logger.Information($"开始呼梯 {devName}到{floor}");
//发送到目标楼的指令
dynamic result = await _elevatorControlService.WriteTagAsync(devName, ElevatorConsts.FloorExecute, floor);
//Logger.Information($"开始呼梯 {devName}到{floor}");
////发送到目标楼的指令
//dynamic result = await _elevatorControlService.WriteTagAsync(devName, ElevatorConsts.FloorExecute, floor);
do
{
tuple = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
await Task.Delay(1000);
} while (tuple.sysStatus != 3 || tuple.runStatus != 0 || floor != tuple.floorNo);
//do
//{
// tuple = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
// await Task.Delay(1000);
//} while (tuple.sysStatus != 3 || tuple.runStatus != 0 || floor != tuple.floorNo);
Logger.Information($"sysStatus:{tuple.sysStatus},runStatus:{tuple.runStatus},当前楼层floorNo:{tuple.floorNo},目标楼层disTask.end_floor={floor}");
//Logger.Information($"sysStatus:{tuple.sysStatus},runStatus:{tuple.runStatus},当前楼层floorNo:{tuple.floorNo},目标楼层disTask.end_floor={floor}");
if (tuple.sysStatus.ToEnum<EnumSysStatus>() == EnumSysStatus. && tuple.runStatus.ToEnum<EnumRunStatus>() == EnumRunStatus.)
//if (tuple.sysStatus.ToEnum<EnumSysStatus>() == EnumSysStatus.正常状态 && tuple.runStatus.ToEnum<EnumRunStatus>() == EnumRunStatus.停梯)
{
Logger.Information($"disTask.require_id={disTask.require_id}");
List<string> disTaskIds = new() { disTasks[0].id };

View File

@@ -1,6 +1,6 @@
{
"AgvRequestUrls": {
"CreateTaskChainUrl": "http://192.168.11.104:1880/api/task-chain/create",
"CreateTaskChainUrl": "http://10.147.19.104:5013/api/task-chain/create",
"CancelTaskChainUrl": "http://192.168.11.104:1880/api/task-chain/cancel"
}
}