diff --git a/MESClassLibrary/BLL/Injection/UniqueBll.cs b/MESClassLibrary/BLL/Injection/UniqueBll.cs index cdd8c0b..e42822b 100644 --- a/MESClassLibrary/BLL/Injection/UniqueBll.cs +++ b/MESClassLibrary/BLL/Injection/UniqueBll.cs @@ -24,10 +24,14 @@ namespace MESClassLibrary.BLL.Injection /// /// /// - public string GetPunchSerialNo(string partNo, int size,ref string seriaLNo) + public string GetPunchSerialNoMI(string partNo, int size,ref string seriaLNo) { return da.GetPunchSerialNo(partNo, size,ref seriaLNo); } + public string GetPunchSerialNoHyundai(string partNo, int size, ref string seriaLNo) + { + return da.GetPunchSerialNo2(partNo, size, ref seriaLNo); + } /// /// 直供件 条码 /// diff --git a/MESClassLibrary/DAL/Injection/UniqueDal.cs b/MESClassLibrary/DAL/Injection/UniqueDal.cs index 3045ff8..15eb287 100644 --- a/MESClassLibrary/DAL/Injection/UniqueDal.cs +++ b/MESClassLibrary/DAL/Injection/UniqueDal.cs @@ -93,7 +93,23 @@ namespace MESClassLibrary.DAL.Injection return GetPunchSerialNo(partNo, size,ref seriaLNo); } } + public string GetPunchSerialNo2(string partNo, int size, ref string seriaLNo) + { + DateTime time = DateTime.Now; + string batch = time.Month.ToString().PadLeft(2, '0') + time.Day.ToString().PadLeft(2, '0'); + seriaLNo = GetBillNo(partNo + batch + "小件装配总成码", size); + string sjBarCode = "A010X00062A" + batch + seriaLNo + "K" + partNo; + try + { + SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, $" insert into tb_BarCodeUnique(OneBarCode) values('{sjBarCode}')"); + return sjBarCode; + } + catch (Exception ex) + { + return GetPunchSerialNo2(partNo, size, ref seriaLNo); + } + } } diff --git a/PunchingMistake/FrmAssemble.Designer.cs b/PunchingMistake/FrmAssemble.Designer.cs index 5589754..1edb263 100644 --- a/PunchingMistake/FrmAssemble.Designer.cs +++ b/PunchingMistake/FrmAssemble.Designer.cs @@ -225,17 +225,17 @@ namespace PunchingMistake // // lbPlanQty // - this.lbPlanQty.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); + this.lbPlanQty.Anchor = System.Windows.Forms.AnchorStyles.Left; this.lbPlanQty.AutoSize = true; this.lbPlanQty.BackColor = System.Drawing.Color.Transparent; this.lbPlanQty.Font = new System.Drawing.Font("宋体", 128.1429F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lbPlanQty.ForeColor = System.Drawing.Color.LightSeaGreen; - this.lbPlanQty.Location = new System.Drawing.Point(150, 195); + this.lbPlanQty.Location = new System.Drawing.Point(136, 170); this.lbPlanQty.Name = "lbPlanQty"; this.lbPlanQty.Size = new System.Drawing.Size(275, 300); this.lbPlanQty.TabIndex = 3; this.lbPlanQty.Text = "0"; + this.lbPlanQty.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // label12 // @@ -267,7 +267,7 @@ namespace PunchingMistake this.lbCompleteQty.BackColor = System.Drawing.Color.Transparent; this.lbCompleteQty.Font = new System.Drawing.Font("宋体", 128.1429F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lbCompleteQty.ForeColor = System.Drawing.Color.LimeGreen; - this.lbCompleteQty.Location = new System.Drawing.Point(150, 179); + this.lbCompleteQty.Location = new System.Drawing.Point(145, 206); this.lbCompleteQty.Name = "lbCompleteQty"; this.lbCompleteQty.Size = new System.Drawing.Size(275, 300); this.lbCompleteQty.TabIndex = 4; diff --git a/PunchingMistake/FrmAssemble.cs b/PunchingMistake/FrmAssemble.cs index f5f5498..b0b9ca0 100644 --- a/PunchingMistake/FrmAssemble.cs +++ b/PunchingMistake/FrmAssemble.cs @@ -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; /// /// 当前设备行数据ID /// @@ -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 list = bomTable.AsEnumerable().Where(p => p.Field("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 list2 ,string barCode) + void SendScrewRivet(DataTable bomTable, List 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(); } /// diff --git a/PunchingMistake/FrmLogin.cs b/PunchingMistake/FrmLogin.cs index 1619a46..1fb25c5 100644 --- a/PunchingMistake/FrmLogin.cs +++ b/PunchingMistake/FrmLogin.cs @@ -73,7 +73,9 @@ namespace PunchingMistake DataTable sdt = sbll.SearchInfoByNo(Program.station); if (sdt != null && sdt.Rows.Count > 0) { - stationID = sdt.Rows[0]["StationID"].ToString(); + stationID = sdt.Rows[0]["StationID"].ToString(); + Program.stationName = sdt.Rows[0]["Des"].ToString(); + Program.LineName = sdt.Rows[0]["LineName"].ToString(); } sdt.Dispose(); diff --git a/PunchingMistake/FrmPlanSeach.cs b/PunchingMistake/FrmPlanSeach.cs index e4f4afc..c76c8c6 100644 --- a/PunchingMistake/FrmPlanSeach.cs +++ b/PunchingMistake/FrmPlanSeach.cs @@ -47,7 +47,7 @@ namespace PunchingMistake MessageBox.Show($"总成零件号[{row["ZcPartNo"].ToString()}]在零件表中不存在."); return; } - Printer.PrintPunchAssembleBarCode(row["ZcBarCode"].ToString(), row["ZcPartNo"].ToString(), partName, row["SerialNo"].ToString()); + Printer.PrintPunchAssembleBarCode(row["ZcBarCode"].ToString(), row["ZcPartNo"].ToString(), partName, row["SerialNo"].ToString(), row["CarModelCode"].ToString()); } } diff --git a/PunchingMistake/Function2.cs b/PunchingMistake/Function2.cs index 9f503af..3108cc0 100644 --- a/PunchingMistake/Function2.cs +++ b/PunchingMistake/Function2.cs @@ -426,7 +426,7 @@ namespace PunchingMistake } } - public static int SavePartAndProduct_New(string barcode, string partNo1, string partNo2, string ZcID, string OrderNo, string WorkClass, string planID, string SerialNo, string barCode1, string barCode2, string barCode3, string barCode4, string barCode5, string barCode6, string stationId, string description) + public static int SavePartAndProduct_New(string barcode, string partNo1, string partNo2, string ZcID, string OrderNo, string WorkClass, string planID, string SerialNo, string barCode1, string barCode2, string barCode3, string barCode4, string barCode5, string barCode6, string stationId, string description,string carMoedelCode) { int res = 0; try @@ -441,7 +441,7 @@ namespace PunchingMistake ,[WorkClass] ,[CreateTime], PlanID,SerialNo ,barCode1,barCode2,barCode3 - ,barCode4,barCode5,barCode6,StationNo,StationDescription) + ,barCode4,barCode5,barCode6,StationNo,StationDescription,CarModelCode) VALUES ('" + barcode + @"' ,'" + partNo2 + @"' @@ -451,7 +451,7 @@ namespace PunchingMistake ,'" + WorkClass + @"' ,(select getdate()), '" + planID + @"','" + SerialNo + @"' ,'" + barCode1 + @"','" + barCode2 + @"','" + barCode3 + @"' - ,'" + barCode4 + @"','" + barCode5 + @"','" + barCode6 + @"','" + stationId + @"','" + description + "@')"; + ,'" + barCode4 + @"','" + barCode5 + @"','" + barCode6 + @"','" + stationId + @"','" + description + @"','" + carMoedelCode + "@')"; res = SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnString, CommandType.Text, sql, null); return res; } @@ -714,26 +714,6 @@ namespace PunchingMistake res = dd.ToString(); } } - - //string sql3 = ""; - //if (partNo != "") - //{ - // sql3 = @"select ProductID - // from tb_Product - // where partNo = '" + partNo + @"'"; - //} - //else - //{ - // sql3 = @"select ProductID - // from tb_Product - // where StockNo = '" + stockNo + @"'"; - //} - - //object dd = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql3, null); - //if (dd != null) - //{ - // res = dd.ToString(); - //} } } //LogHelper.WriteSysLogBase("[一码到底]传出ProductID2:" + res, MethodBase.GetCurrentMethod().Name); @@ -910,13 +890,13 @@ namespace PunchingMistake return res; } - public static string SaveLineInfo(string sjBarCode, string planID,string stationNo,string partNo1,string partNo2, int LeftRivet1All, int RightRivet1All, int LeftScrew1All, int RightScrew1All, int IrIsAll ) + public static string SaveLineInfo(string sjBarCode, string planID,string stationNo,string partNo1,string partNo2, int LeftRivet1All, int RightRivet1All, int LeftScrew1All, int RightScrew1All, int IrIsAll ,string carModelCode) { string res = string.Empty; try { - string sql = $"insert into tb_Punch_Line (SjBarCode,PlanID,StationNo,PartNo1,PartNo2,barCode1,barCode2,barCode3,barCode4,barCode5,barCode6, LeftRivet1All,RightRivet1All,LeftScrew1All,RightScrew1All,IrIsAll ) " + - $"values('{sjBarCode}','{planID}','{stationNo}','{partNo1}','{partNo2}','{ScanAll.barCode1}','{ScanAll.barCode2}','{ScanAll.barCode3}','{ScanAll.barCode4}','{ScanAll.barCode5}','{ScanAll.barCode6}','{LeftRivet1All}','{RightRivet1All}','{LeftScrew1All}','{RightScrew1All}','{IrIsAll}' );select @@Identity"; + string sql = $"insert into tb_Punch_Line (SjBarCode,PlanID,StationNo,PartNo1,PartNo2,barCode1,barCode2,barCode3,barCode4,barCode5,barCode6, LeftRivet1All,RightRivet1All,LeftScrew1All,RightScrew1All,IrIsAll,CarModelCode ) " + + $"values('{sjBarCode}','{planID}','{stationNo}','{partNo1}','{partNo2}','{ScanAll.barCode1}','{ScanAll.barCode2}','{ScanAll.barCode3}','{ScanAll.barCode4}','{ScanAll.barCode5}','{ScanAll.barCode6}','{LeftRivet1All}','{RightRivet1All}','{LeftScrew1All}','{RightScrew1All}','{IrIsAll}','{carModelCode}' );select @@Identity"; object dd = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null); if (dd != null) { diff --git a/PunchingMistake/Printer.cs b/PunchingMistake/Printer.cs index e65c33f..5777c98 100644 --- a/PunchingMistake/Printer.cs +++ b/PunchingMistake/Printer.cs @@ -15,7 +15,7 @@ namespace PunchingMistake /// /// 小件总成装配打印总成条码 /// - public static void PrintPunchAssembleBarCode( string barCode, string partNo1, string partName, string serialNo) + public static void PrintPunchAssembleBarCode( string barCode, string partNo1, string partName, string serialNo,string carType) { string filename = GetPrintFileName(); DataTable headTable = new DataTable(); @@ -25,6 +25,8 @@ namespace PunchingMistake headTable.Columns.Add("BatchNo"); headTable.Columns.Add("SerialNo"); headTable.Columns.Add("Line"); + headTable.Columns.Add("Operater"); + headTable.Columns.Add("CarType"); DataRow row = headTable.NewRow(); row["BarCode"] = barCode; @@ -33,6 +35,9 @@ namespace PunchingMistake row["BatchNo"] = DateTime.Now.ToString("yyMMdd"); row["SerialNo"] = serialNo; row["Line"] = ConfigurationManager.AppSettings["Line"]; + row["Operater"] = Program.UserName; + row["CarType"] = carType; + string printBoxName = "Printer1"; string reportName = ConfigurationManager.AppSettings[printBoxName].ToString(); @@ -44,12 +49,9 @@ namespace PunchingMistake } static string GetPrintFileName() { - if (Program.station == "F01") - { - return System.AppDomain.CurrentDomain.BaseDirectory + "Report\\总成条码MI.grf"; - } - - return System.AppDomain.CurrentDomain.BaseDirectory + "Report\\总成条码MI.grf"; + string templateName = ConfigurationManager.AppSettings["PrintTemplate"].ToString(); + + return System.AppDomain.CurrentDomain.BaseDirectory + $"Report\\{templateName}.grf"; } } } diff --git a/PunchingMistake/Program.cs b/PunchingMistake/Program.cs index 4f6ad3c..e0c48c6 100644 --- a/PunchingMistake/Program.cs +++ b/PunchingMistake/Program.cs @@ -12,6 +12,8 @@ namespace PunchingMistake { public static string station; public static string UserName; + public static string stationName; + public static string LineName; public static SqlConnection DBConn; public static string WmsConn; diff --git a/PunchingMistake/PunchingMistake.csproj b/PunchingMistake/PunchingMistake.csproj index 60a16bb..550065c 100644 --- a/PunchingMistake/PunchingMistake.csproj +++ b/PunchingMistake/PunchingMistake.csproj @@ -173,6 +173,7 @@ Settings.settings True + PreserveNewest diff --git a/PunchingMistake/Report/总成条码Hyundai.grf b/PunchingMistake/Report/总成条码Hyundai.grf new file mode 100644 index 0000000..6ff3006 Binary files /dev/null and b/PunchingMistake/Report/总成条码Hyundai.grf differ