using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Stone.Common; using Stone.Entity; using Stone.WinBiz.JISAdmin; using Gm_WMS.DataAccess.DataService; using System.IO; namespace Stone.WinModule.JISAdmin { public partial class frmEdiPrintAssemble : Stone.WinModule.frmBase { public frmEdiPrintAssemble() { InitializeComponent(); } private void frmEdiPrintAssemble_Load(object sender, EventArgs e) { if (User.UserInfo.UserName == "admin") { this.btnPrintHand.Visible = true; } this.cbFields.SelectedIndex = 0; this.timer1.Interval = Convert.ToInt32(MyAppconfig.ReadValue("EDI显示刷新时间")) * 1000; this.timer1.Enabled = true; } private void btnQuery_Click(object sender, EventArgs e) { try { string PackageGroupName = ""; if (rbType1.Checked) PackageGroupName = rbType1.Text; if (rbType2.Checked) PackageGroupName = rbType2.Text; if (rbType3.Checked) PackageGroupName = rbType3.Text; if (rbType4.Checked) PackageGroupName = rbType4.Text; if (rbType5.Checked) PackageGroupName = rbType5.Text; string Fields = this.cbFields.SelectedItem.ToString(); string value = this.txtKey.Text.Trim(); string d1 = MyDateTime.Format(this.dateTimePicker1.Value, MyDateTimeType.Date) + " 00:00:00"; string d2 = MyDateTime.Format(this.dateTimePicker2.Value, MyDateTimeType.Date) + " 23:59:59"; string strWhere = "[IsFix]=1 and [PackageGroupName]='{4}' and [IsPrintAssemble]={0} and [SwetTime]>='{1}' and [SwetTime]<='{2}' {3}"; object[] obj = new object[10]; obj[0] = rbPrint1.Checked ? "1" : "0"; obj[1] = d1; obj[2] = d2; obj[3] = " and " + Fields + "='" + value + "'"; obj[4] = PackageGroupName; if (value == "") obj[3] = ""; strWhere = string.Format(strWhere, obj); Entity_t_JIS_Seq5000 t_JIS_Seq5000 = new Entity_t_JIS_Seq5000(); this.dgrdView1.DataSource = t_JIS_Seq5000.GetData("", strWhere, "[SequenceNumber] asc, [SwetTime] asc").Tables[0]; MyGridViewStyle.SetDataGridRowNumber(this.dgrdView1); MyGridViewStyle.SetDataGridMenuCommon(this.dgrdView1); MyGridViewStyle.GetGridViewState(this.dgrdView1, "JIS装配单"); this.dgrdView1.Columns["ID"].Visible = false; this.dgrdView1.Columns["SequenceNumber"].HeaderText = "EINSTEIN Seq"; this.lblState.Text = "记录:" + this.dgrdView1.Rows.Count.ToString(); } catch (Exception ex) { this.lblShow.Text = ex.Message; } } private void btnPrintHand_Click(object sender, EventArgs e) { string PackageGroupName = ""; if (rbType1.Checked) PackageGroupName = rbType1.Text; if (rbType2.Checked) PackageGroupName = rbType2.Text; if (rbType3.Checked) PackageGroupName = rbType3.Text; if (rbType4.Checked) PackageGroupName = rbType4.Text; if (rbType5.Checked) PackageGroupName = rbType5.Text; LocalDBService db = null; try { if (!MyMessageBox.ShowQuestion("请按Sift或Ctrl键选择需要手动打印的多条记录,是否要手动打印?")) return; if (this.dgrdView1.SelectedRows.Count == 0) throw new Exception("请选择需要打印的多条记录!"); string ids = ""; for (int i = 0; i < this.dgrdView1.SelectedRows.Count; i++) { ids += this.dgrdView1.SelectedRows[i].Cells["ID"].Value.ToString() + ","; } if (ids.Length > 0) ids = ids.Substring(0, ids.Length - 1); string strWhere = "[ID] in (" + ids + ")"; string PackageGroupName_New = this.dgrdView1.SelectedRows[0].Cells["PackageGroupName"].Value.ToString(); if (PackageGroupName != PackageGroupName_New) { throw new Exception("数据和类型不正确"); } db = new LocalDBService(); db.BeginTrans(); Entity_t_JIS_Seq5000 t_JIS_Seq5000 = new Entity_t_JIS_Seq5000(db); DataSet dsData = t_JIS_Seq5000.GetData("", strWhere, "[SwetTime], [CheckSequence] ASC"); if (dsData.Tables[0].Select("[IsPrintAssemble]=1").Length > 0) throw new Exception("选择的记录中有已经打印的数据,请刷新数据!"); dsData.Tables[0].TableName = "BillHead"; string filename = WriteMES(dsData, false); FtpMES(filename); t_JIS_Seq5000.Edit("[IsPrintAssemble]=1, [PrintTimeAssemble]=getdate(), [IsTransport]=1", strWhere); string BillNo = F_JIS5000_Print.GetPackingListNumber(db, PackageGroupName_New); string PagerNumber = F_JIS5000_Print.GetNumber(db, PackageGroupName_New, 2); for (int j = 0; j < dsData.Tables[0].Rows.Count; j++) { //throw new Exception("OK"); t_JIS_Seq5000.Edit("[IsPrintPackingList]=1, [PackingListNumber]='" + BillNo + "', [PagerNumber]='" + PagerNumber + "'", "[ID]=" + dsData.Tables[0].Rows[j]["ID"].ToString()); } F_JIS5000_Print.PrintAssembly(dsData); F_JIS5000_Print.PrintAssemblyLabel(dsData); db.Commit(); btnQuery_Click(new object(), new EventArgs()); } catch (Exception ex) { if (db != null) db.Rollback(); MyMessageBox.ShowErrorMessage(ex.Message); } finally { if (db != null) db.EndTrans(); } } private void btnRePrint_Click(object sender, EventArgs e) { try { if (!MyMessageBox.ShowQuestion("是否要补打装配单?")) return; if (this.dgrdView1.SelectedRows.Count == 0) throw new Exception("请选择需要补打的多条记录!"); string ids = ""; for (int i = 0; i < this.dgrdView1.SelectedRows.Count; i++) { ids += this.dgrdView1.SelectedRows[i].Cells["ID"].Value.ToString() + ","; } if (ids.Length > 0) ids = ids.Substring(0, ids.Length - 1); string strWhere = "[ID] in (" + ids + ")"; Entity_t_JIS_Seq5000 t_JIS_Seq5000 = new Entity_t_JIS_Seq5000(); DataSet dsData = t_JIS_Seq5000.GetData("", strWhere, "[SequenceNumber] asc, [SwetTime] asc"); if (dsData.Tables[0].Select("[IsPrintAssemble]=0").Length > 0) throw new Exception("没有可打印的数据"); dsData.Tables[0].TableName = "BillHead"; F_JIS5000_Print.PrintAssembly(dsData); btnQuery_Click(new object(), new EventArgs()); } catch (Exception ex) { MyMessageBox.ShowErrorMessage(ex.Message); } } private void btnPrintLabel_Click(object sender, EventArgs e) { try { if (!MyMessageBox.ShowQuestion("是否要补打零件标签?")) return; if (this.dgrdView1.SelectedRows.Count == 0) throw new Exception("请选择需要补打的多条记录!"); string ids = ""; for (int i = 0; i < this.dgrdView1.SelectedRows.Count; i++) { ids += this.dgrdView1.SelectedRows[i].Cells["ID"].Value.ToString() + ","; } if (ids.Length > 0) ids = ids.Substring(0, ids.Length - 1); string strWhere = "[ID] in (" + ids + ")"; Entity_t_JIS_Seq5000 t_JIS_Seq5000 = new Entity_t_JIS_Seq5000(); DataSet dsData = t_JIS_Seq5000.GetData("", strWhere, "[SequenceNumber] asc, [SwetTime] asc"); if (dsData.Tables[0].Select("[IsPrintAssemble]=0").Length > 0) throw new Exception("没有可打印的数据"); dsData.Tables[0].TableName = "BillHead"; F_JIS5000_Print.PrintAssemblyLabel(dsData); btnQuery_Click(new object(), new EventArgs()); } catch (Exception ex) { MyMessageBox.ShowErrorMessage(ex.Message); } } private void btnSet_Click(object sender, EventArgs e) { MyGridViewStyle.Show(this.dgrdView1, "JIS装配单"); } private void btnOutPut_Click(object sender, EventArgs e) { try { Stone.Common.MyExport.ShowExport(this.dgrdView1); } catch (Exception ex) { MyMessageBox.ShowInfoMessage(ex.Message); } } private void frmEdiPrintAssemble_FormClosing(object sender, FormClosingEventArgs e) { try { MyGridViewStyle.SaveGridViewState(this.dgrdView1, "JIS装配单"); } catch { } } private void chkAuto_CheckedChanged(object sender, EventArgs e) { AutoUpdate(); } private void AutoUpdate() { if (chkAuto.Checked) { this.lblShow.Text = "自动刷新中..."; this.Update(); btnQuery_Click(new object(), new EventArgs()); this.lblShow.Text = DateTime.Now.ToString() + " 自动刷新完成,下次刷新 " + Convert.ToString(this.timer1.Interval / 1000) + " 秒以后"; } else { this.lblShow.Text = "自动刷新关闭"; } } private void timer1_Tick(object sender, EventArgs e) { AutoUpdate(); } private void btnPrintReA_Click(object sender, EventArgs e) { try { if (this.dgrdView1.SelectedRows.Count == 0) throw new Exception("请选择要补打的记录"); if (!MyMessageBox.ShowQuestion("是否要补打选择的记录?")) return; string ID = this.dgrdView1.SelectedRows[0].Cells["ID"].Value.ToString(); F_JIS5000_Print.PrintCallShipRe(ID, "SMA"); } catch (Exception ex) { MyMessageBox.ShowErrorMessage(ex.Message); } } private void btnPrintReB_Click(object sender, EventArgs e) { try { if (this.dgrdView1.SelectedRows.Count == 0) throw new Exception("请选择要补打的记录"); if (!MyMessageBox.ShowQuestion("是否要补打选择的记录?")) return; string ID = this.dgrdView1.SelectedRows[0].Cells["ID"].Value.ToString(); F_JIS5000_Print.PrintCallShipRe(ID, "SMB"); } catch (Exception ex) { MyMessageBox.ShowErrorMessage(ex.Message); } } private void btnInsert_Click(object sender, EventArgs e) { try { if (this.dgrdView1.SelectedRows.Count == 0) throw new Exception("请选择一条要插单的记录!"); if (!MyMessageBox.ShowQuestion("是否要线下插单?")) return; string ID = this.dgrdView1.SelectedRows[0].Cells["ID"].Value.ToString(); Entity_t_JIS_Seq5000 t_JIS_Seq5000 = new Entity_t_JIS_Seq5000(); DataSet dsData = t_JIS_Seq5000.GetData("[ID]=" + ID); if (dsData.Tables[0].Rows.Count == 0) { throw new Exception("插单的记录不存在"); } if (Convert.ToInt32(dsData.Tables[0].Rows[0]["IsAssemble"]) == 0) { throw new Exception("只有装配完成的才能线下插单"); } Gm_WMS.DataAccess.DataService.LocalDBService db = new Gm_WMS.DataAccess.DataService.LocalDBService(); db.Exec_NonQuery("UPDATE t_JIS_Seq5000 SET [IsInsert]=1, [IsPrintAssemble]=0, [IsAssemble]=0, [IsTransport]=0 WHERE [ID]=" + ID); btnQuery_Click(new object(), new EventArgs()); MyMessageBox.ShowInfoMessage("插单完成"); } catch (Exception ex) { MyMessageBox.ShowErrorMessage(ex.Message); } } #region ftp_mes private static string WriteMES(DataSet dsData, bool isReOrder) { string ID = dsData.Tables[0].Rows[0]["ID"].ToString(); string OrderNumber = dsData.Tables[0].Rows[0]["OrderNumber"].ToString(); DateTime SwetTime = Convert.ToDateTime(dsData.Tables[0].Rows[0]["SwetTime"]); string CheckSequence = dsData.Tables[0].Rows[0]["CheckSequence"].ToString(); EntityBase v_JIS_Tod = new Entity_v_JIS_Tod(); if (isReOrder) v_JIS_Tod = new Entity_v_JIS_Tod_ReOrder(); DataSet dsTod = v_JIS_Tod.GetData("", "[SeqID]=" + dsData.Tables[0].Rows[0]["ID"].ToString(), "JisMajor desc, seqnum asc"); StreamWriter sw = null; string filename = ""; try { filename = MyIO.GetAppPath() + "\\MES_BAK\\"; if (!Directory.Exists(filename)) { Directory.CreateDirectory(filename); } filename += ID + ".csv"; OrderNumber = OrderNumber.Substring(0, OrderNumber.Length - 1); string PrintTime = MyDateTime.Format(MyDateTimeType.DateTime); sw = new StreamWriter(filename, false, Encoding.Default); foreach (DataRow drData in dsTod.Tables[0].Rows) { string partNumber = drData["partNumber"].ToString().Trim(); string line = ID + ","; line += OrderNumber + ","; line += MyDateTime.Format(SwetTime, MyDateTimeType.Date) + ","; line += MyDateTime.Format(SwetTime, MyDateTimeType.Time3) + ","; line += "\"" + drData["PartsFamily"].ToString() + "\","; line += "\"" + drData["SupplyGroup"].ToString() + "\","; line += drData["Variant1"].ToString() + ","; line += partNumber + ","; line += drData["description"].ToString() + ","; line += drData["ColorName"].ToString() + "(" + drData["ColorCode"].ToString() + ")" + ","; line += drData["quantity"].ToString() + ","; line += CheckSequence + ","; line += (partNumber.Length > 2 ? partNumber.Substring(partNumber.Length - 2, 2) : "") + ","; line += "AAB" + ","; line += drData["Variant"].ToString();// +","; //line += PrintTime; sw.WriteLine(line); } } catch (Exception ex) { MyLogger.Write(ex.Message); } finally { if (sw != null) sw.Close(); } return ID + ".csv"; } private static void FtpMES(string filename) { string MES_AutoSend = MyAppconfig.ReadValue("MES_AutoSend").Trim(); string MES_Path = MyAppconfig.ReadValue("MES_Path").Trim(); if (MES_AutoSend == "是") { string path = MyIO.GetAppPath() + "\\MES_BAK"; File.Copy(path + "\\" + filename.ToString(), MES_Path + "\\" + filename.ToString(), true); } } #endregion } }