diff --git a/WcsMain/ApiServe/Controllers/Dto/WMSEntity/Convey/DisposeVehicleRequest.cs b/WcsMain/ApiServe/Controllers/Dto/WMSEntity/Convey/DisposeVehicleRequest.cs
new file mode 100644
index 0000000..16d1158
--- /dev/null
+++ b/WcsMain/ApiServe/Controllers/Dto/WMSEntity/Convey/DisposeVehicleRequest.cs
@@ -0,0 +1,13 @@
+using System.Text.Json.Serialization;
+
+namespace WcsMain.ApiServe.Controllers.Dto.WMSEntity.Convey;
+
+public class DisposeVehicleRequest
+{
+ ///
+ /// 点位
+ ///
+ [JsonPropertyName("location")]
+ public string? Location { get; set;}
+
+}
diff --git a/WcsMain/ApiServe/Controllers/WmsController/ConveyController.cs b/WcsMain/ApiServe/Controllers/WmsController/ConveyController.cs
index 9b00be3..8c0d2e2 100644
--- a/WcsMain/ApiServe/Controllers/WmsController/ConveyController.cs
+++ b/WcsMain/ApiServe/Controllers/WmsController/ConveyController.cs
@@ -21,9 +21,9 @@ public class ConveyController(ConveyService conveyService) : ControllerBase
///
///
[HttpPost("conveyTask")]
- public WmsApiResponse GetConveyTask([FromBody] GetConveyTaskRequest request)
- {
- return _conveyService.GetConveyTask(request);
- }
+ public WmsApiResponse GetConveyTask([FromBody] GetConveyTaskRequest request) => _conveyService.GetConveyTask(request);
+
+ [HttpPost("disposeVehicle")]
+ public WmsApiResponse DisposeVehicle([FromBody] DisposeVehicleRequest request) => _conveyService.DisposeVehicle(request);
}
diff --git a/WcsMain/ApiServe/Service/WmsService/ConveyService.cs b/WcsMain/ApiServe/Service/WmsService/ConveyService.cs
index aa69ddc..4386581 100644
--- a/WcsMain/ApiServe/Service/WmsService/ConveyService.cs
+++ b/WcsMain/ApiServe/Service/WmsService/ConveyService.cs
@@ -1,19 +1,23 @@
-using WcsMain.ApiServe.Controllers.Dto.WMSEntity;
+using System.Configuration;
+using WcsMain.ApiServe.Controllers.Dto.WMSEntity;
using WcsMain.ApiServe.Controllers.Dto.WMSEntity.Convey;
using WcsMain.ApiServe.Factory;
+using WcsMain.Common;
using WcsMain.DataBase.Dao;
using WcsMain.DataBase.TableEntity;
using WcsMain.DataService;
using WcsMain.Enum.Convey;
+using WcsMain.EquipOperation.Convey;
using WcsMain.WcsAttribute.AutoFacAttribute;
namespace WcsMain.ApiServe.Service.WmsService;
[Service]
-public class ConveyService(DataBaseData dataBaseData, AppConveyTaskDao conveyTaskDao)
+public class ConveyService(DataBaseData dataBaseData, AppConveyTaskDao conveyTaskDao, ConveyOperation conveyOperation)
{
private readonly DataBaseData _databseData = dataBaseData;
private readonly AppConveyTaskDao _conveyTaskDao = conveyTaskDao;
+ private readonly ConveyOperation _conveyOperation = conveyOperation;
///
/// 接收WMS发送过来的输送线任务
@@ -49,4 +53,17 @@ public class ConveyService(DataBaseData dataBaseData, AppConveyTaskDao conveyTas
var insertResult = _conveyTaskDao.Insert(conveyTasks);
return insertResult > 0 ? WmsApiResponseFactory.Success() : WmsApiResponseFactory.DataBaseErr();
}
+
+ ///
+ /// 释放输送线任务
+ ///
+ ///
+ ///
+ public WmsApiResponse DisposeVehicle(DisposeVehicleRequest request)
+ {
+ if(string.IsNullOrEmpty(request.Location)) return WmsApiResponseFactory.RequestErr("存在必填项未填");
+ var writeResult = _conveyOperation.DisposeVehicle(request.Location);
+ if(string.IsNullOrEmpty(writeResult)) return WmsApiResponseFactory.Success();
+ return WmsApiResponseFactory.Fail(writeResult);
+ }
}
diff --git a/WcsMain/EquipOperation/Convey/ConveyOperation.cs b/WcsMain/EquipOperation/Convey/ConveyOperation.cs
index 24d1bca..dfc3db0 100644
--- a/WcsMain/EquipOperation/Convey/ConveyOperation.cs
+++ b/WcsMain/EquipOperation/Convey/ConveyOperation.cs
@@ -124,8 +124,17 @@ public class ConveyOperation
public string WriteTask(string? equipmentId, int plcId, short router) => WriteTask(equipmentId, new ConveyPLCTask(plcId, router));
-
-
+ ///
+ /// 释放指定位置的箱子
+ ///
+ ///
+ ///
+ public string DisposeVehicle(string? conveyId)
+ {
+ if (!CommonData.IsConnectPlc || CommonTool.Siemens == default) return "PLC尚未连接。";
+ var (writeResult, _) = CommonTool.Siemens.WritePlcWhithName($"箱式线释放{conveyId}", (short)1);
+ return writeResult.Success ? string.Empty : writeResult.Message ?? "写入失败,未知原因";
+ }