#region << 版 本 注 释 >> /*-------------------------------------------------------------------- * 版权所有 (c) 2026 WenJY 保留所有权利。 * CLR版本:4.0.30319.42000 * 机器名称:Mr.Wen's MacBook Pro * 命名空间:Sln.Wcs.Business * 唯一标识:A6C78343-F3B7-49DB-A582-768186595E02 * * 创建者:WenJY * 电子邮箱: * 创建时间:2026-05-06 18:13:10 * 版本:V1.0.0 * 描述: * *-------------------------------------------------------------------- * 修改人: * 时间: * 修改说明: * * 版本:V1.0.0 *--------------------------------------------------------------------*/ #endregion << 版 本 注 释 >> using System.Linq.Expressions; using Sln.Wcs.Business.Domain.Dto.CreateTask; using Sln.Wcs.Business.Domain.Dto.FilterLocation; using Sln.Wcs.Business.Domain.Dto.SaveTask; using Sln.Wcs.Business.Domain.Dto.ValidateMaterial; using Sln.Wcs.Business.Domain.Enum; using Sln.Wcs.Business.Domain.Model.CreateTask; using Sln.Wcs.Business.Domain.Model.SaveTask; using Sln.Wcs.Model.Domain; using Sln.Wcs.Repository.service; namespace Sln.Wcs.Business.InStore; /// /// 包材入库 /// public class MaterialInStore:BaseBusiness { private readonly IBasePathInfoService _basePathInfoService; private readonly ILiveTaskQueueService _liveTaskQueueService; public MaterialInStore(IBasePathInfoService basePathInfoService, ILiveTaskQueueService liveTaskQueueService) { _basePathInfoService = basePathInfoService; _liveTaskQueueService = liveTaskQueueService; } public override ValidateMaterialResultDto ValidateMaterial(ValidateMaterialDto validateMaterialDto) { throw new NotImplementedException(); } /// /// 创建任务 /// /// /// /// public override CreateTaskResultDto CreateTask(CreateTaskDto createTaskDto) { CreateTaskResultDto resultDto = new CreateTaskResultDto(); try { createTaskDto.taskType = TaskTypeEnum.InStore; createTaskDto.taskCategory = TaskCategoryEnum.Material; //获取包材入库路径 Expression> exp = x=>x.startPoint == createTaskDto.startPoint && x.endPoint == createTaskDto.endPoint && x.pathType == (int)createTaskDto.taskType && x.pathCategory == (int)createTaskDto.taskCategory; BasePathInfo pathInfo = _basePathInfoService.GetBasePathInfo(exp).FirstOrDefault() ?? throw new InvalidOperationException($"包材入库输送路径为 NULL"); #region 路径转为任务 string taskCode = "2026050700001"; //需根据现场实际定义生成规则 List taskDetails = pathInfo.pathDetails.Select( item => base.LiveTaskDetailWrapper(taskCode,createTaskDto,item)).ToList(); var taskQueue = base.LiveTaskQueueWrapper(taskCode, createTaskDto, pathInfo); taskQueue.taskSteps = taskDetails.Count; taskQueue.taskDetails = taskDetails; #endregion resultDto.code = BusinessStatusEnum.成功; resultDto.msg = $"包材入库任务创建成功:{taskCode};关联路径:{pathInfo.pathName}"; resultDto.data = new CreateTaskResultModel() { taskCode = taskCode, taskQueue = taskQueue, taskDetails = taskDetails, }; } catch (Exception e) { resultDto.code = BusinessStatusEnum.方法执行异常; resultDto.msg = e.Message; } return resultDto; } public override FilterLocationResultDto FilterLocation(FilterLocationDto filterLocationDto) { throw new NotImplementedException(); } /// /// 保存任务 /// /// /// public override SaveTaskResultDto SaveTask(SaveTaskDto saveTaskDto) { SaveTaskResultDto resultDto = new SaveTaskResultDto(); try { var inRes = _liveTaskQueueService.InsertTaskQueue(saveTaskDto.taskQueue); resultDto.code = BusinessStatusEnum.成功; resultDto.msg = "执行完成"; resultDto.data = new SaveTaskResultModel() { isRes = inRes }; } catch (Exception e) { resultDto.code = BusinessStatusEnum.方法执行异常; resultDto.msg = e.Message; } return resultDto; } }