From 54f8b5a72ef7c8b67369028eb4b727f8911a536f Mon Sep 17 00:00:00 2001 From: WenJY Date: Sat, 20 Jun 2026 21:30:23 +0800 Subject: [PATCH] =?UTF-8?q?change=20-=20=E6=B7=BB=E5=8A=A0=E6=8F=90?= =?UTF-8?q?=E5=8D=87=E6=9C=BA=E6=89=8B=E5=8A=A8=E4=BB=BB=E5=8A=A1=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sln.Wcs.Business/TaskCreateService.cs | 14 +++++++++----- Sln.Wcs.HoistDispatcher/HoistDispatchHub.cs | 19 ++++++++++--------- Sln.Wcs.HoistServer/Program.cs | 2 +- Sln.Wcs.Model/Domain/LiveTaskDetail.cs | 8 ++++++++ Sln.Wcs.Model/Domain/LiveTaskQueue.cs | 8 ++++++++ .../service/Impl/LiveTaskQueueServiceImpl.cs | 4 +++- Sln.Wcs.UI/App.axaml.cs | 1 + Sln.Wcs.UI/ViewModels/NavigationViewModel.cs | 1 + Sln.Wcs/HoistDispatchHubTest.cs | 4 ++-- Sln.Wcs/Program.cs | 5 ++++- 10 files changed, 47 insertions(+), 19 deletions(-) diff --git a/Sln.Wcs.Business/TaskCreateService.cs b/Sln.Wcs.Business/TaskCreateService.cs index 7db7c1a..e92d1c2 100644 --- a/Sln.Wcs.Business/TaskCreateService.cs +++ b/Sln.Wcs.Business/TaskCreateService.cs @@ -85,6 +85,8 @@ public class TaskCreateService ? HoistPoint(endBuilding, endFloor) : PosCode(endBuilding, endFloor, endLocation); + var executionMode = manualPutIn ? 1 : 0; + _logger.Info($"创建任务 - {startPoint} ({startBuilding}#_{startFloor}F) → {endPoint} ({endBuilding}#_{endFloor}F)"); // Step 1: BFS 找最短路径(节点序列) @@ -109,7 +111,7 @@ public class TaskCreateService { // 13↔14: 廊桥交接 — 13# AGV 送到廊桥,等待 14# AGV details.Add(NewDetail(taskCode, palletBarcode, materialCode, - taskType, taskCategory, seq++, currentPos, "BRIDGE_13_14", deviceType: 1)); + taskType, taskCategory, seq++, currentPos, "BRIDGE_13_14", deviceType: 1, executionMode)); currentPos = "BRIDGE_13_14"; } // 14↔15: 14# AGV 可直接驶入 15#,不生成过渡段,由下一步直达 @@ -123,10 +125,10 @@ public class TaskCreateService if (currentPos != hoistEntry) { details.Add(NewDetail(taskCode, palletBarcode, materialCode, - taskType, taskCategory, seq++, currentPos, hoistEntry, deviceType: 1)); + taskType, taskCategory, seq++, currentPos, hoistEntry, deviceType: 1, executionMode)); } details.Add(NewDetail(taskCode, palletBarcode, materialCode, - taskType, taskCategory, seq++, hoistEntry, hoistExit, deviceType: 2)); + taskType, taskCategory, seq++, hoistEntry, hoistExit, deviceType: 2, executionMode)); currentPos = hoistExit; } @@ -136,7 +138,7 @@ public class TaskCreateService if (details.Count == 0 || currentPos != endPoint) { details.Add(NewDetail(taskCode, palletBarcode, materialCode, - taskType, taskCategory, seq, currentPos, endPoint, deviceType: 1)); + taskType, taskCategory, seq, currentPos, endPoint, deviceType: 1, executionMode)); } _logger.Info($"生成 {details.Count} 条明细"); @@ -153,6 +155,7 @@ public class TaskCreateService materialCode = materialCode, taskSteps = details.Count, taskDetails = details, + executionMode = executionMode, isFlag = 1 }; } @@ -220,7 +223,7 @@ public class TaskCreateService private static LiveTaskDetail NewDetail( string taskCode, string palletBarcode, string materialCode, int taskType, int taskCategory, int seq, - string startPoint, string endPoint, int deviceType) => + string startPoint, string endPoint, int deviceType, int executionMode) => new() { taskCode = taskCode, @@ -230,6 +233,7 @@ public class TaskCreateService startPoint = startPoint, endPoint = endPoint, deviceType = deviceType, + executionMode = executionMode, taskType = taskType, taskCategory = taskCategory, taskStatus = 1, diff --git a/Sln.Wcs.HoistDispatcher/HoistDispatchHub.cs b/Sln.Wcs.HoistDispatcher/HoistDispatchHub.cs index 22970b9..98d3cfb 100644 --- a/Sln.Wcs.HoistDispatcher/HoistDispatchHub.cs +++ b/Sln.Wcs.HoistDispatcher/HoistDispatchHub.cs @@ -56,15 +56,16 @@ public class HoistDispatchHub public void ReceivePallet(LiveTaskDetail taskDetail,BaseDeviceInfo deviceInfo) { //读取托盘RFID信息 - string palletStr = "202606030001"; - if (taskDetail.palletBarcode == palletStr) - { - this.TaskRun(deviceInfo); - } - else - { - _logger.Info($"托盘条码与计划不符"); - } + // string palletStr = "202606030001"; + // if (taskDetail.palletBarcode == palletStr) + // { + // this.TaskRun(deviceInfo); + // } + // else + // { + // _logger.Info($"托盘条码与计划不符"); + // } + this.TaskRun(deviceInfo); } /// diff --git a/Sln.Wcs.HoistServer/Program.cs b/Sln.Wcs.HoistServer/Program.cs index 22f074b..b2b21b8 100644 --- a/Sln.Wcs.HoistServer/Program.cs +++ b/Sln.Wcs.HoistServer/Program.cs @@ -144,7 +144,7 @@ api.MapPost("/task/dispatch", (TaskDispatchRequest req, IBaseDeviceInfoService d api.MapGet("/hoist/free", async (string hostCode) => { var d = await hub.GetFreeHoistAsync(hostCode); - return Results.Ok(new { found = d != null, d?.deviceCode, d?.deviceName }); + return Results.Ok(new { found = d != null, d?.deviceCode, d?.deviceName, d?.hostCode, d?.deviceSerialNo }); }); api.MapGet("/health", () => Results.Ok(new { time = DateTime.Now, status = "ok" })); diff --git a/Sln.Wcs.Model/Domain/LiveTaskDetail.cs b/Sln.Wcs.Model/Domain/LiveTaskDetail.cs index b9f3731..1570882 100644 --- a/Sln.Wcs.Model/Domain/LiveTaskDetail.cs +++ b/Sln.Wcs.Model/Domain/LiveTaskDetail.cs @@ -153,6 +153,14 @@ public class LiveTaskDetail [SugarColumn(ColumnName = "is_flag")] public int? isFlag { get; set; } + /// + /// Desc:执行方式:0-自动执行;1-手动执行 + /// Default:0 + /// Nullable:True + /// + [SugarColumn(ColumnName = "execution_mode")] + public int? executionMode { get; set; } + /// /// Desc:备注 /// Default: diff --git a/Sln.Wcs.Model/Domain/LiveTaskQueue.cs b/Sln.Wcs.Model/Domain/LiveTaskQueue.cs index e22b6a0..20d3f87 100644 --- a/Sln.Wcs.Model/Domain/LiveTaskQueue.cs +++ b/Sln.Wcs.Model/Domain/LiveTaskQueue.cs @@ -145,6 +145,14 @@ public class LiveTaskQueue [SugarColumn(ColumnName = "is_flag")] public int? isFlag { get; set; } + /// + /// Desc:执行方式:0-自动执行;1-手动执行 + /// Default:0 + /// Nullable:True + /// + [SugarColumn(ColumnName = "execution_mode")] + public int? executionMode { get; set; } + /// /// Desc:备注 /// Default: diff --git a/Sln.Wcs.Repository/service/Impl/LiveTaskQueueServiceImpl.cs b/Sln.Wcs.Repository/service/Impl/LiveTaskQueueServiceImpl.cs index 6d4ebf7..0d9c393 100644 --- a/Sln.Wcs.Repository/service/Impl/LiveTaskQueueServiceImpl.cs +++ b/Sln.Wcs.Repository/service/Impl/LiveTaskQueueServiceImpl.cs @@ -61,7 +61,7 @@ public class LiveTaskQueueServiceImpl: BaseServiceImpl, ILiveTask public List getLiveTaskQueues(Expression> exp = null) { try - { + { var res = _rep.Context.Queryable() .Includes(x => x.taskDetails) // 先加载所有 .Where(exp) @@ -82,6 +82,8 @@ public class LiveTaskQueueServiceImpl: BaseServiceImpl, ILiveTask taskSteps = task.taskSteps, isFlag = task.isFlag, remark = task.remark, + taskStatus = task.taskStatus, + executionMode = task.executionMode, taskDetails = task.taskDetails.AsQueryable() //.Where(detailWhere) // 应用子表查询条件 .Where(p => p.isFlag == 1) diff --git a/Sln.Wcs.UI/App.axaml.cs b/Sln.Wcs.UI/App.axaml.cs index 08b5e1e..bd7062c 100644 --- a/Sln.Wcs.UI/App.axaml.cs +++ b/Sln.Wcs.UI/App.axaml.cs @@ -96,6 +96,7 @@ public partial class App : Application services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); // 引擎进程管理 diff --git a/Sln.Wcs.UI/ViewModels/NavigationViewModel.cs b/Sln.Wcs.UI/ViewModels/NavigationViewModel.cs index d9efab9..c9b1b70 100644 --- a/Sln.Wcs.UI/ViewModels/NavigationViewModel.cs +++ b/Sln.Wcs.UI/ViewModels/NavigationViewModel.cs @@ -60,6 +60,7 @@ public partial class NavigationViewModel : ObservableObject TopMenuItems.Add(new TopMenuItem("任务管理", new List { new("创建任务", () => NavigateTo("任务管理")), + new("手动执行", () => NavigateTo("任务管理")), new("任务队列", () => NavigateTo("任务管理")), new("任务明细", () => NavigateTo("任务管理")), })); diff --git a/Sln.Wcs/HoistDispatchHubTest.cs b/Sln.Wcs/HoistDispatchHubTest.cs index c6554e9..a4cd9be 100644 --- a/Sln.Wcs/HoistDispatchHubTest.cs +++ b/Sln.Wcs/HoistDispatchHubTest.cs @@ -44,8 +44,8 @@ public class HoistDispatchHubTest _hub.TaskDispatch(info,new LiveTaskDetail() { deviceType = 2, - startPoint = "15#_L1_HOIST", - endPoint = "15#_L2_HOIST", + startPoint = "15#_L2_HOIST", + endPoint = "15#_L1_HOIST", materialBarcode = "202606180001", taskCode = "202606180001", taskType = 1 diff --git a/Sln.Wcs/Program.cs b/Sln.Wcs/Program.cs index bb0b555..78b4eeb 100644 --- a/Sln.Wcs/Program.cs +++ b/Sln.Wcs/Program.cs @@ -62,6 +62,9 @@ namespace Sln.Wcs handler.ServerCertificateCustomValidationCallback = (_, _, _, _) => true; }); + var service = serviceProvider.GetService(); + service.Run(); + // var service = serviceProvider.GetService(); // var res = service.GbTaskSubmit(new GbTaskSubmitDto() // { @@ -105,7 +108,7 @@ namespace Sln.Wcs services.AddSingleton(typeof(SerilogHelper)); - services.AddSingleton(typeof(MaterialInStoreTest)); + services.AddSingleton(typeof(HoistDispatchHubTest)); services.AddSqlSugarSetup();