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, ConveyOperation conveyOperation) { /// /// 接收WMS发送过来的输送线任务 /// /// /// public WmsApiResponse GetConveyTask(List request) { foreach(var item in request) { if (string.IsNullOrEmpty(item.VehicleNo) || item.TaskType == default || item.Locations == default || item.Locations.Length < 1) { return WmsApiResponseFactory.RequestErr("存在必填项未填"); } if (item.TaskGroup == default) { item.TaskGroup = dataBaseData.GetNewUUID2(); // 当任务组为空时生成一个新的 } } List conveyTasks = []; DateTime now = DateTime.Now; foreach (var item in request) { if (item.Locations == default) continue; foreach (var location in item.Locations) { conveyTasks.Add(new AppConveyTask { TaskId = dataBaseData.GetNewUUID(), TaskGroup = item.TaskGroup, VehicleNo = item.VehicleNo, TaskType = item.TaskType, TaskStatus = (int)ConveyTaskStatusEnum.create, Location = location, CreatePerson = StaticData.StaticString.WMS, CreateTime = now, }); } } 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.AllowPickStandGo(request.Location, 2); if(string.IsNullOrEmpty(writeResult)) return WmsApiResponseFactory.Success(); return WmsApiResponseFactory.Fail(writeResult); } /// /// 取消wms的箱式线任务 /// /// /// public WmsApiResponse CancelConveyTask(List request) { try { foreach (var item in request) { if (string.IsNullOrEmpty(item.VehicleNo) || item.TaskType == default || item.Locations == default || item.Locations.Length < 1) { return WmsApiResponseFactory.RequestErr("存在必填项未填"); } //遍历所有点位 foreach (var location in item.Locations) { //生成删除的对象 var taskToDelete = new AppConveyTask { VehicleNo = item.VehicleNo, Location = location }; int deleteResult = conveyTaskDao.VehicledDelete(taskToDelete); if (deleteResult > 0) { return WmsApiResponseFactory.Success("删除成功"); } else { return WmsApiResponseFactory.DataBaseErr("删除失败"); } } } } catch (Exception ex) { ConsoleLog.Error(ex.ToString()); return WmsApiResponseFactory.Fail(ex); } return WmsApiResponseFactory.Success("没有找到匹配的记录"); } }