TCCleannessA.cs 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
  8. {
  9. class TCCleannessA
  10. {
  11. public DataTable ParticleSizeStatistician(BasicData basicData,string strName)
  12. {
  13. //DataTable data = basicData.GetDBData();
  14. DataTable data = new DataTable();
  15. //获取粒级表
  16. List<string> colid = basicData.GetParticlesizeTable();
  17. DataTable ls_partsize_dt = new DataTable();
  18. ls_partsize_dt.TableName = "PartSize";
  19. ls_partsize_dt.Columns.Add("c1");
  20. ls_partsize_dt.Columns.Add("c2");
  21. ls_partsize_dt.Columns.Add("c3");
  22. ls_partsize_dt.Columns.Add("c4");
  23. ls_partsize_dt.Columns.Add("c5");
  24. ls_partsize_dt.Columns.Add("c6");
  25. ls_partsize_dt.Columns.Add("c7");
  26. ls_partsize_dt.Columns.Add("c8");
  27. ls_partsize_dt.Columns.Add("c9");
  28. DataRow dr = ls_partsize_dt.NewRow();
  29. for (int i = 1; i < 10; i++)
  30. {
  31. if (colid.Count < i)
  32. {
  33. dr["c" + i.ToString()] = "";
  34. }
  35. else
  36. {
  37. dr["c" + i.ToString()] = colid[i - 1];
  38. }
  39. }
  40. ls_partsize_dt.Rows.Add(dr);
  41. DataTable ls_Particel_dt = new DataTable();
  42. ls_Particel_dt.TableName = "Particel";
  43. ls_Particel_dt.Columns.Add("c1", typeof(double));
  44. ls_Particel_dt.Columns.Add("c2", typeof(double));
  45. ls_Particel_dt.Columns.Add("c3", typeof(double));
  46. ls_Particel_dt.Columns.Add("c4", typeof(double));
  47. ls_Particel_dt.Columns.Add("c5", typeof(double));
  48. ls_Particel_dt.Columns.Add("c6", typeof(double));
  49. ls_Particel_dt.Columns.Add("c7", typeof(double));
  50. ls_Particel_dt.Columns.Add("c8", typeof(double));
  51. ls_Particel_dt.Columns.Add("c9", typeof(double));
  52. ls_Particel_dt.Columns.Add("Name");
  53. ls_Particel_dt.Columns.Add("total", typeof(double));
  54. ls_Particel_dt.Columns.Add("TypeId");
  55. ls_Particel_dt.Columns.Add("Class");
  56. ls_Particel_dt.Columns.Add("hardnes");
  57. ls_Particel_dt.Columns.Add("hardness");
  58. ls_Particel_dt.Columns.Add("metal");
  59. ls_Particel_dt.Columns.Add("maximum");
  60. DataTable table = GetSTL(basicData, strName);
  61. for (int i = 0; i < data.Rows.Count; i++)
  62. {
  63. DataRow dr2 = ls_Particel_dt.NewRow();
  64. dr2["Name"] = data.Rows[i]["TypeName"].ToString();
  65. dr2["Class"] = data.Rows[i]["Class"].ToString();
  66. dr2["TypeId"] = data.Rows[i]["TypeId"].ToString();//获取分类编号
  67. dr2["maximum"]= data.Rows[i]["Largest"].ToString();
  68. for (int j = 1; j < 10; j++)
  69. {
  70. if (colid.Count >= j)
  71. {
  72. dr2["c" + j.ToString()] = Convert.ToDouble(data.Rows[i][colid[j - 1]]);
  73. }
  74. }
  75. if (dr2["Name"].ToString() != "" && dr2["Name"].ToString().IndexOf("number") < 0)
  76. {
  77. dr2["total"] = "0"; //求合
  78. double d_total = 0;
  79. for (int j = 1; j < 10; j++)
  80. {
  81. if (colid.Count >= j)
  82. {
  83. d_total = d_total + Convert.ToInt64(data.Rows[i][colid[j - 1]]);
  84. }
  85. }
  86. dr2["total"] = d_total.ToString();
  87. }
  88. dr2["hardness"] = "o. Def.";
  89. dr2["metal"] = "0";
  90. dr2["hardnes"] = "0";
  91. for (int a=0;a< table.Rows.Count;a++)
  92. {
  93. if(data.Rows[i]["TypeId"].ToString()== table.Rows[a]["TypeId"].ToString())
  94. {
  95. dr2["hardness"] = table.Rows[a]["Hardness_detailed"].ToString();
  96. dr2["metal"]= table.Rows[a]["metal"].ToString();
  97. dr2["hardnes"] = table.Rows[a]["Hardness"].ToString(); ;
  98. break;
  99. }
  100. }
  101. ls_Particel_dt.Rows.Add(dr2);
  102. }
  103. return ls_Particel_dt;
  104. }
  105. public List<DataTable> GetGroupingTable(DataTable data)
  106. {
  107. List<DataTable> datas = new List<DataTable>();
  108. HashSet<string> uniqueStrings = new HashSet<string>();
  109. for (int i=0;i< data.Rows.Count;i++)
  110. {
  111. uniqueStrings.Add(data.Rows[i]["Class"].ToString());
  112. }
  113. foreach (var uniqueString in uniqueStrings)
  114. {
  115. DataTable dt = data.Clone();
  116. dt.TableName = uniqueString;
  117. for (int i = 0; i < data.Rows.Count; i++)
  118. {
  119. if (data.Rows[i]["Class"].ToString() == uniqueString)
  120. {
  121. dt.Rows.Add(data.Rows[i].ItemArray);
  122. }
  123. }
  124. datas.Add(dt);
  125. }
  126. return datas;
  127. }
  128. private DataTable GetSTL( BasicData basicData, string strName)
  129. {
  130. DataTable data = new DataTable();
  131. if (basicData.GetResfile().ToLower() == "nostddb")
  132. {
  133. data = new DataTable();
  134. }
  135. DataTable dt = new DataTable();
  136. dt.Columns.Add("Name");
  137. dt.Columns.Add("TypeId");
  138. dt.Columns.Add("Hardness", typeof(double));
  139. dt.Columns.Add("Hardness_detailed");
  140. dt.Columns.Add("metal");
  141. OTSCommon.DBOperate.SqLiteHelper sh = null;
  142. string fullPath = basicData.GetFilePath() + "\\" + strName;
  143. string fullPath2 = System.IO.Directory.GetCurrentDirectory() + "\\Config\\SysData\\" + strName;
  144. if (System.IO.File.Exists(fullPath))
  145. {
  146. sh = new OTSCommon.DBOperate.SqLiteHelper("data source='" + fullPath + "'");
  147. }
  148. else if (System.IO.File.Exists(fullPath2))
  149. {
  150. sh = new OTSCommon.DBOperate.SqLiteHelper("data source='" + fullPath2 + "'");
  151. }
  152. else
  153. {
  154. sh = null;
  155. return data;
  156. }
  157. DataTable dt_stl = sh.ExecuteQuery("select * from ClassifySTD");
  158. DataTable LargeClassificationTable = sh.ExecuteQuery("select * from STDGroups");
  159. for (int i = 0; i < dt_stl.Rows.Count; i++)
  160. {
  161. double DAGroupId;
  162. DataRow dr = dt.NewRow();
  163. dr["Name"] = dt_stl.Rows[i]["StrName"].ToString();
  164. dr["TypeId"]= dt_stl.Rows[i]["STDId"].ToString();
  165. dr["Hardness_detailed"] = dt_stl.Rows[i]["Hardness"].ToString();
  166. if (System.Text.RegularExpressions.Regex.Replace(dt_stl.Rows[i]["Hardness"].ToString(), @"[^\d.\d]", "").ToString() != "")
  167. {
  168. try
  169. {
  170. if (System.Text.RegularExpressions.Regex.Replace(dt_stl.Rows[i]["Hardness"].ToString(), @"[^\d.\d]", "") == "o. Def.")
  171. {
  172. dr["Hardness"] = 0;
  173. }
  174. else
  175. {
  176. double dl= Convert.ToDouble(System.Text.RegularExpressions.Regex.Replace(dt_stl.Rows[i]["Hardness"].ToString(), @"[^\d.\d]", ""));
  177. if (">"+ dl.ToString()== dt_stl.Rows[i]["Hardness"].ToString())
  178. {
  179. dr["Hardness"] = dl + 1;
  180. }
  181. else
  182. {
  183. dr["Hardness"] = dl -1;
  184. }
  185. }
  186. }
  187. catch
  188. {
  189. dr["Hardness"] = 0;
  190. }
  191. }
  192. else
  193. {
  194. dr["Hardness"] = 0;
  195. }
  196. if (System.Text.RegularExpressions.Regex.Replace(dt_stl.Rows[i]["GroupId"].ToString(), @"[^\d.\d]", "").ToString() != "")
  197. {
  198. DAGroupId= Convert.ToDouble(System.Text.RegularExpressions.Regex.Replace(dt_stl.Rows[i]["GroupId"].ToString(), @"[^\d.\d]", ""));
  199. }
  200. else
  201. {
  202. DAGroupId = 0;
  203. }
  204. dr["metal"] = 0;
  205. for (int a = 0; a < LargeClassificationTable.Rows.Count; a++)
  206. {
  207. if(Convert.ToDouble(LargeClassificationTable.Rows[a]["id"]) == DAGroupId)
  208. {
  209. if (LargeClassificationTable.Rows[a]["name"].ToString().ToLower()== "metallic")
  210. {
  211. dr["metal"] = 1;
  212. }
  213. }
  214. }
  215. dt.Rows.Add(dr);
  216. }
  217. data = dt.Copy();
  218. return data;
  219. }
  220. }
  221. }