From c70b9be7fc3befc63e029940683ff1f5104499f7 Mon Sep 17 00:00:00 2001 From: majian <780924089@qq.com> Date: Wed, 21 Aug 2024 10:43:32 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B5=E6=A2=AFbug=20erp=E6=88=90=E5=93=81?= =?UTF-8?q?=E8=B0=83=E6=8B=A8=E5=85=A5=E5=BA=93=E5=8D=95=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Entity/WmsTransferInstockH.cs | 5 ++ .../Tnb.WarehouseMgr/DeviceProviderService.cs | 23 +++-- .../Tnb.WarehouseMgr/ErpToWmsService.cs | 2 + .../Tnb.WarehouseMgr/WareHouseService.cs | 84 +++++++++---------- .../Configurations/AgvRequestCfgUrl.json | 2 +- 5 files changed, 66 insertions(+), 50 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsTransferInstockH.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsTransferInstockH.cs index d455c63c..719e8297 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsTransferInstockH.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsTransferInstockH.cs @@ -114,5 +114,10 @@ public partial class WmsTransferInstockH : BaseEntity /// erp仓库类型 /// public string? erp_wh_type { get; set; } + + /// + /// 入库仓库 + /// + public string? incoming_ware { get; set; } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs b/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs index 979f7db3..6c730d9d 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs @@ -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().ToString()}"); + if (doorStatus.ToEnum() != 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().ToString()}"); - if (doorStatus.ToEnum() != 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().ToString()}"); + if (doorStatus.ToEnum() != EnumDoorStatus.关门到位保持 + )//&& !disTask.endlocation_code.StartsWith("DT", StringComparison.OrdinalIgnoreCase) + { + _ = await _elevatorControlService.SendOpenCloseCmd(devName, 4); //向电梯发送前门关门指令 + } } } else diff --git a/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs b/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs index e0715b31..c3fb9c6d 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs @@ -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().InnerJoin((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 diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index 2075e800..5d78a380 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -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()}"); - await Task.Delay(1000); - } while (eleStatusMulti.agvStatus != (int)EnumAgvStatus.AGV运行状态); - Logger.Information($"{devName.Match(@"\d+")}#, 当前Agv状态:{eleStatusMulti.agvStatus.ToEnum()}"); - _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()}"); + // await Task.Delay(1000); + // } while (eleStatusMulti.agvStatus != (int)EnumAgvStatus.AGV运行状态); + // Logger.Information($"{devName.Match(@"\d+")}#, 当前Agv状态:{eleStatusMulti.agvStatus.ToEnum()}"); + // _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.正常状态 && tuple.runStatus.ToEnum() == EnumRunStatus.停梯) + //if (tuple.sysStatus.ToEnum() == EnumSysStatus.正常状态 && tuple.runStatus.ToEnum() == EnumRunStatus.停梯) { Logger.Information($"disTask.require_id={disTask.require_id}"); List disTaskIds = new() { disTasks[0].id }; diff --git a/apihost/Tnb.API.Entry/Configurations/AgvRequestCfgUrl.json b/apihost/Tnb.API.Entry/Configurations/AgvRequestCfgUrl.json index a15fe34b..697ba175 100644 --- a/apihost/Tnb.API.Entry/Configurations/AgvRequestCfgUrl.json +++ b/apihost/Tnb.API.Entry/Configurations/AgvRequestCfgUrl.json @@ -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" } } \ No newline at end of file