diff --git a/WcsMain/AppEntity/SystemData/AppConfigEntity.cs b/WcsMain/AppEntity/SystemData/AppConfigEntity.cs index 0a7a4d0..397ea2b 100644 --- a/WcsMain/AppEntity/SystemData/AppConfigEntity.cs +++ b/WcsMain/AppEntity/SystemData/AppConfigEntity.cs @@ -21,34 +21,6 @@ public class AppConfigEntity public string? WcsId { get; set; } - /***************************** API信息 *************************************/ - - /// - /// Wms 的根地址 - /// - [ConfigKey("WmsBaseApiAddress")] - public string? WmsBaseAddressApiAddress { get; set; } - - /// - /// 请求入库的地址 - /// - [ConfigKey("ApplyEnterApiAddress")] - public string? ApplyEnterApiAddress { get; set;} - - /// - /// 发送 Wms 任务状态 - /// - [ConfigKey("SendWmsTaskStatusApiAddress")] - public string? SendWmsTaskStatusApiAddress { get; set; } - - /// - /// 上报载具到达 - /// - [ConfigKey("VehicleArriveApiAddress")] - public string? VehicleArriveApiAddress { get; set; } - - - /****************************** 功能配置 ******************************/ diff --git a/WcsMain/Business/CommonAction/SendWmsTaskStatus.cs b/WcsMain/Business/CommonAction/SendWmsTaskStatus.cs index 723544a..fbd8b0a 100644 --- a/WcsMain/Business/CommonAction/SendWmsTaskStatus.cs +++ b/WcsMain/Business/CommonAction/SendWmsTaskStatus.cs @@ -3,6 +3,7 @@ using WcsMain.Common; using WcsMain.DataBase.Dao; using WcsMain.DataBase.TableEntity; using WcsMain.Enum; +using WcsMain.ExtendMethod; using WcsMain.Plugins; using WcsMain.WcsAttribute.AutoFacAttribute; @@ -52,7 +53,7 @@ public class SendWmsTaskStatus(AppWmsTaskDao wmsTaskDao, WmsWebApiPost wmsWebApi }; for (int i = 1; i <= count; i++) { - var response = wmsWebApiPost.HttpPost(request, CommonData.AppConfig.SendWmsTaskStatusApiAddress ?? ""); + var response = wmsWebApiPost.HttpPost(request, CommonData.AppApiBaseInfos.GetAddress("SendWmsTaskStatusApiAddress") ?? ""); if (!response.IsSend) { ConsoleLog.Error($"【异常】发送WMS[任务异常]失败,发送次数:{i},任务号:{wmsTask.TaskId},参考信息:{response.RequestException?.Message}"); @@ -110,7 +111,7 @@ public class SendWmsTaskStatus(AppWmsTaskDao wmsTaskDao, WmsWebApiPost wmsWebApi }; for (int i = 1; i <= count; i++) { - var response = wmsWebApiPost.HttpPost(request, CommonData.AppConfig.SendWmsTaskStatusApiAddress ?? ""); + var response = wmsWebApiPost.HttpPost(request, CommonData.AppApiBaseInfos.GetAddress("SendWmsTaskStatusApiAddress") ?? ""); if (!response.IsSend) { ConsoleLog.Error($"【异常】发送WMS[取货位置无货]失败,发送次数:{i},任务号:{wmsTask.TaskId},参考信息:{response.RequestException?.Message}"); @@ -168,7 +169,7 @@ public class SendWmsTaskStatus(AppWmsTaskDao wmsTaskDao, WmsWebApiPost wmsWebApi }; for (int i = 1; i <= count; i++) { - var response = wmsWebApiPost.HttpPost(request, CommonData.AppConfig.SendWmsTaskStatusApiAddress ?? ""); + var response = wmsWebApiPost.HttpPost(request, CommonData.AppApiBaseInfos.GetAddress("SendWmsTaskStatusApiAddress") ?? ""); if (!response.IsSend) { ConsoleLog.Error($"【异常】发送WMS[卸货位置有货]失败,发送次数:{i},任务号:{wmsTask.TaskId},参考信息:{response.RequestException?.Message}"); @@ -227,7 +228,7 @@ public class SendWmsTaskStatus(AppWmsTaskDao wmsTaskDao, WmsWebApiPost wmsWebApi }; for (int i = 1; i <= count; i++) { - var response = wmsWebApiPost.HttpPost(request, CommonData.AppConfig.SendWmsTaskStatusApiAddress ?? ""); + var response = wmsWebApiPost.HttpPost(request, CommonData.AppApiBaseInfos.GetAddress("SendWmsTaskStatusApiAddress") ?? ""); if (!response.IsSend) { ConsoleLog.Error($"【异常】发送WMS[开始执行]失败,发送次数:{i},任务号:{wmsTask.TaskId},参考信息:{response.RequestException?.Message}"); @@ -285,7 +286,7 @@ public class SendWmsTaskStatus(AppWmsTaskDao wmsTaskDao, WmsWebApiPost wmsWebApi }; for (int i = 1; i <= count; i++) { - var response = wmsWebApiPost.HttpPost(request, CommonData.AppConfig.SendWmsTaskStatusApiAddress ?? ""); + var response = wmsWebApiPost.HttpPost(request, CommonData.AppApiBaseInfos.GetAddress("SendWmsTaskStatusApiAddress") ?? ""); if (!response.IsSend) { ConsoleLog.Error($"【异常】发送WMS[任务完成]失败,发送次数:{i},任务号:{wmsTask.TaskId},参考信息:{response.RequestException?.Message}"); diff --git a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/LoginGetData.cs b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/LoginGetData.cs index c8f2ab8..31cf38a 100644 --- a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/LoginGetData.cs +++ b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/LoginGetData.cs @@ -48,7 +48,7 @@ public class LoginGetData(WmsWebApiPost wmsWebApiPost) : IBaseGetData } /* 发送 WMS 请求入库 */ ApplyInRequest applyInRequest = new(area, code, msg); - var postResult = wmsWebApiPost.HttpPost(applyInRequest, CommonData.AppConfig.ApplyEnterApiAddress ?? ""); + var postResult = wmsWebApiPost.HttpPost(applyInRequest, CommonData.AppApiBaseInfos.GetAddress("ApplyEnterApiAddress") ?? ""); if(!postResult.IsSend || postResult.ResponseEntity == default) { ConsoleLog.Exception($"【异常】注册口:{area} 箱码:{msg} 请求入库发生异常,异常信息:{postResult.RequestException}"); diff --git a/WcsMain/Common/CommonData.cs b/WcsMain/Common/CommonData.cs index 490f087..2174c79 100644 --- a/WcsMain/Common/CommonData.cs +++ b/WcsMain/Common/CommonData.cs @@ -46,6 +46,12 @@ public static class CommonData /// [NotNull] public static List? AppConveyStands { get; set; } + + /// + /// 基础 api 资料 + /// + [NotNull] + public static List? AppApiBaseInfos { get; set; } /// diff --git a/WcsMain/DataBase/Dao/AppApiBaseInfoDao.cs b/WcsMain/DataBase/Dao/AppApiBaseInfoDao.cs new file mode 100644 index 0000000..6cd2c93 --- /dev/null +++ b/WcsMain/DataBase/Dao/AppApiBaseInfoDao.cs @@ -0,0 +1,28 @@ +using WcsMain.Common; +using WcsMain.DataBase.TableEntity; +using WcsMain.WcsAttribute.AutoFacAttribute; + +namespace WcsMain.DataBase.Dao; + +[Component] +public class AppApiBaseInfoDao +{ + /// + /// 查询所有信息 + /// + /// + public List? Query() + { + try + { + var sqlFuc = CommonTool.DbServe.Queryable(); + return sqlFuc.ToList(); + } + catch (Exception e) + { + _ = e; + return default; + } + + } +} \ No newline at end of file diff --git a/WcsMain/DataBase/TableEntity/AppApiBaseInfo.cs b/WcsMain/DataBase/TableEntity/AppApiBaseInfo.cs new file mode 100644 index 0000000..cc73d26 --- /dev/null +++ b/WcsMain/DataBase/TableEntity/AppApiBaseInfo.cs @@ -0,0 +1,48 @@ +using SqlSugar; + +namespace WcsMain.DataBase.TableEntity; + +/// +/// API 基础资料表 +/// +[SugarTable("tbl_app_api_base_info")] +public class AppApiBaseInfo +{ + /// + /// API 键 + /// + [SugarColumn(ColumnName = "api_key", IsPrimaryKey = true)] + public string? ApiKey { get; set; } + + /// + /// 系统名称 + /// + [SugarColumn(ColumnName = "system_name")] + public string? SystemName { get; set; } + + /// + /// 地址类型 + /// + [SugarColumn(ColumnName = "address_type")] + public int? AddressType { get; set; } + + /// + /// 地址值 + /// + [SugarColumn(ColumnName = "address")] + public string? Address { get; set; } + + /// + /// API 名称 + /// + [SugarColumn(ColumnName = "api_name")] + public string? ApiName { get; set; } + + /// + /// 备注 + /// + [SugarColumn(ColumnName = "remark")] + public string? Remark { get; set; } + + +} \ No newline at end of file diff --git a/WcsMain/ExtendMethod/AppApiBaseInfoExtendMethod.cs b/WcsMain/ExtendMethod/AppApiBaseInfoExtendMethod.cs new file mode 100644 index 0000000..83079a1 --- /dev/null +++ b/WcsMain/ExtendMethod/AppApiBaseInfoExtendMethod.cs @@ -0,0 +1,19 @@ +using WcsMain.DataBase.TableEntity; + +namespace WcsMain.ExtendMethod; + +public static class AppApiBaseInfoExtendMethod +{ + /// + /// 根据键名查找一个api地址 + /// + /// + /// + /// + public static string? GetAddress(this List? baseData, string apiKey) + { + var baseInfo = baseData?.Find(f => f.ApiKey == apiKey); + return baseInfo?.Address; + } + +} \ No newline at end of file diff --git a/WcsMain/Plugins/WmsWebApiPost.cs b/WcsMain/Plugins/WmsWebApiPost.cs index 97f01a5..b3391a4 100644 --- a/WcsMain/Plugins/WmsWebApiPost.cs +++ b/WcsMain/Plugins/WmsWebApiPost.cs @@ -1,6 +1,7 @@ using ApiTool; using WcsMain.Business.CommonAction; using WcsMain.Common; +using WcsMain.ExtendMethod; using WcsMain.WcsAttribute.AutoFacAttribute; namespace WcsMain.Plugins; @@ -14,6 +15,6 @@ public class WmsWebApiPost : WebApiPost public WmsWebApiPost(WMSApiResponseAction wmsApiResponseAction) { SetResponseAction(wmsApiResponseAction.WMSApiResponse); - SetBaseUrl(CommonData.AppConfig.WmsBaseAddressApiAddress ?? ""); + SetBaseUrl(CommonData.AppApiBaseInfos.GetAddress("WmsBaseApiAddress") ?? ""); } } diff --git a/WcsMain/Properties/launchSettings.json b/WcsMain/Properties/launchSettings.json index bcadfed..56995f6 100644 --- a/WcsMain/Properties/launchSettings.json +++ b/WcsMain/Properties/launchSettings.json @@ -12,7 +12,7 @@ "WcsMain": { "commandName": "Project", "dotnetRunMessages": true, - "launchBrowser": true, + "launchBrowser": false, "launchUrl": "swagger", "applicationUrl": "http://localhost:890", "environmentVariables": { diff --git a/WcsMain/StartAction/ServiceStart.cs b/WcsMain/StartAction/ServiceStart.cs index 520c16a..3b82dde 100644 --- a/WcsMain/StartAction/ServiceStart.cs +++ b/WcsMain/StartAction/ServiceStart.cs @@ -19,7 +19,7 @@ namespace WcsMain.StartAction; [Component] public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs, SocketOperation socketOperation, AppStackerDao appStackerDao, AppLocationDao appLocationDao, AppConfigDao appConfigDao, ConnectPlcServe connectPlcServe, - ConnectOprServe connectOprServe, AppElTagLocationDao appElTagBaseDao, AppConveyStandDao conveyStandDao) + ConnectOprServe connectOprServe, AppElTagLocationDao appElTagBaseDao, AppConveyStandDao conveyStandDao, AppApiBaseInfoDao appApiBaseInfoDao) { private static string _errMsg = string.Empty; @@ -29,10 +29,12 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs public void LoadingData() { LoadingConfig(); // 加载数据库中的配置项 (config 表) + LoadApiBaseInfo(); // 加载API基础资料 LoadingStackerData(); // 加载数据库中的堆垛机信息 LoadingLocationData(); // 加载数据库中的库位信息 LoadElTagBase(); // 加载电子标签基础资料 LoadConveyStand(); // 加载输送线站台基础资料 + if (!string.IsNullOrEmpty(_errMsg)) { @@ -52,13 +54,13 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs CreatePlcClient(); // 连接 PLC 客户端 CreateSocketClient(); // Socket客户端 ConnectOprServe(); // 连接 Opr 电子标签客户端 - CreateCieculateTask();// 创建并启用定时器 + CreateCirculateTask();// 创建并启用定时器 } /// /// 创建并连接 Plc /// - public void CreatePlcClient() + private void CreatePlcClient() { if (CommonData.AppConfig.UseConnectPlc == "1") // 1 表示允许连接PLC { @@ -69,7 +71,7 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs /// /// 创建并运行 Socket 客户端 ---- 待更新 /// - public void CreateSocketClient() + private void CreateSocketClient() { if (CommonData.AppConfig.UseSocket == "1") // 1 表示允许开启Socket { @@ -80,7 +82,7 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs /// /// 连接Opr电子标签客户端 /// - public void ConnectOprServe() + private void ConnectOprServe() { if (CommonData.AppConfig.UseOpr == "1") // 1 表示允许连接电子标签 { @@ -101,7 +103,7 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs /// /// 创建并启用定时器 /// - public void CreateCieculateTask() + private void CreateCirculateTask() { if (CommonData.AppConfig.UseCirculation == "1") // 1 表示允许开启 定时器 { @@ -121,7 +123,7 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs /// /// 加载数据库内的 Config 配置信息 /// - public void LoadingConfig() + private void LoadingConfig() { if (!string.IsNullOrEmpty(_errMsg)) return; //ConsoleLog.Info("正在加载数据库配置信息..."); @@ -153,10 +155,28 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs CommonData.AppConfig = appConfigEntity; } + /// + /// 加载API基础资料 + /// + private void LoadApiBaseInfo() + { + if (!string.IsNullOrEmpty(_errMsg)) return; + //ConsoleLog.Info("正在加载API配置信息..."); + List? appApiBaseInfos = appApiBaseInfoDao.Query(); + if (appApiBaseInfos == default) + { + _errMsg = "加载API配置信息失败,请检查数据库服务器连接是否正常"; + CommonData.AppApiBaseInfos = []; + return; + } + CommonData.AppApiBaseInfos = appApiBaseInfos; + } + + /// /// 加载堆垛机数据 /// - public void LoadingStackerData() + private void LoadingStackerData() { if (!string.IsNullOrEmpty(_errMsg)) return; //ConsoleLog.Info("正在加载堆垛机参数信息..."); @@ -174,7 +194,7 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs /// /// 加载库位信息 /// - public void LoadingLocationData() + private void LoadingLocationData() { if (!string.IsNullOrEmpty(_errMsg)) return; //ConsoleLog.Info("正在加载库位信息..."); @@ -191,7 +211,7 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs /// /// 加载电子标签基础资料 /// - public void LoadElTagBase() + private void LoadElTagBase() { if (!string.IsNullOrEmpty(_errMsg)) return; //ConsoleLog.Info("正在电子标签基础资料信息..."); @@ -209,7 +229,7 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs /// /// 加载输送线站台基础资料信息 /// - public void LoadConveyStand() + private void LoadConveyStand() { if (!string.IsNullOrEmpty(_errMsg)) return; //ConsoleLog.Info("正在加载输送线基础资料信息...");