| | |
| | | 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() |
| | | { |
| | |
| | | #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; |
| | |
| | | _taskHtyRepository = htyRepository; |
| | | _apiInfoRepository = apiInfoRepository; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | _MaterialInfo_HtyRepository = materialInfo_HtyRepository; |
| | | _MaterialInfoRepository = materialInfoRepository; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); |
| | | var task = BaseDal.QueryFirst(x => x.TaskId == taskNum); |
| | | if (task == null) return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}ã"); |
| | | return UpdateTaskStatusToNext(task); |
| | | } |
| | |
| | | try |
| | | { |
| | | int oldState = task.TaskState; |
| | | if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup) |
| | | |
| | | #region èä½¼å·²ä¿®æ¹ |
| | | //if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup) |
| | | //{ |
| | | // int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskAGVCarryStatusEnum>(); |
| | | |
| | | // task.TaskState = nextStatus; |
| | | |
| | | // if (task.TaskState == (int)TaskAGVCarryStatusEnum.AGV_COMPLETED) |
| | | // { |
| | | |
| | | // BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.äººå·¥å®æ : OperateTypeEnum.èªå¨å®æ); |
| | | // } |
| | | //} |
| | | //else |
| | | //{ |
| | | // throw new Exception($"ä»»å¡ç±»åé误,æªæ¾å°è¯¥ä»»å¡ç±»å,ä»»å¡å·:ã{task.TaskId}ã,ä»»å¡ç±»å:ã{task.TaskType}ã"); |
| | | //} |
| | | #endregion èä½¼å·²ä¿®æ¹ |
| | | int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskAGVCarryStatusEnum>(); |
| | | |
| | | task.TaskState = nextStatus; |
| | | |
| | | if (task.TaskState == (int)TaskAGVCarryStatusEnum.AGV_COMPLETED) |
| | | { |
| | | int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskAGVCarryStatusEnum>(); |
| | | |
| | | task.TaskState = nextStatus; |
| | | |
| | | if (task.TaskState == (int)TaskAGVCarryStatusEnum.AGV_CarryFinish) |
| | | { |
| | | |
| | | BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.äººå·¥å®æ : OperateTypeEnum.èªå¨å®æ); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | throw new Exception($"ä»»å¡ç±»åé误,æªæ¾å°è¯¥ä»»å¡ç±»å,ä»»å¡å·:ã{task.TaskNum}ã,ä»»å¡ç±»å:ã{task.TaskType}ã"); |
| | | //BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.äººå·¥å®æ : OperateTypeEnum.èªå¨å®æ); |
| | | TaskCompleted(task.TaskId); |
| | | } |
| | | |
| | | if (task.TaskState <= 0) |
| | | { |
| | | return content = WebResponseContent.Instance.Error($"该任å¡ç¶æä¸å¯è·³è½¬å°ä¸ä¸æ¥,ä»»å¡å·:ã{task.TaskNum}ã,ä»»å¡ç¶æ:ã{task.TaskState}ã"); |
| | | return content = WebResponseContent.Instance.Error($"该任å¡ç¶æä¸å¯è·³è½¬å°ä¸ä¸æ¥,ä»»å¡å·:ã{task.TaskId}ã,ä»»å¡ç¶æ:ã{task.TaskState}ã"); |
| | | } |
| | | |
| | | task.ModifyDate = DateTime.Now; |
| | |
| | | #region æ´æ°ä»»å¡ç¶æ |
| | | |
| | | // è·åWMSipå°å |
| | | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateTaskStatus)?.ConfigValue; |
| | | if (wmsBase == null || updateTask == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddress = wmsBase + updateTask; |
| | | //var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | //var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | //var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateTaskStatus)?.ConfigValue; |
| | | //if (wmsBase == null || updateTask == null) |
| | | //{ |
| | | // throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | //} |
| | | //var wmsIpAddress = wmsBase + updateTask; |
| | | |
| | | var result = HttpHelper.PostAsync(wmsIpAddress, new { TaskNum = task.TaskNum, TaskState = task.TaskState }.ToJsonString()).Result; |
| | | content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | //var result = HttpHelper.PostAsync(wmsIpAddress, new { TaskNum = task.TaskNum, TaskState = task.TaskState }.ToJsonString()).Result; |
| | | //content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | |
| | | #endregion æ´æ°ä»»å¡ç¶æ |
| | | |
| | |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); |
| | | var task = BaseDal.QueryFirst(x => x.TaskId == taskNum); |
| | | if (task == null) return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}ã"); |
| | | |
| | | int oldState = task.TaskState; |
| | |
| | | } |
| | | //ä»»å¡å®æé»è¾ |
| | | _unitOfWorkManage.BeginTran(); |
| | | task.TaskState = (int)TaskAGVCarryStatusEnum.AGV_COMPLETED; |
| | | // æå½å任塿¥åºæ¥ ç¶åæ¯ä¸ä¸ªå段èµå¼ç»åå²ä»»å¡ ç¶åå é¤å½åä»»å¡ æ·»å 䏿¡åå²ä»»å¡ // ç¶åæè¿ä¸ªä»»å¡çç»ç¹ç对åºç«å°çç¶æè®¾ç½®ä¸ºå¯ç¨ |
| | | 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); |
| | | if(dt_StationManager == null) return content.Error($"ä»»å¡{taskNum}çå½åç«å°ä¸åå¨"); |
| | | |
| | | 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("ä»»å¡å®æ"); |