FrmEntrustApplyNew.cs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517
  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 Core.Mes.Client.Comm.Format;
  10. using Core.Mes.Client.Comm.Server;
  11. using Core.Mes.Client.Comm.Tool;
  12. using Core.StlMes.Client.Mcp.Control.Common;
  13. using Core.StlMes.Client.Mcp.Control.Entity;
  14. using Core.StlMes.Client.Mcp.Treatment.Entity;
  15. using CoreFS.CA06;
  16. using Infragistics.Win;
  17. using Infragistics.Win.UltraWinTree;
  18. using CellEventArgs = Infragistics.Win.UltraWinGrid.CellEventArgs;
  19. namespace Core.StlMes.Client.Mcp.Treatment.HeatTreatment
  20. {
  21. public partial class FrmEntrustApplyNew : FrmBase
  22. {
  23. private ApplyType applyType;
  24. private string _processCode;
  25. private string _plineCode;
  26. private string defaultDepartMentCode = "";
  27. private string defaultDepartMentName = "";
  28. private string _subNo;
  29. private bool Insert = false;
  30. public FrmEntrustApplyNew(OpeBase _ob, ApplyType _type, List<OfflineResultEntity> OfflineData, string processCode, string plineCode, HttEntrustEntityAll Entity = null, string[] items= null
  31. , string itemCode = "7022")
  32. {
  33. InitializeComponent();
  34. ob = _ob;
  35. if (string.IsNullOrWhiteSpace(itemCode)) itemCode = "7022";
  36. itemCode = "7022";
  37. List<ComBaseInfoEntity> list= EntityHelper.GetData<ComBaseInfoEntity>(
  38. "com.steering.mes.mcp.common.PlanService.getBaseInfoAll",
  39. new object[] { itemCode, items ?? new string[] { } },
  40. ob);
  41. List<ComBaseInfoEntity> listOperator = EntityHelper.GetData<ComBaseInfoEntity>(
  42. "com.steering.mes.mcp.common.PlanService.getBaseInfo",
  43. new object[] { "7031" },
  44. ob);
  45. uceOperator.DataSource = listOperator;
  46. uceOperator.DisplayMember = "Basename";
  47. uceOperator.ValueMember = "Basecode";
  48. applyType = _type;
  49. //新增外委合同号 TZH 24.4.24
  50. List<ComBaseInfoEntity> listOperator2 = EntityHelper.GetData<ComBaseInfoEntity>(
  51. "com.steering.mes.mcp.common.PlanService.getWwdd",
  52. new object[] { "7031" },
  53. ob);
  54. ultraComboEditor1.DataSource = listOperator2;
  55. ultraComboEditor1.DisplayMember = "Basename";
  56. ultraComboEditor1.ValueMember = "Basecode";
  57. //
  58. var listPline =OfflineData==null? null: OfflineData.Where(p => !string.IsNullOrWhiteSpace(p.StorageTypeNo)).ToList();
  59. DataTable dtStorage = null;
  60. if (listPline!=null && listPline.Any())
  61. {
  62. dtStorage = ServerHelper.GetData(
  63. "com.steering.mes.mcp.common.frmEntrust.doQueryStorage",
  64. new object[] { listPline.Select(p=>p.StorageTypeNo).Distinct().ToArray() },
  65. ob);
  66. }
  67. else
  68. {
  69. dtStorage= ServerHelper.GetData(
  70. "com.steering.mes.mcp.common.frmEntrust.doQueryStorage",
  71. new object[] { },
  72. ob);
  73. }
  74. StorageType.DataSource = dtStorage;
  75. StorageType.DisplayMember = "STORAGE_NAME";
  76. StorageType.ValueMember = "STORAGE_NO";
  77. if (OfflineData!=null)
  78. offlineResultEntityBindingSource.DataSource = OfflineData.GroupBy(p => new
  79. {
  80. p.ResultNo,
  81. p.JudgeStoveNo,
  82. p.FlagStoveNo,
  83. p.MatNos
  84. }
  85. ).Select(p => new OfflineResultEntity()
  86. {
  87. ResultNo = p.Key.ResultNo,
  88. JudgeStoveNo = p.Key.JudgeStoveNo,
  89. FlagStoveNo = p.Key.FlagStoveNo,
  90. BatchNo = p.First().BatchNo,
  91. OfflineNum = p.Sum(q=>q.OfflineNum),
  92. MatNos = p.Key.MatNos,
  93. StorageTypeNo = p.Max(q=>q.StorageTypeNo)
  94. }
  95. ).ToList();
  96. _processCode = processCode;
  97. _plineCode = plineCode;
  98. _subNo = Entity==null?"" :Entity.SubcontractNo;
  99. txtNote.Text = Entity == null ? "" : Entity.SubcontractNote; ;
  100. txtNo.Text = Entity == null ? "" : Entity.Drawingno;
  101. if (_type ==ApplyType.ChangeProject)
  102. {
  103. Detail = EntityHelper.GetData<HttEntrustProjectEntity>(
  104. "com.steering.mes.mcp.common.frmEntrust.QueryProject",
  105. new object[] { Entity.SubcontractNo, Entity.SubcontractNoSeq }, ob);
  106. uceSubType.Enabled = false;
  107. spcMain.Panel1Collapsed = true;
  108. checkSub.Visible = false;
  109. uceOperator.Text = Entity.SubcontractOperator;
  110. }
  111. AddChildNodes(utMain, list);
  112. ultraToolbarsManager1.Tools["Apply"].SharedProps.Visible = applyType == ApplyType.ApplyProject;
  113. ultraToolbarsManager1.Tools["Save"].SharedProps.Visible = applyType==ApplyType.ChangeProject;
  114. this.Text = applyType == ApplyType.ApplyProject ? "申请项目" : "调整项目";
  115. httEntrustProjectEntityBindingSource.DataSource = Detail;
  116. comm.RefreshAndAutoSize(CrackDetectGrid, new[] { "" });
  117. uceSubType.SelectedIndex = plineCode == "C072" || plineCode == "C091" ? 1 : 0;
  118. DataTable dt =ServerHelper.GetData(
  119. "com.steering.mes.mcp.common.PlanService.getBaseInfo",
  120. new object[] { "7029" },
  121. ob);
  122. DataRow dr = dt.NewRow();
  123. dt.Rows.InsertAt(dr,0);
  124. ucePayDepartment.DataSource = dt;
  125. ucePayDepartment.ValueMember = "BASECODE";
  126. ucePayDepartment.DisplayMember = "BASENAME";
  127. DataTable Default = ServerHelper.GetData("com.steering.mes.mcp.common.frmEntrust.doQueryDefaultPay", new object[] { plineCode }, ob);
  128. if (Default.Rows.Count > 0)
  129. {
  130. defaultDepartMentCode = Default.Rows[0][0].ToString2();
  131. defaultDepartMentName = Default.Rows[0][1].ToString2();
  132. }
  133. if (!processCode.Equals("H")) panelH.Visible = false;
  134. }
  135. protected override void OnLoad(EventArgs e)
  136. {
  137. base.OnLoad(e);
  138. EntityHelper.ShowGridCaption<HttEntrustProjectEntity>(CrackDetectGrid.DisplayLayout.Bands[0]);
  139. EntityHelper.ShowGridCaption<OfflineResultEntity>(ultraGrid1.DisplayLayout.Bands[0]);
  140. }
  141. public List<HttEntrustProjectEntity> Detail = new List<HttEntrustProjectEntity>();
  142. public void AddChildNodes(UltraTreeNode Root, List<ComBaseInfoEntity> Data, string Key )
  143. {
  144. Data.Where(p=>p.Sortcode==Key).ToList().ForEach(p =>
  145. {
  146. UltraTreeNode child = new UltraTreeNode
  147. {
  148. Text = p.Basename,
  149. Key = p.Basecode
  150. };
  151. AddChildNodes(child, Data, p.Basecode);
  152. if (!child.HasNodes)
  153. {
  154. child.Override.NodeStyle = NodeStyle.CheckBox;
  155. if(Detail.Any(q=>q.ProjectCode == p.Basecode )) child.CheckedState = CheckState.Checked;
  156. }
  157. Root.Nodes.Add(child);
  158. }
  159. );
  160. }
  161. public void AddChildNodes(UltraTree Root, List<ComBaseInfoEntity> Data)
  162. {
  163. Data.Where(p => p.Sortcode == "7022").ToList().ForEach(p =>
  164. {
  165. UltraTreeNode child = new UltraTreeNode
  166. {
  167. Text = p.Basename,
  168. Key = p.Basecode
  169. };
  170. AddChildNodes(child, Data, p.Basecode);
  171. if (!child.HasNodes)
  172. {
  173. child.Override.NodeStyle = NodeStyle.CheckBox;
  174. if (Detail.Any(q => q.ProjectCode == p.Basecode)) child.CheckedState = CheckState.Checked;
  175. }
  176. Root.Nodes.Add(child);
  177. }
  178. );
  179. }
  180. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  181. {
  182. switch (e.Tool.Key)
  183. {
  184. case "Save": // ButtonTool
  185. Save();
  186. break;
  187. case "Close": // ButtonTool
  188. this.DialogResult = DialogResult.Cancel;
  189. break;
  190. case "Apply": // ButtonTool
  191. // Place code here
  192. Apply();
  193. break;
  194. }
  195. }
  196. private void Save()
  197. {
  198. CrackDetectGrid.UpdateData();
  199. if (MessageUtil.ShowYesNoAndQuestion("是否调整项目?") == DialogResult.No)
  200. return;
  201. var ccp = new CoreClientParam();
  202. ccp.ServerName = "com.steering.mes.mcp.common.frmEntrust";
  203. ccp.MethodName = "UpdateProject";
  204. ccp.ServerParams = new object[]
  205. {
  206. _subNo,txtNote.Text, Detail.Select(JSONFormat.Format).ToList(),uceOperator.SelectedIndex>-1?uceOperator.SelectedItem.DisplayText.ToString2():"",txtNo.Text
  207. };
  208. ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  209. if (ccp.ReturnCode != -1)
  210. {
  211. MessageUtil.ShowTips(ccp.ReturnInfo);
  212. if (ccp.ReturnInfo.Equals("调整成功!"))
  213. this.DialogResult = DialogResult.OK;
  214. }
  215. }
  216. public enum ApplyType
  217. {
  218. ApplyProject,
  219. ChangeProject
  220. };
  221. private void utMain_AfterCheck(object sender, NodeEventArgs e)
  222. {
  223. Insert = true;
  224. if (applyType == ApplyType.ApplyProject)
  225. {
  226. if (e.TreeNode.CheckedState == CheckState.Checked)
  227. {
  228. Detail.Add(new HttEntrustProjectEntity()
  229. {
  230. ProjectCode = e.TreeNode.Key,
  231. ProjectName = e.TreeNode.Text,
  232. PayDepartmentCode = defaultDepartMentCode,
  233. PayDepartmentName = defaultDepartMentName,
  234. ProjectFlag = "0",
  235. ProjectStatus = "00",
  236. ProjectType = "0"
  237. });
  238. }
  239. else
  240. {
  241. Detail = Detail.Where(p => p.ProjectCode != e.TreeNode.Key).ToList();
  242. }
  243. }
  244. else
  245. {
  246. if (e.TreeNode.CheckedState == CheckState.Checked)
  247. {
  248. var list = Detail.Where(p => p.ProjectCode == e.TreeNode.Key).ToList();
  249. if (list.Any())
  250. {
  251. list.ForEach(p=>p.ProjectFlag= (p.ProjectType==p.ProjectTypeOrgin && p.ProjectMemo== p.ProjectMemoOrgin)?"0":"3" );
  252. }
  253. else
  254. {
  255. Detail.Add(new HttEntrustProjectEntity()
  256. {
  257. ProjectCode = e.TreeNode.Key,
  258. ProjectName = e.TreeNode.Text,
  259. PayDepartmentCode = defaultDepartMentCode,
  260. PayDepartmentName = defaultDepartMentName,
  261. ProjectFlag = "1",
  262. ProjectStatus = "00",
  263. ProjectType = "0"
  264. });
  265. }
  266. }
  267. else
  268. {
  269. Detail = Detail.Where(p => (p.ProjectCode != e.TreeNode.Key) || p.ProjectCode==e.TreeNode.Key && p.ProjectFlag!="1" ).ToList();
  270. var list = Detail.Where(p => p.ProjectCode == e.TreeNode.Key).ToList();
  271. list.ForEach(p=>p.ProjectFlag="2");
  272. }
  273. }
  274. httEntrustProjectEntityBindingSource.DataSource = Detail;
  275. CrackDetectGrid.DisplayLayout.Bands[0].Columns["ProjectName"].PerformAutoResize(Infragistics.Win.UltraWinGrid.PerformAutoSizeType.AllRowsInBand);
  276. CrackDetectGrid.DataBind();
  277. Insert = false;
  278. }
  279. public void Apply()
  280. {
  281. CrackDetectGrid.UpdateData();
  282. ultraGrid1.UpdateData();
  283. if (MessageUtil.ShowYesNoAndQuestion("是否申请委托?") == DialogResult.No)
  284. return;
  285. var ccp = new CoreClientParam();
  286. ccp.ServerName = "com.steering.mes.mcp.common.frmEntrust";
  287. if (checkSub.Checked)
  288. {
  289. ccp.MethodName = "ApplyAll";
  290. ccp.ServerParams = new object[]
  291. {
  292. (offlineResultEntityBindingSource.DataSource as List<OfflineResultEntity>).GroupBy(p=>p.JudgeStoveNo).Select(p=>p.Select(JSONFormat.Format).ToList()).ToList(),
  293. _processCode,_plineCode, Detail.Select(JSONFormat.Format).ToList() , UserInfo.GetUserName(),
  294. UserInfo.GetUserOrder(), UserInfo.GetUserGroup(),
  295. uceSubType.SelectedItem.DataValue.ToString2(),
  296. txtNote.Text,uceOperator.SelectedIndex>-1?uceOperator.SelectedItem.DisplayText.ToString2():"",txtNo.Text,
  297. chkFlag.Checked?"1":"0"
  298. };
  299. }
  300. else
  301. {
  302. ccp.MethodName = "Apply";
  303. ccp.ServerParams = new object[]
  304. {
  305. (offlineResultEntityBindingSource.DataSource as List<OfflineResultEntity>).Select(JSONFormat.Format).ToList(), _processCode,_plineCode, Detail.Select(JSONFormat.Format).ToList() , UserInfo.GetUserName(),
  306. UserInfo.GetUserOrder(), UserInfo.GetUserGroup(), uceSubType.SelectedItem.DataValue.ToString2(),txtNote.Text,uceOperator.SelectedIndex>-1?uceOperator.SelectedItem.DisplayText.ToString2():"",txtNo.Text,
  307. chkFlag.Checked?"1":"0"
  308. };
  309. }
  310. ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  311. if (ccp.ReturnCode != -1)
  312. {
  313. MessageUtil.ShowTips(ccp.ReturnInfo);
  314. if (ccp.ReturnInfo.Equals("申请成功!"))
  315. this.DialogResult = DialogResult.OK;
  316. }
  317. }
  318. private void CrackDetectGrid_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e)
  319. {
  320. /* if (e.Row.Cells["ProjectFlag"].Value.ToString2() == "2")
  321. {
  322. e.Row.Cells["ProjectFlag"].Appearance.BackColor = Color.Red;
  323. }
  324. else if (e.Row.Cells["ProjectFlag"].Value.ToString2() == "1")
  325. {
  326. e.Row.Cells["ProjectFlag"].Appearance.BackColor = Color.LightGreen;
  327. }
  328. else
  329. {
  330. e.Row.Cells["ProjectFlag"].Appearance.ResetBackColor();
  331. }*/
  332. if (Insert)
  333. {
  334. DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.common.frmEntrust.doQueryApplyMemo",
  335. new object[] {e.Row.Cells["ProjectCode"].Value.ToString2()}, ob);
  336. if (dt.Rows.Count > 0)
  337. {
  338. e.Row.Cells["ProjectMemo"].EditorComponent = null;
  339. var list2 = new ValueList();
  340. foreach (DataRow row in dt.Rows)
  341. list2.ValueListItems.Add(row["PROJECT_MEMO"].ToString(), row["PROJECT_MEMO"].ToString());
  342. e.Row.Cells["ProjectMemo"].ValueList = list2;
  343. }
  344. else
  345. {
  346. e.Row.Cells["ProjectMemo"].EditorComponent = txtMemo;
  347. }
  348. }
  349. }
  350. private void CrackDetectGrid_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  351. {
  352. CrackDetectGrid.UpdateData();
  353. if (e.Cell.Column.Key == "PayDepartmentCode")
  354. {
  355. e.Cell.Row.Cells["PayDepartmentName"].Value = e.Cell.Text;
  356. }
  357. if (applyType == ApplyType.ChangeProject)
  358. {
  359. if (e.Cell.Row.Cells["ProjectFlag"].Value.ToString2() == "0" ||
  360. e.Cell.Row.Cells["ProjectFlag"].Value.ToString2() == "3")
  361. {
  362. e.Cell.Row.Cells["ProjectFlag"].Value = (e.Cell.Row.Cells["ProjectType"].Value.ToString2() ==
  363. e.Cell.Row.Cells["ProjectTypeOrgin"].Value.ToString2()
  364. &&
  365. e.Cell.Row.Cells["ProjectMemo"].Value.ToString2() ==
  366. e.Cell.Row.Cells["ProjectMemoOrgin"].Value.ToString2())
  367. ? "0"
  368. : "3";
  369. }
  370. }
  371. }
  372. private void ultraGrid1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  373. {
  374. if (e.Cell.Column.Key == "StorageTypeNo")
  375. {
  376. e.Cell.Row.Cells["StorageTypeName"].Value = e.Cell.Text;
  377. }
  378. }
  379. private void CrackDetectGrid_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e)
  380. {
  381. }
  382. private void CrackDetectGrid_AfterRowInsert(object sender, Infragistics.Win.UltraWinGrid.RowEventArgs e)
  383. {
  384. /* DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.common.frmEntrust.doQueryApplyMemo", new object[] { e.Row.Cells["ProjectCode"].Value.ToString2() }, ob);
  385. var list2 = new ValueList();
  386. foreach (DataRow row in dt.Rows)
  387. list2.ValueListItems.Add(row["PROJECT_MEMO"].ToString(), row["PROJECT_MEMO"].ToString());
  388. e.Row.Cells["ProjectMemo"].ValueList = list2;*/
  389. }
  390. private void txtNote_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  391. {
  392. TextEdit TextEdit = new TextEdit() { data = txtNote.Text };
  393. TextEdit.ShowDialog();
  394. if (TextEdit.DialogResult == DialogResult.OK)
  395. {
  396. txtNote.Text = TextEdit.data;
  397. }
  398. }
  399. private void ultraTextEditor1_ValueChanged(object sender, EventArgs e)
  400. {
  401. }
  402. private void txtMemo_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  403. {
  404. TextEdit TextEdit = new TextEdit() { data = CrackDetectGrid.ActiveCell.Text };
  405. TextEdit.ShowDialog();
  406. if (TextEdit.DialogResult == DialogResult.OK)
  407. {
  408. CrackDetectGrid.ActiveCell.Value = TextEdit.data;
  409. }
  410. }
  411. private void uceSubType_ValueChanged(object sender, EventArgs e)
  412. {
  413. if (uceSubType.SelectedItem.DataValue.ToString2() == "1")
  414. {
  415. label4.Enabled = false;
  416. ultraComboEditor1.Enabled = false;
  417. ultraComboEditor1.Clear();
  418. }
  419. else
  420. {
  421. label4.Enabled = true;
  422. ultraComboEditor1.Enabled = true;
  423. ultraComboEditor1.Clear();
  424. }
  425. }
  426. }
  427. }