TCCleannessA.cs 9.3 KB

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