示例#1
0
        private void GetTaskToDosing()
        {
            var taskQueueItems = TaskQueueItemsService.ListTaskQueueItems();

            if (taskQueueItems.Any())
            {
                var taskQueueItem = taskQueueItems.OrderBy(x => x.Order).First();
                var task          = TasksReader.GetById(taskQueueItem.Task.Id);
                var recipe        = RecipesReader.GetById(task.Recipe.Id);
                var containers    = CheckMaterials(recipe);
                if (containers != null)
                {
                    var parameters = GetValues(task, recipe, containers);
                    if (parameters != null)
                    {
                        var isOk = LoadValues(parameters);
                        if (isOk)
                        {
                            var taskId = new Dictionary <ApiOpcParameter, string> {
                                { CurrentTaskIdParameter, task.Id.ToString() }
                            };
                            var taskIdLoadOk = LoadValues(taskId);
                            if (taskIdLoadOk)
                            {
                                ReportsService.CreateReport(task);
                                TaskQueueItemsService.Delete(taskQueueItem.Id);
                            }
                            else
                            {
                                Logger.Error("Ошибка записи CurrentTaskId.");
                            }
                        }
                        else
                        {
                            Logger.Error("Ошибка записи параметров.");
                        }
                    }
                    else
                    {
                        Logger.Error("Отсутствуют некоторые параметры.");
                    }
                }
                else
                {
                    Logger.Error("Отсутствуют некоторые материалы в контейнерах.");
                    MessageBox.Show("Отсутствуют некоторые материалы в контейнерах");
                }
            }
            else
            {
                Logger.Error("Отсутствуют задания в очереди.");
            }
        }
示例#2
0
 public LoadTaskHandler(TaskQueueItemsService taskQueueItemsService, Logger logger)
 {
     _opcName = NewOpcServer.OpcList.Rbu;
     TaskQueueItemsService = taskQueueItemsService;
     Logger                    = logger;
     ReportsService            = new ReportsService();
     TasksReader               = new TasksReader();
     ContainersReader          = new ContainersReader();
     BatchersReader            = new BatchersReader();
     RecipesReader             = new RecipesReader();
     CommonOpcParametersReader = new CommonOpcParametersReader();
     CreateSubscribe();
 }
示例#3
0
        private void GetTask(long id)
        {
            Tasks   = new ObservableCollection <ApiTask>(TasksReader.ListTasks());
            SelTask = Tasks.FirstOrDefault(x => x?.Id == id);
            var recipes   = new ObservableCollection <ApiRecipe>(RecipesReader.ListRecipes());
            var selRecipe = recipes.FirstOrDefault(x => x?.Id == SelTask.Recipe.Id);

            SelTaskGroupName = selRecipe.Group.Name;
            SelTaskName      = SelTask.Id + " - " + SelTask.Recipe.Name;
            var ending = SelTask.BatchesAmount == 1 ? "замес" : SelTask.BatchesAmount > 4 ? "замесов" : "замеса";

            SelTaskVolume  = SelTask.Volume + " м³" + " (" + SelTask.BatchesAmount + " " + ending + " × " + SelTask.BatchVolume + " м³)";
            CurrentSelTask = SelTask;
        }
示例#4
0
 private void GetTask(long id)
 {
     Tasks       = new ObservableCollection <ApiTask>(TasksReader.ListTasks());
     SelTask     = Tasks.FirstOrDefault(x => x.Id == id);
     SelTaskName = SelTask.Id + " - " + SelTask.Recipe.Name;
 }