using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Aitex.Core.RT.DBCore;
using Aitex.Core.RT.Event;
using Aitex.Core.RT.Log;
using Aitex.Sorter.Common;
using MECF.Framework.Common.CommonData;
namespace Aitex.Sorter.RT.Module.DBRecorder
{
    /*
     */
    public class CarrierDataRecorder
    {
        /// 
        /// 
        /// 
        /// 唯一
        /// 位置
        public static void Loaded(string guid, string station)
        {
            string sql = string.Format("INSERT INTO \"carrier_data\"(\"guid\", \"load_time\", \"station\" )VALUES ('{0}', '{1}', '{2}');",
                guid,
                DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff"),
                station );
            DB.Insert(sql);
        }
        public static void UpdateCarrierId(string guid, string rfid)
        {
            string sql = string.Format(
                "UPDATE \"carrier_data\" SET \"rfid\"='{0}' WHERE \"guid\"='{1}';",
                rfid, guid);
            DB.Insert(sql);
        }
        public static void UpdateLotId(string guid, string lotId)
        {
            string sql = string.Format(
                "UPDATE \"carrier_data\" SET \"lot_id\"='{0}' WHERE \"guid\"='{1}';",
                lotId, guid);
            DB.Insert(sql);
        }
        public static void UpdateProductCategory(string guid, string productCategory)
        {
            string sql = string.Format(
                "UPDATE \"carrier_data\" SET \"product_category\"='{0}' WHERE \"guid\"='{1}';",
                productCategory, guid);
            DB.Insert(sql);
        }
        public static void Unloaded(string guid)
        {
            string sql = string.Format(
                "UPDATE \"carrier_data\" SET \"unload_time\"='{0}' WHERE \"guid\"='{1}';",
                DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff"),
                guid);
            DB.Insert(sql);
        }
        public static List QueryDBCarrier(string sql)
        {
            List result = new List();
            try
            {
                DataSet ds = DB.ExecuteDataset(sql);
                if (ds == null)
                    return result;
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    HistoryCarrierData ev = new HistoryCarrierData();
                    ev.Guid = ds.Tables[0].Rows[i]["guid"].ToString();
     
                    ev.Rfid = ds.Tables[0].Rows[i]["rfid"].ToString();
                    ev.LotId = ds.Tables[0].Rows[i]["lot_id"].ToString();
                    ev.ProductCategory = ds.Tables[0].Rows[i]["product_category"].ToString();
                    ev.Station = ds.Tables[0].Rows[i]["station"].ToString();
                    if (!ds.Tables[0].Rows[i]["load_time"].Equals(DBNull.Value))
                        ev.LoadTime = ((DateTime)ds.Tables[0].Rows[i]["load_time"]).ToString("yyyy/MM/dd HH:mm:ss.fff");
                    if (!ds.Tables[0].Rows[i]["unload_time"].Equals(DBNull.Value))
                        ev.UnloadTime = ((DateTime)ds.Tables[0].Rows[i]["unload_time"]).ToString("yyyy/MM/dd HH:mm:ss.fff");
                    result.Add(ev);
                   }
                }
                catch (Exception ex)
                {
                LOG.WriteExeption(ex);
            }
            return result;
        }
    }
}