FrmRollTubeLibraryRcl.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  1. using Core.Mes.Client.Comm.Control;
  2. using Core.Mes.Client.Comm.Server;
  3. using Core.Mes.Client.Comm.Tool;
  4. using Core.StlMes.Client.PlnSaleOrd.BaseMethod;
  5. using Core.StlMes.Client.PlnSaleOrd.工序排产;
  6. using Core.StlMes.Client.PlnSaleOrd.工序排产.entity;
  7. using Core.StlMes.Client.PlnSaleOrd.炼钢计划;
  8. using Core.StlMes.Client.PlnSaleOrd.炉计划.Entity;
  9. using CoreFS.CA06;
  10. using Infragistics.Win;
  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.Linq;
  19. using System.Text;
  20. using System.Windows.Forms;
  21. namespace Core.StlMes.Client.PlnSaleOrd.炉计划
  22. {
  23. public partial class FrmRollTubeLibraryRcl : FrmBase
  24. {
  25. private string[] plineCode = null;//获取产线代码
  26. DataTable dtPlinGroup = null;
  27. private string _ProPlanId = "";
  28. private string _GxPlanNo = "";
  29. public FrmRollTubeLibraryRcl()
  30. {
  31. InitializeComponent();
  32. this.IsLoadUserView = true;
  33. }
  34. private void FrmRollTubeLibraryRcl_Load(object sender, EventArgs e)
  35. {
  36. EntityHelper.ShowGridCaption<MatBcTrackEntity>(entityGrid1.DisplayLayout.Bands[0]);
  37. EntityHelper.ShowGridCaption<PlnOrderRclSOEntity>(ultraGridRcls.DisplayLayout.Bands[0]);
  38. BaseHelper.setUltraGridColumnMaxInput(ultraGridRcls, new string[] { "WeigthS", "MinWgt" });
  39. BaseHelper.InitCellPosition(ultraGridRcls, new string[] { "GxPlanNo", "OrderSeq", "DeliveryNo", "Outdiameter", "Wallthick", "LengthmaxIn", "LengthminIn", "LengthIn", "Aimlength", "InWeightS", "InNumS", "WeigthS",
  40. "NumS", "MatchWtIn", "MatchNumIn", "GxProSeq", "PlanUsetime", "BatchedWt", "BatchedNum", "Finishweight", "Finishnum", "AddWtIn", "AddNumIn", "ProcessingCost", "TotalCost"
  41. ,"FinishWgt","UnfinishWgt","UnfinishNum","OutputNum"});
  42. BaseHelper.GridColumnSum(ultraGridRcls, new string[] { "WeigthS" });
  43. BaseHelper.GridColumnCount(ultraGridRcls, new string[] { "NumS" });
  44. BaseHelper.InitCellPositionMiddle(ultraGridRcls, new string[] { "IsRepairPln", "IsPlanOk", "IfMonitorRcl", "Isendgx" });
  45. BaseHelper.setUltraGridColumnColor(ultraGridRcls, new string[] { "CraftFileNo", "CraftFileLv2G" }, Color.GreenYellow);
  46. plineCode = PlanHelper.InitDropPlinePower("F", comPline, this.ValidDataPurviewIds, this.ob);
  47. //PlanHelper.InitRepairType(ultraGridRcls, this);
  48. //PlanHelper.InitEditPline("F", "", ultraGridRcls, this);
  49. //BaseHelper.setOtherColumnReadOnly(ultraGridRcls, new string[] { "CHC", "PlanTimeB", "RepairType", "PlanUsetime", "PlineCode", "Memo" });
  50. BaseHelper.setColumnBackColor(ultraGridRcls, new string[] { "StockNumLiku" });
  51. ultraGridRcls.DisplayLayout.Bands[0].Columns["StockNumLiku"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Button;
  52. EntityHelper.ShowGridCaption<PlnZyRclMEntity>(ultraGridZyD.DisplayLayout.Bands[0]);
  53. EntityHelper.ShowGridCaption<PlnZyRclCEntity>(ultraGridZyD.DisplayLayout.Bands[1]);
  54. BaseHelper.setOtherColumnReadOnly(ultraGridZyD, new string[] { "CHC" });
  55. BaseHelper.setUltraGridColumnMaxInput(ultraGridZyD, new string[] { "PlnInsingleWt", "PlnOutsingleW", "PlnIndoubleWt", "PlnOutdoubleW" });
  56. BaseHelper.setUltraGridColumnBits(ultraGridZyD, new string[] { "PlnInsingleNum", "PlnOutsingleNum", "PlnIndoubleNum", "PlnOutdoubleNum" });
  57. BaseHelper.InitCellPosition(ultraGridZyD, new string[] { "GxProSeq", "GxPlanNo","OrderSeq", "DeliveryNo", "PlnInsingleNum", "PlnInsingleWt", "PlnIndoubleNum","PlnIndoubleWt","PlnOutsingleNum","PlnOutsingleW" ,"PlnOutdoubleNum","PlnOutdoubleW","OutdiameterIn","WallthickIn","LengthIn","LengthmaxIn",
  58. "LengthminIn","OutnumCut","Outdiameter","Wallthick","Lengthmin","Lengthmax","CraftSeq"});
  59. BaseHelper.GridColumnSum(ultraGridZyD, new string[] { "PlnInsingleWt", "PlnOutsingleW", "PlnIndoubleWt", "PlnOutdoubleW" });
  60. BaseHelper.GridColumnCount(ultraGridZyD, new string[] { "PlnInsingleNum", "PlnOutsingleNum", "PlnIndoubleNum", "PlnOutdoubleNum" });
  61. SteelHelper.ForbidSort(ultraGridZyD);
  62. BaseHelper.InitCellPositionC(ultraGridZyD, new string[] { "GxPlanNo", "OutdiameterIn", "WallthickIn", "OutnumCut", "LengthIn", "LengthmaxIn", "LengthminIn", "PlanIndoubleNum", "PlanIndoubleWt", "RealIndoubleNum", "RealIndoubleWt", "RealOutdoubleNum", "RealOutdoubleWt" });
  63. txtPlanTimeE1.Value = DateTime.Now.ToString("yyyy-MM");
  64. }
  65. public override void ToolBar_Click(object sender, string ToolbarKey)
  66. {
  67. base.ToolBar_Click(sender, ToolbarKey);
  68. switch (ToolbarKey)
  69. {
  70. case "Query"://查询
  71. Query();
  72. break;
  73. case "TakeSingle"://删除
  74. DoDelete();
  75. //DoTakeSingle();
  76. break;
  77. case "Close": //关闭
  78. this.Close();
  79. break;
  80. default:
  81. break;
  82. }
  83. }
  84. private void chcPline_CheckedChanged(object sender, EventArgs e)
  85. {
  86. if (chcPline.Checked) { comPline.Enabled = true; } else { comPline.Enabled = false; }
  87. if (chcOrderNo.Checked) { txtOrderNo.Enabled = true; } else { txtOrderNo.Enabled = false; }
  88. if (chcProPlanId.Checked) { txtProPlanId.Enabled = true; } else { txtProPlanId.Enabled = false; }
  89. if (chcPlanTimeE.Checked) { txtPlanTimeE1.Enabled = true; } else { txtPlanTimeE1.Enabled = false; }
  90. if (chcSyte.Checked) { txtSyte.Enabled = true; } else { txtSyte.Enabled = false; }
  91. if (chcJudgeNo.Checked) { txtJudgeNo.Enabled = true; } else { txtJudgeNo.Enabled = false; }
  92. }
  93. //查询
  94. private void Query()
  95. {
  96. if (ultraTabControl1.SelectedTab.Key.Equals("0"))
  97. {
  98. QueryZg();
  99. }
  100. else
  101. {
  102. QueryLk();
  103. }
  104. }
  105. private List<PlnOrderRclSOEntity> listSource = null;
  106. private void QueryZg()
  107. {
  108. //产线
  109. string comPlineCode = "";
  110. if (chcPline.Checked)
  111. {
  112. comPlineCode = comPline.Value == null ? "" : comPline.Value.ToString();
  113. }
  114. WaitingForm2 wf3 = new WaitingForm2("正在刷新,请稍候....");
  115. try
  116. {
  117. this.Cursor = Cursors.WaitCursor;
  118. //执行状态
  119. string[] statusArr = contorlPlanStatus1.statusArr;
  120. //合同号
  121. string orderNo = "";
  122. if (chcOrderNo.Checked) { orderNo = txtOrderNo.Text.Trim(); }
  123. string proPlanId = "";
  124. if (chcProPlanId.Checked) { proPlanId = txtProPlanId.Text.Trim(); }
  125. string planTimeE1 = "";
  126. if (chcPlanTimeE.Checked && txtPlanTimeE1.Value != null)
  127. {
  128. planTimeE1 = DateTime.Parse(txtPlanTimeE1.Value.ToString()).ToString("yyyy-MM");
  129. }
  130. if (plineCode == null)
  131. {
  132. MessageUtil.ShowTips("该用户没有热处理产线查看权限!");
  133. return;
  134. }
  135. listSource = null;
  136. listSource = EntityHelper.GetData<PlnOrderRclSOEntity>
  137. ("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryRcl.queryPlanOrderD", new object[] { plineCode, proPlanId, orderNo, statusArr, planTimeE1, comPlineCode }, this.ob);
  138. plnOrderRclSOEntityBindingSource.DataSource = listSource;
  139. //激活操作行代码
  140. foreach (UltraGridRow ugr in ultraGridRcls.Rows)
  141. {
  142. if (!_ProPlanId.Equals("") && !_GxPlanNo.Equals(""))
  143. {
  144. if (ugr.Cells["ProPlanId"].Text.Trim().Equals(_ProPlanId) && ugr.Cells["GxPlanNo"].Text.Trim().Equals(_GxPlanNo))
  145. {
  146. ugr.Activate();
  147. break;
  148. }
  149. }
  150. }
  151. _ProPlanId = "";
  152. _GxPlanNo = "";
  153. }
  154. finally
  155. {
  156. wf3.Close();
  157. this.Cursor = Cursors.Default;
  158. }
  159. }
  160. /// <summary>
  161. /// 利库日志查询
  162. /// </summary>
  163. private void QueryLk()
  164. {
  165. string styeSj = "";
  166. string judgeNo = "";
  167. if (chcSyte.Checked)
  168. {
  169. if (txtSyte.Text.ToString().Trim().Equals(""))
  170. {
  171. MessageUtil.ShowTips("事件类型不能为空,请选择!");
  172. return;
  173. }else
  174. {
  175. styeSj = txtSyte.Text.ToString();
  176. }
  177. }
  178. if (chcJudgeNo.Checked)
  179. {
  180. if (txtJudgeNo.Text.ToString().Trim().Equals(""))
  181. {
  182. MessageUtil.ShowTips("判定炉号不能为空,请选择!");
  183. return;
  184. }
  185. else
  186. {
  187. judgeNo = txtJudgeNo.Text.ToString();
  188. }
  189. }
  190. List<MatBcTrackEntity> listSource = EntityHelper.GetData<MatBcTrackEntity>
  191. ("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryRcl.queryMatGpTrack", new object[] { styeSj, judgeNo }, this.ob);
  192. matBcTrackEntityBindingSource.DataSource = listSource;
  193. GridHelper.RefreshAndAutoSize(entityGrid1);
  194. }
  195. /// <summary>
  196. /// 删除炉计划
  197. /// </summary>
  198. private void DoDelete()
  199. {
  200. UltraGridRow row = ultraGridZyD.ActiveRow;
  201. if (row == null) { MessageUtil.ShowTips("无炉计划信息!"); return; }
  202. UltraGridRow rowzG = ultraGridRcls.ActiveRow;
  203. _ProPlanId = rowzG.Cells["ProPlanId"].Text.ToString();
  204. _GxPlanNo = rowzG.Cells["GxPlanNo"].Text.ToString();
  205. ArrayList list = new ArrayList();
  206. int countChc = 0;
  207. foreach (UltraGridRow urg in ultraGridZyD.Rows)
  208. {
  209. ArrayList list1 = new ArrayList();
  210. if (Convert.ToBoolean(urg.Cells["CHC"].Text) == true && !urg.HasParent())
  211. {
  212. countChc++;
  213. if (!urg.Cells["Planstatus"].Text.ToString().Trim().Equals("计划"))
  214. {
  215. MessageUtil.ShowTips("您选择炉计划已不是计划状态,不能删除炉计划!");
  216. return;
  217. }
  218. list1.Add(urg.Cells["HeatPlanNo"].Text.ToString().Trim());
  219. list.Add(list1);
  220. }
  221. }
  222. if (countChc == 0)
  223. {
  224. MessageUtil.ShowTips("请勾选炉计划主信息!");
  225. return;
  226. }
  227. if (MessageUtil.ShowYesNoAndQuestion("是否确认删除炉计划?") ==
  228. DialogResult.No)
  229. return;
  230. PlanComm.WaitFromOpen(this.Cursor);
  231. CoreClientParam ccp = new CoreClientParam();
  232. ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryRcl";
  233. ccp.MethodName = "doDelete";
  234. ccp.ServerParams = new object[] { list, this.UserInfo.GetUserName()};
  235. ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  236. PlanComm.WaitFromColse(this.Cursor);
  237. if (ccp.ReturnCode == -1) return;
  238. MessageUtil.ShowTips(ccp.ReturnInfo);
  239. if (ccp.ReturnInfo.Equals("删除成功!"))
  240. {
  241. QueryZg();
  242. //QueryPlnZgM(_ProPlanId, _GxPlanNo);
  243. }
  244. }
  245. /// <summary>
  246. /// 订单信息触发事件
  247. /// </summary>
  248. /// <param name="sender"></param>
  249. /// <param name="e"></param>
  250. private void ultraGridRcls_AfterRowActivate(object sender, EventArgs e)
  251. {
  252. UltraGridRow row = ultraGridRcls.ActiveRow;
  253. if (row == null) return;
  254. QueryPlnZgM(row.Cells["ProPlanId"].Value.ToString(), row.Cells["GxPlanNo"].Value.ToString());
  255. }
  256. /// <summary>
  257. /// 查询轧管订单对应炉计划
  258. /// </summary>
  259. /// <param name="proPlanId"></param>
  260. /// <param name="gxPlanNo"></param>
  261. private void QueryPlnZgM(string proPlanId, string gxPlanNo)
  262. {
  263. List<PlnZyRclMEOntity> listSourceM = EntityHelper.GetData<PlnZyRclMEOntity>
  264. ("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryRcl.queryPlanStoveD", new object[] { proPlanId, gxPlanNo }, ob);
  265. List<PlnZyRclCEntity> listSourceC = EntityHelper.GetData<PlnZyRclCEntity>
  266. ("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryRcl.queryPlanStoveDc", new object[] { proPlanId, gxPlanNo }, ob);
  267. EntityHelper.AddEntityRelation<PlnZyRclMEOntity, PlnZyRclCEntity>(listSourceM, listSourceC, "HeatPlanNo", "HeatPlanNo");
  268. plnZyRclEOntityBindingSource.DataSource = listSourceM;
  269. GridHelper.RefreshAndAutoSize(ultraGridZyD);
  270. }
  271. private void ultraGridRcls_ClickCellButton(object sender, CellEventArgs e)
  272. {
  273. UltraGridRow row = ultraGridRcls.ActiveRow;
  274. if (row == null) return;
  275. if (e.Cell.Column.Key.Equals("StockNumLiku"))
  276. {
  277. string exeStatus = row.GetValue("ExeStatus");
  278. //if (!exeStatus.Equals("计划") && !exeStatus.Equals("生产中"))
  279. //{
  280. // return;
  281. //}
  282. string porderstatus = "";//合同状态
  283. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.doQueryPorderstatus", new object[] { row.Cells["OrdLnDlyPk"].Text.Trim() }, ob);
  284. if (dt.Rows.Count > 0)
  285. {
  286. porderstatus = dt.Rows[0]["PORDERSTATUS"].ToString();
  287. }
  288. if (porderstatus.Equals("4") || porderstatus.Equals("5"))
  289. {
  290. MessageUtil.ShowTips("该合同已生产完成或关闭,请联系销售!");
  291. return;
  292. }
  293. string proPlanId = row.GetValue("ProPlanId");
  294. string gxPlanNo = row.GetValue("GxPlanNo");
  295. FrmPlanMaterialRcl frmPlanMat = new FrmPlanMaterialRcl(proPlanId, gxPlanNo, this.UserInfo.GetUserName(), this.ob, exeStatus);
  296. frmPlanMat.ShowDialog();
  297. bool flag = frmPlanMat.Flag;
  298. if (flag) { Query(); }//如果有修改数据,则刷新页面
  299. }
  300. }
  301. private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
  302. {
  303. if (toolMenu == null) return;
  304. if (e.Tab.TabControl.SelectedTab.Key.Equals("0"))
  305. {
  306. if (toolMenu.Toolbars[0].Tools.Exists("TakeSingle")) { toolMenu.Toolbars[0].Tools["TakeSingle"].InstanceProps.Visible = DefaultableBoolean.True; }
  307. }
  308. else
  309. {
  310. if (toolMenu.Toolbars[0].Tools.Exists("TakeSingle")) { toolMenu.Toolbars[0].Tools["TakeSingle"].InstanceProps.Visible = DefaultableBoolean.False; }
  311. }
  312. }
  313. private void FrmRollTubeLibraryRcl_Shown(object sender, EventArgs e)
  314. {
  315. if (toolMenu.Toolbars[0].Tools.Exists("TakeSingle")) { toolMenu.Toolbars[0].Tools["TakeSingle"].InstanceProps.Visible = DefaultableBoolean.True; }
  316. }
  317. private void ultraGridZyD_AfterSelectChange(object sender, AfterSelectChangeEventArgs e)
  318. {
  319. foreach (UltraGridRow uRow in ultraGridZyD.Selected.Rows)
  320. {
  321. if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow))
  322. {
  323. uRow.Cells["CHC"].Value = true;
  324. }
  325. }
  326. }
  327. /// <summary>
  328. /// 过滤可排产量
  329. /// </summary>
  330. /// <param name="sender"></param>
  331. /// <param name="e"></param>
  332. private void chcPlaned_CheckedChanged(object sender, EventArgs e)
  333. {
  334. UltraGridRow row = ultraGridRcls.ActiveRow;
  335. if (row == null) return;
  336. ultraGridRcls.UpdateData();
  337. if (chcPlaned.Checked)
  338. {
  339. GridHelper.AddUlGridFilter(ultraGridRcls);
  340. plnOrderRclSOEntityBindingSource.DataSource = listSource.Where(w => w.ReallWt > 0).ToList();
  341. }
  342. else
  343. {
  344. plnOrderRclSOEntityBindingSource.DataSource = listSource;
  345. }
  346. ultraGridRcls.Refresh();
  347. ultraGridRcls.Update();
  348. }
  349. }
  350. }