aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2025-07-13 21:14:15 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2025-07-13 21:14:15 +0300
commitc0ec4ba94d00b716d9ab659fd882df872800d342 (patch)
treebcfcd19c30a1b3d83fce372a1878664190f361c7 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels
parent38d9c5a7fdc1f51613aad8a9771ba4cbf2e04a8c (diff)
downloadTango-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.cs165
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)