diff --git a/WcsMain/ApiServe/Controllers/WcsController/WmsTaskController.cs b/WcsMain/ApiServe/Controllers/WcsController/WmsTaskController.cs
index 916a064..e17cf1c 100644
--- a/WcsMain/ApiServe/Controllers/WcsController/WmsTaskController.cs
+++ b/WcsMain/ApiServe/Controllers/WcsController/WmsTaskController.cs
@@ -38,11 +38,20 @@ public class WmsTaskController(WmsTaskService wmsTaskService) : ControllerBase
public WcsApiResponse GetStackerTask([FromBody] SetWmsTask request) => wmsTaskService.GetStackerTask(request);
///
- /// Wms向Wcs请求修改任务状态
+ /// Wcs请求修改任务状态
///
///
///
[HttpPost("updateWmsTaskStatus")]
public WcsApiResponse UpdateStackerTaskStatus([FromBody] UpdateStackerTaskStatusRequest request) => wmsTaskService.UpdateStackerTaskStatus(request);
+
+ ///
+ ///Wcs请求修改任务状态
+ ///
+ ///
+ ///
+ [HttpPost("modifyWmsTaskStatus")]
+ public WcsApiResponse UpdateWmsTaskStatus([FromBody] UpdateWmsTaskStatusRequest request) => wmsTaskService.UpdateWmsTaskStatus(request);
+
}
\ No newline at end of file
diff --git a/WcsMain/ApiServe/Dto/WcsDto/WmsTask/UpdateWmsTaskStatusRequest.cs b/WcsMain/ApiServe/Dto/WcsDto/WmsTask/UpdateWmsTaskStatusRequest.cs
new file mode 100644
index 0000000..7187e9f
--- /dev/null
+++ b/WcsMain/ApiServe/Dto/WcsDto/WmsTask/UpdateWmsTaskStatusRequest.cs
@@ -0,0 +1,19 @@
+using System.Text.Json.Serialization;
+
+namespace WcsMain.ApiServe.Dto.WcsDto.WmsTask;
+
+public class UpdateWmsTaskStatusRequest
+{
+ ///
+ /// 任务号
+ ///
+ [JsonPropertyName("wmsTaskId")]
+ public string? WmsTaskId { get; set; }
+
+ ///
+ /// 任务状态
+ ///
+ [JsonPropertyName("status")]
+ public int? Status { get; set; }
+
+}
diff --git a/WcsMain/ApiServe/Service/AGVService/AGVService.cs b/WcsMain/ApiServe/Service/AGVService/AGVService.cs
index 483ce98..60920b1 100644
--- a/WcsMain/ApiServe/Service/AGVService/AGVService.cs
+++ b/WcsMain/ApiServe/Service/AGVService/AGVService.cs
@@ -5,10 +5,11 @@ using WcsMain.Constant.Enum.Stacker;
using WcsMain.DataBase.Dao;
using WcsMain.DataBase.TableEntity;
using WcsMain.Constant.WcsAttribute.AutoFacAttribute;
+using WcsMain.EquipOperation.StackerConvey;
namespace WcsMain.ApiServe.Service.AGVService;
[Service]
-public class AGVService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent taskExecuteEvent)
+public class AGVService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent taskExecuteEvent, StackerConveyOperation stackerConveyOperation)
{
///
/// AGV 任务回告
@@ -78,7 +79,17 @@ public class AGVService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent taskExecut
// 若是出库位置则在上报任务完成时上报WMS任务完成
if (status == "DONE" || status == "ABNORMAL_COMPLETED")
{
- if(wmsTask.TaskType == (int)WmsTaskTypeEnum.outTask || wmsTask.TaskType == (int)WmsTaskTypeEnum.agv)
+ Task.Factory.StartNew(() =>
+ {
+ // 如果是完成并且是入库任务或者agv任务则给放货位置写放货完成
+ if (status == "DONE" && (wmsTask.TaskType == (int)WmsTaskTypeEnum.inTask || wmsTask.TaskType == (int)WmsTaskTypeEnum.agv))
+ {
+ string? setLocation = wmsTask.TaskType == (int)WmsTaskTypeEnum.inTask ? wmsTask.MidPoint : wmsTask.Destination;
+ stackerConveyOperation.SetVehicelComplete(setLocation ?? "");
+ }
+ });
+
+ if(wmsTask.TaskType == (int)WmsTaskTypeEnum.outTask || wmsTask.TaskType == (int)WmsTaskTypeEnum.agv) // 出库或移库
{
string? errText = taskExecuteEvent.CompleteTaskEvent(wmsTask, "AGV上报完成", wmsTask.Destination);
if (string.IsNullOrEmpty(errText))
@@ -95,7 +106,7 @@ public class AGVService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent taskExecut
Body = new() { Code = "ERROR", Success = false, Message = $"操作异常:{errText}" }
};
}
- if(wmsTask.TaskType == (int)WmsTaskTypeEnum.inTask)
+ if(wmsTask.TaskType == (int)WmsTaskTypeEnum.inTask) // 入库
{
var updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.arriveMid, ModifyTime = DateTime.Now });
if(updateResult > 0)
diff --git a/WcsMain/ApiServe/Service/ContainerService/ContainerService.cs b/WcsMain/ApiServe/Service/ContainerService/ContainerService.cs
index cc280a4..3384d2e 100644
--- a/WcsMain/ApiServe/Service/ContainerService/ContainerService.cs
+++ b/WcsMain/ApiServe/Service/ContainerService/ContainerService.cs
@@ -112,7 +112,7 @@ public class ContainerService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent task
if (request.TaskState?.ToString() == "21")
{
/* 更新任务状态为取消 */
- int updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.err, TaskMsg = "四向车取消", ModifyTime = DateTime.Now });
+ int updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.err, TaskMsg = "四向车取消", EndTime = DateTime.Now, ModifyTime = DateTime.Now });
return new() { Code = updateResult > 0 ? "200" : "400", Message = updateResult > 0 ? "成功" : "数据异常", WmsTaskId = request.WmsTaskId?.ToString() };
}
return new() { Code = "400", Message = $"不支持的状态类型:{request.TaskState}" };
diff --git a/WcsMain/ApiServe/Service/WcsService/WmsTaskService.cs b/WcsMain/ApiServe/Service/WcsService/WmsTaskService.cs
index 0bc1b4d..baa1c50 100644
--- a/WcsMain/ApiServe/Service/WcsService/WmsTaskService.cs
+++ b/WcsMain/ApiServe/Service/WcsService/WmsTaskService.cs
@@ -128,6 +128,25 @@ public class WmsTaskService(WmsTaskAction wmsTaskAction, AppWmsTaskDao wmsTaskDa
}
}
+ ///
+ /// 更新任务状态
+ ///
+ ///
+ ///
+ public WcsApiResponse UpdateWmsTaskStatus(UpdateWmsTaskStatusRequest request)
+ {
+ if(request.WmsTaskId == default || request.Status == default)
+ {
+ return WcsApiResponseFactory.RequestErr();
+ }
+ var updateResult = wmsTaskDao.Update(new AppWmsTask { TaskId = request.WmsTaskId, TaskStatus = request.Status });
+ if(updateResult > 0)
+ {
+ return WcsApiResponseFactory.Success();
+ }
+ return WcsApiResponseFactory.DataBaseErr();
+ }
+
}
\ No newline at end of file
diff --git a/WcsMain/EquipOperation/StackerConvey/StackerConveyOperation.cs b/WcsMain/EquipOperation/StackerConvey/StackerConveyOperation.cs
index a21c1d8..eee3f51 100644
--- a/WcsMain/EquipOperation/StackerConvey/StackerConveyOperation.cs
+++ b/WcsMain/EquipOperation/StackerConvey/StackerConveyOperation.cs
@@ -73,6 +73,25 @@ public class StackerConveyOperation
return (string.Empty, model, allowAction, errCode, code);
}
+ ///
+ /// 通知PLC放货完成
+ ///
+ ///
+ ///
+ public string? SetVehicelComplete(string location)
+ {
+ if (!CommonData.IsConnectPlc || CommonTool.Siemens == default)
+ {
+ return "设备尚未连接"; // 未连接PLC
+ }
+ (var writeResult, byte[]? data) = CommonTool.Siemens.WritePlcWhithName($"站台放货完成{location}", (short)1);
+ if (writeResult.Success)
+ {
+ return string.Empty;
+ }
+ return writeResult.Message;
+ }
+
///
/// 获取输送机任务号
diff --git a/WcsMain/Properties/PublishProfiles/FolderProfile2.pubxml.user b/WcsMain/Properties/PublishProfiles/FolderProfile2.pubxml.user
index 8758d70..c214a49 100644
--- a/WcsMain/Properties/PublishProfiles/FolderProfile2.pubxml.user
+++ b/WcsMain/Properties/PublishProfiles/FolderProfile2.pubxml.user
@@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<_PublishTargetUrl>F:\A开发项目\A菲达宝开项目\2024-08_上汽试制仓\应用程序\WcsService\WcsMain\bin\Release\net8.0\publish\
- True|2024-11-21T08:33:23.0082958Z||;True|2024-11-21T16:21:46.1852307+08:00||;True|2024-11-21T13:56:06.5543719+08:00||;True|2024-11-21T11:41:50.4634584+08:00||;True|2024-11-21T11:30:54.9747290+08:00||;False|2024-11-21T11:30:18.2738127+08:00||;True|2024-11-21T10:45:42.5524544+08:00||;True|2024-11-20T17:08:23.7162943+08:00||;True|2024-11-20T16:54:01.3629057+08:00||;True|2024-11-20T16:40:49.6894280+08:00||;True|2024-11-20T16:37:47.3670812+08:00||;False|2024-11-20T16:37:04.0777763+08:00||;True|2024-11-20T16:25:26.3145915+08:00||;True|2024-11-20T16:10:13.7558526+08:00||;True|2024-11-20T16:07:37.8681228+08:00||;True|2024-11-20T15:55:28.7196074+08:00||;True|2024-11-20T15:52:40.6653904+08:00||;True|2024-11-20T15:30:21.5138564+08:00||;True|2024-11-20T15:24:40.6286995+08:00||;True|2024-11-18T21:16:47.1821173+08:00||;True|2024-11-18T21:14:40.1209255+08:00||;True|2024-11-18T21:11:32.0010536+08:00||;True|2024-11-18T21:10:56.2142485+08:00||;True|2024-11-18T20:59:50.6846634+08:00||;True|2024-11-16T14:31:14.2653894+08:00||;True|2024-11-16T14:16:17.4271635+08:00||;True|2024-11-16T14:16:08.1284507+08:00||;True|2024-11-16T14:08:02.8639352+08:00||;True|2024-11-16T14:07:06.6785776+08:00||;True|2024-11-16T13:14:33.8282571+08:00||;True|2024-11-16T13:14:09.9233077+08:00||;True|2024-11-16T12:49:45.5891890+08:00||;True|2024-11-16T12:19:05.5997384+08:00||;True|2024-11-16T11:49:43.2660430+08:00||;True|2024-11-16T11:49:12.7318514+08:00||;True|2024-11-16T11:43:41.8128931+08:00||;True|2024-11-16T10:39:25.1387254+08:00||;True|2024-11-16T10:24:19.4879139+08:00||;True|2024-11-15T17:47:10.4630939+08:00||;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||;
+ True|2024-11-22T01:58:07.3694815Z||;True|2024-11-22T09:40:25.3466460+08:00||;True|2024-11-21T16:33:23.0082958+08:00||;True|2024-11-21T16:21:46.1852307+08:00||;True|2024-11-21T13:56:06.5543719+08:00||;True|2024-11-21T11:41:50.4634584+08:00||;True|2024-11-21T11:30:54.9747290+08:00||;False|2024-11-21T11:30:18.2738127+08:00||;True|2024-11-21T10:45:42.5524544+08:00||;True|2024-11-20T17:08:23.7162943+08:00||;True|2024-11-20T16:54:01.3629057+08:00||;True|2024-11-20T16:40:49.6894280+08:00||;True|2024-11-20T16:37:47.3670812+08:00||;False|2024-11-20T16:37:04.0777763+08:00||;True|2024-11-20T16:25:26.3145915+08:00||;True|2024-11-20T16:10:13.7558526+08:00||;True|2024-11-20T16:07:37.8681228+08:00||;True|2024-11-20T15:55:28.7196074+08:00||;True|2024-11-20T15:52:40.6653904+08:00||;True|2024-11-20T15:30:21.5138564+08:00||;True|2024-11-20T15:24:40.6286995+08:00||;True|2024-11-18T21:16:47.1821173+08:00||;True|2024-11-18T21:14:40.1209255+08:00||;True|2024-11-18T21:11:32.0010536+08:00||;True|2024-11-18T21:10:56.2142485+08:00||;True|2024-11-18T20:59:50.6846634+08:00||;True|2024-11-16T14:31:14.2653894+08:00||;True|2024-11-16T14:16:17.4271635+08:00||;True|2024-11-16T14:16:08.1284507+08:00||;True|2024-11-16T14:08:02.8639352+08:00||;True|2024-11-16T14:07:06.6785776+08:00||;True|2024-11-16T13:14:33.8282571+08:00||;True|2024-11-16T13:14:09.9233077+08:00||;True|2024-11-16T12:49:45.5891890+08:00||;True|2024-11-16T12:19:05.5997384+08:00||;True|2024-11-16T11:49:43.2660430+08:00||;True|2024-11-16T11:49:12.7318514+08:00||;True|2024-11-16T11:43:41.8128931+08:00||;True|2024-11-16T10:39:25.1387254+08:00||;True|2024-11-16T10:24:19.4879139+08:00||;True|2024-11-15T17:47:10.4630939+08:00||;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