FrmPlnProcOrdRcl.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using Infragistics.Win.UltraWinGrid;
  10. using Core.Mes.Client.Comm.Tool;
  11. using Core.StlMes.Client.PlnSaleOrd.Entity;
  12. using CoreFS.CA06;
  13. using Core.Mes.Client.Comm.Server;
  14. using System.Collections;
  15. using Infragistics.Win;
  16. using Core.Mes.Client.Comm;
  17. using Infragistics.Win.UltraWinEditors;
  18. using com.steering.pss.plnsaleord.processOrder.entity;
  19. namespace Core.StlMes.Client.PlnSaleOrd
  20. {
  21. public partial class FrmPlnProcOrdRcl : FrmBase
  22. {
  23. UltraComboEditor uceA = new UltraComboEditor();
  24. public FrmPlnProcOrdRcl()
  25. {
  26. this.IsLoadUserView = true;
  27. InitializeComponent();
  28. EntityHelper.ShowGridCaption<PlnOrdRclSPineEntity>(ultraGridRclOrd.DisplayLayout.Bands[0]);
  29. System.Threading.Thread t = new System.Threading.Thread(setGridColunmName);
  30. t.Start();
  31. }
  32. private void setGridColunmName()
  33. {
  34. System.Threading.Thread.Sleep(3000);
  35. if (!this.IsDisposed)
  36. {
  37. EntityHelper.ShowGridCaption<PlnOrdRclSPineEntity>(ultraGridRclOrd.DisplayLayout.Bands[0]);
  38. }
  39. }
  40. public override void ToolBar_Click(object sender, string ToolbarKey)
  41. {
  42. base.ToolBar_Click(sender, ToolbarKey);
  43. switch (ToolbarKey)
  44. {
  45. case "Query": //查询
  46. DoQuery();
  47. break;
  48. case "ModifyPine": //修改产线
  49. DoModifyPine();
  50. break;
  51. case "ModifyGroupPine":
  52. DoModifyGroupPline();
  53. break;
  54. case "InOutWl": //小时能力物料表维护
  55. DoInOutWl();
  56. break;
  57. case "Export":
  58. PlanComm.Export(ref ultraGridRclOrd, "热处理" + DateTime.Now.ToString("yyyyMMdd"));
  59. break;
  60. case "RefresDate"://刷新加载数据
  61. RefresDate();
  62. DoQuery();
  63. break;
  64. case "Close": //关闭
  65. this.Close();
  66. break;
  67. }
  68. }
  69. private void FrmPlnProcOrdRcl_Load(object sender, EventArgs e)
  70. {
  71. this.Controls.Add(uceA);
  72. uceA.Visible = false;
  73. ultraGridRclOrd.DisplayLayout.Bands[0].Columns["NextGx"].Style =
  74. Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  75. comQueryPandProcOrd1.ultraDateTimeRollMonth.Value = DateTime.Now;
  76. PlanComm.setGridActivation(ultraGridRclOrd.DisplayLayout.Bands[0], "CHC", "PlineCode");
  77. PlanComm.setGridDigitalCol(ultraGridRclOrd.DisplayLayout.Bands[0], 5, 2, "Outdiameter",
  78. "Wallthick", "Aimwallthick", "Lengthmax", "Lengthmin", "Aimlength", "Getrate");
  79. PlanComm.setGridDigitalCol(ultraGridRclOrd.DisplayLayout.Bands[0], 5, 3, "WeigthS",
  80. "MatchWt", "BuyplanWt", "ReqProdWt", "Finishweight");
  81. PlanComm.setGridDigitalCol(ultraGridRclOrd.DisplayLayout.Bands[0], 5, 0, "NumS",
  82. "MatchNum", "ReqProdNum");
  83. RefresDate();
  84. }
  85. /// <summary>
  86. /// 刷新数据加载
  87. /// </summary>
  88. private void RefresDate()
  89. {
  90. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdRcl.queryPineBase",
  91. new object[] { "F" }, this.ob);
  92. if (dt != null && dt.Rows.Count > 0)
  93. {
  94. ultraGridRclOrd.DisplayLayout.Bands[0].Columns["PlineCode"].ValueList
  95. = PlanComm.GeneralValuelist(ref dt, "PLINE_CODE", "PLINE_NAME");
  96. ultraGridRclOrd.DisplayLayout.Bands[0].Columns["PlineCode"].Style =
  97. Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  98. }
  99. DataTable dtPro = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdRcl.queryBaseProcess",
  100. new object[] { }, this.ob);
  101. if (dtPro != null && dtPro.Rows.Count > 0)
  102. {
  103. uceA.DataSource = dtPro;
  104. uceA.DisplayMember = "PROCESS_DESC";
  105. uceA.ValueMember = "PROCESS_CODE";
  106. ultraGridRclOrd.DisplayLayout.Bands[0].Columns["NextGx"].EditorComponent
  107. = uceA;
  108. }
  109. }
  110. /// <summary>
  111. /// 查询
  112. /// </summary>
  113. private void DoQuery()
  114. {
  115. ArrayList param = new ArrayList();
  116. string strfinish = "";//完成情况
  117. if (comQueryPandProcOrd1.checkBoxRollMonth.Checked)
  118. {
  119. param.Add(comQueryPandProcOrd1.ultraDateTimeRollMonth.DateTime.ToString("yyyy-MM"));
  120. }
  121. else
  122. {
  123. param.Add("");
  124. }
  125. if (comQueryPandProcOrd1.checkBoxForReqORDER_NO.Checked)
  126. {
  127. param.Add(comQueryPandProcOrd1.ctrlForQueryORDER_NO.Text.Trim());
  128. }
  129. else
  130. {
  131. param.Add("");
  132. }
  133. if (comQueryPandProcOrd1.checkBoxFinish.Checked)
  134. {
  135. strfinish = comQueryPandProcOrd1.ultraComboFinishEditor.Value.ToString();
  136. }
  137. List<PlnOrdRclSPineEntity> listSource = EntityHelper.GetData<PlnOrdRclSPineEntity>
  138. ("com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdRcl.queryPlnRclOrd",
  139. new object[] { param, strfinish }, this.ob);
  140. plnOrderRclEntityBindingSource.DataSource = listSource;
  141. }
  142. /// <summary>
  143. /// 修改产线
  144. /// </summary>
  145. private void DoModifyPine()
  146. {
  147. try
  148. {
  149. int defailNum = 0;
  150. string messageErr = "";
  151. ArrayList list = new ArrayList();
  152. ultraGridRclOrd.UpdateData();
  153. IQueryable<UltraGridRow> checkRows = ultraGridRclOrd.Rows.AsQueryable().Where(" CHC = 'True' ");
  154. if (checkRows.Count() == 0)
  155. {
  156. MessageUtil.ShowTips("未勾选合同!");
  157. return;
  158. }
  159. PlanComm.WaitFromOpen(this.Cursor);
  160. foreach (UltraGridRow uRow in checkRows)
  161. {
  162. DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdRcl.queryProcOrdStatus",
  163. new object[] { uRow.Cells["ProOrderNo"].Value.ToString(), uRow.Cells["GxPlanNo"].Value.ToString() }, this.ob);
  164. if (dtStatus == null || dtStatus.Rows.Count <= 0)
  165. {
  166. defailNum++;
  167. continue;
  168. }
  169. if (!dtStatus.Rows[0]["EXE_STATUS"].ToString().Equals("0"))
  170. {
  171. messageErr = "合同:" + uRow.Cells["ProOrderNo"].Value.ToString() + "已排产,不能修改!";
  172. defailNum++;
  173. continue;
  174. }
  175. DataTable dtPline = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdJgx.queryPineBaseId",
  176. new object[] { uRow.Cells["PlineCode"].Value.ToString() }, this.ob);
  177. if (dtPline == null || dtPline.Rows.Count <= 0)
  178. {
  179. messageErr = "未找到产线:" + uRow.Cells["PlineCode"].Text + "信息。";
  180. defailNum++;
  181. continue;
  182. }
  183. if (!dtStatus.Rows[0]["GROUP_RCL"].ToString().Equals(dtPline.Rows[0]["GROUP_PLAN"].ToString()))
  184. {
  185. messageErr = "产线:" + uRow.Cells["PlineCode"].Text + "不属于"
  186. + dtStatus.Rows[0]["GROUP_PLAN"].ToString() + "组。";
  187. defailNum++;
  188. continue;
  189. }
  190. PlnOrderRclSEntity rclSEntity = new PlnOrderRclSEntity();
  191. rclSEntity.ProOrderNo = uRow.Cells["ProOrderNo"].Value.ToString();
  192. rclSEntity.GxPlanNo = uRow.Cells["GxPlanNo"].Value.ToString();
  193. rclSEntity.PlineName = uRow.Cells["PlineCode"].Text;
  194. rclSEntity.PlineCode = uRow.Cells["PlineCode"].Value.ToString();
  195. list.Add(rclSEntity);
  196. }
  197. if (list.Count == 0)
  198. {
  199. PlanComm.WaitFromColse(this.Cursor);
  200. MessageUtil.ShowTips("0条保存成功," + defailNum + "条保存失败。\n" + messageErr);
  201. return;
  202. }
  203. CoreClientParam ccp = new CoreClientParam();
  204. ccp.ServerName = "com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdRcl";
  205. ccp.MethodName = "updateRclOrdPline";
  206. ccp.ServerParams = new object[] { list };
  207. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  208. PlanComm.WaitFromColse(this.Cursor);
  209. if (ccp.ReturnCode != -1)
  210. {
  211. if (defailNum == 0)
  212. {
  213. MessageUtil.ShowTips("保存成功,共" + list.Count + "条。");
  214. }
  215. else
  216. {
  217. MessageUtil.ShowTips(list.Count + "条保存成功," + defailNum + "条保存失败。\n" + messageErr);
  218. }
  219. }
  220. else
  221. {
  222. MessageUtil.ShowTips("保存失败,共" + list.Count + "条。");
  223. }
  224. }
  225. catch (Exception ex)
  226. {
  227. PlanComm.WaitFromColse(this.Cursor);
  228. if (!(ex is MESException))
  229. {
  230. MessageUtil.ShowError(ex.Message);
  231. }
  232. }
  233. DoQuery();
  234. }
  235. /// <summary>
  236. /// 修改产线分组
  237. /// </summary>
  238. private void DoModifyGroupPline()
  239. {
  240. ultraGridRclOrd.UpdateData();
  241. ArrayList list = new ArrayList();
  242. IQueryable<UltraGridRow> checkRows = ultraGridRclOrd.Rows.AsQueryable().Where(" CHC = 'True' ");
  243. if (checkRows.Count() == 0)
  244. {
  245. MessageUtil.ShowTips("未勾选任何行!");
  246. return;
  247. }
  248. PlanComm.WaitFromOpen(this.Cursor);
  249. foreach (UltraGridRow uRow in checkRows)
  250. {
  251. PlnOrderRclSEntity rclSEntity = new PlnOrderRclSEntity();
  252. rclSEntity.ProOrderNo = uRow.Cells["ProOrderNo"].Value.ToString();
  253. rclSEntity.GxPlanNo = uRow.Cells["GxPlanNo"].Value.ToString();
  254. rclSEntity.PlineName = uRow.Cells["PlineCode"].Text;
  255. rclSEntity.PlineCode = uRow.Cells["PlineCode"].Value.ToString();
  256. list.Add(rclSEntity);
  257. }
  258. CoreClientParam ccp = new CoreClientParam();
  259. ccp.ServerName = "com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdRcl";
  260. ccp.MethodName = "updatePlinGroup";
  261. ccp.ServerParams = new object[] { list };
  262. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  263. PlanComm.WaitFromColse(this.Cursor);
  264. if (ccp == null)
  265. {
  266. MessageUtil.ShowError("服务端处理失败!");
  267. return;
  268. }
  269. if (ccp.ReturnCode < 0)
  270. {
  271. MessageUtil.ShowError("修改失败!\n" + ccp.ReturnInfo);
  272. return;
  273. }
  274. if (ccp.ReturnObject != null)
  275. {
  276. MessageUtil.ShowTips(ccp.ReturnObject.ToString());
  277. DoQuery();
  278. }
  279. }
  280. /// <summary>
  281. /// 小时能力维护
  282. /// </summary>
  283. private void DoInOutWl()
  284. {
  285. UltraGridRow ugr = ultraGridRclOrd.ActiveRow;
  286. if (ugr == null)
  287. {
  288. return;
  289. }
  290. FrmBaseMaterialFPl fpl = new FrmBaseMaterialFPl(ugr.Cells["InwlId"].Value.ToString(),
  291. ugr.Cells["OutwlId"].Value.ToString(), this.ob);
  292. fpl.ShowDialog();
  293. }
  294. private void ultraGridRclOrd_AfterSelectChange(object sender, AfterSelectChangeEventArgs e)
  295. {
  296. foreach (UltraGridRow uRow in ultraGridRclOrd.Selected.Rows)
  297. {
  298. if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow))
  299. {
  300. uRow.Cells["CHC"].Value = true;
  301. }
  302. }
  303. }
  304. private void ultraGridRclOrd_AfterRowActivate(object sender, EventArgs e)
  305. {
  306. UltraGridRow ugr = ultraGridRclOrd.ActiveRow;
  307. if (ugr == null)
  308. {
  309. return;
  310. }
  311. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.CorePlnProcOrdRcl.queryRclProcMaterialPine",
  312. new object[] { ugr.Cells["ProOrderNo"].Value.ToString() }, this.ob);
  313. if (dt != null)
  314. {
  315. ValueList vlistSteel = PlanComm.GeneralValuelist(ref dt, "PLINE_CODE", "PLINE_NAME");
  316. ugr.Cells["PlineCode"].ValueList = vlistSteel;
  317. }
  318. }
  319. }
  320. }