| | |
| | | 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 if (task.TaskType == (int)TaskTypeEnum.Q3RK|| task.TaskType == (int)TaskTypeEnum.Q3CK) |
| | | { |
| | | UpdateStandStatus(task, task.TargetAddress, LocationStatusEnum.Lock); |
| | | task.TaskState = (int)TaskStatusEnum.Takeing; |
| | | TaskFeedback(task, 1); |
| | | } |
| | | else |
| | | { |
| | | task.TaskState = (int)TaskStatusEnum.Takeing; |
| | | TaskFeedback(task, 1); |
| | | } |
| | | break; |
| | | case "outbin"://离å¼èµ·ç¹ |
| | | { |
| | | |
| | | if (task.TaskType == (int)TaskTypeEnum.Q3RK|| task.TaskType == (int)TaskTypeEnum.Q3CK) |
| | | { |
| | | UpdateStandStatus(task, task.TargetAddress, LocationStatusEnum.Free); |
| | | task.TaskState = TaskStatusEnum.TakeFinish.ObjToInt(); |
| | | TaskFeedback(task, 1); |
| | | } |
| | | else |
| | | { |
| | | TaskFromCompleted(task, deviceTypeEnum); //ä»»å¡ç¶ä½æ¹ä¸º3åè´§å®æï¼æ´æ°èµ·ç¹è´§ä½ç¶æï¼å¹¶åé¦WMSèµ·ç¹å®æ |
| | | } |
| | | ///夿任塿¯å¦è·è®¾å¤æå
³ |
| | | TaskFromCompleted(task, deviceTypeEnum); |
| | | } |
| | | break; |
| | | case "finish"://ç¦»å¼æåæº |
| | |
| | | if (device == null) task.ExceptionMessage = "æªæ¾å°æåæºä¿¡æ¯"; |
| | | else |
| | | { |
| | | DeviceProDTO? deviceProDTO = device.DeviceProDTOs.FirstOrDefault((DeviceProDTO x) => x.DeviceProParamName == HoistEnum.Inboundboxon.ToString()); |
| | | 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 = "æªæ¾å°æåæºä¿¡æ¯"; |
| | |
| | | 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"); |
| | | 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()|| task.TaskType == TaskTypeEnum.Q3RK.ObjToInt()) |
| | | { |
| | | var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "F1") as OtherDevice; |
| | | if (device == null) task.ExceptionMessage = "æªæ¾å°è´¨æ£é¨ä¿¡æ¯"; |
| | | |
| | | else |
| | | { |
| | | if (device.IsConnected) |
| | | //å以ä¸ä¸ªåºåºå®æä¿¡å· |
| | | device.SetValue(QualityInspectionCommandEnum.RequestToEnter, false, task.TargetAddress); |
| | | else |
| | | task.ExceptionMessage = "è´¨æ£é¨ä¿¡æ¯è®¾å¤è¿æ¥å¤±è´¥"; |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | break; |
| | |
| | | break; |
| | | case "wait"://æ«ç çå¾
|
| | | { |
| | | //è¦å
å¼å¯æ«ç ä¿¡å· |
| | | 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 = "æåæºä¿¡æ¯è®¾å¤è¿æ¥å¤±è´¥"; |
| | | } |
| | | task.TaskState = (int)TaskStatusEnum.CheckPalletCodeing; |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | break; |
| | | case "end"://ä»»å¡å®æéç¥ |
| | | { |
| | | ///夿任塿¯å¦è·è®¾å¤æå
³ |
| | | |
| | | TaskCompleted(task, deviceTypeEnum); |
| | | if (task.TaskType==(int)TaskTypeEnum.Move &&task.TaskState==(int)TaskStatusEnum.HKleavelift) |
| | | { |
| | | task.TaskState = TaskStatusEnum.Finish.ObjToInt(); |
| | | TaskFeedback(task, 2); |
| | | BaseDal.DeleteAndMoveIntoHty(task,OperateTypeEnum.èªå¨å®æ); |
| | | } |
| | | else if (task.TaskType == (int)TaskTypeEnum.Q3RK || task.TaskType == (int)TaskTypeEnum.Q3CK) |
| | | { |
| | | task.TaskState = TaskStatusEnum.Finish.ObjToInt(); |
| | | TaskFeedback(task, 2); |
| | | BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.èªå¨å®æ); |
| | | } |
| | | else |
| | | { |
| | | ///夿任塿¯å¦è·è®¾å¤æå
³ |
| | | TaskCompleted(task, deviceTypeEnum); |
| | | } |
| | | } |
| | | break; |
| | | case "intolift": //è¿å
¥çµæ¢¯ |
| | | { |
| | | //å
楼å°ä¸æ¥¼çå
¥åºä»»å¡ |
| | | if (task.TaskType==(int)TaskTypeEnum.Q3RK) |
| | | { |
| | | task.TaskState = TaskStatusEnum.Hkintolift.ObjToInt(); |
| | | } |
| | | } |
| | | break; |
| | | case "leavelift": //离å¼çµæ¢¯ |
| | | { |
| | | if (task.TaskType == (int)TaskTypeEnum.Q3RK) |
| | | { |
| | | task.TaskState = TaskStatusEnum.HKleavelift.ObjToInt(); |
| | | } |
| | | } |
| | | break; |
| | | default: |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region æ´æ°ä¸æ¥¼ç«å°ç¶æ |
| | | public WebResponseContent UpdateStandStatus(Dt_Task task,string stationCode,LocationStatusEnum locationStatusEnum) |
| | | { |
| | | try |
| | | { |
| | | Dt_StationManger? stationManger = _stationMangerService.Repository.QueryFirst(x => x.StationCode == task.TargetAddress); |
| | | //stationManger.IsOccupied = LocationStatusEnum.Lock.ObjToInt(); |
| | | if (stationManger != null) |
| | | { |
| | | if (locationStatusEnum == LocationStatusEnum.Free) //å¦æèµ·ç¹å®æå°±ç»è´§ä½èµå¼æçå· |
| | | { |
| | | stationManger.IsOccupied = LocationStatusEnum.Lock.ObjToInt(); |
| | | } |
| | | else |
| | | { |
| | | stationManger.IsOccupied = LocationStatusEnum.Free.ObjToInt(); |
| | | } |
| | | _stationMangerService.UpdateData(stationManger); |
| | | } |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 䏿¥WMS |
| | | public WebResponseContent TaskFeedback(Dt_Task dt_Task, int Status) |
| | | { |
| | |
| | | boundCompleteFeedback.toLocationCode = dt_Task.TargetAddress; |
| | | boundCompleteFeedback.status = Status; |
| | | boundCompleteFeedback.custStatus = ""; |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, boundCompleteFeedback.Serialize()); |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress,boundCompleteFeedback.Serialize()); |
| | | agvContent = response.DeserializeObject<WMSReturn>(); |
| | | content.OK(data: agvContent); |
| | | if (agvContent.code != 200) |