新增查询静置空闲库位的常量和逻辑
在 `SysConfigKeyConst.cs` 文件中,新增常量`QueryLocationFreeJZ`,用于表示查询静置空闲库位的操作。
在 `RequestInbound.cs` 文件中,添加代码以获取 WMS IP 地址和查询静置空闲库位的配置,并在未配置时抛出异常。同时,修改了获取地址的逻辑,从查询 `QueryStockInfoForRealTrayJZAsync` 改为使用新添加的 `QueryLocationFreeJZ` 常量,以确保请求 WMS 时使用正确的地址。
已修改2个文件
29 ■■■■ 文件已修改
CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/SysConfigKeyConst.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/SysConfigKeyConst.cs
@@ -88,5 +88,10 @@
        public const string SetEmptyOutbyInToOutOneAsync = "SetEmptyOutbyInToOutOneAsync";
        public const string QueryStockInfoForRealTrayJZAsync = "QueryStockInfoForRealTrayJZAsync";
        /// <summary>
        /// 查询静置空闲库位
        /// </summary>
        public const string QueryLocationFreeJZ = "QueryLocationFreeJZ";
    }
}
CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
@@ -430,6 +430,22 @@
                    LogAndSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, logMessage, conveyorLineTaskCommand.TargetAddress.ToString());
                    return;
                }
                var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                var wmsbase = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue;
                var address = configz.Where(x => x.ConfigKey == SysConfigKeyConst.QueryLocationFreeJZ).FirstOrDefault()?.ConfigValue;
                if (wmsbase == null || address == null)
                {
                    throw new InvalidOperationException("WMS IP 未配置");
                }
                var wmsIpAddrss = wmsbase + address;
                var x = await HttpHelper.PostAsync(wmsIpAddrss, new { RoadwayNo = "JZSC" }.ToJsonString());
                var LocationFree = JsonConvert.DeserializeObject<WebResponseContent>(x);
                if (!LocationFree.Status)
                {
                    ConsoleHelper.WriteErrorLine(LocationFree.Message);
                    return;
                }
                if (resultTrayCellsStatus.SerialNos.Count == 0)
                {
                    var Traycontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode);
@@ -445,14 +461,12 @@
                }
                else
                {
                    var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                    var wmsbase = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue;
                    var address = configz.Where(x => x.ConfigKey == SysConfigKeyConst.QueryStockInfoForRealTrayJZAsync).FirstOrDefault()?.ConfigValue;
                    if (wmsbase == null || address == null)
                    var QueryStockInfoForRealTrayJZ = configz.Where(x => x.ConfigKey == SysConfigKeyConst.QueryStockInfoForRealTrayJZAsync).FirstOrDefault()?.ConfigValue;
                    if (wmsbase == null || QueryStockInfoForRealTrayJZ == null)
                    {
                        throw new InvalidOperationException("WMS IP 未配置");
                    }
                    var wmsIpAddrss = wmsbase + address;
                    wmsIpAddrss = wmsbase + QueryStockInfoForRealTrayJZ;
                    var result = await HttpHelper.PostAsync(wmsIpAddrss, new { ProductLine = resultTrayCellsStatus.ProductionLine, PalletCode = command.Barcode }.ToJsonString());
                    var StockInfocontent = JsonConvert.DeserializeObject<WebResponseContent>(result);
                    if (StockInfocontent.Status)