using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace Core.LgMes.Server.lgClassModel { /// /// 通用类模型 /// #region " GeneralModel " [Serializable] class GeneralModel { } #endregion #region " 实时跟踪信息模型类 TrackObjectInfo " [Serializable] public class TrackObjectInfo { public TrackObjectInfo() { hList = new Hashlist(); } #region 变量定义 public Hashlist hList; #endregion #region 公用方法 public void ClearElement() { hList.Clear(); } #region public void Add(ref TPM_TrackObjectInfor TrackObjectInfor) { TPM_TrackObjectInfor tmpTrackObjectInfor = null; tmpTrackObjectInfor = (TPM_TrackObjectInfor)hList[TrackObjectInfor.OBJECTPOS]; if (tmpTrackObjectInfor == null) { hList.Add(TrackObjectInfor.OBJECTPOS, TrackObjectInfor); } } //当前没有信息从缓存中添加 增加协调 public void AddElement(ref TrackObjectInfo obj) { TPM_TrackObjectInfor tmpTrackObjectInfo = null; int Count = obj.hList.Count; for (int i = 0; i < Count; i++) { tmpTrackObjectInfo = (TPM_TrackObjectInfor)obj.hList[i]; if (tmpTrackObjectInfo != null) { TPM_TrackObjectInfor TrackObjectInfor = null; TrackObjectInfor = (TPM_TrackObjectInfor)hList[tmpTrackObjectInfo.OBJECTPOS]; if (TrackObjectInfor != null) { TrackObjectInfor.Copy(ref tmpTrackObjectInfo); } else { TrackObjectInfor = new TPM_TrackObjectInfor(); TrackObjectInfor.Copy(ref tmpTrackObjectInfo); hList.Add(TrackObjectInfor.OBJECTPOS, TrackObjectInfor); } } } } //缓存中没有数据移除 移除协调 public void RemoveElement(ref TrackObjectInfo obj) { TPM_TrackObjectInfor tmpTrackObjectInfo = null; int Count = hList.Count; for (int i = 0; i < Count; i++) { tmpTrackObjectInfo = (TPM_TrackObjectInfor)hList[i]; if (tmpTrackObjectInfo != null) { TPM_TrackObjectInfor TrackObjectInfo = null; TrackObjectInfo = (TPM_TrackObjectInfor)obj.hList[tmpTrackObjectInfo.OBJECTPOS]; if (TrackObjectInfo == null) { hList.Remove(tmpTrackObjectInfo.OBJECTPOS); i = i - 1; Count = Count - 1; } } } } //数据协调 public void DataHarmonize(ref TrackObjectInfo obj) { AddElement(ref obj); RemoveElement(ref obj); } #endregion #endregion } #endregion #region " 工艺计划信息 CraftPlan " [Serializable] public class CraftPlan { public CraftPlan() { hList = new Hashlist(); } public Hashlist hList; #region 公用方法 public void ClearElement() { hList.Clear(); } #region public void Add(ref JOB_CRAFTINFO PLAN) { JOB_CRAFTINFO tmpPLAN = null; tmpPLAN = (JOB_CRAFTINFO)hList[PLAN.HEATNO]; if (tmpPLAN == null) { hList.Add(PLAN.HEATNO, PLAN); } } //当前没有信息从缓存中添加 增加协调 public void AddElement(ref CraftPlan obj) { JOB_CRAFTINFO tmpPLAN = null; int Count = obj.hList.Count; for (int i = 0; i < Count; i++) { tmpPLAN = (JOB_CRAFTINFO)obj.hList[i]; if (tmpPLAN != null) { JOB_CRAFTINFO PLAN = null; PLAN = (JOB_CRAFTINFO)hList[tmpPLAN.HEATNO]; if (PLAN != null) { PLAN.Copy(ref tmpPLAN); } else { PLAN = new JOB_CRAFTINFO(); PLAN.Copy(ref tmpPLAN); hList.Add(PLAN.HEATNO, PLAN); } } } } //缓存中没有数据移除 移除协调 public void RemoveElement(ref CraftPlan obj) { JOB_CRAFTINFO tmpPLAN = null; int Count = hList.Count; for (int i = 0; i < Count; i++) { tmpPLAN = (JOB_CRAFTINFO)hList[i]; if (tmpPLAN != null) { JOB_CRAFTINFO PLAN = null; PLAN = (JOB_CRAFTINFO)obj.hList[tmpPLAN.HEATNO]; if (PLAN == null) { hList.Remove(tmpPLAN.HEATNO); i = i - 1; Count = Count - 1; } } } } //数据协调 public void DataHarmonize(ref CraftPlan obj) { AddElement(ref obj); RemoveElement(ref obj); } #endregion #endregion } #endregion #region " 工艺化学成分 CraftElement " [Serializable] public class CraftElement { public CraftElement() { hList = new Hashlist(); } public Hashlist hList; #region 公用方法 public void ClearElement() { hList.Clear(); } #region public void Add(ref JOB_CHEMELEMENT LGHXJYZ) { JOB_CHEMELEMENT tmpLGHXJYZ = null; tmpLGHXJYZ = (JOB_CHEMELEMENT)hList[LGHXJYZ.CHECKNO]; if (tmpLGHXJYZ == null) { hList.Add(LGHXJYZ.CHECKNO, LGHXJYZ); } } //当前没有信息从缓存中添加 增加协调 public void AddElement(ref CraftElement obj) { JOB_CHEMELEMENT tmpLGHXJYZ = null; int Count = obj.hList.Count; for (int i = 0; i < Count; i++) { tmpLGHXJYZ = (JOB_CHEMELEMENT)obj.hList[i]; if (tmpLGHXJYZ != null) { JOB_CHEMELEMENT LGHXJYZ = null; LGHXJYZ = (JOB_CHEMELEMENT)hList[tmpLGHXJYZ.CHECKNO]; if (LGHXJYZ != null) { LGHXJYZ.Copy(ref tmpLGHXJYZ); } else { LGHXJYZ = new JOB_CHEMELEMENT(); LGHXJYZ.Copy(ref tmpLGHXJYZ); hList.Add(LGHXJYZ.CHECKNO, LGHXJYZ); } } } } //缓存中没有数据移除 移除协调 public void RemoveElement(ref CraftElement obj) { JOB_CHEMELEMENT tmpLGHXJYZ = null; int Count = hList.Count; for (int i = 0; i < Count; i++) { tmpLGHXJYZ = (JOB_CHEMELEMENT)hList[i]; if (tmpLGHXJYZ != null) { JOB_CHEMELEMENT LGHXJYZ = null; LGHXJYZ = (JOB_CHEMELEMENT)obj.hList[tmpLGHXJYZ.CHECKNO]; if (LGHXJYZ == null) { hList.Remove(tmpLGHXJYZ.CHECKNO); i = i - 1; Count = Count - 1; } } } } //数据协调 public void DataHarmonize(ref CraftElement obj) { AddElement(ref obj); RemoveElement(ref obj); } #endregion #endregion } #endregion #region " 通用的过程添加料模型 CommonAdditive " [Serializable] public class CommonAdditive { public CommonAdditive() { hList = new Hashlist(); } public Hashlist hList; #region 公用方法 public void ClearElement() { hList.Clear(); } #region public void Add(ref STL_COMMON_ADDITIVES GCTJJ) { STL_COMMON_ADDITIVES tmpGCTJJ = null; string szKey = GCTJJ.HEATNO + GCTJJ.STATIONCODE + GCTJJ.DISPOSALTIME + GCTJJ.MATERIELCODE + GCTJJ.MATERIELTYPE + GCTJJ.HOPPERNUMID; tmpGCTJJ = (STL_COMMON_ADDITIVES)hList[szKey]; if (tmpGCTJJ == null) { hList.Add(szKey, GCTJJ); } } //当前没有信息从缓存中添加 增加协调 public void AddElement(ref CommonAdditive obj) { STL_COMMON_ADDITIVES tmpGCTJJ = null; int Count = obj.hList.Count; for (int i = 0; i < Count; i++) { tmpGCTJJ = (STL_COMMON_ADDITIVES)obj.hList[i]; if (tmpGCTJJ != null) { string szKey = tmpGCTJJ.HEATNO + tmpGCTJJ.STATIONCODE + tmpGCTJJ.DISPOSALTIME + tmpGCTJJ.MATERIELCODE + tmpGCTJJ.MATERIELTYPE + tmpGCTJJ.HOPPERNUMID; STL_COMMON_ADDITIVES GCTJJ = null; GCTJJ = (STL_COMMON_ADDITIVES)hList[szKey]; if (GCTJJ != null) { GCTJJ.Copy(ref tmpGCTJJ); } else { GCTJJ = new STL_COMMON_ADDITIVES(); GCTJJ.Copy(ref tmpGCTJJ); hList.Add(szKey, GCTJJ); } } } } //缓存中没有数据移除 移除协调 public void RemoveElement(ref CommonAdditive obj) { STL_COMMON_ADDITIVES tmpGCTJJ = null; int Count = hList.Count; for (int i = 0; i < Count; i++) { tmpGCTJJ = (STL_COMMON_ADDITIVES)hList[i]; if (tmpGCTJJ != null) { string szKey = tmpGCTJJ.HEATNO + tmpGCTJJ.STATIONCODE + tmpGCTJJ.DISPOSALTIME + tmpGCTJJ.MATERIELCODE + tmpGCTJJ.MATERIELTYPE + tmpGCTJJ.HOPPERNUMID; STL_COMMON_ADDITIVES GCTJJ = null; GCTJJ = (STL_COMMON_ADDITIVES)obj.hList[szKey]; if (GCTJJ == null) { hList.Remove(szKey); i = i - 1; Count = Count - 1; } } } } //数据协调 public void DataHarmonize(ref CommonAdditive obj) { AddElement(ref obj); RemoveElement(ref obj); } #endregion #endregion } #endregion #region " 转炉过程添加剂 BofAdditive " [Serializable] public class BofAdditive { public BofAdditive() { hList = new Hashlist(); } public Hashlist hList; #region 公用方法 public void ClearElement() { hList.Clear(); } #region public void Add(ref JOB_BOF_ADDITIVES ZLGCTJJ) { JOB_BOF_ADDITIVES tmpZLGCTJJ = null; string szKey = ZLGCTJJ.HEATPROCESSNO + ZLGCTJJ.MATERIELCODE + ZLGCTJJ.MATERIELTYPE + ZLGCTJJ.HOPPERNUMID; tmpZLGCTJJ = (JOB_BOF_ADDITIVES)hList[szKey]; if (tmpZLGCTJJ == null) { hList.Add(szKey, ZLGCTJJ); } } //当前没有信息从缓存中添加 增加协调 public void AddElement(ref BofAdditive obj) { JOB_BOF_ADDITIVES tmpZLGCTJJ = null; int Count = obj.hList.Count; for (int i = 0; i < Count; i++) { tmpZLGCTJJ = (JOB_BOF_ADDITIVES)obj.hList[i]; if (tmpZLGCTJJ != null) { string szKey = tmpZLGCTJJ.HEATPROCESSNO + tmpZLGCTJJ.MATERIELCODE + tmpZLGCTJJ.MATERIELTYPE + tmpZLGCTJJ.HOPPERNUMID; JOB_BOF_ADDITIVES ZLGCTJJ = null; ZLGCTJJ = (JOB_BOF_ADDITIVES)hList[szKey]; if (ZLGCTJJ != null) { ZLGCTJJ.Copy(ref tmpZLGCTJJ); } else { ZLGCTJJ = new JOB_BOF_ADDITIVES(); ZLGCTJJ.Copy(ref tmpZLGCTJJ); hList.Add(szKey, ZLGCTJJ); } } } } //缓存中没有数据移除 移除协调 public void RemoveElement(ref BofAdditive obj) { JOB_BOF_ADDITIVES tmpZLGCTJJ = null; int Count = hList.Count; for (int i = 0; i < Count; i++) { tmpZLGCTJJ = (JOB_BOF_ADDITIVES)hList[i]; if (tmpZLGCTJJ != null) { string szKey = tmpZLGCTJJ.HEATPROCESSNO + tmpZLGCTJJ.MATERIELCODE + tmpZLGCTJJ.MATERIELTYPE + tmpZLGCTJJ.HOPPERNUMID; JOB_BOF_ADDITIVES ZLGCTJJ = null; ZLGCTJJ = (JOB_BOF_ADDITIVES)obj.hList[szKey]; if (ZLGCTJJ == null) { hList.Remove(szKey); i = i - 1; Count = Count - 1; } } } } //数据协调 public void DataHarmonize(ref BofAdditive obj) { AddElement(ref obj); RemoveElement(ref obj); } #endregion #endregion } #endregion #region " 吹氩过程添加剂 CasAdditive " [Serializable] public class CasAdditive { public CasAdditive() { hList = new Hashlist(); } public Hashlist hList; #region 公用方法 public void ClearElement() { hList.Clear(); } #region public void Add(ref JOB_CAS_ADDITIVES ZLGCTJJ) { JOB_CAS_ADDITIVES tmpZLGCTJJ = null; string szKey = ZLGCTJJ.HEATPROCESSNO + ZLGCTJJ.MATERIELCODE + ZLGCTJJ.MATERIELTYPE + ZLGCTJJ.HOPPERNUMID; tmpZLGCTJJ = (JOB_CAS_ADDITIVES)hList[szKey]; if (tmpZLGCTJJ == null) { hList.Add(szKey, ZLGCTJJ); } } //当前没有信息从缓存中添加 增加协调 public void AddElement(ref CasAdditive obj) { JOB_CAS_ADDITIVES tmpZLGCTJJ = null; int Count = obj.hList.Count; for (int i = 0; i < Count; i++) { tmpZLGCTJJ = (JOB_CAS_ADDITIVES)obj.hList[i]; if (tmpZLGCTJJ != null) { string szKey = tmpZLGCTJJ.HEATPROCESSNO + tmpZLGCTJJ.MATERIELCODE + tmpZLGCTJJ.MATERIELTYPE + tmpZLGCTJJ.HOPPERNUMID; JOB_CAS_ADDITIVES ZLGCTJJ = null; ZLGCTJJ = (JOB_CAS_ADDITIVES)hList[szKey]; if (ZLGCTJJ != null) { ZLGCTJJ.Copy(ref tmpZLGCTJJ); } else { ZLGCTJJ = new JOB_CAS_ADDITIVES(); ZLGCTJJ.Copy(ref tmpZLGCTJJ); hList.Add(szKey, ZLGCTJJ); } } } } //缓存中没有数据移除 移除协调 public void RemoveElement(ref CasAdditive obj) { JOB_CAS_ADDITIVES tmpZLGCTJJ = null; int Count = hList.Count; for (int i = 0; i < Count; i++) { tmpZLGCTJJ = (JOB_CAS_ADDITIVES)hList[i]; if (tmpZLGCTJJ != null) { string szKey = tmpZLGCTJJ.HEATPROCESSNO + tmpZLGCTJJ.MATERIELCODE + tmpZLGCTJJ.MATERIELTYPE + tmpZLGCTJJ.HOPPERNUMID; JOB_CAS_ADDITIVES ZLGCTJJ = null; ZLGCTJJ = (JOB_CAS_ADDITIVES)obj.hList[szKey]; if (ZLGCTJJ == null) { hList.Remove(szKey); i = i - 1; Count = Count - 1; } } } } //数据协调 public void DataHarmonize(ref CasAdditive obj) { AddElement(ref obj); RemoveElement(ref obj); } #endregion #endregion } #endregion #region " 精炼炉过程添加剂 LfsAdditive " [Serializable] public class LfsAdditive { public LfsAdditive() { hList = new Hashlist(); } public Hashlist hList; #region 公用方法 public void ClearElement() { hList.Clear(); } #region public void Add(ref JOB_LFS_ADDITIVES GBLGCTJJ) { JOB_LFS_ADDITIVES tmpGBLGCTJJ = null; string szKey = GBLGCTJJ.HEATPROCESSNO + GBLGCTJJ.MATERIELCODE + GBLGCTJJ.MATERIELTYPE + GBLGCTJJ.HOPPERNUMID; tmpGBLGCTJJ = (JOB_LFS_ADDITIVES)hList[szKey]; if (tmpGBLGCTJJ == null) { hList.Add(szKey, GBLGCTJJ); } } // 当前没有信息从缓存中添加 增加协调 public void AddElement(ref LfsAdditive obj) { JOB_LFS_ADDITIVES tmpGBLGCTJJ = null; int Count = obj.hList.Count; for (int i = 0; i < Count; i++) { tmpGBLGCTJJ = (JOB_LFS_ADDITIVES)obj.hList[i]; if (tmpGBLGCTJJ != null) { string szKey = tmpGBLGCTJJ.HEATPROCESSNO + tmpGBLGCTJJ.MATERIELCODE + tmpGBLGCTJJ.MATERIELTYPE + tmpGBLGCTJJ.HOPPERNUMID; JOB_LFS_ADDITIVES GBLGCTJJ = null; GBLGCTJJ = (JOB_LFS_ADDITIVES)hList[szKey]; if (GBLGCTJJ != null) { GBLGCTJJ.Copy(ref tmpGBLGCTJJ); } else { GBLGCTJJ = new JOB_LFS_ADDITIVES(); GBLGCTJJ.Copy(ref tmpGBLGCTJJ); hList.Add(szKey, GBLGCTJJ); } } } } //缓存中没有数据移除 移除协调 public void RemoveElement(ref LfsAdditive obj) { JOB_LFS_ADDITIVES tmpGBLGCTJJ = null; int Count = hList.Count; for (int i = 0; i < Count; i++) { tmpGBLGCTJJ = (JOB_LFS_ADDITIVES)hList[i]; if (tmpGBLGCTJJ != null) { string szKey = tmpGBLGCTJJ.HEATPROCESSNO + tmpGBLGCTJJ.MATERIELCODE + tmpGBLGCTJJ.MATERIELTYPE + tmpGBLGCTJJ.HOPPERNUMID; JOB_LFS_ADDITIVES GBLGCTJJ = null; GBLGCTJJ = (JOB_LFS_ADDITIVES)obj.hList[szKey]; if (GBLGCTJJ == null) { hList.Remove(szKey); i = i - 1; Count = Count - 1; } } } } //数据协调 public void DataHarmonize(ref LfsAdditive obj) { AddElement(ref obj); RemoveElement(ref obj); } #endregion #endregion } #endregion #region " Hashlist " [Serializable] public class Hashlist : IDictionary, IEnumerable, IDisposable { #region 成员变量 protected ArrayList m_oKeys;// = new ArrayList(); /// /// 数据存放Hash列表,主要是为了加快数据存放速度 /// protected Hashtable m_oValues;// = new Hashtable(); #endregion #region " Construct Function " public Hashlist() { m_oKeys = new ArrayList(); m_oValues = new Hashtable(); } #endregion #region ICollection 接口派生函数 /// /// 数据节点个数 /// public int Count { get { return m_oValues.Count; } } /// /// /// public bool IsSynchronized { get { return m_oValues.IsSynchronized; } } /// /// /// public object SyncRoot { get { return m_oValues.SyncRoot; } } /// /// /// /// /// public void CopyTo(System.Array oArray, int iArrayIndex) { m_oValues.CopyTo(oArray, iArrayIndex); } #endregion #region IDictionary 接口函数 /// /// /// /// /// public void Add(object oKey, object oValue) { m_oKeys.Add(oKey); m_oValues.Add(oKey, oValue); } /// /// /// public bool IsFixedSize { get { return m_oKeys.IsFixedSize; } } /// /// /// public bool IsReadOnly { get { return m_oKeys.IsReadOnly; } } /// /// /// public ICollection Keys { get { return m_oValues.Keys; } } /// /// /// public void Clear() { m_oValues.Clear(); m_oKeys.Clear(); } /// /// /// /// /// public bool Contains(object oKey) { return m_oValues.Contains(oKey); } /// /// /// /// /// public bool ContainsKey(object oKey) { return m_oValues.ContainsKey(oKey); } /// /// /// /// public IDictionaryEnumerator GetEnumerator() { return m_oValues.GetEnumerator(); } /// /// /// /// public void Remove(object oKey) { m_oValues.Remove(oKey); m_oKeys.Remove(oKey); } /// /// /// public object this[object oKey] { get { return m_oValues[oKey]; } set { m_oValues[oKey] = value; } } /// /// /// public ICollection Values { get { return m_oValues.Values; } } #endregion #region IEnumerable 接口 IEnumerator IEnumerable.GetEnumerator() { return m_oValues.GetEnumerator(); } #endregion #region Hashlist 实现的查询对象 /// /// /// public object this[string Key] { get { return m_oValues[Key]; } } /// /// /// public object this[int Index] { get { return m_oValues[m_oKeys[Index]]; } } #endregion #region IDisposable 数据销毁接口 public void Dispose() { m_oKeys.Clear(); } #endregion } #endregion }