| | |
| | | using WIDESEAWCS_DTO.AGV.HIKROBOT; |
| | | using System.Diagnostics.CodeAnalysis; |
| | | using System.Reflection.PortableExecutable; |
| | | using WIDESEAWCS_QuartzJob; |
| | | |
| | | namespace WIDESEAWCS_TaskInfoService |
| | | { |
| | |
| | | //è·åè´§ä½ä¿¡æ¯ |
| | | else |
| | | hKLocationInfo = _hKLocationInfoService.GetFreeLocationInfo(taskDTO.toAreaCode) ?? throw new Exception($"æªæ¾å°ç»ç¹åºåºã{taskDTO.toAreaCode}ãå¯ç¨ç©ºè´§ä½ï¼"); |
| | | if (taskType == (int)TaskTypeEnum.Q1TSJ4) |
| | | { |
| | | var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; |
| | | if (device.IsConnected) |
| | | { |
| | | var reslu = device.GetValue<HoistEnum, string>(HoistEnum.Emptycontainernumber); |
| | | var result = reslu?.TrimEnd('\0')?.Substring(2); |
| | | if (reslu == taskDTO.containerCode && result != null) |
| | | { |
| | | throw new Exception($"å½åçæç®±å·ä¸º{reslu}ä¸{taskDTO.containerCode}æç®±å·ä¸å¹é
"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("æåæºä¿¡æ¯è®¾å¤è¿æ¥å¤±è´¥"); |
| | | } |
| | | } |
| | | Dt_Task dt_Task = new Dt_Task() |
| | | { |
| | | TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), |
| | |
| | | Dt_HKLocationInfo? hKLocationInfo = _hKLocationInfoService.Repository.QueryFirst(x => x.LocationCode == taskDTO.fromLocationCode) ?? throw new Exception($"æªæ¾å°èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãï¼"); |
| | | if (hKLocationInfo.LocationStatus != LocationStatusEnum.InStock.ObjToInt()) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãå½ååºä½ç¶æä¸å¯åºåºï¼"); |
| | | if (hKLocationInfo.PalletCode != taskDTO.containerCode) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãç»å®æç®±å·ã{hKLocationInfo.PalletCode}ãä¸ä»»å¡æç®±å·ã{taskDTO.containerCode}ãä¸å¹é
ï¼"); |
| | | //åºå
å°åºå¤çç¹å°ç¹ä»»å¡ï¼æ¯å¦éè¦å¤æè´§ä½ç¶æï¼ |
| | | |
| | | Dt_Task dt_Task = new Dt_Task() |
| | | { |
| | | TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), |
| | |
| | | // å建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; |
| | | hIKROBOTTaskSubmit.taskType = tasktype.ToString(); ExtraDto extraDto = new ExtraDto(); |
| | | CarrierInfoDto carrierInfoDto = new CarrierInfoDto() |
| | | if (task.TaskType != (int)TaskTypeEnum.MOVE && task.TaskType != (int)TaskTypeEnum.Q3RK && task.TaskType != (int)TaskTypeEnum.Q3CK && task.TaskType != (int)TaskTypeEnum.F01) |
| | | { |
| | | carrierCode = task.PalletCode, |
| | | carrierType = task.PalletCode.Contains("LXM") ? "DX" : "SX" |
| | | }; |
| | | extraDto.carrierInfo.Add(carrierInfoDto); |
| | | hIKROBOTTaskSubmit.extra = 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.MLInbound: |
| | | case TaskTypeEnum.MLOutbound: |
| | | break; |
| | | case TaskTypeEnum.F01: |
| | | break; |
| | | case TaskTypeEnum.RK3F: |
| | | case TaskTypeEnum.CK3F: |
| | | case TaskTypeEnum.F02: |
| | | case TaskTypeEnum.F03: |
| | | case TaskTypeEnum.F04: |
| | | { |
| | | TargetRouteDto target = new TargetRouteDto() |
| | | { |
| | |
| | | hIKROBOTTaskSubmit.targetRoute.Add(targetRoute); |
| | | } |
| | | break; |
| | | case TaskTypeEnum.STURR: |
| | | case TaskTypeEnum.Q1TSJ4: |
| | | { |
| | | TargetRouteDto target = new TargetRouteDto() |
| | |
| | | } |
| | | break; |
| | | case TaskTypeEnum.Q3RK: |
| | | break; |
| | | case TaskTypeEnum.Q3CK: |
| | | break; |
| | | case TaskTypeEnum.Move: |
| | | case TaskTypeEnum.MOVE: |
| | | case TaskTypeEnum.F01: |
| | | { |
| | | 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.CPMoveInventory: |
| | | break; |
| | |
| | | /// </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>(); |