| | |
| | | using Newtonsoft.Json; |
| | | using WIDESEAWCS_Common.AGVEnum; |
| | | using WIDESEAWCS_Common.AGVEnum; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_DTO.TaskInfo; |
| | | using WIDESEAWCS_ITaskInfoRepository; |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | //agvtask_HtyRepository.AddTaskHistory(agvTask, OperateType.Finished.ToString()); |
| | | _taskRepository.DeleteData(agvTask); |
| | | plcClient.Communicator.Write(taskFbInteractive2, 1); |
| | |
| | | } |
| | | } |
| | | |
| | | public static void UpdateTask(AGV plcClient, ITaskRepository taskRepository, ITaskCZRepository _taskCZRepository) |
| | | public static void UpdateTask(AGV plcClient, ITaskRepository taskRepository, ITaskCZRepository _taskCZRepository, ITaskCZDetailsRepository _detailsRepository) |
| | | { |
| | | // 使ç¨Interlocked.Exchangeä¿è¯å䏿¶é´åªæä¸ä¸ªçº¿ç¨å¯ä»¥æ§è¡ä»»å¡æ´æ° |
| | | if (Interlocked.Exchange(ref _readUpdateAGVTaskSignalso, 1) == 0) |
| | |
| | | { |
| | | // æåæºè¿çç®± |
| | | // TODO: è°ç¨åæºæ¥å£è·å宿´æ¡ç |
| | | var czTask = _taskCZRepository.QueryFirst(x => x.Id == agvTask.WMSId); |
| | | CZTaskBarCodeDto barCodeDto = JsonConvert.DeserializeObject<CZTaskBarCodeDto>(czTask.DtCZTaskDetails); |
| | | var materials = Enumerable.Range(0, 2) |
| | | .Select(i => new BakingClass |
| | | { |
| | | MaterialType = czTask.TaskProductCode, |
| | | BarCode = GetBarCodeByIndex(barCodeDto, i, hasDesc: !string.IsNullOrEmpty(czTask.TaskDesc)) |
| | | }) |
| | | .ToList(); |
| | | //var czTask = _taskCZRepository.QueryFirst(x => x.Id == agvTask.WMSId); |
| | | //CZTaskBarCodeDto barCodeDto = JsonConvert.DeserializeObject<CZTaskBarCodeDto>(czTask.DtCZTaskDetails); |
| | | //var materials = Enumerable.Range(0, 2) |
| | | // .Select(i => new BakingClass |
| | | // { |
| | | // MaterialType = czTask.TaskProductCode, |
| | | // BarCode = GetBarCodeByIndex(barCodeDto, i, hasDesc: !string.IsNullOrEmpty(czTask.TaskDesc)) |
| | | // }) |
| | | // .ToList(); |
| | | |
| | | var details = _detailsRepository.QueryData(x => x.TaskEndAddress == agvTask.TargetAddress && x.TaskName == agvTask.Roadway).OrderBy(x => x.CreateDate).ToList(); |
| | | |
| | | if (details.Count >= 2) |
| | | { |
| | | details = details.Take(2).ToList(); |
| | | } |
| | | |
| | | var materials = details.Select(x => new BakingClass |
| | | { |
| | | MaterialType = x.MaterialType, |
| | | BarCode = x.MaterialBarCode, |
| | | }).ToList(); |
| | | |
| | | MESback WMSbackresult = MESAPIInvoke.BakingFeedingBinding(agvTask.TargetAddress, materials); |
| | | if (WMSbackresult.Code > 0) { new Exception(WMSbackresult.Message); return; } |
| | | else |
| | | { |
| | | if (!string.IsNullOrEmpty(czTask.TaskDesc)) |
| | | { |
| | | czTask.TaskDesc = "ä»»å¡å®æä¸¤æ¬¡æ¬¡"; |
| | | _taskCZRepository.DeleteData(czTask); |
| | | } |
| | | else |
| | | { |
| | | czTask.TaskDesc = "ä»»å¡å®æä¸æ¬¡"; |
| | | _taskCZRepository.UpdateData(czTask); |
| | | } |
| | | // å é¤detailsæ°æ® |
| | | _detailsRepository.DeleteData(details); |
| | | } |
| | | } |
| | | } |