| | |
| | | break; |
| | | default: |
| | | task.TaskState = ReturnTaskStatus(gALAXIS.taskStatus, deviceTypeEnum); |
| | | BaseDal.UpdateData(task); |
| | | if (gALAXIS.taskStatus == 10) TaskFeedback(task, 1); |
| | | else BaseDal.UpdateData(task); |
| | | break; |
| | | } |
| | | } |
| | |
| | | if (task == null) throw new Exception($"æªæ¾å°ä»»å¡,ä»»å¡ç¼å·ã{hIKROBOT.robotTaskCode}ã"); |
| | | switch (hIKROBOT.extra.values.method) |
| | | { |
| | | case "start": |
| | | case "end": |
| | | TaskCompleted(task, deviceTypeEnum); |
| | | break; |
| | | case "end": |
| | | case "outbin": |
| | | TaskFromCompleted(task, deviceTypeEnum); |
| | | break; |
| | | default: |
| | |
| | | } |
| | | else if (Rgv.messageType == 10) |
| | | { |
| | | if (task.TaskState == (int)TaskStatusEnum.TakeFinish && Rgv.content.status == 4) |
| | | if (Rgv.content.status == 4) |
| | | { |
| | | task.TaskState = (int)TaskStatusEnum.CheckShapeing; |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | else if (task.TaskState == (int)TaskStatusEnum.Puting && Rgv.content.status == 4) |
| | | { |
| | | TaskCompleted(task, deviceTypeEnum); |
| | | if (task.TaskType == (int)TaskTypeEnum.CPInbound && task.TaskState == (int)TaskStatusEnum.TakeFinish) |
| | | { |
| | | task.TaskState = (int)TaskStatusEnum.CheckShapeing; |
| | | BaseDal.UpdateData(task); |
| | | } |
| | | else if (task.TaskType == (int)TaskTypeEnum.CPInbound && task.TaskState == (int)TaskStatusEnum.Puting) |
| | | { |
| | | TaskCompleted(task, deviceTypeEnum); |
| | | } |
| | | else if (task.TaskType == (int)TaskTypeEnum.CPOutbound || task.TaskType == (int)TaskTypeEnum.CPMoveInventory)//åºåºãç§»åºå®æ |
| | | { |
| | | TaskCompleted(task, deviceTypeEnum); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | content.Error(ex.Message); |
| | | } |
| | | finally |
| | | { |
| | |
| | | try |
| | | { |
| | | dt_Task.TaskState = TaskStatusEnum.TakeFinish.ObjToInt(); |
| | | Db.Ado.BeginTran(); |
| | | TaskFeedback(dt_Task, 4); |
| | | //Db.Ado.BeginTran(); |
| | | UpdateLocationStatus(dt_Task.SourceAddress, dt_Task.PalletCode, deviceTypeEnum, LocationStatusEnum.Free); |
| | | BaseDal.UpdateData(dt_Task); |
| | | Db.Ado.CommitTran(); |
| | | //BaseDal.UpdateData(dt_Task); |
| | | //Db.Ado.CommitTran(); |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | |
| | | { |
| | | try |
| | | { |
| | | WMSInOutBoundCompleteFeedback boundCompleteFeedback = new WMSInOutBoundCompleteFeedback(); |
| | | WMSReturn agvContent = null; |
| | | dt_Task.TaskState = TaskStatusEnum.Finish.ObjToInt(); |
| | | |
| | | Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(WMSInOutBoundCompleteFeedback)); |
| | | if (apiInfo == null) dt_Task.ExceptionMessage = "æªæ¾å°åºå
¥åºå®æåé¦WMSæ¥å£é
置信æ¯ï¼è¯·æ£æ¥æ¥å£é
ç½®"; |
| | | else |
| | | { |
| | | boundCompleteFeedback.taskCode = dt_Task.WMSTaskNum; |
| | | boundCompleteFeedback.containerCode = dt_Task.PalletCode; |
| | | boundCompleteFeedback.fromStationCode = dt_Task.SourceAddress; |
| | | boundCompleteFeedback.toLocationCode = dt_Task.TargetAddress; |
| | | switch (deviceTypeEnum) |
| | | { |
| | | case DeviceTypeEnum.GALAXIS: |
| | | boundCompleteFeedback.businessType = 1; |
| | | break; |
| | | case DeviceTypeEnum.YuanLiJuHe: |
| | | boundCompleteFeedback.businessType = 2; |
| | | break; |
| | | } |
| | | |
| | | boundCompleteFeedback.completeType = 1; |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, boundCompleteFeedback.Serialize()); |
| | | agvContent = response.DeserializeObject<WMSReturn>(); |
| | | if (agvContent.code != 0) dt_Task.ExceptionMessage = agvContent.msg; |
| | | } |
| | | Db.Ado.BeginTran(); |
| | | TaskFeedback(dt_Task, 2); |
| | | //Db.Ado.BeginTran(); |
| | | UpdateLocationStatus(dt_Task.TargetAddress, dt_Task.PalletCode, deviceTypeEnum, LocationStatusEnum.InStock); |
| | | if (agvContent != null && agvContent.code == 0) |
| | | BaseDal.DeleteAndMoveIntoHty(dt_Task, OperateTypeEnum.èªå¨å®æ); |
| | | else |
| | | BaseDal.UpdateData(dt_Task); |
| | | Db.Ado.CommitTran(); |
| | | |
| | | //Db.Ado.CommitTran(); |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Db.Ado.RollbackTran(); |
| | | //Db.Ado.RollbackTran(); |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 䏿¥WMS |
| | | public WebResponseContent TaskFeedback(Dt_Task dt_Task, int Status) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | WMSInOutBoundCompleteFeedback boundCompleteFeedback = new WMSInOutBoundCompleteFeedback(); |
| | | WMSReturn agvContent = null; |
| | | try |
| | | { |
| | | Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(WMSInOutBoundCompleteFeedback)); |
| | | if (apiInfo == null) dt_Task.ExceptionMessage = "æªæ¾å°åºå
¥åºå®æåé¦WMSæ¥å£é
置信æ¯ï¼è¯·æ£æ¥æ¥å£é
ç½®"; |
| | | else |
| | | { |
| | | boundCompleteFeedback.taskCode = dt_Task.WMSTaskNum; |
| | | boundCompleteFeedback.containerCode = dt_Task.PalletCode; |
| | | boundCompleteFeedback.fromStationCode = dt_Task.SourceAddress; |
| | | boundCompleteFeedback.toLocationCode = dt_Task.TargetAddress; |
| | | boundCompleteFeedback.status = Status; |
| | | boundCompleteFeedback.custStatus = ""; |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, boundCompleteFeedback.Serialize()); |
| | | agvContent = response.DeserializeObject<WMSReturn>(); |
| | | content.Data = agvContent; |
| | | if (agvContent.code != 0) dt_Task.ExceptionMessage = agvContent.msg; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | dt_Task.ExceptionMessage = ex.Message; |
| | | } |
| | | finally |
| | | { |
| | | _trackloginfoService.AddTrackLog(boundCompleteFeedback, content, "åºå
¥åºä»»å¡ç¶æåé¦WMS", "", ""); |
| | | if (agvContent != null && agvContent.code == 0 && Status == 2) |
| | | BaseDal.DeleteAndMoveIntoHty(dt_Task, OperateTypeEnum.èªå¨å®æ); |
| | | else |
| | | BaseDal.UpdateData(dt_Task); |
| | | } |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | #endregion |
| | | } |
| | | } |