|
|
@ -25,12 +25,13 @@ namespace PunchingMistake |
|
|
|
{ |
|
|
|
private PlcInvoke _plcInvoke = null; |
|
|
|
private GridppReport Report = new GridppReport(); |
|
|
|
private string oneBarCode = "", _stationNo = "", stationId = ""; |
|
|
|
private string oneBarCode = "", stationId = "" ; |
|
|
|
private UniqueBll _uniqueBll = new UniqueBll(); |
|
|
|
private string _sjBarCode = string.Empty; |
|
|
|
private string _partNo1 = string.Empty; |
|
|
|
private string _partNo2 = string.Empty; |
|
|
|
|
|
|
|
private string _carModelCode = string.Empty; |
|
|
|
private string _barCodeFormate = string.Empty; |
|
|
|
/// <summary>
|
|
|
|
/// 当前设备行数据ID
|
|
|
|
/// </summary>
|
|
|
@ -48,17 +49,23 @@ namespace PunchingMistake |
|
|
|
rate = 200; |
|
|
|
} |
|
|
|
this.Size = new Size(1280, 1024); |
|
|
|
_plcInvoke = new PlcInvoke("BBMPT.Assemble", _stationNo); |
|
|
|
_plcInvoke = new PlcInvoke("BBMPT.Assemble", Program.station); |
|
|
|
_plcInvoke.ShowLinkInfo = ShowLinkResult; |
|
|
|
_plcInvoke.ShowMessage = ShowMassege; |
|
|
|
_plcInvoke.InitDev(rate); |
|
|
|
} |
|
|
|
|
|
|
|
private void FrmAssemble_Load(object sender, EventArgs e) |
|
|
|
{ |
|
|
|
_stationNo = ConfigurationManager.AppSettings["Station"]; |
|
|
|
{ |
|
|
|
|
|
|
|
_barCodeFormate = ConfigurationManager.AppSettings["BarCodeFormate"]; |
|
|
|
if (string.IsNullOrEmpty(_barCodeFormate)) |
|
|
|
{ |
|
|
|
MessageBox.Show("配置文件中,条码格式[BarCodeFormate]不能为空."); |
|
|
|
return; |
|
|
|
} |
|
|
|
//stationId = ProScreenFunc.GetStationId(stationNo);
|
|
|
|
lbStation.Text = Function2.GetStation(_stationNo); |
|
|
|
lbStation.Text = Program.stationName;// Function2.GetStation(_stationNo);
|
|
|
|
Control.CheckForIllegalCrossThreadCalls = false; |
|
|
|
Thread t = new Thread(new ThreadStart(TimeGo)); |
|
|
|
t.Start(); |
|
|
@ -67,7 +74,7 @@ namespace PunchingMistake |
|
|
|
} |
|
|
|
public void LoadScreen() |
|
|
|
{ |
|
|
|
DataTable dt = Function2.GetProScreen(_stationNo); |
|
|
|
DataTable dt = Function2.GetProScreen(Program.station); |
|
|
|
if (dt != null && dt.Rows.Count > 0) |
|
|
|
{ |
|
|
|
SetPage(dt); |
|
|
@ -76,13 +83,14 @@ namespace PunchingMistake |
|
|
|
{ |
|
|
|
if (this.Tag != null) |
|
|
|
{ |
|
|
|
DataTable lineTable = Function2.GetPunchLineInfo(this.Tag.ToString(), _stationNo); |
|
|
|
DataTable lineTable = Function2.GetPunchLineInfo(this.Tag.ToString(), Program.station); |
|
|
|
if (lineTable.Rows.Count > 0) |
|
|
|
{ |
|
|
|
_lineDataID = lineTable.Rows[0]["ID"].ToString(); |
|
|
|
_sjBarCode = lineTable.Rows[0]["SjBarCode"].ToString(); |
|
|
|
_partNo1 = lineTable.Rows[0]["PartNo1"].ToString(); |
|
|
|
_partNo2 = lineTable.Rows[0]["PartNo2"].ToString(); |
|
|
|
_carModelCode = lineTable.Rows[0]["CarModelCode"].ToString(); |
|
|
|
ScanAll.barCode1 = lineTable.Rows[0]["barCode1"].ToString(); |
|
|
|
ScanAll.barCode2 = lineTable.Rows[0]["barCode2"].ToString(); |
|
|
|
ScanAll.barCode3 = lineTable.Rows[0]["barCode3"].ToString(); |
|
|
@ -159,7 +167,7 @@ namespace PunchingMistake |
|
|
|
} |
|
|
|
public void LoadPlanScreen(string id, string plan) |
|
|
|
{ |
|
|
|
DataTable dt = Function2.GetProScreenPlan(id, _stationNo, plan); |
|
|
|
DataTable dt = Function2.GetProScreenPlan(id, Program.station, plan); |
|
|
|
if (dt != null && dt.Rows.Count > 0) |
|
|
|
{ |
|
|
|
SetPage(dt); |
|
|
@ -191,7 +199,11 @@ namespace PunchingMistake |
|
|
|
{ |
|
|
|
return; |
|
|
|
} |
|
|
|
WriteHint("", true); |
|
|
|
WriteHint("", true); |
|
|
|
|
|
|
|
txtBarCode.Focus(); |
|
|
|
txtBarCode.SelectAll(); |
|
|
|
|
|
|
|
string barcode = txtBarCode.Text?.Trim(); |
|
|
|
if (string.IsNullOrEmpty(barcode)) |
|
|
|
{ |
|
|
@ -222,7 +234,7 @@ namespace PunchingMistake |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
SaveScanRecord(_sjBarCode, _partNo1, _partNo2); |
|
|
|
SaveScanRecord(_sjBarCode, _partNo1, _partNo2, _carModelCode); |
|
|
|
Function2. DeleteLineData(_lineDataID); |
|
|
|
ClearScanData(true); |
|
|
|
SentToPlc(true, _lineDataID); |
|
|
@ -297,14 +309,16 @@ namespace PunchingMistake |
|
|
|
|
|
|
|
_partNo2 = PartScanVerify(); |
|
|
|
|
|
|
|
_partNo1 = Function2.GetAssemblePartCode(_partNo2, _stationNo); |
|
|
|
|
|
|
|
_partNo1 = Function2.GetAssemblePartCode(_partNo2, Program.station); |
|
|
|
_carModelCode = Function2.GetCarType(_partNo1); |
|
|
|
|
|
|
|
if (lbPart.Text?.ToLower() != _partNo1?.ToLower()) |
|
|
|
{ |
|
|
|
throw new Exception($"扫描半成品码在BOM中对应的总成零件号[{_partNo1}]与当前计划的零件号[{lbPart.Text}]不匹配."); |
|
|
|
|
|
|
|
} |
|
|
|
DataTable bomTable = Function2.GetBomTable(_partNo1, _stationNo); |
|
|
|
DataTable bomTable = Function2.GetBomTable(_partNo1, Program.station); |
|
|
|
|
|
|
|
//需要校验的关键件
|
|
|
|
List<DataRow> list = bomTable.AsEnumerable().Where(p => p.Field<bool>("IsChecked") == true).ToList(); |
|
|
@ -325,11 +339,11 @@ namespace PunchingMistake |
|
|
|
if (list2.Count > 0) |
|
|
|
{ |
|
|
|
//接收到螺钉信号后再保存
|
|
|
|
SendScrewRivet(bomTable, list2, _sjBarCode); |
|
|
|
SendScrewRivet(bomTable, list2, _sjBarCode, _carModelCode); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
_lineDataID = Function2.SaveLineInfo(_sjBarCode, this.Tag?.ToString(), _stationNo, _partNo1, _partNo2, 0, 0, 0, 0, 0); |
|
|
|
_lineDataID = Function2.SaveLineInfo(_sjBarCode, this.Tag?.ToString(), Program.station, _partNo1, _partNo2, 0, 0, 0, 0, 0, _carModelCode); |
|
|
|
|
|
|
|
WriteHint("验证成功,请扫完成码保存", true); |
|
|
|
//SaveScanRecord(barCode, partNo1, partNo2);
|
|
|
@ -342,11 +356,11 @@ namespace PunchingMistake |
|
|
|
if (list2.Count > 0) |
|
|
|
{ |
|
|
|
//接收到螺钉信号后再保存
|
|
|
|
SendScrewRivet(bomTable, list2, _sjBarCode); |
|
|
|
SendScrewRivet(bomTable, list2, _sjBarCode, _carModelCode); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
_lineDataID = Function2.SaveLineInfo(_sjBarCode, this.Tag?.ToString(), _stationNo, _partNo1, _partNo2, 0, 0, 0, 0, 0); |
|
|
|
_lineDataID = Function2.SaveLineInfo(_sjBarCode, this.Tag?.ToString(), Program.station, _partNo1, _partNo2, 0, 0, 0, 0, 0, _carModelCode); |
|
|
|
WriteHint("验证成功,请扫完成码保存", true); |
|
|
|
//SaveScanRecord(barCode, partNo1, partNo2);
|
|
|
|
} |
|
|
@ -420,7 +434,7 @@ namespace PunchingMistake |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
void SendScrewRivet(DataTable bomTable, List<DataRow> list2 ,string barCode) |
|
|
|
void SendScrewRivet(DataTable bomTable, List<DataRow> list2 ,string barCode,string carModelCode) |
|
|
|
{ |
|
|
|
if (list2.Count > 0) |
|
|
|
{ |
|
|
@ -457,7 +471,7 @@ namespace PunchingMistake |
|
|
|
lbIrlsAll.Text = leftQty3.ToString(); |
|
|
|
} |
|
|
|
} |
|
|
|
_lineDataID = Function2.SaveLineInfo(sjBarCode, this.Tag?.ToString(),_stationNo,_partNo1,_partNo2, leftQty2, rightQty2, leftQty1, rightQty1, leftQty3); |
|
|
|
_lineDataID = Function2.SaveLineInfo(sjBarCode, this.Tag?.ToString(), Program.station, _partNo1,_partNo2, leftQty2, rightQty2, leftQty1, rightQty1, leftQty3, carModelCode); |
|
|
|
SentToPlc(false,_lineDataID); |
|
|
|
} |
|
|
|
} |
|
|
@ -466,22 +480,32 @@ namespace PunchingMistake |
|
|
|
_plcInvoke.SendToPLC(isInit, lineID); |
|
|
|
} |
|
|
|
|
|
|
|
private void SaveScanRecord(string barcode,string partNo1,string partNo2) |
|
|
|
private void SaveScanRecord(string barcode,string partNo1,string partNo2,string carModelCode) |
|
|
|
{ |
|
|
|
//保存装配记录
|
|
|
|
//更新计划完成数量
|
|
|
|
//
|
|
|
|
string serailNo = "0001"; |
|
|
|
string assembleBarCode = _uniqueBll.GetPunchSerialNo(partNo1, 4,ref serailNo); |
|
|
|
string serailNo = "00001"; |
|
|
|
string assembleBarCode = ""; |
|
|
|
if(_barCodeFormate == "MI") |
|
|
|
{ |
|
|
|
assembleBarCode = _uniqueBll.GetPunchSerialNoMI(partNo1, 5, ref serailNo); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
assembleBarCode = _uniqueBll.GetPunchSerialNoHyundai(partNo1, 5, ref serailNo); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int res = Function2.SavePartAndProduct_New(barcode, partNo1, partNo2, assembleBarCode, |
|
|
|
lbPlan.Text.Trim(), lbClass.Text, this.Tag?.ToString(), serailNo, |
|
|
|
ScanAll.barCode1, ScanAll.barCode2, ScanAll.barCode3, |
|
|
|
ScanAll.barCode4, ScanAll.barCode5, ScanAll.barCode6, _stationNo, ConfigurationManager.AppSettings["StationDescription"]); |
|
|
|
ScanAll.barCode4, ScanAll.barCode5, ScanAll.barCode6, Program.station, ConfigurationManager.AppSettings["StationDescription"], carModelCode); |
|
|
|
|
|
|
|
Function2.SaveZcCode(barcode, partNo1); |
|
|
|
Function2.AddCompleteCount(this.Tag?.ToString(),"合格"); |
|
|
|
|
|
|
|
PrintAssembleBarCode(assembleBarCode, partNo1, lbPartDesc.Text, serailNo); |
|
|
|
PrintAssembleBarCode(assembleBarCode, partNo1, lbPartDesc.Text, serailNo, carModelCode); |
|
|
|
|
|
|
|
if (Function2.CheckPlanCompleted(this.Tag.ToString().Trim())) |
|
|
|
{ |
|
|
@ -493,9 +517,9 @@ namespace PunchingMistake |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
private void PrintAssembleBarCode(string BarCode, string PartNo, string PartName, string SerialNo ) |
|
|
|
private void PrintAssembleBarCode(string BarCode, string PartNo, string PartName, string SerialNo,string carModelCode ) |
|
|
|
{ |
|
|
|
Printer.PrintPunchAssembleBarCode(BarCode, PartNo, PartName, SerialNo); |
|
|
|
Printer.PrintPunchAssembleBarCode(BarCode, PartNo, PartName, SerialNo, carModelCode); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
@ -651,8 +675,8 @@ namespace PunchingMistake |
|
|
|
{ |
|
|
|
lbClass.Text = Function3.GetWorkClass(); |
|
|
|
|
|
|
|
txtBarCode.Focus(); |
|
|
|
txtBarCode.SelectAll(); |
|
|
|
//txtBarCode.Focus();
|
|
|
|
//txtBarCode.SelectAll();
|
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|