You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

821 lines
41 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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> 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<baseBarcodePrintInfo>().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<baseBarcodePrintInfo>().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<baseBarcodePrintInfo>().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<baseBarcodePrintInfo>().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<baseBarcodePrintInfo>().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<baseBarcodePrintInfo>().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> 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<baseBarcodePrintInfo> 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> 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<baseBarcodePrintInfo>().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<baseBarcodePrintInfo>().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<baseBarcodePrintInfo>().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<List<baseBarcodePrintInfo>> SelectPrintInfoAsync(String BarCode,string ShiftID,string ProductID,string starttime,string endtime)
{
try
{
DateTime start = Convert.ToDateTime(starttime);
DateTime end = Convert.ToDateTime(endtime);
Expression<Func<baseBarcodePrintInfo, bool>> exp = (baseBarcodePrintInfo s1) => true;
if (!string.IsNullOrEmpty(BarCode))
{
exp = ExpressionExtensions.And<Func<baseBarcodePrintInfo, bool>>(exp, (Expression<Func<baseBarcodePrintInfo, bool>>)((baseBarcodePrintInfo s1) => s1.ProductBarcode == BarCode));
}
else
{
//exp = ExpressionExtensions.And<Func<baseBarcodePrintInfo, bool>>(exp, (Expression<Func<baseBarcodePrintInfo, bool>>)((baseBarcodePrintInfo s1) => s1.ShiftID == ShiftID && s1.ProductID == ProductID && s1.InsertTime > start && s1.InsertTime <= end));
exp = ExpressionExtensions.And<Func<baseBarcodePrintInfo, bool>>(exp, (Expression<Func<baseBarcodePrintInfo, bool>>)((baseBarcodePrintInfo s1) => s1.ShiftID == ShiftID && s1.ProductID == ProductID));
}
return await new BaseServices<baseBarcodePrintInfo>().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<baseBarcodePrintInfo> GetLocal_Mchilsurface__DetailInfoList(string ShiftID, string ProductID, string starttime, string endtime)
//{
// List<baseBarcodePrintInfo> 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<baseBarcodePrintInfo> MaterialTypeList = new BaseServices<baseBarcodePrintInfo>().QueryBySql1<baseBarcodePrintInfo>(sql, new List<SugarParameter>
// {
// new SugarParameter("@ShiftID", ShiftID),
// new SugarParameter("@ProductID", ProductID),
// new SugarParameter("@starttime", starttime),
// new SugarParameter("@endtime", endtime)
// });
// result = MaterialTypeList;
// }
// catch (Exception ex)
// {
// result = new List<baseBarcodePrintInfo>();
// }
// return result;
//}
public DataTable GetProductList(string ProductID)
{
DataTable result = null;
try
{
Expression<Func<TBDProductInfo, bool>> exp = (TBDProductInfo s1) => true;
exp = exp.And((TBDProductInfo s1) => s1.ProductID == ProductID);
result = new BaseServices<TBDProductInfo>().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;
}
}
}
}