1、修复提升机数据查询失败的问题;

2、修复四向车接口加密问题
This commit is contained in:
葛林强 2024-11-16 09:25:44 +08:00
parent 21ea775325
commit 4f8bb3316a
13 changed files with 84 additions and 21 deletions

View File

@ -1,4 +1,6 @@
namespace WcsMain.ApiClient.Shuttle.Dto;
using Newtonsoft.Json;
namespace WcsMain.ApiClient.Shuttle.Dto;
/// <summary>
/// 四向车库的响应
@ -8,16 +10,19 @@ public class ContainerTaskResponse
/// <summary>
/// 响应码
/// </summary>
[JsonProperty("code")]
public string? Code { get; set; }
/// <summary>
/// WMS 任务号
/// </summary>
[JsonProperty("wmstaskid")]
public string? WmsTaskId { get; set; }
/// <summary>
/// 信息
/// </summary>
[JsonProperty("message")]
public string? Message { get; set; }

View File

@ -1,4 +1,6 @@
namespace WcsMain.ApiClient.Shuttle.Dto;
using Newtonsoft.Json;
namespace WcsMain.ApiClient.Shuttle.Dto;
/// <summary>
/// 四向车库出库移库请求
@ -8,31 +10,37 @@ public class ContainerTaskResqust
/// <summary>
/// 请求ID
/// </summary>
[JsonProperty("requestid")]
public string? RequestId { get; set; }
/// <summary>
/// 密钥
/// </summary>
[JsonProperty("key")]
public string? Key { get; set; }
/// <summary>
/// WMS 任务号
/// </summary>
[JsonProperty("wmstaskid")]
public string? WmsTaskId { get; set; }
/// <summary>
/// 载具号
/// </summary>
[JsonProperty("palletno")]
public string? PalletNo { get; set; }
/// <summary>
/// 起始位置
/// </summary>
[JsonProperty("fromcellno")]
public string? FromCellNo { get; set; }
/// <summary>
/// 目标位置
/// </summary>
[JsonProperty("tocellno")]
public string? ToCell { get; set; }
/// <summary>
@ -42,6 +50,7 @@ public class ContainerTaskResqust
/// 2 - 出库
/// 3 - 移库
/// </remarks>
[JsonProperty("tasktype")]
public string? TaskType { get; set; }

View File

@ -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)
/// <returns></returns>
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)
/// <returns></returns>
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",

View File

@ -9,7 +9,7 @@ namespace WcsMain.ApiServe.Controllers.ContainerController;
/// <summary>
/// 提供给四向车的API接口
/// </summary>
[Route("api/container")]
[Route("api/shuttle")]
[ApiController]
[ServiceFilter<ResponseFilterAttribute>]
public class ContainerController(ContainerService containerService) : ControllerBase

View File

@ -53,7 +53,7 @@ public class WmsTaskService(WmsTaskAction wmsTaskAction, AppWmsTaskDao wmsTaskDa
/// <returns></returns>
public WcsApiResponse GetStackerTask(SetWmsTask request)
{
request.TaskId = dataBaseData.GetNewUUID();
request.TaskId = dataBaseData.GetNewUUID2();
bool checkData = CheckData.CheckDataRules(request);
if (!checkData)
{

View File

@ -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<AppWmsTask>? 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<AppWmsTask>? 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;

View File

@ -11,4 +11,7 @@ public class ApplicationBaseConfig
/// AGV
/// </summary>
public const string APP_SECRET = "";
public const string SHUTTLE_PWD = "safer*123";
}

View File

@ -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();
/// <summary>
/// 32位加密
/// </summary>
/// <param name="password"></param>
/// <returns></returns>
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;
}
}

View File

@ -3,41 +3,49 @@
/// <summary>
/// 提升机信息
/// </summary>
[SqlSugar.SugarTable("tbl_app_lift_info")]
public class AppLiftInfo
{
/// <summary>
/// 提升机ID
/// </summary>
[SqlSugar.SugarColumn(ColumnName = "lift_id", IsPrimaryKey = true)]
public string? LiftId { get; set; }
/// <summary>
/// 提升机名称
/// </summary>
[SqlSugar.SugarColumn(ColumnName = "lift_name")]
public string? LiftName { get; set; }
/// <summary>
/// 提升机类型
/// </summary>
[SqlSugar.SugarColumn(ColumnName = "lift_type")]
public string? LiftType { get; set; }
/// <summary>
/// 标记
/// </summary>
[SqlSugar.SugarColumn(ColumnName = "tag")]
public string? Tag { get; set; }
/// <summary>
/// 状态
/// </summary>
[SqlSugar.SugarColumn(ColumnName = "status")]
public int? Status { get; set; }
/// <summary>
/// 提升机模式
/// </summary>
[SqlSugar.SugarColumn(ColumnName = "lift_mode")]
public int? LiftMode { get; set; }
/// <summary>
/// 备注
/// </summary>
[SqlSugar.SugarColumn(ColumnName = "remark")]
public string? Remark { get; set; }

View File

@ -15,7 +15,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<_TargetId>Folder</_TargetId>
<SiteUrlToLaunchAfterPublish />
<TargetFramework>net8.0</TargetFramework>
<RuntimeIdentifier>win-x86</RuntimeIdentifier>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<PublishSingleFile>true</PublishSingleFile>
<ProjectGuid>ed59f010-b3e5-4e19-be65-18053645dfc5</ProjectGuid>
<SelfContained>true</SelfContained>

View File

@ -4,8 +4,8 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project>
<PropertyGroup>
<_PublishTargetUrl>F:\AProject\A菲达宝开项目\(2023-11)徐州工厂立库\应用程序\wcs_serve_cs\wcs_serve_cs\bin\Release\net8.0\publish\</_PublishTargetUrl>
<History>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;</History>
<_PublishTargetUrl>F:\A开发项目\A菲达宝开项目\2024-08_上汽试制仓\应用程序\WcsService\WcsMain\bin\Release\net8.0\publish\</_PublishTargetUrl>
<History>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||;</History>
<LastFailureDetails />
</PropertyGroup>
</Project>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<NameOfLastUsedPublishProfile>F:\A开发项目\A菲达宝开项目\2024-05_苏州卡特\应用程序\WcsService\WcsMain\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
<NameOfLastUsedPublishProfile>F:\A开发项目\A菲达宝开项目\2024-08_上汽试制仓\应用程序\WcsService\WcsMain\Properties\PublishProfiles\FolderProfile2.pubxml</NameOfLastUsedPublishProfile>
<Controller_SelectedScaffolderID>ApiControllerEmptyScaffolder</Controller_SelectedScaffolderID>
<Controller_SelectedScaffolderCategoryPath>root/Common/Api</Controller_SelectedScaffolderCategoryPath>
</PropertyGroup>

View File

@ -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" ]