´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs
@@ -30,25 +30,61 @@ [Description("颿åºåº")] MLOutbound, /// <summary> /// 跨楼å±è¿è¾ /// 转è¿è½¦æ¬è¿ /// </summary> [Description("跨楼å±è¿è¾")] Carry, [Description("转è¿è½¦æ¬è¿")] F01, /// <summary> /// è£åªéè´§ /// 䏿¥¼æ»¡æä¸æåæº /// </summary> [Description("è£åªéè´§")] CJCarry, [Description("䏿¥¼ä¸æåæº")] RK3F, /// <summary> /// è£åªå ¥åº /// 䏿¥¼æåæºåºç©ºæ /// </summary> [Description("è£åªå ¥åº")] CJInbound, [Description("䏿¥¼æåæºåº")] CK3F, /// <summary> /// è£åªåºåº /// 忥¼æåæºå ¥åº /// </summary> [Description("è£åªåºåº")] CJOutbound, [Description("忥¼æåæºå ¥åº")] Q1TSJ4, /// <summary> /// 忥¼åºå å°çº¿è¾¹ /// </summary> [Description("忥¼åºå å°çº¿è¾¹")] STU0003, /// <summary> /// 忥¼çº¿è¾¹å°çº¿è¾¹ /// </summary> [Description("忥¼çº¿è¾¹å°çº¿è¾¹")] F02, /// <summary> /// 忥¼åºå å°æåæº /// </summary> [Description("忥¼åºå å°æåæº")] CHUKU1, /// <summary> /// å æ¥¼å°ä¸æ¥¼ /// </summary> [Description("å æ¥¼å°ä¸æ¥¼")] Q3RK, /// <summary> /// 䏿¥¼å°å 楼 /// </summary> [Description("䏿¥¼å°å 楼")] Q3CK, /// <summary> /// ç©ºè½¦è·¨æ¥¼å± /// </summary> [Description("空车跨楼å±")] Move, /// <summary> /// æåç§»åº ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/HIKROBOT/HIKROBOTEqptExecuteNotify.cs
ÎļþÒÑɾ³ý ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/HIKROBOT/HIKROBOTEqptRequest.cs
ÎļþÒÑɾ³ý ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/HIKROBOT/TargetRouteDto.cs
@@ -12,6 +12,12 @@ public class TargetRouteDto { /// <summary> /// 该æ¥éª¤æ¯å¦èªå¨å¼å§ã0å¦1æ¯ /// </summary> public int autoStart { get; set; } = 1; public int seq { get; set; } /// <summary> /// ç®æ ç±»å /// ZONE:ç®æ æå¤åºåç¼å· /// SITE:ç«ç¹å«å @@ -40,6 +46,7 @@ /// <summary> /// æºå¨äººå°è¾¾åçæä½ /// COLLECTåè´§DELIVERYéè´§ /// </summary> public string operation { get; set; } @@ -108,6 +115,7 @@ /// </summary> public class CarrierInfoDto { public string binCategory { get; set; } = "A"; /// <summary> /// è½½å ·ç±»å /// </summary> @@ -121,6 +129,6 @@ /// <summary> /// å±å· /// </summary> public int? layer { get; set; } //public int? layer { get; set; } } } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -74,14 +74,14 @@ /// </summary> /// <param name="wMSCancelTask">åæ¶ä»»å¡å®ä½ç±»</param> /// <returns></returns> public WebResponseContent CancelWMSTask(WMSCancelTask wMSCancelTask); WebResponseContent CancelWMSTask(WMSCancelTask wMSCancelTask); /// <summary> /// ä¿®æ¹ä»»å¡ä¼å 级 /// </summary> /// <param name="updateTaskPriority"></param> /// <returns></returns> public WebResponseContent UpdateWMSTaskPriority(WMSUpdateTaskPriority updateTaskPriority); WebResponseContent UpdateWMSTaskPriority(WMSUpdateTaskPriority updateTaskPriority); /// <summary> /// æ ¹æ®æçå·ãèµ·å§å°ååWMS请æ±ä»»å¡ @@ -181,6 +181,12 @@ /// <param name="task">ä»»å¡å®ä½å¯¹è±¡</param> /// <returns></returns> WebResponseContent UpdateTaskStatusToNext([NotNull] Dt_Task task); /// <summary> /// ä¸å海康AGVä»»å¡ /// </summary> /// <param name="task"></param> /// <returns></returns> WebResponseContent SendHIKROBOTTask([NotNull] Dt_Task task); /// <summary> /// æ ¹æ®ä»»å¡å·ãå½åå°åæ´æ°ä»»å¡ä½ç½®ä¿¡æ¯ ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs
@@ -10,6 +10,9 @@ using WIDESEAWCS_DTO.WMS; using WIDESEAWCS_Model.Models; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_DTO; using WIDESEAWCS_DTO.AGV.HIKROBOT; using System.Diagnostics.CodeAnalysis; namespace WIDESEAWCS_TaskInfoService { @@ -25,10 +28,20 @@ /// <returns></returns> public WebResponseContent CreateHKNewInTask(TaskDTO taskDTO, int taskType) { WebResponseContent content = new WebResponseContent(); try { Dt_HKLocationInfo? hKLocationInfo = null; #region ç¹å°ç¹ if (!string.IsNullOrEmpty(taskDTO.toLocationCode)) { hKLocationInfo = _hKLocationInfoService.Repository.QueryFirst(x => x.LocationCode == taskDTO.toLocationCode) ?? throw new Exception($"æªæ¾å°ç»ç¹è´§ä½ã{taskDTO.toLocationCode}ã"); if (hKLocationInfo.LocationStatus != (int)LocationStatusEnum.Free) throw new Exception($"ç»ç¹è´§ä½ã{taskDTO.toLocationCode}ãè´§ä½ç¶æä¸ä¸ºç©ºè´§ä½"); } #endregion //è·åè´§ä½ä¿¡æ¯ Dt_HKLocationInfo? hKLocationInfo = _hKLocationInfoService.GetFreeLocationInfo(taskDTO.toAreaCode) ?? throw new Exception($"æªæ¾å°ç»ç¹åºåºã{taskDTO.toAreaCode}ãå¯ç¨ç©ºè´§ä½ï¼"); ; else hKLocationInfo = _hKLocationInfoService.GetFreeLocationInfo(taskDTO.toAreaCode) ?? throw new Exception($"æªæ¾å°ç»ç¹åºåºã{taskDTO.toAreaCode}ãå¯ç¨ç©ºè´§ä½ï¼"); Dt_Task dt_Task = new Dt_Task() { TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), @@ -46,17 +59,42 @@ Creater = "WMS", }; hKLocationInfo.LocationStatus = LocationStatusEnum.InLock.ObjToInt(); #region ä¸å海康AGVä»»å¡ content = SendHIKROBOTTask(dt_Task); if (!content.Status) throw new Exception(content.Message); dt_Task.TaskState = (int)TaskStatusEnum.Execut; dt_Task.Dispatchertime = DateTime.Now; #endregion try { Db.Ado.BeginTran(); BaseDal.AddData(dt_Task); _hKLocationInfoService.Repository.UpdateData(hKLocationInfo); Db.Ado.CommitTran(); return WebResponseContent.Instance.OK(); } catch (Exception ex) { Db.Ado.RollbackTran(); throw new Exception(ex.Message); } content.OK(data: new { taskCode = taskDTO.taskCode, Message = "æåï¼" }); } catch (Exception ex) { content.Data = new { taskCode = taskDTO.taskCode, Message = $"失败ï¼{ex.Message}" }; content.Error(ex.Message); } return content; } /// <summary> /// å建海康AGVåºåºä»»å¡ @@ -66,6 +104,7 @@ /// <returns></returns> public WebResponseContent CreateHKNewOutTask(TaskDTO taskDTO, int taskType) { WebResponseContent content = new WebResponseContent(); try { Dt_HKLocationInfo? hKLocationInfo = _hKLocationInfoService.Repository.QueryFirst(x => x.LocationCode == taskDTO.fromLocationCode) ?? throw new Exception($"æªæ¾å°èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãï¼"); @@ -88,18 +127,189 @@ Creater = "WMS", }; hKLocationInfo.LocationStatus = LocationStatusEnum.OutLock.ObjToInt(); #region ä¸å海康AGVä»»å¡ content = SendHIKROBOTTask(dt_Task); if (!content.Status) throw new Exception(content.Message); dt_Task.TaskState = (int)TaskStatusEnum.Execut; dt_Task.Dispatchertime = DateTime.Now; #endregion try { Db.Ado.BeginTran(); BaseDal.AddData(dt_Task); _hKLocationInfoService.Repository.UpdateData(hKLocationInfo); Db.Ado.CommitTran(); return WebResponseContent.Instance.OK(); } catch (Exception ex) { Db.Ado.RollbackTran(); throw new Exception(ex.Message); } return content.OK(data: new { taskCode = taskDTO.taskCode, Message = "æåï¼" }); } catch (Exception ex) { content.Data = new { taskCode = taskDTO.taskCode, Message = $"失败ï¼{ex.Message}" }; return content.Error(ex.Message); } } #endregion #region ä¸å海康AGVä»»å¡ public WebResponseContent SendHIKROBOTTask([NotNull] Dt_Task task) { WebResponseContent content = new WebResponseContent(); HIKROBOTReturn hIKROBOTReturn = null; HIKROBOTTaskSubmit hIKROBOTTaskSubmit = null; try { Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(HIKROBOTTaskSubmit)) ?? throw new Exception("æªæ¾å°æµ·åº·AGVä»»å¡ä¸åæ¥å£é 置信æ¯ï¼è¯·æ£æ¥æ¥å£é ç½®"); #region å®ä½ç±»è½¬æ¢ hIKROBOTTaskSubmit = HIKROBOTTask(task); if (hIKROBOTTaskSubmit == null) throw new Exception("海康AGVä»»å¡å®ä½è½¬æ¢å¤±è´¥"); #endregion string response = HttpHelper.Post(apiInfo.ApiAddress, hIKROBOTTaskSubmit.Serialize()); hIKROBOTReturn = response.DeserializeObject<HIKROBOTReturn>(); if (hIKROBOTReturn.code == "SUCCESS") { var data = hIKROBOTReturn.data.ToString().DeserializeObject<HIKROBOTReturnData>(); content.OK(data: data); } else { throw new Exception(hIKROBOTReturn.message); } } catch (Exception ex) { content.Error(ex.Message); } finally { _trackloginfoService.AddTrackLog(hIKROBOTTaskSubmit, content, "ä¸å海康AGVä»»å¡", "", hIKROBOTReturn.message); } return content; } #endregion /// <summary> /// 海康任å¡å®ä½ç±»è½¬æ¢ /// </summary> /// <param name="task"></param> /// <returns></returns> public HIKROBOTTaskSubmit HIKROBOTTask(Dt_Task task) { HIKROBOTTaskSubmit hIKROBOTTaskSubmit = new HIKROBOTTaskSubmit(); try { var tasktype = (TaskTypeEnum)Enum.GetValues(typeof(TaskTypeEnum)).GetValue(task.TaskType); hIKROBOTTaskSubmit.initPriority = task.Grade; hIKROBOTTaskSubmit.robotTaskCode = task.WMSTaskNum; hIKROBOTTaskSubmit.taskType = tasktype.ToString(); ExtraDto extraDto = new ExtraDto(); CarrierInfoDto carrierInfoDto = new CarrierInfoDto() { carrierCode = task.PalletCode, carrierType = task.PalletCode.Contains("LXM") ? "DX" : "SX" }; extraDto.carrierInfo.Add(carrierInfoDto); hIKROBOTTaskSubmit.extra = extraDto; switch (tasktype) { case TaskTypeEnum.CPInbound: case TaskTypeEnum.CPOutbound: case TaskTypeEnum.MLInbound: case TaskTypeEnum.MLOutbound: break; case TaskTypeEnum.F01: break; case TaskTypeEnum.RK3F: case TaskTypeEnum.CK3F: case TaskTypeEnum.F02: { TargetRouteDto target = new TargetRouteDto() { code = task.CurrentAddress, operation = "DELIVERY",//åè´§ seq = 0, type = "SITE", }; TargetRouteDto targetRoute = new TargetRouteDto() { code = task.NextAddress, operation = "DELIVERY",//éè´§ seq = 1, type = "SITE" }; hIKROBOTTaskSubmit.targetRoute.Add(target); hIKROBOTTaskSubmit.targetRoute.Add(targetRoute); } break; case TaskTypeEnum.Q1TSJ4: { TargetRouteDto target = new TargetRouteDto() { code = task.CurrentAddress, operation = "DELIVERY",//åè´§ seq = 0, type = "SITE", }; TargetRouteDto targetRoute = new TargetRouteDto() { code = task.NextAddress, operation = "DELIVERY",//éè´§ seq = 1, type = "STORAGE" }; hIKROBOTTaskSubmit.targetRoute.Add(target); hIKROBOTTaskSubmit.targetRoute.Add(targetRoute); } break; case TaskTypeEnum.STU0003: case TaskTypeEnum.CHUKU1: { TargetRouteDto target = new TargetRouteDto() { code = task.CurrentAddress, operation = "DELIVERY",//åè´§ seq = 0, type = "STORAGE", }; TargetRouteDto targetRoute = new TargetRouteDto() { code = task.NextAddress, operation = "DELIVERY",//éè´§ seq = 1, type = "SITE", }; hIKROBOTTaskSubmit.targetRoute.Add(target); hIKROBOTTaskSubmit.targetRoute.Add(targetRoute); } break; case TaskTypeEnum.Q3RK: break; case TaskTypeEnum.Q3CK: break; case TaskTypeEnum.Move: break; case TaskTypeEnum.CPMoveInventory: break; default: break; } } catch (Exception ex) { } return hIKROBOTTaskSubmit; } } } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs
@@ -27,18 +27,20 @@ public WebResponseContent CreateKLSNewInTask(TaskDTO taskDTO, int taskType) { WebResponseContent content = new WebResponseContent(); Dt_KLSLocationInfo? kLSLocationInfo = null; try { int containerType = taskDTO.containerCode.Contains("LLM") ? (int)LocationTypeEnum.LargePallet : (int)LocationTypeEnum.SmallPallet; #region ç¹å°ç¹ if (!string.IsNullOrEmpty(taskDTO.toLocationCode)) { var LocationInfo = _kLSLocationInfoService.Repository.QueryFirst(x => x.LocationCode == taskDTO.toLocationCode) ?? throw new Exception($"æªæ¾å°ç»ç¹è´§ä½ã{taskDTO.toLocationCode}ã"); if (LocationInfo.LocationStatus != (int)LocationStatusEnum.Free) throw new Exception($"ç»ç¹è´§ä½ã{taskDTO.toLocationCode}ãè´§ä½ç¶æä¸ä¸ºç©ºè´§ä½"); kLSLocationInfo = _kLSLocationInfoService.Repository.QueryFirst(x => x.LocationCode == taskDTO.toLocationCode) ?? throw new Exception($"æªæ¾å°ç»ç¹è´§ä½ã{taskDTO.toLocationCode}ã"); if (kLSLocationInfo.LocationStatus != (int)LocationStatusEnum.Free) throw new Exception($"ç»ç¹è´§ä½ã{taskDTO.toLocationCode}ãè´§ä½ç¶æä¸ä¸ºç©ºè´§ä½"); } #endregion //è·åè´§ä½ä¿¡æ¯ Dt_KLSLocationInfo? kLSLocationInfo = _kLSLocationInfoService.GetFreeLocationInfo(taskDTO.toAreaCode, containerType) ?? throw new Exception($"æªæ¾å°ç»ç¹åºåºã{taskDTO.toAreaCode}ãå¯ç¨ç©ºè´§ä½ï¼"); else kLSLocationInfo = _kLSLocationInfoService.GetFreeLocationInfo(taskDTO.toAreaCode, containerType) ?? throw new Exception($"æªæ¾å°ç»ç¹åºåºã{taskDTO.toAreaCode}ãå¯ç¨ç©ºè´§ä½ï¼"); Dt_Task dt_Task = new() { TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), @@ -60,6 +62,7 @@ content = SendKLSTask(dt_Task); if (!content.Status) throw new Exception(content.Message); dt_Task.TaskState = (int)TaskStatusEnum.Execut; dt_Task.Dispatchertime=DateTime.Now; #endregion try { @@ -125,6 +128,7 @@ content = SendKLSTask(dt_Task); if (!content.Status) throw new Exception(content.Message); dt_Task.TaskState = (int)TaskStatusEnum.Execut; dt_Task.Dispatchertime = DateTime.Now; #endregion try { ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -107,7 +107,6 @@ Message = $"ä»»å¡å·ã{task.taskCode}ã{content.Message}" }); continue; //throw new Exception(content.Message); } if (BaseDal.QueryFirst(x => x.WMSTaskNum == task.taskCode && x.TaskType == item.taskType) != null) { @@ -142,6 +141,7 @@ #endregion switch (item.taskType) { #region å¯ä¹å£«AGVé¢æåº case (int)TaskTypeEnum.MLInbound: content = CreateKLSNewInTask(task, item.taskType); objects.Add(content.Data); @@ -150,6 +150,8 @@ content = CreateKLSNewOutTask(task, item.taskType); objects.Add(content.Data); break; #endregion #region æ·è§åå车æååº case (int)TaskTypeEnum.CPInbound: content = CreateRGVNewInTask(task, item.taskType); objects.Add(content.Data); @@ -158,22 +160,30 @@ content = CreateRGVNewOutTask(task, item.taskType); objects.Add(content.Data); break; case (int)TaskTypeEnum.CJInbound: #endregion #region 海康AGV case (int)TaskTypeEnum.Q1TSJ4: content = CreateHKNewInTask(task, item.taskType); objects.Add(content.Data); break; case (int)TaskTypeEnum.CJOutbound: case (int)TaskTypeEnum.STU0003: case (int)TaskTypeEnum.CHUKU1: content = CreateHKNewOutTask(task, item.taskType); objects.Add(content.Data); break; case (int)TaskTypeEnum.Carry: case (int)TaskTypeEnum.F01: case (int)TaskTypeEnum.Q3RK: case (int)TaskTypeEnum.Q3CK: content = CarryTask(task, item.taskType); objects.Add(content.Data); break; case (int)TaskTypeEnum.CJCarry: case (int)TaskTypeEnum.F02: case (int)TaskTypeEnum.RK3F: case (int)TaskTypeEnum.CK3F: content = CJCarryTaske(task, item.taskType); objects.Add(content.Data); break; #endregion default: objects.Add(new { @@ -221,7 +231,7 @@ //åå车 bool isAGV = dt_Task.TaskType == (int)TaskTypeEnum.CPInbound || dt_Task.TaskType == (int)TaskTypeEnum.CPOutbound; //海康 bool isHK = dt_Task.TaskType == (int)TaskTypeEnum.Carry || dt_Task.TaskType == (int)TaskTypeEnum.CJInbound || dt_Task.TaskType == (int)TaskTypeEnum.CJInbound || dt_Task.TaskType == (int)TaskTypeEnum.CJOutbound; bool isHK = dt_Task.TaskType == (int)TaskTypeEnum.Carry || dt_Task.TaskType == (int)TaskTypeEnum.RK3F || dt_Task.TaskType == (int)TaskTypeEnum.CK3F || dt_Task.TaskType == (int)TaskTypeEnum.Q1TSJ4 || dt_Task.TaskType == (int)TaskTypeEnum.STU0003 || dt_Task.TaskType == (int)TaskTypeEnum.F02 || dt_Task.TaskType == (int)TaskTypeEnum.CHUKU1 || dt_Task.TaskType == (int)TaskTypeEnum.Q3RK || dt_Task.TaskType == (int)TaskTypeEnum.Q3CK; //è¿éå°ç¶ææ¹åäº198åæ¶ä»»å¡ dt_Task.TaskType = TaskStatusEnum.WMSCancel.ObjToInt(); #region å¯ä¹å£« ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs
@@ -24,7 +24,7 @@ { foreach (var item in tasks) { var content = SendHIKROBOTTask(item); var content =_taskService.SendHIKROBOTTask(item); } } #endregion @@ -34,65 +34,8 @@ { foreach (var item in tasks) { var content = SendHIKROBOTTask(item); var content = _taskService.SendHIKROBOTTask(item); } } #endregion #region ä¸å海康AGVä»»å¡ public WebResponseContent SendHIKROBOTTask(Dt_Task task) { WebResponseContent content = new WebResponseContent(); try { Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(HIKROBOTTaskSubmit)) ?? throw new Exception("æªæ¾å°æµ·åº·AGVä»»å¡ä¸åæ¥å£é 置信æ¯ï¼è¯·æ£æ¥æ¥å£é ç½®"); #region ä»»å¡ä¿¡æ¯è½¬æ¢ HIKROBOTTaskSubmit hIKROBOTTaskSubmit = new HIKROBOTTaskSubmit() { taskType = "", initPriority = task.Grade, targetRoute = new List<TargetRouteDto> { new TargetRouteDto { type= "SITE", code=task.CurrentAddress, operation="COLLECT",//åè´§ }, new TargetRouteDto { type= "SITE", code=task.NextAddress, operation="DELIVERY",//éè´§ } } }; #endregion string response = HttpHelper.Post(apiInfo.ApiAddress, hIKROBOTTaskSubmit.Serialize()); var hIKROBOTReturn = response.DeserializeObject<HIKROBOTReturn>(); if (hIKROBOTReturn.code == "SUCCESS") { var data = hIKROBOTReturn.data.ToString().DeserializeObject<HIKROBOTReturnData>(); content.OK(data: data); //task.Remark = data.robotTaskCode; } else { throw new Exception(hIKROBOTReturn.message); } //_taskService.UpdateData(task); } catch (Exception ex) { content.Error(ex.Message); } finally { } return content; } #endregion } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskExtend.cs
@@ -38,7 +38,7 @@ #endregion #region æ¥æ¾æµ·åº·AGVä»»å¡ Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.Carry || x.TaskType == (int)TaskTypeEnum.CJCarry || x.TaskType == (int)TaskTypeEnum.CJInbound || x.TaskType == (int)TaskTypeEnum.CJOutbound).OrderByDescending(x => x.Grade).ToList(); Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.Carry || x.TaskType == (int)TaskTypeEnum.RK3F || x.TaskType == (int)TaskTypeEnum.CK3F || x.TaskType == (int)TaskTypeEnum.Q1TSJ4 || x.TaskType == (int)TaskTypeEnum.STU0003 || x.TaskType == (int)TaskTypeEnum.F02 || x.TaskType == (int)TaskTypeEnum.CHUKU1 || x.TaskType == (int)TaskTypeEnum.Q3RK || x.TaskType == (int)TaskTypeEnum.Q3CK).OrderByDescending(x => x.Grade).ToList(); if (Tasks.Count > 0) HIKROBOTTask(Tasks); #endregion } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs
@@ -49,9 +49,9 @@ { try { //SendNewTask(); SendNewTask(); //SendWaitToTask(); SendWaitToTask(); } catch (Exception ex) {