using DBUtility; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PunchingMistake { public class Function2 { public static DataTable GetProScreen(string stationNo) { DataTable res = new DataTable(); try { string sql = @" select top 1 a.ID, d.[Des], a.OrderNo, a.PartNo,b.ProductName,a.OrderCount,a.OKCount,a.BadCount,a.RepairCount, c.PartNo1, c.PartNo2, b.IsHigh,d.StationNo from tb_ZP_MK_Plan a left join tb_Product b on a.PartNo = b.PartNo left join tb_Bom_MK c on b.PartNo = c.PartNo1 left join tb_Station d on c.StationNo = d.StationNo where d.StationNo = '" + stationNo + @"' and a.State = 1 order by CreateTime desc "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); if (res == null || res.Rows.Count < 1) { sql = @" select top 1 a.ID, d.[Des], a.OrderNo, a.PartNo,b.ProductName,a.OrderCount,a.OKCount,a.BadCount,a.RepairCount, c.PartNo1, c.PartNo2, b.IsHigh,d.StationNo from tb_ZP_MK_Plan a left join tb_Product b on a.PartNo = b.PartNo left join tb_Bom_MK c on b.PartNo = c.PartNo1 left join tb_Station d on c.StationNo = d.StationNo where d.StationNo = '" + stationNo + @"' and a.State = 0 order by CreateTime desc "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); } if (res == null || res.Rows.Count < 1) { sql = @" select top 1 a.ID, d.[Des], a.OrderNo, a.PartNo,b.ProductName,a.OrderCount,a.OKCount,a.BadCount,a.RepairCount, c.PartNo1, c.PartNo2, b.IsHigh,d.StationNo from tb_ZP_MK_Plan a left join tb_Product b on a.PartNo = b.PartNo left join tb_Bom_MK c on b.PartNo = c.PartNo1 left join tb_Station d on c.StationNo = d.StationNo where d.StationNo = '" + stationNo + @"' and a.State = 2 order by CreateTime desc "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); } return res; } catch (Exception ex) { LogHelper.WriteLog(ex.ToString() ); return res; } } public static DataTable GetProScreenPlan(string id, string stationNo, string plan) { DataTable res = new DataTable(); try { if (plan == "下一计划") { #region 查询当前计划时间 string time = ""; string sql; string sqll = @" select CreateTime from tb_ZP_MK_Plan where ID = '" + id + @"' "; DataTable dt = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sqll, null); if (dt != null && dt.Rows.Count > 0) { time = dt.Rows[0][0].ToString(); time = Tools.NumericParse.StringToDateTime(time).Value.AddSeconds(1).ToString("yyyy-MM-dd HH:mm:ss"); } #endregion #region 查询下一计划 DateTime dtime = DateTime.Now; DateTime.TryParse(time, out dtime); sql = @" select top 1 a.ID, d.[Des], a.OrderNo, a.PartNo,b.ProductName,a.OrderCount,a.OKCount,a.BadCount,a.RepairCount, c.PartNo1, c.PartNo2, b.IsHigh,d.StationNo from tb_ZP_MK_Plan a left join tb_Product b on a.PartNo = b.PartNo left join tb_Bom_MK c on b.PartNo = c.PartNo1 left join tb_Station d on c.StationNo = d.StationNo where d.StationNo = '" + stationNo + @"' and State <> 3 and a.CreateTime > '" + dtime.ToString("yyyy-MM-dd HH:mm:ss") + @"' order by CreateTime asc "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); #endregion } else if (plan == "上一计划") { #region 查询当前计划时间 string time = ""; string sql; string sqll = @" select CreateTime from tb_ZP_MK_Plan where ID = '" + id + @"' "; DataTable dt = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sqll, null); if (dt != null && dt.Rows.Count > 0) { time = dt.Rows[0][0].ToString(); //time = Tools.NumericParse.StringToDateTime(time).Value.AddSeconds(-1).ToString("yyyy-MM-dd HH:mm:ss"); } #endregion #region 查询上一计划 DateTime dtime = DateTime.Now; DateTime.TryParse(time, out dtime); sql = @" select top 1 a.ID, d.[Des], a.OrderNo, a.PartNo,b.ProductName,a.OrderCount,a.OKCount,a.BadCount,a.RepairCount, c.PartNo1, c.PartNo2, b.IsHigh,d.StationNo from tb_ZP_MK_Plan a left join tb_Product b on a.PartNo = b.PartNo left join tb_Bom_MK c on b.PartNo = c.PartNo1 left join tb_Station d on c.StationNo = d.StationNo where d.StationNo = '" + stationNo + @"' and State <> 3 and a.CreateTime < '" + dtime.ToString("yyyy-MM-dd HH:mm:ss") + @"' order by CreateTime asc "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); #endregion } else if (plan == "当前计划") { string sql = @" select a.ID, d.[Des], a.OrderNo, a.PartNo,b.ProductName,a.OrderCount,a.OKCount,a.BadCount,a.RepairCount, c.PartNo1, c.PartNo2, b.IsHigh,d.StationNo from tb_ZP_MK_Plan a left join tb_Product b on a.PartNo = b.PartNo left join tb_Bom_MK c on b.PartNo = c.PartNo1 left join tb_Station d on c.StationNo = d.StationNo where a.ID='" + id + @"' "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); } return res; } catch (Exception ex) { LogHelper.WriteLog(ex.ToString()); return res; } } /// /// 塑件码是否通过了Wms报工 /// /// /// public static DataTable SearchStockIn(string sjBarCode) { DataTable res = new DataTable(); try { string sql = $" select * from tb_StockIn where barcode='{sjBarCode}' and Pass=1"; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); return res; } catch(Exception ex) { LogHelper.WriteLog("小件装配,查询StockIn发生异常,异常原因:" + ex.ToString()); return res; } } public static DataTable SearchPunchCodeRecord(string sjBarCode) { DataTable res = new DataTable(); try { string sql = $" select Top 1 * from tb_Punch_Code_Record where barcode='{sjBarCode}' order by id desc "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); return res; } catch (Exception ex) { LogHelper.WriteLog("小件装配,查询Punch_Code_Record发生异常,异常原因:" + ex.ToString()); return res; } } public static DataTable GetProductInfo(string stockNo) { DataTable res = new DataTable(); try { string sql = $" select Top 1 * from tb_Product where StockNo='{stockNo}' order by id desc "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); return res; } catch (Exception ex) { LogHelper.WriteLog("小件装配,tb_Product,异常原因:" + ex.ToString()); return res; } } /// /// 半成品条码,找总成条码 /// /// /// /// public static string GetAssemblePartCode(string partCode,string stationNo) { DataTable res = new DataTable(); try { string sql = $" select Top 1 * from tb_Bom_MK where PartNo2='{partCode}' and IsPartAssemble=1 and StationNo='{stationNo}' order by id desc "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); if(res .Rows.Count > 1) { throw new Exception($"半成品条码[{partCode}]在工位[{stationNo}]上配置存在多个,请检查BOM配置."); } else if (res.Rows.Count == 0) { throw new Exception($"半成品条码[{partCode}]在工位[{stationNo}]上未进行配置,请检查BOM配置."); } else { return res.Rows[0]["PartNo1"].ToString(); } } catch (Exception ex) { LogHelper.WriteLog("小件装配,在表tb_Bom_MK中根据半成品条码查询总成零件号错误,异常原因:" + ex.ToString()); throw ex; } } public static DataTable GetBomTable(string assemblePartCode,string stationNo) { DataTable res = new DataTable(); try { string sql = $" select Top 1 * from tb_Bom_MK where PartNo1='{assemblePartCode}' and StationNo='{stationNo}' order by id desc "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); return res; } catch (Exception ex) { LogHelper.WriteLog($"小件装配,总成零件号[{assemblePartCode}],工位[{stationNo}]在表tb_Bom_MK中查询发生异常,异常原因:" + ex.ToString()); throw ex; } } public static string GetStation(string stationNo) { string res = ""; try { string sql = @" select [des] from tb_Station where StationNo = '" + stationNo + @"' "; object aa = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null); if (aa != null) { res = aa.ToString(); } return res; } catch (Exception ex) { //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); return res; } } public static int SavePartAndProduct_New(string barcode, string BcpID, 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) { int res = 0; try { string sql = @" INSERT INTO [dbo].[tb_Punch_Code_Record] ([ID] ,[barcode] ,[BcpID] ,[ZcID] ,[OrderNo] ,[WorkClass] ,[CreateTime], PlanID,SerialNo ,barCode1,barCode2,barCode3 ,barCode4,barCode5,barCode6,StationId,StationDescription) VALUES ((select newid()) ,'" + barcode + @"' ,'" + BcpID + @"' ,'" + ZcID + @"' ,'" + OrderNo + @"' ,'" + WorkClass + @"' ,(select getdate()), '" + planID + @"','" + SerialNo + @"' ,'" + barCode1 + @"','" + barCode2 + @"','" + barCode3 + @"' ,'" + barCode4 + @"','" + barCode5 + @"','" + barCode6 + @"','" + stationId + @"','" + description + "@')"; res = SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnString, CommandType.Text, sql, null); return res; } catch (Exception ex) { //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); return res; } } public static string SerialNo(string partNo, string batch) { string res = ""; try { string temp_no = partNo + "." + batch; string sql = @"select top 1 SerialNo from tb_Punch_Code_Record where SerialNo like '" + temp_no + @"%' order by CreateTime desc"; object dt = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null); if (dt != null) { res = dt.ToString(); } } catch (Exception ex) { //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); throw ex; } return res; } public static int SaveZcCode(string barcode, string partNo) { int res = 0; try { string sql = @" update tb_StockIn set ZcCode = '" + partNo + "' where barcode = '" + barcode + "' "; res = SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnString, CommandType.Text, sql, null); return res; } catch (Exception ex) { //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); return res; } } public static int AddCompleteCount(string ID) { int res = 0; try { string sql = " update tb_Plan_Punch set CompleteCount = CompleteCount + 1 where ID = '" + ID + "' "; res = SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnString, CommandType.Text, sql, null); return res; } catch (Exception ex) { //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); return res; } } public static bool CheckPlanCompleted(string ID) { bool res = false; try { string sql = @" select IsFinish from tb_Plan_Punch where ID = '" + ID + @"' "; object aa = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null); if (aa != null) { string bb = aa.ToString(); if (bb == "3") { res = true; } else { res = false; } } return res; } catch (Exception ex) { //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); return res; } } public static string GetProductID(string barcode) { string res = ""; try { //LogHelper.WriteSysLogBase("[一码到底]扫入条码:" + barcode, MethodBase.GetCurrentMethod().Name); if (barcode.Length != 20) { barcode = UniteBarCodeToOne(barcode); } string sql = @" select ProductID from tb_Product where partNo = ( select top 1 paintCode from tb_StockIn where barcode = '" + barcode + @"' ) "; object aa = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null); if (aa != null) res = aa.ToString(); else { string sql1 = @" select top 1 productInfo from tb_InspectResult where barcode = '" + barcode + @"' order by createtime desc "; object bb = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql1, null); if (bb != null) { string color = ""; string colorInfo = bb.ToString(); string[] colors = colorInfo.Split(','); if (colors.Length >= 2) { color = colors[2]; string sql2 = @" select partNo from tb_Product where stockNo = '" + barcode.Substring(0, 10) + @"' "; object cc = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql2, null); if (cc != null) { string partNo = cc.ToString(); string paintCode = partNo.Replace("-P", "") + "-" + color; string sql3 = @" select ProductID from tb_Product where partNo = '" + paintCode + @"' "; object dd = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql3, null); if (dd != null) { res = dd.ToString(); } } } } else { string partNo = "", stockNo = ""; if (barcode.Contains('/')) { string[] aastr = barcode.Split('/'); partNo = aastr[0]; } else if (barcode.Contains('.')) { string[] aastr = barcode.Split('.'); partNo = aastr[0]; } else if (barcode.Length == 20) { stockNo = barcode.Substring(0, 10); } else { partNo = barcode; } 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); return res; } catch (Exception ex) { //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); return res; } } public static string UniteBarCodeToOne(string barcode) { string res = barcode; if (!string.IsNullOrWhiteSpace(barcode)) { if (barcode.Contains(".")) { res = TransToBarCodeOne(barcode); } } return res; } public static string TransToBarCodeOne(string barcode) { string res = barcode; try { string sql = @" SELECT TOP 1 OneBarCode FROM v_Code WHERE BarCode = '" + barcode + @"' "; object aa = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null); if (aa != null) { res = aa.ToString(); } else { string sql2 = @" SELECT TOP 1 OneBarCode FROM [10.60.101.9].[BBMPT].[dbo].[tb_BarCode] where BarCode = '" + barcode + @"' "; object bb = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql2, null); if (bb != null) { res = bb.ToString(); } } return res; } catch (Exception ex) { //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); return res; } } public static string GetPartNoByID(string id) { string res = ""; try { string sql = @"select PartNo from tb_Product where ProductID ='" + id + @"'"; object dt = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null); if (dt != null) { res = dt.ToString(); } } catch (Exception ex) { //LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); } return res; } } public static class ScanAll { public static bool ScanResult; public static string barCode1; public static string barCode2; public static string barCode3; public static string barCode4; public static string barCode5; public static string barCode6; public static string partNo1; public static string partNo2; public static string partNo3; public static string partNo4; public static string partNo5; public static string partNo6; } public class OtherPart { public string productID3 { get; set; } public string qty3 { get; set; } public string productID4 { get; set; } public string qty4 { get; set; } public string productID5 { get; set; } public string qty5 { get; set; } public string productID6 { get; set; } public string qty6 { get; set; } public string productID7 { get; set; } public string qty7 { get; set; } public string productID8 { get; set; } public string qty8 { get; set; } } }