FrmBcStow.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  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 CoreFS.CA06;
  10. using Core.Mes.Client.Comm.Tool;
  11. using System.Collections;
  12. using Core.Mes.Client.Comm.Control;
  13. using Core.Mes.Client.Comm.Server;
  14. using Infragistics.Win.UltraWinGrid;
  15. using Infragistics.Win.UltraWinEditors;
  16. using Infragistics.Win;
  17. using System.Text.RegularExpressions;
  18. using Core.Mes.Client.Comm.Format;
  19. using Core.StlMes.Client.YdmBcPipeManage.Entity;
  20. using Core.StlMes.Client.YdmBcPipeManage;
  21. namespace Core.StlMes.Client.YdmBcPipeManage
  22. {
  23. public partial class FrmBcStow : FrmBase
  24. {
  25. public FrmBcStow()
  26. {
  27. InitializeComponent();
  28. }
  29. private string[] arrStorageNo = null;//仓库权限
  30. UltraComboEditor uceReson = new UltraComboEditor();
  31. UltraComboEditor stowReason = new UltraComboEditor();
  32. private void FrmBcStow_Load(object sender, EventArgs e)
  33. {
  34. DateTime now = DateTime.Now;
  35. DateTime dt1 = new DateTime(now.Year, now.Month, 1);//当月第一天
  36. DateTime dt2 = dt1.AddMonths(1).AddDays(-1);//当月最后一天
  37. this.RegStartTime.Value = DateTime.Parse(dt1.ToString("yyyy-MM-dd") + " 00:00:00");
  38. this.RegEndTime.Value = DateTime.Parse(dt2.ToString("yyyy-MM-dd") + " 23:59:59");
  39. EntityHelper.ShowGridCaption<MatBcMEntity>(ultraGrid1.DisplayLayout.Bands[0]);
  40. EntityHelper.ShowGridCaption<YdmBcStowlistEntity>(ultraGrid4.DisplayLayout.Bands[0]);
  41. arrStorageNo = BaseMethod.WarehousePermissionsStore(this.ValidDataPurviewIds, ob);
  42. BaseMethod.InitComboEditor(stowReason, "com.steering.ydm.bc.FrmBcStow.doQueryStowReson", "BASECODE", this.ob, false);
  43. BaseMethod.BindColumn(stowReason, "STOW_REASON", this.Controls, this.ultraGrid3, 0);
  44. }
  45. /// <summary>
  46. /// 重写基类方法
  47. /// </summary>
  48. /// <param name="sender"></param>
  49. /// <param name="ToolbarKey"></param>
  50. public override void ToolBar_Click(object sender, string ToolbarKey)
  51. {
  52. switch (ToolbarKey)
  53. {
  54. case "Query":
  55. if (!CheckQuery()) return;
  56. doQueryData();
  57. break;
  58. case "Add":
  59. doAdd();
  60. break;
  61. case "Export":
  62. exportData();
  63. break;
  64. case "Close":
  65. this.Close();
  66. break;
  67. }
  68. }
  69. /// <summary>
  70. /// 倒垛
  71. /// </summary>
  72. private void doAdd()
  73. {
  74. ultraGrid3.UpdateData();
  75. UltraGridRow ugr1 = this.ultraGrid1.ActiveRow;
  76. UltraGridRow ugr2 = this.ultraGrid2.ActiveRow;
  77. UltraGridRow ugr3 = this.ultraGrid3.ActiveRow;
  78. if (ugr3 == null && ugr1 == null && ugr2 == null)
  79. {
  80. MessageUtil.ShowTips("请输入您要操作的记录!");
  81. return;
  82. }
  83. if (MessageUtil.ShowYesNoAndQuestion("是否确认倒垛?") == DialogResult.No)
  84. {
  85. return;
  86. }
  87. ArrayList parm = new ArrayList();
  88. int m = 0;
  89. MatBcMEntity matGpTity = (MatBcMEntity)ugr1.ListObject;
  90. string matGpEntity = JSONFormat.Format(matGpTity);
  91. foreach (UltraGridRow uRow in ultraGrid3.Rows)
  92. {
  93. if (Convert.ToBoolean(uRow.Cells["CHOOSE"].Text) == true)
  94. {
  95. ArrayList list = new ArrayList();
  96. string strLocat = uRow.Cells["LOCATION_NO"].Value.ToString();
  97. string strLayNo = uRow.Cells["LARY_NO"].Text.Trim();
  98. if (strLocat == "" || strLayNo == "")
  99. {
  100. MessageUtil.ShowTips("目标库位和层号都不能为空!");
  101. return;
  102. }
  103. if (ugr2.Cells["LOCATION_NO"].Value.ToString() == strLocat && ugr2.Cells["LARY_NO"].Text.ToString() == strLayNo)
  104. {
  105. MessageUtil.ShowTips("目标库位/层号与当前库位/层号一致,请重新选择!");
  106. return;
  107. }
  108. if (uRow.Cells["ACT_COUNT"].Value.ToString() == "0" || uRow.Cells["ACT_COUNT"].Value.ToString() == "")
  109. {
  110. MessageUtil.ShowTips("目标支数不能为空或零!");
  111. return;
  112. }
  113. list.Add(uRow.Cells["ACT_COUNT"].Text.Trim());
  114. list.Add(uRow.Cells["LOCATION_NO"].Value.ToString());//目标库位
  115. list.Add(uRow.Cells["LARY_NO"].Text.Trim());//目标层号
  116. list.Add(this.UserInfo.GetUserOrder());
  117. list.Add(this.UserInfo.GetUserGroup());
  118. list.Add(this.UserInfo.GetUserName());
  119. list.Add(UserInfo.GetDeptid());
  120. list.Add(UserInfo.GetDepartment());
  121. list.Add(ClsLoad.GetDepartIdBySectionId(this.UserInfo.GetDeptid(), this.ob));
  122. list.Add(ClsLoad.GetDepartBySectionId(this.UserInfo.GetDeptid(), this.ob));
  123. list.Add(uRow.Cells["LOCATION_NAME"].Text.Trim());//目标库位名称
  124. list.Add(uRow.Cells["STOW_REASON"].Value.ToString2());
  125. list.Add(ugr1.Cells["ProductFlag"].Text);
  126. list.Add(ugr2.Cells["FLAG_STOVE_NO_ZG"].Text);
  127. parm.Add(list);
  128. m = m + int.Parse(uRow.Cells["ACT_COUNT"].Text.Trim());
  129. }
  130. }
  131. if (m > int.Parse(ugr1.Cells["ActCount"].Text))
  132. {
  133. MessageUtil.ShowTips("倒垛支数不能大于库存支数!");
  134. return;
  135. }
  136. CoreClientParam ccp = new CoreClientParam();
  137. ccp.ServerName = "com.steering.ydm.bc.FrmBcStow";
  138. ccp.MethodName = "doAddLocationNo";
  139. ccp.ServerParams = new object[] {matGpEntity,ugr2.Cells["LOCATION_NO"].Value.ToString(),ugr2.Cells["LARY_NO"].Text.ToString(), parm };
  140. ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  141. if (ccp.ReturnCode != -1)
  142. {
  143. if (ccp.ReturnInfo.Equals("倒垛成功!"))
  144. {
  145. doQueryData();
  146. MessageUtil.ShowTips(ccp.ReturnInfo);
  147. }
  148. else
  149. {
  150. MessageUtil.ShowTips(ccp.ReturnInfo);
  151. }
  152. }
  153. }
  154. /// <summary>
  155. /// 导出
  156. /// </summary>
  157. private void exportData()
  158. {
  159. GridHelper.ulGridToExcel(ultraGrid4, "倒垛历史实绩");
  160. }
  161. /// <summary>
  162. /// 查询
  163. /// </summary>
  164. private void doQueryData()
  165. {
  166. if (ultraTabControl1.SelectedTab.Key == "0")
  167. {
  168. doQueryMat();
  169. }
  170. else
  171. {
  172. doQueryStow();
  173. }
  174. }
  175. /// <summary>
  176. /// 查询库存实绩
  177. /// </summary>
  178. private void doQueryMat()
  179. {
  180. string strRegStart = "";
  181. string strRegEnd = "";
  182. string heatNo = "";
  183. ArrayList parm = new ArrayList();
  184. if (chkRegTime.Checked)
  185. {
  186. strRegStart = RegStartTime.Value.ToString();
  187. strRegEnd = RegEndTime.Value.ToString();
  188. }
  189. if (this.checkHeatNo.Checked)
  190. {
  191. heatNo = this.txt_heatNo.Text.Trim();
  192. }
  193. parm.Add(strRegStart);
  194. parm.Add(strRegEnd);
  195. parm.Add(heatNo);
  196. List<MatBcMEntity> listSource = EntityHelper.GetData<MatBcMEntity>(
  197. "com.steering.ydm.bc.FrmBcStow.doQueryMat", new object[] { parm, arrStorageNo }, this.ob);
  198. matBcMEntityBindingSource.DataSource = listSource;
  199. }
  200. /// <summary>
  201. /// 查询倒垛实绩
  202. /// </summary>
  203. private void doQueryStow()
  204. {
  205. string strRegStart = "";
  206. string strRegEnd = "";
  207. string heatNo = "";
  208. ArrayList parm = new ArrayList();
  209. if (chkRegTime.Checked)
  210. {
  211. strRegStart = RegStartTime.Value.ToString();
  212. strRegEnd = RegEndTime.Value.ToString();
  213. }
  214. if (this.checkHeatNo.Checked)
  215. {
  216. heatNo = this.txt_heatNo.Text.Trim();
  217. }
  218. parm.Add(strRegStart);
  219. parm.Add(strRegEnd);
  220. parm.Add(heatNo);
  221. List<YdmBcStowlistEntity> listSource = EntityHelper.GetData<YdmBcStowlistEntity>(
  222. "com.steering.ydm.bc.FrmBcStow.doQueryStow", new object[] { parm,arrStorageNo }, this.ob);
  223. ydmBcStowlistEntityBindingSource.DataSource = listSource;
  224. }
  225. private bool CheckQuery()
  226. {
  227. if (DataTimeUtil.JudgeTime(DateTime.Parse(RegStartTime.Value.ToString()), DateTime.Parse(RegEndTime.Value.ToString())) == 0)
  228. {
  229. MessageUtil.ShowTips("开始时间不能大于结束时间!");
  230. return false;
  231. }
  232. if (checkHeatNo.Checked && string.IsNullOrEmpty(this.txt_heatNo.Text.Trim()))
  233. {
  234. MessageBox.Show("请输入判定炉号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  235. return false;
  236. }
  237. return true;
  238. }
  239. private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
  240. {
  241. ultraGrid1.UpdateData();
  242. ArrayList pram = new ArrayList();
  243. UltraGridRow ugr = this.ultraGrid1.ActiveRow;
  244. if (ugr == null) return;
  245. if (ugr.IsFilterRow) return;
  246. pram.Add(ugr.Cells["JudgeStoveNo"].Value.ToString());
  247. pram.Add(ugr.Cells["BatchNo"].Text.ToString());
  248. pram.Add(ugr.Cells["BatchGroudNo"].Text.ToString());
  249. pram.Add(ugr.Cells["StorageNo"].Text.ToString());
  250. pram.Add(ugr.Cells["PlineCode"].Text.ToString());
  251. DataTable dt = ServerHelper.GetData("com.steering.ydm.bc.FrmBcStow.queryStow", new object[] { pram, ugr.Cells["BarCode"].Text.ToString() }, ob);
  252. GridHelper.CopyDataToDatatable(dt, this.dataStow, true);
  253. GridHelper.RefreshAndAutoSize(ultraGrid2);
  254. }
  255. public void getLocation(string storageNo)
  256. {
  257. DataTable dt = ServerHelper.GetData("com.steering.ydm.bc.FrmBcStow.getLocationNo", new object[] { storageNo }, ob);
  258. if (dt != null && dt.Rows.Count > 0)
  259. {
  260. Object[] obj = new Object[] { "", "" };
  261. DataRow dr = dt.NewRow();
  262. dr.ItemArray = obj;
  263. dt.Rows.InsertAt(dr, 0);
  264. }
  265. }
  266. private void SetComboItemHeight(UltraComboEditor cmb)
  267. {
  268. foreach (ValueListItem item in cmb.Items)
  269. {
  270. if (Regex.IsMatch(item.DisplayText, @"[\u4e00-\u9fa5]+"))
  271. {
  272. item.Appearance.FontData.SizeInPoints = 9.0F;
  273. }
  274. else
  275. {
  276. item.Appearance.FontData.SizeInPoints = 10.5F;
  277. }
  278. }
  279. }
  280. private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
  281. {
  282. if (toolMenu == null) return;
  283. if (ultraTabControl1.SelectedTab.Key == "0")
  284. {
  285. if (toolMenu.Toolbars[0].Tools.Exists("Add"))
  286. {
  287. toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.True;
  288. }
  289. if (toolMenu.Toolbars[0].Tools.Exists("Export"))
  290. {
  291. toolMenu.Toolbars[0].Tools["Export"].InstanceProps.Visible = DefaultableBoolean.False;
  292. }
  293. this.chkRegTime.Text = "入库时间";
  294. }
  295. else
  296. {
  297. if (toolMenu.Toolbars[0].Tools.Exists("Add"))
  298. {
  299. toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.False;
  300. }
  301. if (toolMenu.Toolbars[0].Tools.Exists("Export"))
  302. {
  303. toolMenu.Toolbars[0].Tools["Export"].InstanceProps.Visible = DefaultableBoolean.True;
  304. }
  305. this.chkRegTime.Text = "倒垛时间";
  306. }
  307. }
  308. private void checkHeatNo_CheckedChanged(object sender, EventArgs e)
  309. {
  310. this.txt_heatNo.Enabled = this.checkHeatNo.Checked;
  311. }
  312. private void chkRegTime_CheckedChanged(object sender, EventArgs e)
  313. {
  314. this.RegStartTime.Enabled = this.chkRegTime.Checked;
  315. this.RegEndTime.Enabled = this.chkRegTime.Checked;
  316. }
  317. private void cmbLocationNo_EditorButtonClick(object sender, EditorButtonEventArgs e)
  318. {
  319. UltraGridRow uRow = this.ultraGrid1.ActiveRow;
  320. if (uRow == null)
  321. {
  322. return;
  323. }
  324. this.ultraGrid3.UpdateData();
  325. DataTable dt = ServerHelper.GetData("com.steering.ydm.bc.FrmFilpInStorage.doQueryLocation",
  326. new object[] { uRow.Cells["StorageNo"].Text }, ob);
  327. dt.Columns["LOCATION_NAME"].Caption = "料位名称";
  328. BaseInfoPopup baseInfo = new BaseInfoPopup(dt, "LOCATION_NAME", "LOCATION_NO");
  329. baseInfo.Shown += new EventHandler((a, b) =>
  330. {
  331. var actRow = baseInfo.UltraGrid1.Rows.AsQueryable().Where(
  332. c => c.GetValue("LOCATION_NO") == this.cmbLocationNo.Tag.ToString2()).FirstOrDefault();
  333. if (actRow != null) actRow.Activate();
  334. });
  335. if (baseInfo.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  336. {
  337. //cmbLocationNo.Tag = baseInfo.ChoicedRow.GetValue("LOCATION_NO");
  338. //cmbLocationNo.Text = baseInfo.ChoicedRow.GetValue("LOCATION_NAME");
  339. this.ultraGrid3.ActiveCell.Value = baseInfo.ChoicedRow.GetValue("LOCATION_NAME");
  340. this.ultraGrid3.ActiveCell.Row.Cells["LOCATION_NO"].Value = baseInfo.ChoicedRow.GetValue("LOCATION_NO");
  341. }
  342. }
  343. private void ultraGrid3_AfterRowInsert(object sender, RowEventArgs e)
  344. {
  345. e.Row.Cells["LARY_NO"].Value = cmbLayNo.Items[0].DataValue.ToString();
  346. }
  347. }
  348. }