FrmCollarOutBound.cs 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005
  1. using com.steering.mes.mcp.entity;
  2. using Core.Mes.Client.Comm.Control;
  3. using Core.Mes.Client.Comm.Format;
  4. using Core.Mes.Client.Comm.Server;
  5. using Core.Mes.Client.Comm.Tool;
  6. using Core.StlMes.Client.Mcp.BaseMethod;
  7. using Core.StlMes.Client.Mcp.CollarMaterial;
  8. using Core.StlMes.Client.Mcp.Common;
  9. using Core.StlMes.Client.Mcp.Control;
  10. using Core.StlMes.Client.Mcp.Entity;
  11. using CoreFS.CA06;
  12. using Infragistics.Win;
  13. using Infragistics.Win.UltraWinGrid;
  14. using System;
  15. using System.Collections;
  16. using System.Collections.Generic;
  17. using System.ComponentModel;
  18. using System.Data;
  19. using System.Drawing;
  20. using System.Linq;
  21. using System.Text;
  22. using System.Threading;
  23. using System.Windows.Forms;
  24. namespace Core.StlMes.Client.Mcp.CollarLibrary
  25. {
  26. public partial class FrmCollarOutBound : FrmBase
  27. {
  28. private string strOutbound = "800803";//出库类型编码
  29. private string strOutname = "";//出库类型名称
  30. private TalentICTGXControl.TalentICTGXClass icClass;
  31. private string[] storageArr = null;
  32. private string departId = "";
  33. private string departMent = "";
  34. public FrmCollarOutBound()
  35. {
  36. InitializeComponent();
  37. try
  38. {
  39. string[] portnames = System.IO.Ports.SerialPort.GetPortNames(); //获取计算机串口数组
  40. if (portnames is Infragistics.Win.UltraWinGrid.Nullable || portnames.Length < 1)
  41. {
  42. portnames = new string[10] { "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "COM10" };
  43. }
  44. txtCom.DataSource = portnames;
  45. this.txtCom.SelectedIndex = 0;
  46. }
  47. catch (Exception eex3)
  48. {
  49. MessageBox.Show(eex3.Message);
  50. }
  51. }
  52. private void FrmCollarOutBound_Load(object sender, EventArgs e)
  53. {
  54. RegStartTime.Value = DateTime.Parse(DateTime.Today.ToString("yyyy-MM-dd") + " 00:00:00");
  55. RegEndTime.Value = DateTime.Parse(DateTime.Today.AddDays(1).AddSeconds(-1).ToString("yyyy-MM-dd") + " 23:59:59");
  56. EntityHelper.ShowGridCaption<CouplingMatDealEntity>(ultraGrid2.DisplayLayout.Bands[0]);
  57. DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.common.WarehousePermissions.getKepNo", null, this.ob);
  58. cmbMaterial.DataSource = dt;
  59. cmbMaterial.DisplayMember = "KEP_NO";
  60. PipeManageClass.SetComboItemHeight(cmbMaterial);
  61. cmbKenNo.DataSource = dt;
  62. cmbKenNo.DisplayMember = "KEP_NO";
  63. PipeManageClass.SetComboItemHeight(cmbKenNo);
  64. PipeManageClass.setUltraGridColumnInput(ultraGrid2, new string[] { "DealNum" });//支数
  65. PipeManageClass.setUltraGridColumnMaxInput(ultraGrid2, new string[] { "DealWt" });//重量
  66. storageArr = BaseHelper.WarehousePermissionsStore1(this.ValidDataPurviewIds, ob);
  67. departId = BaseHelper.GetDepartIdBySectionId1(this.UserInfo.GetDeptid(), this.ob);
  68. departMent = BaseHelper.GetDepartBySectionId1(this.UserInfo.GetDeptid(), this.ob);
  69. StorInfo();
  70. getStoreAll();
  71. }
  72. /// <summary>
  73. /// 重写基类方法
  74. /// </summary>
  75. /// <param name="sender"></param>
  76. /// <param name="ToolbarKey"></param>
  77. public override void ToolBar_Click(object sender, string ToolbarKey)
  78. {
  79. switch (ToolbarKey)
  80. {
  81. case "Query":
  82. doQuery();
  83. break;
  84. case "Add":
  85. doAdd();
  86. break;
  87. case "Delete":
  88. doDelete();
  89. break;
  90. //case "Refresh":
  91. // doRefresh();
  92. // break;
  93. case "Export":
  94. if (ultraTabControl1.SelectedTab.Key.Equals("Library1"))
  95. {
  96. GridHelper.ulGridToExcel(ultraGrid1, "库存实绩表");
  97. }
  98. else
  99. {
  100. GridHelper.ulGridToExcel(ultraGrid2, "倒库实绩表");
  101. }
  102. break;
  103. case "Close":
  104. this.Close();
  105. break;
  106. case "addWriteCard":
  107. addWriteCard();
  108. break;
  109. }
  110. }
  111. private void doQuery()
  112. {
  113. string strRegStart = "";
  114. string strRegEnd = "";
  115. string strWare = "";//仓库号
  116. string strMat = "";//框号
  117. string strFurnace = "";
  118. ArrayList pram = new ArrayList();
  119. if (!CheckQuery()) return;
  120. if (chkWarehous.Checked)
  121. {
  122. strWare = cmbWarehous.Value.ToString();
  123. }
  124. if (chkMaterial.Checked)
  125. {
  126. strMat = cmbMaterial.Value.ToString();
  127. }
  128. if (chkRegTime.Checked)
  129. {
  130. strRegStart = RegStartTime.Value.ToString();
  131. strRegEnd = RegEndTime.Value.ToString();
  132. }
  133. if (chkFurnace.Checked)
  134. {
  135. strFurnace = txtFurnace.Text.Trim();
  136. }
  137. pram.Clear();
  138. pram.Add(strWare);
  139. pram.Add(strMat);
  140. pram.Add(strFurnace);
  141. pram.Add(strRegStart);
  142. pram.Add(strRegStart);
  143. pram.Add(strRegStart);
  144. pram.Add(strRegEnd);
  145. pram.Add(strRegEnd);
  146. string[] str = this.ValidDataPurviewIds;
  147. //获取用户对应科室ID
  148. string User = this.UserInfo.GetDeptid();
  149. string StorageType = "";//根据传递的参数获取仓库类别
  150. string StorageAttr = "";////根据传递的参数获取仓库类型
  151. if (CustomInfo != "")
  152. {
  153. string[] strflg = CustomInfo.ToString().Split(new char[] { ',' });
  154. StorageType = strflg[0];
  155. StorageAttr = strflg[1];
  156. }
  157. string[] arr = null;
  158. DataTable ds = ServerHelper.GetData("com.steering.mes.mcp.common.WarehousePermissions.getStoreNo", new object[] { StorageType, StorageAttr, str }, this.ob);
  159. if (ds.Rows.Count > 0)
  160. {
  161. arr = new string[ds.Rows.Count];
  162. for (int i = 0; i < ds.Rows.Count; i++)
  163. {
  164. arr[i] = ds.Rows[i][0].ToString();
  165. }
  166. }
  167. if (arr == null)
  168. {
  169. MessageUtil.ShowTips("无仓库权限!");
  170. return;
  171. }
  172. if (arr.Length < 1)
  173. {
  174. return;
  175. }
  176. if (ultraTabControl1.SelectedTab.Key.Equals("Library1"))
  177. {
  178. DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.CollarLibrary.FrmCollarOutBound.doQueryInfoResult", new object[] { pram, arr }, ob);
  179. GridHelper.CopyDataToDatatable(dt, this.dataStorage, true);
  180. }
  181. else
  182. {
  183. pram.Add(strOutbound);
  184. List<CouplingMatDealEntity> listSource = EntityHelper.GetData<CouplingMatDealEntity>
  185. ("com.steering.mes.mcp.CollarLibrary.FrmCollarOutBound.queryOutPerfo", new object[] { pram, arr }, this.ob);
  186. couplingMatDealEntityBindingSource.DataSource = listSource;
  187. GridHelper.RefreshAndAutoSize(ultraGrid2);
  188. }
  189. }
  190. /// <summary>
  191. /// 获取仓库
  192. /// </summary>
  193. private void StorInfo()
  194. {
  195. string[] str = this.ValidDataPurviewIds;
  196. ArrayList arList = new ArrayList();
  197. //获取用户对应科室ID
  198. string User = this.UserInfo.GetDeptid();
  199. string StorageType = "";//根据传递的参数获取仓库类别
  200. string StorageAttr = "";////根据传递的参数获取仓库类型
  201. if (CustomInfo != "")
  202. {
  203. string[] strflg = CustomInfo.ToString().Split(new char[] { ',' });
  204. StorageType = strflg[0];
  205. StorageAttr = strflg[1];
  206. }
  207. DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.common.WarehousePermissions.getStoreNo", new object[] { StorageType, StorageAttr, str }, this.ob);
  208. cmbWarehous.DataSource = dt;
  209. cmbWarehous.DisplayMember = "STORAGE_NAME";
  210. cmbWarehous.ValueMember = "STORAGE_NO";
  211. PipeManageClass.SetComboItemHeight(cmbWarehous);
  212. CKstorage.DataSource = dt;
  213. CKstorage.DisplayMember = "STORAGE_NAME";
  214. CKstorage.ValueMember = "STORAGE_NO";
  215. PipeManageClass.SetComboItemHeight(CKstorage);
  216. }
  217. /// <summary>
  218. /// 获取所有的目标库
  219. /// </summary>
  220. private void getStoreAll()
  221. {
  222. //string StorageType = "";//根据传递的参数获取仓库类别
  223. //string StorageAttr = "";////根据传递的参数获取仓库类型
  224. //if (CustomInfo != "")
  225. //{
  226. // string[] strflg = CustomInfo.ToString().Split(new char[] { ',' });
  227. // StorageType = strflg[0];
  228. // StorageAttr = strflg[1];
  229. //}
  230. //string[] arr = McpBaseHelper.WarehousePermissions(this.CustomInfo, this.ValidDataPurviewIds, this.ob);
  231. string[] arr = { "XJG8", "TJG1", "XJG1" };
  232. DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.common.WarehousePermissions.getStoreAll", new object[] { arr }, this.ob);
  233. cmbWareEdi.DataSource = dt;
  234. cmbWareEdi.DisplayMember = "STORAGE_NAME";
  235. cmbWareEdi.ValueMember = "STORAGE_NO";
  236. PipeManageClass.SetComboItemHeight(cmbWareEdi);
  237. mbStorage.DataSource = dt;
  238. mbStorage.DisplayMember = "STORAGE_NAME";
  239. mbStorage.ValueMember = "STORAGE_NO";
  240. PipeManageClass.SetComboItemHeight(mbStorage);
  241. }
  242. ///查询时验证必填项
  243. private bool CheckQuery()
  244. {
  245. if (chkRegTime.Checked&&DataTimeUtil.JudgeTime(DateTime.Parse(RegStartTime.Value.ToString()), DateTime.Parse(RegEndTime.Value.ToString())) == 0)
  246. {
  247. MessageUtil.ShowTips("开始时间不能大于结束时间!");
  248. return false;
  249. }
  250. if (chkWarehous.Checked && string.IsNullOrEmpty(cmbWarehous.Text.Trim()))
  251. {
  252. MessageBox.Show("请选择仓库号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  253. return false;
  254. }
  255. //if (chkMaterial.Checked && string.IsNullOrEmpty(cmbMaterial.Text.Trim()))
  256. //{
  257. // MessageBox.Show("请选择框号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  258. // return false;
  259. //}
  260. if (chkFurnace.Checked && string.IsNullOrEmpty(txtFurnace.Text.Trim()))
  261. {
  262. MessageBox.Show("请输入炉号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  263. return false;
  264. }
  265. return true;
  266. }
  267. /// <summary>
  268. /// 验证Checked是否勾选,显示控件可编辑 打勾表示可编辑,不打勾表示不可编辑
  269. /// </summary>
  270. /// <param name="sender"></param>
  271. /// <param name="e"></param>
  272. private void chk_CheckedChanged(object sender, EventArgs e)
  273. {
  274. if (chkWarehous.Checked) { cmbWarehous.Enabled = true; } else { cmbWarehous.Enabled = false; }
  275. if (chkMaterial.Checked) { cmbMaterial.Enabled = true; } else { cmbMaterial.Enabled = false; }
  276. if (chkFurnace.Checked) { txtFurnace.Enabled = true; } else { txtFurnace.Enabled = false; }
  277. if (chkRegTime.Checked) { RegStartTime.Enabled = true; RegEndTime.Enabled = true; } else { RegStartTime.Enabled = false; RegEndTime.Enabled = false; }
  278. }
  279. private void FrmCollarOutBound_Shown(object sender, EventArgs e)
  280. {
  281. toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.False;
  282. }
  283. private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
  284. {
  285. if (toolMenu == null) return;
  286. if (ultraTabControl1.SelectedTab.Key.Equals("Library1"))
  287. {
  288. this.chkRegTime.Text = "入库时间";
  289. toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.False;
  290. toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.True;
  291. //chkMaterial.Visible = true;
  292. //cmbMaterial.Visible = true;
  293. chkWarehous.Visible = true;
  294. cmbWarehous.Visible = true;
  295. label1.Visible = true;
  296. txtCom.Visible = true;
  297. }
  298. else
  299. {
  300. this.chkRegTime.Text = "倒库时间";
  301. toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.True;
  302. toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.False;
  303. //chkMaterial.Visible = false;
  304. //cmbMaterial.Visible = false;
  305. chkWarehous.Visible = false;
  306. cmbWarehous.Visible = false;
  307. chkWarehous.Checked = false;
  308. label1.Visible = false;
  309. txtCom.Visible = false;
  310. }
  311. }
  312. /// <summary>
  313. /// 回车键查询
  314. /// </summary>
  315. /// <param name="sender"></param>
  316. /// <param name="e"></param>
  317. private void txtFurnace_KeyDown(object sender, KeyEventArgs e)
  318. {
  319. if (e.KeyValue == 13)
  320. {
  321. doQuery();
  322. }
  323. }
  324. private void ultraGrid1_AfterSelectChange(object sender, Infragistics.Win.UltraWinGrid.AfterSelectChangeEventArgs e)
  325. {
  326. foreach (UltraGridRow uRow in ultraGrid1.Selected.Rows)
  327. {
  328. if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow))
  329. {
  330. uRow.Cells["CHOOSE"].Value = true;
  331. }
  332. }
  333. }
  334. /// <summary>
  335. /// 新增
  336. /// </summary>
  337. private void doAdd()
  338. {
  339. this.ultraGrid1.UpdateData();
  340. ArrayList list = new ArrayList();
  341. //查询出库类型
  342. DataTable dt = PipeManageClass.getComTypeInfo(strOutbound, ob);
  343. if (dt.Rows.Count >= 1)
  344. {
  345. strOutname = dt.Rows[0]["BASENAME"].ToString();
  346. }
  347. else
  348. {
  349. MessageUtil.ShowTips("出库类型不能为空,请确认基础信息是否有对应出库类型信息!");
  350. return;
  351. }
  352. int num = 0;
  353. if (cmbWareEdi.SelectedIndex == -1)
  354. {
  355. MessageUtil.ShowTips("请选择目标库号!");
  356. return;
  357. }
  358. ArrayList List = new ArrayList();
  359. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow uRow in ultraGrid1.Rows)
  360. {
  361. if (Convert.ToBoolean(uRow.Cells["CHOOSE"].Text) == true)
  362. {
  363. num++;
  364. if (uRow.Cells["PLA_COUNT"].Text.Trim() == "")
  365. {
  366. MessageUtil.ShowTips("请输入个数!");
  367. return;
  368. }
  369. if (double.Parse(uRow.Cells["PLA_COUNT"].Value.ToString()) > double.Parse(uRow.Cells["PRO_NUM"].Value.ToString()))
  370. {
  371. MessageUtil.ShowTips("倒库出库个数不能大于库存个数!");
  372. return;
  373. }
  374. ArrayList matList = new ArrayList();
  375. matList.Add(uRow.Cells["JUDGE_STOVE_NO"].Text);
  376. matList.Add(uRow.Cells["BATCH_NO"].Text);
  377. //DataTable ds = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmPipeMoveOut.getMatStaus", new object[] { matList }, this.ob);
  378. //if (int.Parse(ds.Rows[0]["ACOUNT"].ToString())>0)
  379. //{
  380. // MessageUtil.ShowTips("此炉【" + uRow.Cells["JUDGE_STOVE_NO"].Text + "】已被做计划,不允许进行倒库!");
  381. // return;
  382. //}
  383. ArrayList pram = new ArrayList();
  384. pram.Add(uRow.Cells["JUDGE_STOVE_NO"].Text.Trim());
  385. pram.Add(uRow.Cells["BATCH_NO"].Text.Trim());
  386. pram.Add(uRow.Cells["RESULT_NO"].Text.Trim());
  387. pram.Add(uRow.Cells["ZY_PLAN_ID"].Text.Trim());
  388. pram.Add(uRow.Cells["STORAGE_NO"].Text.Trim());
  389. pram.Add(uRow.Cells["KEP_NO"].Text.Trim());
  390. pram.Add(cmbWareEdi.Value.ToString());
  391. pram.Add(this.UserInfo.GetUserOrder());
  392. pram.Add(this.UserInfo.GetUserGroup());
  393. pram.Add(this.UserInfo.GetUserName());
  394. pram.Add(uRow.Cells["PLA_COUNT"].Value.ToString());
  395. pram.Add(strOutbound);
  396. pram.Add(strOutname);
  397. pram.Add(cmbKenNo.Text.ToString());
  398. pram.Add(uRow.Cells["WO_ID"].Value.ToString());
  399. pram.Add(uRow.Cells["MAT_NO"].Value.ToString());
  400. pram.Add(uRow.Cells["MAT_NO_XH"].Value.ToString());
  401. pram.Add(uRow.Cells["PLA_WEIGHT"].Value.ToString());
  402. List.Add(pram);
  403. }
  404. }
  405. if (num == 0)
  406. {
  407. MessageUtil.ShowTips("请选择需要操作的数据!");
  408. return;
  409. }
  410. if (MessageUtil.ShowYesNoAndQuestion("是否确认倒库?") == DialogResult.No) return;
  411. CoreClientParam ccp = new CoreClientParam();
  412. try
  413. {
  414. this.Cursor = Cursors.WaitCursor; //控制鼠标的样式为等待
  415. if (Constant.WaitingForm == null)
  416. {
  417. Constant.WaitingForm = new WaitingForm();
  418. }
  419. Constant.WaitingForm.ShowToUser = true;
  420. Constant.WaitingForm.Show();
  421. Constant.WaitingForm.Update();
  422. ccp.ServerName = "com.steering.mes.mcp.CollarLibrary.FrmCollarOutBound";
  423. ccp.MethodName = "addOutLibResult";
  424. ccp.ServerParams = new object[] { List };
  425. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  426. this.Cursor = Cursors.Default;
  427. Constant.WaitingForm.ShowToUser = false;
  428. Constant.WaitingForm.Close();
  429. Constant.WaitingForm = null;
  430. }
  431. catch (Exception ex)
  432. {
  433. this.Cursor = Cursors.Default;
  434. Constant.WaitingForm.ShowToUser = false;
  435. Constant.WaitingForm.Close();
  436. Constant.WaitingForm = null;
  437. }
  438. if (ccp.ReturnCode == -1) return;
  439. MessageUtil.ShowTips(ccp.ReturnInfo);
  440. if (ccp.ReturnInfo.Equals("倒库出库成功!"))
  441. {
  442. cmbKenNo.Text = "";
  443. cmbWareEdi.Text = "";
  444. doQuery();
  445. }
  446. }
  447. /// <summary>
  448. /// 作废
  449. /// </summary>
  450. private void doDelete()
  451. {
  452. UltraGridRow ugr = this.ultraGrid2.ActiveRow;
  453. int count = 0;
  454. if (ugr == null) return;
  455. ArrayList list = new ArrayList();
  456. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow uRow in ultraGrid2.Rows)
  457. {
  458. if (Convert.ToBoolean(uRow.Cells["CHOOSE"].Text) == true)
  459. {
  460. count += 1;
  461. ArrayList pram = new ArrayList();
  462. pram.Add(uRow.Cells["dealTypeCode"].Text.Trim());
  463. pram.Add(uRow.Cells["resultNo"].Text.Trim());
  464. pram.Add(uRow.Cells["zyPlanId"].Text.Trim());
  465. pram.Add(uRow.Cells["matNo"].Text.Trim());
  466. pram.Add(uRow.Cells["kepNo"].Value.ToString());
  467. pram.Add(uRow.Cells["storageNo"].Value.ToString());
  468. pram.Add(uRow.Cells["tarKepNo"].Value.ToString());
  469. pram.Add(uRow.Cells["tarStorageNo"].Value.ToString());
  470. pram.Add(uRow.Cells["dealNum"].Value.ToString());
  471. pram.Add(uRow.Cells["dealWt"].Value.ToString());
  472. pram.Add(this.UserInfo.GetUserName());
  473. pram.Add(uRow.Cells["dealOrde"].Text.ToString());
  474. list.Add(pram);
  475. }
  476. }
  477. if (count == 0) { MessageUtil.ShowTips("请选择要撤销的数据"); return; }
  478. if (MessageUtil.ShowYesNoAndQuestion("是否确认撤销?") == DialogResult.No) return;
  479. CoreClientParam ccp = new CoreClientParam();
  480. try
  481. {
  482. this.Cursor = Cursors.WaitCursor; //控制鼠标的样式为等待
  483. if (Constant.WaitingForm == null)
  484. {
  485. Constant.WaitingForm = new WaitingForm();
  486. }
  487. Constant.WaitingForm.ShowToUser = true;
  488. Constant.WaitingForm.Show();
  489. Constant.WaitingForm.Update();
  490. ccp.ServerName = "com.steering.mes.mcp.CollarLibrary.FrmCollarOutBound";
  491. ccp.MethodName = "deleteOutLibResult";
  492. ccp.ServerParams = new object[] { list };
  493. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  494. this.Cursor = Cursors.Default;
  495. Constant.WaitingForm.ShowToUser = false;
  496. Constant.WaitingForm.Close();
  497. Constant.WaitingForm = null;
  498. }
  499. catch (Exception ex)
  500. {
  501. this.Cursor = Cursors.Default;
  502. Constant.WaitingForm.ShowToUser = false;
  503. Constant.WaitingForm.Close();
  504. Constant.WaitingForm = null;
  505. }
  506. if (ccp.ReturnCode == -1) return;
  507. MessageUtil.ShowTips(ccp.ReturnInfo);
  508. if (ccp.ReturnInfo.Equals("撤销成功!"))
  509. {
  510. doQuery();
  511. }
  512. }
  513. /// <summary>
  514. /// 写卡倒库
  515. /// </summary>
  516. private void addWriteCard()
  517. {
  518. this.ultraGrid1.UpdateData();
  519. string dateTim = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  520. string outdoc = "";
  521. string matTarStorageNo = "";//计划去向
  522. //查询出库类型
  523. DataTable dt = PipeManageClass.getComTypeInfo(strOutbound, ob);
  524. if (dt.Rows.Count >= 1)
  525. {
  526. strOutname = dt.Rows[0]["BASENAME"].ToString();
  527. }
  528. else
  529. {
  530. MessageUtil.ShowTips("出库类型不能为空,请确认基础信息是否有对应出库类型信息!");
  531. return;
  532. }
  533. IQueryable<UltraGridRow> checkMagRows = this.ultraGrid1.Rows.AsQueryable().Where(" CHOOSE = 'True'");
  534. if (checkMagRows.Count() == 0)
  535. {
  536. MessageUtil.ShowTips("请勾选需要倒库的物料!");
  537. return;
  538. }
  539. string tarStoreNo = this.cmbWareEdi.Value.ToString2();
  540. string tarStoreName = this.cmbWareEdi.Text;
  541. if (tarStoreNo.Equals(""))
  542. {
  543. MessageUtil.ShowTips("请选择目标仓库!");
  544. return;
  545. }
  546. //生成交易单号
  547. DataTable dsDoc = ServerHelper.GetData("com.steering.mes.mcp.CollarLibrary.FrmCollarOutBound.getOutDoc", new object[] { tarStoreNo }, ob);
  548. if (dsDoc.Rows.Count > 0)
  549. {
  550. outdoc = dsDoc.Rows[0]["OUTSTOCK_DOC"].ToString();
  551. }
  552. ArrayList parmlist = new ArrayList();
  553. ArrayList list = new ArrayList();
  554. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow uRow in ultraGrid1.Rows)
  555. {
  556. if (Convert.ToBoolean(uRow.Cells["CHOOSE"].Text) == true)
  557. {
  558. if (!StringUtil.IsInt(uRow.Cells["PLA_COUNT"].Text.ToString3()) || uRow.Cells["PLA_COUNT"].Text.Equals(""))
  559. {
  560. MessageUtil.ShowTips(uRow.Cells["JUDGE_STOVE_NO"].Text + "倒库个数请输入整数!");
  561. return;
  562. }
  563. if (double.Parse(uRow.Cells["PLA_COUNT"].Value.ToString()) > double.Parse(uRow.Cells["PRO_NUM"].Value.ToString()))
  564. {
  565. MessageUtil.ShowTips("倒库出库个数不能大于库存个数!");
  566. return;
  567. }
  568. ArrayList childlist = new ArrayList();
  569. childlist.Add(uRow.Cells["MAT_NO"].Text.ToString3());
  570. childlist.Add(uRow.Cells["RESULT_NO"].Text.ToString3());
  571. childlist.Add(uRow.Cells["ZY_PLAN_ID"].Text.ToString3());
  572. childlist.Add(uRow.Cells["PLA_COUNT"].Text.ToString3());
  573. childlist.Add(uRow.Cells["PLA_WEIGHT"].Text.ToString3());
  574. childlist.Add(uRow.Cells["WO_ID"].Text.ToString3());
  575. childlist.Add(uRow.Cells["STORAGE_NO"].Text.ToString3());
  576. childlist.Add(uRow.Cells["MAT_NO_XH"].Text.ToString3());
  577. childlist.Add(uRow.Cells["PRO_NUM"].Text.ToString3());
  578. childlist.Add(uRow.Cells["PRO_WT"].Text.ToString3());
  579. parmlist.Add(childlist);
  580. }
  581. }
  582. list.Add(this.cmbWareEdi.Value.ToString());
  583. list.Add(UserInfo.GetUserName());
  584. list.Add(UserInfo.GetUserOrder());
  585. list.Add(UserInfo.GetUserGroup());
  586. list.Add(UserInfo.GetDeptid());
  587. list.Add(UserInfo.GetDepartment());
  588. list.Add(this.cmbWareEdi.Text.ToString());
  589. list.Add(outdoc);
  590. list.Add(strOutbound);
  591. list.Add(strOutname);
  592. list.Add(cmbKenNo.Text.ToString());
  593. if (!WriteCard(outdoc))
  594. {
  595. disConnect();
  596. return;
  597. }
  598. if (MessageUtil.ShowYesNoAndQuestion("是否倒库?") == DialogResult.No)
  599. {
  600. clearCard();
  601. return;
  602. }
  603. list.Add(departId);
  604. list.Add(departMent);
  605. list.Add(carNo);
  606. list.Add(cardNo);
  607. list.Add(diver);
  608. CoreClientParam ccp = new CoreClientParam();
  609. ccp.ServerName = "com.steering.mes.mcp.CollarLibrary.FrmCollarOutBound";
  610. ccp.MethodName = "doAdd";
  611. ccp.ServerParams = new object[] { parmlist, list, storageArr, outdoc};
  612. ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  613. if (ccp.ReturnCode != -1)
  614. {
  615. if (ccp.ReturnInfo.Equals("倒库成功!"))
  616. {
  617. doQuery();
  618. MessageUtil.ShowTips(ccp.ReturnInfo);
  619. }
  620. else
  621. {
  622. clearCard();
  623. MessageUtil.ShowTips(ccp.ReturnInfo);
  624. }
  625. }
  626. else
  627. {
  628. clearCard();
  629. MessageUtil.ShowTips(ccp.ReturnInfo);
  630. }
  631. }
  632. /// <summary>
  633. /// 写IC卡信息
  634. /// </summary>
  635. /// <param name="doc"></param>
  636. /// <param name="carNo"></param>
  637. /// <returns></returns>
  638. private bool WriteCard(string outdoc)
  639. {
  640. WaitingForm2 wf = new WaitingForm2("正在加载,请稍候....");
  641. try
  642. {
  643. cardNo = "";
  644. carNo = "";
  645. diver = "";
  646. this.ultraGrid1.UpdateData();
  647. int n = 0;
  648. int tolCount = 0;
  649. double tolWgt = 0.0;
  650. string tarDepart = "";
  651. string tarDepartM = "";
  652. IQueryable<UltraGridRow> checkMagRows = this.ultraGrid1.Rows.AsQueryable().Where("CHOOSE = 'True'");
  653. //foreach (UltraGridRow uRow in checkMagRows)
  654. //{
  655. // tolCount = tolCount + int.Parse(uRow.Cells["PRO_NUM"].Text.Replace("_", "").ToString3());
  656. // n++;
  657. //}
  658. //if (n > 1)
  659. //{
  660. // if (!checkMagRows.ToArray()[0].Cells["StorageNo"].Text.Trim().Equals(checkMagRows.ToArray()[1].Cells["StorageNo"].Text.Trim()))
  661. // {
  662. // MessageUtil.ShowTips("倒运炉信息必须在同一仓库里!");
  663. // return false;
  664. // }
  665. //}
  666. //else if (n > 2)
  667. //{
  668. // if (!(checkMagRows.ToArray()[0].Cells["StorageNo"].Text.Trim().Equals(checkMagRows.ToArray()[1].Cells["StorageNo"].Text.Trim()) && checkMagRows.ToArray()[0].Cells["StorageNo"].Text.Trim().Equals(checkMagRows.ToArray()[2].Cells["StorageNo"].Text.Trim())))
  669. // {
  670. // MessageUtil.ShowTips("倒运炉信息必须在同一仓库里!");
  671. // return false;
  672. // }
  673. //}
  674. string storeNo = checkMagRows.ToArray()[0].Cells["STORAGE_NO"].Value.ToString();
  675. //DataTable ds = ServerHelper.GetData("com.steering.ydm.bc.FrmFilpOutStorage.doQueryTarDepart", new object[] { this.ultraComboEditor2.Value.ToString() }, ob);
  676. //DataTable ds = ServerHelper.GetData("com.steering.mes.SendRecive.FrmFilpOutStorage.doQueryTarDepart", new object[] { this.cmbWareEdi.Value.ToString() }, ob);
  677. //if (ds.Rows.Count > 0)
  678. //{
  679. // tarDepart = ds.Rows[0]["MANAGEMENT_NO"].ToString();
  680. // tarDepartM = ds.Rows[0]["MANAGEMENT_NAME"].ToString();
  681. //}
  682. if (!ConnectCard(wf))
  683. {
  684. return false;
  685. }
  686. if (!ReadCard(wf))
  687. {
  688. return false;
  689. }
  690. if (icClass == null)
  691. {
  692. wf.Close();
  693. MessageUtil.ShowTips("请放IC卡!");
  694. return false;
  695. }
  696. else
  697. {
  698. if (icClass.Active)
  699. {
  700. icClass.measureid = outdoc;
  701. icClass.taskid = outdoc;//物流任务ID(出库单号)
  702. icClass.sourceunitcode = storeNo;
  703. icClass.sourceunit = checkMagRows.ToArray()[0].Cells["STORAGE_NAME"].Value.ToString();
  704. icClass.sourcecode = storeNo;
  705. icClass.source = checkMagRows.ToArray()[0].Cells["STORAGE_NAME"].Value.ToString();
  706. icClass.targetcode = this.cmbWareEdi.Value.ToString();
  707. icClass.target = this.cmbWareEdi.Text;
  708. icClass.targetunitcode = this.cmbWareEdi.Value.ToString(); ;
  709. icClass.targetunit = this.cmbWareEdi.Text; ;
  710. icClass.RecordCount = 3;
  711. icClass.operatype = "0";
  712. if (!icClass.DoWriteTemp())
  713. {
  714. wf.Close();
  715. MessageUtil.ShowTips("写卡失败!");
  716. return false;
  717. }
  718. if (icClass.Errored == true)
  719. {
  720. wf.Close();
  721. MessageUtil.ShowTips("写卡出现错误,请重写IC卡!");
  722. return false;
  723. }
  724. if (icClass.Active)
  725. {
  726. icClass.AlarmBeep(3);
  727. disConnect();
  728. wf.Close();
  729. return true;
  730. }
  731. }
  732. else
  733. {
  734. wf.Close();
  735. MessageUtil.ShowTips("读卡器失去连接");
  736. return false;
  737. }
  738. }
  739. }
  740. catch
  741. {
  742. return false;
  743. }
  744. finally
  745. {
  746. wf.Close();
  747. }
  748. return true;
  749. }
  750. private string carNo = "";//车号
  751. private string cardNo = "";//卡号
  752. private string diver = "";//司机
  753. /// <summary>
  754. /// 读IC卡信息
  755. /// </summary>
  756. public bool ReadCard(WaitingForm2 wf)
  757. {
  758. icClass.PrepareReadTemp();
  759. if (icClass.DoReadTemp(1, 39))
  760. {
  761. int count = icClass.RecordCount;
  762. if (icClass.carno == null || icClass.driver == null)
  763. {
  764. MessageUtil.ShowTips("IC卡中车号/司机不能为空!");
  765. return false;
  766. }
  767. carNo = icClass.carno.ToString();
  768. cardNo = icClass.ICNo.ToString();
  769. diver = icClass.driver.ToString();
  770. if (count > 0)
  771. {
  772. wf.Close();
  773. MessageUtil.ShowTips("IC卡上已有记录,不允许写卡!");
  774. return false;
  775. }
  776. }
  777. else
  778. {
  779. wf.Close();
  780. MessageUtil.ShowTips("读取IC卡出现错误,请联系相关部门!");
  781. return false;
  782. }
  783. return true;
  784. }
  785. /// <summary>
  786. /// 清卡
  787. /// </summary>
  788. private void clearCard()
  789. {
  790. string dealOrde = "";
  791. WaitingForm2 wf = new WaitingForm2("正在加载,请稍候....");
  792. try
  793. {
  794. if (ConnectCard(wf) == false)
  795. {
  796. disConnect();
  797. return;
  798. }
  799. else
  800. {
  801. icClass.PrepareReadTemp();
  802. if (icClass.DoReadTemp(1, 39))
  803. {
  804. dealOrde = icClass.taskid.ToString2();
  805. carNo = icClass.carno.ToString2();
  806. if (dealOrde != "")
  807. {
  808. //DataTable ds = ServerHelper.GetData("com.steering.ydm.bc.FrmFilpOutStorage.doQueryCount", new object[] { outDoc }, ob);
  809. DataTable ds = ServerHelper.GetData("com.steering.mes.mcp.CollarLibrary.FrmCollarOutBound.doQueryCount", new object[] { dealOrde }, ob);
  810. if (int.Parse(ds.Rows[0][0].ToString2()) > 0)
  811. {
  812. MessageUtil.ShowTips("此卡有未接收倒运记录,不允许清卡!");
  813. return;
  814. }
  815. }
  816. }
  817. else
  818. {
  819. wf.Close();
  820. MessageUtil.ShowTips("读取IC卡出现错误,请联系相关部门!");
  821. }
  822. }
  823. icClass.ClearCard();
  824. icClass.AlarmBeep(1);
  825. }
  826. catch
  827. {
  828. }
  829. finally
  830. {
  831. wf.Close();
  832. disConnect();
  833. }
  834. }
  835. void icClass_OnFindCard()
  836. {
  837. icClass.OnFindCard -= new TalentICTGXControl.ITalentICTGXEvents_OnFindCardEventHandler(icClass_OnFindCard);
  838. icClass.OnDropCard += new TalentICTGXControl.ITalentICTGXEvents_OnDropCardEventHandler(icClass_OnDropCard);
  839. }
  840. void icClass_OnDropCard()
  841. {
  842. //将OnDropCard事件从委托链中删除,并加入OnFindCard事件到委托链中。
  843. //这样就实现了程序中自动寻卡的功能。
  844. icClass.OnDropCard -= new TalentICTGXControl.ITalentICTGXEvents_OnDropCardEventHandler(icClass_OnDropCard);
  845. icClass.OnFindCard += new TalentICTGXControl.ITalentICTGXEvents_OnFindCardEventHandler(icClass_OnFindCard);
  846. }
  847. /// <summary>
  848. /// 连接读卡器
  849. /// </summary>
  850. /// <returns></returns>
  851. private bool ConnectCard(WaitingForm2 wf)
  852. {
  853. //if (icClass == null)
  854. //{
  855. // icClass = new TalentICTGXControl.TalentICTGXClass();
  856. // //委托OnFindCard事件,icClass_OnFindCard是该事件要执行的方法。
  857. // //此事件在当IC卡放到读卡器上时触发。
  858. // icClass.OnFindCard += new TalentICTGXControl.ITalentICTGXEvents_OnFindCardEventHandler(icClass_OnFindCard);
  859. //}
  860. icClass = IcReadWrite.getIcClass();
  861. int comNum = (short)(short.Parse(txtCom.Text.Replace("COM", "")) - 1);
  862. icClass.CommPort = comNum;
  863. if (!icClass.Active)
  864. {
  865. //利用ToFindCard属性连接读卡器,启动OnFindCard事件。
  866. icClass.ToFindCard = true;
  867. if (icClass.Active)
  868. {
  869. //AlarmBeep(int times)方法实现了让IC卡读卡器发出警示音,
  870. //参数为发出几次警示音。
  871. icClass.AlarmBeep(2);
  872. Thread.Sleep(500);
  873. return true;
  874. }
  875. else
  876. {
  877. wf.Close();
  878. MessageUtil.ShowTips("读卡器连接失败!或请切换端口尝试!");
  879. return false;
  880. }
  881. }
  882. return true;
  883. }
  884. ///<summary>
  885. /// 关闭连接
  886. /// </summary>
  887. /// <returns></returns>
  888. private bool disConnect()
  889. {
  890. //return true;
  891. if (icClass.Active)
  892. {
  893. //icClass.AlarmBeep(1);
  894. //设置Active属性为false,则断开与读卡器的连接。
  895. icClass.ToFindCard = false;
  896. icClass.Active = false;
  897. return true;
  898. }
  899. else
  900. {
  901. return true;
  902. }
  903. }
  904. private void ultraGrid2_AfterSelectChange(object sender, AfterSelectChangeEventArgs e)
  905. {
  906. foreach (UltraGridRow uRow in ultraGrid2.Selected.Rows)
  907. {
  908. if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow))
  909. {
  910. uRow.Cells["CHOOSE"].Value = true;
  911. }
  912. }
  913. }
  914. private void ultraGrid1_CellChange(object sender, CellEventArgs e)
  915. {
  916. ultraGrid1.UpdateData();
  917. if (e.Cell.Column.Key.Equals("PLA_COUNT"))
  918. {
  919. if (e.Cell.Row.Cells["PLA_COUNT"].Text.ToString().Trim() == "")
  920. {
  921. e.Cell.Row.Cells["PLA_COUNT"].Value = "0";
  922. }
  923. e.Cell.Row.Cells["PLA_WEIGHT"].Value = double.Parse(e.Cell.Row.Cells["PLA_COUNT"].Value.ToString()) * (double.Parse(e.Cell.Row.Cells["SINGLEWEIGHT"].Value.ToString())/1000);
  924. }
  925. }
  926. }
  927. }