电梯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仓库类型 /// erp仓库类型
/// </summary> /// </summary>
public string? erp_wh_type { get; set; } 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(); }).Where(r => r.elevator_id == elevator.device_id).ExecuteCommandAsync();
s_eleUseStatusDic[elevator.device_id] = (int)EnumElevatorUseStatus.; s_eleUseStatusDic[elevator.device_id] = (int)EnumElevatorUseStatus.;
Logger.Information($"【TaskCallback】 {devName.Match(@"\d+")}#梯,设备名称:{devName},开始进入关门流程 {devName} 变更为空闲 {s_eleUseStatusDic.GetHashCode()} {s_eleUseStatusDic[elevator.device_id]}"); 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 else
@@ -770,7 +779,6 @@ namespace Tnb.WarehouseMgr
}).Where(r => r.elevator_id == elevator.device_id).ExecuteCommandAsync(); }).Where(r => r.elevator_id == elevator.device_id).ExecuteCommandAsync();
s_eleUseStatusDic[elevator.device_id] = (int)EnumElevatorUseStatus.; s_eleUseStatusDic[elevator.device_id] = (int)EnumElevatorUseStatus.;
Logger.Information($"【TaskCallback】 {devName.Match(@"\d+")}#梯,设备名称:{devName},开始进入关门流程 {devName} 变更为空闲 {s_eleUseStatusDic.GetHashCode()} {s_eleUseStatusDic[elevator.device_id]}"); Logger.Information($"【TaskCallback】 {devName.Match(@"\d+")}#梯,设备名称:{devName},开始进入关门流程 {devName} 变更为空闲 {s_eleUseStatusDic.GetHashCode()} {s_eleUseStatusDic[elevator.device_id]}");
}
int doorStatus = await _elevatorControlService.GetTagAsync(devName, ElevatorConsts.DoorStatus); int doorStatus = await _elevatorControlService.GetTagAsync(devName, ElevatorConsts.DoorStatus);
Logger.Information($"【TaskCallback】 设备:{devName},门状态:{doorStatus.ToEnum<EnumDoorStatus>().ToString()}"); Logger.Information($"【TaskCallback】 设备:{devName},门状态:{doorStatus.ToEnum<EnumDoorStatus>().ToString()}");
@@ -780,6 +788,7 @@ namespace Tnb.WarehouseMgr
_ = await _elevatorControlService.SendOpenCloseCmd(devName, 4); //向电梯发送前门关门指令 _ = await _elevatorControlService.SendOpenCloseCmd(devName, 4); //向电梯发送前门关门指令
} }
} }
}
else else
{ {
Logger.Information($"【TaskCallback】 没找到电梯,不能解锁电梯状态 {JsonConvert.SerializeObject(elevator)}"); Logger.Information($"【TaskCallback】 没找到电梯,不能解锁电梯状态 {JsonConvert.SerializeObject(elevator)}");

View File

@@ -971,6 +971,7 @@ namespace Tnb.WarehouseMgr
wmsTransferInstockH.bill_code = Code; wmsTransferInstockH.bill_code = Code;
wmsTransferInstockH.erp_bill_code = input.transfer_order; wmsTransferInstockH.erp_bill_code = input.transfer_order;
wmsTransferInstockH.outstockorg_code = input.outstockorg_code; wmsTransferInstockH.outstockorg_code = input.outstockorg_code;
wmsTransferInstockH.incoming_ware = warehouse_instock.id;
wmsTransferInstockH.org_id = WmsWareHouseConst.AdministratorOrgId; wmsTransferInstockH.org_id = WmsWareHouseConst.AdministratorOrgId;
wmsTransferInstockH.erp_pk = input.erp_pk; wmsTransferInstockH.erp_pk = input.erp_pk;
wmsTransferInstockH.create_id = WmsWareHouseConst.ErpUserId; 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(); 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) if (erpExtendField != null)
{ {
wmsTransferInstockD.unit_id = erpExtendField.Id;
wmsTransferInstockD.unit_code = erpExtendField.EnCode; wmsTransferInstockD.unit_code = erpExtendField.EnCode;
} }
else else

View File

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

View File

@@ -1,6 +1,6 @@
{ {
"AgvRequestUrls": { "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" "CancelTaskChainUrl": "http://192.168.11.104:1880/api/task-chain/cancel"
} }
} }