xiaojiao
3 天以前 9376389dbf19d202f766a4fe47cf80dfe4db4f42
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -15,6 +15,7 @@
using WIDESEAWCS_BasicInfoService;
using WIDESEAWCS_Common;
using WIDESEAWCS_Common.APIEnum;
using WIDESEAWCS_Common.StationEnum;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
@@ -51,6 +52,8 @@
        private readonly ITask_HtyRepository _taskHtyRepository;
        private readonly IApiInfoRepository _apiInfoRepository;
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        private readonly IDt_MaterialInfo_HtyRepository _MaterialInfo_HtyRepository;
        private readonly IDt_MaterialInfoRepository _MaterialInfoRepository;
        private Dictionary<string, OrderByType> _taskOrderBy = new()
        {
@@ -69,7 +72,7 @@
        #endregion èŽ·å–æ‰€æœ‰ä»»åŠ¡ç±»åž‹ã€çŠ¶æ€
        public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ISys_ConfigService sys_ConfigService, IDt_StationManagerService stationManagerService, IDt_StationManagerRepository stationManagerRepository, IRouterRepository routerRepository, ITask_HtyRepository htyRepository, IApiInfoRepository apiInfoRepository,IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
        public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ISys_ConfigService sys_ConfigService, IDt_StationManagerService stationManagerService, IDt_StationManagerRepository stationManagerRepository, IRouterRepository routerRepository, ITask_HtyRepository htyRepository, IApiInfoRepository apiInfoRepository,IUnitOfWorkManage unitOfWorkManage, IDt_MaterialInfo_HtyRepository materialInfo_HtyRepository, IDt_MaterialInfoRepository materialInfoRepository) : base(BaseDal)
        {
            _routerService = routerService;
            _taskExecuteDetailService = taskExecuteDetailService;
@@ -82,6 +85,8 @@
            _taskHtyRepository = htyRepository;
            _apiInfoRepository = apiInfoRepository;
            _unitOfWorkManage = unitOfWorkManage;
            _MaterialInfo_HtyRepository = materialInfo_HtyRepository;
            _MaterialInfoRepository = materialInfoRepository;
        }
        /// <summary>
@@ -462,6 +467,30 @@
                    //任务完成逻辑
                    _unitOfWorkManage.BeginTran();
                    // æŠŠå½“前任务查出来 ç„¶åŽæ¯ä¸€ä¸ªå­—段赋值给历史任务 ç„¶åŽåˆ é™¤å½“前任务 æ·»åŠ ä¸€æ¡åŽ†å²ä»»åŠ¡ // ç„¶åŽæŠŠè¿™ä¸ªä»»åŠ¡çš„ç»ˆç‚¹çš„å¯¹åº”ç«™å°çš„çŠ¶æ€è®¾ç½®ä¸ºå¯ç”¨
                    Dt_Task_Hty dt_Task_Hty = _mapper.Map<Dt_Task_Hty>(task);
                    dt_Task_Hty.TaskNum = task.TaskId;
                    Dt_StationManager dt_StationManager = _stationManagerRepository.QueryFirst(x => x.StationLocation == task.TargetAddress);// ç›®çš„位置
                    Dt_StationManager SourceAddress = _stationManagerRepository.QueryFirst(x => x.StationLocation == task.SourceAddress);// èµ·å§‹ä½ç½®
                    if(dt_StationManager == null) return content.Error($"任务{taskNum}的目的站台【{task.TargetAddress}】站台不存在");
                    if(SourceAddress == null) return content.Error($"任务{taskNum}的当前起始【{task.SourceAddress}】站台不存在");
                    dt_StationManager.StationStatus = ((int)StationEnum.Enable).ToString();
                    SourceAddress.StationStatus = ((int)StationEnum.Enable).ToString();
                    Dt_MaterialInfo dt_MaterialInfo =  _MaterialInfoRepository.QueryFirst(x => x.ContainerCode == task.PalletCode);
                    if (dt_MaterialInfo == null) return content.Error("查询不到相关数据 æˆ–者已经解绑!");
                    dt_MaterialInfo.IsBind = false;
                    Dt_MaterialInfo_Hty dt_MaterialInfo_Hty = _mapper.Map<Dt_MaterialInfo_Hty>(dt_MaterialInfo);
                    _MaterialInfo_HtyRepository.AddData(dt_MaterialInfo_Hty);
                    _MaterialInfoRepository.DeleteData(dt_MaterialInfo);
                    _taskHtyRepository.AddData(dt_Task_Hty);
                    BaseDal.DeleteData(task);
                    _stationManagerRepository.UpdateData(dt_StationManager);
                    _stationManagerRepository.UpdateData(SourceAddress);
                    _unitOfWorkManage.CommitTran();
                    content.OK("任务完成");