using FrmPrint; using Mesnac.Compressor.Data; using Mesnac.Compressor.Entity; using Mesnac.Compressor.Unity; using Mesnac.HighWay.ATC.Common; using Mesnac.HighWay.ATC.SqlSugar.serviceImpl; using SqlSugar; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; namespace BarTenderPrint { public class PrintManager { public delegate void ShowMessageEvent(string barcode); public event ShowMessageEvent RefreshShowMessageEvent; private static INIFile iNIFile = new INIFile(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "App.InI"); public async void Print(Print Print, List TBDProductInfo) { MLable mlb = new MLable(); BoxLable boxlb = new BoxLable(); barcodLable barcodelb = new barcodLable(); string printType = ""; string Serialnum = ""; string type = ""; //查询机种信息 string ShiftNo = Print.Shift; #region 从数据库获取打印数据 try { if (TBDProductInfo != null && TBDProductInfo.Count > 0) { //0表示正常品1表示试制品 type = TBDProductInfo[0].ProductType; //打印那种标签 printType = TBDProductInfo[0].PrintType; //车间字段 mlb.ShopID = TBDProductInfo[0].ShopID; //日期前面是否+A mlb.HasA = Convert.ToInt16(TBDProductInfo[0].HasA) == 1; //是否有另一处需要+时间的地方 mlb.HasDate = Convert.ToInt16(TBDProductInfo[0].HasDate) == 1; //名牌模板位置 mlb.TempName = TBDProductInfo[0].MPTemplate.ToString(); boxlb.MachineNam = TBDProductInfo[0].ProductName.ToString(); //barcodelb.ZJWeight = ZJweight; //前缀 barcodelb.PreString = TBDProductInfo[0].Prefix.ToString(); barcodelb.EndString = TBDProductInfo[0].Suffix.ToString(); //条码模板位置 barcodelb.TempName = TBDProductInfo[0].TMTemplate.ToString(); //铭牌编码方式 barcodelb.codeType = TBDProductInfo[0].CodeType.ToString(); } else { Console.WriteLine("未找到该机种信息"); //没绑定托盘说明70工位未绑定上线机壳 //生成 } } catch (Exception ex) { Console.WriteLine("未找到该机种信息" + ex); LogHelper.Error("空间名:" + ex.Source + ";" + '\n' + "方法名:" + ex.TargetSite + '\n' + "故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' + "错误提示:" + ex.Message); } #endregion #region 获取序列号 Serialnum = Print.Serialnum; #endregion barcodelb.PrintType = printType; barcodelb.SerialNum = Serialnum; barcodelb.ShiftNo = ShiftNo; //barcodelb.Date = DateTime.Now; //barcodelb.Date = Convert.ToDateTime(Print.starttime); mlb.PrintType = printType; mlb.serialNum = Serialnum; mlb.ShiftNO = getShift(ShiftNo); //mlb.Date = DateTime.Now; //mlb.Date = Convert.ToDateTime(Print.starttime); int itype = 0; if (!string.IsNullOrEmpty(printType)) { itype = Convert.ToInt32(printType); } //判断是否需要打印铭牌 if (!string.IsNullOrEmpty(mlb.TempName)) { #region 打印铭牌 try { //这些每个机种应该都谁确定的,在数据库里保存,以后可以一个存储过程去获取 //if (true) //{ // ExitRePrint(); // RefreshShowMessageEvent?.Invoke(Print.barcode + "铭牌打印成功!"); // LogHelper.Info(Print.barcode + "铭牌打印成功!"); // //插库存储条码及序列号 // baseBarcodePrintInfo BarcodePrintInfo = new baseBarcodePrintInfo(); // BarcodePrintInfo.ID = Guid.NewGuid().ToString("N"); // BarcodePrintInfo.ProductBarcode = Print.barcode; // BarcodePrintInfo.ProductID = Print.Machine.ToString(); // BarcodePrintInfo.SerialNo = DateTime.Parse(Print.starttime.ToString()).ToString("yyMMdd") + "D" + Print.Shift + Serialnum; // BarcodePrintInfo.IsRestart = Print.isRestart.ToString(); // BarcodePrintInfo.ShiftID = ShiftNo; // BarcodePrintInfo.InsertTime = DateTime.Now; // await new BaseServices().Add(BarcodePrintInfo); // RefreshShowMessageEvent?.Invoke(Print.barcode + "铭牌打印记录存储完成!"); // LogHelper.Info(Print.barcode + "铭牌打印记录存储完成!"); // iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); // return; //} LogHelper.Info(Print.barcode + "开始打印铭牌"); PrintEquip Smallequip = new NamePlatePrintEquip(); Smallequip.tempPath = mlb.TempName; Smallequip.ParaClass = mlb; Smallequip.Open(); bool bflag = Smallequip.print(); if (bflag) { ExitRePrint(); RefreshShowMessageEvent?.Invoke(Print.barcode + "铭牌打印成功!"); LogHelper.Info(Print.barcode + "铭牌打印成功!"); //插库存储条码及序列号 baseBarcodePrintInfo BarcodePrintInfo = new baseBarcodePrintInfo(); BarcodePrintInfo.ID = Guid.NewGuid().ToString("N"); BarcodePrintInfo.ProductBarcode = Print.barcode; BarcodePrintInfo.ProductID = Print.Machine.ToString(); BarcodePrintInfo.SerialNo = DateTime.Parse(Print.starttime.ToString()).ToString("yyMMdd") + "D"+ Print.Shift + Serialnum; BarcodePrintInfo.IsRestart = Print.isRestart.ToString(); BarcodePrintInfo.ShiftID = ShiftNo; BarcodePrintInfo.InsertTime = DateTime.Now; await new BaseServices().Add(BarcodePrintInfo); RefreshShowMessageEvent?.Invoke(Print.barcode + "铭牌打印记录存储完成!"); LogHelper.Info(Print.barcode + "铭牌打印记录存储完成!"); iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); } else { iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); } Smallequip.Colse(); } catch (Exception ex) { iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); LogHelper.Error("空间名:" + ex.Source + ";" + '\n' + "方法名:" + ex.TargetSite + '\n' + "故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' + "错误提示:" + ex.Message); } #endregion } if (!string.IsNullOrEmpty(barcodelb.TempName)) { //0打印条码,1打印纸箱标签 if (itype == 1) { #region 纸箱标签 try { Console.WriteLine("开始打印纸箱标签"); PrintEquip equip = new CartonPrintEquip(); equip.tempPath = ""; equip.ParaClass = boxlb; equip.Open(); equip.print(); equip.Colse(); } catch (Exception ex) { iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); LogHelper.Error("空间名:" + ex.Source + ";" + '\n' + "方法名:" + ex.TargetSite + '\n' + "故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' + "错误提示:" + ex.Message); } #endregion } else if (itype == 0) { #region 条码标签 try { Console.WriteLine("开始打印条码标签"); //if (true) //{ // iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); // RefreshShowMessageEvent?.Invoke(Print.barcode + "条码标签打印成功!"); // LogHelper.Info(Print.barcode + "条码标签打印成功!"); // //插库存储条码及序列号 // baseBarcodePrintInfo BarcodePrintInfo = new baseBarcodePrintInfo(); // BarcodePrintInfo.ID = Guid.NewGuid().ToString("N"); // BarcodePrintInfo.ProductBarcode = Print.barcode; // BarcodePrintInfo.ProductID = Print.Machine.ToString(); // BarcodePrintInfo.SerialNo = DateTime.Now.ToString("yyMMdd") + Serialnum; // BarcodePrintInfo.IsRestart = Print.isRestart.ToString(); // BarcodePrintInfo.ShiftID = ShiftNo; // BarcodePrintInfo.InsertTime = DateTime.Now; // await new BaseServices().Add(BarcodePrintInfo); // RefreshShowMessageEvent?.Invoke(Print.barcode + "条码打印记录存储完成!"); // LogHelper.Info(Print.barcode + "条码打印记录存储完成!"); //} PrintEquip equip = new barcodePrintEquip(); equip.tempPath = barcodelb.TempName; equip.ParaClass = barcodelb; equip.Open(); bool bflag = equip.print(); if (bflag) { RefreshShowMessageEvent?.Invoke(Print.barcode + "条码标签打印成功!"); LogHelper.Info(Print.barcode + "条码标签打印成功!"); //插库存储条码及序列号 baseBarcodePrintInfo BarcodePrintInfo = new baseBarcodePrintInfo(); BarcodePrintInfo.ID = Guid.NewGuid().ToString("N"); BarcodePrintInfo.ProductBarcode = Print.barcode; BarcodePrintInfo.ProductID = Print.Machine.ToString(); BarcodePrintInfo.SerialNo = DateTime.Parse(Print.starttime.ToString()).ToString("yyMMdd") + "D" + Print.Shift + Serialnum; BarcodePrintInfo.IsRestart = Print.isRestart.ToString(); BarcodePrintInfo.ShiftID = ShiftNo; BarcodePrintInfo.InsertTime = DateTime.Now; await new BaseServices().Add(BarcodePrintInfo); RefreshShowMessageEvent?.Invoke(Print.barcode + "条码打印记录存储完成!"); LogHelper.Info(Print.barcode + "条码打印记录存储完成!"); iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); } equip.Colse(); } catch (Exception ex) { iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); LogHelper.Error("空间名:" + ex.Source + ";" + '\n' + "方法名:" + ex.TargetSite + '\n' + "故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' + "错误提示:" + ex.Message); } #endregion } else if (itype == 2) { #region 二维码标签 try { //if (true) //{ // iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); // RefreshShowMessageEvent?.Invoke(Print.barcode + "二维码标签打印成功!"); // LogHelper.Info(Print.barcode + "二维码标签打印成功!"); // //插库存储条码及序列号 // baseBarcodePrintInfo BarcodePrintInfo = new baseBarcodePrintInfo(); // BarcodePrintInfo.ID = Guid.NewGuid().ToString("N"); // BarcodePrintInfo.ProductBarcode = Print.barcode; // BarcodePrintInfo.ProductID = Print.Machine.ToString(); // BarcodePrintInfo.SerialNo = DateTime.Parse(Print.starttime.ToString()).ToString("yyMMdd") + Serialnum; // BarcodePrintInfo.IsRestart = Print.isRestart.ToString(); // BarcodePrintInfo.ShiftID = ShiftNo; // BarcodePrintInfo.InsertTime = DateTime.Now; // await new BaseServices().Add(BarcodePrintInfo); // RefreshShowMessageEvent?.Invoke(Print.barcode + "二维码打印记录存储完成!"); // LogHelper.Info(Print.barcode + "二维码打印记录存储完成!"); //} RefreshShowMessageEvent?.Invoke(Print.barcode + "开始打印二维码标签"); LogHelper.Info(Print.barcode + "开始打印二维码标签"); PrintEquip equip = new QRCodePrintEquip(); equip.tempPath = barcodelb.TempName; equip.ParaClass = barcodelb; equip.Open(); bool bflag = equip.print(); if (bflag) { RefreshShowMessageEvent?.Invoke(Print.barcode + "二维码标签打印成功!"); LogHelper.Info(Print.barcode + "二维码标签打印成功!"); //插库存储条码及序列号 baseBarcodePrintInfo BarcodePrintInfo = new baseBarcodePrintInfo(); BarcodePrintInfo.ID = Guid.NewGuid().ToString("N"); BarcodePrintInfo.ProductBarcode = Print.barcode; BarcodePrintInfo.ProductID = Print.Machine.ToString(); BarcodePrintInfo.SerialNo = DateTime.Parse(Print.starttime.ToString()).ToString("yyMMdd") + "D" + Print.Shift + Serialnum; BarcodePrintInfo.IsRestart = Print.isRestart.ToString(); BarcodePrintInfo.ShiftID = ShiftNo; BarcodePrintInfo.InsertTime = DateTime.Now; await new BaseServices().Add(BarcodePrintInfo); RefreshShowMessageEvent?.Invoke(Print.barcode +"二维码打印记录存储完成!"); LogHelper.Info(Print.barcode + "二维码打印记录存储完成!"); iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); } equip.Colse(); } catch (Exception ex) { iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); LogHelper.Error("空间名:" + ex.Source + ";" + '\n' + "方法名:" + ex.TargetSite + '\n' + "故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' + "错误提示:" + ex.Message); } #endregion } //else if (itype == 3) //{ // #region 打印铭牌 // try // { // //这些每个机种应该都谁确定的,在数据库里保存,以后可以一个存储过程去获取 // Console.WriteLine("开始打印铭牌"); // PrintEquip Smallequip = new NamePlatePrintEquip(); // Smallequip.tempPath = mlb.TempName; // Smallequip.ParaClass = mlb; // Smallequip.Open(); // Smallequip.print(); // Smallequip.Colse(); // } // catch (Exception e) // { // Console.WriteLine(e.ToString()); // } // #endregion //} } } private void ExitRePrint() { try { if (iNIFile.IniReadValue("SystemConfig", "UserName") != "用户名") { RefreshShowMessageEvent?.Invoke("退出管理员模式成功!"); LogHelper.Info("退出管理员模式成功!"); iNIFile.IniWriteValue("SystemConfig", "UserName", "用户名"); } } catch (Exception ex) { } } public async void Print(string barcode, int Machine, string ShiftID,string starttime,string endtime) { MLable mlb = new MLable(); BoxLable boxlb = new BoxLable(); barcodLable barcodelb = new barcodLable(); string printType = ""; string Serialnum = ""; string type = ""; DbHandler db = new DbHandler(); string machine = Machine.ToString(); //查询机种信息 DataTable dt = GetProductList(machine); //string ZJweight = db.GetZJWeightProductInfoByBarCode(barcode); string Mbarcode = ""; //ShiftInfo shift = db.GetShiftInfo(); string ShiftNo = ShiftID; #region 从数据库获取打印数据 try { if (dt != null && dt.Rows.Count > 0) { //0表示正常品1表示试制品 type = dt.Rows[0]["ProductType"].ToString(); //打印那种标签 printType = dt.Rows[0]["PrintType"].ToString(); //车间字段 mlb.ShopID = dt.Rows[0]["ShopID"].ToString(); //日期前面是否+A mlb.HasA = Convert.ToInt16(dt.Rows[0]["HasA"]) == 1; //是否有另一处需要+时间的地方 mlb.HasDate = Convert.ToInt16(dt.Rows[0]["HasDate"]) == 1; //名牌模板位置 mlb.TempName= dt.Rows[0]["MPTemplate"].ToString(); boxlb.MachineNam = dt.Rows[0]["ProductName"].ToString(); //barcodelb.ZJWeight = ZJweight; //前缀 barcodelb.PreString = dt.Rows[0]["Prefix"].ToString(); barcodelb.EndString = dt.Rows[0]["Suffix"].ToString(); //条码模板位置 barcodelb.TempName = dt.Rows[0]["TMTemplate"].ToString(); //铭牌编码方式 barcodelb.codeType = dt.Rows[0]["CodeType"].ToString(); } else { Console.WriteLine("未找到该机种信息"); //没绑定托盘说明70工位未绑定上线机壳 //生成 } } catch(Exception ex) { Console.WriteLine("未找到该机种信息"+ ex); LogHelper.Error("空间名:" + ex.Source + ";" + '\n' + "方法名:" + ex.TargetSite + '\n' + "故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' + "错误提示:" + ex.Message); } #endregion //Console.WriteLine("整机净重:"+ZJweight); //Console.WriteLine("机种ID:" + Machine.ToString() + "打印类别:" + printType+""); #region 获取序列号 //开启补码功能 if (iNIFile.IniReadValue("SystemConfig", "UserName") == "管理员") { RefreshShowMessageEvent?.Invoke("补码功能开启,查询到当前用户名管理员"); List baseBarcodePrintInfo = await SelectPrintInfoAsync("", ShiftID, Machine.ToString(), starttime, endtime); if (baseBarcodePrintInfo != null && baseBarcodePrintInfo.Count > 0) { //查询最大序列号生成 var max = baseBarcodePrintInfo.Max(x => x.SerialNo); RefreshShowMessageEvent?.Invoke("查询当前最大序列号" + max); Serialnum = Convert.ToInt32(Convert.ToInt32(max.Substring(max.Length - 4, 4)) + 1).ToString().PadLeft(4, '0'); RefreshShowMessageEvent?.Invoke("生成新序列号" + Serialnum); } else { //序列号0001 Serialnum = "0001"; RefreshShowMessageEvent?.Invoke("生成新序列号" + Serialnum); } } else { //现根据条码查询是否重码 //List baseBarcodePrintInfos = await SelectPrintInfoAsync(barcode, ShiftID, Machine.ToString(), starttime, endtime); //if (baseBarcodePrintInfos != null && baseBarcodePrintInfos.Count > 0) //{ // foreach (var item in baseBarcodePrintInfos) // { // RefreshShowMessageEvent?.Invoke("查询" + barcode + "存在历史记录,序列号:" + item.SerialNo); // return; // } //} //先根据班次时间查询最大序列号,如果不存在则从0001生成 List baseBarcodePrintInfo = await SelectPrintInfoAsync("", ShiftID, Machine.ToString(), starttime, endtime); if (baseBarcodePrintInfo != null && baseBarcodePrintInfo.Count > 0) { //查询最大序列号生成 var max = baseBarcodePrintInfo.Max(x => x.SerialNo); RefreshShowMessageEvent?.Invoke("查询当前最大序列号" + max); Serialnum = Convert.ToInt32(Convert.ToInt32(max.Substring(max.Length - 4, 4)) + 1).ToString().PadLeft(4, '0'); RefreshShowMessageEvent?.Invoke("生成新序列号" + Serialnum); } else { //序列号0001 Serialnum = "0001"; RefreshShowMessageEvent?.Invoke("生成新序列号" + Serialnum); } } //这个需要在系统内进行获取早中晚班分别用A,B,C表示 //string beginTime = ""; //DateTime time = DateTime.Now; //if (string.IsNullOrEmpty(barcode)) //{ // Serialnum = "0001"; // beginTime = DateTime.Now.ToString(); // Console.WriteLine("半部件条码为空"); //} //else //{ // //通过壳体条码搜索系统M条码,以M条码的后四位作为流水号号 // Mbarcode = db.GetMbarcode(barcode); // if (string.IsNullOrEmpty(Mbarcode)) // { // RefreshShowMessageEvent?.Invoke("未查询到"+ barcode + "条码流水号,请手动补码!"); // return; // } // Serialnum = Mbarcode.Substring(Mbarcode.Length - 4, 4); //} #endregion #region 获取生产日期 //Console.WriteLine("半部件条码:"+ Mbarcode); //try //{ // beginTime = getDateString(Mbarcode); // time = Convert.ToDateTime(beginTime); //} //catch (Exception e) //{ // time = DateTime.Now; // ICSharpCode.Core.LoggingService.Debug(e.ToString()); //} #endregion barcodelb.PrintType = printType; barcodelb.SerialNum = Serialnum; barcodelb.ShiftNo = ShiftNo; barcodelb.Date = DateTime.Now; mlb.PrintType = printType; mlb.serialNum = Serialnum; mlb.ShiftNO = getShift(ShiftNo) ; mlb.Date = DateTime.Now; int itype = 0; if (!string.IsNullOrEmpty(printType)) { itype = Convert.ToInt32(printType); } //判断是否需要打印铭牌 if (!string.IsNullOrEmpty(mlb.TempName)) { #region 打印铭牌 try { //这些每个机种应该都谁确定的,在数据库里保存,以后可以一个存储过程去获取 RefreshShowMessageEvent?.Invoke("开始打印铭牌,请等待..."); PrintEquip Smallequip = new NamePlatePrintEquip(); Smallequip.tempPath = mlb.TempName; Smallequip.ParaClass = mlb; Smallequip.Open(); bool bflag = Smallequip.print(); if (bflag) { iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); RefreshShowMessageEvent?.Invoke("铭牌打印成功!"); //插库存储条码及序列号 baseBarcodePrintInfo BarcodePrintInfo = new baseBarcodePrintInfo(); BarcodePrintInfo.ID = Guid.NewGuid().ToString("N"); BarcodePrintInfo.ProductBarcode = barcode; BarcodePrintInfo.ProductID = machine; BarcodePrintInfo.SerialNo = DateTime.Now.ToString("yyMMdd") + Serialnum; BarcodePrintInfo.IsRestart = "0"; BarcodePrintInfo.ShiftID = ShiftNo; BarcodePrintInfo.InsertTime = DateTime.Now; await new BaseServices().Add(BarcodePrintInfo); RefreshShowMessageEvent?.Invoke("铭牌打印记录存储完成!"); } Smallequip.Colse(); } catch (Exception ex) { iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); LogHelper.Error("空间名:" + ex.Source + ";" + '\n' + "方法名:" + ex.TargetSite + '\n' + "故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' + "错误提示:" + ex.Message); } #endregion } if (!string.IsNullOrEmpty(barcodelb.TempName)) { //0打印条码,1打印纸箱标签 if (itype == 1) { #region 纸箱标签 try { Console.WriteLine("开始打印纸箱标签"); PrintEquip equip = new CartonPrintEquip(); equip.tempPath = ""; equip.ParaClass = boxlb; equip.Open(); equip.print(); equip.Colse(); } catch (Exception ex) { iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); LogHelper.Error("空间名:" + ex.Source + ";" + '\n' + "方法名:" + ex.TargetSite + '\n' + "故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' + "错误提示:" + ex.Message); } #endregion } else if (itype == 0) { #region 条码标签 try { Console.WriteLine("开始打印条码标签"); PrintEquip equip = new barcodePrintEquip(); equip.tempPath = barcodelb.TempName; equip.ParaClass = barcodelb; equip.Open(); bool bflag = equip.print(); if (bflag) { iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); RefreshShowMessageEvent?.Invoke("二维码标签打印成功!"); //插库存储条码及序列号 baseBarcodePrintInfo BarcodePrintInfo = new baseBarcodePrintInfo(); BarcodePrintInfo.ID = Guid.NewGuid().ToString("N"); BarcodePrintInfo.ProductBarcode = barcode; BarcodePrintInfo.ProductID = machine; BarcodePrintInfo.SerialNo = DateTime.Now.ToString("yyMMdd") + Serialnum; BarcodePrintInfo.IsRestart = "0"; BarcodePrintInfo.ShiftID = ShiftNo; BarcodePrintInfo.InsertTime = DateTime.Now; await new BaseServices().Add(BarcodePrintInfo); RefreshShowMessageEvent?.Invoke("打印记录存储完成!"); } equip.Colse(); } catch (Exception ex) { iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); LogHelper.Error("空间名:" + ex.Source + ";" + '\n' + "方法名:" + ex.TargetSite + '\n' + "故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' + "错误提示:" + ex.Message); } #endregion } else if (itype == 2) { #region 二维码标签 try { Console.WriteLine("开始打印二维码标签"); PrintEquip equip = new QRCodePrintEquip(); equip.tempPath = barcodelb.TempName; equip.ParaClass = barcodelb; equip.Open(); bool bflag = equip.print(); if (bflag) { iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); RefreshShowMessageEvent?.Invoke("二维码标签打印成功!"); //插库存储条码及序列号 baseBarcodePrintInfo BarcodePrintInfo = new baseBarcodePrintInfo(); BarcodePrintInfo.ID = Guid.NewGuid().ToString("N"); BarcodePrintInfo.ProductBarcode = barcode; BarcodePrintInfo.ProductID = machine; BarcodePrintInfo.SerialNo = DateTime.Now.ToString("yyMMdd") + Serialnum; BarcodePrintInfo.IsRestart = "0"; BarcodePrintInfo.ShiftID = ShiftNo; BarcodePrintInfo.InsertTime = DateTime.Now; await new BaseServices().Add(BarcodePrintInfo); RefreshShowMessageEvent?.Invoke("打印记录存储完成!"); } equip.Colse(); } catch (Exception ex) { iNIFile.IniWriteValue("SystemConfig", "PrintState", "2"); LogHelper.Error("空间名:" + ex.Source + ";" + '\n' + "方法名:" + ex.TargetSite + '\n' + "故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' + "错误提示:" + ex.Message); } #endregion } //else if (itype == 3) //{ // #region 打印铭牌 // try // { // //这些每个机种应该都谁确定的,在数据库里保存,以后可以一个存储过程去获取 // Console.WriteLine("开始打印铭牌"); // PrintEquip Smallequip = new NamePlatePrintEquip(); // Smallequip.tempPath = mlb.TempName; // Smallequip.ParaClass = mlb; // Smallequip.Open(); // Smallequip.print(); // Smallequip.Colse(); // } // catch (Exception e) // { // Console.WriteLine(e.ToString()); // } // #endregion //} } } private string getDateString(string semiBarcode) { string datestring = "20"; if (string.IsNullOrEmpty(semiBarcode)) { datestring = DateTime.Now.ToString(); } else { string year = semiBarcode.Substring(2, 2); string month = semiBarcode.Substring(4, 2); string date = semiBarcode.Substring(6, 2); datestring += year + "-" + month + "-" + date; } return datestring; } private string getShift(string shift) { string shiftA = "A"; switch (shift) { case "01": shiftA = "A"; break; case "02": shiftA = "B"; break; case "03": shiftA = "C"; break; default: break; } return shiftA; } public async Task> SelectPrintInfoAsync(String BarCode,string ShiftID,string ProductID,string starttime,string endtime) { try { DateTime start = Convert.ToDateTime(starttime); DateTime end = Convert.ToDateTime(endtime); Expression> exp = (baseBarcodePrintInfo s1) => true; if (!string.IsNullOrEmpty(BarCode)) { exp = ExpressionExtensions.And>(exp, (Expression>)((baseBarcodePrintInfo s1) => s1.ProductBarcode == BarCode)); } else { //exp = ExpressionExtensions.And>(exp, (Expression>)((baseBarcodePrintInfo s1) => s1.ShiftID == ShiftID && s1.ProductID == ProductID && s1.InsertTime > start && s1.InsertTime <= end)); exp = ExpressionExtensions.And>(exp, (Expression>)((baseBarcodePrintInfo s1) => s1.ShiftID == ShiftID && s1.ProductID == ProductID)); } return await new BaseServices().Query(exp); } catch (Exception ex) { LogHelper.Error("空间名:" + ex.Source + ";" + '\n' + "方法名:" + ex.TargetSite + '\n' + "故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' + "错误提示:" + ex.Message); return null; } } //public List GetLocal_Mchilsurface__DetailInfoList(string ShiftID, string ProductID, string starttime, string endtime) //{ // List result; // try // { // string sql = "SELECT [ID],[ProductBarcode],[SerialNo],[IsRestart],[ProductID],[ShiftID],[InsertTime] FROM [base_Barcode_PrintInfo] WHERE 1 = 1 AND [ShiftID]=@ShiftID AND [ProductID]=@ProductID AND [InsertTime] > @starttime AND InsertTime < @endtime " // ; // List MaterialTypeList = new BaseServices().QueryBySql1(sql, new List // { // new SugarParameter("@ShiftID", ShiftID), // new SugarParameter("@ProductID", ProductID), // new SugarParameter("@starttime", starttime), // new SugarParameter("@endtime", endtime) // }); // result = MaterialTypeList; // } // catch (Exception ex) // { // result = new List(); // } // return result; //} public DataTable GetProductList(string ProductID) { DataTable result = null; try { Expression> exp = (TBDProductInfo s1) => true; exp = exp.And((TBDProductInfo s1) => s1.ProductID == ProductID); result = new BaseServices().QueryDatatable(exp); return result; } catch (Exception ex) { LogHelper.Error("空间名:" + ex.Source + ";" + '\n' + "方法名:" + ex.TargetSite + '\n' + "故障点:" + ex.StackTrace.Substring(ex.StackTrace.LastIndexOf("\\") + 1, ex.StackTrace.Length - ex.StackTrace.LastIndexOf("\\") - 1) + '\n' + "错误提示:" + ex.Message); return result; } } } }