锐腾搅拌上料功能
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

795 lines
34 KiB

5 months ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using DevExpress.XtraEditors;
  9. using ICSSoft.Frame.User.BLL;
  10. using ICSSoft.Base.Language.Tool;
  11. using ICSSoft.Base.UserControl.MessageControl;
  12. using ICSSoft.Frame.Data.BLL;
  13. using System.Data.SqlClient;
  14. using ICSSoft.Base.Config.AppConfig;
  15. using ICSSoft.Frame.Data.Entity;
  16. using ICSSoft.Base.Report.Filter;
  17. using ICSSoft.Base.Config.DBHelper;
  18. using ICSSoft.Base.UserControl.FormControl;
  19. using ICSSoft.Base.ReferForm.AppReferForm;
  20. using ICSSoft.Base.Lable.PrintTool;
  21. using System.Threading;
  22. namespace ICSSoft.Frame.APP
  23. {
  24. public partial class FormICSWBSSpecialLog : DevExpress.XtraEditors.XtraForm
  25. {
  26. private string sqltxt = "";
  27. private string sqlconn = "";
  28. String guid = AppConfig.GetGuid();
  29. private DataTable dataSource = null;
  30. #region 构造函数
  31. public FormICSWBSSpecialLog()
  32. {
  33. InitializeComponent();
  34. this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  35. this.WindowState = FormWindowState.Maximized;
  36. }
  37. #endregion
  38. #region 移动窗体
  39. private const int WM_NCHITTEST = 0x84;
  40. private const int HTCLIENT = 0x1;
  41. private const int HTCAPTION = 0x2;
  42. //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
  43. //系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
  44. //假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
  45. //同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
  46. //重写窗体,使窗体可以不通过自带标题栏实现移动
  47. protected override void WndProc(ref Message m)
  48. {
  49. //当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
  50. //当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
  51. //这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
  52. //注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
  53. switch (m.Msg)
  54. {
  55. case WM_NCHITTEST:
  56. base.WndProc(ref m);
  57. if ((int)m.Result == HTCLIENT)
  58. m.Result = (IntPtr)HTCAPTION;
  59. return;
  60. }
  61. //拦截双击标题栏、移动窗体的系统消息
  62. if (m.Msg != 0xA3)
  63. {
  64. base.WndProc(ref m);
  65. }
  66. }
  67. #endregion
  68. #region SystemOptition
  69. /// <summary>
  70. /// 操作权限
  71. /// </summary>
  72. /// <returns></returns>
  73. public DataTable RightOfExute()
  74. {
  75. DataTable rData = new DataTable();
  76. rData.Columns.Add("BtnName");
  77. rData.Columns.Add("ActionName");
  78. //查看权限(必须有)
  79. DataRow seeRow = rData.NewRow();
  80. seeRow["BtnName"] = "see";
  81. seeRow["ActionName"] = "查看";
  82. rData.Rows.Add(seeRow);
  83. List<Control> ControlList = new List<Control>();
  84. ControlList.Add(BtnPrint);
  85. ControlList.Add(btnWBSTransfer);
  86. //ControlList.Add(btnExit);
  87. foreach (Control ctr in ControlList)
  88. {
  89. if (ctr.GetType() == typeof(SimpleButton))
  90. {
  91. DataRow dr = rData.NewRow();
  92. dr["BtnName"] = ctr.Name;
  93. dr["ActionName"] = ctr.Text;
  94. rData.Rows.Add(dr);
  95. }
  96. }
  97. rData.AcceptChanges();
  98. return rData;
  99. }
  100. /// <summary>
  101. /// 数据权限
  102. /// </summary>
  103. /// <returns></returns>
  104. public DataTable RightOfData()
  105. {
  106. DataTable rData = new DataTable();
  107. rData.Columns.Add("BodyName");
  108. rData.Columns.Add("ControlName");
  109. rData.Columns.Add("ControlCaption");
  110. rData.AcceptChanges();
  111. return rData;
  112. }
  113. #endregion
  114. #region 退出
  115. private void btnClose_Click(object sender, EventArgs e)
  116. {
  117. AppConfig.CloseFormShow(this.Text);
  118. this.Close();
  119. }
  120. private void btnExit_Click(object sender, EventArgs e)
  121. {
  122. AppConfig.CloseFormShow(this.Text);
  123. this.Close();
  124. }
  125. #endregion
  126. #region 过滤
  127. private string tempTableName = "";
  128. private void btnFilter_Click(object sender, EventArgs e)
  129. {
  130. FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name));
  131. filter.OldTempTableName = tempTableName;
  132. if (filter.ShowDialog() == DialogResult.OK)
  133. {
  134. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
  135. try
  136. {
  137. _wait.Show();
  138. tempTableName = filter.NewTempTableName;
  139. sqltxt = filter.SqlText;
  140. sqlconn = filter.FilterConnectString;
  141. dataSource = filter.FilterData.Tables[0];
  142. grdDetail.DataSource = dataSource;
  143. grvDetail.BestFitColumns();
  144. rptPage.RecordNum = dataSource.Rows.Count;
  145. rptPage.PageSize = 499;
  146. rptPage.PageIndex = 1;
  147. rptPage.ReLoad();
  148. rptPage.PageSize = 499;
  149. rptPage.PageIndex = 1;
  150. rptPage.ReLoad();
  151. rptPage.PageSize = 500;
  152. rptPage.PageIndex = 1;
  153. rptPage.ReLoad();
  154. _wait.Close();
  155. }
  156. catch (Exception ex)
  157. {
  158. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  159. _wait.Close();
  160. }
  161. }
  162. }
  163. #endregion
  164. #region 绑定数据源
  165. private void btnConfig_Click(object sender, EventArgs e)//绑定数据源
  166. {
  167. if (AppConfig.UserCode.ToLower() != "demo")
  168. {
  169. //ICSBaseSimpleCode.AppshowMessageBox("您没有权限设置数据源,请联系软件提供商!");
  170. return;
  171. }
  172. FormDataSource fdata = new FormDataSource(AppConfig.GetMenuId(this.Tag.ToString()), btnConfig.Name);
  173. fdata.ShowDialog();
  174. }
  175. #endregion
  176. #region 全选
  177. private void btnSelectAll_Click(object sender, EventArgs e)
  178. {
  179. for (int i = 0; i < grvDetail.RowCount; i++)
  180. {
  181. grvDetail.SetRowCellValue(i, colisSelect, true);
  182. }
  183. }
  184. #endregion
  185. #region 全消
  186. private void btnCancelAll_Click(object sender, EventArgs e)
  187. {
  188. for (int i = 0; i < grvDetail.RowCount; i++)
  189. {
  190. grvDetail.SetRowCellValue(i, colisSelect, false);
  191. }
  192. }
  193. #endregion
  194. #region 双击
  195. private void grvDetail_DoubleClick(object sender, EventArgs e)
  196. {
  197. if (grvDetail.FocusedRowHandle < 0)
  198. {
  199. return;
  200. }
  201. if (grvDetail.FocusedColumn == colisSelect)
  202. {
  203. if (grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, colisSelect).ToString() == "")
  204. {
  205. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "Y");
  206. }
  207. else
  208. {
  209. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "");
  210. }
  211. }
  212. }
  213. #endregion
  214. #region 刷新
  215. private void btnFalsh_Click(object sender, EventArgs e)
  216. {
  217. if (sqlconn == null || sqlconn == "")
  218. {
  219. return;
  220. }
  221. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
  222. try
  223. {
  224. _wait.Show();
  225. FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name), false);
  226. filter.OldTempTableName = tempTableName;
  227. //tempTableName = filter.NewTempTableName;
  228. //DataTable data = DBHelper.ExecuteDataset(AppConfig.FrameConnectString, CommandType.Text, "select * from " + tempTableName).Tables[0];
  229. dataSource = DBHelper.ExecuteDataset(sqlconn, CommandType.Text, sqltxt).Tables[0];
  230. grdDetail.DataSource = dataSource;
  231. rptPage.RecordNum = dataSource.Rows.Count;
  232. rptPage.PageIndex = 1;
  233. rptPage.ReLoad();
  234. _wait.Close();
  235. }
  236. catch (Exception ex)
  237. {
  238. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  239. _wait.Close();
  240. }
  241. }
  242. #endregion
  243. #region 列表
  244. private void grvDetail_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
  245. {
  246. if (e.Info.IsRowIndicator && e.RowHandle >= 0)
  247. e.Info.DisplayText = (e.RowHandle + 1).ToString();
  248. }
  249. #endregion
  250. #region 过滤方法
  251. private void FormICSStack_FormClosing(object sender, FormClosingEventArgs e)
  252. {
  253. AppConfig.DropTemTable(tempTableName);
  254. }
  255. #endregion
  256. #region 分页
  257. private void rptPage_PageIndexChanged(object Sender, EventArgs e)
  258. {
  259. DataTable data = AppConfig.GetPageData(dataSource, rptPage.PageIndex, rptPage.PageSize).Copy();
  260. //DataTable data = AppConfig.GetPageDataByDb(tempTableName, "pagerowindex", rptPage.PageSize, rptPage.PageIndex, dataSource.Rows.Count);
  261. grdDetail.DataSource = data;
  262. }
  263. #endregion
  264. private void grdDetail_Click(object sender, EventArgs e)
  265. {
  266. DataTable dt = new DataTable();
  267. dt.Columns.Add();
  268. }
  269. private void FormICSSum_Manday_Load_1(object sender, EventArgs e)
  270. {
  271. btnFilter_Click(sender, e);
  272. }
  273. private void btnOutPut_Click(object sender, EventArgs e)
  274. {
  275. SimpleButton btntemp = (SimpleButton)sender;
  276. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  277. {
  278. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  279. return;
  280. }
  281. FormOutExcel foe = new FormOutExcel(this.Tag.ToString(), grdDetail);
  282. foe.ShowDialog();
  283. }
  284. #region 导入
  285. private void btnImportData_Click(object sender, EventArgs e)
  286. {
  287. SimpleButton btntemp = (SimpleButton)sender;
  288. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  289. {
  290. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  291. return;
  292. }
  293. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm();
  294. _wait.Hide();
  295. try
  296. {
  297. FormReadExcel fre = new FormReadExcel();
  298. if (fre.ShowDialog() != DialogResult.OK)
  299. {
  300. return;
  301. }
  302. DataTable dataSource = fre._excelData;
  303. if (dataSource == null)
  304. {
  305. throw new Exception("excel数据取得失败");
  306. }
  307. _wait.Show();
  308. _wait.Caption = "判断模版是否正确......";
  309. #region 判断模版是否正确
  310. List<FormReadExcelUIModelColumns> colNameList = new List<FormReadExcelUIModelColumns>();
  311. //colNameList.Add(new FormReadExcelUIModelColumns("条码", true));
  312. colNameList.Add(new FormReadExcelUIModelColumns("物料编码", true));
  313. colNameList.Add(new FormReadExcelUIModelColumns("库位", true));
  314. colNameList.Add(new FormReadExcelUIModelColumns("库位数量或最小包装数量", true));
  315. colNameList.Add(new FormReadExcelUIModelColumns("整盘数", true));
  316. colNameList.Add(new FormReadExcelUIModelColumns("入库日期", false));
  317. foreach (FormReadExcelUIModelColumns columnsName in colNameList)
  318. {
  319. if (!dataSource.Columns.Contains(columnsName.columnsName))
  320. {
  321. throw new Exception("模版不正确,缺少列" + columnsName.columnsName);
  322. }
  323. }
  324. #endregion
  325. _wait.Caption = "数据整理中......";
  326. List<ICSITEMTrans> ItemTransList = new List<ICSITEMTrans>();
  327. List<ICSITEMTransLot> ItemTransLotList = new List<ICSITEMTransLot>();
  328. List<FormICSWareHouseLotInfoUIModel> ICSWareHouseLotInfoList = new List<FormICSWareHouseLotInfoUIModel>();
  329. List<ICSWareHouseInfo> ICSWareHouseInfoList = new List<ICSWareHouseInfo>();
  330. List<ICSITEMLot> InfoList = new List<ICSITEMLot>();
  331. int index = 1;
  332. foreach (DataRow dr in dataSource.Rows)
  333. {
  334. index++;
  335. ///判断必输项目是否为空
  336. foreach (FormReadExcelUIModelColumns columnsName in colNameList)
  337. {
  338. if (string.IsNullOrWhiteSpace(dr[columnsName.columnsName].ToString()) == true && columnsName.NotNull == true)
  339. {
  340. throw new Exception("第 " + index + " 行,列" + columnsName.columnsName + "没有输入值");
  341. }
  342. }
  343. //string LotNO = dr["条码"].ToString();
  344. string ItemCode = dr["物料编码"].ToString();
  345. string StackCode = dr["库位"].ToString();
  346. string Date = dr["入库日期"].ToString();
  347. DateTime dataTime;
  348. if (Date == "")
  349. {
  350. dataTime = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  351. }
  352. //else if (Date.Contains("2099"))
  353. //{
  354. // dataTime = Convert.ToDateTime("2099-12-31" + " " + AppConfig.GetSeverDateTime("HH:mm:ss").ToString("HH:mm:ss"));
  355. //}
  356. else
  357. {
  358. dataTime = Convert.ToDateTime(Convert.ToDateTime(Date).ToString("yyyy-MM-dd") + " " + AppConfig.GetSeverDateTime("HH:mm:ss").ToString("HH:mm:ss"));
  359. }
  360. string Type = "";
  361. decimal QTY = 0;
  362. bool result = decimal.TryParse(dr["库位数量或最小包装数量"].ToString(), out QTY);
  363. if (!result)
  364. {
  365. throw new Exception("第 " + index + " 行,库位数量或最小包装数量:" + dr["库位数量或最小包装数量"].ToString() + " 格式不正确!");
  366. }
  367. int count = 0;
  368. bool resultCount = int.TryParse(dr["整盘数"].ToString(), out count);
  369. if (!resultCount)
  370. {
  371. throw new Exception("第 " + index + " 行,整盘数:" + dr["整盘数"].ToString() + " 格式不正确!");
  372. }
  373. DataTable ddt3 = ICSSoft.Frame.Data.BLL.ICSWareHouseLotInfoLogBLL.SelectItem(ItemCode);
  374. if (ddt3 == null || ddt3.Rows.Count <= 0)
  375. {
  376. throw new Exception("第 " + index + " 行,物料编码:" + ItemCode + " 不存在!");
  377. }
  378. else
  379. {
  380. Type = ddt3.Rows[0]["Type"].ToString();
  381. }
  382. string StorageCode = "";
  383. DataTable ddt2 = ICSSoft.Frame.Data.BLL.ICSWareHouseLotInfoLogBLL.SelectStack(StackCode);
  384. if (ddt2 == null || ddt2.Rows.Count <= 0)
  385. {
  386. throw new Exception("第 " + index + " 行,库位:" + StackCode + " 不存在!");
  387. }
  388. else
  389. {
  390. StorageCode = ddt2.Rows[0]["StorageCode"].ToString();
  391. }
  392. DateTime time = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  393. string Time = time.ToString("yyyyMMddHHmmss");
  394. for (int i = count; i > 0; i--)
  395. {
  396. string LotNO = Time + (count - i + 1).ToString().PadLeft(3, '0');
  397. #region 批次信息表
  398. ICSITEMLot Info = new ICSITEMLot();
  399. Info.ID = "";
  400. Info.LotNO = LotNO;
  401. Info.LOTQTY = Convert.ToDecimal(QTY);
  402. Info.ItemCode = ItemCode;
  403. //Info.TransNO = RecInfo.rdrecord.ReceiptNO;
  404. //Info.TransLine = RecInfo.rdrecord.ReceiptLine;
  405. //if (!string.IsNullOrWhiteSpace(RecInfo.VenderLotNO))
  406. // Info.VenderLotNO = RecInfo.VenderLotNO;
  407. //else
  408. Info.VenderLotNO = Time.Substring(2, 6) + (count - i + 1).ToString().PadLeft(3, '0'); //生产批号,每个工单一个
  409. Info.PRODUCTDATE = time;
  410. Info.ACTIVE = "Y";
  411. Info.Exdate = Convert.ToDateTime("2999-12-31");
  412. Info.TYPE = Type;
  413. Info.WorkPoint = AppConfig.WorkPointCode;
  414. Info.MUSER = AppConfig.UserId;
  415. Info.MUSERName = AppConfig.UserName;
  416. Info.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  417. Info.EATTRIBUTE1 = "期初";
  418. InfoList.Add(Info);
  419. #endregion
  420. #region 存入库存信息表
  421. ICSWareHouseInfo lotinfo = new ICSWareHouseInfo();
  422. if (ddt2 != null && ddt2.Rows.Count > 0)
  423. {
  424. lotinfo.WHGUID = ddt2.Rows[0]["StorageID"].ToString();
  425. }
  426. lotinfo.WHCode = StorageCode;
  427. if (ddt2 != null && ddt2.Rows.Count > 0)
  428. {
  429. lotinfo.BinGUID = ddt2.Rows[0][0].ToString();
  430. }
  431. lotinfo.BinCode = StackCode;
  432. if (ddt3 != null && ddt3.Rows.Count > 0)
  433. {
  434. lotinfo.INVGUID = ddt3.Rows[0][0].ToString();
  435. }
  436. lotinfo.INVCode = ItemCode;
  437. //if (!string.IsNullOrEmpty(QTY))
  438. //{
  439. lotinfo.QTY = Convert.ToDecimal(QTY);
  440. //}
  441. lotinfo.WorkPoint = AppConfig.WorkPointCode;
  442. lotinfo.MUSER = AppConfig.UserId;
  443. lotinfo.MUSERName = AppConfig.UserName;
  444. lotinfo.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  445. lotinfo.EATTRIBUTE1 = "期初";
  446. ICSWareHouseInfoList.Add(lotinfo);
  447. #endregion
  448. #region 存入物料,产品批次的库存信息
  449. FormICSWareHouseLotInfoUIModel lotinfo2 = new FormICSWareHouseLotInfoUIModel();
  450. lotinfo2.ID = AppConfig.GetGuid();
  451. lotinfo2.LotNO = LotNO;
  452. if (ddt2 != null && ddt2.Rows.Count > 0)
  453. {
  454. lotinfo2.WHGUID = ddt2.Rows[0]["StorageID"].ToString();
  455. }
  456. lotinfo2.WHCode = StorageCode;
  457. if (ddt2 != null && ddt2.Rows.Count > 0)
  458. {
  459. lotinfo2.BinGUID = ddt2.Rows[0][0].ToString();
  460. }
  461. lotinfo2.BinCode = StackCode;
  462. if (ddt3 != null && ddt3.Rows.Count > 0)
  463. {
  464. lotinfo2.INVGUID = ddt3.Rows[0][0].ToString();
  465. }
  466. lotinfo2.INVCode = ItemCode;
  467. lotinfo2.LotQty = Convert.ToDecimal(QTY);
  468. //lotinfo2.ReceiveDate = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  469. lotinfo2.WorkPoint = AppConfig.WorkPointCode;
  470. lotinfo2.MUSER = AppConfig.UserId;
  471. lotinfo2.MUSERName = AppConfig.UserName;
  472. lotinfo2.MTIME = dataTime;
  473. lotinfo2.ReceiveDate = dataTime;
  474. //if (Date == "")
  475. //{
  476. // lotinfo2.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  477. // lotinfo2.ReceiveDate = lotinfo2.MTIME;
  478. //}
  479. //else if (Date.Contains("2099"))
  480. //{
  481. // lotinfo2.MTIME = Convert.ToDateTime("2999-12-31" + " " + AppConfig.GetSeverDateTime("HH:mm:ss").ToString("HH:mm:ss"));
  482. // lotinfo2.ReceiveDate = lotinfo2.MTIME;
  483. //}
  484. //else
  485. //{
  486. // lotinfo2.MTIME = Convert.ToDateTime(Convert.ToDateTime(Date).ToString("yyyy-MM-dd") + " " + AppConfig.GetSeverDateTime("HH:mm:ss").ToString("HH:mm:ss"));
  487. // lotinfo2.ReceiveDate = lotinfo2.MTIME;
  488. //}
  489. lotinfo2.EATTRIBUTE1 = "期初";
  490. ICSWareHouseLotInfoList.Add(lotinfo2);
  491. #endregion
  492. #region 存入物料收发交易记录表
  493. ICSITEMTrans lotinfo3 = new ICSITEMTrans();
  494. lotinfo3.ID = AppConfig.GetGuid();
  495. //lotinfo3.TransNO = txtCode.Text.Trim().ToString();
  496. //if (!string.IsNullOrEmpty(grvDetail.GetRowCellValue(i, colRdrecordSEQ).ToString()))
  497. //{
  498. // lotinfo3.TransLine = Convert.ToInt32(grvDetail.GetRowCellValue(i, colRdrecordSEQ));
  499. //}
  500. lotinfo3.ITEMCODE = ItemCode;
  501. lotinfo3.FRMStorageCODE = "";
  502. lotinfo3.FRMStackCODE = "";
  503. lotinfo3.TOStorageCODE = StorageCode;
  504. lotinfo3.TOStackCODE = StackCode;
  505. //if (!string.IsNullOrEmpty(QTY))
  506. //{
  507. lotinfo3.TransQTY = Convert.ToDecimal(QTY);
  508. //}
  509. lotinfo3.Memo = "";
  510. lotinfo3.TransType = "收";
  511. lotinfo3.BusinessCode = "";
  512. lotinfo3.WorkPoint = AppConfig.WorkPointCode;
  513. lotinfo3.MUSER = AppConfig.UserId;
  514. lotinfo3.MUSERName = AppConfig.UserName;
  515. lotinfo3.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  516. lotinfo3.EATTRIBUTE1 = "期初";
  517. ItemTransList.Add(lotinfo3);
  518. #endregion
  519. #region 存入物料收发交易批号记录表
  520. ICSITEMTransLot lotinfo4 = new ICSITEMTransLot();
  521. lotinfo4.ID = AppConfig.GetGuid();
  522. lotinfo4.ITEMTransID = lotinfo3.ID;
  523. lotinfo4.LotNO = LotNO;
  524. lotinfo4.ITEMCODE = ItemCode;
  525. lotinfo4.TransQTY = Convert.ToDecimal(QTY);
  526. lotinfo4.Memo = "期初";
  527. lotinfo4.WorkPoint = AppConfig.WorkPointCode;
  528. lotinfo4.MUSER = AppConfig.UserId;
  529. lotinfo4.MUSERName = AppConfig.UserName;
  530. lotinfo4.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  531. ItemTransLotList.Add(lotinfo4);
  532. #endregion
  533. Thread.Sleep(1000);
  534. }
  535. }
  536. _wait.Caption = "导入数据......";
  537. //ICSWareHouseLotInfoLogBLL.Insert(InfoList, ICSWareHouseLotInfoList, ICSWareHouseInfoList, ItemTransList, ItemTransLotList, AppConfig.AppConnectString);
  538. _wait.Close();
  539. ICSBaseSimpleCode.AppshowMessageBox("数据导入成功!");
  540. btnFalsh_Click(null, null);
  541. }
  542. catch (Exception ex)
  543. {
  544. _wait.Close();
  545. ICSBaseSimpleCode.AppshowMessageBox("数据导入失败:" + ex.Message);
  546. }
  547. }
  548. #endregion
  549. #region 导入模板下载
  550. private void btnImportMould_Click(object sender, EventArgs e)
  551. {
  552. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm();
  553. _wait.Hide();
  554. string anjianExcelFileName = Environment.CommandLine.Substring(1, Environment.CommandLine.LastIndexOf("\\")) + "Output\\";
  555. try
  556. {
  557. _wait.Show();
  558. _wait.Caption = "模板下载中......";
  559. SaveFileDialog dlgSaveFileDialog = new SaveFileDialog(); //弹框提示保存
  560. dlgSaveFileDialog.InitialDirectory = anjianExcelFileName; //默认打开目录
  561. dlgSaveFileDialog.FilterIndex = 1;
  562. dlgSaveFileDialog.RestoreDirectory = true;
  563. dlgSaveFileDialog.FileName = "期初导入模板.xlsx"; //默认保存名称
  564. dlgSaveFileDialog.Filter = "Excel文件(*.xlsx)|*.xlsx";
  565. if (dlgSaveFileDialog.ShowDialog() == DialogResult.OK)
  566. {
  567. string fileName = dlgSaveFileDialog.FileName; //获取弹出框选择或填写的文件名称
  568. List<FormReadExcelUIModelColumns> colNameList = new List<FormReadExcelUIModelColumns>();
  569. colNameList.Add(new FormReadExcelUIModelColumns("物料编码", true));
  570. colNameList.Add(new FormReadExcelUIModelColumns("库位", true));
  571. colNameList.Add(new FormReadExcelUIModelColumns("WBS", false));
  572. colNameList.Add(new FormReadExcelUIModelColumns("库位数量或最小包装数量", true));
  573. colNameList.Add(new FormReadExcelUIModelColumns("整盘数", true));
  574. colNameList.Add(new FormReadExcelUIModelColumns("入库日期", false));
  575. FileUtil.exportToExcelFile(fileName, colNameList);
  576. _wait.Close();
  577. ICSBaseSimpleCode.AppshowMessageBox("模板下载成功!");
  578. }
  579. _wait.Close();
  580. }
  581. catch (Exception ex)
  582. {
  583. _wait.Close();
  584. ICSBaseSimpleCode.AppshowMessageBox("模板下载失败:" + ex.Message);
  585. }
  586. }
  587. #endregion
  588. #region 形态转换
  589. private void btnWBSTransfer_Click(object sender, EventArgs e)
  590. {
  591. int count = 0;
  592. int sum = 0;
  593. string IDCode = "";
  594. string LotCode = "";
  595. string QtyCode = "";
  596. SimpleButton btntemp = (SimpleButton)sender;
  597. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  598. {
  599. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  600. return;
  601. }
  602. try
  603. {
  604. for (int i = 0; i < grvDetail.RowCount; i++)
  605. {
  606. if (Convert.ToBoolean(grvDetail.GetRowCellValue(i, colisSelect).ToString()))
  607. {
  608. count++;
  609. if (grvDetail.GetRowCellValue(i, collotStatus).ToString()=="已审核")
  610. {
  611. sum++;
  612. }
  613. }
  614. }
  615. if (count != 1)
  616. {
  617. ICSBaseSimpleCode.AppshowMessageBox("请选择一条数据进行保存!");
  618. return;
  619. }
  620. if (sum > 0)
  621. {
  622. ICSBaseSimpleCode.AppshowMessageBox("存在物料条码已审核!");
  623. return;
  624. }
  625. for (int i = 0; i < grvDetail.RowCount; i++)
  626. {
  627. if (Convert.ToBoolean(grvDetail.GetRowCellValue(i, colisSelect).ToString()))
  628. {
  629. if (LotCode == "")
  630. {
  631. IDCode = "" + grvDetail.GetRowCellValue(i, colID).ToString() + "";
  632. LotCode = "" + grvDetail.GetRowCellValue(i, LotNoOld).ToString() + "";
  633. QtyCode = "" + grvDetail.GetRowCellValue(i, colLotQty).ToString() + "";
  634. }
  635. else
  636. {
  637. IDCode += "," + grvDetail.GetRowCellValue(i, colID).ToString() + "";
  638. LotCode += "," + grvDetail.GetRowCellValue(i, LotNoOld).ToString() + "";
  639. QtyCode += "," + grvDetail.GetRowCellValue(i, colLotQty).ToString() + "";
  640. }
  641. }
  642. }
  643. using (SqlConnection conn = new SqlConnection(AppConfig.AppConnectString))
  644. {
  645. conn.Open();
  646. using (SqlTransaction trans = conn.BeginTransaction())
  647. {
  648. try
  649. {
  650. ICSWBSSpecailTransferBLL.UpdateWBS(conn, trans, LotCode, QtyCode, IDCode,AppConfig.AppConnectString);
  651. trans.Commit();
  652. }
  653. catch (Exception ex)
  654. {
  655. trans.Rollback();
  656. MessageBox.Show("转换异常:" + ex.Message);
  657. return;
  658. }
  659. }
  660. conn.Close();
  661. }
  662. }
  663. catch (Exception ex)
  664. {
  665. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  666. return;
  667. }
  668. ICSBaseSimpleCode.AppshowMessageBox("保存成功!");
  669. btnFalsh_Click(null, null);
  670. }
  671. #endregion
  672. private void BtnPrint_Click(object sender, EventArgs e)
  673. {
  674. int sum = 0;
  675. try
  676. {
  677. SimpleButton btntemp = (SimpleButton)sender;
  678. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  679. {
  680. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  681. return;
  682. }
  683. for (int i = 0; i < grvDetail.RowCount; i++)
  684. {
  685. if (Convert.ToBoolean(grvDetail.GetRowCellValue(i, colisSelect).ToString()))
  686. {
  687. if (grvDetail.GetRowCellValue(i, collotStatus).ToString() == "待审核")
  688. {
  689. sum++;
  690. }
  691. }
  692. }
  693. if (sum > 0)
  694. {
  695. ICSBaseSimpleCode.AppshowMessageBox("存在条码未审核,不能打印!");
  696. return;
  697. }
  698. List<PrintPara> parasList = new List<PrintPara>();
  699. List<ICSITEMLot> InfoList = new List<ICSITEMLot>();
  700. for (int i = 0; i < grvDetail.RowCount; i++)
  701. {
  702. if (Convert.ToBoolean(grvDetail.GetRowCellValue(i, colisSelect).ToString()))
  703. {
  704. PrintPara para = new PrintPara();
  705. para.PrintKey = "LOTNO";
  706. para.PrintValues = new object[] { grvDetail.GetRowCellValue(i, LotNoNew).ToString()};
  707. parasList.Add(para);
  708. ICSITEMLot Info = new ICSITEMLot();
  709. Info.LotNO = grvDetail.GetRowCellValue(i, LotNoNew).ToString();
  710. Info.lastPrintUSERID = AppConfig.UserId;
  711. Info.lastPrintTime = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss");
  712. Info.WorkPoint = AppConfig.WorkPointCode;
  713. InfoList.Add(Info);
  714. }
  715. }
  716. if (parasList.Count == 0)
  717. {
  718. ICSBaseSimpleCode.AppshowMessageBox("请选择数据!");
  719. return;
  720. }
  721. FormPrintDialog f = new FormPrintDialog("001", this.Text, parasList, false, null);
  722. f.ShowDialog();
  723. //更新打印信息
  724. //ICSRdrecord2LOTBLL.updatePrint(InfoList, AppConfig.AppConnectString);
  725. }
  726. catch (Exception ex)
  727. {
  728. MessageBox.Show(ex.ToString());
  729. }
  730. }
  731. }
  732. }