| | |
| | | #region << ç æ¬ 注 é >> |
| | | #region << ç æ¬ 注 é >> |
| | | /*---------------------------------------------------------------- |
| | | * å½å空é´ï¼WIDESEAWCS_TaskInfoService |
| | | * å建è
ï¼è¡ç«¥åº |
| | |
| | | |
| | | //int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>(); |
| | | |
| | | task.TaskState = (int)TaskOutStatusEnum.SC_OutExecuting; |
| | | if (task.TaskState ==(int)TaskOutStatusEnum.SC_OutFinish) |
| | | { |
| | | task.TaskState = (int)TaskOutStatusEnum.Line_OutFinish; |
| | | } |
| | | else |
| | | { |
| | | task.TaskState = (int)TaskOutStatusEnum.SC_OutExecuting; |
| | | } |
| | | task.Dispatchertime = DateTime.Now; |
| | | } |
| | | else if (task.TaskType == (int)TaskInboundTypeEnum.Inbound) |
| | |
| | | |
| | | task.ModifyDate = DateTime.Now; |
| | | task.Modifier = "System"; |
| | | BaseDal.UpdateData(task); |
| | | bool res = BaseDal.UpdateData(task); |
| | | if (!res) |
| | | { |
| | | return content = WebResponseContent.Instance.Error($"æ´æ°ä»»å¡ä¿¡æ¯å¤±è´¥,ä»»å¡å·:ã{task.TaskNum}ã"); |
| | | } |
| | | |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"人工æå¨å°ä»»å¡ç¶æä»ã{oldState}ã跳转å°ã{task.TaskState}ã" : $"ç³»ç»èªå¨æµç¨ï¼ä»»å¡ç¶æä»ã{oldState}ã转å°ã{task.TaskState}ã"); |
| | | |
| | |
| | | /// </summary> |
| | | /// <param name="taskNum">ä»»å¡ç¼å·</param> |
| | | /// <returns>è¿åå¤çç»æ</returns> |
| | | public WebResponseContent StackCraneTaskCompleted(int taskNum) |
| | | /*public WebResponseContent StackCraneTaskCompleted(int taskNum) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | |
| | | { |
| | | task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish; |
| | | task.ModifyDate = DateTime.Now; |
| | | task.Modifier = "System"; |
| | | BaseDal.UpdateData(task); |
| | | content = HttpHelperh.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={task.TaskNum}"); |
| | | Console.WriteLine("ä»»å¡å®æ"); |
| | | //BaseDal.DeleteData(task); |
| | | // _task_HtyService.AddTaskHty(task); éè¦æ·»å ç§»å
¥åå² |
| | | //_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"åºåºå®æ"); |
| | | |
| | | } |
| | | else if (task.TaskType == (int)TaskInboundTypeEnum.Inbound && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting) |
| | | { |
| | | task.TaskState = (int)TaskInStatusEnum.InFinish; |
| | | BaseDal.UpdateData(task); |
| | | |
| | | content = HttpHelperh.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={task.TaskNum}"); |
| | | |
| | | task.ModifyDate = DateTime.Now; |
| | | task.Modifier = "System"; |
| | | BaseDal.DeleteData(task); |
| | | // _task_HtyService.AddTaskHty(task); éè¦æ·»å ç§»å
¥åå² |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"å
¥åºå®æ"); |
| | | |
| | | } |
| | | else if (task.TaskType == (int)TaskRelocationTypeEnum.Relocation) |
| | | { |
| | | task.TaskState = (int)TaskRelocationStatusEnum.SC_RelocationFinish; |
| | | BaseDal.UpdateData(task); |
| | | |
| | | content = HttpHelperh.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={task.TaskNum}"); |
| | | |
| | | |
| | | task.ModifyDate = DateTime.Now; |
| | | BaseDal.DeleteData(task); |
| | | // _task_HtyService.AddTaskHty(task); éè¦æ·»å ç§»å
¥åå² |
| | | BaseDal.UpdateData(task); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"ç§»åºå®æ"); |
| | | } |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OtherGroup) |
| | | { |
| | | |
| | | BaseDal.DeleteData(task); |
| | | content = HttpHelperh.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={task.TaskNum}"); |
| | | // _task_HtyService.AddTaskHty(task); éè¦æ·»å ç§»å
¥åå² |
| | | } |
| | | else |
| | | { |
| | |
| | | content = WebResponseContent.Instance.Error($"ä»»å¡å®æå¼å¸¸,ä»»å¡å·:ã{taskNum}ãï¼åå ï¼{ex.Message}"); |
| | | } |
| | | return content; |
| | | }*/ |
| | | |
| | | |
| | | public bool StackCraneTaskCompleted(int taskNum) |
| | | { |
| | | bool res; |
| | | |
| | | try |
| | | { |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); |
| | | if (task == null) return false; |
| | | |
| | | // éªè¯ä»»å¡ç¶ææ¯å¦å
è®¸å®æ |
| | | if (!IsTaskStateValidForCompletion(task))return false; |
| | | |
| | | // æ ¹æ®ä»»å¡ç±»åå¤ç |
| | | res = ProcessTaskCompletion(task); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | res = false; |
| | | } |
| | | |
| | | return res; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éªè¯ä»»å¡ç¶ææ¯å¦å
è®¸å®æ |
| | | /// </summary> |
| | | private bool IsTaskStateValidForCompletion(Dt_Task task) |
| | | { |
| | | return task.TaskType switch |
| | | { |
| | | (int)TaskOutboundTypeEnum.Outbound => task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting, |
| | | (int)TaskInboundTypeEnum.Inbound => task.TaskState == (int)TaskInStatusEnum.SC_InExecuting, |
| | | (int)TaskRelocationTypeEnum.Relocation => true, // ç§»åºä»»å¡æ²¡æç¹å®ç¶æè¦æ± |
| | | _ => false |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å¤çä»»å¡å®æé»è¾ |
| | | /// </summary> |
| | | private bool ProcessTaskCompletion(Dt_Task task) |
| | | { |
| | | // æ´æ°ä»»å¡åºç¡ä¿¡æ¯ |
| | | UpdateTaskBaseInfo(task); |
| | | |
| | | bool result = task.TaskType switch |
| | | { |
| | | (int)TaskOutboundTypeEnum.Outbound => ProcessOutboundTask(task), |
| | | (int)TaskInboundTypeEnum.Inbound => ProcessInboundTask(task), |
| | | (int)TaskRelocationTypeEnum.Relocation => ProcessRelocationTask(task), |
| | | _ => throw new Exception($"æªç¥çä»»å¡ç±»å:ã{task.TaskType}ã") |
| | | }; |
| | | |
| | | // éç¥ä»»å¡å®æ |
| | | if (result == true) |
| | | { |
| | | NotifyTaskCompleted(task.TaskNum); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°ä»»å¡åºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | private void UpdateTaskBaseInfo(Dt_Task task) |
| | | { |
| | | task.ModifyDate = DateTime.Now; |
| | | task.Modifier = "System"; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å¤çåºåºä»»å¡ |
| | | /// </summary> |
| | | private bool ProcessOutboundTask(Dt_Task task) |
| | | { |
| | | task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish; |
| | | bool res = BaseDal.UpdateData(task); |
| | | // æ·»å å
¥åºåå²è®°å½ |
| | | //AddTaskHistory(task); |
| | | |
| | | |
| | | return res; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å¤çå
¥åºä»»å¡ |
| | | /// </summary> |
| | | private bool ProcessInboundTask(Dt_Task task) |
| | | { |
| | | task.TaskState = (int)TaskInStatusEnum.InFinish; |
| | | BaseDal.UpdateData(task); |
| | | |
| | | // æ·»å å
¥åºåå²è®°å½ |
| | | // _task_HtyService.AddTaskHty(task); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, "å
¥åºå®æ"); |
| | | //AddTaskHistory(task); |
| | | |
| | | // å
¥åºå®æåå é¤ä»»å¡ |
| | | bool res = BaseDal.DeleteData(task); |
| | | |
| | | return res; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å¤çç§»åºä»»å¡ |
| | | /// </summary> |
| | | private bool ProcessRelocationTask(Dt_Task task) |
| | | { |
| | | task.TaskState = (int)TaskRelocationStatusEnum.SC_RelocationFinish; |
| | | BaseDal.UpdateData(task); |
| | | |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, "ç§»åºå®æ"); |
| | | //AddTaskHistory(task); |
| | | // ç§»åºå®æåå é¤ä»»å¡ |
| | | bool res = BaseDal.DeleteData(task); |
| | | // _task_HtyService.AddTaskHty(task); |
| | | |
| | | return res; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éç¥ä»»å¡å®æ |
| | | /// </summary> |
| | | private void NotifyTaskCompleted(int taskNum) |
| | | { |
| | | try |
| | | { |
| | | var response = HttpHelperh.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={taskNum}"); |
| | | if (!response.Status) |
| | | { |
| | | // è®°å½éç¥å¤±è´¥æ¥å¿ï¼ä½ä¸å½±å主æµç¨ |
| | | //_logger.Warn($"ä»»å¡å®æéç¥å¤±è´¥,ä»»å¡å·:ã{taskNum}ã,ååº:ã{response.Message}ã"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // è®°å½å¼å¸¸æ¥å¿ï¼ä½ä¸å½±å主æµç¨ |
| | | // _logger.Error($"ä»»å¡å®æéç¥å¼å¸¸,ä»»å¡å·:ã{taskNum}ã", ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | return BaseDal.QueryFirst(x => x.PalletCode == Pallat); |
| | | } |
| | | |
| | | public WebResponseContent UpdateTaskIninfo(string Pallat, int TaskNo) |
| | | public WebResponseContent UpdateTaskIninfo(string Pallat, string StationCode) |
| | | { |
| | | try |
| | | { |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == TaskNo && x.PalletCode == Pallat); |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.PalletCode == Pallat && x.SourceAddress== StationCode); |
| | | if (task != null) |
| | | { |
| | | task.TaskState = (int)TaskInStatusEnum.Line_InFinish; |
| | |
| | | { |
| | | return BaseDal.QueryFirst(x => x.TargetAddress== PLCaddress && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish, TaskOrderBy); |
| | | } |
| | | |
| | | public Dt_Task GetOutTaskInfo2(string PalletCode) |
| | | { |
| | | return BaseDal.QueryFirst(x => x.PalletCode == PalletCode && x.TaskState == (int)TaskOutStatusEnum.Line_OutFinish, TaskOrderBy); |
| | | } |
| | | |
| | | public List<Dt_Task> QueryStackerCraneYKTasks(string deviceNo) |
| | | { |
| | | return BaseDal.QueryData(x => x.Roadway == deviceNo && x.TaskType == (int)TaskRelocationTypeEnum.Relocation && x.TaskState == (int)TaskRelocationStatusEnum.RelocationNew, TaskOrderBy); |
| | | |
| | | } |
| | | |
| | | public WebResponseContent WCSCancelinventory(int taskNum) |
| | | { |
| | | //æ¥è¯¢ä»»å¡ä¿¡æ¯ |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); |
| | | if (task == null) return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}ã"); |
| | | bool taskmsseg = BaseDal.DeleteData(task); |
| | | //bool res = AddTaskHistory(task); |
| | | //return taskmsseg && res ? WebResponseContent.Instance.OK() : WebResponseContent.Instance.Error(); |
| | | return null; |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ·»å åå²ä»»å¡è®°å½ï¼éææ¹æ³ï¼ |
| | | /// </summary> |
| | | /// <param name="task">ä»»å¡å¯¹è±¡</param> |
| | | /// <returns>æ¯å¦æ·»å æå</returns> |
| | | public static bool AddTaskHistory(Dt_Task task) |
| | | { |
| | | try |
| | | { |
| | | if (task == null) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | // å建任å¡å岿å¡å®ä¾ |
| | | var taskHtyService = App.GetService<ITaskHtyService>(); |
| | | if (taskHtyService == null) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | // æ·»å åå²è®°å½ |
| | | bool result = taskHtyService.AddTaskHistory(task, "èªå¨å®æ"); |
| | | |
| | | return result; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // è®°å½å¼å¸¸æ¥å¿ |
| | | Console.WriteLine($"æ·»å åå²ä»»å¡è®°å½å¤±è´¥: {ex.Message}"); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | } |