| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | using MECF.Framework.Common.CommonData;using MECF.Framework.Common.DataCenter;using System;using System.Collections.Generic;using System.Collections.ObjectModel;using System.Data;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using FurnaceUI.Models;namespace FurnaceUI.Views.DataLog{    public class CassetteDetailViewModel : FurnaceUIViewModelBase    {        public ObservableCollection<CassetteDetailItem> CassetteDetailItems { get; set; } = new ObservableCollection<CassetteDetailItem>();        public CassetteDetailViewModel(DateTime startTime, DateTime endTime, string lotId)        {            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}'";            if (!string.IsNullOrWhiteSpace(lotId)) sql += string.Format(" and lower(\"lot_id\")='{0}' ", lotId.ToLower());            sql += $" order by \"arrive_time\" ASC";            DataTable dbData = QueryDataClient.Instance.Service.QueryData(sql);            if (dbData != null && dbData.Rows.Count > 0)            {                for (int i = 0; i < dbData.Rows.Count; i++)                {                    CassetteDetailItem item = new CassetteDetailItem();                    item.ModuleName = dbData.Rows[i]["station"].ToString();                    item.LotId = dbData.Rows[i]["lot_id"].ToString();                    item.Status = dbData.Rows[i]["status"].ToString();                    if (!dbData.Rows[i]["arrive_time"].Equals(DBNull.Value))                    {                        item.ArriveTime = (DateTime)dbData.Rows[i]["arrive_time"];                    }                    CassetteDetailItems.Add(item);                }            }        }        public void CloseCmd()        {            ((Window)GetView()).Close();        }    }    public class CassetteDetailItem : NotifiableItem    {        private string _moduleName;        public string ModuleName        {            get => _moduleName;            set            {                _moduleName = value;                InvokePropertyChanged(nameof(ModuleName));            }        }        private DateTime _arriveTime;        public DateTime ArriveTime        {            get => _arriveTime;            set            {                _arriveTime = value;                InvokePropertyChanged(nameof(ArriveTime));            }        }        private string _lotId;        public string LotId        {            get => _lotId;            set            {                _lotId = value;                InvokePropertyChanged(nameof(LotId));            }        }        private string _status;        public string Status        {            get => _status;            set            {                _status = value;                InvokePropertyChanged(nameof(Status));            }        }    }}
 |