锐腾搅拌上料功能
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.

1114 lines
54 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 FormICSWareHouseLotInfoBegin : 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 FormICSWareHouseLotInfoBegin()
  32. {
  33. InitializeComponent();
  34. AppConfig.BindCustomDrawRowIndicator(grvDetail);
  35. this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  36. this.WindowState = FormWindowState.Maximized;
  37. }
  38. #endregion
  39. #region 移动窗体
  40. private const int WM_NCHITTEST = 0x84;
  41. private const int HTCLIENT = 0x1;
  42. private const int HTCAPTION = 0x2;
  43. //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
  44. //系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
  45. //假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
  46. //同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
  47. //重写窗体,使窗体可以不通过自带标题栏实现移动
  48. protected override void WndProc(ref Message m)
  49. {
  50. //当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
  51. //当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
  52. //这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
  53. //注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
  54. switch (m.Msg)
  55. {
  56. case WM_NCHITTEST:
  57. base.WndProc(ref m);
  58. if ((int)m.Result == HTCLIENT)
  59. m.Result = (IntPtr)HTCAPTION;
  60. return;
  61. }
  62. //拦截双击标题栏、移动窗体的系统消息
  63. if (m.Msg != 0xA3)
  64. {
  65. base.WndProc(ref m);
  66. }
  67. }
  68. #endregion
  69. #region SystemOptition
  70. /// <summary>
  71. /// 操作权限
  72. /// </summary>
  73. /// <returns></returns>
  74. public DataTable RightOfExute()
  75. {
  76. DataTable rData = new DataTable();
  77. rData.Columns.Add("BtnName");
  78. rData.Columns.Add("ActionName");
  79. //查看权限(必须有)
  80. DataRow seeRow = rData.NewRow();
  81. seeRow["BtnName"] = "see";
  82. seeRow["ActionName"] = "查看";
  83. rData.Rows.Add(seeRow);
  84. List<Control> ControlList = new List<Control>();
  85. //ControlList.Add(btnSelect);
  86. //ControlList.Add(btnCanSelect);
  87. //ControlList.Add(btnExit);
  88. ControlList.Add(btnImportData);
  89. ControlList.Add(btnOutPut);
  90. foreach (Control ctr in ControlList)
  91. {
  92. if (ctr.GetType() == typeof(SimpleButton))
  93. {
  94. DataRow dr = rData.NewRow();
  95. dr["BtnName"] = ctr.Name;
  96. dr["ActionName"] = ctr.Text;
  97. rData.Rows.Add(dr);
  98. }
  99. }
  100. rData.AcceptChanges();
  101. return rData;
  102. }
  103. /// <summary>
  104. /// 数据权限
  105. /// </summary>
  106. /// <returns></returns>
  107. public DataTable RightOfData()
  108. {
  109. DataTable rData = new DataTable();
  110. rData.Columns.Add("BodyName");
  111. rData.Columns.Add("ControlName");
  112. rData.Columns.Add("ControlCaption");
  113. rData.AcceptChanges();
  114. return rData;
  115. }
  116. #endregion
  117. #region 退出
  118. private void btnClose_Click(object sender, EventArgs e)
  119. {
  120. AppConfig.CloseFormShow(this.Text);
  121. this.Close();
  122. }
  123. private void btnExit_Click(object sender, EventArgs e)
  124. {
  125. AppConfig.CloseFormShow(this.Text);
  126. this.Close();
  127. }
  128. #endregion
  129. #region 过滤
  130. private string tempTableName = "";
  131. private void btnFilter_Click(object sender, EventArgs e)
  132. {
  133. FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name));
  134. filter.OldTempTableName = tempTableName;
  135. if (filter.ShowDialog() == DialogResult.OK)
  136. {
  137. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
  138. try
  139. {
  140. _wait.Show();
  141. tempTableName = filter.NewTempTableName;
  142. sqltxt = filter.SqlText;
  143. sqlconn = filter.FilterConnectString;
  144. dataSource = filter.FilterData.Tables[0];
  145. grdDetail.DataSource = dataSource;
  146. grvDetail.BestFitColumns();
  147. rptPage.RecordNum = dataSource.Rows.Count;
  148. rptPage.PageSize = 499;
  149. rptPage.PageIndex = 1;
  150. rptPage.ReLoad();
  151. rptPage.PageSize = 499;
  152. rptPage.PageIndex = 1;
  153. rptPage.ReLoad();
  154. rptPage.PageSize = 500;
  155. rptPage.PageIndex = 1;
  156. rptPage.ReLoad();
  157. _wait.Close();
  158. }
  159. catch (Exception ex)
  160. {
  161. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  162. _wait.Close();
  163. }
  164. }
  165. }
  166. #endregion
  167. #region 绑定数据源
  168. private void btnConfig_Click(object sender, EventArgs e)//绑定数据源
  169. {
  170. if (AppConfig.UserCode.ToLower() != "demo")
  171. {
  172. //ICSBaseSimpleCode.AppshowMessageBox("您没有权限设置数据源,请联系软件提供商!");
  173. return;
  174. }
  175. FormDataSource fdata = new FormDataSource(AppConfig.GetMenuId(this.Tag.ToString()), btnConfig.Name);
  176. fdata.ShowDialog();
  177. }
  178. #endregion
  179. #region 全选
  180. private void btnSelect_Click(object sender, EventArgs e)
  181. {
  182. for (int i = 0; i < grvDetail.RowCount; i++)
  183. {
  184. grvDetail.SetRowCellValue(i, colisSelect, "Y");
  185. }
  186. }
  187. #endregion
  188. #region 全消
  189. private void btnCanSelect_Click(object sender, EventArgs e)
  190. {
  191. for (int i = 0; i < grvDetail.RowCount; i++)
  192. {
  193. grvDetail.SetRowCellValue(i, colisSelect, "");
  194. }
  195. }
  196. #endregion
  197. #region 刷新
  198. private void btnFalsh_Click(object sender, EventArgs e)
  199. {
  200. if (sqlconn == null || sqlconn == "")
  201. {
  202. return;
  203. }
  204. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
  205. try
  206. {
  207. _wait.Show();
  208. FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name), false);
  209. filter.OldTempTableName = tempTableName;
  210. //tempTableName = filter.NewTempTableName;
  211. //DataTable data = DBHelper.ExecuteDataset(AppConfig.FrameConnectString, CommandType.Text, "select * from " + tempTableName).Tables[0];
  212. dataSource = DBHelper.ExecuteDataset(sqlconn, CommandType.Text, sqltxt).Tables[0];
  213. grdDetail.DataSource = dataSource;
  214. rptPage.RecordNum = dataSource.Rows.Count;
  215. rptPage.PageIndex = 1;
  216. rptPage.ReLoad();
  217. _wait.Close();
  218. }
  219. catch (Exception ex)
  220. {
  221. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  222. _wait.Close();
  223. }
  224. }
  225. #endregion
  226. #region 列表
  227. private void grvDetail_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
  228. {
  229. if (e.Info.IsRowIndicator && e.RowHandle >= 0)
  230. e.Info.DisplayText = (e.RowHandle + 1).ToString();
  231. }
  232. #endregion
  233. #region 过滤方法
  234. private void FormICSStack_FormClosing(object sender, FormClosingEventArgs e)
  235. {
  236. AppConfig.DropTemTable(tempTableName);
  237. }
  238. #endregion
  239. #region 分页
  240. private void rptPage_PageIndexChanged(object Sender, EventArgs e)
  241. {
  242. DataTable data = AppConfig.GetPageData(dataSource, rptPage.PageIndex, rptPage.PageSize).Copy();
  243. //DataTable data = AppConfig.GetPageDataByDb(tempTableName, "pagerowindex", rptPage.PageSize, rptPage.PageIndex, dataSource.Rows.Count);
  244. grdDetail.DataSource = data;
  245. }
  246. #endregion
  247. private void grdDetail_Click(object sender, EventArgs e)
  248. {
  249. DataTable dt = new DataTable();
  250. dt.Columns.Add();
  251. }
  252. private void FormICSSum_Manday_Load_1(object sender, EventArgs e)
  253. {
  254. btnFilter_Click(sender, e);
  255. }
  256. #region 双击选择
  257. private void grdDetail_DoubleClick(object sender, EventArgs e)
  258. {
  259. if (grvDetail.FocusedRowHandle < 0)
  260. {
  261. return;
  262. }
  263. if (grvDetail.FocusedColumn == colisSelect)
  264. {
  265. string a = grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, colisSelect).ToString();
  266. if (grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, colisSelect).ToString() == "")
  267. {
  268. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "Y");
  269. }
  270. else
  271. {
  272. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "");
  273. }
  274. }
  275. }
  276. #endregion
  277. #region 导出
  278. private void btnOutPut_Click(object sender, EventArgs e)
  279. {
  280. SimpleButton btntemp = (SimpleButton)sender;
  281. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  282. {
  283. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  284. return;
  285. }
  286. FormOutExcel foe = new FormOutExcel(this.Tag.ToString(), grdDetail);
  287. foe.ShowDialog();
  288. }
  289. #endregion
  290. #region 导入
  291. private void btnImportData_Click(object sender, EventArgs e)
  292. {
  293. string Lot_NO = "", LotNO_X = "";
  294. SimpleButton btntemp = (SimpleButton)sender;
  295. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  296. {
  297. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  298. return;
  299. }
  300. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm();
  301. _wait.Hide();
  302. try
  303. {
  304. FormReadExcel fre = new FormReadExcel();
  305. if (fre.ShowDialog() != DialogResult.OK)
  306. {
  307. return;
  308. }
  309. DataTable dataSource = fre._excelData;
  310. if (dataSource == null)
  311. {
  312. throw new Exception("excel数据取得失败");
  313. }
  314. _wait.Show();
  315. _wait.Caption = "判断模版是否正确......";
  316. #region 判断模版是否正确
  317. List<FormReadExcelUIModelColumns> colNameList = new List<FormReadExcelUIModelColumns>();
  318. //colNameList.Add(new FormReadExcelUIModelColumns("条码", true));
  319. colNameList.Add(new FormReadExcelUIModelColumns("存货编码", true));
  320. colNameList.Add(new FormReadExcelUIModelColumns("库位", true));
  321. colNameList.Add(new FormReadExcelUIModelColumns("库位数量或最小包装数量", true));
  322. colNameList.Add(new FormReadExcelUIModelColumns("辅计量数量", true));
  323. colNameList.Add(new FormReadExcelUIModelColumns("整盘数", true));
  324. colNameList.Add(new FormReadExcelUIModelColumns("生产批号", false));
  325. colNameList.Add(new FormReadExcelUIModelColumns("入库日期", false));
  326. colNameList.Add(new FormReadExcelUIModelColumns("客户零件号", false));
  327. colNameList.Add(new FormReadExcelUIModelColumns("工艺要求", false));
  328. colNameList.Add(new FormReadExcelUIModelColumns("工程号", false));
  329. foreach (FormReadExcelUIModelColumns columnsName in colNameList)
  330. {
  331. if (!dataSource.Columns.Contains(columnsName.columnsName))
  332. {
  333. throw new Exception("模版不正确,缺少列" + columnsName.columnsName);
  334. }
  335. }
  336. #endregion
  337. _wait.Caption = "数据整理中......";
  338. //List<ICSITEMTrans> ItemTransList = new List<ICSITEMTrans>();
  339. //List<ICSITEMTransLot> ItemTransLotList = new List<ICSITEMTransLot>();
  340. List<FormICSWareHouseLotInfoUIModel> ICSWareHouseLotInfoList = new List<FormICSWareHouseLotInfoUIModel>();
  341. List<ICSWareHouseInfo> ICSWareHouseInfoList = new List<ICSWareHouseInfo>();
  342. List<ICSWareHouseLotInfoLog> ICSWareHouseLogList = new List<ICSWareHouseLotInfoLog>();
  343. List<ICSITEMLot> InfoList = new List<ICSITEMLot>();
  344. int index = 1;
  345. foreach (DataRow dr in dataSource.Rows)
  346. {
  347. index++;
  348. ///判断必输项目是否为空
  349. foreach (FormReadExcelUIModelColumns columnsName in colNameList)
  350. {
  351. if (string.IsNullOrWhiteSpace(dr[columnsName.columnsName].ToString()) == true && columnsName.NotNull == true)
  352. {
  353. throw new Exception("第 " + index + " 行,列" + columnsName.columnsName + "没有输入值");
  354. }
  355. }
  356. //string LotNO = dr["条码"].ToString();
  357. string ItemCode = dr["存货编码"].ToString();
  358. string StackCode = dr["库位"].ToString();
  359. string Date = dr["入库日期"].ToString();
  360. string VLotNO = dr["生产批号"].ToString();
  361. string PartNumber = dr["客户零件号"].ToString();
  362. string PRequire= dr["工艺要求"].ToString();
  363. string TwoMUSER = dr["工程号"].ToString();
  364. DateTime dataTime;
  365. if (Date == "")
  366. {
  367. dataTime = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  368. }
  369. else
  370. {
  371. dataTime = Convert.ToDateTime(Convert.ToDateTime(Date).ToString("yyyy-MM-dd") + " " + AppConfig.GetSeverDateTime("HH:mm:ss").ToString("HH:mm:ss"));
  372. }
  373. string Type = "";
  374. decimal QTY = 0;
  375. bool result = decimal.TryParse(dr["库位数量或最小包装数量"].ToString(), out QTY);
  376. if (!result)
  377. {
  378. throw new Exception("第 " + index + " 行,库位数量或最小包装数量:" + dr["库位数量或最小包装数量"].ToString() + " 格式不正确!");
  379. }
  380. if (decimal.Parse(dr["库位数量或最小包装数量"].ToString()) < 0)
  381. {
  382. throw new Exception("第 " + index + " 行,库位数量或最小包装数量:" + dr["库位数量或最小包装数量"].ToString() + " 数量不正确,为负值!");
  383. }
  384. decimal qty = 0;
  385. bool Result = decimal.TryParse(dr["辅计量数量"].ToString(), out qty);
  386. if (!Result)
  387. {
  388. throw new Exception("第 " + index + " 行,辅计量数量:" + dr["辅计量数量"].ToString() + " 格式不正确!");
  389. }
  390. if (decimal.Parse(dr["辅计量数量"].ToString()) < 0)
  391. {
  392. throw new Exception("第 " + index + " 行,辅计量数量:" + dr["辅计量数量"].ToString() + " 数量不正确,为负值!");
  393. }
  394. int count = 0;
  395. bool resultCount = int.TryParse(dr["整盘数"].ToString(), out count);
  396. if (!resultCount)
  397. {
  398. throw new Exception("第 " + index + " 行,整盘数:" + dr["整盘数"].ToString() + " 格式不正确!");
  399. }
  400. DataTable ddt3 = ICSSoft.Frame.Data.BLL.ICSWareHouseLotInfoLogBLL.SelectItem(ItemCode);
  401. if (ddt3 == null || ddt3.Rows.Count <= 0)
  402. {
  403. throw new Exception("第 " + index + " 行,存货编码:" + ItemCode + " 不存在!");
  404. }
  405. else
  406. {
  407. Type = ddt3.Rows[0]["Type"].ToString();
  408. }
  409. string StorageCode = "";
  410. DataTable ddt2 = ICSSoft.Frame.Data.BLL.ICSWareHouseLotInfoLogBLL.SelectStack(StackCode);
  411. if (ddt2 == null || ddt2.Rows.Count <= 0)
  412. {
  413. throw new Exception("第 " + index + " 行,库位:" + StackCode + " 不存在!");
  414. }
  415. else
  416. {
  417. StorageCode = ddt2.Rows[0]["StorageCode"].ToString();
  418. }
  419. //判断生产批号是否进行批次管理
  420. string VenderLotNO = ICSINVENTORYBLL.find(ItemCode, AppConfig.AppConnectString);
  421. if (VenderLotNO == "True" && dr["生产批号"].ToString()=="")
  422. {
  423. throw new Exception("第 " + index + " 行,存货编码:" + ItemCode + "已进行批次管理,导入模板生产批号为空!");
  424. }
  425. else if (VenderLotNO == "False" && dr["生产批号"].ToString() != "")
  426. {
  427. throw new Exception("第 " + index + " 行,存货编码:" + ItemCode + "未进行批次管理,导入模板生产批号不为空!");
  428. }
  429. DateTime time = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  430. string Time = time.ToString("yyyyMMddHHmmss");
  431. string Tday = Time.Substring(3, 1);
  432. string LotNO = "";
  433. //string LotNO = "S8" + Time.Substring(0, 4) + (count - i + 1).ToString().PadLeft(4, '0');
  434. string sql = @"SELECT MAX(A.LotNO) AS LOTNO FROM ICSITEMLot A WHERE A.LotNO LIKE '{0}%' AND LEN(a.LotNO) = 10";
  435. sql = string.Format(sql, Tday);
  436. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  437. if (dt != null && dt.Rows.Count > 0)
  438. {
  439. Lot_NO = dt.Rows[0]["LOTNO"].ToString();
  440. }
  441. for (int i = count; i > 0; i--)
  442. {
  443. int j = count - i;
  444. #region
  445. if (LotNO_X != "")
  446. {
  447. if (LotNO_X.Substring(1, 4) == Time.Substring(0, 4))
  448. {
  449. string sum = (Int32.Parse(LotNO_X.Substring(5, 5)) + 1).ToString();
  450. LotNO = LotNO_X.Substring(0, 5) + sum.PadLeft(5, '0');
  451. }
  452. }
  453. else if (Lot_NO != "")
  454. {
  455. if (Lot_NO.Substring(1, 4) == Time.Substring(0, 4))
  456. {
  457. string sum = (Int32.Parse(Lot_NO.Substring(5, 5)) + 1).ToString();
  458. LotNO = Lot_NO.Substring(0, 5) + sum.PadLeft(5,'0');
  459. }
  460. }
  461. else
  462. {
  463. LotNO = Tday+ Time.Substring(0, 4) + "00001";
  464. }
  465. #endregion
  466. #region 批次信息表
  467. ICSITEMLot Info = new ICSITEMLot();
  468. Info.ID = "";
  469. Info.LotNO = LotNO;
  470. Info.LOTQTY = Convert.ToDecimal(QTY);
  471. Info.ItemCode = ItemCode;
  472. Info.VenderLotNO = VLotNO;
  473. Info.PRODUCTDATE = time;
  474. Info.ACTIVE = "Y";
  475. Info.Exdate = Convert.ToDateTime("2999-12-31");
  476. Info.TYPE = Type;
  477. Info.WorkPoint = AppConfig.WorkPointCode;
  478. Info.VoucherNO = PartNumber;//零件号
  479. Info.VoucherRow = PRequire;//工艺要求
  480. Info.TwoMUSER = TwoMUSER;//工程号
  481. Info.MUSER = AppConfig.UserId;
  482. Info.MUSERName = AppConfig.UserName;
  483. Info.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  484. Info.EATTRIBUTE1 = "期初";
  485. Info.EATTRIBUTE3 = (Convert.ToDecimal(qty) / Convert.ToDecimal(QTY));
  486. InfoList.Add(Info);
  487. #endregion
  488. #region 存入库存信息表
  489. ICSWareHouseInfo lotinfo = new ICSWareHouseInfo();
  490. if (ddt2 != null && ddt2.Rows.Count > 0)
  491. {
  492. lotinfo.WHGUID = ddt2.Rows[0]["StorageID"].ToString();
  493. }
  494. lotinfo.WHCode = StorageCode;
  495. if (ddt2 != null && ddt2.Rows.Count > 0)
  496. {
  497. lotinfo.BinGUID = ddt2.Rows[0][0].ToString();
  498. }
  499. lotinfo.BinCode = StackCode;
  500. if (ddt3 != null && ddt3.Rows.Count > 0)
  501. {
  502. lotinfo.INVGUID = ddt3.Rows[0][0].ToString();
  503. }
  504. lotinfo.INVCode = ItemCode;
  505. lotinfo.QTY = Convert.ToDecimal(QTY);
  506. lotinfo.WorkPoint = AppConfig.WorkPointCode;
  507. lotinfo.MUSER = AppConfig.UserId;
  508. lotinfo.MUSERName = AppConfig.UserName;
  509. lotinfo.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  510. lotinfo.EATTRIBUTE1 = "期初";
  511. ICSWareHouseInfoList.Add(lotinfo);
  512. #endregion
  513. #region 存入物料,产品批次的库存信息
  514. FormICSWareHouseLotInfoUIModel lotinfo2 = new FormICSWareHouseLotInfoUIModel();
  515. lotinfo2.ID = AppConfig.GetGuid();
  516. lotinfo2.LotNO = LotNO;
  517. if (ddt2 != null && ddt2.Rows.Count > 0)
  518. {
  519. lotinfo2.WHGUID = ddt2.Rows[0]["StorageID"].ToString();
  520. }
  521. lotinfo2.WHCode = StorageCode;
  522. if (ddt2 != null && ddt2.Rows.Count > 0)
  523. {
  524. lotinfo2.BinGUID = ddt2.Rows[0][0].ToString();
  525. }
  526. lotinfo2.BinCode = StackCode;
  527. if (ddt3 != null && ddt3.Rows.Count > 0)
  528. {
  529. lotinfo2.INVGUID = ddt3.Rows[0][0].ToString();
  530. }
  531. lotinfo2.INVCode = ItemCode;
  532. lotinfo2.LotQty = Convert.ToDecimal(QTY);
  533. lotinfo2.WorkPoint = AppConfig.WorkPointCode;
  534. lotinfo2.MUSER = AppConfig.UserId;
  535. lotinfo2.MUSERName = AppConfig.UserName;
  536. lotinfo2.MTIME = dataTime;
  537. lotinfo2.ReceiveDate = dataTime;
  538. lotinfo2.EATTRIBUTE1 = "期初";
  539. ICSWareHouseLotInfoList.Add(lotinfo2);
  540. #endregion
  541. #region 存入物料收发交易记录表
  542. //ICSITEMTrans lotinfo3 = new ICSITEMTrans();
  543. //lotinfo3.ID = AppConfig.GetGuid();
  544. //lotinfo3.ITEMCODE = ItemCode;
  545. //lotinfo3.FRMStorageCODE = "";
  546. //lotinfo3.FRMStackCODE = "";
  547. //lotinfo3.TOStorageCODE = StorageCode;
  548. //lotinfo3.TOStackCODE = StackCode;
  549. //lotinfo3.TransQTY = Convert.ToDecimal(QTY);
  550. //lotinfo3.Memo = "";
  551. //lotinfo3.TransType = "收";
  552. //lotinfo3.BusinessCode = "";
  553. //lotinfo3.WorkPoint = AppConfig.WorkPointCode;
  554. //lotinfo3.MUSER = AppConfig.UserId;
  555. //lotinfo3.MUSERName = AppConfig.UserName;
  556. //lotinfo3.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  557. //lotinfo3.EATTRIBUTE1 = "期初";
  558. //ItemTransList.Add(lotinfo3);
  559. #endregion
  560. #region 存入物料收发交易批号记录表
  561. //ICSITEMTransLot lotinfo4 = new ICSITEMTransLot();
  562. //lotinfo4.ID = AppConfig.GetGuid();
  563. //lotinfo4.ITEMTransID = lotinfo3.ID;
  564. //lotinfo4.LotNO = LotNO;
  565. //lotinfo4.ITEMCODE = ItemCode;
  566. //lotinfo4.TransQTY = Convert.ToDecimal(QTY);
  567. //lotinfo4.Memo = "期初";
  568. //lotinfo4.WorkPoint = AppConfig.WorkPointCode;
  569. //lotinfo4.MUSER = AppConfig.UserId;
  570. //lotinfo4.MUSERName = AppConfig.UserName;
  571. //lotinfo4.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  572. //ItemTransLotList.Add(lotinfo4);
  573. #endregion
  574. #region 存入日志记录表
  575. ICSWareHouseLotInfoLog Infos = new ICSWareHouseLotInfoLog();
  576. Infos.ID = AppConfig.GetGuid();
  577. Infos.TransNO ="" ;
  578. Infos.TransLine ="0";
  579. Infos.ITEMCODE = ItemCode;
  580. Infos.LotNO = LotNO;
  581. Infos.FRMStorageCODE = "";
  582. Infos.FRMStackCODE = "";
  583. Infos.TOStorageCODE = StorageCode;
  584. Infos.TOStackCODE = StackCode;
  585. Infos.TransQTY = Convert.ToDecimal(QTY);
  586. Infos.Memo = "";
  587. Infos.TransType = "期初";
  588. Infos.BusinessCode = "";
  589. Infos.MUSER = AppConfig.UserCode;
  590. Infos.MUSERName = AppConfig.UserName;
  591. Infos.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  592. Infos.WorkPoint = AppConfig.WorkPointCode;
  593. ICSWareHouseLogList.Add(Infos);
  594. #endregion
  595. //Thread.Sleep(1000);
  596. LotNO_X = LotNO;
  597. }
  598. }
  599. _wait.Caption = "导入数据......";
  600. ICSWareHouseLotInfoLogBLL.Insert(InfoList, ICSWareHouseLotInfoList, ICSWareHouseInfoList, ICSWareHouseLogList, AppConfig.AppConnectString);
  601. _wait.Close();
  602. ICSBaseSimpleCode.AppshowMessageBox("数据导入成功!");
  603. btnFalsh_Click(null, null);
  604. }
  605. catch (Exception ex)
  606. {
  607. _wait.Close();
  608. ICSBaseSimpleCode.AppshowMessageBox("数据导入失败:" + ex.Message);
  609. }
  610. }
  611. #endregion
  612. #region 导入模板下载
  613. private void btnImportMould_Click(object sender, EventArgs e)
  614. {
  615. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm();
  616. _wait.Hide();
  617. string anjianExcelFileName = Environment.CommandLine.Substring(1, Environment.CommandLine.LastIndexOf("\\")) + "Output\\";
  618. try
  619. {
  620. _wait.Show();
  621. _wait.Caption = "模板下载中......";
  622. SaveFileDialog dlgSaveFileDialog = new SaveFileDialog(); //弹框提示保存
  623. dlgSaveFileDialog.InitialDirectory = anjianExcelFileName; //默认打开目录
  624. dlgSaveFileDialog.FilterIndex = 1;
  625. dlgSaveFileDialog.RestoreDirectory = true;
  626. dlgSaveFileDialog.FileName = "期初导入模板.xlsx"; //默认保存名称
  627. dlgSaveFileDialog.Filter = "Excel文件(*.xlsx)|*.xlsx";
  628. if (dlgSaveFileDialog.ShowDialog() == DialogResult.OK)
  629. {
  630. string fileName = dlgSaveFileDialog.FileName; //获取弹出框选择或填写的文件名称
  631. List<FormReadExcelUIModelColumns> colNameList = new List<FormReadExcelUIModelColumns>();
  632. colNameList.Add(new FormReadExcelUIModelColumns("存货编码", true));
  633. colNameList.Add(new FormReadExcelUIModelColumns("库位", true));
  634. colNameList.Add(new FormReadExcelUIModelColumns("库位数量或最小包装数量", true));
  635. colNameList.Add(new FormReadExcelUIModelColumns("辅计量数量", true));
  636. colNameList.Add(new FormReadExcelUIModelColumns("整盘数", true));
  637. colNameList.Add(new FormReadExcelUIModelColumns("生产批号", false));
  638. colNameList.Add(new FormReadExcelUIModelColumns("入库日期", false));
  639. colNameList.Add(new FormReadExcelUIModelColumns("客户零件号", false));
  640. colNameList.Add(new FormReadExcelUIModelColumns("工艺要求", false));
  641. colNameList.Add(new FormReadExcelUIModelColumns("工程号", false));
  642. FileUtil.exportToExcelFile(fileName, colNameList);
  643. _wait.Close();
  644. ICSBaseSimpleCode.AppshowMessageBox("模板下载成功!");
  645. }
  646. _wait.Close();
  647. }
  648. catch (Exception ex)
  649. {
  650. _wait.Close();
  651. ICSBaseSimpleCode.AppshowMessageBox("模板下载失败:" + ex.Message);
  652. }
  653. }
  654. #endregion
  655. #region 打印
  656. private void btnPrint_Click(object sender, EventArgs e)
  657. {
  658. try
  659. {
  660. SimpleButton btntemp = (SimpleButton)sender;
  661. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  662. {
  663. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  664. return;
  665. }
  666. List<PrintPara> parasList = new List<PrintPara>();
  667. List<ICSITEMLot> InfoList = new List<ICSITEMLot>();
  668. for (int i = 0; i < grvDetail.RowCount; i++)
  669. {
  670. if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
  671. {
  672. PrintPara para = new PrintPara();
  673. para.PrintKey = "LOTNO";
  674. para.PrintValues = new object[] { grvDetail.GetRowCellValue(i, colLotNO).ToString() };
  675. parasList.Add(para);
  676. ICSITEMLot Info = new ICSITEMLot();
  677. Info.LotNO = grvDetail.GetRowCellValue(i, colLotNO).ToString();
  678. //Info.PrintTimes = Convert.ToInt32(grvDetail.GetRowCellValue(i, colPrintTimes).ToString()) + 1;
  679. Info.lastPrintUSERID = AppConfig.UserId;
  680. Info.lastPrintTime = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss");
  681. Info.WorkPoint = AppConfig.WorkPointCode;
  682. InfoList.Add(Info);
  683. }
  684. }
  685. if (parasList.Count == 0)
  686. {
  687. ICSBaseSimpleCode.AppshowMessageBox("请选择数据!");
  688. return;
  689. }
  690. FormPrintDialog f = new FormPrintDialog("003", this.Text, parasList, false, null);//修改003/004
  691. f.ShowDialog();
  692. }
  693. catch (Exception ex)
  694. {
  695. MessageBox.Show(ex.ToString());
  696. }
  697. }
  698. #endregion
  699. #region MRO期初导入模板下载
  700. private void btnImportMROMould_Click(object sender, EventArgs e)
  701. {
  702. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm();
  703. _wait.Hide();
  704. string anjianExcelFileName = Environment.CommandLine.Substring(1, Environment.CommandLine.LastIndexOf("\\")) + "Output\\";
  705. try
  706. {
  707. _wait.Show();
  708. _wait.Caption = "模板下载中......";
  709. SaveFileDialog dlgSaveFileDialog = new SaveFileDialog(); //弹框提示保存
  710. dlgSaveFileDialog.InitialDirectory = anjianExcelFileName; //默认打开目录
  711. dlgSaveFileDialog.FilterIndex = 1;
  712. dlgSaveFileDialog.RestoreDirectory = true;
  713. dlgSaveFileDialog.FileName = "MRO期初导入模板.xlsx"; //默认保存名称
  714. dlgSaveFileDialog.Filter = "Excel文件(*.xlsx)|*.xlsx";
  715. if (dlgSaveFileDialog.ShowDialog() == DialogResult.OK)
  716. {
  717. string fileName = dlgSaveFileDialog.FileName; //获取弹出框选择或填写的文件名称
  718. List<FormReadExcelUIModelColumns> colNameList = new List<FormReadExcelUIModelColumns>();
  719. colNameList.Add(new FormReadExcelUIModelColumns("存货编码", true));
  720. colNameList.Add(new FormReadExcelUIModelColumns("库位", true));
  721. colNameList.Add(new FormReadExcelUIModelColumns("库位数量或最小包装数量", true));
  722. colNameList.Add(new FormReadExcelUIModelColumns("整盘数", true));
  723. colNameList.Add(new FormReadExcelUIModelColumns("生产批号", false));
  724. colNameList.Add(new FormReadExcelUIModelColumns("入库日期", false));
  725. FileUtil.exportToExcelFile(fileName, colNameList);
  726. _wait.Close();
  727. ICSBaseSimpleCode.AppshowMessageBox("模板下载成功!");
  728. }
  729. _wait.Close();
  730. }
  731. catch (Exception ex)
  732. {
  733. _wait.Close();
  734. ICSBaseSimpleCode.AppshowMessageBox("模板下载失败:" + ex.Message);
  735. }
  736. }
  737. #endregion
  738. #region MRO物料期初导入
  739. private void btnImportMROData_Click(object sender, EventArgs e)
  740. {
  741. string Lot_NO = "", LotNO_X = "";
  742. SimpleButton btntemp = (SimpleButton)sender;
  743. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  744. {
  745. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  746. return;
  747. }
  748. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm();
  749. _wait.Hide();
  750. try
  751. {
  752. FormReadExcel fre = new FormReadExcel();
  753. if (fre.ShowDialog() != DialogResult.OK)
  754. {
  755. return;
  756. }
  757. DataTable dataSource = fre._excelData;
  758. if (dataSource == null)
  759. {
  760. throw new Exception("excel数据取得失败");
  761. }
  762. _wait.Show();
  763. _wait.Caption = "判断模版是否正确......";
  764. #region 判断模版是否正确
  765. List<FormReadExcelUIModelColumns> colNameList = new List<FormReadExcelUIModelColumns>();
  766. //colNameList.Add(new FormReadExcelUIModelColumns("条码", true));
  767. colNameList.Add(new FormReadExcelUIModelColumns("存货编码", true));
  768. colNameList.Add(new FormReadExcelUIModelColumns("库位", true));
  769. colNameList.Add(new FormReadExcelUIModelColumns("库位数量或最小包装数量", true));
  770. colNameList.Add(new FormReadExcelUIModelColumns("整盘数", true));
  771. colNameList.Add(new FormReadExcelUIModelColumns("生产批号", false));
  772. colNameList.Add(new FormReadExcelUIModelColumns("入库日期", false));
  773. foreach (FormReadExcelUIModelColumns columnsName in colNameList)
  774. {
  775. if (!dataSource.Columns.Contains(columnsName.columnsName))
  776. {
  777. throw new Exception("模版不正确,缺少列" + columnsName.columnsName);
  778. }
  779. }
  780. #endregion
  781. _wait.Caption = "数据整理中......";
  782. //List<ICSITEMTrans> ItemTransList = new List<ICSITEMTrans>();
  783. //List<ICSITEMTransLot> ItemTransLotList = new List<ICSITEMTransLot>();
  784. List<FormICSWareHouseLotInfoUIModel> ICSWareHouseLotInfoList = new List<FormICSWareHouseLotInfoUIModel>();
  785. List<ICSWareHouseInfo> ICSWareHouseInfoList = new List<ICSWareHouseInfo>();
  786. List<ICSWareHouseLotInfoLog> ICSWareHouseLogList = new List<ICSWareHouseLotInfoLog>();
  787. List<ICSITEMLot> InfoList = new List<ICSITEMLot>();
  788. int index = 1;
  789. foreach (DataRow dr in dataSource.Rows)
  790. {
  791. index++;
  792. ///判断必输项目是否为空
  793. foreach (FormReadExcelUIModelColumns columnsName in colNameList)
  794. {
  795. if (string.IsNullOrWhiteSpace(dr[columnsName.columnsName].ToString()) == true && columnsName.NotNull == true)
  796. {
  797. throw new Exception("第 " + index + " 行,列" + columnsName.columnsName + "没有输入值");
  798. }
  799. }
  800. //string LotNO = dr["条码"].ToString();
  801. string ItemCode = dr["存货编码"].ToString();
  802. string StackCode = dr["库位"].ToString();
  803. string Date = dr["入库日期"].ToString();
  804. string VLotNO = dr["生产批号"].ToString();
  805. DateTime dataTime;
  806. if (Date == "")
  807. {
  808. dataTime = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  809. }
  810. else
  811. {
  812. dataTime = Convert.ToDateTime(Convert.ToDateTime(Date).ToString("yyyy-MM-dd") + " " + AppConfig.GetSeverDateTime("HH:mm:ss").ToString("HH:mm:ss"));
  813. }
  814. string Type = "";
  815. decimal QTY = 0;
  816. bool result = decimal.TryParse(dr["库位数量或最小包装数量"].ToString(), out QTY);
  817. if (!result)
  818. {
  819. throw new Exception("第 " + index + " 行,库位数量或最小包装数量:" + dr["库位数量或最小包装数量"].ToString() + " 格式不正确!");
  820. }
  821. if (decimal.Parse(dr["库位数量或最小包装数量"].ToString()) < 0)
  822. {
  823. throw new Exception("第 " + index + " 行,库位数量或最小包装数量:" + dr["库位数量或最小包装数量"].ToString() + " 数量不正确,为负值!");
  824. }
  825. int count = 0;
  826. bool resultCount = int.TryParse(dr["整盘数"].ToString(), out count);
  827. if (!resultCount)
  828. {
  829. throw new Exception("第 " + index + " 行,整盘数:" + dr["整盘数"].ToString() + " 格式不正确!");
  830. }
  831. DataTable ddt3 = ICSSoft.Frame.Data.BLL.ICSWareHouseLotInfoLogBLL.SelectItem(ItemCode);
  832. if (ddt3 == null || ddt3.Rows.Count <= 0)
  833. {
  834. throw new Exception("第 " + index + " 行,存货编码:" + ItemCode + " 不存在!");
  835. }
  836. else
  837. {
  838. Type = ddt3.Rows[0]["Type"].ToString();
  839. }
  840. string StorageCode = "";
  841. DataTable ddt2 = ICSSoft.Frame.Data.BLL.ICSWareHouseLotInfoLogBLL.SelectStack(StackCode);
  842. if (ddt2 == null || ddt2.Rows.Count <= 0)
  843. {
  844. throw new Exception("第 " + index + " 行,库位:" + StackCode + " 不存在!");
  845. }
  846. else
  847. {
  848. StorageCode = ddt2.Rows[0]["StorageCode"].ToString();
  849. }
  850. DataTable ddt4 = ICSSoft.Frame.Data.BLL.ICSWareHouseLotInfoLogBLL.SelectLotNo(ItemCode);
  851. if (ddt4.Rows[0]["INVCONTROLTYPE"].ToString() == "True"&&string.IsNullOrWhiteSpace(dr["生产批号"].ToString()))
  852. {
  853. throw new Exception("第 " + index + " 行,存货编码:" + ItemCode + " 已进行批次管理,批号必填!");
  854. }
  855. else if (ddt4.Rows[0]["INVCONTROLTYPE"].ToString() == "False"&&!string.IsNullOrWhiteSpace(dr["生产批号"].ToString()))
  856. {
  857. throw new Exception("第 " + index + " 行,存货编码:" + ItemCode + " 未进行批次管理,批号不填!");
  858. }
  859. //判断生产批号是否进行批次管理
  860. string VenderLotNO = ICSINVENTORYBLL.find(ItemCode, AppConfig.AppConnectString);
  861. if (VenderLotNO == "True" && dr["生产批号"].ToString() == "")
  862. {
  863. throw new Exception("第 " + index + " 行,存货编码:" + ItemCode + "已进行批次管理,导入模板生产批号为空!");
  864. }
  865. else if (VenderLotNO == "False" && dr["生产批号"].ToString() != "")
  866. {
  867. throw new Exception("第 " + index + " 行,存货编码:" + ItemCode + "未进行批次管理,导入模板生产批号不为空!");
  868. }
  869. DateTime time = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  870. string Time = time.ToString("yyyyMMddHHmmss");
  871. string Tday = Time.Substring(3, 1);
  872. string LotNO = "";
  873. for (int i = count; i > 0; i--)
  874. {
  875. int j = count - i;
  876. //string LotNO = "S8" + Time.Substring(0, 4) + (count - i + 1).ToString().PadLeft(4, '0');
  877. string sql = @"SELECT MAX(A.LotNO) AS LOTNO FROM ICSITEMLot A WHERE A.LotNO LIKE '{0}%' AND LEN(a.LotNO) = 10";
  878. sql = string.Format(sql, Tday);
  879. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  880. if (dt != null && dt.Rows.Count > 0)
  881. {
  882. Lot_NO = dt.Rows[0]["LOTNO"].ToString();
  883. }
  884. #region
  885. if (LotNO_X != "")
  886. {
  887. if (LotNO_X.Substring(1, 4) == Time.Substring(0, 4))
  888. {
  889. string sum = (Int32.Parse(LotNO_X.Substring(5, 5)) + 1).ToString();
  890. LotNO = LotNO_X.Substring(0, 5) + sum.PadLeft(5, '0');
  891. }
  892. }
  893. else if (Lot_NO != "")
  894. {
  895. if (Lot_NO.Substring(1, 4) == Time.Substring(0, 4))
  896. {
  897. string sum = (Int32.Parse(Lot_NO.Substring(5, 5)) + 1).ToString();
  898. LotNO = Lot_NO.Substring(0, 5) + sum.PadLeft(5, '0');
  899. }
  900. }
  901. else
  902. {
  903. LotNO = Tday + Time.Substring(0, 4) + "00001";
  904. }
  905. #endregion
  906. #region 批次信息表
  907. ICSITEMLot Info = new ICSITEMLot();
  908. Info.ID = "";
  909. Info.LotNO = LotNO;
  910. Info.LOTQTY = Convert.ToDecimal(QTY);
  911. Info.ItemCode = ItemCode;
  912. Info.VenderLotNO = VLotNO;
  913. Info.PRODUCTDATE = time;
  914. Info.ACTIVE = "Y";
  915. Info.Exdate = Convert.ToDateTime("2999-12-31");
  916. Info.TYPE = Type;
  917. Info.WorkPoint = AppConfig.WorkPointCode;
  918. Info.MUSER = AppConfig.UserId;
  919. Info.MUSERName = AppConfig.UserName;
  920. Info.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  921. Info.EATTRIBUTE1 = "期初";
  922. //Info.EATTRIBUTE3 = (Convert.ToDecimal(qty) / Convert.ToDecimal(QTY));
  923. Info.EATTRIBUTE3 = 0;
  924. InfoList.Add(Info);
  925. #endregion
  926. #region 存入库存信息表
  927. ICSWareHouseInfo lotinfo = new ICSWareHouseInfo();
  928. if (ddt2 != null && ddt2.Rows.Count > 0)
  929. {
  930. lotinfo.WHGUID = ddt2.Rows[0]["StorageID"].ToString();
  931. }
  932. lotinfo.WHCode = StorageCode;
  933. if (ddt2 != null && ddt2.Rows.Count > 0)
  934. {
  935. lotinfo.BinGUID = ddt2.Rows[0][0].ToString();
  936. }
  937. lotinfo.BinCode = StackCode;
  938. if (ddt3 != null && ddt3.Rows.Count > 0)
  939. {
  940. lotinfo.INVGUID = ddt3.Rows[0][0].ToString();
  941. }
  942. lotinfo.INVCode = ItemCode;
  943. lotinfo.QTY = Convert.ToDecimal(QTY);
  944. lotinfo.WorkPoint = AppConfig.WorkPointCode;
  945. lotinfo.MUSER = AppConfig.UserId;
  946. lotinfo.MUSERName = AppConfig.UserName;
  947. lotinfo.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  948. lotinfo.EATTRIBUTE1 = "期初";
  949. ICSWareHouseInfoList.Add(lotinfo);
  950. #endregion
  951. #region 存入物料,产品批次的库存信息
  952. FormICSWareHouseLotInfoUIModel lotinfo2 = new FormICSWareHouseLotInfoUIModel();
  953. lotinfo2.ID = AppConfig.GetGuid();
  954. lotinfo2.LotNO = LotNO;
  955. if (ddt2 != null && ddt2.Rows.Count > 0)
  956. {
  957. lotinfo2.WHGUID = ddt2.Rows[0]["StorageID"].ToString();
  958. }
  959. lotinfo2.WHCode = StorageCode;
  960. if (ddt2 != null && ddt2.Rows.Count > 0)
  961. {
  962. lotinfo2.BinGUID = ddt2.Rows[0][0].ToString();
  963. }
  964. lotinfo2.BinCode = StackCode;
  965. if (ddt3 != null && ddt3.Rows.Count > 0)
  966. {
  967. lotinfo2.INVGUID = ddt3.Rows[0][0].ToString();
  968. }
  969. lotinfo2.INVCode = ItemCode;
  970. lotinfo2.LotQty = Convert.ToDecimal(QTY);
  971. lotinfo2.WorkPoint = AppConfig.WorkPointCode;
  972. lotinfo2.MUSER = AppConfig.UserId;
  973. lotinfo2.MUSERName = AppConfig.UserName;
  974. lotinfo2.MTIME = dataTime;
  975. lotinfo2.ReceiveDate = dataTime;
  976. lotinfo2.EATTRIBUTE1 = "期初";
  977. ICSWareHouseLotInfoList.Add(lotinfo2);
  978. #endregion
  979. #region 存入物料收发交易记录表
  980. //ICSITEMTrans lotinfo3 = new ICSITEMTrans();
  981. //lotinfo3.ID = AppConfig.GetGuid();
  982. //lotinfo3.ITEMCODE = ItemCode;
  983. //lotinfo3.FRMStorageCODE = "";
  984. //lotinfo3.FRMStackCODE = "";
  985. //lotinfo3.TOStorageCODE = StorageCode;
  986. //lotinfo3.TOStackCODE = StackCode;
  987. //lotinfo3.TransQTY = Convert.ToDecimal(QTY);
  988. //lotinfo3.Memo = "";
  989. //lotinfo3.TransType = "收";
  990. //lotinfo3.BusinessCode = "";
  991. //lotinfo3.WorkPoint = AppConfig.WorkPointCode;
  992. //lotinfo3.MUSER = AppConfig.UserId;
  993. //lotinfo3.MUSERName = AppConfig.UserName;
  994. //lotinfo3.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  995. //lotinfo3.EATTRIBUTE1 = "期初";
  996. //ItemTransList.Add(lotinfo3);
  997. #endregion
  998. #region 存入物料收发交易批号记录表
  999. //ICSITEMTransLot lotinfo4 = new ICSITEMTransLot();
  1000. //lotinfo4.ID = AppConfig.GetGuid();
  1001. //lotinfo4.ITEMTransID = lotinfo3.ID;
  1002. //lotinfo4.LotNO = LotNO;
  1003. //lotinfo4.ITEMCODE = ItemCode;
  1004. //lotinfo4.TransQTY = Convert.ToDecimal(QTY);
  1005. //lotinfo4.Memo = "期初";
  1006. //lotinfo4.WorkPoint = AppConfig.WorkPointCode;
  1007. //lotinfo4.MUSER = AppConfig.UserId;
  1008. //lotinfo4.MUSERName = AppConfig.UserName;
  1009. //lotinfo4.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  1010. //ItemTransLotList.Add(lotinfo4);
  1011. #endregion
  1012. #region 存入日志记录表
  1013. ICSWareHouseLotInfoLog Infos = new ICSWareHouseLotInfoLog();
  1014. Infos.ID = AppConfig.GetGuid();
  1015. Infos.TransNO = "";
  1016. Infos.TransLine = "0";
  1017. Infos.ITEMCODE = ItemCode;
  1018. Infos.LotNO = LotNO;
  1019. Infos.FRMStorageCODE = "";
  1020. Infos.FRMStackCODE = "";
  1021. Infos.TOStorageCODE = StorageCode;
  1022. Infos.TOStackCODE = StackCode;
  1023. Infos.TransQTY = Convert.ToDecimal(QTY);
  1024. Infos.Memo = "";
  1025. Infos.TransType = "期初";
  1026. Infos.BusinessCode = "";
  1027. Infos.MUSER = AppConfig.UserCode;
  1028. Infos.MUSERName = AppConfig.UserName;
  1029. Infos.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  1030. Infos.WorkPoint = AppConfig.WorkPointCode;
  1031. ICSWareHouseLogList.Add(Infos);
  1032. #endregion
  1033. //Thread.Sleep(1000);
  1034. LotNO_X = LotNO;
  1035. }
  1036. }
  1037. _wait.Caption = "导入数据......";
  1038. ICSWareHouseLotInfoLogBLL.Insert(InfoList, ICSWareHouseLotInfoList, ICSWareHouseInfoList, ICSWareHouseLogList, AppConfig.AppConnectString);
  1039. _wait.Close();
  1040. ICSBaseSimpleCode.AppshowMessageBox("数据导入成功!");
  1041. btnFalsh_Click(null, null);
  1042. }
  1043. catch (Exception ex)
  1044. {
  1045. _wait.Close();
  1046. ICSBaseSimpleCode.AppshowMessageBox("数据导入失败:" + ex.Message);
  1047. }
  1048. }
  1049. #endregion
  1050. }
  1051. }