using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection.Emit; using System.Text; using SqlSugar; using WCS.Data; using WCS.Data.Models; namespace WCS_Client.Frm { public class Current { public static List TaskSet = new List(); /// /// plc列表 /// public static List PlcSet = new List(); public static void InitData(string wcssystem) { //string result = TryCachHelper.TryExecute((db) => // { // PlcSet = db.Queryable().Where(v => v.PLC_WCSSYSTEM == wcssystem).ToList(); // foreach (var plc in PlcSet) // { // plc.WCS_DBSet = db.Queryable().Where(v => v.DB_PLCNAME == plc.PLC_NAME).ToList(); // plc.WCS_ScannSet = db.Queryable().Where(v => v.SCANN_PLCNAME == plc.PLC_NAME).OrderBy(v => v.SCANN_SEQUENCE).ToList(); // plc.WCS_EquipmentInfoSet = db.Queryable().Where(v => v.Equ_PlcName == plc.PLC_NAME).OrderBy(v => v.Equ_Sequence).ToList(); // foreach (var item in plc.WCS_EquipmentInfoSet) // { // var equDBInfoSet = GetConvDBInfo(plc, item); // if (item.Equ_Type.ToLower().Trim() == EquipmentType.conveyor.ToString()) // { // item.EquSignal = new ConvSignal(item.Equ_PlcName, equDBInfoSet); // } // else if (item.Equ_Type.ToLower().Trim() == EquipmentType.srm.ToString()) // { // item.EquSignal = new SrmSignal(item.Equ_PlcName, equDBInfoSet); // } // else if (item.Equ_Type.ToLower().Trim() == EquipmentType.rgv.ToString()) // { // item.EquSignal = new RGVSignal(item.Equ_PlcName, equDBInfoSet); // } // } // plc.Init(); // } // }); } public static void RefreshData(bool isRefreshTask = false) { TryCachHelper.TryExecute((db) => { if (isRefreshTask) { TaskSet = db.Queryable().ToList(); } foreach (var plc in PlcSet) { plc.WCS_DBSet = db.Queryable().Where(v => v.DB_PLCNAME == plc.PLC_NAME).ToList(); } }); } private static List GetConvDBInfo(WCS_PLC plc, WCS_EQUIPMENTINFO item) { List equDBInfoSet = new List(); //var dbSet = plc.WCS_DBSet.Where(v => v.DB_PLCNAME == item.Equ_PlcName).ToList(); //foreach (var DB in dbSet) //{ // if (DB.DB_TYPE == (int)DB_TypeEnum.WCS可读可写DB) // { // if (string.IsNullOrWhiteSpace(item.Equ_ReadWriteDB_Sequence)) continue; // var convdb = new ConvDbInfo(); // convdb.DBName = DB.DB_NAME; // convdb.DBType = DB_TypeEnum.WCS可读可写DB; // convdb.DBReadLength = item.Equ_ReadWriteDB_Length; // //convdb.DBReadIndox = item.Equ_ReadWriteDB_Sequence * item.Equ_ReadWriteDB_Length; // int temp_sequence = Convert.ToInt32(item.Equ_ReadWriteDB_Sequence); // if (temp_sequence != 0) // { // int Totallength = temp_sequence * item.Equ_ReadWriteDB_Length; //plc.WCS_EquipmentInfoSet.Where(v => string.IsNullOrWhiteSpace(v.Equ_ReadWriteDB_Sequence) == false && Convert.ToInt32(v.Equ_ReadWriteDB_Sequence) < temp_sequence).Sum(v => v.Equ_ReadWriteDB_Length); // convdb.DBReadIndox = Totallength; // } // equDBInfoSet.Add(convdb); // } // else if (DB.DB_TYPE == (int)DB_TypeEnum.WCS只读DB) // { // if (string.IsNullOrWhiteSpace(item.Equ_ReadDB_Sequence)) continue; // var convdb = new ConvDbInfo(); // convdb.DBName = DB.DB_NAME; // convdb.DBType = DB_TypeEnum.WCS只读DB; // convdb.DBReadLength = item.Equ_ReadDB_Length; // //convdb.DBReadIndox = item.Equ_ReadWriteDB_Sequence * item.Equ_ReadWriteDB_Length; // int temp_sequence = Convert.ToInt32(item.Equ_ReadDB_Sequence); // if (temp_sequence != 0) // { // int Totallength = temp_sequence * item.Equ_ReadDB_Length; //plc.WCS_EquipmentInfoSet.Where(v => string.IsNullOrWhiteSpace(v.Equ_ReadDB_Sequence) == false && Convert.ToInt32(v.Equ_ReadDB_Sequence) < temp_sequence).Sum(v => v.Equ_ReadDB_Length); // convdb.DBReadIndox = Totallength; // } // equDBInfoSet.Add(convdb); // } // else if (DB.DB_TYPE == (int)DB_TypeEnum.WCS状态和故障DB) // { // if (string.IsNullOrWhiteSpace(item.Equ_StatusDB_Sequence)) continue; // var convdb = new ConvDbInfo(); // convdb.DBName = DB.DB_NAME; // convdb.DBType = DB_TypeEnum.WCS状态和故障DB; // convdb.DBReadLength = item.Equ_StatusDB_Length; // //convdb.DBReadIndox = item.Equ_ReadWriteDB_Sequence * item.Equ_ReadWriteDB_Length; // int temp_sequence = Convert.ToInt32(item.Equ_StatusDB_Sequence); // if (temp_sequence != 0) // { // int Totallength = temp_sequence * item.Equ_StatusDB_Length; //plc.WCS_EquipmentInfoSet.Where(v => string.IsNullOrWhiteSpace(v.Equ_StatusDB_Sequence) == false && Convert.ToInt32(v.Equ_StatusDB_Sequence) < temp_sequence).Sum(v => v.Equ_StatusDB_Length); // convdb.DBReadIndox = Totallength; // } // equDBInfoSet.Add(convdb); // } // else if (DB.DB_TYPE == (int)DB_TypeEnum.WCS读取扫码DB) // { // if (string.IsNullOrWhiteSpace(item.Equ_BarCodeDB_Sequence)) continue; // var convdb = new ConvDbInfo(); // convdb.DBName = DB.DB_NAME; // convdb.DBType = DB_TypeEnum.WCS读取扫码DB; // convdb.DBReadLength = item.Equ_BarCodeDB_Length; // //convdb.DBReadIndox = item.Equ_ReadWriteDB_Sequence * item.Equ_ReadWriteDB_Length; // int temp_sequence = Convert.ToInt32(item.Equ_BarCodeDB_Sequence); // if (temp_sequence != 0) // { // int Totallength = plc.WCS_EquipmentInfoSet.Where(v => string.IsNullOrWhiteSpace(v.Equ_BarCodeDB_Sequence) == false && Convert.ToInt32(v.Equ_BarCodeDB_Sequence) < temp_sequence).Sum(v => v.Equ_BarCodeDB_Length); // convdb.DBReadIndox = Totallength; // } // convdb.ScannSet = plc.WCS_ScannSet.Where(v => v.SCANN_STATIONNO == item.Equ_No).OrderBy(v => v.SCANN_SEQUENCE).ToList(); // equDBInfoSet.Add(convdb); // } // else if (DB.DB_TYPE == (int)DB_TypeEnum.WCS读写扩展DB1) // { // if (string.IsNullOrWhiteSpace(item.Equ_ExtendOne_Sequence)) continue; // var convdb = new ConvDbInfo(); // convdb.DBName = DB.DB_NAME; // convdb.DBType = DB_TypeEnum.WCS读写扩展DB1; // convdb.DBReadLength = item.Equ_ExtendOne_Length; // //convdb.DBReadIndox = item.Equ_ReadWriteDB_Sequence * item.Equ_ReadWriteDB_Length; // int temp_sequence = Convert.ToInt32(item.Equ_ExtendOne_Sequence); // if (temp_sequence != 0) // { // int Totallength = plc.WCS_EquipmentInfoSet.Where(v => string.IsNullOrWhiteSpace(v.Equ_ExtendOne_Sequence) == false && Convert.ToInt32(v.Equ_ExtendOne_Sequence) < temp_sequence).Sum(v => v.Equ_ExtendOne_Length); // convdb.DBReadIndox = Totallength; // } // convdb.ScannSet = plc.WCS_ScannSet.Where(v => v.SCANN_STATIONNO == item.Equ_No).OrderBy(v => v.SCANN_SEQUENCE).ToList(); // equDBInfoSet.Add(convdb); // } // else if (DB.DB_TYPE == (int)DB_TypeEnum.WCS读写扩展DB2) // { // if (string.IsNullOrWhiteSpace(item.Equ_ExtendTwo_Sequence)) continue; // var convdb = new ConvDbInfo(); // convdb.DBName = DB.DB_NAME; // convdb.DBType = DB_TypeEnum.WCS读写扩展DB2; // convdb.DBReadLength = item.Equ_ExtendTwo_Length; // //convdb.DBReadIndox = item.Equ_ReadWriteDB_Sequence * item.Equ_ReadWriteDB_Length; // int temp_sequence = Convert.ToInt32(item.Equ_ExtendTwo_Sequence); // if (temp_sequence != 0) // { // int Totallength = plc.WCS_EquipmentInfoSet.Where(v => string.IsNullOrWhiteSpace(v.Equ_ExtendTwo_Sequence) == false && Convert.ToInt32(v.Equ_ExtendTwo_Sequence) < temp_sequence).Sum(v => v.Equ_ExtendTwo_Length); // convdb.DBReadIndox = Totallength; // } // convdb.ScannSet = plc.WCS_ScannSet.Where(v => v.SCANN_STATIONNO == item.Equ_No).OrderBy(v => v.SCANN_SEQUENCE).ToList(); // equDBInfoSet.Add(convdb); // } // else if (DB.DB_TYPE == (int)DB_TypeEnum.WCS读写扩展DB3) // { // if (string.IsNullOrWhiteSpace(item.Equ_ExtendThree_Sequence)) continue; // var convdb = new ConvDbInfo(); // convdb.DBName = DB.DB_NAME; // convdb.DBType = DB_TypeEnum.WCS读写扩展DB3; // convdb.DBReadLength = item.Equ_ExtendThree_Length; // //convdb.DBReadIndox = item.Equ_ReadWriteDB_Sequence * item.Equ_ReadWriteDB_Length; // int temp_sequence = Convert.ToInt32(item.Equ_ExtendThree_Sequence); // if (temp_sequence != 0) // { // int Totallength = plc.WCS_EquipmentInfoSet.Where(v => string.IsNullOrWhiteSpace(v.Equ_ExtendThree_Sequence) == false && Convert.ToInt32(v.Equ_ExtendThree_Sequence) < temp_sequence).Sum(v => v.Equ_ExtendThree_Length); // convdb.DBReadIndox = Totallength; // } // convdb.ScannSet = plc.WCS_ScannSet.Where(v => v.SCANN_STATIONNO == item.Equ_No).OrderBy(v => v.SCANN_SEQUENCE).ToList(); // equDBInfoSet.Add(convdb); // } //} return equDBInfoSet; } } }