| | |
| | | using WIDESEAWCS_DTO.AGV.HIKROBOT; |
| | | using System.Diagnostics.CodeAnalysis; |
| | | using System.Reflection.PortableExecutable; |
| | | using WIDESEAWCS_QuartzJob; |
| | | |
| | | namespace WIDESEAWCS_TaskInfoService |
| | | { |
| | |
| | | try |
| | | { |
| | | Dt_HKLocationInfo? hKLocationInfo = null; |
| | | if (taskType==(int)TaskTypeEnum.STURR) |
| | | { |
| | | var reslut=_stationInfo.Repository.QueryFirst(x=>x.StationCode==taskDTO.fromLocationCode) ?? throw new Exception($"æªæ¾å°èµ·ç¹è´§ä½ã{taskDTO.fromLocationCode}ã"); |
| | | } |
| | | #region ç¹å°ç¹ |
| | | if (!string.IsNullOrEmpty(taskDTO.toLocationCode)) |
| | | { |
| | |
| | | //è·åè´§ä½ä¿¡æ¯ |
| | | 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)), |
| | |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | //4楼åºå
å°æåæº |
| | | 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() |
| | | //åºå
å°ç°è¾¹çç¹å°ç¹ä»»å¡ï¼æ¯å¦éè¦å¤æè´§ä½ç¶æï¼ |
| | | if (taskType == (int)TaskTypeEnum.STU0003) |
| | | { |
| | | var reslut = _stationInfo.Repository.QueryFirst(x => x.StationCode == taskDTO.toLocationCode) ?? throw new Exception($"æªæ¾å°ç»ç¹è´§ä½ã{taskDTO.fromLocationCode}ã"); |
| | | if (reslut.StationStatus != (int)LocationStatusEnum.Free) |
| | | { |
| | | throw new Exception($"ç»ç¹ç«å°ã{taskDTO.toLocationCode}ãç¶æä¸ä¸ºç©ºé²ï¼"); |
| | | } |
| | | } |
| | | Dt_Task dt_Task = new Dt_Task() |
| | | { |
| | | TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), |
| | | WMSTaskNum = taskDTO.taskCode, |
| | |
| | | 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.CPOutbound: |
| | | case TaskTypeEnum.MLInbound: |
| | | case TaskTypeEnum.MLOutbound: |
| | | break; |
| | | case TaskTypeEnum.F01: |
| | | break; |
| | | case TaskTypeEnum.RK3F: |
| | | case TaskTypeEnum.CK3F: |
| | |
| | | break; |
| | | case TaskTypeEnum.Q3RK: |
| | | case TaskTypeEnum.Q3CK: |
| | | case TaskTypeEnum.Move: |
| | | case TaskTypeEnum.MOVE: |
| | | case TaskTypeEnum.F01: |
| | | { |
| | | TargetRouteDto target = new TargetRouteDto() |
| | | { |
| | |
| | | hIKROBOTTaskSubmit.targetRoute.Add(targetRoute); |
| | | } |
| | | break; |
| | | case TaskTypeEnum.STUPTBY: |
| | | { |
| | | 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 = "STORAGE", |
| | | }; |
| | | hIKROBOTTaskSubmit.targetRoute.Add(target); |
| | | hIKROBOTTaskSubmit.targetRoute.Add(targetRoute); |
| | | } |
| | | break; |
| | | case TaskTypeEnum.CPMoveInventory: |
| | | break; |
| | | default: |