| | |
| | | [ |
| | | { |
| | | title: "ç«å°ç¶æ", |
| | | field: "isOccupied", |
| | | field: "StationStatus", |
| | | type: "select", |
| | | width: 150, |
| | | require: true, |
| | |
| | | }, |
| | | { |
| | | title: "ç«å°ç¶æ", |
| | | field: "isOccupied", |
| | | field: "StationStatus", |
| | | type: "select", |
| | | data: [ |
| | | { key: "0", value: "空é²" }, |
| | | { key: "1", value: "å ç¨" }, |
| | | { key: "2", value: "ç¦ç¨" }, |
| | | ], |
| | | }, |
| | | { |
| | | title: "ç«å°æ¯å¦å¯ç¨", |
| | | field: "IsOccupied", |
| | | type: "select", |
| | | data: [ |
| | | { key: "0", value: "å¯ç¨" }, |
| | | { key: "1", value: "å ç¨" }, |
| | | ], |
| | | }, |
| | | ], |
| | |
| | | align: "left", |
| | | bind: { |
| | | key: "value", |
| | | data: [ |
| | | data:[ |
| | | { key: "1", value: "åªå
¥" }, |
| | | { key: "2", value: "åªåº" }, |
| | | { key: "3", value: "å¯å
¥å¯åº" }, |
| | |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "isOccupied", |
| | | { |
| | | field: "stationStatus", |
| | | title: "ç«å°ç¶æ", |
| | | type: "select", |
| | | width: 120, |
| | |
| | | }, |
| | | }, |
| | | { |
| | | field: "isOccupied", |
| | | title: "ç«å°æ¯å¦å¯ç¨", |
| | | type: "select", |
| | | width: 120, |
| | | align: "left", |
| | | bind: { |
| | | key: "value", |
| | | data: [ |
| | | { key: "0", value: "å¯ç¨" }, |
| | | { key: "1", value: "å ç¨" }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | field: "creater", |
| | | title: "å建人", |
| | | type: "string", |
| | |
| | | /// </summary> |
| | | [Description("æåç§»åº")] |
| | | CPMoveInventory, |
| | | |
| | | /// <summary> |
| | | /// çº¿è¾¹å°æåæº |
| | | /// </summary> |
| | | [Description("çº¿è¾¹å°æåæº")] |
| | | F04, |
| | | /// <summary> |
| | | /// æåæºå°çº¿è¾¹ |
| | | /// </summary> |
| | | [Description("æåæºå°çº¿è¾¹")] |
| | | F03, |
| | | } |
| | | |
| | | public enum TaskInboundTypeEnum |
| | |
| | | // å建Headersåå
¸ |
| | | var headers = new Dictionary<string, string> |
| | | { |
| | | { "X-lr-request-id", DateTimeOffset.Now.ToUnixTimeSeconds().ToString() } |
| | | { "X-lr-request-id", DateTimeOffset.Now.ToUnixTimeSeconds().ToString()+task.TaskNum } |
| | | // 妿éè¦å
¶ä»Headerï¼å¯ä»¥ç»§ç»æ·»å |
| | | // { "Content-Type", "application/json" } |
| | | }; |
| | |
| | | HIKROBOTTaskSubmit hIKROBOTTaskSubmit = new HIKROBOTTaskSubmit(); |
| | | try |
| | | { |
| | | var tasktype = (TaskTypeEnum)Enum.GetValues(typeof(TaskTypeEnum)).GetValue(task.TaskType-1); |
| | | var tasktype = (TaskTypeEnum)Enum.GetValues(typeof(TaskTypeEnum)).GetValue(task.TaskType - 1); |
| | | |
| | | hIKROBOTTaskSubmit.initPriority = task.Grade; |
| | | hIKROBOTTaskSubmit.robotTaskCode = task.WMSTaskNum; |
| | |
| | | case TaskTypeEnum.RK3F: |
| | | case TaskTypeEnum.CK3F: |
| | | case TaskTypeEnum.F02: |
| | | case TaskTypeEnum.F03: |
| | | case TaskTypeEnum.F04: |
| | | { |
| | | TargetRouteDto target = new TargetRouteDto() |
| | | { |
| | |
| | | /// </summary> |
| | | /// <param name="TaskCode">ä»»å¡å·</param> |
| | | /// <returns></returns> |
| | | public WebResponseContent Hikvisiontaskscontinue(string TaskCode,string Address=null) |
| | | public WebResponseContent Hikvisiontaskscontinue(string TaskCode, string Address = null) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | HIKROBOTReturn hIKROBOTReturn = null; |
| | | HIKROBOTTaskContinue hIKROBOTTaskContinue =null; |
| | | HIKROBOTTaskContinue hIKROBOTTaskContinue = null; |
| | | try |
| | | { |
| | | // 1. åæ°éªè¯ |
| | |
| | | hIKROBOTTaskContinue = new HIKROBOTTaskContinue() |
| | | { |
| | | triggerCode = TaskCode, |
| | | triggerType="TASK",//åºå®å¼ |
| | | targetRoute=string.IsNullOrEmpty(Address)?null: |
| | | triggerType = "TASK",//åºå®å¼ |
| | | targetRoute = string.IsNullOrEmpty(Address) ? null : |
| | | new TargetRouteDto() |
| | | { |
| | | code = Address, |
| | |
| | | }; |
| | | var headers = new Dictionary<string, string> |
| | | { |
| | | { "X-lr-request-id", DateTimeOffset.Now.ToUnixTimeSeconds().ToString() } |
| | | { "X-lr-request-id", DateTimeOffset.Now.ToUnixTimeSeconds().ToString()+TaskCode } |
| | | }; |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, hIKROBOTTaskContinue.Serialize(),headers: headers); |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, hIKROBOTTaskContinue.Serialize(), headers: headers); |
| | | hIKROBOTReturn = response.DeserializeObject<HIKROBOTReturn>(); |
| | | |
| | | |
| | | if (hIKROBOTReturn.code == "SUCCESS") |
| | | { |
| | | var data = hIKROBOTReturn.data.ToString().DeserializeObject<HIKROBOTReturnData>(); |
| | |
| | | break; |
| | | case "outbin"://离å¼èµ·ç¹ |
| | | { |
| | | |
| | | ///夿任塿¯å¦è·è®¾å¤æå
³ |
| | | TaskFromCompleted(task, deviceTypeEnum); |
| | | } |
| | |
| | | { |
| | | DeviceProDTO? deviceProDTO = device.DeviceProDTOs.FirstOrDefault((DeviceProDTO x) => x.DeviceProParamName == HoistEnum.Inboundboxon.ToString()); |
| | | if (device.IsConnected) |
| | | device.SetValue(HoistEnum.Inboundboxon, 1);// |
| | | device.SetValue(HoistEnum.Inboundboxon, 1); |
| | | else |
| | | task.ExceptionMessage = "æåæºä¿¡æ¯è®¾å¤è¿æ¥å¤±è´¥"; |
| | | } |
| | | } |
| | | |
| | | //åºæåæº |
| | | if (task.TaskType == TaskTypeEnum.CK3F.ObjToInt() && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute) |
| | | else if (task.TaskType == TaskTypeEnum.CK3F.ObjToInt() && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute) |
| | | { |
| | | var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; |
| | | if (device == null) task.ExceptionMessage = "æªæ¾å°æåæºä¿¡æ¯"; |
| | | else |
| | | { |
| | | if (device.IsConnected) |
| | | device.SetValue(HoistEnum.Outboundboxon,1);//åºåºå®æ |
| | | device.SetValue(HoistEnum.Outboundboxon, 1);//åºåºå®æ |
| | | else |
| | | task.ExceptionMessage = "æåæºä¿¡æ¯è®¾å¤è¿æ¥å¤±è´¥"; |
| | | } |
| | | } |
| | | //忥¼ åºåº |
| | | if (task.TaskType == TaskTypeEnum.CHUKU1.ObjToInt() && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute) |
| | | else if ((task.TaskType == TaskTypeEnum.CHUKU1.ObjToInt() || task.TaskType == TaskTypeEnum.F04.ObjToInt()) && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute) |
| | | { |
| | | var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; |
| | | if (device == null) task.ExceptionMessage = "æªæ¾å°æåæºä¿¡æ¯"; |
| | |
| | | device.SetValue(HoistEnum.Emptyboxplacedinposition, 1); |
| | | else |
| | | task.ExceptionMessage = "æåæºä¿¡æ¯è®¾å¤è¿æ¥å¤±è´¥"; |
| | | } |
| | | } |
| | | } |
| | | //忥¼ å
¥åº |
| | | if (task.TaskType == TaskTypeEnum.Q1TSJ4.ObjToInt() && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute) |
| | | else if ((task.TaskType == TaskTypeEnum.Q1TSJ4.ObjToInt() || task.TaskType == TaskTypeEnum.F03.ObjToInt()) && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute) |
| | | { |
| | | var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; |
| | | if (device == null) task.ExceptionMessage = "æªæ¾å°æåæºä¿¡æ¯"; |
| | |
| | | { |
| | | if (device.IsConnected) |
| | | //å以ä¸ä¸ªåºåºå®æä¿¡å· |
| | | device.SetValue(HoistEnum.Outboundboxretrievalcompleted,"1",task.SourceAddress); |
| | | device.SetValue(HoistEnum.Outboundboxretrievalcompleted, 1, task.SourceAddress); |
| | | else |
| | | task.ExceptionMessage = "æåæºä¿¡æ¯è®¾å¤è¿æ¥å¤±è´¥"; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | break; |
| | |
| | | case "end"://ä»»å¡å®æéç¥ |
| | | { |
| | | ///夿任塿¯å¦è·è®¾å¤æå
³ |
| | | |
| | | TaskCompleted(task, deviceTypeEnum); |
| | | } |
| | | break; |
| | |
| | | continue; |
| | | //throw new Exception($"æçå·ã{task.containerCode}ãå·²åå¨ä»»å¡"); |
| | | } |
| | | if (BaseDal.QueryFirst(x => x.SourceAddress == task.fromLocationCode && x.TaskType == item.taskType) != null) |
| | | if (BaseDal.QueryFirst(x => x.SourceAddress == task.fromLocationCode && x.TaskType == item.taskType&&x.TaskState<TaskStatusEnum.TakeFinish.ObjToInt())!=null) |
| | | { |
| | | objects.Add(new |
| | | { |
| | |
| | | continue; |
| | | //throw new Exception("è®¾å¤æ
é"); |
| | | } |
| | | if (task.TaskType == TaskTypeEnum.RK3F.ObjToInt()|| task.TaskType == TaskTypeEnum.Q1TSJ4.ObjToInt()) |
| | | if (task.TaskType == TaskTypeEnum.RK3F.ObjToInt() || task.TaskType == TaskTypeEnum.CHUKU1.ObjToInt() || task.TaskType == TaskTypeEnum.F04.ObjToInt()) |
| | | { |
| | | if (task.TaskType == TaskTypeEnum.RK3F.ObjToInt()) |
| | | { |
| | |
| | | } |
| | | else |
| | | { |
| | | |
| | | #region 4楼å
¥åº |
| | | //4楼åºåºæç®±å°ä½ |
| | | if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, task.SourceAddress) != 1) |
| | | if (device.GetValue<HoistEnum, short>(HoistEnum.ReturnbinAvailable, task.TargetAddress) != 2) |
| | | { |
| | | if (task.ExceptionMessage != "4楼å
¥åºæç®±æ²¡æå°ä½") |
| | | if (task.ExceptionMessage != "4Fæåæºå
¥å£æè´§") |
| | | { |
| | | task.ExceptionMessage = "4楼å
¥åºæç®±æ²¡æå°ä½"; |
| | | task.ExceptionMessage = "4Fæåæºå
¥å£æè´§"; |
| | | Uptasks.Add(task); |
| | | } |
| | | continue; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | var result = _taskService.Hikvisiontaskscontinue(task.WMSTaskNum); |
| | | if (result.Status == false) |
| | | { |
| | | if (task.ExceptionMessage!= result.Message) |
| | | if (task.ExceptionMessage != result.Message) |
| | | { |
| | | task.ExceptionMessage = result.Message; |
| | | Uptasks.Add(task); |
| | |
| | | //è¿éä»»å¡åæäºCheckPalletCodeing |
| | | |
| | | } |
| | | else if(task.TaskType == TaskTypeEnum.CK3F.ObjToInt()) //åºåº |
| | | else if (task.TaskType == TaskTypeEnum.CK3F.ObjToInt() || task.TaskType == TaskTypeEnum.Q1TSJ4.ObjToInt() || task.TaskType == TaskTypeEnum.F03.ObjToInt()) //åºåº |
| | | { |
| | | ////åºåºæç®±ç¼åæ°é(è¿ä¸ªæ¯åºåºæ¥è¯¢çæ¶åè¦æ¥ä¸ä¸ï¼è¿ç»wms) |
| | | //if (device.GetValue<HoistEnum, short>(HoistEnum.Outboundmaterialbox, "TSJ") == 0) throw new Exception("没æåºåºæç®±ç¼åæ°é为空"); |
| | | |
| | | |
| | | //读å3楼åºåºæç®±å°ä½ |
| | | if (device.GetValue<HoistEnum, short>(HoistEnum.SOutboundmaterialbox, task.SourceAddress) != 1) |
| | | if (task.TaskType == TaskTypeEnum.CK3F.ObjToInt()) |
| | | { |
| | | if (task.ExceptionMessage != "3楼åºåºæç®±æ²¡æå°ä½") |
| | | //读å3楼åºåºæç®±å°ä½ |
| | | if (device.GetValue<HoistEnum, short>(HoistEnum.SOutboundmaterialbox, task.SourceAddress) != 1) |
| | | { |
| | | task.ExceptionMessage = "3楼åºåºæç®±æ²¡æå°ä½"; |
| | | Uptasks.Add(task); |
| | | if (task.ExceptionMessage != "3楼æåæºåºå£å
çµå馿 è´§") |
| | | { |
| | | task.ExceptionMessage = "3楼æåæºåºå£å
çµå馿 è´§"; |
| | | Uptasks.Add(task); |
| | | } |
| | | continue; |
| | | } |
| | | continue; |
| | | } |
| | | //ç¶åè°ç¨è¾é线æ¥å£ï¼éç¥è¾é线ææç®±éè¦å
¥åºï¼ä»»å¡ä¸¾è¡æ§è¡ |
| | | var result = _taskService.Hikvisiontaskscontinue(task.WMSTaskNum); |
| | | if (result.Status == false) |
| | | else |
| | | { |
| | | if (task.ExceptionMessage != result.Message) |
| | | if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, task.SourceAddress) != 1) |
| | | { |
| | | task.ExceptionMessage = result.Message; |
| | | Uptasks.Add(task); |
| | | if (task.ExceptionMessage != "4楼æåæºåºå£å
çµå馿 è´§") |
| | | { |
| | | task.ExceptionMessage = "4楼æåæºåºå£å
çµå馿 è´§"; |
| | | Uptasks.Add(task); |
| | | } |
| | | continue; |
| | | } |
| | | continue; |
| | | } |
| | | task.TaskState = (int)TaskStatusEnum.AGV_ToExecute; |
| | | task.ExceptionMessage = ""; |
| | | Uptasks.Add(task); |
| | | } |
| | | else if (task.TaskType == TaskTypeEnum.CHUKU1.ObjToInt())//4楼åºåºä»»å¡ |
| | | { |
| | | |
| | | #region åºåºä¿¡å· |
| | | //åç©ºç®±çæ¶åè¦è¯»ä¸ä¸ªå |
| | | if (device.GetValue<HoistEnum, string>(HoistEnum.Emptycontainernumber, task.TargetAddress) == null) |
| | | { |
| | | if (task.ExceptionMessage != "4楼空箱,读ç 卿²¡æè¯»å°å¼") |
| | | { |
| | | task.ExceptionMessage = "4楼空箱,读ç 卿²¡æè¯»å°å¼"; |
| | | Uptasks.Add(task); |
| | | } |
| | | continue; |
| | | } |
| | | //夿4楼空箱å°ä½ |
| | | if (device.GetValue<HoistEnum, short>(HoistEnum.ReturnbinAvailable, task.TargetAddress) != 2) |
| | | { |
| | | if (task.ExceptionMessage != "æåæºå
¥åºç©ºæ è´§") |
| | | { |
| | | task.ExceptionMessage = "æåæºå
¥åºç©ºæ è´§"; |
| | | Uptasks.Add(task); |
| | | } |
| | | continue; |
| | | } |
| | | #endregion |
| | | //ç¶åè°ç¨è¾é线æ¥å£ï¼éç¥è¾é线ææç®±éè¦å
¥åºï¼ä»»å¡ä¸¾è¡æ§è¡ |
| | | var result = _taskService.Hikvisiontaskscontinue(task.WMSTaskNum); |
| | | if (result.Status == false) |
| | |
| | | } |
| | | continue; |
| | | } |
| | | |
| | | task.TaskState = (int)TaskStatusEnum.AGV_ToExecute; |
| | | task.ExceptionMessage = ""; |
| | | Uptasks.Add(task); |
| | | } |
| | | //else if (task.TaskType == TaskTypeEnum.CHUKU1.ObjToInt()) //忥¼åºå
å°æåæº |
| | | //{ |
| | | |
| | | |
| | | //} |
| | | |
| | | } |
| | | |
| | | #region æçå·ç¡®è®¤ä¸ |
| | | //æ¥æ¾ä¸æ¥¼å
¥åºä»»å¡ç¶æä¸ºCheckPalletCodeingç任塿çå·ç¡®è®¤ä¸ |
| | | var RK3FTasks = _taskService.Repository.QueryFirst(x => x.TaskType == TaskTypeEnum.RK3F.ObjToInt() && x.TaskState == (int)TaskStatusEnum.CheckPalletCodeing); |
| | | if (RK3FTasks!=null) |
| | | if (RK3FTasks != null) |
| | | { |
| | | var Barcode = device.SetValue<HoistEnum, short>(HoistEnum.Codereadingtriggered, 1); |
| | | //æ£æ¥3楼å
¥åºç®±å·æ¯å¤å°ï¼ç¶åä¼ ç»wms |
| | |
| | | RK3FTasks.TaskState = (int)TaskStatusEnum.CheckPalletCodeFinish; |
| | | Uptasks.Add(RK3FTasks); |
| | | } |
| | | #endregion |
| | | if (Uptasks.Count > 0) |
| | | { |
| | | _taskService.UpdateData(Uptasks); |
| | |
| | | try |
| | | { |
| | | #region 䏿¥¼èªå¨ä»»å¡ |
| | | List<string> StationCodes = new() { "0321935CC0329515", "0321935CC0329015", "0321935CC0328485", "0321935CC0328005" }; |
| | | List<string> StationCodes = new() { "0348840CC0315690", "0349350CC0315686" }; |
| | | var stations = _StationInfoService.Repository.QueryData(x => StationCodes.Contains(x.StationCode)); |
| | | #region å
¥æåæºä»»å¡ |
| | | var station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock); |
| | | var station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock && x.IsOccupied == 0); |
| | | if (station != null) |
| | | { |
| | | var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); |
| | |
| | | { |
| | | if (device.GetValue<HoistEnum, short>(HoistEnum.SOutboundmaterialbox, "TSJC3F") == 1) |
| | | { |
| | | Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC3F"); |
| | | Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC3F" /*&& x.TaskState < TaskStatusEnum.TakeFinish.ObjToInt()*/); |
| | | if (dt_Task == null) |
| | | { |
| | | station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free); |
| | | station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free && x.IsOccupied == 0); |
| | | if (station != null) |
| | | { |
| | | var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 4F |
| | | List<string> stationCodes = new() { "0319882DD0313240", "0319882DD0313750" }; |
| | | var Stations = _StationInfoService.Repository.QueryData(x => stationCodes.Contains(x.StationCode)); |
| | | #region å
¥æåæºä»»å¡ |
| | | var Station = Stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock && x.IsOccupied == 0); |
| | | if (Station != null) |
| | | { |
| | | var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); |
| | | Dt_Task dt_Task = new Dt_Task() |
| | | { |
| | | TaskNum = tasknum, |
| | | WMSTaskNum = "GP" + tasknum, |
| | | Grade = 60, |
| | | PalletCode = Station.PalletCode, |
| | | Roadway = "", |
| | | TaskState = (int)TaskStatusEnum.New, |
| | | TaskType = TaskTypeEnum.F04.ObjToInt(), |
| | | SourceAddress = Station.StationCode, |
| | | CurrentAddress = Station.StationCode, |
| | | NextAddress = "TSJR4F", |
| | | TargetAddress = "TSJR4F", |
| | | Creater = "WCS", |
| | | }; |
| | | var content = _taskService.SendHIKROBOTTask(dt_Task); |
| | | if (content.Status) |
| | | { |
| | | dt_Task.TaskState = (int)TaskStatusEnum.Execut; |
| | | dt_Task.Dispatchertime = DateTime.Now; |
| | | Station.StationStatus = (int)LocationStatusEnum.OutLock; |
| | | _taskService.AddData(dt_Task); |
| | | _StationInfoService.UpdateData(Station); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region åºæåæºä»»å¡ |
| | | device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; |
| | | if (device != null && device.IsConnected) |
| | | { |
| | | if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F") == 1) |
| | | { |
| | | Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC4F" /*&& x.TaskState < TaskStatusEnum.TakeFinish.ObjToInt()*/); |
| | | if (dt_Task == null) |
| | | { |
| | | Station = Stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free && x.IsOccupied == 0); |
| | | if (Station != null) |
| | | { |
| | | var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); |
| | | dt_Task = new Dt_Task() |
| | | { |
| | | TaskNum = tasknum, |
| | | WMSTaskNum = "GP" + tasknum, |
| | | Grade = 60, |
| | | PalletCode = "LXM" + tasknum, |
| | | Roadway = "", |
| | | TaskState = (int)TaskStatusEnum.New, |
| | | TaskType = TaskTypeEnum.F03.ObjToInt(), |
| | | SourceAddress = "TSJC4F", |
| | | CurrentAddress = "TSJC4F", |
| | | NextAddress = Station.StationCode, |
| | | TargetAddress = Station.StationCode, |
| | | Creater = "WCS", |
| | | }; |
| | | var content = _taskService.SendHIKROBOTTask(dt_Task); |
| | | if (content.Status) |
| | | { |
| | | dt_Task.TaskState = (int)TaskStatusEnum.Execut; |
| | | dt_Task.Dispatchertime = DateTime.Now; |
| | | Station.StationStatus = (int)LocationStatusEnum.InLock; |
| | | _taskService.AddData(dt_Task); |
| | | _StationInfoService.UpdateData(Station); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #endregion |
| | | |
| | | #region 忥¼èªå¨ä»»å¡ |
| | | List<string> LocationCodes = new() { "RGD0303A04041","RG0302A05041","RG0304A05041","RG0205A05031" }; |
| | | //List<string> LocationCodes = new() { "RGD0303A04041", "RG0302A05041", "RG0304A05041", "RG0205A05031" }; |
| | | List<string> LocationCodes = new() { "RGD0302A05041", "RGD0304A05041", "R3CG0106A04031", "RGD0307A05012" }; |
| | | var hKLocationInfos = _HKLocationInfoService.Repository.QueryData(x => LocationCodes.Contains(x.LocationCode)); |
| | | #region å
¥æåæºä»»å¡ |
| | | var hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.InStock); |
| | |
| | | #endregion |
| | | |
| | | #region åºæåæºä»»å¡ |
| | | if (device != null && device.IsConnected) |
| | | { |
| | | if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F") == 1) |
| | | { |
| | | Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC4F"); |
| | | if (dt_Task == null) |
| | | { |
| | | hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.Free); |
| | | if (hKLocation != null) |
| | | { |
| | | var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); |
| | | dt_Task = new Dt_Task() |
| | | { |
| | | TaskNum = tasknum, |
| | | WMSTaskNum = "GP" + tasknum, |
| | | Grade = 60, |
| | | PalletCode = "LXM" + tasknum, |
| | | Roadway = "", |
| | | TaskState = (int)TaskStatusEnum.New, |
| | | TaskType = TaskTypeEnum.Q1TSJ4.ObjToInt(), |
| | | SourceAddress = "TSJC4F", |
| | | CurrentAddress = "TSJC4F", |
| | | NextAddress = hKLocation.LocationCode, |
| | | TargetAddress = hKLocation.LocationCode, |
| | | Creater = "WCS", |
| | | }; |
| | | var content = _taskService.SendHIKROBOTTask(dt_Task); |
| | | if (content.Status) |
| | | { |
| | | dt_Task.TaskState = (int)TaskStatusEnum.Execut; |
| | | dt_Task.Dispatchertime = DateTime.Now; |
| | | hKLocation.LocationStatus = (int)LocationStatusEnum.InLock; |
| | | _taskService.AddData(dt_Task); |
| | | _HKLocationInfoService.UpdateData(hKLocation); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | //if (device != null && device.IsConnected) |
| | | //{ |
| | | // if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC4F") == 1) |
| | | // { |
| | | // Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC4F"); |
| | | // if (dt_Task == null) |
| | | // { |
| | | // hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.Free); |
| | | // if (hKLocation != null) |
| | | // { |
| | | // var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); |
| | | // dt_Task = new Dt_Task() |
| | | // { |
| | | // TaskNum = tasknum, |
| | | // WMSTaskNum = "GP" + tasknum, |
| | | // Grade = 60, |
| | | // PalletCode = "LXM" + tasknum, |
| | | // Roadway = "", |
| | | // TaskState = (int)TaskStatusEnum.New, |
| | | // TaskType = TaskTypeEnum.Q1TSJ4.ObjToInt(), |
| | | // SourceAddress = "TSJC4F", |
| | | // CurrentAddress = "TSJC4F", |
| | | // NextAddress = hKLocation.LocationCode, |
| | | // TargetAddress = hKLocation.LocationCode, |
| | | // Creater = "WCS", |
| | | // }; |
| | | // var content = _taskService.SendHIKROBOTTask(dt_Task); |
| | | // if (content.Status) |
| | | // { |
| | | // dt_Task.TaskState = (int)TaskStatusEnum.Execut; |
| | | // dt_Task.Dispatchertime = DateTime.Now; |
| | | // hKLocation.LocationStatus = (int)LocationStatusEnum.InLock; |
| | | // _taskService.AddData(dt_Task); |
| | | // _HKLocationInfoService.UpdateData(hKLocation); |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | // } |
| | | //} |
| | | #endregion |
| | | |
| | | #endregion |
| | |
| | | if (Tasks.Count > 0) IsMoveTask(Tasks); |
| | | #endregion |
| | | |
| | | #region æ¥æ¾æµ·åº·AGVä»»å¡ |
| | | Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.F01 || 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 |
| | | //#region æ¥æ¾æµ·åº·AGVä»»å¡ |
| | | //Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.F01 || 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 |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | #endregion |
| | | |
| | | #region ä¸åå¤è®¾å
许è¿å
¥ç海康AGVä»»å¡ |
| | | Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.AGV_WaitToExecute).OrderByDescending(x => x.Grade).ToList(); |
| | | if (Tasks.Count > 0) SendAGVWaitToExecuteTask(Tasks); |
| | | //Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.AGV_WaitToExecute).OrderByDescending(x => x.Grade).ToList(); |
| | | //if (Tasks.Count > 0) SendAGVWaitToExecuteTask(Tasks); |
| | | #endregion |
| | | |
| | | #region ä¸åæçç¡®è®¤å®æçæµ·åº·AGVä»»å¡ |
| | | Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.CheckPalletCodeFinish).OrderByDescending(x => x.Grade).ToList(); |
| | | if (Tasks.Count > 0) SendAGVWaitToExecuteTask(Tasks); |
| | | //Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.CheckPalletCodeFinish).OrderByDescending(x => x.Grade).ToList(); |
| | | //if (Tasks.Count > 0) SendAGVWaitToExecuteTask(Tasks); |
| | | #endregion |
| | | } |
| | | } |