123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
- {
- class TCCleannessA
- {
- public DataTable ParticleSizeStatistician(BasicData basicData,string strName)
- {
- DataTable data = basicData.GetDBData();
- //获取粒级表
- List<string> colid = basicData.GetParticlesizeTable();
- DataTable ls_partsize_dt = new DataTable();
- ls_partsize_dt.TableName = "PartSize";
- ls_partsize_dt.Columns.Add("c1");
- ls_partsize_dt.Columns.Add("c2");
- ls_partsize_dt.Columns.Add("c3");
- ls_partsize_dt.Columns.Add("c4");
- ls_partsize_dt.Columns.Add("c5");
- ls_partsize_dt.Columns.Add("c6");
- ls_partsize_dt.Columns.Add("c7");
- ls_partsize_dt.Columns.Add("c8");
- ls_partsize_dt.Columns.Add("c9");
- DataRow dr = ls_partsize_dt.NewRow();
- for (int i = 1; i < 10; i++)
- {
- if (colid.Count < i)
- {
- dr["c" + i.ToString()] = "";
- }
- else
- {
- dr["c" + i.ToString()] = colid[i - 1];
- }
- }
- ls_partsize_dt.Rows.Add(dr);
- DataTable ls_Particel_dt = new DataTable();
- ls_Particel_dt.TableName = "Particel";
- ls_Particel_dt.Columns.Add("c1", typeof(double));
- ls_Particel_dt.Columns.Add("c2", typeof(double));
- ls_Particel_dt.Columns.Add("c3", typeof(double));
- ls_Particel_dt.Columns.Add("c4", typeof(double));
- ls_Particel_dt.Columns.Add("c5", typeof(double));
- ls_Particel_dt.Columns.Add("c6", typeof(double));
- ls_Particel_dt.Columns.Add("c7", typeof(double));
- ls_Particel_dt.Columns.Add("c8", typeof(double));
- ls_Particel_dt.Columns.Add("c9", typeof(double));
- ls_Particel_dt.Columns.Add("Name");
- ls_Particel_dt.Columns.Add("total", typeof(double));
- ls_Particel_dt.Columns.Add("TypeId");
- ls_Particel_dt.Columns.Add("Class");
- ls_Particel_dt.Columns.Add("hardnes");
- ls_Particel_dt.Columns.Add("hardness");
- ls_Particel_dt.Columns.Add("metal");
- ls_Particel_dt.Columns.Add("maximum");
- DataTable table = GetSTL(basicData, strName);
- for (int i = 0; i < data.Rows.Count; i++)
- {
- DataRow dr2 = ls_Particel_dt.NewRow();
- dr2["Name"] = data.Rows[i]["TypeName"].ToString();
- dr2["Class"] = data.Rows[i]["Class"].ToString();
- dr2["TypeId"] = data.Rows[i]["TypeId"].ToString();//获取分类编号
- dr2["maximum"]= data.Rows[i]["Largest"].ToString();
- for (int j = 1; j < 10; j++)
- {
- if (colid.Count >= j)
- {
- dr2["c" + j.ToString()] = Convert.ToDouble(data.Rows[i][colid[j - 1]]);
- }
- }
- if (dr2["Name"].ToString() != "" && dr2["Name"].ToString().IndexOf("number") < 0)
- {
- dr2["total"] = "0"; //求合
- double d_total = 0;
- for (int j = 1; j < 10; j++)
- {
- if (colid.Count >= j)
- {
- d_total = d_total + Convert.ToInt64(data.Rows[i][colid[j - 1]]);
- }
- }
- dr2["total"] = d_total.ToString();
- }
- dr2["hardness"] = "o. Def.";
- dr2["metal"] = "0";
- dr2["hardnes"] = "0";
- for (int a=0;a< table.Rows.Count;a++)
- {
- if(data.Rows[i]["TypeId"].ToString()== table.Rows[a]["TypeId"].ToString())
- {
- dr2["hardness"] = table.Rows[a]["Hardness_detailed"].ToString();
- dr2["metal"]= table.Rows[a]["metal"].ToString();
- dr2["hardnes"] = table.Rows[a]["Hardness"].ToString(); ;
- break;
- }
-
- }
- ls_Particel_dt.Rows.Add(dr2);
- }
- return ls_Particel_dt;
- }
- public List<DataTable> GetGroupingTable(DataTable data)
- {
- List<DataTable> datas = new List<DataTable>();
-
- HashSet<string> uniqueStrings = new HashSet<string>();
- for (int i=0;i< data.Rows.Count;i++)
- {
- uniqueStrings.Add(data.Rows[i]["Class"].ToString());
- }
- foreach (var uniqueString in uniqueStrings)
- {
- DataTable dt = data.Clone();
- dt.TableName = uniqueString;
- for (int i = 0; i < data.Rows.Count; i++)
- {
- if (data.Rows[i]["Class"].ToString() == uniqueString)
- {
- dt.Rows.Add(data.Rows[i].ItemArray);
- }
- }
- datas.Add(dt);
- }
-
- return datas;
- }
- private DataTable GetSTL( BasicData basicData, string strName)
- {
- DataTable data = new DataTable();
- if (basicData.GetResfile().ToLower() == "nostddb")
- {
- data = new DataTable();
- }
- DataTable dt = new DataTable();
- dt.Columns.Add("Name");
- dt.Columns.Add("TypeId");
- dt.Columns.Add("Hardness", typeof(double));
- dt.Columns.Add("Hardness_detailed");
- dt.Columns.Add("metal");
- OTSCommon.DBOperate.SqLiteHelper sh = null;
- string fullPath = basicData.GetFilePath() + "\\" + strName;
- string fullPath2 = System.IO.Directory.GetCurrentDirectory() + "\\Config\\SysData\\" + strName;
- if (System.IO.File.Exists(fullPath))
- {
- sh = new OTSCommon.DBOperate.SqLiteHelper("data source='" + fullPath + "'");
- }
- else if (System.IO.File.Exists(fullPath2))
- {
- sh = new OTSCommon.DBOperate.SqLiteHelper("data source='" + fullPath2 + "'");
- }
- else
- {
- sh = null;
- return data;
- }
- DataTable dt_stl = sh.ExecuteQuery("select * from ClassifySTD");
- DataTable LargeClassificationTable = sh.ExecuteQuery("select * from STDGroups");
-
- for (int i = 0; i < dt_stl.Rows.Count; i++)
- {
- double DAGroupId;
- DataRow dr = dt.NewRow();
- dr["Name"] = dt_stl.Rows[i]["StrName"].ToString();
- dr["TypeId"]= dt_stl.Rows[i]["STDId"].ToString();
- dr["Hardness_detailed"] = dt_stl.Rows[i]["Hardness"].ToString();
- if (System.Text.RegularExpressions.Regex.Replace(dt_stl.Rows[i]["Hardness"].ToString(), @"[^\d.\d]", "").ToString() != "")
- {
- try
- {
- if (System.Text.RegularExpressions.Regex.Replace(dt_stl.Rows[i]["Hardness"].ToString(), @"[^\d.\d]", "") == "o. Def.")
- {
- dr["Hardness"] = 0;
- }
- else
- {
- double dl= Convert.ToDouble(System.Text.RegularExpressions.Regex.Replace(dt_stl.Rows[i]["Hardness"].ToString(), @"[^\d.\d]", ""));
- if (">"+ dl.ToString()== dt_stl.Rows[i]["Hardness"].ToString())
- {
- dr["Hardness"] = dl + 1;
- }
- else
- {
- dr["Hardness"] = dl -1;
- }
-
- }
- }
- catch
- {
- dr["Hardness"] = 0;
- }
-
- }
- else
- {
- dr["Hardness"] = 0;
- }
- if (System.Text.RegularExpressions.Regex.Replace(dt_stl.Rows[i]["GroupId"].ToString(), @"[^\d.\d]", "").ToString() != "")
- {
- DAGroupId= Convert.ToDouble(System.Text.RegularExpressions.Regex.Replace(dt_stl.Rows[i]["GroupId"].ToString(), @"[^\d.\d]", ""));
- }
- else
- {
- DAGroupId = 0;
- }
- dr["metal"] = 0;
- for (int a = 0; a < LargeClassificationTable.Rows.Count; a++)
- {
- if(Convert.ToDouble(LargeClassificationTable.Rows[a]["id"]) == DAGroupId)
- {
- if (LargeClassificationTable.Rows[a]["name"].ToString().ToLower()== "metallic")
- {
- dr["metal"] = 1;
- }
- }
- }
- dt.Rows.Add(dr);
- }
-
-
- data = dt.Copy();
- return data;
- }
- }
- }
|