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 ?? "写入失败,未知原因"; + }