FrmWeightCheck.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using CoreFS.CA06;
  10. using System.Collections;
  11. using Infragistics.Win.UltraWinGrid;
  12. using Core.Mes.Client.Common;
  13. using System.Diagnostics;
  14. using System.IO;
  15. namespace Core.LgMes.Client.lgIntegrationQuery
  16. {
  17. public partial class FrmWeightCheck : FrmBase
  18. {
  19. public FrmWeightCheck()
  20. {
  21. InitializeComponent();
  22. }
  23. private void FrmWeightCheck_Load(object sender, EventArgs e)
  24. {
  25. }
  26. public override void ToolBar_Click(object sender, string ToolbarKey)
  27. {
  28. switch (ToolbarKey)
  29. {
  30. case "Query":
  31. {
  32. proc_Query();
  33. break;
  34. }
  35. case "CheckIn":
  36. {
  37. CheckIn("审核通过");
  38. break;
  39. }
  40. case " ":
  41. {
  42. CheckIn("审核不通过");
  43. break;
  44. }
  45. case "CheckCancel":
  46. {
  47. CheckCancel();
  48. break;
  49. }
  50. case "Export":
  51. {
  52. ExportExcel();
  53. break;
  54. }
  55. case "Close":
  56. {
  57. this.Close();
  58. break;
  59. }
  60. }
  61. }
  62. public void proc_Query()
  63. {
  64. this.dataSet1.Tables[0].Clear();
  65. if (uldtEndTime.DateTime.Date.Subtract(uldtBeginTime.DateTime.Date).Days > 180)
  66. {
  67. MessageBox.Show("查询时间不可超过6个月。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  68. return;
  69. }
  70. if (uldtBeginTime.DateTime > uldtEndTime.DateTime)
  71. {
  72. MessageBox.Show("查询起始时间不能大于结束时间!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  73. return;
  74. }
  75. try
  76. {
  77. string strErr = "";
  78. this.dataSet1.Tables[0].Clear();
  79. string DelToDateFrom = Convert.ToString(this.uldtBeginTime.DateTime.ToString("yyyyMMdd"));
  80. string DelToDateTo = Convert.ToString(this.uldtEndTime.DateTime.ToString("yyyyMMdd"));
  81. DateTime t1 = DateTime.ParseExact(DelToDateFrom, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);
  82. DateTime t2 = DateTime.ParseExact(DelToDateTo, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);
  83. System.TimeSpan t3 = t2 - t1; //两个时间相减 。默认得到的是 两个时间之间的天数 得到:365.00:00:00
  84. double getDay = t3.TotalDays; //将这个天数转换成天数, 返回值是double类型的(其实不必转换,因为t3默认就是天数) 得到:
  85. if (getDay > 30)
  86. {
  87. MessageBox.Show("查询周期过长,是否继续查询?");
  88. }
  89. string sqlCondition = "1=1 AND (T1.MATRL_END_CAUSE_CD IS NULL OR T1.MATRL_END_CAUSE_CD != '4')";
  90. sqlCondition += " AND T1.SLAB_CUT_DTIME BETWEEN '" + DelToDateFrom + "000000" + "' AND '" + DelToDateTo + "235959" + "'";
  91. if (this.chk_CCMID.Checked)
  92. {
  93. sqlCondition += " AND T1.PROC_CD LIKE 'J" + this.cmb_CCMID.Text.Trim() + "%'";
  94. }
  95. sqlCondition += " ORDER BY T1.SLAB_CUT_DTIME ";
  96. ArrayList arry1 = new ArrayList();
  97. ArrayList sqlList = new ArrayList();
  98. arry1.Add("FrmWeightCheckInfo.Select");//此ID为XML文件ID
  99. sqlList.Add(sqlCondition);
  100. //调用服务端方法
  101. CoreClientParam CCP_JJBQuery = new CoreClientParam();
  102. DataTable dt = new DataTable();
  103. CCP_JJBQuery.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
  104. CCP_JJBQuery.MethodName = "doQuery";
  105. CCP_JJBQuery.ServerParams = new object[] { arry1, sqlList };
  106. CCP_JJBQuery.SourceDataTable = dt;//dataSet1.Tables[0];
  107. this.ExecuteQueryToDataTable(CCP_JJBQuery, CoreInvokeType.Internal);
  108. if (string.IsNullOrEmpty(strErr))
  109. {
  110. if (dt != null && dt.Rows.Count > 0)
  111. {
  112. this.dataTable1.Rows.Clear();
  113. DataRow dr;
  114. for (int iRow = 0; iRow < dt.Rows.Count; iRow++)
  115. {
  116. dr = this.dataTable1.NewRow();
  117. for (int jCol = 0; jCol < dt.Columns.Count; jCol++)
  118. {
  119. if (this.dataTable1.Columns.Contains(dt.Columns[jCol].ColumnName))
  120. {
  121. dr[dt.Columns[jCol].ColumnName] = dt.Rows[iRow][jCol];
  122. }
  123. }
  124. this.dataTable1.Rows.Add(dr);
  125. }
  126. }
  127. }
  128. //this.dataSet1.data = dt;
  129. //System.Diagnostics.Debug.WriteLine(this.dataSet1.Tables[0].ToString());
  130. foreach (UltraGridRow ugr in this.ultraGrid1.Rows)
  131. {
  132. if (ugr.Cells["CHECK_STATE"].Text.Trim() == "审核不通过")
  133. ugr.CellAppearance.BackColor = Color.OrangeRed;
  134. else if (ugr.Cells["CHECK_STATE"].Text.Trim() == "审核通过")
  135. ugr.CellAppearance.BackColor = Color.Lime;
  136. }
  137. this.ultraGrid1.DisplayLayout.Bands[0].Columns["Choose"].CellActivation = Activation.AllowEdit;
  138. this.ultraGrid1.DisplayLayout.Bands[0].Columns["BILLETNO"].CellActivation = Activation.ActivateOnly;
  139. this.ultraGrid1.DisplayLayout.Bands[0].Columns["BilletType"].CellActivation = Activation.ActivateOnly;
  140. this.ultraGrid1.DisplayLayout.Bands[0].Columns["THICK"].CellActivation = Activation.ActivateOnly;
  141. this.ultraGrid1.DisplayLayout.Bands[0].Columns["WIDTH"].CellActivation = Activation.ActivateOnly;
  142. this.ultraGrid1.DisplayLayout.Bands[0].Columns["LENGTH"].CellActivation = Activation.ActivateOnly;
  143. this.ultraGrid1.DisplayLayout.Bands[0].Columns["QUANTITY"].CellActivation = Activation.ActivateOnly;
  144. this.ultraGrid1.DisplayLayout.Bands[0].Columns["WEIGHT"].CellActivation = Activation.ActivateOnly;
  145. this.ultraGrid1.DisplayLayout.Bands[0].Columns["THEORYWEIGHT"].CellActivation = Activation.ActivateOnly;
  146. this.ultraGrid1.DisplayLayout.Bands[0].Columns["GOWHERE"].CellActivation = Activation.ActivateOnly;
  147. this.ultraGrid1.DisplayLayout.Bands[0].Columns["Check_State"].CellActivation = Activation.ActivateOnly;
  148. }
  149. catch (Exception EX)
  150. {
  151. MessageBox.Show(EX.ToString());
  152. }
  153. }
  154. private void CheckIn(string state)
  155. {
  156. string strErr = "", sqlNew = ""; int i = 0;
  157. if (this.ultraGrid1.Rows.Count == 0)
  158. {
  159. MessageBox.Show("请查询数据后再进行审核");
  160. return;
  161. }
  162. foreach (UltraGridRow ugr in this.ultraGrid1.Rows)
  163. {
  164. if (ugr.Cells["Choose"].Text.Trim().ToUpper() != "TRUE")
  165. continue;
  166. string billetno = ugr.Cells["BILLETNO"].Text.Trim();//坯号
  167. string billettype = ugr.Cells["BilletType"].Text.Trim();//坯料类型
  168. string MeterWeight = ugr.Cells["WeightPerMeter"].Text.Trim();//米单重
  169. string thick = ugr.Cells["THICK"].Text.Trim();//厚度
  170. string width = ugr.Cells["WIDTH"].Text.Trim();//宽度
  171. string length = ugr.Cells["LENGTH"].Text.Trim();//长度
  172. string quantity = ugr.Cells["QUANTITY"].Text.Trim();//支数
  173. string weight = ugr.Cells["WEIGHT"].Text.Trim();//磅重
  174. string theoryweight = ugr.Cells["THEORYWEIGHT"].Text.Trim();//理重
  175. string optman = this.UserInfo.GetUserName();
  176. string gowhere = ugr.Cells["GOWHERE"].Text.Trim();//去向
  177. string ccmid = ugr.Cells["CCMID"].Text.Trim();//铸机号
  178. if (!string.IsNullOrEmpty(ugr.Cells["Check_State"].Text.Trim()) && ugr.Cells["Check_State"].Text.Trim() != "未审核")
  179. {
  180. MessageBox.Show(billetno + "已审核,如需重新审核,请先撤销审核");
  181. return;
  182. }
  183. else
  184. {
  185. sqlNew = "select * from CXUSER.JOB_WEIGHTCHECK_INFO@XGCX where billetno = '" + billetno + "'";
  186. CoreClientParam CCP_Query = new CoreClientParam();
  187. DataTable dt = new DataTable();
  188. CCP_Query.ServerName = "Core.LgMes.Server.Common.ComDBExecute"; // 考虑原来返回数据形式性能太低,修改为前端传sql,服务端直接执行模式 2013.11.18
  189. CCP_Query.MethodName = "doSimpleQuery";
  190. CCP_Query.ServerParams = new object[] { sqlNew };
  191. CCP_Query.SourceDataTable = dt;
  192. ExecuteQueryToDataTable(CCP_Query, CoreInvokeType.Internal);
  193. if (dt != null && dt.Rows.Count > 0)
  194. {
  195. MessageBox.Show(billetno + "已审核,如需重新审核,请先撤销审核");
  196. proc_Query();
  197. return;
  198. }
  199. }
  200. string sql = "insert into CXUSER.JOB_WEIGHTCHECK_INFO@XGCX(BILLETNO,THICK,WIDTH,LENGTH,THEORYWEIGHT,WEIGHT,CHECK_STATE,CHECK_TIME,CHECK_MAN,"
  201. + "QUANTITY,METER_WEIGHT,BILLETTYPE,SLAB_SOURCE,GOWHERE,CCMID) "
  202. + " values('" + billetno + "','" + thick + "','" + width + "','" + length + "','" + theoryweight + "','" + weight + "','" + state + "',sysdate,'" + optman + "','" + quantity + "','" + MeterWeight + "','" + billettype + "' , '" + "第二炼钢厂" + "','" + gowhere + "','" + ccmid + "')";
  203. CommonClientToServer cctos = new CommonClientToServer();
  204. cctos.ob = this.ob;
  205. cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBExecute",
  206. "ExcuteNoParameter", sql, out strErr);
  207. if (!string.IsNullOrEmpty(strErr))
  208. {
  209. MessageBox.Show("坯料:" + billetno + "审核失败。" + strErr);
  210. proc_Query();
  211. return;
  212. }
  213. i++;
  214. }
  215. MessageBox.Show(i + "条坯料全部审核成功。");
  216. proc_Query();
  217. }
  218. private void CheckCancel()
  219. {
  220. string strErr = "", sqlNew = ""; int i = 0;
  221. if (this.ultraGrid1.Rows.Count == 0)
  222. {
  223. MessageBox.Show("请查询数据后再进行撤销审核");
  224. return;
  225. }
  226. foreach (UltraGridRow ugr in this.ultraGrid1.Rows)
  227. {
  228. if (ugr.Cells["Choose"].Text.Trim().ToUpper() != "TRUE")
  229. continue;
  230. string billetno = ugr.Cells["BILLETNO"].Text.Trim();//坯号
  231. string billettype = ugr.Cells["BilletType"].Text.Trim();//坯料类型
  232. if (string.IsNullOrEmpty(ugr.Cells["Check_State"].Text.Trim()))
  233. {
  234. MessageBox.Show(billetno + "已撤销,无需再次撤销");
  235. return;
  236. }
  237. /*if (ugr.Cells["STORAGESTATUS"].Text.Trim() == "已出库")
  238. {
  239. MessageBox.Show(billetno + "已出库,不允许撤销审核,请联系一钢质检");
  240. return;
  241. }
  242. else
  243. {
  244. if (billettype == "板坯")
  245. {
  246. sqlNew = "select STORAGESTATUS from cxuser.kcg_stufflist@xgcx where billetno = '" + billetno + "'";
  247. }
  248. else
  249. {
  250. sqlNew = "select MAX(STORAGESTATUS) from cxuser.kcg_stufflist@xgcx where heatno = '" + billetno + "' group by heatno";
  251. }
  252. CallingMessage par1 = new CallingMessage();
  253. par1.ServerName = "lgIntegrationQuery";
  254. par1.AssemblyName = "Core.LgMes.Server.lgIntegrationQuery";
  255. par1.ClassName = "Core.LgMes.Server.lgIntegrationQuery.LgGeneralInfo";
  256. par1.MethodName = "ExecuteCommand_Return";
  257. par1.args = new object[] { sqlNew };
  258. DataSet ds1 = (DataSet)ClientCommon._RemotingHelp.ExecuteMethod(par1, out strErr);
  259. String flag = ds1.Tables[0].Rows[0][0].ToString();
  260. if (flag == "2")
  261. {
  262. MessageBox.Show(billetno + "已出库,不允许撤销审核,请联系一钢质检");
  263. return;
  264. }
  265. }*/
  266. string sql = "DELETE FROM CXUSER.JOB_WEIGHTCHECK_INFO@XGCX WHERE BILLETNO = '" + billetno + "'";
  267. CommonClientToServer cctos = new CommonClientToServer();
  268. cctos.ob = this.ob;
  269. cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBExecute",
  270. "ExcuteNoParameter", sql, out strErr);
  271. if (!string.IsNullOrEmpty(strErr))
  272. {
  273. MessageBox.Show("坯料:" + billetno + "撤销失败。" + strErr);
  274. proc_Query();
  275. return;
  276. }
  277. i++;
  278. }
  279. MessageBox.Show(i + "条坯料全部撤销成功。");
  280. proc_Query();
  281. }
  282. private void ExportExcel()
  283. {
  284. try
  285. {
  286. if (this.ultraGrid1.Rows.Count == 0)
  287. {
  288. MessageBox.Show("请先检索数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  289. return;
  290. }
  291. string StrfileName = System.Windows.Forms.Application.StartupPath + "\\Report\\过磅数据审核.xls";
  292. this.GridExcelExporter.Export(this.ultraGrid1, StrfileName);
  293. ProcessStartInfo p = new ProcessStartInfo(StrfileName);
  294. p.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized;
  295. p.WorkingDirectory = Path.GetDirectoryName(StrfileName);
  296. Process.Start(p);
  297. }
  298. catch (Exception ex)
  299. {
  300. MessageBox.Show(ex.Message + "\n处理方法:查看(" + System.Windows.Forms.Application.StartupPath + ")目录下是否有[ Report文件夹 ],如果没有请手动创建!");
  301. }
  302. }
  303. private void uCkEditorForFilter_CheckedChanged(object sender, EventArgs e)
  304. {
  305. try
  306. {
  307. if (uCkEditorForFilter.Checked)
  308. {
  309. this.ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.True;
  310. }
  311. else
  312. {
  313. this.ultraGrid1.DisplayLayout.Bands[0].ColumnFilters.ClearAllFilters();
  314. this.ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  315. }
  316. }
  317. catch { }
  318. }
  319. private void chk_CCMID_CheckedChanged(object sender, EventArgs e)
  320. {
  321. if (chk_CCMID.Checked)
  322. cmb_CCMID.Enabled = true;
  323. else
  324. cmb_CCMID.Enabled = false;
  325. }
  326. }
  327. }