| | |
| | | using WIDESEAWCS_DTO.WMS; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.DTO; |
| | | |
| | | namespace WIDESEAWCS_TaskInfoService |
| | | { |
| | |
| | | if (task == null) throw new Exception($"æªæ¾å°ä»»å¡,ä»»å¡ç¼å·ã{hIKROBOT.robotTaskCode}ã"); |
| | | switch (hIKROBOT.extra.values.method) |
| | | { |
| | | case "end": |
| | | TaskCompleted(task, deviceTypeEnum); |
| | | break; |
| | | case "outbin": |
| | | TaskFromCompleted(task, deviceTypeEnum); |
| | | break; |
| | | 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; |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | else |
| | | { |
| | | task.TaskState = (int)TaskStatusEnum.Takeing; |
| | | TaskFeedback(task, 1); |
| | | } |
| | | break; |
| | | case "outbin"://离å¼èµ·ç¹ |
| | | { |
| | | 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 |
| | | { |
| | | bool Work = false; |
| | | if (device.IsConnected) |
| | | { |
| | | int i = 0; |
| | | while (!Work && i <= 3) |
| | | { |
| | | i++; |
| | | Work = device.SetValue(HoistEnum.Inboundboxon, 1, task.TargetAddress); |
| | | Thread.Sleep(500); |
| | | } |
| | | } |
| | | if (!Work) |
| | | { |
| | | task.ExceptionMessage = $"ã{task.TargetAddress}ãåå
¥3楼å
¥åºç®±æ¾å°ä½å¤±è´¥"; |
| | | task.Remark = $"{device.DeviceCode}_Inboundboxon_{1}_{task.TargetAddress}"; |
| | | } |
| | | } |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | |
| | | //3 åºæåæº ä¹åæ¯AGV_ToExecute |
| | | else if (task.TaskType == TaskTypeEnum.CK3F.ObjToInt() && task.TaskState == (int)TaskStatusEnum.TakeFinish) |
| | | { |
| | | var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; |
| | | if (device == null) task.ExceptionMessage = "æªæ¾å°æåæºä¿¡æ¯"; |
| | | else |
| | | { |
| | | bool Work = false; |
| | | if (device.IsConnected) |
| | | { |
| | | int i = 0; |
| | | while (!Work && i <= 3) |
| | | { |
| | | i++; |
| | | Work = device.SetValue(HoistEnum.Outboundboxon, 1, task.SourceAddress);//åºåºå®æ |
| | | Thread.Sleep(500); |
| | | } |
| | | } |
| | | if (!Work) |
| | | { |
| | | task.ExceptionMessage = $"ã{task.SourceAddress}ãåå
¥3楼åºåºç®±æ¾å°ä½å¤±è´¥"; |
| | | task.Remark = $"{device.DeviceCode}_Outboundboxon_{1}_{task.SourceAddress}"; |
| | | } |
| | | } |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | //忥¼ åºåº |
| | | 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 |
| | | { |
| | | bool Work = false; |
| | | if (device.IsConnected) |
| | | { |
| | | int i = 0; |
| | | while (!Work && i <= 3) |
| | | { |
| | | i++; |
| | | Work = device.SetValue(HoistEnum.Emptyboxplacedinposition, 1, task.TargetAddress); |
| | | Thread.Sleep(500); |
| | | } |
| | | } |
| | | if (!Work) |
| | | { |
| | | task.ExceptionMessage = $"ã{task.TargetAddress}ãåå
¥4楼空箱æ¾å°ä½å¤±è´¥"; |
| | | task.Remark = $"{device.DeviceCode}_Emptyboxplacedinposition_{1}_{task.TargetAddress}"; |
| | | } |
| | | } |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | // //忥¼åºæåæº å
¥åº ä¹åæ¯AGV_ToExecute //è¦åæåè´§å®æç¶æTakeFinish |
| | | else if ((task.TaskType == TaskTypeEnum.Q1TSJ4.ObjToInt() || task.TaskType == TaskTypeEnum.F03.ObjToInt()) && task.TaskState == (int)TaskStatusEnum.TakeFinish) |
| | | { |
| | | var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; |
| | | if (device == null) task.ExceptionMessage = "æªæ¾å°æåæºä¿¡æ¯"; |
| | | else |
| | | { |
| | | bool Work = false; |
| | | if (device.IsConnected) |
| | | { |
| | | int i = 0; |
| | | while (!Work && i <= 3) |
| | | { |
| | | i++; |
| | | Work = device.SetValue(HoistEnum.Outboundboxretrievalcompleted, 1, task.SourceAddress); |
| | | Thread.Sleep(500); |
| | | } |
| | | } |
| | | if (!Work) |
| | | { |
| | | task.ExceptionMessage = $"ã{task.SourceAddress}ãåå
¥4楼åºåºåç®±å®æå¤±è´¥"; |
| | | task.Remark = $"{device.DeviceCode}_Outboundboxretrievalcompleted_{1}_{task.SourceAddress}"; |
| | | } |
| | | } |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | //è·¨æ¥¼å± |
| | | else if (task.TaskType == TaskTypeEnum.Q3RK.ObjToInt() || task.TaskType == TaskTypeEnum.Q3CK.ObjToInt()/* && task.TaskState == (int)TaskStatusEnum.TakeFinish*/) |
| | | { |
| | | var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "F1") as OtherDevice; |
| | | if (device == null) task.ExceptionMessage = "æªæ¾å°è´¨æ£é¨ä¿¡æ¯"; |
| | | else |
| | | { |
| | | bool Wok = false; |
| | | var Address = task.TaskType == TaskTypeEnum.Q3RK.ObjToInt() ? task.TargetAddress : task.SourceAddress; |
| | | if (device.IsConnected) |
| | | { |
| | | int i = 0; |
| | | while (!Wok && i <= 3) |
| | | { |
| | | i++; |
| | | Wok = device.SetValue(QualityInspectionCommandEnum.RequestToEnter, false, Address); |
| | | Thread.Sleep(500); |
| | | } |
| | | } |
| | | if (!Wok) |
| | | { |
| | | task.ExceptionMessage = $"ã{Address}ãå
³é请æ±è¿å
¥å¤±è´¥ï¼"; |
| | | task.Remark = $"{device.DeviceCode}_RequestToEnter_{false}_{Address}"; |
| | | } |
| | | } |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | } |
| | | break; |
| | | case "into"://ç³è¯·è¿å
¥æåæº |
| | | { |
| | | task.TaskState = (int)TaskStatusEnum.AGV_WaitToExecute; |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | break; |
| | | case "wait"://æ«ç çå¾
|
| | | { |
| | | //è¦å
å¼å¯æ«ç ä¿¡å· |
| | | var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; |
| | | if (device == null) task.ExceptionMessage = "æªæ¾å°æåæºä¿¡æ¯"; |
| | | else |
| | | { |
| | | bool Wok = false; |
| | | if (device.IsConnected) |
| | | { |
| | | int i = 0; |
| | | while (!Wok && i <= 3) |
| | | { |
| | | i++; |
| | | Wok = device.SetValue<HoistEnum, short>(HoistEnum.Codereadingtriggered, 1, "TSJR3F"); |
| | | Thread.Sleep(500); |
| | | } |
| | | } |
| | | if (!Wok) |
| | | { |
| | | task.ExceptionMessage = $"ãTSJR3Fã3楼读ç 触å失败ï¼"; |
| | | task.Remark = $"{device.DeviceCode}_Codereadingtriggered_{1}_TSJR3F"; |
| | | } |
| | | } |
| | | task.TaskState = (int)TaskStatusEnum.CheckPalletCodeing; |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | break; |
| | | case "end"://ä»»å¡å®æéç¥ |
| | | { |
| | | if (task.TaskType == (int)TaskTypeEnum.MOVE) |
| | | { |
| | | task.TaskState = TaskStatusEnum.Finish.ObjToInt(); |
| | | BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.èªå¨å®æ); |
| | | var Task = BaseDal.QueryFirst(x => task.WMSTaskNum.Contains(x.WMSTaskNum)); |
| | | Task.TaskState = TaskStatusEnum.HkTransportCompleted.ObjToInt(); |
| | | BaseDal.UpdateData(Task); |
| | | } |
| | | else |
| | | { |
| | | TaskCompleted(task, deviceTypeEnum); |
| | | } |
| | | } |
| | | break; |
| | | case "intolift": //è¿å
¥çµæ¢¯ |
| | | { |
| | | //å
楼å°ä¸æ¥¼çå
¥åºä»»å¡ |
| | | if (task.TaskType == (int)TaskTypeEnum.Q3RK || task.TaskType == (int)TaskTypeEnum.MOVE || task.TaskType == (int)TaskTypeEnum.F01 || task.TaskType == (int)TaskTypeEnum.Q3CK) |
| | | { |
| | | task.TaskState = TaskStatusEnum.Hkintolift.ObjToInt(); |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | } |
| | | break; |
| | | case "leavelift": //离å¼çµæ¢¯ |
| | | { |
| | | if (task.TaskType == (int)TaskTypeEnum.Q3RK || task.TaskType == (int)TaskTypeEnum.MOVE || task.TaskType == (int)TaskTypeEnum.F01|| task.TaskType == (int)TaskTypeEnum.Q3CK) |
| | | { |
| | | task.TaskState = TaskStatusEnum.HKleavelift.ObjToInt(); |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | } |
| | | break; |
| | | default: |
| | | task.TaskState = ReturnTaskStatus(hIKROBOT.extra.values.method, deviceTypeEnum); |
| | | BaseDal.UpdateData(task); |
| | | break; |
| | | throw new Exception("æªå®ä¹çæ¹æ³åï¼"); |
| | | //task.TaskState = ReturnTaskStatus(hIKROBOT.extra.values.method, deviceTypeEnum); |
| | | //BaseDal.UpdateData(task); |
| | | //break; |
| | | } |
| | | } |
| | | else //åå车 |
| | |
| | | //var task = BaseDal.QueryFirst(x => x.RGVTaskId == Rgv.content.taskID); |
| | | var task = BaseDal.QueryFirst(x => x.PalletCode == Rgv.content.podID); |
| | | if (task == null) throw new Exception($"æªæ¾å°ä»»å¡,ä»»å¡ç¼å·ã{Rgv.content.taskID}ã"); |
| | | |
| | | if (Rgv.messageType == 72)//å°è½¦é¡¶èµ·è´§ç© |
| | | //ç§»åº |
| | | if (task.TaskType == TaskTypeEnum.CPMoveInventory.ObjToInt() && Rgv.messageType == 10 && Rgv.content.status == 4) |
| | | { |
| | | if (task.TaskType == (int)TaskTypeEnum.CPInbound && task.TaskState == (int)TaskStatusEnum.Execut) |
| | | deviceName += "ç§»åº"; |
| | | WMSMoveLocationFeedback wMSMoveLocationFeedback = new WMSMoveLocationFeedback() |
| | | { |
| | | task.TaskState = (int)TaskStatusEnum.WaiCheckShape; |
| | | //BaseDal.UpdateData(task);//ç»è´¨æ£é¨åå
¥å¯å¨ä¿¡å· |
| | | var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "F1") as OtherDevice; |
| | | if (device == null) task.ExceptionMessage = "æªæ¾å°1楼质æ£é¨è®¾å¤ä¿¡æ¯"; |
| | | else |
| | | { |
| | | if (device.IsConnected) |
| | | device.SetValue(QualityInspectionCommandEnum.StartqualityInspection, true, task.SourceAddress); |
| | | else |
| | | task.ExceptionMessage = "1楼质æ£é¨è®¾å¤è¿æ¥å¤±è´¥"; |
| | | } |
| | | TaskFeedback(task, 4); |
| | | } |
| | | containerCode = task.PalletCode, |
| | | fromStationCode = task.SourceAddress, |
| | | toLocationCode = task.TargetAddress |
| | | }; |
| | | Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(WMSMoveLocationFeedback)); |
| | | WMSReturn agvContent = null; |
| | | if (apiInfo == null) task.ExceptionMessage = "æªæ¾å°ç§»åºå®æåé¦WMSæ¥å£é
置信æ¯ï¼è¯·æ£æ¥æ¥å£é
ç½®"; |
| | | else |
| | | { |
| | | TaskFromCompleted(task, deviceTypeEnum); |
| | | task.TaskState = TaskStatusEnum.Finish.ObjToInt(); |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, wMSMoveLocationFeedback.Serialize()); |
| | | agvContent = response.DeserializeObject<WMSReturn>(); |
| | | content.OK(data: agvContent); |
| | | if (agvContent.code != 200) |
| | | { |
| | | task.ExceptionMessage = agvContent.message; |
| | | content.Error(agvContent.message); |
| | | } |
| | | UpdateLocationStatus(task.TargetAddress, task.PalletCode, deviceTypeEnum, LocationStatusEnum.InStock); |
| | | BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.èªå¨å®æ); |
| | | } |
| | | } |
| | | else if (Rgv.messageType == 10) |
| | | else |
| | | { |
| | | if (Rgv.content.status == 2) TaskFeedback(task, 1); |
| | | if (Rgv.content.status == 4) |
| | | //ç«å°å°è´¨æ£å° |
| | | if (Rgv.messageType == 72)//å°è½¦é¡¶èµ·è´§ç© |
| | | { |
| | | if (task.TaskType == TaskTypeEnum.CPMoveInventory.ObjToInt()) |
| | | if (task.TaskType == (int)TaskTypeEnum.CPInbound && task.TaskState == (int)TaskStatusEnum.Execut) |
| | | { |
| | | deviceName += "ç§»åº"; |
| | | WMSMoveLocationFeedback wMSMoveLocationFeedback = new WMSMoveLocationFeedback() |
| | | { |
| | | containerCode = task.PalletCode, |
| | | fromStationCode = task.SourceAddress, |
| | | toLocationCode = task.TargetAddress |
| | | }; |
| | | Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(WMSMoveLocationFeedback)); |
| | | WMSReturn agvContent = null; |
| | | if (apiInfo == null) task.ExceptionMessage = "æªæ¾å°ç§»åºå®æåé¦WMSæ¥å£é
置信æ¯ï¼è¯·æ£æ¥æ¥å£é
ç½®"; |
| | | task.TaskState = (int)TaskStatusEnum.WaiCheckShape; |
| | | //BaseDal.UpdateData(task);//ç»è´¨æ£é¨åå
¥å¯å¨ä¿¡å· |
| | | var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "F1") as OtherDevice; |
| | | if (device == null) task.ExceptionMessage = "æªæ¾å°1楼质æ£é¨è®¾å¤ä¿¡æ¯"; |
| | | else |
| | | { |
| | | task.TaskState = TaskStatusEnum.Finish.ObjToInt(); |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, wMSMoveLocationFeedback.Serialize()); |
| | | agvContent = response.DeserializeObject<WMSReturn>(); |
| | | content.OK(data: agvContent); |
| | | if (agvContent.code != 200) |
| | | { |
| | | task.ExceptionMessage = agvContent.message; |
| | | content.Error(agvContent.message); |
| | | } |
| | | UpdateLocationStatus(task.TargetAddress, task.PalletCode, deviceTypeEnum, LocationStatusEnum.InStock); |
| | | BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.èªå¨å®æ); |
| | | if (device.IsConnected) |
| | | device.SetValue(QualityInspectionCommandEnum.StartqualityInspection, true, task.SourceAddress); |
| | | else |
| | | task.ExceptionMessage = "1楼质æ£é¨è®¾å¤è¿æ¥å¤±è´¥"; |
| | | } |
| | | TaskFeedback(task, 4); |
| | | } |
| | | else |
| | | { |
| | | //è¿éåºåºï¼è¿ä¸ªæ¥å£ä¸ä¹è¿åç»äºwmsç¶æ |
| | | TaskFromCompleted(task, deviceTypeEnum); |
| | | } |
| | | } |
| | | else if (Rgv.messageType == 10)//è´¨æ£å°å°ç®æ è´§ä½ |
| | | { |
| | | if (Rgv.content.status == 2) TaskFeedback(task, 1); |
| | | if (Rgv.content.status == 4) |
| | | { |
| | | if (task.TaskType == (int)TaskTypeEnum.CPInbound && task.TaskState == (int)TaskStatusEnum.TakeFinish) |
| | | { |
| | | if (!string.IsNullOrEmpty(task.ExceptionMessage)) task.TaskState = TaskStatusEnum.CheckShapeingNG.ObjToInt(); |
| | | else task.TaskState = (int)TaskStatusEnum.CheckShapeing; |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | else if (task.TaskType == (int)TaskTypeEnum.CPInbound && task.TaskState == (int)TaskStatusEnum.Puting) |
| | | { |
| | | if (!string.IsNullOrEmpty(task.ExceptionMessage) && !task.ExceptionMessage.Contains("ç±äºç®æ è®¡ç®æºç§¯ææç»ï¼æ æ³è¿æ¥")) |
| | | ErrorTaskFeedback(task, true/*!task.ExceptionMessage.Contains("夿£å¤±è´¥")*/); |
| | | else |
| | | TaskCompleted(task, deviceTypeEnum); |
| | | } |
| | | else if (task.TaskType == (int)TaskTypeEnum.CPOutbound)//åºåºå®æ |
| | | { |
| | | TaskCompleted(task, deviceTypeEnum); |
| | | } |
| | | } |
| | | else if (task.TaskType == (int)TaskTypeEnum.CPInbound && task.TaskState == (int)TaskStatusEnum.TakeFinish) |
| | | if (Rgv.content.status == 5) |
| | | { |
| | | if (!string.IsNullOrEmpty(task.ExceptionMessage)) task.TaskState = TaskStatusEnum.CheckShapeingNG.ObjToInt(); |
| | | else task.TaskState = (int)TaskStatusEnum.CheckShapeing; |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | else if (task.TaskType == (int)TaskTypeEnum.CPInbound && task.TaskState == (int)TaskStatusEnum.Puting) |
| | | { |
| | | if (!string.IsNullOrEmpty(task.ExceptionMessage)) |
| | | ErrorTaskFeedback(task, true/*!task.ExceptionMessage.Contains("夿£å¤±è´¥")*/); |
| | | else |
| | | TaskCompleted(task, deviceTypeEnum); |
| | | } |
| | | else if (task.TaskType == (int)TaskTypeEnum.CPOutbound || task.TaskType == (int)TaskTypeEnum.CPMoveInventory)//åºåºãç§»åºå®æ |
| | | { |
| | | TaskCompleted(task, deviceTypeEnum); |
| | | if (task.TaskState == (int)TaskStatusEnum.Execut) |
| | | { |
| | | task.TaskState = (int)TaskStatusEnum.New; |
| | | task.Remark = "åå车åé¦å¤±è´¥,éæ°ä¸å"; |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | try |
| | | { |
| | | dt_Task.TaskState = TaskStatusEnum.Finish.ObjToInt(); |
| | | TaskFeedback(dt_Task, 2); |
| | | TaskFeedback(dt_Task, 2, string.IsNullOrEmpty(dt_Task.Remark)); |
| | | //Db.Ado.BeginTran(); |
| | | UpdateLocationStatus(dt_Task.TargetAddress, dt_Task.PalletCode, deviceTypeEnum, LocationStatusEnum.InStock); |
| | | |
| | |
| | | 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); |
| | | } |
| | | Dt_StationManger stationManger = _stationMangerService.Repository.QueryFirst(x => x.StationCode == locationCode); |
| | | if (stationManger != null) |
| | | { |
| | | if (locationStatusEnum == LocationStatusEnum.Free) //å¦æèµ·ç¹å®æå°±ç»è´§ä½èµå¼æçå· |
| | | { |
| | | stationManger.Remark = ""; |
| | | stationManger.IsOccupied = LocationStatusEnum.Free.ObjToInt(); |
| | | } |
| | | else |
| | | { |
| | | stationManger.Remark = palletCode; |
| | | stationManger.IsOccupied = LocationStatusEnum.Lock.ObjToInt(); |
| | | } |
| | | _stationMangerService.UpdateData(stationManger); |
| | | } |
| | | } |
| | | else if (deviceTypeEnum == DeviceTypeEnum.YuanLiJuHe) |
| | | { |
| | |
| | | } |
| | | #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) |
| | | public WebResponseContent TaskFeedback(Dt_Task dt_Task, int Status, bool Del = false) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | WMSInOutBoundCompleteFeedback boundCompleteFeedback = new WMSInOutBoundCompleteFeedback(); |
| | |
| | | finally |
| | | { |
| | | _trackloginfoService.AddTrackLog(boundCompleteFeedback, content, "åºå
¥åºä»»å¡ç¶æåé¦WMS", "", ""); |
| | | if (agvContent != null && agvContent.code == 200 && Status == 2) |
| | | if (agvContent != null && agvContent.code == 200 && Del) |
| | | BaseDal.DeleteAndMoveIntoHty(dt_Task, OperateTypeEnum.èªå¨å®æ); |
| | | else |
| | | BaseDal.UpdateData(dt_Task); |
| | |
| | | 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; |
| | |
| | | return content; |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | } |