| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526 |
- using LabelManager2;
- using System;
- using System.Data;
- using System.Windows.Forms;
- using UAS_MES_NEW.DataOperate;
- using UAS_MES_NEW.Entity;
- using UAS_MES_NEW.PublicMethod;
- using System.Drawing;
- using System.Threading;
- using UAS_MES_NEW.PublicForm;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.Runtime.InteropServices;
- using DevExpress.Printing.Core.PdfExport.Metafile;
- using System.Net.Sockets;
- using System.Text;
- using System.IO;
- using UAS_MES_NEW.Make;
- using FastReport;
- //using Seagull.BarTender.Print;
- namespace UAS_MES_NEW.Packing
- {
- public partial class Packing_PackageCollection : Form
- {
- DataHelper dh;
- DataTable dt;
- LogStringBuilder sql = new LogStringBuilder();
- AutoSizeFormClass asc = new AutoSizeFormClass();
- ApplicationClass lbl;
- BarTender.Application engine;
- Thread thread;
- DataTable Dbfind;
- string ErrorMessage = "";
- string oMakeCode = "";
- string oMsID = "";
- string oMsStatus = "";
- string oOutBoxCode = "";
- decimal StandardQTY = 0;
- string LastSncode;
- Document doc;
- string PR_CHECKCARTONW = "0";
- ModeBusTCPServer md;
- private TcpClient tcpClient1;
- private NetworkStream stream1;
- private Thread receiveThread1;
- private TcpClient tcpClient2;
- private NetworkStream stream2;
- private Thread receiveThread2;
- private TcpClient tcpClient3;
- private NetworkStream stream3;
- private Thread receiveThread3;
- public Packing_PackageCollection()
- {
- InitializeComponent();
- }
- //创建打印进程
- private void NewPrint()
- {
- try
- {
- //engine = new BarTender.Application();
- //lbl = new ApplicationClass();
- //BaseUtil.WriteLbl();
- }
- catch (Exception ex)
- {
- OperateResult.AppendText("未正确安装打印软件\n" + ex.Message, Color.Red);
- }
- }
- string chooseprintername;
- string label_type = "";
- string label_name = "";
- private void PackCollection_Load(object sender, EventArgs e)
- {
- // 杀死之前全部未关闭的进程
- Process[] processes = System.Diagnostics.Process.GetProcessesByName("lppa");
- Process[] processes1 = System.Diagnostics.Process.GetProcessesByName("bartend");
- for (int i = 0; i < processes1.Length; i++)
- {
- processes1[i].Kill();
- }
- for (int i = 0; i < processes.Length; i++)
- {
- processes[i].Kill();
- }
- pb_name.FormName = Name;
- pb_name.TableName = "ProductBrand";
- pb_name.SetValueField = new string[] { "pb_name" };
- pb_name.SelectField = "pb_name # 品牌";
- pb_name.DBTitle = "品牌";
- pb_name.Condition = "pr_keydepartment = '-1'";
- pb_name.DbChange += Cd_stepcode_DbChange;
- //设置DbFind的必须的数据
- asc.controllInitializeSize(this);
- thread = new Thread(NewPrint);
- thread.Start();
- md = new ModeBusTCPServer();
- dh = SystemInf.dh;
- button2_Click(sender,e);
- button3_Click(sender,e);
- button4_Click(sender,e);
- }
- private void Cd_stepcode_DbChange(object sender, EventArgs e)
- {
- Dbfind = pb_name.ReturnData;
- BaseUtil.SetFormValue(this.Controls, Dbfind);
- }
- private void PackCollection_SizeChanged(object sender, EventArgs e)
- {
- asc.controlAutoSize(this);
- }
- private void PackCollection_Activated(object sender, EventArgs e)
- {
- pi_inoutno.Focus();
- }
- //刷新表单的数据的数据
- private void LoadData()
- {
-
- LoadCollectedNum();
- }
- private void LoadGridData()
- {
- //加载Grid数据
- dt = (DataTable)dh.ExecuteSql(" select pd_piid,pd_prodcode,pr_detail,pr_spec||pr_orispeccode pr_spec,sum(pd_inqty)qty,NVL(PDAQTY,0)PDAQTY from prodiodetail left join SCM_BARCODEIO_IN_VIEW2 on pd_piid = bi_piid and pd_prodcode = bi_prodcode " +
- "left join product on pd_prodcode = pr_code where pd_inoutno ='"+pi_inoutno.Text+ "' group by pd_piid,pd_prodcode,pr_detail,pr_spec||pr_orispeccode,PDAQTY" +
- " ", "select");
- BaseUtil.FillDgvWithDataTable(PackageDetail, dt);
-
- }
- private void Print_Click(object sender, EventArgs e)
- {
-
- }
- //加载工单信息和装箱明细信息
- private void pa_code_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter)
- {
- if (!dh.CheckExist("prodinout left join DOCUMENTSETUP on pi_class = ds_name ", "pi_inoutno = '" + pi_inoutno.Text + "' and DS_INOROUT = 'IN' "))
- {
- OperateResult.AppendText(">>入库单" + pi_inoutno.Text + "不存在\n", Color.Red, pi_inoutno);
- return;
- }
- dt = (DataTable)dh.ExecuteSql(" select * from prodinout where pi_inoutno = '" + pi_inoutno.Text + "' ", "select");
- BaseUtil.SetFormValue(this.Controls, dt);
- LoadGridData();
- }
- }
- //输入序列号的回车事件
- private void barcode_KeyDown(object sender, KeyEventArgs e)
- {
-
- }
- private void Clean_Click(object sender, EventArgs e)
- {
- OperateResult.Clear();
- }
- DataTable _dt;
- private void pr_code_TextChanged(object sender, EventArgs e)
- {
- }
- private void PackCollection_FormClosing(object sender, FormClosingEventArgs e)
- {
- BaseUtil.ClosePrint(lbl);
- if (engine != null)
- engine.Quit(BarTender.BtSaveOptions.btDoNotSaveChanges);
- if (stream1 != null)
- {
- stream1.Close();
- }
- if (tcpClient1 != null)
- {
- tcpClient1.Close();
- }
- if (stream2 != null)
- {
- stream2.Close();
- }
- if (tcpClient2 != null)
- {
- tcpClient2.Close();
- }
- dh.Dispose();
- }
- private void Packing_Click(object sender, EventArgs e)
- {
-
- }
-
- bool AutoCut;
-
- private void PrintLabel_SelectedValueChanged(object sender, EventArgs e)
- {
- }
- private void DeleteAll_Click(object sender, EventArgs e)
- {
-
- }
-
- private void LoadCollectedNum()
- {
- }
- private void pa_remark_KeyDown(object sender, KeyEventArgs e)
- {
-
- }
- private void PreFix_KeyDown(object sender, KeyEventArgs e)
- {
-
- }
- private void BuildServer_Click(object sender, EventArgs e)
- {
- }
- private void CloseServer_Click(object sender, EventArgs e)
- {
- if (md.IsOpen)
- {
- md.Close();
- OperateResult.AppendText(">>服务关闭成功\n");
- }
- else
- OperateResult.AppendText(">>服务尚未开启\n");
- }
- private void Remark_PreFix_KeyDown(object sender, KeyEventArgs e)
- {
- }
- private void PackageDetail_CellContentClick(object sender, DataGridViewCellEventArgs e)
- {
- }
- private void button2_Click(object sender, EventArgs e)
- {
- if (tcpClient1==null)
- {
- tcpClient1 = new TcpClient("127.0.0.1", 8001);
- stream1 = tcpClient1.GetStream();
- // 启动接收数据的线程
- receiveThread1 = new Thread(new ThreadStart(ReceiveData1));
- receiveThread1.Start();
- }
- }
- private void button3_Click(object sender, EventArgs e)
- {
- if (tcpClient2 == null)
- {
- tcpClient2 = new TcpClient("127.0.0.1", 8002);
- stream2 = tcpClient2.GetStream();
- // 启动接收数据的线程
- receiveThread2 = new Thread(new ThreadStart(ReceiveData2));
- receiveThread2.Start();
- }
- }
- private void ReceiveData1()
- {
- byte[] buffer = new byte[1024];
- int bytesRead;
- Report Report = new Report();
- Report.Load(System.AppDomain.CurrentDomain.BaseDirectory + @"\成品3030.frx");
- while (tcpClient1.Connected)
- {
- try
- {
- bytesRead = stream1.Read(buffer, 0, buffer.Length);
- if (bytesRead == 0)
- {
- // 如果没有读取到数据,可能是连接已经关闭
- OperateResult.AppendText("8001端口未连接\n", Color.Red);
- break;
- }
- string receivedData = Encoding.Default.GetString(buffer, 0, bytesRead);
- OperateResult.AppendText("ReceiveData1" + receivedData + "\n", Color.Black);
- if (pi_inoutno.Text != "" && pb_name.Text != "")
- {
- string barcode = receivedData.Replace("A,ReadId1,", "").Replace("~","");
- string message = "";
- string prodcode = "";
- string qty = "";
- string lotno = "";
- string[] param = new string[] { barcode, pb_name.Text, message, prodcode , qty, lotno };
- dh.CallProcedure("SP_BARCODEIO_PARSE",ref param);
- message = param[2];
- if (message != "null")
- {
- OperateResult.AppendText(message+"\n", Color.Red);
- SendData1("A,ReadId1,1");
- }
- else
- {
- prodcode = param[3];
- qty = param[4];
- lotno = param[5];
- dt = (DataTable)dh.ExecuteSql("select * from ( select pd_piid,pd_prodcode,pr_detail,pr_spec,sum(pd_inqty)qty,NVL(PDAQTY,0)PDAQTY from prodiodetail left join SCM_BARCODEIO_IN_VIEW2 on pd_piid = bi_piid and pd_prodcode = bi_prodcode " +
- " left join product on pd_prodcode = pr_code where pd_inoutno ='"+pi_inoutno.Text+"' group by pd_piid,pd_prodcode,pr_detail,pr_spec,PDAQTY " +
- " ) where pd_prodcode = '"+prodcode+"' and qty-pdaqty >="+qty+" ", "select");
- if (dt.Rows.Count > 0)
- {
- string code = "";
- string[] param1 = new string[] { "","", code };
- dh.CallProcedure("SP_GETBARCODE", ref param1);
- code = param1[2].Replace("BARCODE:","");
- dh.ExecuteSql(" insert into barcodeio(bi_id,bi_barcode,bi_piid,bi_piclass,bi_inoutno,bi_prodcode,bi_whcode,bi_inqty,bi_madedate,bi_indate,bi_content)" +
- " values (barcodeio_seq.nextval,'"+code+"','"+pi_id.Text+"','"+pi_class.Text+"','"+pi_inoutno.Text+"','"+prodcode+"','"+pi_whcode.Text+"',"+qty+",sysdate,sysdate,'"+barcode+"') ", "insert");
- LoadGridData();
- OperateResult.AppendText("条码:"+barcode+"采集成功\n", Color.Green);
- DataTable dtbarcode = (DataTable)dh.ExecuteSql(" select '"+code+ "' BAN_BARCODE,'"+ dt.Rows[0]["pd_prodcode"].ToString() + "' BAN_PRODCODE" +
- " ,'"+ dt.Rows[0]["pr_spec"].ToString() + "' PR_DETAIL,'"+qty+ "' BAN_QTY from dual ", "select");
- Report.PrintSettings.ShowDialog = false;
- Report.PrintSettings.Printer = PrintList.Text;
- Report.RegisterData(dtbarcode, "VENDORBARCODE_VIEW");
- Report.GetDataSource("VENDORBARCODE_VIEW").Enabled = true;
- Report.Print();
- SendData1("A,ReadId1,0");
- }
- else
- {
- OperateResult.AppendText("料号:" +prodcode+"数量:"+qty+ "不满足入库需求,无法入库\n", Color.Red);
- SendData1("A,ReadId1,1");
- }
- }
- }
- else
- {
- OperateResult.AppendText("入库单与品牌不可为空\n", Color.Red);
- SendData1("A,ReadId1,1");
- }
- //Console.WriteLine("Received: {0}", receivedData);
- }
- catch (Exception ex)
- {
- Console.WriteLine("8001端口异常" + ex.Message + "\n", Color.Red);
- }
- }
- // 清理资源
- if (stream1 != null)
- {
- stream1.Close();
- }
- if (tcpClient1 != null)
- {
- tcpClient1.Close();
- }
- }
- private void ReceiveData2()
- {
- byte[] buffer = new byte[1024];
- int bytesRead;
- while (tcpClient2.Connected)
- {
- try
- {
- bytesRead = stream2.Read(buffer, 0, buffer.Length);
- if (bytesRead == 0)
- {
- // 如果没有读取到数据,可能是连接已经关闭
- OperateResult.AppendText("8002端口未连接\n", Color.Red);
- break;
- }
- string receivedData = Encoding.Default.GetString(buffer, 0, bytesRead);
- OperateResult.AppendText("ReceiveData2" + receivedData + "\n", Color.Black);
- //Console.WriteLine("Received: {0}", receivedData);
- string barcode = receivedData.Replace("A,ReadId3,", "").Split('~')[0];
- string code = receivedData.Replace("A,ReadId3,", "").Split('~')[1];
- if (dh.CheckExist("barcodeio", "bi_barcode = '" + code + "' and bi_content = '" + barcode + "'"))
- {
- OperateResult.AppendText("原厂条码:" + barcode + "与内部条码:" + code + "匹配成功\n", Color.Green);
- SendData2("A,ReadId3,0");
- }
- else
- {
- OperateResult.AppendText("原厂条码:"+barcode+"与内部条码:"+code+"匹配失败\n", Color.Red);
- SendData2("A,ReadId3,1");
- }
- }
- catch (Exception ex)
- {
- OperateResult.AppendText("8002端口异常" + ex.Message + "\n", Color.Red);
- }
- }
- // 清理资源
- if (stream2 != null)
- {
- stream2.Close();
- }
- if (tcpClient2 != null)
- {
- tcpClient2.Close();
- }
- }
- private void SendData1(String data)
- {
- OperateResult.AppendText("SendData1"+data +"\n", Color.Black);
- if (stream1 != null && stream1.CanWrite)
- {
- byte[] buffer = Encoding.Default.GetBytes(data);
- stream1.Write(buffer, 0, buffer.Length);
- }
- }
- private void SendData2(String data)
- {
- OperateResult.AppendText("SendData2"+data + "\n", Color.Black);
- if (stream2 != null && stream2.CanWrite)
- {
- byte[] buffer = Encoding.Default.GetBytes(data);
- stream2.Write(buffer, 0, buffer.Length);
- }
- }
-
- private void DataIn_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter)
- {
-
- }
- }
- private void button1_Click(object sender, EventArgs e)
- {
- Make_BarcodeDetail badcode = new Make_BarcodeDetail(pi_inoutno.Text);
- BaseUtil.SetFormCenter(badcode);
- badcode.ShowDialog();
- }
- private void pb_name_UserControlTextChanged(object sender, EventArgs e)
- {
- if (pb_name.Text != null)
- {
- SendData1("A,LoadTemplate,{" + pb_name.Text + "}");
- }
- }
- private void button4_Click(object sender, EventArgs e)
- {
- if (tcpClient3 == null)
- {
- tcpClient3 = new TcpClient("127.0.0.1", 8003);
- stream3 = tcpClient3.GetStream();
- // 启动接收数据的线程
- receiveThread3 = new Thread(new ThreadStart(ReceiveData3));
- receiveThread3.Start();
- }
- }
- private void ReceiveData3()
- {
- // throw new NotImplementedException();
- }
- }
- }
|