| | |
| | | /// <returns></returns> |
| | | public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress) |
| | | { |
| | | return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress, TaskOrderBy); |
| | | return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress, TaskOrderBy); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | if (taskTypeGroup.Value == TaskTypeGroup.InboundGroup) |
| | | return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && TaskInboundTypes.Contains(x.TaskType), TaskOrderBy); |
| | | if (taskTypeGroup.Value == TaskTypeGroup.OutbondGroup) |
| | | return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && TaskOutboundTypes.Contains(x.TaskType) , TaskOrderBy); |
| | | return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && TaskOutboundTypes.Contains(x.TaskType), TaskOrderBy); |
| | | return null; |
| | | } |
| | | /// <summary> |
| | |
| | | /// <returns>è¿åä»»å¡å®ä½å¯¹è±¡ï¼å¯è½ä¸ºnull</returns> |
| | | public Dt_Task QueryStackerCraneInTask(string deviceNo, string currentAddress = "") |
| | | { |
| | | return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.TaskType== (int)TaskInboundTypeEnum.Inbound && x.TaskState == (int)TaskInStatusEnum.Line_InFinish, TaskOrderBy); |
| | | return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.TaskType == (int)TaskInboundTypeEnum.Inbound && x.TaskState == (int)TaskInStatusEnum.Line_InFinish, TaskOrderBy); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <returns>è¿åä»»å¡å®ä½å¯¹è±¡ï¼å¯è½ä¸ºnull</returns> |
| | | public Dt_Task QueryStackerCraneOutTask(string deviceNo, string currentAddress = "") |
| | | { |
| | | return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.TaskType==(int)TaskOutboundTypeEnum.Outbound && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy); |
| | | return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.TaskType == (int)TaskOutboundTypeEnum.Outbound && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | |
| | | //int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>(); |
| | | |
| | | if (task.TaskState ==(int)TaskOutStatusEnum.SC_OutFinish) |
| | | if (task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) |
| | | { |
| | | task.TaskState = (int)TaskOutStatusEnum.Line_OutFinish; |
| | | } |
| | |
| | | |
| | | task.ModifyDate = DateTime.Now; |
| | | task.Modifier = "System"; |
| | | bool res = BaseDal.UpdateData(task); |
| | | bool res = BaseDal.UpdateData(task); |
| | | if (!res) |
| | | { |
| | | return content = WebResponseContent.Instance.Error($"æ´æ°ä»»å¡ä¿¡æ¯å¤±è´¥,ä»»å¡å·:ã{task.TaskNum}ã"); |
| | |
| | | if (task == null) return false; |
| | | |
| | | // éªè¯ä»»å¡ç¶ææ¯å¦å
è®¸å®æ |
| | | if (!IsTaskStateValidForCompletion(task))return false; |
| | | if (!IsTaskStateValidForCompletion(task)) return false; |
| | | |
| | | // æ ¹æ®ä»»å¡ç±»åå¤ç |
| | | res = ProcessTaskCompletion(task); |
| | | res = ProcessTaskCompletion(task); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | { |
| | | task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish; |
| | | bool res = BaseDal.UpdateData(task); |
| | | // æ·»å å
¥åºåå²è®°å½ |
| | | //AddTaskHistory(task); |
| | | |
| | | |
| | | //task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish; |
| | | //BaseDal.UpdateData(task); |
| | | //// æ·»å åºåºåå²è®°å½ |
| | | //_taskHtyService.AddTaskHistory(task); |
| | | //_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, "èªå¨å®æ"); |
| | | //bool res = BaseDal.DeleteData(task); |
| | | return res; |
| | | } |
| | | |
| | |
| | | if (!response.Status) |
| | | { |
| | | // è®°å½éç¥å¤±è´¥æ¥å¿ï¼ä½ä¸å½±å主æµç¨ |
| | | //_logger.Warn($"ä»»å¡å®æéç¥å¤±è´¥,ä»»å¡å·:ã{taskNum}ã,ååº:ã{response.Message}ã"); |
| | | //_logger.Warn($"ä»»å¡å®æéç¥å¤±è´¥,ä»»å¡å·:ã{taskNum}ã,ååº:ã{response.Message}ã"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | { |
| | | try |
| | | { |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.PalletCode == Pallat && x.SourceAddress== StationCode); |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.PalletCode == Pallat && x.SourceAddress == StationCode); |
| | | if (task != null) |
| | | { |
| | | task.TaskState = (int)TaskInStatusEnum.Line_InFinish; |
| | |
| | | if (task.TaskNum != _Task.TaskNum) |
| | | { |
| | | task.Grade = 3; |
| | | task.TaskState = TaskRelocationStatusEnum.RelocationNew.ObjToInt(); |
| | | BaseDal.AddData(task); |
| | | return task; |
| | | } |
| | |
| | | |
| | | public Dt_Task GetOutTaskInfo(string PLCaddress) |
| | | { |
| | | return BaseDal.QueryFirst(x => x.TargetAddress== PLCaddress && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish, TaskOrderBy); |
| | | return BaseDal.QueryFirst(x => x.TargetAddress == PLCaddress && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish, TaskOrderBy); |
| | | } |
| | | |
| | | public Dt_Task GetOutTaskInfo2(string PalletCode) |
| | |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum && (x.TaskState == TaskOutStatusEnum.OutNew.ObjToInt() || x.TaskState == TaskRelocationStatusEnum.RelocationNew.ObjToInt() || x.TaskState == TaskInStatusEnum.Line_InExecuting.ObjToInt())); |
| | | if (task == null) return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}æç¶æä¸å¯¹ã"); |
| | | bool taskmsseg = BaseDal.DeleteData(task); |
| | | bool res = AddTaskHistory(task,"æå¨åæ¶"); |
| | | bool res = AddTaskHistory(task, "æå¨åæ¶"); |
| | | return taskmsseg && res ? WebResponseContent.Instance.OK() : WebResponseContent.Instance.Error(); |
| | | |
| | | } |
| | |
| | | /// </summary> |
| | | /// <param name="task">ä»»å¡å¯¹è±¡</param> |
| | | /// <returns>æ¯å¦æ·»å æå</returns> |
| | | public bool AddTaskHistory(Dt_Task task,string operateType) |
| | | public bool AddTaskHistory(Dt_Task task, string operateType) |
| | | { |
| | | try |
| | | { |
| | |
| | | |
| | | // æ·»å åå²è®°å½ |
| | | bool result = _taskHtyService.AddTaskHistory(task, operateType); |
| | | |
| | | |
| | | return result; |
| | | } |
| | | catch (Exception ex) |
| | |
| | | bool res = AddTaskHistory(task, "æå¨å®æ"); |
| | | return taskmsseg && res ? WebResponseContent.Instance.OK() : WebResponseContent.Instance.Error(); |
| | | } |
| | | |
| | | public bool GetYK(string sc) |
| | | { |
| | | Dt_Task dt_Task = BaseDal.QueryFirst(x => x.Roadway == sc && x.TaskType == (int)TaskRelocationTypeEnum.Relocation); |
| | | if (dt_Task != null) |
| | | { |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åå··éä»»å¡è¿åº¦ |
| | | /// </summary> |
| | | /// <param name="roadway">å··éç¼å·</param> |
| | | /// <returns></returns> |
| | | public WebResponseContent GetRoadwayTaskProgress(string roadway) |
| | | { |
| | | try |
| | | { |
| | | // 1. å
¥åæ ¡éª |
| | | if (string.IsNullOrWhiteSpace(roadway)) |
| | | { |
| | | return WebResponseContent.Instance.Error("å··éç¼å·ä¸è½ä¸ºç©º"); |
| | | } |
| | | // 2. 䏿¬¡æ¥è¯¢ï¼é¿å
夿¬¡æ°æ®åº/å
åéå |
| | | List<Dt_Task> taskList = BaseDal.QueryData(x => x.Roadway == roadway).ToList(); |
| | | |
| | | int totalTasks = taskList.Count; |
| | | int inProgressTasks = 0; |
| | | int completedTasks = 0; |
| | | int cancelledTasks = 0; |
| | | int exceptionTasks = 0; |
| | | |
| | | foreach (var task in taskList) |
| | | { |
| | | switch ((TaskStatusEnum)task.TaskState) |
| | | { |
| | | case TaskStatusEnum.Finish: |
| | | completedTasks++; |
| | | break; |
| | | case TaskStatusEnum.Cancel: |
| | | cancelledTasks++; |
| | | break; |
| | | case TaskStatusEnum.Exception: |
| | | exceptionTasks++; |
| | | break; |
| | | default: |
| | | inProgressTasks++; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | var taskDetails = taskList.Select(t => new |
| | | { |
| | | taskNum = t.TaskNum, |
| | | taskType = t.TaskType, |
| | | taskState = t.TaskState, |
| | | taskStateName = GetTaskStateName(t.TaskState), |
| | | createDate = t.CreateDate, |
| | | modifyDate = t.ModifyDate, |
| | | sourceAddress = t.SourceAddress, |
| | | targetAddress = t.TargetAddress |
| | | }).ToList(); |
| | | |
| | | // 5. ç»ä¸è¿åç»æ |
| | | var progressInfo = new |
| | | { |
| | | roadway = roadway, |
| | | totalTasks, |
| | | inProgressTasks, |
| | | completedTasks, |
| | | cancelledTasks, |
| | | exceptionTasks, |
| | | tasks = taskDetails |
| | | }; |
| | | |
| | | return WebResponseContent.Instance.OK(data: progressInfo); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è·åå··éä»»å¡è¿åº¦å¤±è´¥ï¼{ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åææå··éä»»å¡è¿åº¦ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent GetAllRoadwayTaskProgress() |
| | | { |
| | | try |
| | | { |
| | | // 1. 䏿¬¡æ§æ¥è¯¢æææ°æ®ï¼é¿å
夿¬¡æ¥è¯¢ï¼ |
| | | List<Dt_Task> allTasks = BaseDal.QueryData().ToList(); |
| | | |
| | | // 2. æå··éåç» + 䏿¬¡éåç»è®¡ææç¶æï¼æ§è½æåå·¨å¤§ï¼ |
| | | var progressList = allTasks |
| | | .GroupBy(t => t.Roadway) |
| | | .Select(group => |
| | | { |
| | | var roadway = group.Key; |
| | | var tasks = group.ToList(); |
| | | var totalTasks = tasks.Count; |
| | | int inProgress = 0, completed = 0, cancelled = 0, exception = 0; |
| | | |
| | | foreach (var task in tasks) |
| | | { |
| | | switch ((TaskStatusEnum)task.TaskState) |
| | | { |
| | | case TaskStatusEnum.Finish: |
| | | completed++; |
| | | break; |
| | | case TaskStatusEnum.Cancel: |
| | | cancelled++; |
| | | break; |
| | | case TaskStatusEnum.Exception: |
| | | exception++; |
| | | break; |
| | | default: |
| | | inProgress++; |
| | | break; |
| | | } |
| | | } |
| | | return new |
| | | { |
| | | roadway = roadway, |
| | | totalTasks = totalTasks, |
| | | inProgressTasks = inProgress, |
| | | completedTasks = completed, |
| | | cancelledTasks = cancelled, |
| | | exceptionTasks = exception |
| | | }; |
| | | }) |
| | | .ToList(); |
| | | return WebResponseContent.Instance.OK(data: progressList); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è·åå··éä»»å¡è¿åº¦å¤±è´¥ï¼{ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åä»»å¡ç¶æåç§° |
| | | /// </summary> |
| | | /// <param name="taskState">ä»»å¡ç¶æå¼</param> |
| | | /// <returns></returns> |
| | | private string GetTaskStateName(int taskState) |
| | | { |
| | | switch (taskState) |
| | | { |
| | | case (int)TaskStatusEnum.New: |
| | | return "æ°å»º"; |
| | | case (int)TaskStatusEnum.HT_Executing: |
| | | return "æåæºæ§è¡ä¸"; |
| | | case (int)TaskStatusEnum.SC_Execute: |
| | | return "å åæºå¾
æ§è¡"; |
| | | case (int)TaskStatusEnum.SC_Executing: |
| | | return "å åæºæ§è¡ä¸"; |
| | | case (int)TaskStatusEnum.SC_Finish: |
| | | return "å åæºå®æ"; |
| | | case (int)TaskStatusEnum.Line_Execute: |
| | | return "è¾é线å¾
æ§è¡"; |
| | | case (int)TaskStatusEnum.Line_Executing: |
| | | return "è¾é线æ§è¡ä¸"; |
| | | case (int)TaskStatusEnum.Line_Finish: |
| | | return "è¾éçº¿å®æ"; |
| | | case (int)TaskStatusEnum.RGV_NEW: |
| | | return "RGVæ°å»ºä»»å¡"; |
| | | case (int)TaskStatusEnum.RGV_Execute: |
| | | return "RGVå¾
æ§è¡"; |
| | | case (int)TaskStatusEnum.RGV_Takeing: |
| | | return "RGVåè´§ä¸"; |
| | | case (int)TaskStatusEnum.RGV_Executing: |
| | | return "RGVæ§è¡ä¸"; |
| | | case (int)TaskStatusEnum.RGV_WaitToExecute: |
| | | return "RGVå¾
ç»§ç»æ§è¡"; |
| | | case (int)TaskStatusEnum.RGV_Puting: |
| | | return "RGVæ¾è´§ä¸"; |
| | | case (int)TaskStatusEnum.RGV_Finish: |
| | | return "RGV宿"; |
| | | case (int)TaskStatusEnum.RGV_TakeError: |
| | | return "RGVåè´§åå
¥å¼å¸¸"; |
| | | case (int)TaskStatusEnum.Finish: |
| | | return "ä»»å¡å®æ"; |
| | | case (int)TaskStatusEnum.Pending: |
| | | return "ä»»å¡æèµ·"; |
| | | case (int)TaskStatusEnum.MesPending: |
| | | return "Mesåºåºæèµ·"; |
| | | case (int)TaskStatusEnum.Cancel: |
| | | return "ä»»å¡åæ¶"; |
| | | case (int)TaskStatusEnum.Exception: |
| | | return "ä»»å¡å¼å¸¸"; |
| | | default: |
| | | return "æªç¥ç¶æ"; |
| | | } |
| | | } |
| | | } |
| | | } |