private void CreateTaskItem(FCreateTaskItem task)
        {
            var taskItem = new TaskItem
            {
                SimulationConfigurationId = Collector.simulationId.Value,
                SimulationNumber          = Collector.simulationNumber.Value,
                SimulationType            = Collector.simulationKind.Value,
                Type           = task.Type,
                Resource       = task.Resource,
                ResourceType   = _resources.Single(x => x.Key.Equals(task.ResourceId)).Value.ResourceType,
                Start          = task.Start,
                End            = task.End,
                CapabilityName = task.Capability,
                Operation      = task.Operation,
                GroupId        = task.GroupId
            };

            if (_taskItems.TryGetValue(task.Type, out var list))
            {
                list.Add(taskItem);
            }
            else
            {
                _taskItems.Add(taskItem.Type, new List <ISimulationTask> {
                    taskItem
                });
            }

            Collector.messageHub.SendToClient(listener: "ganttChart", msg: JsonConvert.SerializeObject(value: taskItem));
        }
Пример #2
0
        void CreateSetupTask(long gap, string type)
        {
            var pub = new FCreateTaskItem(
                type
                , resource: Agent.Name.Replace("Resource(", "").Replace(")", "")
                , start: Agent.CurrentTime
                , end: Agent.CurrentTime + gap
                , capability: _capabilityProviderManager.GetCurrentUsedCapability().Name
                , operation: $"{type} for {_jobInProgress.JobName}"
                , groupId: _jobInProgress.JobName);

            //TODO NO tracking
            Agent.Context.System.EventStream.Publish(@event: pub);
        }
Пример #3
0
        void CreateProcessingTask(FOperation item)
        {
            var pub = new FCreateTaskItem(
                type: JobType.OPERATION
                , resource: Agent.Name.Replace("Resource(", "").Replace(")", "")
                , start: Agent.CurrentTime
                , end: Agent.CurrentTime + item.Operation.RandomizedDuration
                , capability: _jobInProgress.RequiredCapabilityName
                , operation: item.Operation.Name
                , groupId: _jobInProgress.JobName);

            //TODO NO tracking
            Agent.Context.System.EventStream.Publish(@event: pub);
        }
Пример #4
0
        void CreateTask(FCentralActivity activity)
        {
            var pub = new FCreateTaskItem(
                type: activity.ActivityType
                , resource: _resourceDefinition.ResourceName
                , resourceId: _resourceDefinition.ResourceId
                , start: Agent.CurrentTime
                , end: Agent.CurrentTime + activity.Duration
                , capability: activity.Capability
                , operation: activity.ActivityType == JobType.SETUP ? "Setup for " + activity.Name : activity.Name
                , groupId: activity.ProductionOrderId + activity.OperationId + activity.ActivityId + activity.GanttPlanningInterval);

            //TODO NO tracking
            Agent.Context.System.EventStream.Publish(@event: pub);
        }