| | |
| | | using WIDESEAWCS_DTO.WMS; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.DTO; |
| | | |
| | | namespace WIDESEAWCS_TaskInfoService |
| | | { |
| | |
| | | switch (hIKROBOT.extra.values.method) |
| | | { |
| | | case "start": |
| | | task.TaskState = (int)TaskStatusEnum.Takeing; |
| | | TaskFeedback(task, 1); |
| | | if (task.TaskState == (int)TaskStatusEnum.CallingHKtransportation && task.TaskType == (int)TaskTypeEnum.Move) |
| | | { |
| | | task.TaskState = (int)TaskStatusEnum.HktransportIng; |
| | | } |
| | | else |
| | | { |
| | | task.TaskState = (int)TaskStatusEnum.Takeing; |
| | | TaskFeedback(task, 1); |
| | | } |
| | | break; |
| | | case "outbin"://离å¼èµ·ç¹ |
| | | { |
| | | if (task.TaskType == TaskTypeEnum.CK3F.ObjToInt() && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute) |
| | | ///夿任塿¯å¦è·è®¾å¤æå
³ |
| | | TaskFromCompleted(task, deviceTypeEnum); //ä»»å¡ç¶ä½æ¹ä¸º3åè´§å®æï¼æ´æ°èµ·ç¹è´§ä½ç¶æï¼å¹¶åé¦WMSèµ·ç¹å®æ |
| | | } |
| | | break; |
| | | case "finish"://ç¦»å¼æåæº |
| | | { |
| | | |
| | | //å
¥æåæº |
| | | if (task.TaskType == TaskTypeEnum.RK3F.ObjToInt() && task.TaskState == (int)TaskStatusEnum.CheckPalletCodeFinish) |
| | | { |
| | | var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; |
| | | if (device == null) task.ExceptionMessage = "æªæ¾å°æåæºä¿¡æ¯"; |
| | | else |
| | | { |
| | | DeviceProDTO? deviceProDTO = device.DeviceProDTOs.FirstOrDefault((DeviceProDTO x) => x.DeviceProParamName == HoistEnum.Inboundboxon.ToString()); |
| | | if (device.IsConnected) |
| | | device.SetValue(HoistEnum.Inboundboxon, 1); |
| | | else |
| | | task.ExceptionMessage = "æåæºä¿¡æ¯è®¾å¤è¿æ¥å¤±è´¥"; |
| | | } |
| | | } |
| | | |
| | | //åºæåæº |
| | | 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 = "æåæºä¿¡æ¯è®¾å¤è¿æ¥å¤±è´¥"; |
| | | } |
| | | } |
| | | ///夿任塿¯å¦è·è®¾å¤æå
³ |
| | | TaskFromCompleted(task, deviceTypeEnum); |
| | | //忥¼ åºåº |
| | | 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 = "æªæ¾å°æåæºä¿¡æ¯"; |
| | | else |
| | | { |
| | | if (device.IsConnected) |
| | | device.SetValue(HoistEnum.Emptyboxplacedinposition, 1); |
| | | else |
| | | task.ExceptionMessage = "æåæºä¿¡æ¯è®¾å¤è¿æ¥å¤±è´¥"; |
| | | } |
| | | } |
| | | //忥¼ å
¥åº |
| | | 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 = "æªæ¾å°æåæºä¿¡æ¯"; |
| | | else |
| | | { |
| | | if (device.IsConnected) |
| | | //å以ä¸ä¸ªåºåºå®æä¿¡å· |
| | | device.SetValue(HoistEnum.Outboundboxretrievalcompleted, 1, task.SourceAddress); |
| | | else |
| | | task.ExceptionMessage = "æåæºä¿¡æ¯è®¾å¤è¿æ¥å¤±è´¥"; |
| | | } |
| | | } |
| | | else if (task.TaskType == TaskTypeEnum.Q3RK.ObjToInt() || task.TaskType == TaskTypeEnum.Q3CK.ObjToInt() && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute) |
| | | { |
| | | if (task.TaskType == TaskTypeEnum.Q3RK.ObjToInt()) |
| | | { |
| | | //妿æ¯å
楼å°ä¸æ¥¼å°±åä¸ä¸ªä¿¡å·ç»1楼plcåè¯ä»ææ¥å
¥åºäº |
| | | |
| | | } |
| | | else |
| | | { |
| | | //è¿ä¸ªå°±åä¸ä¸ªå¤ä½ç¶æï¼åè¯å®æåºåºäº |
| | | |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | case "into"://ç³è¯·è¿å
¥æåæº |
| | |
| | | break; |
| | | case "end"://ä»»å¡å®æéç¥ |
| | | { |
| | | ///夿任塿¯å¦è·è®¾å¤æå
³ |
| | | if(task.TaskType== TaskTypeEnum.RK3F.ObjToInt()&& task.TaskState == (int)TaskStatusEnum.CheckPalletCodeFinish) |
| | | if (task.TaskType == (int)TaskTypeEnum.Move && task.TaskState == (int)TaskStatusEnum.HkTransportCompleted) |
| | | { |
| | | var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; |
| | | if (device == null) task.ExceptionMessage = "æªæ¾å°æåæºä¿¡æ¯"; |
| | | else |
| | | { |
| | | if (device.IsConnected) |
| | | device.SetValue(HoistEnum.Inboundboxon,1); |
| | | else |
| | | task.ExceptionMessage = "æåæºä¿¡æ¯è®¾å¤è¿æ¥å¤±è´¥"; |
| | | } |
| | | task.TaskState = TaskStatusEnum.Finish.ObjToInt(); |
| | | TaskFeedback(task, 2); |
| | | BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.èªå¨å®æ); |
| | | } |
| | | TaskCompleted(task, deviceTypeEnum); |
| | | else |
| | | { |
| | | ///夿任塿¯å¦è·è®¾å¤æå
³ |
| | | TaskCompleted(task, deviceTypeEnum); |
| | | } |
| | | } |
| | | break; |
| | | default: |
| | |
| | | dt_HKLocationInfo.LocationStatus = locationStatusEnum.ObjToInt(); |
| | | _hKLocationInfoService.Repository.UpdateData(dt_HKLocationInfo); |
| | | } |
| | | Dt_StationInfo? stationInfo = _stationInfo.Repository.QueryFirst(x => x.StationCode == locationCode); |
| | | if (stationInfo != null) |
| | | { |
| | | if (locationStatusEnum == LocationStatusEnum.Free) //å¦æèµ·ç¹å®æå°±ç»è´§ä½èµå¼æçå· |
| | | { |
| | | stationInfo.PalletCode = ""; |
| | | } |
| | | else |
| | | { |
| | | stationInfo.PalletCode = palletCode; |
| | | } |
| | | stationInfo.StationStatus = locationStatusEnum.ObjToInt(); |
| | | _stationInfo.UpdateData(stationInfo); |
| | | } |
| | | } |
| | | else if (deviceTypeEnum == DeviceTypeEnum.YuanLiJuHe) |
| | | { |
| | |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, boundCompleteFeedback.Serialize()); |
| | | agvContent = response.DeserializeObject<WMSReturn>(); |
| | | content.OK(data: agvContent); |
| | | content.Message = dt_Task.ExceptionMessage; |
| | | if (agvContent.code != 200) |
| | | { |
| | | dt_Task.ExceptionMessage = agvContent.message; |