diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2025-07-13 21:14:15 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2025-07-13 21:14:15 +0300 |
| commit | c0ec4ba94d00b716d9ab659fd882df872800d342 (patch) | |
| tree | bcfcd19c30a1b3d83fce372a1878664190f361c7 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels | |
| parent | 38d9c5a7fdc1f51613aad8a9771ba4cbf2e04a8c (diff) | |
| download | Tango-c0ec4ba94d00b716d9ab659fd882df872800d342.tar.gz Tango-c0ec4ba94d00b716d9ab659fd882df872800d342.zip | |
Improved MS csv report.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs | 165 |
1 files changed, 98 insertions, 67 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs index 84b7ca76b..b9327c9aa 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs @@ -46,7 +46,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels private List<User> _allUsers; private List<RmlModel> _rmlsModels; - + #region Properties @@ -97,7 +97,9 @@ namespace Tango.MachineStudio.Statistics.ViewModels public bool IsEnabledSelectionSites { get { return _IsEnabledSelectionSites; } - set { _IsEnabledSelectionSites = value; + set + { + _IsEnabledSelectionSites = value; RaisePropertyChangedAuto(); } } @@ -107,7 +109,9 @@ namespace Tango.MachineStudio.Statistics.ViewModels public bool AllSelectedSites { get { return _allSelectedSites; } - set { _allSelectedSites = value; + set + { + _allSelectedSites = value; RaisePropertyChangedAuto(); } } @@ -160,7 +164,9 @@ namespace Tango.MachineStudio.Statistics.ViewModels public DateTime StartSelectedDate { get { return _startSelectedDate; } - set { _startSelectedDate = value; + set + { + _startSelectedDate = value; RaisePropertyChangedAuto(); } } @@ -298,7 +304,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels { _notification = notificationProvider; JobRuns = new ObservableCollection<JobRunModel>(); - LoadJobRunsCommand = new RelayCommand(async () => await LoadJobRuns(), () => IsFree && SelectedMachines!= null && SelectedMachines.Source.Count >0); + LoadJobRunsCommand = new RelayCommand(async () => await LoadJobRuns(), () => IsFree && SelectedMachines != null && SelectedMachines.Source.Count > 0); ExportToExcelCommand = new RelayCommand(ExportToExcel, () => IsFree); LengthUpperValue = 1000000.0; LengthLowerValue = 0.0; @@ -347,7 +353,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels IsGradientSelection.SelectionChanged += (x, y) => RaisePropertyChanged(nameof(IsGradientSelection)); HeadCleaningSelected = HeadCleaningSelectionEnum.Exclude; - + JobsProvider = new SuggestionProvider((filter) => { try @@ -388,15 +394,15 @@ namespace Tango.MachineStudio.Statistics.ViewModels using (var db = ObservablesContext.CreateDefault()) { - _organizations = await db.Organizations.Select(x => new OrganisationToSiteModel(){ Name = x.Name, Guid = x.Guid}).ToListAsync(); - foreach(var org in _organizations) + _organizations = await db.Organizations.Select(x => new OrganisationToSiteModel() { Name = x.Name, Guid = x.Guid }).ToListAsync(); + foreach (var org in _organizations) { - org.Sites = await db.Sites.Where(y => y.OrganizationGuid == org.Guid).Select(y => new SiteModel(){ Guid = y.Guid,Name = y.Name,}).ToListAsync(); - foreach(var site in org.Sites) + org.Sites = await db.Sites.Where(y => y.OrganizationGuid == org.Guid).Select(y => new SiteModel() { Guid = y.Guid, Name = y.Name, }).ToListAsync(); + foreach (var site in org.Sites) { - site.Machines = await db.Machines.Where(x => x.SiteGuid == site.Guid).Select(y => new MachineModel(){Guid = y.Guid,Name = y.Name,SerialNumber = y.SerialNumber}).ToListAsync(); + site.Machines = await db.Machines.Where(x => x.SiteGuid == site.Guid).Select(y => new MachineModel() { Guid = y.Guid, Name = y.Name, SerialNumber = y.SerialNumber }).ToListAsync(); } - org.Machines = await db.Machines.Where(y=> y.OrganizationGuid == org.Guid).Select(y => new MachineModel() {Guid = y.Guid, Name = y.Name, SerialNumber = y.SerialNumber }).ToListAsync(); + org.Machines = await db.Machines.Where(y => y.OrganizationGuid == org.Guid).Select(y => new MachineModel() { Guid = y.Guid, Name = y.Name, SerialNumber = y.SerialNumber }).ToListAsync(); } _allMachines = await db.Machines.ToListAsync(); _allUsers = await db.Users.Include(x => x.Contact).ToListAsync(); @@ -406,7 +412,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels SelectedMachines = new SelectedObjectCollection<MachineModel>(new ObservableCollection<MachineModel>(), new ObservableCollection<MachineModel>()); SelectedThreads = new SelectedObjectCollection<RmlModel>(_rmlsModels.ToObservableCollection(), new ObservableCollection<RmlModel>()); SelectedSites = new SelectedObjectCollection<SiteModel>(new ObservableCollection<SiteModel>(), new ObservableCollection<SiteModel>()); - SelectedOrganizations = new SelectedObjectCollection<OrganisationToSiteModel>(_organizations.ToObservableCollection(), _organizations.ToObservableCollection()); + SelectedOrganizations = new SelectedObjectCollection<OrganisationToSiteModel>(_organizations.ToObservableCollection(), _organizations.ToObservableCollection()); SelectedOrganizations.SelectionChanged -= OnSelectedOrganizationsChanged; SelectedOrganizations.SelectionChanged += OnSelectedOrganizationsChanged; SelectedSites.SelectionChanged -= OnSelectedSitesChanged; @@ -423,7 +429,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels IsFree = true; } } - + } private void OnSelectedSitesChanged(object sender, EventArgs e) @@ -465,7 +471,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels AllSelectedMachines = true; InvalidateRelayCommands(); } - + /// <summary> /// Loads the job runs by filters. /// </summary> @@ -476,7 +482,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels try { IsFree = false; - + using (var db = ObservablesContext.CreateDefault()) { DateTime startUtc = new DateTime(StartSelectedDate.Year, StartSelectedDate.Month, StartSelectedDate.Day, 0, 0, 0).ToUniversalTime(); @@ -484,7 +490,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels DateTime endUtc = EndSelectedDate.ToUniversalTime() + offsetTime; string jobName = SelectedJob == null ? "" : SelectedJob.Name; - + var db_JobRuns = db.JobRuns.Where(x => (x.StartDate <= endUtc && x.StartDate >= startUtc)) .Select(x => new { @@ -542,8 +548,8 @@ namespace Tango.MachineStudio.Statistics.ViewModels { db_JobRuns = db_JobRuns.Where(x => isGradientArr.Contains(x.IsGradient)); } - - if(HeadCleaningSelected != HeadCleaningSelectionEnum.Include) + + if (HeadCleaningSelected != HeadCleaningSelectionEnum.Include) { bool isHeadCleaning = HeadCleaningSelected == HeadCleaningSelectionEnum.Only; db_JobRuns = db_JobRuns.Where(x => isHeadCleaning == x.IsHeadCleaning); @@ -599,7 +605,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels ActualEndPosition = x.ActualEndPosition, JobLogicalLength = x.JobLogicalLength, }).ToList(); - + var modelList = runs.Select(x => new JobRunModel() { JobRun = x, @@ -612,7 +618,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels JobRuns = modelList.ToObservableCollection(); GenerateStatistics(); } - + } catch (Exception ex) { @@ -642,30 +648,36 @@ namespace Tango.MachineStudio.Statistics.ViewModels { "ID", "Machine", - "User", + "Source", "Job Name", + "Job Kind", "Thread", "Length", - "Source", - "Upload Duration", - "Heating Duration", + "Number Of Units", "Start Time", - "IsGradient", - "Gradient Resolution", - "Status", - "End Date", - "Total dyeing time", + "Duration", + "Distance", + "Start Position", "End Position", - "Cyan", - "Magenta", - "Yellow", - "Black", - "Transparent", - "Lubricant", - "Cleaner", - "LightCyan", - "LightMagenta", - "LightYellow" + "Status", + "Output Cyan", + "Output Magenta", + "Output Yellow", + "Output Black", + "Output Light Cyan", + "Output Light Magenta", + "Output Light Yellow", + "Output Blue", + "Output Light Blue", + "Output Orange", + "Output Light Orange", + "Output Rubine", + "Output Light Rubine", + "Output Navy", + "Output Violet", + "Output Transparent Ink", + "Output Lubricant", + "Failure Reason", }, }); var selection = JobRuns;// item 5861 (all available jobs should be saved) .Where(z => z.JobRun.EndPosition > 0 && z.JobRun.EndDate != null && z.JobRun.ActualStartDate != null); @@ -673,33 +685,51 @@ namespace Tango.MachineStudio.Statistics.ViewModels { ExcelModel excel_model = new ExcelModel(); excel_model.ID = jobRunModel.JobRun.ID.ToString(); + excel_model.Gen = ((MachineTypes)jobRunModel.JobRun.MachineType).ToDescription(); excel_model.Machine = jobRunModel.Machine != null ? jobRunModel.Machine.SerialNumber : ""; - excel_model.User = jobRunModel.User != null ? jobRunModel.User.Contact.FullName: ""; + excel_model.Source = jobRunModel.JobRun.Source.ToString(); excel_model.JobName = jobRunModel.JobRun.JobName; + excel_model.JobKind = ((JobDesignations)jobRunModel.JobRun.JobDesignation).ToDescription(); excel_model.Thread = jobRunModel.Rml != null ? jobRunModel.Rml.Name : ""; - excel_model.Length = String.Format("{0:0.##}", jobRunModel.JobRun.JobLength); - excel_model.Source = jobRunModel.JobRun.Source.ToString(); - excel_model.UploadDuration = jobRunModel.UploadDuration != null ? ((TimeSpan)(jobRunModel.UploadDuration)).ToString(@"hh\:mm\:ss") : TimeSpan.FromSeconds(0).ToString(@"hh\:mm\:ss"); - excel_model.HeatingDuration = jobRunModel.HeatingDuration != null ? ((TimeSpan)(jobRunModel.HeatingDuration)).ToString(@"hh\:mm\:ss") : TimeSpan.FromSeconds(0).ToString(@"hh\:mm\:ss"); - excel_model.StartTime = jobRunModel.JobRun.ActualStartDate != null ? ((DateTime)jobRunModel.JobRun.ActualStartDate).ToLocalTime().ToString("MM/dd/yy HH:mm"): ""; - excel_model.IsGradient = jobRunModel.JobRun.IsGradient ? "Yes" : "No"; - excel_model.GR = jobRunModel.JobRun.GradientResolutionCm.ToString(); + excel_model.Length = jobRunModel.LogicalLengthMeters.ToString(); + excel_model.NumberOfUnits = Math.Max(jobRunModel.JobRun.NumberOfUnits, 1).ToString(); + excel_model.StartTime = jobRunModel.JobRun.StartDate.ToLocalTime().ToString(); + //excel_model.UploadDuration = jobRunModel.UploadDuration != null ? ((TimeSpan)(jobRunModel.UploadDuration)).ToString(@"hh\:mm\:ss") : TimeSpan.FromSeconds(0).ToString(@"hh\:mm\:ss"); + //excel_model.HeatingDuration = jobRunModel.HeatingDuration != null ? ((TimeSpan)(jobRunModel.HeatingDuration)).ToString(@"hh\:mm\:ss") : TimeSpan.FromSeconds(0).ToString(@"hh\:mm\:ss"); + //excel_model.IsGradient = jobRunModel.JobRun.IsGradient ? "Yes" : "No"; + //excel_model.GR = jobRunModel.JobRun.GradientResolutionCm.ToString(); + excel_model.Duration = jobRunModel.Duration.ToStringUnlimitedHours(); + excel_model.Distance = jobRunModel.Distance.ToString(); + excel_model.StartPosition = jobRunModel.ActualStartPosition.ToString(); + excel_model.EndPosition = jobRunModel.ActualEndPosition.ToString(); excel_model.Status = jobRunModel.JobRun.JobRunStatus.ToString(); - excel_model.EndTime = jobRunModel.JobRun.EndDate != null ? ((DateTime)jobRunModel.JobRun.EndDate).ToLocalTime().ToString("MM/dd/yy HH:mm"): ""; - excel_model.TotalDyeingTime = jobRunModel.JobRun.TotalDyeingTime != default(TimeSpan) ? ((TimeSpan)jobRunModel.JobRun.TotalDyeingTime).ToString(@"hh\:mm\:ss") : TimeSpan.FromSeconds(0).ToString(@"hh\:mm\:ss"); - excel_model.EndPosition = String.Format("{0:0.##}", jobRunModel.JobRun.EndPosition); - excel_model.Cyan = jobRunModel.JobRun.CyanQuantity < 0 ? "" :jobRunModel.JobRun.CyanQuantity.ToString(); - excel_model.Magenta = jobRunModel.JobRun.MagentaQuantity < 0 ? "" : jobRunModel.JobRun.MagentaQuantity.ToString(); - excel_model.Yellow = jobRunModel.JobRun.YellowQuantity < 0 ? "" : jobRunModel.JobRun.YellowQuantity.ToString(); - excel_model.Black = jobRunModel.JobRun.BlackQuantity < 0 ? "" : jobRunModel.JobRun.BlackQuantity.ToString(); - excel_model.Transparent = jobRunModel.JobRun.TransparentQuantity < 0 ? "" : jobRunModel.JobRun.TransparentQuantity.ToString(); - excel_model.Lubricant = jobRunModel.JobRun.LubricantQuantity < 0 ? "" : jobRunModel.JobRun.LubricantQuantity.ToString(); - excel_model.Cleaner = jobRunModel.JobRun.CleanerQuantity < 0 ? "" : jobRunModel.JobRun.CleanerQuantity.ToString(); - excel_model.LightCyan = jobRunModel.JobRun.LightCyanQuantity < 0 ? "" : jobRunModel.JobRun.LightCyanQuantity.ToString(); - excel_model.LightMagenta = jobRunModel.JobRun.LightMagentaQuantity < 0 ? "" : jobRunModel.JobRun.LightMagentaQuantity.ToString(); - excel_model.LightYellow = jobRunModel.JobRun.LightYellowQuantity < 0 ? "" : jobRunModel.JobRun.LightYellowQuantity.ToString(); + //excel_model.EndTime = jobRunModel.JobRun.EndDate != null ? ((DateTime)jobRunModel.JobRun.EndDate).ToLocalTime().ToString("MM/dd/yy HH:mm"): ""; + //excel_model.TotalDyeingTime = jobRunModel.JobRun.TotalDyeingTime != default(TimeSpan) ? ((TimeSpan)jobRunModel.JobRun.TotalDyeingTime).ToString(@"hh\:mm\:ss") : TimeSpan.FromSeconds(0).ToString(@"hh\:mm\:ss"); + + excel_model.OutputCyan = jobRunModel.JobRun.CyanQuantity < 0 ? "" : jobRunModel.JobRun.CyanQuantity.ToString(); + excel_model.OutputMagenta = jobRunModel.JobRun.MagentaQuantity < 0 ? "" : jobRunModel.JobRun.MagentaQuantity.ToString(); + excel_model.OutputYellow = jobRunModel.JobRun.YellowQuantity < 0 ? "" : jobRunModel.JobRun.YellowQuantity.ToString(); + excel_model.OutputBlack = jobRunModel.JobRun.BlackQuantity < 0 ? "" : jobRunModel.JobRun.BlackQuantity.ToString(); + excel_model.OutputLightCyan = jobRunModel.JobRun.LightCyanQuantity < 0 ? "" : jobRunModel.JobRun.LightCyanQuantity.ToString(); + excel_model.OutputLightMagenta = jobRunModel.JobRun.LightMagentaQuantity < 0 ? "" : jobRunModel.JobRun.LightMagentaQuantity.ToString(); + excel_model.OutputLightYellow = jobRunModel.JobRun.LightYellowQuantity < 0 ? "" : jobRunModel.JobRun.LightYellowQuantity.ToString(); + + excel_model.OutputBlue = jobRunModel.JobRun.BlueQuantity < 0 ? "" : jobRunModel.JobRun.BlueQuantity.ToString(); + excel_model.OutputLightBlue = jobRunModel.JobRun.LightBlueQuantity < 0 ? "" : jobRunModel.JobRun.LightBlueQuantity.ToString(); + excel_model.OutputOrange = jobRunModel.JobRun.OrangeQuantity < 0 ? "" : jobRunModel.JobRun.OrangeQuantity.ToString(); + excel_model.OutputLightOrange = jobRunModel.JobRun.LightOrangeQuantity < 0 ? "" : jobRunModel.JobRun.LightOrangeQuantity.ToString(); + excel_model.OutputRubine = jobRunModel.JobRun.RubineQuantity < 0 ? "" : jobRunModel.JobRun.RubineQuantity.ToString(); + excel_model.OutputLightRubine = jobRunModel.JobRun.LightRubineQuantity < 0 ? "" : jobRunModel.JobRun.LightRubineQuantity.ToString(); + excel_model.OutputNavy = jobRunModel.JobRun.NavyQuantity < 0 ? "" : jobRunModel.JobRun.NavyQuantity.ToString(); + excel_model.OutputViolet = jobRunModel.JobRun.VioletQuantity < 0 ? "" : jobRunModel.JobRun.VioletQuantity.ToString(); + + excel_model.OutputTransparentInk = jobRunModel.JobRun.TransparentQuantity < 0 ? "" : jobRunModel.JobRun.TransparentQuantity.ToString(); + excel_model.OutputLubricant = jobRunModel.JobRun.LubricantQuantity < 0 ? "" : jobRunModel.JobRun.LubricantQuantity.ToString(); + //excel_model.Cleaner = jobRunModel.JobRun.CleanerQuantity < 0 ? "" : jobRunModel.JobRun.CleanerQuantity.ToString(); + excel_model.FailureReason = jobRunModel.JobRun.FailedMessage; + csvFile.Append(excel_model); - + } csvFile.Dispose(); @@ -712,12 +742,13 @@ namespace Tango.MachineStudio.Statistics.ViewModels } } } - #region GenerateS_StatisticsValueCollection - /// <summary> - /// Generates the statistics. - /// </summary> - protected void GenerateStatistics() + #region GenerateS_StatisticsValueCollection + + /// <summary> + /// Generates the statistics. + /// </summary> + protected void GenerateStatistics() { StatisticsValueCollection.Clean(); if (JobRuns.Count() == 0) |
