电梯bug erp成品调拨入库单同步
This commit is contained in:
@@ -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; }
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 };
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user