123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- using OTSDataType;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using OTSModelSharp.DTLBase;
- using System.Data;
- using System.Drawing;
- using OTSCLRINTERFACE;
- using System.Data.SQLite;
- namespace OTSModelSharp
- {
- public class CPosXrayInfoDB :CSQLiteDB
- {
- protected static NLog.Logger logger = null;
- protected CSQLiteTable m_tableInfo = new CSQLiteTable();
- List<CPosXrayClr> m_listPosXrayInfo=new List<CPosXrayClr>();
-
- public CPosXrayInfoDB(IDBStoreBase _conStr, CSQLiteTable _table) : base(_conStr, _table)
- {
- }
- public List<CPosXrayClr> GetXrayInfoListByFieldId(long a_nFieldId)
- {
- List<CPosXrayClr> xrayPointInfoVec =new List<CPosXrayClr>();
- if (m_listPosXrayInfo!=null)
- {
- foreach(CPosXrayClr xrayPointInfo in m_listPosXrayInfo) //for (auto & xrayPointInfo : m_listPosXrayInfo)
- {
- if (xrayPointInfo.GetScanFieldId() == (System.UInt32)a_nFieldId)
- {
- xrayPointInfoVec.Add(xrayPointInfo);
- }
- }
- }
- else
- {
- DataTable tableQuery = GetQueryByFieldId(a_nFieldId);
- if (tableQuery!=null)
- {
- return xrayPointInfoVec;
- }
- xrayPointInfoVec = ReadXrayPointInfoListByQuery(tableQuery);
- }
- return xrayPointInfoVec;
- }
- public List<CPosXrayClr> GetXrayInfoList(bool a_bForce, int fldId)
- {
- if (a_bForce)
- {
- m_listPosXrayInfo.Clear();
- }
- if (m_listPosXrayInfo.Count() == 0)
- {
- GetXrayInfoListByFieldId(fldId);
- }
- return m_listPosXrayInfo;
- }
- public bool SaveXrayInfoList(List<CPosXrayClr> a_xrayPointList)
- {
-
- var tableInfoPtr = GetTableInfo();
- if (tableInfoPtr==null)
- {
- return false;
- }
- var datastorePtr = GetDatastore();
- if (datastorePtr==null)
- {
- return false;
- }
- CSQLiteTable cSQLiteTable = new CSQLiteTable();
- string sInsertFormat = tableInfoPtr.GetInsertCommandFormatString(true);
- string sSQLCommand = "";
- foreach (CPosXrayClr xrayPointInfo in a_xrayPointList)
- {
- System.Drawing.Point pos = (System.Drawing.Point)xrayPointInfo.GetPosition();
- var qtyData = xrayPointInfo.GetElementQuantifyData();
- var elenum = qtyData.Count;
- sSQLCommand =string.Format( sInsertFormat,
- (xrayPointInfo.GetIndex()),
- (pos.X) ,
- (pos.Y) ,
- (xrayPointInfo.GetScanFieldId()) ,
- (xrayPointInfo.GetPartTagId()) ,
- (xrayPointInfo.GetFeatureId()) ,
- (elenum));
-
- if (!datastorePtr.RunCommand(sSQLCommand, false))
- {
-
- return false;
- }
- }
-
- return true;
- }
- public List<KeyValuePair<string,SQLiteParameter[]>> GetSavingXrayInfoCmds(List<CPosXrayClr> a_xrayPointList)
- {
- List<KeyValuePair<string, SQLiteParameter[]>> cmds = new List<KeyValuePair<string, SQLiteParameter[]>>();
- var tableInfoPtr = GetTableInfo();
-
- var datastorePtr = GetDatastore();
-
- //CSQLiteTable cSQLiteTable = new CSQLiteTable();
- var sInsertFormat = tableInfoPtr.GetInsertCommand(true);
- //string sSQLCommand = "";
- var parasTem = sInsertFormat.Value;
- foreach (CPosXrayClr xrayPointInfo in a_xrayPointList)
- {
- var paras = new SQLiteParameter[7];
- for (int j = 0; j < 7; j++)
- {
- paras[j] = new SQLiteParameter(parasTem[j].ParameterName);
- }
- System.Drawing.Point pos = (System.Drawing.Point)xrayPointInfo.GetPosition();
- var qtyData = xrayPointInfo.GetElementQuantifyData();
- var elenum = qtyData.Count;
- paras[0].Value = xrayPointInfo.GetIndex();
- paras[1].Value = pos.X;
- paras[2].Value = pos.Y;
- paras[3].Value = xrayPointInfo.GetScanFieldId();
- paras[4].Value = xrayPointInfo.GetPartTagId();
- paras[5].Value = xrayPointInfo.GetFeatureId();
- paras[6].Value= elenum;
- cmds.Add(new KeyValuePair<string, SQLiteParameter[]>(sInsertFormat.Key, paras));
- }
- return cmds;
- }
- protected bool ReadXrayPointInfoList()
- {
- var st = GetDatastore();
- var t = GetTableInfo();
- DataTable query = st.QueryByTableNameForDataTable(t.GetTableName(), "");
- if (query!=null)
- {
- return false;
- }
- m_listPosXrayInfo = ReadXrayPointInfoListByQuery(query);
- return true;
- }
- protected List<CPosXrayClr> ReadXrayPointInfoListByQuery(DataTable a_query)
- {
- List<CPosXrayClr> xrayPointInfoVec =new List<CPosXrayClr>();
-
-
- for (int i=0; i< a_query.Rows.Count;i++)
- {
- CPosXrayClr xrayPointInfo = ReadXrayPointInfo(a_query);
- if(xrayPointInfo != null)
- {
- logger.Info("Read xray point info item failed: row id: %d",i);
-
- }
- else
- {
- xrayPointInfoVec.Add(xrayPointInfo);
- }
-
- }
-
- return xrayPointInfoVec;
- }
- protected CPosXrayClr ReadXrayPointInfo(DataTable a_query)
- {
- int nCol;
- //CPosXrayClr CPosXrayClr = new CPosXrayClr();
- CPosXrayClr xrayPointPtr = new CPosXrayClr();
- nCol = (int)CPosXrayInfoTable.ColumnID.N_INDEX - (int)CPosXrayInfoTable.ColumnID.MIN;
- xrayPointPtr.SetIndex((int)a_query.Rows[nCol][0]);
- System.Drawing.Point xrayPosition =new System.Drawing.Point();
- nCol = (int)CPosXrayInfoTable.ColumnID.N_POS_X - (int)CPosXrayInfoTable.ColumnID.MIN;
- xrayPosition.X = (int)a_query.Rows[nCol][0];
- nCol = (int)CPosXrayInfoTable.ColumnID.N_POS_Y - (int)CPosXrayInfoTable.ColumnID.MIN;
- xrayPosition.Y = (int)a_query.Rows[nCol][0];
- xrayPointPtr.SetPosition(xrayPosition);
- nCol = (int)CPosXrayInfoTable.ColumnID.N_FIELD_ID - (int)CPosXrayInfoTable.ColumnID.MIN;
- xrayPointPtr.SetScanFieldId((int)a_query.Rows[nCol][0]);
- nCol = (int)CPosXrayInfoTable.ColumnID.N_PARTICLE_ID - (int)CPosXrayInfoTable.ColumnID.MIN;
- xrayPointPtr.SetPartTagId((int)a_query.Rows[nCol][0]);
- nCol = (int)CPosXrayInfoTable.ColumnID.N_FEATURE_ID - (int)CPosXrayInfoTable.ColumnID.MIN;
- xrayPointPtr.SetFeatureId((int)a_query.Rows[nCol][0]);
- nCol = (int)CPosXrayInfoTable.ColumnID.N_ELEMENT_NUM - (int)CPosXrayInfoTable.ColumnID.MIN;
- xrayPointPtr.SetElementNum((int)a_query.Rows[nCol][0]);
- return xrayPointPtr;
- }
- protected DataTable GetQueryByFieldId( long a_nFieldId)
- {
- CSQLiteTable query =new CSQLiteTable();
- var datastorePtr = GetDatastore();
-
- var tableInfoPtr = GetTableInfo();
-
- string sFieldIdColumnName = tableInfoPtr.GetColumnName(Convert.ToInt32(CPosXrayInfoTable.ColumnID.N_FIELD_ID) - Convert.ToInt32(CPosXrayInfoTable.ColumnID.MIN));
-
- string sSQLCommand = string.Format("SELECT * FROM \'{0}\' WHERE {1} ={2};",tableInfoPtr.GetTableName(),sFieldIdColumnName, a_nFieldId);
- DataTable t1 = datastorePtr.QueryByCmdForDataTable(sSQLCommand);
-
- return t1;
- }
- }
- }
|