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.
476 lines
18 KiB
476 lines
18 KiB
5 months ago
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
using System.ComponentModel;
|
||
|
using System.Configuration;
|
||
|
using System.Data;
|
||
|
using System.Drawing;
|
||
|
using System.Linq;
|
||
|
using System.Reflection;
|
||
|
using System.Text;
|
||
|
using System.Windows.Forms;
|
||
|
using gregn6Lib;
|
||
|
using MESClassLibrary.BLL.Log;
|
||
|
using PunchAndWeld.DataSouce;
|
||
|
|
||
|
namespace PunchAndWeld
|
||
|
{
|
||
|
public partial class FrmProScreen_WheelBrow_New : Form
|
||
|
{
|
||
|
public FrmProScreen_WheelBrow_New()
|
||
|
{
|
||
|
InitializeComponent();
|
||
|
}
|
||
|
|
||
|
string[] partNo1 = new string[10];
|
||
|
private string planID = "";
|
||
|
private string zcPartNo = "",zcPartName="";
|
||
|
string stationNo = "", stationId = "";
|
||
|
|
||
|
private void txtScanPlan_KeyDown(object sender, KeyEventArgs e)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
if (e.KeyCode == Keys.Enter)
|
||
|
{
|
||
|
if (string.IsNullOrWhiteSpace(txtScanPlan.Text.Trim()))
|
||
|
{
|
||
|
MessageBox.Show("订单号不能为空!", "提示", MessageBoxButtons.OK);
|
||
|
txtScanPlan.SelectAll();
|
||
|
txtScanPlan.Focus();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
#region 判断订单号是否存在
|
||
|
|
||
|
if (InitList()) return;
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
InitData();
|
||
|
|
||
|
textBox1.Focus();
|
||
|
|
||
|
}
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private bool InitList()
|
||
|
{
|
||
|
int a = 0;
|
||
|
this.listView1.Items.Clear();
|
||
|
|
||
|
DataTable dt = ProScreenFunc.GetPlanInfoByOrderNo(txtScanPlan.Text.Trim());
|
||
|
if (dt != null && dt.Rows.Count > 0)
|
||
|
{
|
||
|
#region 判断订单是否生产完成
|
||
|
|
||
|
partNo1 = new string[dt.Rows.Count];
|
||
|
for (int i = 0; i < dt.Rows.Count; i++)
|
||
|
{
|
||
|
if (Convert.ToInt32(dt.Rows[i]["IsFinish"].ToString()) == 1)
|
||
|
{
|
||
|
a += 1;
|
||
|
if (a == dt.Rows.Count)
|
||
|
{
|
||
|
MessageBox.Show("订单已完成,请扫描其他订单!", "提示", MessageBoxButtons.OK);
|
||
|
txtScanPlan.Focus();
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
partNo1[i] = dt.Rows[i]["PartNo"].ToString();
|
||
|
ListViewItem lvi = new ListViewItem(dt.Rows[i]["OrderNo"].ToString());
|
||
|
lvi.SubItems.Add(dt.Rows[i]["PartNo"].ToString()); //后面添加的Item都为SubItems ,即为子项
|
||
|
|
||
|
lvi.SubItems.Add(dt.Rows[i]["ProductName"].ToString());
|
||
|
lvi.SubItems.Add(dt.Rows[i]["OrderCount"].ToString());
|
||
|
listView1.Items.Add(lvi);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endregion
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
MessageBox.Show("订单号不存在,请重新扫描!", "提示", MessageBoxButtons.OK);
|
||
|
textBox2.SelectAll();
|
||
|
textBox2.Focus();
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
public void InitData()
|
||
|
{
|
||
|
string[] part =
|
||
|
{
|
||
|
"A2548850000", "A2548850400", "A2548850200", "A2548850600"
|
||
|
};
|
||
|
|
||
|
string[] sum = new string[4];
|
||
|
|
||
|
try
|
||
|
{
|
||
|
for (int i = 0; i < 4; i++)
|
||
|
{
|
||
|
sum[i] = ProScreenFunc.SumByPartNo(txtScanPlan.Text.Trim(), part[i]);
|
||
|
}
|
||
|
|
||
|
#region
|
||
|
|
||
|
uc1.PartInfo = "A2548850000 前部左侧轮眉";
|
||
|
uc2.PartInfo = "A2548850400 后部左侧轮眉";
|
||
|
uc3.PartInfo = "A2548850200 前部右侧轮眉";
|
||
|
uc4.PartInfo = "A2548850600 后部右侧轮眉";
|
||
|
|
||
|
uc1.Sum = sum[0];
|
||
|
uc2.Sum = sum[1];
|
||
|
uc3.Sum = sum[2];
|
||
|
uc4.Sum = sum[3];
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void textBox1_KeyDown(object sender, KeyEventArgs e)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
if (e.KeyCode == Keys.Enter)
|
||
|
{
|
||
|
if (txtScanPlan.Text.Trim() == "")
|
||
|
{
|
||
|
MessageBox.Show("请扫描计划单!", "提示", MessageBoxButtons.OK);
|
||
|
txtScanPlan.Focus();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (string.IsNullOrWhiteSpace(textBox1.Text.Trim()))
|
||
|
{
|
||
|
MessageBox.Show("配置码不能为空,请重新输入!", "提示", MessageBoxButtons.OK);
|
||
|
textBox1.SelectAll();
|
||
|
textBox1.Focus();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (!ProScreenFunc.CheckDeviceNo(textBox1.Text.Trim(),stationId))
|
||
|
{
|
||
|
MessageBox.Show("配置码有误,请重新输入!", "提示", MessageBoxButtons.OK);
|
||
|
textBox1.SelectAll();
|
||
|
textBox1.Focus();
|
||
|
return;
|
||
|
}
|
||
|
textBox2.Enabled = true;
|
||
|
textBox2.Focus();
|
||
|
}
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void FrmProScreen_WheelBrow_New_Load(object sender, EventArgs e)
|
||
|
{
|
||
|
txtScanPlan.Focus();
|
||
|
textBox2.Enabled = false;
|
||
|
panel1.Visible = false;
|
||
|
stationNo = ConfigurationManager.AppSettings["StationNo"].ToString();
|
||
|
stationId = ProScreenFunc.GetStationId(stationNo);
|
||
|
}
|
||
|
|
||
|
private void textBox2_KeyDown(object sender, KeyEventArgs e)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
if (e.KeyCode == Keys.Enter)
|
||
|
{
|
||
|
if (txtScanPlan.Text.Trim() == "")
|
||
|
{
|
||
|
MessageBox.Show("请扫描计划单!", "提示", MessageBoxButtons.OK);
|
||
|
txtScanPlan.Focus();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (string.IsNullOrWhiteSpace(textBox2.Text.Trim()))
|
||
|
{
|
||
|
MessageBox.Show("半成品条码不能为空,请重新输入!", "提示", MessageBoxButtons.OK);
|
||
|
textBox2.SelectAll();
|
||
|
textBox2.Focus();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (textBox2.Text.Trim().Length != 20)
|
||
|
{
|
||
|
MessageBox.Show("半成品条码位数有误,请重新扫描!");
|
||
|
textBox1.SelectAll();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (ProScreenFunc.IsPunch(textBox2.Text.Trim(), stationNo))
|
||
|
{
|
||
|
MessageBox.Show("半成品条码已经装配过,请重新扫描!");
|
||
|
textBox2.SelectAll();
|
||
|
textBox2.Focus();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
#region 根据半成品查询总成零件号
|
||
|
|
||
|
DataTable dt= ProScreenFunc.ZcPartNo(textBox2.Text.Substring(0,10));
|
||
|
if (dt != null && dt.Rows.Count > 0)
|
||
|
{
|
||
|
zcPartNo = dt.Rows[0]["PartNo"].ToString();
|
||
|
zcPartName = dt.Rows[0]["ProductName"].ToString();
|
||
|
}
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
#region 查询完成数==计划数,如果相等,就不允许扫描
|
||
|
|
||
|
string sum = ProScreenFunc.SumByPartNo(txtScanPlan.Text.Trim(), zcPartNo);
|
||
|
string planCount = ProScreenFunc.PlanCountByPartNo(txtScanPlan.Text.Trim(), zcPartNo);
|
||
|
|
||
|
if (int.Parse(planCount) <= int.Parse(sum))
|
||
|
{
|
||
|
MessageBox.Show("该零件已生产完成!");
|
||
|
textBox2.SelectAll();
|
||
|
return;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
#region 校验配置码和半成品码是否匹配
|
||
|
|
||
|
if (!ProScreenFunc.IsCheck(textBox1.Text.Trim(), textBox2.Text.Substring(0,10)))
|
||
|
{
|
||
|
MessageBox.Show("配置码和半成品条码不匹配,请重新扫描!");
|
||
|
textBox2.SelectAll();
|
||
|
return;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
#region 保存条码
|
||
|
|
||
|
string newbatch = DateTime.Now.ToString("yyyy-MM-dd").Substring(2, 2) +
|
||
|
DateTime.Now.ToString("yyyy-MM-dd").Substring(5, 2) +
|
||
|
DateTime.Now.ToString("yyyy-MM-dd").Substring(8, 2);
|
||
|
string oldPartNo = ProScreenFunc.LastNo(zcPartNo + "." + newbatch);
|
||
|
string newPartNo =oldPartNo==""?zcPartNo + "." + newbatch+".000001": oldPartNo
|
||
|
.Substring(0, oldPartNo.Length - 6) +
|
||
|
(Convert.ToInt32(oldPartNo
|
||
|
.Substring(oldPartNo.Length - 6, 6)) + 1)
|
||
|
.ToString()
|
||
|
.PadLeft(6, '0');
|
||
|
string validityDate = "从" + DateTime.Now.ToString("yyyy-MM-dd") + "到" +
|
||
|
DateTime.Now.AddMonths(3).ToString("yyyy-MM-dd");
|
||
|
|
||
|
Assembly1 md = new Assembly1();
|
||
|
|
||
|
md.ID = Guid.NewGuid().ToString();
|
||
|
|
||
|
md.PartNo = newPartNo;
|
||
|
md.PartName = zcPartName;
|
||
|
md.Color = "通用";
|
||
|
md.BatchNo = newbatch;
|
||
|
md.BarCode = textBox2.Text.Trim();
|
||
|
md.TapeBatchNo = md.BatchNo;
|
||
|
md.Validity = "3个月";
|
||
|
md.ValidityDate = validityDate;
|
||
|
md.Flag = 0;
|
||
|
md.PartType = "";
|
||
|
md.Des = "";
|
||
|
|
||
|
ProScreenFunc.AddAssembly(md);
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
#region 打印
|
||
|
|
||
|
string filename = AppDomain.CurrentDomain.BaseDirectory + "aa.grf";
|
||
|
|
||
|
DataTable headTable = new DataTable();
|
||
|
headTable.Columns.Add("PartNo");
|
||
|
headTable.Columns.Add("PartName");
|
||
|
headTable.Columns.Add("BatchNo");
|
||
|
headTable.Columns.Add("ValidityDate");
|
||
|
|
||
|
DataRow row = headTable.NewRow();
|
||
|
row["PartNo"] = newPartNo;
|
||
|
row["PartName"] = zcPartName;
|
||
|
row["BatchNo"] = newbatch;
|
||
|
row["ValidityDate"] = validityDate;
|
||
|
|
||
|
string reportName = "";
|
||
|
if (newPartNo.Substring(0, 11) == "A2548850000" ||
|
||
|
newPartNo.Substring(0, 11) == "A2548850600")
|
||
|
{
|
||
|
reportName = ConfigurationManager.AppSettings["PrinterName"];
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
reportName = ConfigurationManager.AppSettings["PrinterName1"];
|
||
|
}
|
||
|
headTable.Rows.Add(row);
|
||
|
|
||
|
ReportHelper rp = new ReportHelper(filename, headTable, null,
|
||
|
(int)GRPaperOrientation.grpoDefault, 1, reportName);
|
||
|
rp.Report.Print(false);
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
md.PrintTime=DateTime.Now;
|
||
|
ProScreenFunc.UpdateAssembly(md);
|
||
|
|
||
|
#region 保存总成信息
|
||
|
|
||
|
planID = ProScreenFunc.GetPlanIDByOrderNo(txtScanPlan.Text.Trim(), zcPartNo);
|
||
|
|
||
|
ProScreenFunc.SavePartAndProduct1(textBox2.Text.Trim(), ProScreenFunc.GetProductIDByPartNo(textBox2.Text.Trim().Substring(0, 10)), ProScreenFunc.GetProductIDByPartNo(zcPartNo), txtScanPlan.Text.Trim(), txtScanPlan.Text.Trim().Substring(0, 1) + "班", planID, newPartNo,stationId, ConfigurationManager.AppSettings["StationDescription"]);
|
||
|
ProScreenFunc.SaveZcCode(textBox2.Text.Trim(), zcPartNo);
|
||
|
|
||
|
ProScreenFunc.AddCompleteCount(planID);
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
InitData();
|
||
|
}
|
||
|
|
||
|
#endregion
|
||
|
}
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
|
||
|
textBox1.SelectAll();
|
||
|
textBox1.Focus();
|
||
|
textBox2.Text = "";
|
||
|
textBox2.Enabled = false;
|
||
|
}
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void button1_Click(object sender, EventArgs e)
|
||
|
{
|
||
|
panel1.Visible = true;
|
||
|
textBox3.Focus();
|
||
|
}
|
||
|
|
||
|
private void button3_Click(object sender, EventArgs e)
|
||
|
{
|
||
|
panel1.Visible = false;
|
||
|
textBox3.Text = "";
|
||
|
}
|
||
|
|
||
|
private void button2_Click(object sender, EventArgs e)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
if (string.IsNullOrWhiteSpace(textBox3.Text))
|
||
|
{
|
||
|
MessageBox.Show("半成品不能为空,请重新扫描!");
|
||
|
textBox3.Text = "";
|
||
|
textBox3.SelectAll();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (!ProScreenFunc.HaveScan(textBox3.Text.Trim()))
|
||
|
{
|
||
|
MessageBox.Show("半成品未进行装配,请重新扫描!");
|
||
|
textBox3.SelectAll();
|
||
|
textBox3.Focus();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
#region 补打
|
||
|
|
||
|
string partNo = "", partName = "", batchNo = "", validityDate = "";
|
||
|
|
||
|
DataTable dt = ProScreenFunc.AssemblyInfo(textBox3.Text.Trim());
|
||
|
if (dt != null && dt.Rows.Count > 0)
|
||
|
{
|
||
|
partNo = dt.Rows[0]["PartNo"].ToString();
|
||
|
partName = dt.Rows[0]["PartName"].ToString();
|
||
|
batchNo = dt.Rows[0]["BatchNo"].ToString();
|
||
|
validityDate = dt.Rows[0]["ValidityDate"].ToString();
|
||
|
}
|
||
|
|
||
|
Assembly1 md=new Assembly1();
|
||
|
md.ID = Guid.NewGuid().ToString();
|
||
|
|
||
|
md.PartNo = partNo;
|
||
|
md.PartName = partName;
|
||
|
md.Color = "通用";
|
||
|
md.BatchNo = batchNo;
|
||
|
md.BarCode = textBox3.Text.Trim();
|
||
|
md.TapeBatchNo = md.BatchNo;
|
||
|
md.Validity = "3个月";
|
||
|
md.ValidityDate = validityDate;
|
||
|
md.Flag = 1;
|
||
|
md.PartType = "";
|
||
|
md.Des = "";
|
||
|
|
||
|
ProScreenFunc.AddAssembly(md);
|
||
|
|
||
|
string filename = AppDomain.CurrentDomain.BaseDirectory + "aa.grf";
|
||
|
|
||
|
DataTable headTable = new DataTable();
|
||
|
headTable.Columns.Add("PartNo");
|
||
|
headTable.Columns.Add("PartName");
|
||
|
headTable.Columns.Add("BatchNo");
|
||
|
headTable.Columns.Add("ValidityDate");
|
||
|
|
||
|
DataRow row = headTable.NewRow();
|
||
|
row["PartNo"] = partNo;
|
||
|
row["PartName"] = partName;
|
||
|
row["BatchNo"] = batchNo;
|
||
|
row["ValidityDate"] = validityDate;
|
||
|
|
||
|
//string reportName = partName.Contains('左') ? ConfigurationManager.AppSettings["PrinterName"] : ConfigurationManager.AppSettings["PrinterName1"];
|
||
|
string reportName = "";
|
||
|
if (partNo.Substring(0, 11) == "A2548850000" ||
|
||
|
partNo.Substring(0, 11) == "A2548850600")
|
||
|
{
|
||
|
reportName = ConfigurationManager.AppSettings["PrinterName"];
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
reportName = ConfigurationManager.AppSettings["PrinterName1"];
|
||
|
}
|
||
|
|
||
|
headTable.Rows.Add(row);
|
||
|
|
||
|
ReportHelper rp = new ReportHelper(filename, headTable, null,
|
||
|
(int)GRPaperOrientation.grpoDefault, 1, reportName);
|
||
|
rp.Report.Print(false);
|
||
|
|
||
|
md.PrintTime = DateTime.Now;
|
||
|
ProScreenFunc.UpdateAssembly(md);
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
panel1.Visible = false;
|
||
|
textBox3.Text = "";
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
LogErrBLL.AddInfo(ex.ToString(),MethodBase.GetCurrentMethod());
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|