| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Data;
- using Core.LgMes.Server.lgClassModel;
- using System.Threading;
- using System.Collections;
- using CoreFS.CA06;
- using System.Diagnostics;
- using System.Windows.Forms;
- using Core.Mes.Client.Common;
- using Core.LgMes.Client.lgClassModel.Rtd.Ccm;
- ///总貌图,甘特图岗位详细信息接口程序
- namespace Core.LgMes.Client.lgGlobalMap
- {
- public class LgGlobalMapInterface
- {
- public Thread _refreshDataThread; //定义线程
- public Hashtable _htRealTimeData = null; //存放数据
- public DataTable _dtMaterial = null;
- public bool On_Off_Thread=true ; //线程是否启动
- public bool _bIfRefreshData = true; // 控制刷新数据线程循环的标志
- public OpeBase ob;
- public Hashtable _ccmRtdRealTimeData = null;
- //public void Dispose()
- //{
- // try
- // {
- // if (_refreshDataThread != null)
- // _refreshDataThread.Abort();
- // }
- // catch { }
- // Dispose(true);
- // GC.SuppressFinalize(this);
- //}
- //protected virtual void Dispose(bool disposing)
- //{
- // if (!m_disposed)
- // {
- // if (disposing)
- // {
- // // Release managed resources
- // }
- // // Release unmanaged resources
- // m_disposed = true;
- // }
- //}
- //~LgGlobalMapInterface()
- //{
- // Dispose(true);
- //}
- public LgGlobalMapInterface()
- {
- System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
- }
- /// <summary>
- /// 初始化和启动线程
- /// </summary>
- public void StartReadDataThread()
- {
- StartUpThread(); //启动线程
- GetMaterialData(); //获取物料信息
- }
- /// <summary>
- /// 接口
- /// </summary>
- /// <param name="DeviceName">岗位名称</param>
- public void ShowForm(string DeviceName)
- {
- frmBaseSite frm = null;
-
- switch (DeviceName.Substring(0,3))
- {
- case "MIS":
- frm = new frmMis(DeviceName.Substring(4,1));
- break;
- case "HMP":
- frm = new frmHmp();
- break;
- case "BOF":
- frm = new frmBof();
- break;
- case "CAS":
- frm = new frmCas();
- break;
- case "LFS":
- frm = new frmLfs();
- break;
- case "RHS":
- frm = new frmRhs();
- break;
- case "VDS":
- frm = new frmVds();
- break;
- case "CCM":
- frm = new frmBCcm(Convert.ToInt16(DeviceName.Substring(4, 1)));
- break;
- default:
- frm = null;
- break;
- }
- if (frm != null)
- {
- frm.arDataSource = DispatchRealTimeData(DeviceName);
- frm.HeatProcessNo = GetHeatProcessNo(DeviceName);
- frm.dtMaterial = _dtMaterial;
- frm.ob = ob;
- frm.Show();
- }
- }
- /// <summary>
- /// 获取岗位计划,化学成分,其它信息
- /// </summary>
- /// <param name="szDev"></param>
- /// <returns></returns>
- private ArrayList DispatchRealTimeData(string szDev)
- {
- if (szDev == "")
- return null;
- Hashtable htCraft = null;
- CraftElement objElem = null;
- ArrayList arSite = null;
- ArrayList ar = new ArrayList();
- DataTable dtJobData = null;
- if (_htRealTimeData != null)
- {
- htCraft = (Hashtable)_htRealTimeData["ScheduleInfo"];
- objElem = (CraftElement)_htRealTimeData["CraftElement"];
- arSite = (ArrayList)_htRealTimeData["AllRealSiteList"];
- Hashtable htJobData = (Hashtable)_htRealTimeData["AllDeviceInfo"];
- frmStyleBase frmsb = new frmStyleBase();
- frmsb.ob = ob;
- dtJobData = frmsb.ConvertToDataTable(htJobData[szDev] as IList);
- }
- else
- return null;
- ar.Add(htCraft);
- ar.Add(objElem);
- switch (szDev.Substring(0, 3))
- {
- case "BOF":
- ar.Add(arSite[0]);
- break;
- case "CAS":
- ar.Add(arSite[1]);
- break;
- case "LFS":
- ar.Add(arSite[2]);
- break;
- case "RHS":
- ar.Add(arSite[3]);
- break;
- case "VDS":
- ar.Add(arSite[4]);
- break;
- case "CCM":
- ar.Add(arSite[5]);
- break;
- default:
- break;
- }
- ar.Add(dtJobData);
- return ar;
- }
- /// <summary>
- /// 获取加热处理号
- /// </summary>
- /// <param name="strDevPos"></param>
- /// <returns></returns>
- private string GetHeatProcessNo(string strDevPos)
- {
- if (strDevPos == "")
- return "";
- string strHeatProcessNo = "";
- TrackObjectInfo trackObj = null;
- Hashtable htTrackObj = null;
- if (_htRealTimeData != null)
- htTrackObj = (Hashtable)_htRealTimeData["TrackObject"];
- else
- return "";
- if (htTrackObj == null)
- return "";
- TPM_TrackObjectInfor objDev = (TPM_TrackObjectInfor)htTrackObj[strDevPos];
- if (objDev != null)
- strHeatProcessNo = objDev.OBJECTID;
- return strHeatProcessNo;
- }
- /// <summary>
- /// 获取物料信息
- /// </summary>
- private void GetMaterialData()
- {
- try
- {
- string strErr = "";
- string strSqlID = "";
- strSqlID = "GetMaterialData.Select";//此ID为XML文件ID
- CommonClientToServer ccTos = new CommonClientToServer();
- ccTos.ob = ob;
- //查询物料配置信息
- DataSet ds = ccTos.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassBofJob",
- "GetMaterialData", strSqlID, out strErr);
- if (strErr == "" && ds != null)
- {
- _dtMaterial = ds.Tables[0];
- }
- }
- catch { }
- }
- #region " Thread Handle "
- /// <summary>
- /// 启动线程主程序
- /// </summary>
- private void StartUpThread()
- {
- ThreadStart ts = new ThreadStart(RefreshDataThread);
- _refreshDataThread = new Thread(ts);
- _refreshDataThread.Name = "刷新数据线程";
- _refreshDataThread.Start();
- }
- //设置代理,用来设置总貌图每个岗位的图片状态
- public delegate void SetAllDeviceStateForPictureBoxDel();
- public SetAllDeviceStateForPictureBoxDel SetAllDeviceStateForPictureBox=null;
- //设置代理,获取当天统计信息
- public delegate void SetLgTotalDataDel();
- public SetLgTotalDataDel SetLgTotalData = null;
- //设置代理,获取窗体是否是激活状态来控制线程是否执行
- public delegate void SetThread_Start();
- public SetThread_Start setThread_Start = null;
- /// <summary>
- /// 线程
- /// </summary>
- private void RefreshDataThread()
- {
-
- while (_bIfRefreshData)
- {
- if (setThread_Start != null) setThread_Start();
- if (!this.On_Off_Thread)
- {
- Thread.Sleep(500);
- continue;
- }
- try
- {
- ReadDataFromServer();
- try
- {
- ReadDataFromCcmRtd();
- }
- catch
- {
- //RefreshDataThread();
- }
- if (SetAllDeviceStateForPictureBox!=null)
- SetAllDeviceStateForPictureBox();
- if (SetLgTotalData!=null )
- SetLgTotalData();
- Thread.Sleep(2000); //休整2秒钟
- }
- catch (Exception ex)
- {
- Trace.WriteLine(ex.Message);
- }
- }
- }
- /// <summary>
- /// 获取连铸实时表数据
- /// </summary>
- public void ReadDataFromCcmRtd()
- {
- if (ccmMgt == null)
- {
- ccmMgt = new Core.LgMes.Client.lgBll.LgRtdMgt.Ccm.LgCcmAllRtdMgt();
- }
- ClientParamWithSqlConditionAndOpenBase param = new ClientParamWithSqlConditionAndOpenBase("",this.ob);
- RTD_POINTCCM1NO1 ccm1 = ccmMgt.GetRtdPointCcm1No1ByEntryModel(param);
- RTD_POINTCCM2NO1 ccm2 = ccmMgt.GetRtdPointCcm2No1ByEntryModel(param);
- RTD_POINTCCM3NO1 ccm3 = ccmMgt.GetRtdPointCcm3No1ByEntryModel(param);
- _ccmRtdRealTimeData = new Hashtable();
- _ccmRtdRealTimeData.Add("RTD_POINTCCM1NO1", ccm1);
- _ccmRtdRealTimeData.Add("RTD_POINTCCM2NO1", ccm2);
- _ccmRtdRealTimeData.Add("RTD_POINTCCM3NO1", ccm3);
-
- }
- Core.LgMes.Client.lgBll.LgRtdMgt.Ccm.LgCcmAllRtdMgt ccmMgt = null;
- /// <summary>
- /// 获取正在生产岗位上所有的信息
- /// </summary>
- private void ReadDataFromServer()
- {
- string strErr = "";
-
- try
- {
- ArrayList arry = new ArrayList();
- arry.Add("");
- CommonClientToServer ccTos = new CommonClientToServer();
- ccTos.ob = ob;
- CoreClientParam ccp= ccTos.ExecuteClietnToServer("Core.LgMes.Server.LgGlobalMap.ClassReadDataMgt",
- "GetAllRealTimeData", arry, out strErr);
- if (ccp.ReturnObject != null && strErr == "")
- {
- _htRealTimeData = ccp.ReturnObject as Hashtable;
- ArrayList arr = _htRealTimeData["AllRealSiteList"] as ArrayList;
- }
- //else
- // MessageBox.Show("kkkk");
- //else
- //{
- // _htRealTimeData = null;
- //}
-
- }
- catch(Exception ex) {
- }
- }
- #endregion
- }
- }
|