From 4f8bb3316a1a6742158838d899f48d0582a8bd08 Mon Sep 17 00:00:00 2001 From: icewint Date: Sat, 16 Nov 2024 09:25:44 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E5=A4=8D=E6=8F=90=E5=8D=87?= =?UTF-8?q?=E6=9C=BA=E6=95=B0=E6=8D=AE=E6=9F=A5=E8=AF=A2=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B=202=E3=80=81=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=9B=9B=E5=90=91=E8=BD=A6=E6=8E=A5=E5=8F=A3=E5=8A=A0?= =?UTF-8?q?=E5=AF=86=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Shuttle/Dto/ContainerTaskResponse.cs | 7 +++++- .../Shuttle/Dto/ContainerTaskResqust.cs | 11 +++++++++- .../ApiClient/Shuttle/ShuttleWebApiAction.cs | 15 +++++++++---- .../ContainerController.cs | 2 +- .../Service/WcsService/WmsTaskService.cs | 2 +- .../CirculationJob/Stacker/ExecuteWmsTask.cs | 22 ++++++++++++++----- WcsMain/Constant/ApplicationBaseConfig.cs | 3 +++ .../ExtendMethod/StringExtendMethod.cs | 21 ++++++++++++++++++ WcsMain/DataBase/TableEntity/AppLiftInfo.cs | 8 +++++++ .../PublishProfiles/FolderProfile2.pubxml | 2 +- .../FolderProfile2.pubxml.user | 4 ++-- WcsMain/WcsMain.csproj.user | 2 +- WcsMain/appsettings.json | 6 ++--- 13 files changed, 84 insertions(+), 21 deletions(-) diff --git a/WcsMain/ApiClient/Shuttle/Dto/ContainerTaskResponse.cs b/WcsMain/ApiClient/Shuttle/Dto/ContainerTaskResponse.cs index 1318222..9884dca 100644 --- a/WcsMain/ApiClient/Shuttle/Dto/ContainerTaskResponse.cs +++ b/WcsMain/ApiClient/Shuttle/Dto/ContainerTaskResponse.cs @@ -1,4 +1,6 @@ -namespace WcsMain.ApiClient.Shuttle.Dto; +using Newtonsoft.Json; + +namespace WcsMain.ApiClient.Shuttle.Dto; /// /// 四向车库的响应 @@ -8,16 +10,19 @@ public class ContainerTaskResponse /// /// 响应码 /// + [JsonProperty("code")] public string? Code { get; set; } /// /// WMS 任务号 /// + [JsonProperty("wmstaskid")] public string? WmsTaskId { get; set; } /// /// 信息 /// + [JsonProperty("message")] public string? Message { get; set; } diff --git a/WcsMain/ApiClient/Shuttle/Dto/ContainerTaskResqust.cs b/WcsMain/ApiClient/Shuttle/Dto/ContainerTaskResqust.cs index 9e6515a..0e611a3 100644 --- a/WcsMain/ApiClient/Shuttle/Dto/ContainerTaskResqust.cs +++ b/WcsMain/ApiClient/Shuttle/Dto/ContainerTaskResqust.cs @@ -1,4 +1,6 @@ -namespace WcsMain.ApiClient.Shuttle.Dto; +using Newtonsoft.Json; + +namespace WcsMain.ApiClient.Shuttle.Dto; /// /// 四向车库出库移库请求 @@ -8,31 +10,37 @@ public class ContainerTaskResqust /// /// 请求ID /// + [JsonProperty("requestid")] public string? RequestId { get; set; } /// /// 密钥 /// + [JsonProperty("key")] public string? Key { get; set; } /// /// WMS 任务号 /// + [JsonProperty("wmstaskid")] public string? WmsTaskId { get; set; } /// /// 载具号 /// + [JsonProperty("palletno")] public string? PalletNo { get; set; } /// /// 起始位置 /// + [JsonProperty("fromcellno")] public string? FromCellNo { get; set; } /// /// 目标位置 /// + [JsonProperty("tocellno")] public string? ToCell { get; set; } /// @@ -42,6 +50,7 @@ public class ContainerTaskResqust /// 2 - 出库 /// 3 - 移库 /// + [JsonProperty("tasktype")] public string? TaskType { get; set; } diff --git a/WcsMain/ApiClient/Shuttle/ShuttleWebApiAction.cs b/WcsMain/ApiClient/Shuttle/ShuttleWebApiAction.cs index c010da6..8b2ead1 100644 --- a/WcsMain/ApiClient/Shuttle/ShuttleWebApiAction.cs +++ b/WcsMain/ApiClient/Shuttle/ShuttleWebApiAction.cs @@ -3,6 +3,11 @@ using WcsMain.DataBase.TableEntity; using WcsMain.Constant.WcsAttribute.AutoFacAttribute; using WcsMain.ApiClient.Shuttle.Dto; using WcsMain.Constant.ExtendMethod; +using System.Security.Cryptography; +using EncryptTool; +using WcsMain.Constant; +using System.Text; +using WcsMain.ExtendMethod; namespace WcsMain.ApiClient.Shuttle; @@ -19,10 +24,11 @@ public class ShuttleWebApiAction(ShuttleBaseWebApi webApiPost) /// public string ExecuteMoveTask(AppWmsTask wmsTask) { + string requestId = Guid.NewGuid().ToString(); ContainerTaskResqust containerTaskResqust = new() { - RequestId = Guid.NewGuid().ToString(), - Key = "", + RequestId = requestId, + Key = (requestId + ApplicationBaseConfig.SHUTTLE_PWD).MD5Encrypt32(), WmsTaskId = wmsTask.TaskId, FromCellNo = wmsTask.Origin, TaskType = "3", @@ -52,10 +58,11 @@ public class ShuttleWebApiAction(ShuttleBaseWebApi webApiPost) /// public string ExecuteOutTask(string? taskId, string? origin, string? destination, string? vehicleNo) { + string requestId = Guid.NewGuid().ToString(); ContainerTaskResqust containerTaskResqust = new() { - RequestId = Guid.NewGuid().ToString(), - Key = "", + RequestId = requestId, + Key = (requestId + ApplicationBaseConfig.SHUTTLE_PWD).MD5Encrypt32(), WmsTaskId = taskId, FromCellNo = origin, TaskType = "2", diff --git a/WcsMain/ApiServe/Controllers/ContainerController/ContainerController.cs b/WcsMain/ApiServe/Controllers/ContainerController/ContainerController.cs index a529193..b0f221e 100644 --- a/WcsMain/ApiServe/Controllers/ContainerController/ContainerController.cs +++ b/WcsMain/ApiServe/Controllers/ContainerController/ContainerController.cs @@ -9,7 +9,7 @@ namespace WcsMain.ApiServe.Controllers.ContainerController; /// /// 提供给四向车的API接口 /// -[Route("api/container")] +[Route("api/shuttle")] [ApiController] [ServiceFilter] public class ContainerController(ContainerService containerService) : ControllerBase diff --git a/WcsMain/ApiServe/Service/WcsService/WmsTaskService.cs b/WcsMain/ApiServe/Service/WcsService/WmsTaskService.cs index b0a53ab..16b5163 100644 --- a/WcsMain/ApiServe/Service/WcsService/WmsTaskService.cs +++ b/WcsMain/ApiServe/Service/WcsService/WmsTaskService.cs @@ -53,7 +53,7 @@ public class WmsTaskService(WmsTaskAction wmsTaskAction, AppWmsTaskDao wmsTaskDa /// public WcsApiResponse GetStackerTask(SetWmsTask request) { - request.TaskId = dataBaseData.GetNewUUID(); + request.TaskId = dataBaseData.GetNewUUID2(); bool checkData = CheckData.CheckDataRules(request); if (!checkData) { diff --git a/WcsMain/CirculationJob/Stacker/ExecuteWmsTask.cs b/WcsMain/CirculationJob/Stacker/ExecuteWmsTask.cs index 5c5c8be..a926a57 100644 --- a/WcsMain/CirculationJob/Stacker/ExecuteWmsTask.cs +++ b/WcsMain/CirculationJob/Stacker/ExecuteWmsTask.cs @@ -114,10 +114,10 @@ public class ExecuteWmsTask(AppWmsTaskDao wmsTaskDao, StackerConveyOperation sta string? errText = containerAction.ExecuteOutTask(wmsTask.TaskId, wmsTask.Origin, midPoint, wmsTask.VehicleNo); if (!string.IsNullOrEmpty(errText)) { - ConsoleLog.Warning($"【警告】入库请求四向车搬运失败,任务号:{wmsTask.TaskId},异常信息:{errText}"); + ConsoleLog.Warning($"【警告】出库请求四向车搬运失败,任务号:{wmsTask.TaskId},异常信息:{errText}"); return; } - ConsoleLog.Success($"入库搬运请求四向车成功,任务号:{wmsTask.TaskId}"); + ConsoleLog.Success($"出库搬运请求四向车成功,任务号:{wmsTask.TaskId}"); /* 更新任务状态为前往中间点,更新中间点 */ var updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, MidPoint = midPoint, TaskStatus = (int)WmsTaskStatusEnum.toMid, ModifyTime = DateTime.Now }); ConsoleLog.Success($"更新任务状态结果:{(updateResult > 0 ? "成功" : "失败")},任务号:{wmsTask.TaskId}"); @@ -200,14 +200,19 @@ public class ExecuteWmsTask(AppWmsTaskDao wmsTaskDao, StackerConveyOperation sta } if (model != 1 || allowAction != (short)TrueFalseEnum.TRUE || errCode != 0) continue; /* 检验任务是否是第一层,若是不是第一层不能分配第一层出入口 */ - if (destination.StartsWith("1")) // [TODO] + if (destination.EndsWith("1")) { if (liftInfo.LiftMode != 2) continue; } /* 获取这个站台的任务.没有占用任务即可重新使用 */ List? tasks = wmsTaskDao.Select(new() { MidPoint = liftInfo.Tag, TaskStatus = (int)WmsTaskStatusEnum.toMid }); if (tasks == default || tasks.Count > 0) continue; - return liftInfo.Tag; + string location = ""; + if (!string.IsNullOrEmpty(liftInfo.Tag)) + { + location = liftInfo.Tag.Split(',')[1]; + } + return location; } return default; } @@ -233,14 +238,19 @@ public class ExecuteWmsTask(AppWmsTaskDao wmsTaskDao, StackerConveyOperation sta } if (model != 2 || allowAction != (short)TrueFalseEnum.TRUE || errCode != 0) continue; /* 检验任务是否是第一层,若是不是第一层不能分配第一层出入口 */ - if (origin.StartsWith("1")) // [TODO] + if (!origin.EndsWith("1")) { if (liftInfo.LiftMode != 2) continue; } /* 获取这个站台的任务.并计数 */ List? tasks = wmsTaskDao.Select(new() { MidPoint = liftInfo.Tag, TaskStatus = (int)WmsTaskStatusEnum.toMid }); if (tasks == default) continue; - liftTaskCount.TryAdd(liftInfo.Tag ?? "", tasks.Count); + string location = ""; + if(!string.IsNullOrEmpty(liftInfo.Tag)) + { + location = liftInfo.Tag.Split(',')[0]; + } + liftTaskCount.TryAdd(location, tasks.Count); } var sortLiftInfos = liftTaskCount.OrderBy(o => o.Value).ToDictionary(); if (sortLiftInfos.Count > 0) return sortLiftInfos.First().Key; diff --git a/WcsMain/Constant/ApplicationBaseConfig.cs b/WcsMain/Constant/ApplicationBaseConfig.cs index 30fbe02..aa09d3d 100644 --- a/WcsMain/Constant/ApplicationBaseConfig.cs +++ b/WcsMain/Constant/ApplicationBaseConfig.cs @@ -11,4 +11,7 @@ public class ApplicationBaseConfig /// AGV /// public const string APP_SECRET = ""; + + + public const string SHUTTLE_PWD = "safer*123"; } diff --git a/WcsMain/Constant/ExtendMethod/StringExtendMethod.cs b/WcsMain/Constant/ExtendMethod/StringExtendMethod.cs index f1a69eb..e476a04 100644 --- a/WcsMain/Constant/ExtendMethod/StringExtendMethod.cs +++ b/WcsMain/Constant/ExtendMethod/StringExtendMethod.cs @@ -1,4 +1,6 @@ using HslCommunication; +using System.Security.Cryptography; +using System.Text; using System.Text.RegularExpressions; namespace WcsMain.ExtendMethod; @@ -97,4 +99,23 @@ public static partial class StringExtendMethod [GeneratedRegex("^\\d+$")] private static partial Regex IsNumberRegex(); + + + /// + /// 32位加密 + /// + /// + /// + public static string MD5Encrypt32(this string password) + { + string cl = password; + string pwd = ""; + //MD5 md5 = MD5.Create(); //实例化一个md5对像 + byte[] s = MD5.HashData(Encoding.UTF8.GetBytes(cl)); + for (int i = 0; i < s.Length; i++) + { + pwd = pwd + s[i].ToString("X2"); + } + return pwd; + } } \ No newline at end of file diff --git a/WcsMain/DataBase/TableEntity/AppLiftInfo.cs b/WcsMain/DataBase/TableEntity/AppLiftInfo.cs index 3700ec0..0d80348 100644 --- a/WcsMain/DataBase/TableEntity/AppLiftInfo.cs +++ b/WcsMain/DataBase/TableEntity/AppLiftInfo.cs @@ -3,41 +3,49 @@ /// /// 提升机信息 /// +[SqlSugar.SugarTable("tbl_app_lift_info")] public class AppLiftInfo { /// /// 提升机ID /// + [SqlSugar.SugarColumn(ColumnName = "lift_id", IsPrimaryKey = true)] public string? LiftId { get; set; } /// /// 提升机名称 /// + [SqlSugar.SugarColumn(ColumnName = "lift_name")] public string? LiftName { get; set; } /// /// 提升机类型 /// + [SqlSugar.SugarColumn(ColumnName = "lift_type")] public string? LiftType { get; set; } /// /// 标记 /// + [SqlSugar.SugarColumn(ColumnName = "tag")] public string? Tag { get; set; } /// /// 状态 /// + [SqlSugar.SugarColumn(ColumnName = "status")] public int? Status { get; set; } /// /// 提升机模式 /// + [SqlSugar.SugarColumn(ColumnName = "lift_mode")] public int? LiftMode { get; set; } /// /// 备注 /// + [SqlSugar.SugarColumn(ColumnName = "remark")] public string? Remark { get; set; } diff --git a/WcsMain/Properties/PublishProfiles/FolderProfile2.pubxml b/WcsMain/Properties/PublishProfiles/FolderProfile2.pubxml index 8e9fed3..e3bd2c3 100644 --- a/WcsMain/Properties/PublishProfiles/FolderProfile2.pubxml +++ b/WcsMain/Properties/PublishProfiles/FolderProfile2.pubxml @@ -15,7 +15,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. <_TargetId>Folder net8.0 - win-x86 + win-x64 true ed59f010-b3e5-4e19-be65-18053645dfc5 true diff --git a/WcsMain/Properties/PublishProfiles/FolderProfile2.pubxml.user b/WcsMain/Properties/PublishProfiles/FolderProfile2.pubxml.user index 4a31a1c..9cfcf3e 100644 --- a/WcsMain/Properties/PublishProfiles/FolderProfile2.pubxml.user +++ b/WcsMain/Properties/PublishProfiles/FolderProfile2.pubxml.user @@ -4,8 +4,8 @@ https://go.microsoft.com/fwlink/?LinkID=208121. --> - <_PublishTargetUrl>F:\AProject\A菲达宝开项目\(2023-11)徐州工厂立库\应用程序\wcs_serve_cs\wcs_serve_cs\bin\Release\net8.0\publish\ - True|2023-12-21T07:04:28.6290873Z;True|2023-12-21T14:59:03.4454135+08:00;True|2023-12-21T14:51:08.6690406+08:00;True|2023-12-21T14:26:42.6801144+08:00;False|2023-12-21T14:26:14.3256943+08:00;True|2023-12-21T14:13:42.5511801+08:00;True|2023-12-21T13:56:38.5871005+08:00;True|2023-12-19T12:19:57.9900187+08:00;True|2023-12-19T11:53:33.6930379+08:00;True|2023-12-17T12:51:32.6510827+08:00;False|2023-12-17T12:49:32.9022541+08:00; + <_PublishTargetUrl>F:\A开发项目\A菲达宝开项目\2024-08_上汽试制仓\应用程序\WcsService\WcsMain\bin\Release\net8.0\publish\ + True|2024-11-15T09:47:10.4630939Z||;True|2024-11-15T17:42:25.6985733+08:00||;True|2024-11-15T17:39:43.9409305+08:00||;True|2024-11-15T17:26:18.2886475+08:00||;True|2024-11-15T17:23:05.3112513+08:00||;True|2024-11-15T17:16:40.2960771+08:00||;True|2024-11-15T17:14:12.3416383+08:00||;True|2024-11-15T17:09:43.2642034+08:00||;True|2024-11-15T17:05:04.4694932+08:00||;False|2024-11-15T17:04:34.2335564+08:00||;False|2024-11-15T17:04:12.5281280+08:00||;True|2024-11-15T17:01:49.4325408+08:00||;False|2024-11-15T17:01:29.1872712+08:00||;True|2024-11-15T16:00:18.8617729+08:00||;True|2024-11-15T15:56:13.9285180+08:00||;True|2024-11-15T15:50:53.6121456+08:00||;True|2024-11-15T15:17:41.0508047+08:00||;True|2024-11-15T13:50:06.8021767+08:00||;True|2024-11-15T13:17:48.2695650+08:00||;True|2023-12-21T15:04:28.6290873+08:00||;True|2023-12-21T14:59:03.4454135+08:00||;True|2023-12-21T14:51:08.6690406+08:00||;True|2023-12-21T14:26:42.6801144+08:00||;False|2023-12-21T14:26:14.3256943+08:00||;True|2023-12-21T14:13:42.5511801+08:00||;True|2023-12-21T13:56:38.5871005+08:00||;True|2023-12-19T12:19:57.9900187+08:00||;True|2023-12-19T11:53:33.6930379+08:00||;True|2023-12-17T12:51:32.6510827+08:00||;False|2023-12-17T12:49:32.9022541+08:00||; \ No newline at end of file diff --git a/WcsMain/WcsMain.csproj.user b/WcsMain/WcsMain.csproj.user index c577a93..bc0a676 100644 --- a/WcsMain/WcsMain.csproj.user +++ b/WcsMain/WcsMain.csproj.user @@ -1,7 +1,7 @@  - F:\A开发项目\A菲达宝开项目\2024-05_苏州卡特\应用程序\WcsService\WcsMain\Properties\PublishProfiles\FolderProfile.pubxml + F:\A开发项目\A菲达宝开项目\2024-08_上汽试制仓\应用程序\WcsService\WcsMain\Properties\PublishProfiles\FolderProfile2.pubxml ApiControllerEmptyScaffolder root/Common/Api diff --git a/WcsMain/appsettings.json b/WcsMain/appsettings.json index 2ed9e24..5889277 100644 --- a/WcsMain/appsettings.json +++ b/WcsMain/appsettings.json @@ -7,14 +7,14 @@ }, "AllowedHosts": "*", "Settings": { - "DBMysql": "server=10.90.36.71;port=3306;user=developer;password=developer;database=wcs_kate_suzhou;", - "DBMysqlLocal": "server=192.168.234.128;port=3306;user=developer;password=developer;database=app_wcs_shangqi;", + "DBMysql": "server=192.168.234.128;port=3306;user=developer;password=developer;database=wcs_kate_suzhou;", + "DBMysqlLocal": "server=172.168.61.200;port=3306;user=developer;password=developer;database=app_wcs_shangqi;", "DBMssql": "Data Source=192.168.142.131;Initial Catalog=wcs;User Id=sa;Password=Sa123;", "DBMssqlLocal": "Data Source=192.168.142.131;Initial Catalog=wcs_stacker;User Id=sa;Password=Sa123;", "ApplicationConfig": { - "ApiOnly": true, + "ApiOnly": false, "Language": "zh-CN" }, "UseUrls": [ "http://*:18990" ]