FrmStableMps.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487
  1. using com.steering.pss.sale.order.model;
  2. using Core.Mes.Client.Comm.Server;
  3. using Core.Mes.Client.Comm.Tool;
  4. using Core.StlMes.Client.Qcm;
  5. using CoreFS.CA06;
  6. using Infragistics.Win.UltraWinGrid;
  7. using System;
  8. using System.Collections;
  9. using System.Collections.Generic;
  10. using System.ComponentModel;
  11. using System.Data;
  12. using System.Drawing;
  13. using System.Linq;
  14. using System.Text;
  15. using System.Windows.Forms;
  16. namespace Core.StlMes.Client.SaleOrder.Dialog
  17. {
  18. public partial class FrmStableMps : FrmBase
  19. {
  20. public FrmStableMps()
  21. {
  22. InitializeComponent();
  23. }
  24. public FrmStableMps(OpeBase _ob)
  25. {
  26. InitializeComponent();
  27. this.ob = _ob;
  28. }
  29. private string msc = "";
  30. private string finaUser = "";
  31. private string finaUserDesc = "";
  32. private string dimater = "";
  33. private string height = "";
  34. private string model = "";
  35. private string ordLnPk = "";
  36. /// <summary>
  37. /// 合同行号
  38. /// </summary>
  39. public string OrdLnPk
  40. {
  41. get { return ordLnPk; }
  42. set { ordLnPk = value; }
  43. }
  44. private string wdType = "1";
  45. /// <summary>
  46. /// 弹出窗体的方式
  47. /// </summary>
  48. public string WdType
  49. {
  50. get { return wdType; }
  51. set { wdType = value; }
  52. }
  53. public delegate void FrmClosedRefresh();
  54. public event FrmClosedRefresh frmClosedRefresh;
  55. private void FrmStableMps_Load(object sender, EventArgs e)
  56. {
  57. EntityHelper.ShowGridCaption<SlmOrderStableMpsEntity>(gdMps.DisplayLayout.Bands[0]);
  58. InitFormData(this.OrdLnPk);
  59. if (WdType == "2")
  60. {
  61. QueryDataByFilter();
  62. }
  63. }
  64. private void InitFormData(string ordLnPk)
  65. {
  66. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreStableMps.queryOrdInfo", new object[] { ordLnPk }, this.ob);
  67. if (dt != null && dt.Rows.Count > 0)
  68. {
  69. msc = dt.Rows[0]["MSC"].ToString2();
  70. finaUser = dt.Rows[0]["FINAL_USER"].ToString2();
  71. finaUserDesc = dt.Rows[0]["FINAL_USER_DESC"].ToString2();
  72. dimater = dt.Rows[0]["DIMATER"].ToString2();
  73. height = dt.Rows[0]["HEIGHT"].ToString2();
  74. model = dt.Rows[0]["MODEL_CODE"].ToString2();
  75. }
  76. }
  77. private void gdMps_AfterRowInsert(object sender, Infragistics.Win.UltraWinGrid.RowEventArgs e)
  78. {
  79. string mpsId = gdMps.Rows.Max(a => a.Cells["MPSID"].Value.ToString2());
  80. if (mpsId == "")
  81. {
  82. e.Row.Cells["MPSID"].Value = DateTime.Now.ToString("yyyyMMdd") + "001";
  83. }
  84. else
  85. {
  86. if (mpsId.Substring(0, 8) == DateTime.Now.ToString("yyyyMMdd"))
  87. e.Row.Cells["MPSID"].Value = DateTime.Now.ToString("yyyyMMdd") + (Convert.ToInt32(mpsId.Substring(8, 3)) + 1).ToString().PadLeft(3, '0');
  88. else
  89. e.Row.Cells["MPSID"].Value = DateTime.Now.ToString("yyyyMMdd") + "001";
  90. }
  91. e.Row.Cells["MSC"].Value = msc;
  92. e.Row.Cells["FINAUSER"].Value = finaUser;
  93. e.Row.Cells["FINAUSERDESC"].Value = finaUserDesc;
  94. e.Row.Cells["DIMATERMIN"].Value = dimater;
  95. e.Row.Cells["DIMATERMAX"].Value = dimater;
  96. e.Row.Cells["HEIGHTMIN"].Value = height;
  97. e.Row.Cells["HEIGHTMAX"].Value = height;
  98. }
  99. private void gdMps_ClickCellButton(object sender, CellEventArgs e)
  100. {
  101. gdMps.UpdateData();
  102. if (e.Cell.Column.Key.Equals("ModelDesc"))
  103. {
  104. UltraGridRow ugr = gdMps.ActiveRow;
  105. FrmModel fm = new FrmModel();
  106. fm.FrmOb = this.ob;
  107. fm.Desc = ugr.Cells["ModelDesc"].Value.ToString();
  108. fm.ShowDialog();
  109. if (fm.DialogResult != DialogResult.OK)
  110. return;
  111. ugr.Cells["ModelCode"].Value = fm.Code;
  112. ugr.Cells["ModelDesc"].Value = fm.Desc;
  113. }
  114. }
  115. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  116. {
  117. switch (e.Tool.Key)
  118. {
  119. case "Query":
  120. if (WdType == "1")
  121. {
  122. QueryData();
  123. }
  124. else if (WdType == "2")
  125. {
  126. QueryDataByFilter();
  127. }
  128. break;
  129. case "Save":
  130. SaveData();
  131. break;
  132. case "Select":
  133. SelectStableMps();
  134. break;
  135. case "Close":
  136. this.Close();
  137. break;
  138. }
  139. }
  140. private void SelectStableMps()
  141. {
  142. gdMps.UpdateData();
  143. UltraGridRow ugr = gdMps.ActiveRow;
  144. if (ugr == null)
  145. {
  146. MessageUtil.ShowWarning("请选择您要引用的MPS!");
  147. return;
  148. }
  149. if (ugr.Cells["MpsFileName"].Value.ToString2() == "")
  150. {
  151. MessageUtil.ShowWarning("您选择的MPS编号尚未上传MPS文本!");
  152. return;
  153. }
  154. SlmOrderStableMpsEntity sos = (SlmOrderStableMpsEntity)ugr.ListObject;
  155. int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreStableMps.selectStableMps", new object[] { sos, this.OrdLnPk }, this.ob);
  156. if (count > 0)
  157. {
  158. MessageUtil.ShowTips("选择成功!");
  159. DialogResult = DialogResult.OK;
  160. }
  161. else
  162. {
  163. MessageUtil.ShowWarning("选择失败,请尝试重新选择!");
  164. }
  165. }
  166. /// <summary>
  167. /// 保存数据
  168. /// </summary>
  169. private void SaveData()
  170. {
  171. gdMps.UpdateData();
  172. UltraGridRow[] row = gdMps.Rows.AsQueryable().Where(a => a.Cells["CHK"].Value.ToString().ToUpper() == "TRUE").ToArray();
  173. if (row.Length <= 0)
  174. {
  175. MessageUtil.ShowWarning("请选择需要保存的记录!");
  176. return;
  177. }
  178. ArrayList parm = new ArrayList();
  179. List<string> list = new List<string>();
  180. foreach (var uRow in row)
  181. {
  182. SlmOrderStableMpsEntity sos = (SlmOrderStableMpsEntity)uRow.ListObject;
  183. if (sos.MpsNo == "")
  184. {
  185. MessageUtil.ShowWarning("请输入MPS编号");
  186. return;
  187. }
  188. if (sos.DimaterMin != "" && sos.DimaterMax != "")
  189. {
  190. if (Convert.ToDecimal(sos.DimaterMin) > Convert.ToDecimal(sos.DimaterMax))
  191. {
  192. MessageUtil.ShowWarning("外径下限不能超过上限!");
  193. return;
  194. }
  195. }
  196. if (sos.HeightMin != "" && sos.HeightMax != "")
  197. {
  198. if (Convert.ToDecimal(sos.HeightMin) > Convert.ToDecimal(sos.HeightMax))
  199. {
  200. MessageUtil.ShowWarning("壁厚下限不能超过上限");
  201. return;
  202. }
  203. }
  204. if (sos.Validflag == "") //新增
  205. {
  206. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreStableMps.queryMpsNoByNo", new object[] { sos.MpsNo }, this.ob);
  207. if (dt != null && dt.Rows.Count > 0)
  208. {
  209. MessageUtil.ShowWarning("MpsId:【" + sos.MpsId + "】 Mps编号:【" + sos.MpsNo + "】 系统已经存在!");
  210. return;
  211. }
  212. }
  213. else
  214. {
  215. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreStableMps.queryMpsNoById", new object[] { sos.MpsId }, this.ob);
  216. if (dt != null && dt.Rows.Count > 0)
  217. {
  218. if (dt.Rows[0][0].ToString2() != sos.MpsNo)
  219. {
  220. DataTable dt1 = ServerHelper.GetData("com.steering.pss.sale.order.CoreStableMps.queryMpsNoByNo", new object[] { sos.MpsNo }, this.ob);
  221. if (dt1 != null && dt1.Rows.Count > 0)
  222. {
  223. MessageUtil.ShowWarning("MpsId:【" + sos.MpsId + "】 Mps编号:【" + sos.MpsNo + "】 系统已经存在!");
  224. return;
  225. }
  226. }
  227. }
  228. }
  229. if (list.Contains(sos.MpsNo))
  230. {
  231. MessageUtil.ShowWarning("MPS编号重复!");
  232. return;
  233. }
  234. else
  235. {
  236. list.Add(sos.MpsNo);
  237. }
  238. sos.CreateName = UserInfo.GetUserName();
  239. sos.UpdateName = UserInfo.GetUserName();
  240. parm.Add(sos);
  241. }
  242. CoreClientParam ccp = new CoreClientParam();
  243. ccp.IfShowErrMsg = false;
  244. ccp.ServerName = "com.steering.pss.sale.order.CoreStableMps";
  245. ccp.MethodName = "saveData";
  246. ccp.ServerParams = new object[] { parm };
  247. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  248. if (ccp != null)
  249. {
  250. if (ccp.ReturnCode == -1)
  251. {
  252. MessageUtil.ShowWarning(ccp.ReturnInfo);
  253. return;
  254. }
  255. MessageUtil.ShowTips("保存成功!");
  256. if (WdType == "1")
  257. {
  258. QueryData();
  259. }
  260. else if (WdType == "2")
  261. {
  262. QueryDataByFilter();
  263. }
  264. }
  265. }
  266. private void MpsFile_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  267. {
  268. UltraGridRow row = gdMps.ActiveRow;
  269. if (row == null)
  270. return;
  271. string mpsId = row.Cells["MPSID"].Value.ToString();
  272. if (e.Button.Key.Equals("upload")) // 上传
  273. {
  274. if (row.Cells["VALIDFLAG"].Value.ToString2() == "")
  275. {
  276. MessageUtil.ShowWarning("请先保存该记录,才可上传MPS文本!");
  277. return;
  278. }
  279. string reStr = FlileUpload("Mps/" + ordLnPk);
  280. if (reStr == "F")
  281. {
  282. MessageUtil.ShowWarning("上传失败,尝试重新上传!");
  283. return;
  284. }
  285. else if (reStr == "N")
  286. {
  287. return;
  288. }
  289. row.Cells["MPSFILENAME"].Value = reStr;
  290. if (updateStableMps(mpsId, "Mps/" + ordLnPk, reStr))
  291. {
  292. MessageUtil.ShowTips("上传成功!");
  293. }
  294. else
  295. {
  296. MessageUtil.ShowWarning("上传失败,尝试重新上传!");
  297. }
  298. }
  299. else if (e.Button.Key.Equals("view")) //预览
  300. {
  301. if (row.Cells["VALIDFLAG"].Value.ToString2() == "")
  302. {
  303. MessageUtil.ShowWarning("暂无MPS文本可供查看!");
  304. return;
  305. }
  306. string filePath = "Mps/" + ordLnPk;
  307. string dbFilePath = "";
  308. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreStableMps.selectMpsAddr", new object[] { row.Cells["MPSID"].Value.ToString2() }, this.ob);
  309. if (dt != null && dt.Rows.Count > 0)
  310. {
  311. dbFilePath = dt.Rows[0][0].ToString();
  312. }
  313. else
  314. {
  315. MessageUtil.ShowWarning("暂无MPS文本可供查看!");
  316. return;
  317. }
  318. string fpath = filePath;
  319. if (dbFilePath != filePath)
  320. fpath = dbFilePath;
  321. dlgOrderAskDown down = new dlgOrderAskDown(this.ob, fpath);
  322. down.ShowDialog();
  323. if (down.CtrlFileDown1.List.Count == 0)
  324. {
  325. if (dbFilePath == filePath)
  326. updateStableMps(mpsId, filePath, "");
  327. row.Cells["MPSFILENAME"].Value = "";
  328. }
  329. }
  330. }
  331. /// <summary>
  332. /// 更新固定MPS
  333. /// </summary>
  334. /// <param name="ordLnPk"></param>
  335. /// <param name="p"></param>
  336. /// <returns></returns>
  337. private bool updateStableMps(string mpsId, string mpsAddr, string p)
  338. {
  339. int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreStableMps.updateStableMps", new object[] { mpsId, mpsAddr, p }, this.ob);
  340. if (count > 0)
  341. {
  342. return true;
  343. }
  344. else
  345. {
  346. return false;
  347. }
  348. }
  349. public static string FlileUpload(string sFileName)
  350. {
  351. List<FileBean> list = new List<FileBean>();
  352. FileBean bean = new FileBean();
  353. OpenFileDialog file = new OpenFileDialog();
  354. file.Multiselect = false; // file.Multiselect = true 改为 file.Multiselect = false
  355. DialogResult drStat;
  356. drStat = file.ShowDialog();
  357. string fileList = "";
  358. if (drStat == DialogResult.OK)
  359. {
  360. foreach (string fileName in file.FileNames)
  361. {
  362. bean = new FileBean();
  363. string filena = System.IO.Path.GetFileName(fileName);
  364. bean.setFileName(filena);
  365. bean.setPathName(sFileName);
  366. bean.setFile(FileHelper.FileToArray(fileName));
  367. list.Add(bean);
  368. fileList = filena;
  369. }
  370. bool isSuccess = false;
  371. isSuccess = Core.Mes.Client.Comm.Server.FileHelper.Upload(list);
  372. if (isSuccess)
  373. {
  374. return fileList;
  375. }
  376. else
  377. {
  378. return "F";
  379. }
  380. }
  381. else
  382. return "N"; //未选择文件
  383. }
  384. private void FrmStableMps_Shown(object sender, EventArgs e)
  385. {
  386. if (WdType == "1")
  387. {
  388. ultraToolbarsManager1.Toolbars[0].Tools["Select"].SharedProps.Visible = false;
  389. }
  390. }
  391. private void QueryData()
  392. {
  393. string no = "";
  394. string name = "";
  395. if (mpsNo.Checked)
  396. {
  397. no = mpsNo.Text.Trim();
  398. }
  399. if (mpsName.Checked)
  400. {
  401. name = mpsName.Text.Trim();
  402. }
  403. List<SlmOrderStableMpsEntity> list = EntityHelper.GetData<SlmOrderStableMpsEntity>("com.steering.pss.sale.order.CoreStableMps.queryData", new object[] { no, name }, this.ob);
  404. slmOrderStableMpsEntityBindingSource1.DataSource = list;
  405. }
  406. /// <summary>
  407. /// 根据过滤条件查询数据
  408. /// </summary>
  409. private void QueryDataByFilter()
  410. {
  411. string no = "";
  412. string name = "";
  413. if (mpsNo.Checked)
  414. {
  415. no = mpsNo.Text.Trim();
  416. }
  417. if (mpsName.Checked)
  418. {
  419. name = mpsName.Text.Trim();
  420. }
  421. ArrayList parm = new ArrayList();
  422. parm.Add(no);
  423. parm.Add(name);
  424. parm.Add(dimater);
  425. parm.Add(dimater);
  426. parm.Add(height);
  427. parm.Add(height);
  428. parm.Add(model);
  429. parm.Add(msc);
  430. parm.Add(finaUser);
  431. List<SlmOrderStableMpsEntity> list = EntityHelper.GetData<SlmOrderStableMpsEntity>("com.steering.pss.sale.order.CoreStableMps.queryDataByFilter", new object[] { parm }, this.ob);
  432. slmOrderStableMpsEntityBindingSource1.DataSource = list;
  433. }
  434. private void FrmStableMps_FormClosed(object sender, FormClosedEventArgs e)
  435. {
  436. if (frmClosedRefresh != null)
  437. frmClosedRefresh();
  438. }
  439. }
  440. }