CassetteDetailViewModel.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. using MECF.Framework.Common.CommonData;
  2. using MECF.Framework.Common.DataCenter;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Collections.ObjectModel;
  6. using System.Data;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Windows;
  11. using FurnaceUI.Models;
  12. namespace FurnaceUI.Views.DataLog
  13. {
  14. public class CassetteDetailViewModel : FurnaceUIViewModelBase
  15. {
  16. public ObservableCollection<CassetteDetailItem> CassetteDetailItems { get; set; } = new ObservableCollection<CassetteDetailItem>();
  17. public CassetteDetailViewModel(DateTime startTime, DateTime endTime, string lotId)
  18. {
  19. string sql = $"SELECT * FROM \"carrier_move_history\" where \"arrive_time\" >= '{startTime:yyyy/MM/dd HH:mm:ss.fff}' and \"arrive_time\" <= '{endTime:yyyy/MM/dd HH:mm:ss.fff}'";
  20. if (!string.IsNullOrWhiteSpace(lotId)) sql += string.Format(" and lower(\"lot_id\")='{0}' ", lotId.ToLower());
  21. sql += $" order by \"arrive_time\" ASC";
  22. DataTable dbData = QueryDataClient.Instance.Service.QueryData(sql);
  23. if (dbData != null && dbData.Rows.Count > 0)
  24. {
  25. for (int i = 0; i < dbData.Rows.Count; i++)
  26. {
  27. CassetteDetailItem item = new CassetteDetailItem();
  28. item.ModuleName = dbData.Rows[i]["station"].ToString();
  29. item.LotId = dbData.Rows[i]["lot_id"].ToString();
  30. item.Status = dbData.Rows[i]["status"].ToString();
  31. if (!dbData.Rows[i]["arrive_time"].Equals(DBNull.Value))
  32. {
  33. item.ArriveTime = (DateTime)dbData.Rows[i]["arrive_time"];
  34. }
  35. CassetteDetailItems.Add(item);
  36. }
  37. }
  38. }
  39. public void CloseCmd()
  40. {
  41. ((Window)GetView()).Close();
  42. }
  43. }
  44. public class CassetteDetailItem : NotifiableItem
  45. {
  46. private string _moduleName;
  47. public string ModuleName
  48. {
  49. get => _moduleName;
  50. set
  51. {
  52. _moduleName = value;
  53. InvokePropertyChanged(nameof(ModuleName));
  54. }
  55. }
  56. private DateTime _arriveTime;
  57. public DateTime ArriveTime
  58. {
  59. get => _arriveTime;
  60. set
  61. {
  62. _arriveTime = value;
  63. InvokePropertyChanged(nameof(ArriveTime));
  64. }
  65. }
  66. private string _lotId;
  67. public string LotId
  68. {
  69. get => _lotId;
  70. set
  71. {
  72. _lotId = value;
  73. InvokePropertyChanged(nameof(LotId));
  74. }
  75. }
  76. private string _status;
  77. public string Status
  78. {
  79. get => _status;
  80. set
  81. {
  82. _status = value;
  83. InvokePropertyChanged(nameof(Status));
  84. }
  85. }
  86. }
  87. }