FrmMchControlLog.cs 61 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401
  1. 
  2. using Core.Mes.Client.Comm.Control;
  3. using Core.Mes.Client.Comm.Server;
  4. using Core.Mes.Client.Comm.Tool;
  5. using Core.StlMes.Client.Mcp.Control;
  6. using Core.StlMes.Client.Mcp.Control.Base;
  7. using CoreFS.CA06;
  8. using Infragistics.Win;
  9. using Infragistics.Win.UltraWinEditors;
  10. using Infragistics.Win.UltraWinGrid;
  11. using System;
  12. using System.Collections;
  13. using System.Collections.Generic;
  14. using System.ComponentModel;
  15. using System.Data;
  16. using System.Drawing;
  17. using System.Globalization;
  18. using System.Linq;
  19. using System.Text;
  20. using System.Windows.Forms;
  21. namespace Core.StlMes.Client.Mcp.Mch.Report
  22. {
  23. public partial class FrmMchControlLog : FrmBase
  24. {
  25. private string departm = "";
  26. UltraComboEditor ucePline = new UltraComboEditor();//产线名称
  27. private string plineCode;
  28. int flag = 0;//分析时间错误
  29. int flag1 = 0;//分析相差时间
  30. private string basecodeSamll = "";//停机小类值
  31. private string basecodeReason = "";//停机原因值
  32. public FrmMchControlLog()
  33. {
  34. InitializeComponent();
  35. }
  36. private void FrmMchControlLog_Load(object sender, EventArgs e)
  37. {
  38. /* departm = UserInfo.GetDepartment();
  39. plineCode = YdmBaseClass.GetPCode(departm, this.ob);//获取 用户 对应的产线*/
  40. cmbDate.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
  41. //TubeRoll.setUltraGridColumnInput(ultraGrid1, new string[] { "QUALIFIED_NUM", "SCRAP_NUM" });//支数
  42. //TubeRoll.setUltraGridColumnMaxInput(ultraGrid1, new string[] { "QUALIFIED_WT", "SCRAP_WT" });//重量
  43. //TubeRoll.SetComboItemHeight(cmbPline);
  44. //TubeRoll.SetComboItemHeight(cmbBc);
  45. //TubeRoll.SetComboItemHeight(cmbBz);
  46. DataTable dt = TubeRoll.GetComBaseInfo("5006", ob);
  47. cmbStop.DataSource = dt;
  48. cmbStop.ValueMember = "BASECODE";
  49. cmbStop.DisplayMember = "BASENAME";
  50. TubeRoll.SetComboItemHeight(cmbStop);
  51. DataTable dt1 = ServerHelper.GetData("com.steering.mes.mcp.common.McpBaseHelper.getPlineCode", new object[] { "G", "002001002" }, this.ob);
  52. comPlineCode.DataSource = dt1;
  53. comPlineCode.ValueMember = "PLINE_CODE";
  54. comPlineCode.DisplayMember = "PLINE_NAME";
  55. comPlineCode.SelectedIndex = 0;
  56. }
  57. /// <summary>
  58. /// 重写基类方法
  59. /// </summary>
  60. /// <param name="sender"></param>
  61. /// <param name="ToolbarKey"></param>
  62. public override void ToolBar_Click(object sender, string ToolbarKey)
  63. {
  64. switch (ToolbarKey)
  65. {
  66. case "Query":
  67. doQuery();
  68. break;
  69. case "Add":
  70. doAdd();
  71. break;
  72. case "Update":
  73. doUpdate();
  74. break;
  75. case "Delete":
  76. doDelete();
  77. break;
  78. case "Analysis":
  79. doQuery();
  80. doAnalysis();
  81. break;
  82. case "Confirm":
  83. doConfirm();
  84. break;
  85. case "UpConfirm":
  86. UpConfirm();
  87. break;
  88. case "OneKeyProces":
  89. DoOneKeyProces();
  90. break;
  91. case "Statistical":
  92. DoStatistical();
  93. break;
  94. case "OneKeyUpdate":
  95. DoOneKeyUpdate();
  96. break;
  97. case "Production":
  98. DoProduction();
  99. break;
  100. case "Export":
  101. GridHelper.ulGridToExcel(ultraGrid1, "加工调度日志");
  102. break;
  103. case "Close":
  104. this.Close();
  105. break;
  106. }
  107. }
  108. /// <summary>
  109. /// 生产记录
  110. /// </summary>
  111. private void DoProduction()
  112. {
  113. FrmProductionDetails pro = new FrmProductionDetails(cmbDate.Value.ToString("yyyyMMdd"), plineCode, this.ob);
  114. pro.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  115. pro.Text = "生产详细";
  116. pro.ShowDialog();
  117. }
  118. /// <summary>
  119. /// 查询统计数据
  120. /// </summary>
  121. private void DoStatistical()
  122. {
  123. UltraGridRow row = ultraGrid1.ActiveRow;
  124. if (row == null) { MessageUtil.ShowTips("无数据!"); return; }
  125. FrmStatistical fsta = new FrmStatistical(plineCode, ob);
  126. fsta.AutoSize = true;
  127. fsta.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  128. fsta.Text = "统计查询";
  129. fsta.ShowDialog();
  130. }
  131. /// <summary>
  132. /// 查询
  133. /// </summary>
  134. private void doQuery()
  135. {
  136. ArrayList list = new ArrayList();
  137. //当天
  138. string date = "";
  139. //前一天
  140. string endDate = "";
  141. date = cmbDate.Value.ToString("yyyyMMdd");
  142. endDate = cmbDate.Value.AddDays(-1).ToString("yyyyMMdd");
  143. //当班数据
  144. DataTable dt=ServerHelper.GetData
  145. ("com.steering.mes.mcp.Mch.FrmMchControlLog.doQueryPlan", new object[] { date, endDate, this.UserInfo.GetUserOrder(), this.UserInfo.GetUserGroup(), plineCode, "" }, this.ob);
  146. GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true);
  147. this.ultraGrid1.DisplayLayout.Bands[0].Columns["LOGS_BEG"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DateTimeWithSpin;
  148. this.ultraGrid1.DisplayLayout.Bands[0].Columns["LOGS_BEG"].MaskInput = "yyyy-mm-dd hh:mm";
  149. this.ultraGrid1.DisplayLayout.Bands[0].Columns["LOGS_END"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DateTimeWithSpin;
  150. this.ultraGrid1.DisplayLayout.Bands[0].Columns["LOGS_END"].MaskInput = "yyyy-mm-dd hh:mm";
  151. foreach (UltraGridRow row in ultraGrid1.Rows)
  152. {
  153. if (row.Cells["PRO_TYPE"].Text.ToString().Trim().Equals("停机"))
  154. {
  155. row.Cells["STOP_TYPE"].Appearance.BackColor = Color.FromArgb(255, 255, 192);
  156. row.Cells["STOP_TYPE"].Appearance.BackHatchStyle = BackHatchStyle.None;
  157. row.Cells["STOP_TYPE"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  158. row.Cells["STOP_REASON"].Appearance.BackColor = Color.FromArgb(255, 255, 192);
  159. row.Cells["STOP_REASON"].Appearance.BackHatchStyle = BackHatchStyle.None;
  160. row.Cells["STOP_REASON"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  161. row.Cells["STOP_SMALL"].Appearance.BackColor = Color.FromArgb(255, 255, 192);
  162. row.Cells["STOP_SMALL"].Appearance.BackHatchStyle = BackHatchStyle.None;
  163. row.Cells["STOP_SMALL"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  164. }
  165. else
  166. {
  167. row.Cells["STOP_TYPE"].Appearance.BackColor = Color.Transparent;
  168. row.Cells["STOP_TYPE"].Appearance.BackHatchStyle = BackHatchStyle.Default;
  169. row.Cells["STOP_TYPE"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  170. row.Cells["STOP_REASON"].Appearance.BackColor = Color.Transparent;
  171. row.Cells["STOP_REASON"].Appearance.BackHatchStyle = BackHatchStyle.Default;
  172. row.Cells["STOP_REASON"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  173. row.Cells["STOP_SMALL"].Appearance.BackColor = Color.Transparent;
  174. row.Cells["STOP_SMALL"].Appearance.BackHatchStyle = BackHatchStyle.Default;
  175. row.Cells["STOP_SMALL"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  176. }
  177. }
  178. //上一个班数据
  179. string shift = "";
  180. if (this.UserInfo.GetUserOrder().Equals("1"))
  181. {
  182. shift = "3";
  183. }
  184. if (this.UserInfo.GetUserOrder().Equals("2"))
  185. {
  186. shift = "1";
  187. }
  188. if (this.UserInfo.GetUserOrder().Equals("3"))
  189. {
  190. shift = "2";
  191. date = endDate;
  192. }
  193. DataTable dt2 = ServerHelper.GetData
  194. ("com.steering.mes.mcp.Mch.FrmMchControlLog.doQueryPlan", new object[] { date, endDate, shift, this.UserInfo.GetUserGroup(), plineCode, "" }, this.ob);
  195. GridHelper.CopyDataToDatatable(ref dt2, ref dataTable2, true);
  196. this.ultraGrid2.DisplayLayout.Bands[0].Columns["LOGS_BEG"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DateTimeWithSpin;
  197. this.ultraGrid2.DisplayLayout.Bands[0].Columns["LOGS_BEG"].MaskInput = "yyyy-mm-dd hh:mm";
  198. this.ultraGrid2.DisplayLayout.Bands[0].Columns["LOGS_END"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DateTimeWithSpin;
  199. this.ultraGrid2.DisplayLayout.Bands[0].Columns["LOGS_END"].MaskInput = "yyyy-mm-dd hh:mm";
  200. foreach (UltraGridRow row in ultraGrid2.Rows)
  201. {
  202. if (row.Cells["PRO_TYPE"].Text.ToString().Trim().Equals("停机"))
  203. {
  204. row.Cells["STOP_TYPE"].Appearance.BackColor = Color.FromArgb(255, 255, 192);
  205. row.Cells["STOP_TYPE"].Appearance.BackHatchStyle = BackHatchStyle.None;
  206. row.Cells["STOP_TYPE"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  207. row.Cells["STOP_REASON"].Appearance.BackColor = Color.FromArgb(255, 255, 192);
  208. row.Cells["STOP_REASON"].Appearance.BackHatchStyle = BackHatchStyle.None;
  209. row.Cells["STOP_REASON"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  210. row.Cells["STOP_SMALL"].Appearance.BackColor = Color.FromArgb(255, 255, 192);
  211. row.Cells["STOP_SMALL"].Appearance.BackHatchStyle = BackHatchStyle.None;
  212. row.Cells["STOP_SMALL"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  213. }
  214. else
  215. {
  216. row.Cells["STOP_TYPE"].Appearance.BackColor = Color.Transparent;
  217. row.Cells["STOP_TYPE"].Appearance.BackHatchStyle = BackHatchStyle.Default;
  218. row.Cells["STOP_TYPE"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  219. row.Cells["STOP_REASON"].Appearance.BackColor = Color.Transparent;
  220. row.Cells["STOP_REASON"].Appearance.BackHatchStyle = BackHatchStyle.Default;
  221. row.Cells["STOP_REASON"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  222. row.Cells["STOP_SMALL"].Appearance.BackColor = Color.Transparent;
  223. row.Cells["STOP_SMALL"].Appearance.BackHatchStyle = BackHatchStyle.Default;
  224. row.Cells["STOP_SMALL"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  225. }
  226. }
  227. }
  228. /// <summary>
  229. /// 一键处理新增(分析后五分钟以内的时间间隔)
  230. /// </summary>
  231. private void DoOneKeyProces()
  232. {
  233. ultraGrid1.UpdateData();
  234. UltraGridRow row = ultraGrid1.ActiveRow;
  235. if (row == null) { MessageUtil.ShowTips("无数据,不允许此操作!"); return; }
  236. int minutes = int.Parse(MinTime.Value.ToString());
  237. if (minutes == 0) { MessageUtil.ShowTips("请输入相差时间!"); }
  238. ArrayList pram = new ArrayList();
  239. if (flag == 0) { MessageUtil.ShowTips("未分析,不允许此操作!"); return; }
  240. if (flag == 1 && flag1 == 0) { MessageUtil.ShowTips("分析通过,不允许此操作!"); return; }
  241. if (flag == 2) { MessageUtil.ShowTips("分析时间错误,不允许此操作!"); return; }
  242. int i = 0;
  243. try
  244. {
  245. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  246. {
  247. //if (ugr.Cells["CONFIRM_FLAG"].Text.Equals("已确认"))
  248. //{
  249. // MessageUtil.ShowTips("已确认数据,不允许此操作!");
  250. // return;
  251. //}
  252. if (!ugr.Cells["LOGS_END"].Value.Equals(""))
  253. {
  254. i += 1;
  255. }
  256. }
  257. for (int j = 0; j < i; j++)
  258. {
  259. string loagEnd = ultraGrid1.Rows[j].Cells["LOGS_END"].Text.ToString();
  260. string loagBeg = "";
  261. if (j + 1 < i)
  262. {
  263. loagBeg = ultraGrid1.Rows[j + 1].Cells["LOGS_BEG"].Text.ToString();
  264. if (DateTime.Compare(Convert.ToDateTime(loagBeg), Convert.ToDateTime(loagEnd)) > 0)
  265. {
  266. if (TubeRoll.JudgeTimeMax(Convert.ToDateTime(loagEnd), Convert.ToDateTime(loagBeg)) <= minutes
  267. && TubeRoll.JudgeTimeMax(Convert.ToDateTime(loagEnd), Convert.ToDateTime(loagBeg)) > 0)
  268. {
  269. ArrayList list = new ArrayList();
  270. list.Add(DateTime.Parse(ultraGrid1.Rows[j].Cells["LOGS_END"].Value.ToString()).ToString("yyyyMMddHHmm"));
  271. list.Add(DateTime.Parse(ultraGrid1.Rows[j + 1].Cells["LOGS_BEG"].Value.ToString()).ToString("yyyyMMddHHmm"));
  272. list.Add(this.UserInfo.GetUserName());
  273. list.Add(this.UserInfo.GetUserOrder());
  274. list.Add(this.UserInfo.GetUserGroup());
  275. list.Add(plineCode);
  276. pram.Add(list);
  277. }
  278. }
  279. }
  280. }
  281. if (MessageUtil.ShowYesNoAndQuestion("是否一键新增处理?") == DialogResult.No)
  282. {
  283. return;
  284. }
  285. CoreClientParam ccp = new CoreClientParam();
  286. ccp.ServerName = "com.steering.mes.mcp.Mch.FrmMchControlLog";
  287. ccp.MethodName = "oneKeyProcesMilControlLog";
  288. ccp.ServerParams = new object[] { pram };
  289. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  290. if (ccp.ReturnCode != -1)
  291. {
  292. MessageUtil.ShowTips(ccp.ReturnInfo);
  293. if (ccp.ReturnInfo.Equals("一键处理成功!"))
  294. {
  295. doQuery();
  296. doAnalysis();
  297. }
  298. }
  299. }
  300. catch (Exception ex)
  301. {
  302. MessageUtil.ShowTips("开始时间或结束时间不能为空!");
  303. }
  304. }
  305. /// <summary>
  306. /// 一键修改
  307. /// </summary>
  308. private void DoOneKeyUpdate()
  309. {
  310. ultraGrid1.UpdateData();
  311. UltraGridRow row = ultraGrid1.ActiveRow;
  312. if (row == null) { MessageUtil.ShowTips("无数据,不允许此操作!"); return; }
  313. ArrayList pram = new ArrayList();
  314. if (flag == 0) { MessageUtil.ShowTips("未分析,不允许此操作!"); return; }
  315. if (flag == 1 && flag1 == 0) { MessageUtil.ShowTips("分析通过,不允许此操作!"); return; }
  316. //if (flag == 2) { MessageUtil.ShowTips("分析时间错误,不允许此操作!"); return; }
  317. int i = 0;
  318. try
  319. {
  320. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  321. {
  322. //if (ugr.Cells["CONFIRM_FLAG"].Text.Equals("已确认"))
  323. //{
  324. // MessageUtil.ShowTips("已确认数据,不允许此操作!");
  325. // return;
  326. //}
  327. if (!ugr.Cells["LOGS_END"].Value.Equals(""))
  328. {
  329. i += 1;
  330. }
  331. }
  332. for (int j = 0; j < i; j++)
  333. {
  334. string loagEnd = ultraGrid1.Rows[j].Cells["LOGS_END"].Text.ToString();
  335. string loagBeg = "";
  336. if (j + 1 < i)
  337. {
  338. loagBeg = ultraGrid1.Rows[j + 1].Cells["LOGS_BEG"].Text.ToString();
  339. if (DateTime.Compare(Convert.ToDateTime(loagBeg), Convert.ToDateTime(loagEnd)) < 0)
  340. {
  341. ArrayList list = new ArrayList();
  342. list.Add(DateTime.Parse(ultraGrid1.Rows[j].Cells["LOGS_BEG"].Value.ToString()).ToString("yyyyMMddHHmm"));
  343. list.Add(DateTime.Parse(ultraGrid1.Rows[j].Cells["LOGS_END"].Value.ToString()).ToString("yyyyMMddHHmm"));
  344. list.Add(DateTime.Parse(ultraGrid1.Rows[j + 1].Cells["LOGS_BEG"].Value.ToString()).ToString("yyyyMMddHHmm"));
  345. list.Add(this.UserInfo.GetUserName());
  346. list.Add(this.UserInfo.GetUserOrder());
  347. list.Add(this.UserInfo.GetUserGroup());
  348. list.Add(plineCode);
  349. list.Add(ultraGrid1.Rows[j].Cells["CONTROL_ID"].Value.ToString());
  350. pram.Add(list);
  351. }
  352. }
  353. }
  354. if (ultraGrid1.Rows.Count > 0 && ultraGrid2.Rows.Count > 0)
  355. {
  356. int a = ultraGrid2.Rows.Count;
  357. string LOGS_BEG = ultraGrid1.Rows[0].Cells["LOGS_BEG"].Value.ToString();
  358. string LOGS_END = ultraGrid2.Rows[a - 1].Cells["LOGS_END"].Value.ToString();
  359. string CONTROL_ID = ultraGrid1.Rows[0].Cells["CONTROL_ID"].Value.ToString();
  360. if (DateTime.Compare(Convert.ToDateTime(LOGS_BEG), Convert.ToDateTime(LOGS_END)) < 0)
  361. {
  362. LOGS_END = DateTime.Parse(LOGS_END).ToString("yyyyMMddHHmm");
  363. ServerHelper.SetData("com.steering.mes.mcp.Mch.FrmMchControlLog.updateOneDate", new object[] { LOGS_END, CONTROL_ID }, this.ob);
  364. }
  365. }
  366. if (MessageUtil.ShowYesNoAndQuestion("是否一键修改处理?") == DialogResult.No)
  367. {
  368. return;
  369. }
  370. CoreClientParam ccp = new CoreClientParam();
  371. ccp.ServerName = "com.steering.mes.mcp.Mch.FrmMchControlLog";
  372. ccp.MethodName = "oneKeyUpdateMilControlLog";
  373. ccp.ServerParams = new object[] { pram };
  374. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  375. if (ccp.ReturnCode != -1)
  376. {
  377. MessageUtil.ShowTips(ccp.ReturnInfo);
  378. if (ccp.ReturnInfo.Equals("一键处理成功!"))
  379. {
  380. doQuery();
  381. doAnalysis();
  382. }
  383. }
  384. }
  385. catch (Exception ex)
  386. {
  387. MessageUtil.ShowTips("开始时间或结束时间不能为空!");
  388. }
  389. }
  390. /// <summary>
  391. /// 新增
  392. /// </summary>
  393. private void doAdd()
  394. {
  395. ultraGrid1.UpdateData();
  396. ArrayList pram = new ArrayList();
  397. UltraGridRow row = ultraGrid1.ActiveRow;
  398. int count = 0;
  399. int statrindex = 0;//第一行记录
  400. int endindex = 0;//最后一行记录
  401. int indexEnd = 0;//获取Grid最后一行记录
  402. string statime = "";//新增开始时间
  403. string endtime = "";//新增结束时间
  404. string datetime1 = "";//获取选中第一行结束时间
  405. string datetime2 = "";//获取选中第二行开始时间
  406. if (row != null)
  407. {
  408. try
  409. {
  410. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  411. {
  412. if (Convert.ToBoolean(ugr.Cells["CHK"].Text) == true)
  413. {
  414. //if (ugr.Cells["CONFIRM_FLAG"].Text.Equals("已确认"))
  415. //{
  416. // MessageUtil.ShowTips("已确认数据,不允许此操作!");
  417. // return;
  418. //}
  419. statime = DateTime.Parse(ugr.Cells["LOGS_END"].Value.ToString()).ToString("yyyyMMddHHmm");//新增开始时间
  420. datetime1 = DateTime.Parse(ugr.Cells["LOGS_END"].Value.ToString()).ToString("yyyyMMddHHmm");
  421. statrindex = ugr.Index;
  422. break;
  423. }
  424. }
  425. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  426. {
  427. if (Convert.ToBoolean(ugr.Cells["CHK"].Text) == true)
  428. {
  429. count += 1;
  430. endindex = ugr.Index;
  431. endtime = DateTime.Parse(ugr.Cells["LOGS_BEG"].Value.ToString()).ToString("yyyyMMddHHmm");//新增结束时间
  432. datetime2 = DateTime.Parse(ugr.Cells["LOGS_BEG"].Value.ToString()).ToString("yyyyMMddHHmm");
  433. }
  434. indexEnd = ugr.Index;
  435. }
  436. //判断选中的两行没有时间差,不许增加
  437. int cnt = ultraGrid1.Rows.Where(a => a.GetValue("CHK") == "True").Count();
  438. if (datetime2 == datetime1 && cnt > 1)
  439. { MessageUtil.ShowTips("选中的两行没有时间差,不允许增加!"); return; }
  440. int index = endindex - statrindex;
  441. if (index == 0)
  442. {
  443. if (statrindex == 0)//获取第一行
  444. {
  445. if (indexEnd == 0)//如果只有一条数据
  446. {
  447. FrmPopupWindow win = new FrmPopupWindow();
  448. win.AutoSize = true;
  449. win.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  450. win.Text = "提示";
  451. win.ShowDialog();
  452. if (win.DialogResult == System.Windows.Forms.DialogResult.OK)
  453. {
  454. if (win.Popup == "之前")
  455. {
  456. pram.Add(DateTime.Parse(row.Cells["LOGS_BEG"].Value.ToString()).ToString("yyyyMMddHHmm"));
  457. pram.Add(DateTime.Parse(row.Cells["LOGS_BEG"].Value.ToString()).ToString("yyyyMMddHHmm"));
  458. }
  459. else if (win.Popup == "之后")
  460. {
  461. pram.Add(DateTime.Parse(row.Cells["LOGS_END"].Value.ToString()).ToString("yyyyMMddHHmm"));
  462. pram.Add(DateTime.Parse(row.Cells["LOGS_END"].Value.ToString()).ToString("yyyyMMddHHmm"));
  463. }
  464. else
  465. {
  466. return;
  467. }
  468. }
  469. }
  470. else
  471. {
  472. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  473. {
  474. if (Convert.ToBoolean(ugr.Cells["CHK"].Text) == true)
  475. {
  476. pram.Add(DateTime.Parse(ugr.Cells["LOGS_BEG"].Value.ToString()).ToString("yyyyMMddHHmm"));
  477. pram.Add(DateTime.Parse(ugr.Cells["LOGS_BEG"].Value.ToString()).ToString("yyyyMMddHHmm"));
  478. }
  479. }
  480. }
  481. }
  482. else if (statrindex == indexEnd)//获取最后一行
  483. {
  484. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  485. {
  486. if (Convert.ToBoolean(ugr.Cells["CHK"].Text) == true)
  487. {
  488. pram.Add(DateTime.Parse(ugr.Cells["LOGS_END"].Value.ToString()).ToString("yyyyMMddHHmm"));
  489. pram.Add(DateTime.Parse(ugr.Cells["LOGS_END"].Value.ToString()).ToString("yyyyMMddHHmm"));
  490. }
  491. }
  492. }
  493. else
  494. {
  495. if (count == 0 || count > 2 || count < 2 && index < 2)
  496. {
  497. MessageUtil.ShowTips("请选择数据且选择相邻两条数据新增!");
  498. return;
  499. }
  500. if (MessageUtil.ShowYesNoAndQuestion("是否新增?") == DialogResult.No)
  501. {
  502. return;
  503. }
  504. pram.Add(statime);
  505. pram.Add(endtime);
  506. }
  507. }
  508. else
  509. {
  510. if (count == 0 || count > 2 || count < 2 && index < 2)
  511. {
  512. MessageUtil.ShowTips("请选择数据且选择相邻两条数据新增!");
  513. return;
  514. }
  515. if (MessageUtil.ShowYesNoAndQuestion("是否新增?") == DialogResult.No)
  516. {
  517. return;
  518. }
  519. pram.Add(statime);
  520. pram.Add(endtime);
  521. }
  522. }
  523. catch (Exception ex)
  524. {
  525. MessageUtil.ShowTips("开始时间或结束时间不能为空!");
  526. return;
  527. }
  528. }
  529. else//Grid 为空
  530. {
  531. if (MessageUtil.ShowYesNoAndQuestion("当前班次无数据是否新增?") == DialogResult.No)
  532. {
  533. return;
  534. }
  535. pram.Add(cmbDate.Value.ToString("yyyyMMdd") + DateTime.Now.ToString("HHmm"));
  536. pram.Add(cmbDate.Value.ToString("yyyyMMdd") + DateTime.Now.ToString("HHmm"));
  537. //pram.Add(DateTime.Now.ToString("yyyyMMddHHmm"));
  538. //pram.Add(DateTime.Now.ToString("yyyyMMddHHmm"));
  539. }
  540. pram.Add(this.UserInfo.GetUserName());
  541. pram.Add(this.UserInfo.GetUserOrder());
  542. pram.Add(this.UserInfo.GetUserGroup());
  543. pram.Add(plineCode);
  544. CoreClientParam ccp = new CoreClientParam();
  545. ccp.ServerName = "com.steering.mes.mcp.Mch.FrmMchControlLog";
  546. ccp.MethodName = "addMilControlLog";
  547. ccp.ServerParams = new object[] { pram };
  548. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  549. if (ccp.ReturnCode != -1)
  550. {
  551. MessageUtil.ShowTips(ccp.ReturnInfo);
  552. if (ccp.ReturnInfo.Equals("新增成功!"))
  553. {
  554. doQuery();
  555. doAnalysis();
  556. }
  557. }
  558. }
  559. /// <summary>
  560. /// 修改
  561. /// </summary>
  562. private void doUpdate()
  563. {
  564. ultraGrid1.UpdateData();
  565. UltraGridRow row = ultraGrid1.ActiveRow;
  566. if (row == null) { MessageUtil.ShowTips("无数据!"); return; }
  567. int count = 0;
  568. int statrindex = 0;//选择行记录
  569. int endindex = 0;//最后一行记录
  570. ArrayList list = new ArrayList();
  571. try
  572. {
  573. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  574. {
  575. if (Convert.ToBoolean(ugr.Cells["CHK"].Text) == true)
  576. {
  577. count += 1;
  578. if (ugr.Cells["CONFIRM_FLAG"].Text.Equals("已确认"))
  579. {
  580. MessageUtil.ShowTips("已确认数据,不允许此操作!");
  581. return;
  582. }
  583. if (ugr.Cells["PRO_TYPE"].Text.Equals("正常") && ugr.Cells["QUALIFIED_NUM"].Text.Equals("0") && ugr.Cells["SCRAP_NUM"].Text.Equals("0"))
  584. {
  585. MessageUtil.ShowTips("此炉的合格支数和废品支数都为0,请联系镦拔扩对应产线处理!");
  586. return;
  587. }
  588. string STOP_TYPE = "";
  589. if (!ugr.Cells["STOP_TYPE"].Text.ToString().Equals(""))
  590. {
  591. STOP_TYPE = ugr.Cells["STOP_TYPE"].Value.ToString();
  592. }
  593. string STOP_REASON = "";
  594. if (!ugr.Cells["STOP_REASON"].Text.ToString().Equals(""))
  595. {
  596. STOP_REASON = basecodeReason;// ugr.Cells["STOP_REASON"].Value.ToString();
  597. }
  598. string STOP_SMALL = "";
  599. if (!ugr.Cells["STOP_SMALL"].Text.ToString().Equals(""))
  600. {
  601. STOP_SMALL = basecodeSamll;// ugr.Cells["STOP_SMALL"].Value.ToString();
  602. }
  603. string bc = "";
  604. if (!ugr.Cells["PRO_BC"].Text.ToString().Equals(""))
  605. {
  606. bc = ugr.Cells["PRO_BC"].Value.ToString();
  607. }
  608. string bz = "";
  609. if (!ugr.Cells["PRO_BZ"].Text.ToString().Equals(""))
  610. {
  611. bz = ugr.Cells["PRO_BZ"].Value.ToString();
  612. }
  613. if (Convert.ToDateTime(ugr.Cells["LOGS_BEG"].Value.ToString()) > Convert.ToDateTime(ugr.Cells["LOGS_END"].Value.ToString()))
  614. {
  615. MessageUtil.ShowTips("开始时间不能大于等于结束时间!");
  616. return;
  617. }
  618. ArrayList pram = new ArrayList();
  619. pram.Add(DateTime.Parse(ugr.Cells["LOGS_BEG"].Value.ToString()).ToString("yyyy-MM-dd HH:mm"));
  620. pram.Add(DateTime.Parse(ugr.Cells["LOGS_END"].Value.ToString()).ToString("yyyy-MM-dd HH:mm"));
  621. pram.Add(plineCode);
  622. pram.Add(STOP_TYPE);
  623. pram.Add(STOP_REASON);
  624. pram.Add(ugr.Cells["QUALIFIED_NUM"].Value.ToString());
  625. pram.Add(ugr.Cells["QUALIFIED_WT"].Value.ToString());
  626. pram.Add(ugr.Cells["SCRAP_NUM"].Value.ToString());
  627. pram.Add(ugr.Cells["SCRAP_WT"].Value.ToString());
  628. pram.Add(bc);
  629. pram.Add(bz);
  630. pram.Add(ugr.Cells["CONTROL_ID"].Value.ToString());
  631. pram.Add(STOP_SMALL);
  632. pram.Add(ugr.Cells["MEMO"].Value.ToString());
  633. list.Add(pram);
  634. }
  635. }
  636. int index = endindex - statrindex;
  637. if (count == 0 || count > 1)
  638. {
  639. MessageUtil.ShowTips("请选择一条需要修改的数据!");
  640. return;
  641. }
  642. if (MessageUtil.ShowYesNoAndQuestion("是否修改?") == DialogResult.No)
  643. {
  644. return;
  645. }
  646. CoreClientParam ccp = new CoreClientParam();
  647. ccp.ServerName = "com.steering.mes.mcp.Mch.FrmMchControlLog";
  648. ccp.MethodName = "updateMilControlLog";
  649. ccp.ServerParams = new object[] { list };
  650. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  651. if (ccp.ReturnCode != -1)
  652. {
  653. MessageUtil.ShowTips(ccp.ReturnInfo);
  654. if (ccp.ReturnInfo.Equals("修改成功!"))
  655. {
  656. doQuery();
  657. doAnalysis();
  658. }
  659. }
  660. }
  661. catch (Exception ex)
  662. {
  663. MessageUtil.ShowTips("开始时间或结束时间不能为空!");
  664. }
  665. }
  666. /// <summary>
  667. /// 删除
  668. /// </summary>
  669. private void doDelete()
  670. {
  671. ultraGrid1.UpdateData();
  672. UltraGridRow row = ultraGrid1.ActiveRow;
  673. if (row == null) { MessageUtil.ShowTips("无数据!"); return; }
  674. int count = 0;
  675. ArrayList list = new ArrayList();
  676. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  677. {
  678. if (Convert.ToBoolean(ugr.Cells["CHK"].Text) == true)
  679. {
  680. count += 1;
  681. if (ugr.Cells["PRO_TYPE"].Text.Equals("正常"))
  682. {
  683. MessageUtil.ShowTips("请选择停机数据!");
  684. return;
  685. }
  686. if (ugr.Cells["CONFIRM_FLAG"].Text.Equals("已确认"))
  687. {
  688. MessageUtil.ShowTips("已确认数据,不允许此操作!");
  689. return;
  690. }
  691. ArrayList pram = new ArrayList();
  692. pram.Add(ugr.Cells["CONTROL_ID"].Value.ToString());
  693. list.Add(pram);
  694. }
  695. }
  696. if (count == 0)
  697. {
  698. MessageUtil.ShowTips("请选择要删除的停机数据!");
  699. return;
  700. }
  701. if (MessageUtil.ShowYesNoAndQuestion("是否删除?") == DialogResult.No)
  702. {
  703. return;
  704. }
  705. CoreClientParam ccp = new CoreClientParam();
  706. ccp.ServerName = "com.steering.mes.mcp.Mch.FrmMchControlLog";
  707. ccp.MethodName = "deleteMilControlLog";
  708. ccp.ServerParams = new object[] { list };
  709. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  710. if (ccp.ReturnCode != -1)
  711. {
  712. MessageUtil.ShowTips(ccp.ReturnInfo);
  713. if (ccp.ReturnInfo.Equals("删除成功!"))
  714. {
  715. doQuery();
  716. doAnalysis();
  717. }
  718. }
  719. }
  720. /// <summary>
  721. ///分析
  722. /// </summary>
  723. private void doAnalysis()
  724. {
  725. flag = 1;
  726. flag1 = 0;
  727. int i = 0;
  728. try
  729. {
  730. //当班数据分析
  731. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  732. {
  733. if (!ugr.Cells["LOGS_END"].Value.Equals(""))
  734. { i += 1; }
  735. if (!ugr.Cells["LOGS_END"].Value.Equals(""))
  736. {
  737. if (Convert.ToDateTime(ugr.Cells["LOGS_BEG"].Value.ToString()) > Convert.ToDateTime(ugr.Cells["LOGS_END"].Value.ToString()))
  738. {
  739. ugr.RowSelectorAppearance.BackColor = Color.Red;
  740. //ugr.Cells["LOGS_BEG"].Appearance.BackHatchStyle = BackHatchStyle.None;
  741. //ugr.Cells["LOGS_END"].Appearance.BackColor = Color.Red;
  742. //ugr.Cells["LOGS_END"].Appearance.BackHatchStyle = BackHatchStyle.None;
  743. flag = 2;//分析时间错误
  744. }
  745. }
  746. }
  747. for (int j = 0; j < i; j++)
  748. {
  749. string loagEnd = ultraGrid1.Rows[j].Cells["LOGS_END"].Text.ToString();
  750. string loagBeg = "";
  751. if (j + 1 < i)
  752. {
  753. loagBeg = ultraGrid1.Rows[j + 1].Cells["LOGS_BEG"].Text.ToString();
  754. if (DateTime.Compare(Convert.ToDateTime(loagBeg), Convert.ToDateTime(loagEnd)) > 0)
  755. {
  756. if (TubeRoll.JudgeTime(Convert.ToDateTime(loagBeg), Convert.ToDateTime(loagEnd)) > 0)
  757. {
  758. ultraGrid1.Rows[j + 1].Cells["STOP_TYPE"].Appearance.BackColor = Color.Pink;
  759. ultraGrid1.Rows[j + 1].Cells["STOP_TYPE"].Appearance.BackHatchStyle = BackHatchStyle.None;
  760. ultraGrid1.Rows[j].Cells["STOP_TYPE"].Appearance.BackColor = Color.Pink;
  761. ultraGrid1.Rows[j].Cells["STOP_TYPE"].Appearance.BackHatchStyle = BackHatchStyle.None;
  762. flag1 = 1;//时间差
  763. }
  764. //else if (TubeRoll.JudgeTime(Convert.ToDateTime(loagBeg), Convert.ToDateTime(loagEnd)) <= 5 && TubeRoll.JudgeTime(Convert.ToDateTime(loagBeg), Convert.ToDateTime(loagEnd))>=3)
  765. //{
  766. // ultraGrid1.Rows[j + 1].Cells["STOP_TYPE"].Appearance.BackColor = Color.LightGray;
  767. // ultraGrid1.Rows[j + 1].Cells["STOP_TYPE"].Appearance.BackHatchStyle = BackHatchStyle.None;
  768. // ultraGrid1.Rows[j].Cells["STOP_TYPE"].Appearance.BackColor = Color.LightGray;
  769. // ultraGrid1.Rows[j].Cells["STOP_TYPE"].Appearance.BackHatchStyle = BackHatchStyle.None;
  770. // flag = 2;
  771. //}
  772. }
  773. else if (DateTime.Compare(Convert.ToDateTime(loagBeg), Convert.ToDateTime(loagEnd)) < 0)
  774. {
  775. ultraGrid1.Rows[j].RowSelectorAppearance.BackColor = Color.Red;
  776. //ultraGrid1.Rows[j + 1].RowSelectorAppearance.BackColor = Color.Red;
  777. //ultraGrid1.Rows[j + 1].Cells["LOGS_BEG"].Appearance.BackColor = Color.Orange;
  778. //ultraGrid1.Rows[j + 1].Cells["LOGS_BEG"].Appearance.BackHatchStyle = BackHatchStyle.None;
  779. //ultraGrid1.Rows[j].Cells["LOGS_BEG"].Appearance.BackColor = Color.Orange;
  780. //ultraGrid1.Rows[j].Cells["LOGS_BEG"].Appearance.BackHatchStyle = BackHatchStyle.None;
  781. flag = 2;
  782. }
  783. TimeSpan timeSpan = DateTime.Parse(ultraGrid1.Rows[j + 1].Cells["LOGS_BEG"].Value.ToString()) -
  784. DateTime.Parse(ultraGrid1.Rows[j].Cells["LOGS_END"].Value.ToString());
  785. ultraGrid1.Rows[j + 1].Cells["TimeDiff"].Value = timeSpan.TotalMinutes.ToString();
  786. }
  787. }
  788. //上班数据分析
  789. i = 0;
  790. foreach (UltraGridRow ugr in ultraGrid2.Rows)
  791. {
  792. if (!ugr.Cells["LOGS_BEG"].Value.Equals(""))
  793. { i += 1; }
  794. if (!ugr.Cells["LOGS_END"].Value.Equals(""))
  795. {
  796. //i += 1;
  797. if (Convert.ToDateTime(ugr.Cells["LOGS_BEG"].Value.ToString()) > Convert.ToDateTime(ugr.Cells["LOGS_END"].Value.ToString()))
  798. {
  799. ugr.RowSelectorAppearance.BackColor = Color.Red;
  800. flag = 2;//分析时间错误
  801. }
  802. }
  803. }
  804. for (int j = 0; j < i; j++)
  805. {
  806. string loagEnd = ultraGrid2.Rows[j].Cells["LOGS_END"].Text.ToString();
  807. string loagBeg = "";
  808. if (j + 1 < i)
  809. {
  810. loagBeg = ultraGrid2.Rows[j + 1].Cells["LOGS_BEG"].Text.ToString();
  811. if (DateTime.Compare(Convert.ToDateTime(loagBeg), Convert.ToDateTime(loagEnd)) > 0)
  812. {
  813. if (TubeRoll.JudgeTime(Convert.ToDateTime(loagBeg), Convert.ToDateTime(loagEnd)) > 0)
  814. {
  815. ultraGrid2.Rows[j + 1].Cells["STOP_TYPE"].Appearance.BackColor = Color.Pink;
  816. ultraGrid2.Rows[j + 1].Cells["STOP_TYPE"].Appearance.BackHatchStyle = BackHatchStyle.None;
  817. ultraGrid2.Rows[j].Cells["STOP_TYPE"].Appearance.BackColor = Color.Pink;
  818. ultraGrid2.Rows[j].Cells["STOP_TYPE"].Appearance.BackHatchStyle = BackHatchStyle.None;
  819. flag1 = 1;//时间差
  820. }
  821. }
  822. else if (DateTime.Compare(Convert.ToDateTime(loagBeg), Convert.ToDateTime(loagEnd)) < 0)
  823. {
  824. ultraGrid2.Rows[j].RowSelectorAppearance.BackColor = Color.Red;
  825. flag = 2;
  826. }
  827. TimeSpan timeSpan = DateTime.Parse(ultraGrid2.Rows[j + 1].Cells["LOGS_BEG"].Value.ToString()) -
  828. DateTime.Parse(ultraGrid2.Rows[j].Cells["LOGS_END"].Value.ToString());
  829. ultraGrid2.Rows[j + 1].Cells["TimeDiff"].Value = timeSpan.TotalMinutes.ToString();
  830. }
  831. }
  832. if (ultraGrid1.Rows.Count > 0 && ultraGrid2.Rows.Count > 0)
  833. {
  834. string LOGS_BEG = ultraGrid1.Rows[0].Cells["LOGS_BEG"].Value.ToString();
  835. string LOGS_END = ultraGrid2.Rows[i - 1].Cells["LOGS_END"].Value.ToString();
  836. if (DateTime.Compare(Convert.ToDateTime(LOGS_BEG), Convert.ToDateTime(LOGS_END)) > 0)
  837. {
  838. if (TubeRoll.JudgeTime(Convert.ToDateTime(LOGS_BEG), Convert.ToDateTime(LOGS_END)) > 0)
  839. {
  840. flag1 = 1;//时间差
  841. }
  842. }
  843. else if (DateTime.Compare(Convert.ToDateTime(LOGS_BEG), Convert.ToDateTime(LOGS_END)) < 0)
  844. {
  845. flag = 2;
  846. }
  847. TimeSpan timeSpan = DateTime.Parse(LOGS_BEG) - DateTime.Parse(LOGS_END);
  848. ultraGrid1.Rows[0].Cells["TimeDiff"].Value = timeSpan.TotalMinutes.ToString();
  849. }
  850. }
  851. catch (Exception ex)
  852. {
  853. // MessageUtil.ShowTips(ex.Message);
  854. MessageUtil.ShowTips("开始时间或结束时间不能为空!");
  855. }
  856. }
  857. private string DateDiff(DateTime DateTime1, DateTime DateTime2)
  858. {
  859. string dateDiff = null;
  860. try
  861. {
  862. TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
  863. TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
  864. TimeSpan ts = ts1.Subtract(ts2).Duration();
  865. dateDiff = ts.Minutes.ToString();
  866. }
  867. catch
  868. {
  869. }
  870. return dateDiff;
  871. }
  872. /// <summary>
  873. ///确认
  874. /// </summary>
  875. private void doConfirm()
  876. {
  877. UltraGridRow uow = ultraGrid1.ActiveRow;
  878. if (uow == null) { MessageUtil.ShowTips("无数据!"); return; }
  879. ArrayList list = new ArrayList();
  880. string date = DateTime.Now.ToString();
  881. int count = 0;
  882. if (flag == 0) { MessageUtil.ShowTips("未分析,不允许此操作!"); return; }
  883. if (flag1 == 1) { MessageUtil.ShowTips("有停机记录未新增,不允许此操作!"); return; }
  884. if (flag == 2) { MessageUtil.ShowTips("分析时间错误,不允许此操作!"); return; }
  885. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  886. {
  887. if (Convert.ToBoolean(ugr.Cells["CHK"].Text) == true && ugr.Cells["LOGS_BEG"].Value.ToString().Equals(""))
  888. {
  889. MessageUtil.ShowTips("有开始时间为空,不允许此操作!"); return;
  890. }
  891. if (Convert.ToBoolean(ugr.Cells["CHK"].Text) == true && ugr.Cells["LOGS_END"].Value.ToString().Equals(""))
  892. {
  893. MessageUtil.ShowTips("有结束时间为空,不允许此操作!"); return;
  894. }
  895. }
  896. ultraGrid1.UpdateData();
  897. int seqmin1 = ultraGrid1.Rows.Where(a => a.GetValue("CHK") == "True").Select(a => a.Index).Count();
  898. if (seqmin1 < 1)
  899. {
  900. MessageUtil.ShowTips("没有选中要确认的数据!"); return;
  901. }
  902. //if (seqmin1 > 0 && ultraGrid1.Rows.Count > 0)
  903. //{
  904. // int seqmin = ultraGrid1.Rows.Where(a => a.GetValue("CHK") == "True").Select(a => a.Index).Min();
  905. // for (int i = 0; i < seqmin; i++)
  906. // {
  907. // if (ultraGrid1.Rows[i].Cells["CONFIRM_FLAG"].Value.ToString().Trim().Equals("未确认"))
  908. // {
  909. // MessageBox.Show("前面有未确认的数据,请先确认!");
  910. // return;
  911. // }
  912. // }
  913. //}
  914. //if (flag2 == 1) { MessageUtil.ShowTips("有开始时间为空,不允许此操作!"); return; }
  915. //if (flag2 == 2) { MessageUtil.ShowTips("有结束时间为空,不允许此操作!"); return; }
  916. //判断上班是否有未确认的数据
  917. if (ultraGrid2.Rows.Count() < 1)
  918. {
  919. MessageBox.Show("上班有停机记录未新增!");
  920. return;
  921. }
  922. foreach (UltraGridRow row in ultraGrid2.Rows)
  923. {
  924. if (row.Cells["CONFIRM_FLAG"].Value.ToString().Trim().Equals("未确认"))
  925. {
  926. MessageBox.Show("上班有未确认的数据,请先确认!");
  927. return;
  928. }
  929. }
  930. string startdate = "";
  931. string endDate = "";
  932. if (chkDate.Checked)
  933. {
  934. startdate = cmbDate.Value.ToString("yyyyMMdd1800");
  935. }
  936. else
  937. {
  938. MessageUtil.ShowTips("请选择日期!");
  939. return;
  940. //startdate = cmbDate.Value.ToString("199901012100");
  941. //endDate = cmbEndDate.Value.ToString("203901012100");
  942. }
  943. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  944. {
  945. if (Convert.ToBoolean(ugr.Cells["CHK"].Text) == true)
  946. {
  947. if (ugr.Cells["PRO_TYPE"].Text.ToString().Trim().Equals("停机"))
  948. {
  949. if (ugr.Cells["STOP_TYPE"].Value.Equals("") || ugr.Cells["STOP_SMALL"].Value.Equals("") || ugr.Cells["STOP_REASON"].Value.Equals(""))
  950. {
  951. MessageUtil.ShowTips("停机大类,停机小类,停机原因不能为空!");
  952. return;
  953. }
  954. }
  955. string shift = ugr.Cells["PRO_BC"].Value.ToString();
  956. string group = ugr.Cells["PRO_BZ"].Value.ToString();
  957. if (shift != this.UserInfo.GetUserOrder() || group != this.UserInfo.GetUserGroup())
  958. {
  959. MessageUtil.ShowTips("您登录的班次班组与要确认的数据班次班组不符,请重新确认!");
  960. return;
  961. }
  962. count += 1;
  963. ArrayList list1 = new ArrayList();
  964. list1.Add(ugr.Cells["CONTROL_ID"].Text.ToString());
  965. list1.Add(this.UserInfo.GetUserName());
  966. list1.Add(date);
  967. list1.Add(this.UserInfo.GetUserOrder());
  968. list1.Add(this.UserInfo.GetUserGroup());
  969. list1.Add(plineCode);
  970. list1.Add(DateTime.Parse(ugr.Cells["LOGS_BEG"].Value.ToString()).ToString("yyyyMMddHHmm"));
  971. list1.Add(startdate);
  972. list1.Add(endDate);
  973. list.Add(list1);
  974. }
  975. }
  976. if (count == 0)
  977. {
  978. MessageUtil.ShowTips("请选中要确认的数据!");
  979. return;
  980. }
  981. string intCount = "0";//是否选择确认
  982. if (MessageUtil.ShowYesNoAndQuestion("是否只确认选中行数据?") == DialogResult.No)
  983. {
  984. intCount = "0";
  985. if (count == 2)
  986. {
  987. MessageUtil.ShowTips("请选择一条数据!");
  988. return;
  989. }
  990. }
  991. else
  992. {
  993. intCount = "1";
  994. }
  995. //if (MessageUtil.ShowYesNoAndQuestion("是否确认?") == DialogResult.No)
  996. //{
  997. // return;
  998. //}
  999. UltraGridRow ugr1 = ultraGrid1.ActiveRow;
  1000. if (ugr1 != null)
  1001. {
  1002. string logbeg = ugr1.Cells["LOGS_BEG"].Value.ToString();
  1003. }
  1004. CoreClientParam ccp = new CoreClientParam();
  1005. ccp.ServerName = "com.steering.mes.mcp.Mch.FrmMchControlLog";
  1006. ccp.MethodName = "confirmMilControlLog";
  1007. ccp.ServerParams = new object[] { list, intCount };
  1008. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1009. if (ccp.ReturnCode != -1)
  1010. {
  1011. MessageUtil.ShowTips(ccp.ReturnInfo);
  1012. if (ccp.ReturnInfo.Equals("确认成功!"))
  1013. {
  1014. doQuery();
  1015. doAnalysis();
  1016. }
  1017. }
  1018. }
  1019. /// <summary>
  1020. ///取消确认
  1021. /// </summary>
  1022. private void UpConfirm()
  1023. {
  1024. UltraGridRow uow = ultraGrid1.ActiveRow;
  1025. if (uow == null) { MessageUtil.ShowTips("无数据!"); return; }
  1026. ultraGrid1.UpdateData();
  1027. int seqmax1 = ultraGrid1.Rows.Where(a => a.GetValue("CHK") == "True").Select(a => a.Index).Count();
  1028. if (seqmax1 < 1)
  1029. {
  1030. MessageUtil.ShowTips("没有选中要确认的数据!"); return;
  1031. }
  1032. if (seqmax1 > 0 && ultraGrid1.Rows.Count() > 0)
  1033. {
  1034. int seqmax = ultraGrid1.Rows.Where(a => a.GetValue("CHK") == "True").Select(a => a.Index).Max();
  1035. for (int i = seqmax + 1; i < ultraGrid1.Rows.Count(); i++)
  1036. {
  1037. if (ultraGrid1.Rows[i].Cells["CONFIRM_FLAG"].Value.ToString().Trim().Equals("已确认"))
  1038. {
  1039. MessageBox.Show("后面有已确认的数据,请先取消确认!");
  1040. return;
  1041. }
  1042. }
  1043. }
  1044. ArrayList list = new ArrayList();
  1045. string date = DateTime.Now.ToString();
  1046. int count = 0;
  1047. string startdate = "";
  1048. string endDate = "";
  1049. if (chkDate.Checked)
  1050. {
  1051. startdate = cmbDate.Value.ToString("yyyyMMdd1800");
  1052. }
  1053. else
  1054. {
  1055. MessageUtil.ShowTips("请选择日期!");
  1056. return;
  1057. //startdate = cmbDate.Value.ToString("199901012100");
  1058. //endDate = cmbEndDate.Value.ToString("203901012100");
  1059. }
  1060. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  1061. {
  1062. if (Convert.ToBoolean(ugr.Cells["CHK"].Text) == true)
  1063. {
  1064. count += 1;
  1065. ArrayList list1 = new ArrayList();
  1066. list1.Add(ugr.Cells["CONTROL_ID"].Text.ToString());
  1067. list1.Add(this.UserInfo.GetUserOrder());
  1068. list1.Add(this.UserInfo.GetUserGroup());
  1069. list1.Add(plineCode);
  1070. list1.Add(DateTime.Parse(ugr.Cells["LOGS_BEG"].Value.ToString()).ToString("yyyyMMddHHmm"));
  1071. list1.Add(startdate);
  1072. list1.Add(endDate);
  1073. list.Add(list1);
  1074. }
  1075. }
  1076. if (count == 0) { MessageUtil.ShowTips("请选中要取消确认的数据!"); return; }
  1077. string intCount = "0";//是否选择取消确认
  1078. if (MessageUtil.ShowYesNoAndQuestion("是否只取消确认选中行数据?") == DialogResult.No)
  1079. {
  1080. intCount = "0";
  1081. if (count == 2)
  1082. {
  1083. MessageUtil.ShowTips("请选择一条数据!");
  1084. return;
  1085. }
  1086. }
  1087. else
  1088. {
  1089. intCount = "1";
  1090. }
  1091. //if (MessageUtil.ShowYesNoAndQuestion("是否取消确认?") == DialogResult.No)
  1092. //{
  1093. // return;
  1094. //}
  1095. CoreClientParam ccp = new CoreClientParam();
  1096. ccp.ServerName = "com.steering.mes.mcp.Mch.FrmMchControlLog";
  1097. ccp.MethodName = "upConfirmMilControlLog";
  1098. ccp.ServerParams = new object[] { list, intCount };
  1099. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1100. if (ccp.ReturnCode != -1)
  1101. {
  1102. MessageUtil.ShowTips(ccp.ReturnInfo);
  1103. if (ccp.ReturnInfo.Equals("取消确认成功!"))
  1104. {
  1105. doQuery();
  1106. doAnalysis();
  1107. }
  1108. }
  1109. }
  1110. private void chkDate_CheckedChanged(object sender, EventArgs e)
  1111. {
  1112. if (chkDate.Checked) { cmbDate.Enabled = true; } else { cmbDate.Enabled = false; }
  1113. }
  1114. /// <summary>
  1115. /// Grid字段修改触发事件
  1116. /// </summary>
  1117. /// <param name="sender"></param>
  1118. /// <param name="e"></param>
  1119. private void ultraGrid1_CellChange(object sender, CellEventArgs e)
  1120. {
  1121. UltraGridRow row = ultraGrid1.ActiveRow;
  1122. try
  1123. {
  1124. ultraGrid1.UpdateData();
  1125. if (e.Cell.Column.Key.Equals("QUALIFIED_NUM"))
  1126. {
  1127. if (e.Cell.Row.Cells["QUALIFIED_NUM"].Value == null)
  1128. {
  1129. e.Cell.Row.Cells["QUALIFIED_NUM"].Value = "0";
  1130. }
  1131. else
  1132. {
  1133. string actCount = e.Cell.Row.Cells["QUALIFIED_NUM"].Value.ToString();
  1134. if (!StringUtil.IsInt(actCount) || actCount == "0")//actCount == "" || int.Parse(actCount)==0
  1135. {
  1136. e.Cell.Row.Cells["QUALIFIED_NUM"].Value = "0";
  1137. }
  1138. }
  1139. }
  1140. if (e.Cell.Column.Key.Equals("QUALIFIED_WT"))
  1141. {
  1142. if (e.Cell.Row.Cells["QUALIFIED_WT"].Value == null)
  1143. {
  1144. e.Cell.Row.Cells["QUALIFIED_WT"].Value = "0";
  1145. }
  1146. else
  1147. {
  1148. string actWt = e.Cell.Row.Cells["QUALIFIED_WT"].Value.ToString();
  1149. if (!StringUtil.IsDouble(actWt) || actWt == "0")//actCount == "" || int.Parse(actCount)==0
  1150. {
  1151. e.Cell.Row.Cells["QUALIFIED_WT"].Value = "0";
  1152. }
  1153. }
  1154. }
  1155. if (e.Cell.Column.Key.Equals("SCRAP_NUM"))
  1156. {
  1157. if (e.Cell.Row.Cells["SCRAP_NUM"].Value == null)
  1158. {
  1159. e.Cell.Row.Cells["SCRAP_NUM"].Value = "0";
  1160. }
  1161. else
  1162. {
  1163. string scrpNum = e.Cell.Row.Cells["SCRAP_NUM"].Value.ToString();
  1164. if (!StringUtil.IsInt(scrpNum) || scrpNum == "0")//actCount == "" || int.Parse(actCount)==0
  1165. {
  1166. e.Cell.Row.Cells["SCRAP_NUM"].Value = "0";
  1167. }
  1168. }
  1169. }
  1170. if (e.Cell.Column.Key.Equals("SCRAP_WT"))
  1171. {
  1172. if (e.Cell.Row.Cells["SCRAP_WT"].Value == null)
  1173. {
  1174. e.Cell.Row.Cells["SCRAP_WT"].Value = "0";
  1175. }
  1176. else
  1177. {
  1178. string scrpwt = e.Cell.Row.Cells["SCRAP_WT"].Value.ToString();
  1179. if (!StringUtil.IsDouble(scrpwt) || scrpwt == "0")//actCount == "" || int.Parse(actCount)==0
  1180. {
  1181. e.Cell.Row.Cells["SCRAP_WT"].Value = "0";
  1182. }
  1183. }
  1184. }
  1185. if (e.Cell.Column.Key.Equals("STOP_TYPE"))
  1186. {
  1187. e.Cell.Row.Cells["STOP_SMALL"].Value = "";
  1188. e.Cell.Row.Cells["STOP_REASON"].Value = "";
  1189. }
  1190. if (e.Cell.Column.Key.Equals("STOP_SMALL"))
  1191. {
  1192. e.Cell.Row.Cells["STOP_REASON"].Value = "";
  1193. }
  1194. }
  1195. catch (Exception ex)
  1196. {
  1197. return;
  1198. }
  1199. }
  1200. private void ultraGrid1_CellDataError(object sender, CellDataErrorEventArgs e)
  1201. {
  1202. e.RaiseErrorEvent = false;
  1203. MessageUtil.ShowTips("您输入的时间格式不正确!");
  1204. }
  1205. /// <summary>
  1206. /// 停机原因
  1207. /// </summary>
  1208. /// <param name="sender"></param>
  1209. /// <param name="e"></param>
  1210. private void cmbSTOP_REASON_EditorButtonClick(object sender, EditorButtonEventArgs e)
  1211. {
  1212. UltraGridRow row = ultraGrid1.ActiveRow;
  1213. if (row == null) return;
  1214. string stopSallm = basecodeSamll;
  1215. if (!row.Cells["STOP_SMALL"].Text.Equals("")) { stopSallm = row.Cells["STOP_SMALL"].Text; }
  1216. FrmStopSamll fpdc = new FrmStopSamll(basecodeSamll, ob);
  1217. fpdc.AutoSize = true;
  1218. fpdc.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  1219. fpdc.Text = "停机原因";
  1220. fpdc.ShowDialog();
  1221. if (fpdc.DialogResult == System.Windows.Forms.DialogResult.OK)
  1222. {
  1223. //获取弹出窗体的属性值
  1224. row.Cells["STOP_REASON"].Value = fpdc.Basename;
  1225. //cmbSTOP_REASON.Value = fpdc.Basename;
  1226. basecodeReason = fpdc.Basecode;
  1227. }
  1228. }
  1229. /// <summary>
  1230. /// 停机小类
  1231. /// </summary>
  1232. /// <param name="sender"></param>
  1233. /// <param name="e"></param>
  1234. private void cmbSTOP_SMALL_EditorButtonClick(object sender, EditorButtonEventArgs e)
  1235. {
  1236. UltraGridRow row = ultraGrid1.ActiveRow;
  1237. string STOP_TYPE = "";
  1238. if (!row.Cells["STOP_TYPE"].Text.Trim().Equals(""))
  1239. {
  1240. STOP_TYPE = row.Cells["STOP_TYPE"].Value.ToString();
  1241. }
  1242. FrmStopSamll fpdc = new FrmStopSamll(STOP_TYPE, ob);
  1243. fpdc.AutoSize = true;
  1244. fpdc.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  1245. fpdc.Text = "停机小类";
  1246. fpdc.ShowDialog();
  1247. if (fpdc.DialogResult == System.Windows.Forms.DialogResult.OK)
  1248. {
  1249. //获取弹出窗体的属性值
  1250. row.Cells["STOP_SMALL"].Value = fpdc.Basename;
  1251. //cmbSTOP_SMALL.Value = fpdc.Basename;
  1252. basecodeSamll = fpdc.Basecode;
  1253. }
  1254. }
  1255. /// <summary>
  1256. /// 班次中文
  1257. /// </summary>
  1258. /// <param name="dtShift"></param>
  1259. /// <returns></returns>
  1260. private string changeShift(string dtShift)
  1261. {
  1262. switch (dtShift)
  1263. {
  1264. case "1":
  1265. dtShift = "早班";
  1266. break;
  1267. case "2":
  1268. dtShift = "中班";
  1269. break;
  1270. case "3":
  1271. dtShift = "夜班";
  1272. break;
  1273. }
  1274. return dtShift;
  1275. }
  1276. /// <summary>
  1277. /// 班组中文
  1278. /// </summary>
  1279. /// <param name="dtGroup"></param>
  1280. /// <returns></returns>
  1281. private string changeGroup(string dtGroup)
  1282. {
  1283. switch (dtGroup)
  1284. {
  1285. case "1":
  1286. dtGroup = "甲班";
  1287. break;
  1288. case "2":
  1289. dtGroup = "乙班";
  1290. break;
  1291. case "3":
  1292. dtGroup = "丙班";
  1293. break;
  1294. case "4":
  1295. dtGroup = "丁班";
  1296. break;
  1297. }
  1298. return dtGroup;
  1299. }
  1300. private void comPlineCode_ValueChanged(object sender, EventArgs e)
  1301. {
  1302. plineCode = comPlineCode.SelectedItem.DataValue.ToString();
  1303. doQuery();
  1304. }
  1305. }
  1306. }