FrmVrpControlLog.cs 61 KB

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