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.

87 lines
3.5 KiB
C#

using System;
using System.Diagnostics;
using System.IO;
using System.Threading;
using ZJ_BYD.DB;
using ZJ_BYD.Model;
namespace ZJ_BYD.Untils
{
public class BartenderPrintHeper : MyEventHandler
{
/// <summary>
/// 通过BatTender手动打印条码
/// </summary>
/// <param name="fileName"></param>
/// <param name="softwareVersion"></param>
/// <param name="barCode"></param>
/// <returns></returns>
public static (bool ok, string barCode, string msg) PrintByHttp(string fileName, string softwareVersion, string barCode)
{
var path = "D:\\PrintTemplate\\" + fileName + ".btw";
if (!File.Exists(path))
{
return (false, "", $"{DateTime.Now:HH:mm:ss}>>>>>手动打印时模板文件不存在{Environment.NewLine}");
}
string version = $"SW:{softwareVersion}/BC34-1200V-C-V0.11";
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
T_PrintInfo t_PrintInfo = new T_PrintInfo
{
Id = Guid.NewGuid().ToString(),
FileName = fileName,
BarCode = barCode,
SoftVersion = version,
CreatedTime = DateTime.Now
};
var row = MskCodeHelper.AddPrintInfo(t_PrintInfo);
if (row <= 0)
{
return (false, barCode, $"{DateTime.Now:HH:mm:ss}>>>>>手动打印信息发送失败,保存打印参数耗时:{stopwatch.ElapsedMilliseconds}毫秒{Environment.NewLine}");
}
#region 监听打印结果
bool printResult = false;
Stopwatch stopwatch1 = new Stopwatch();
stopwatch1.Start();
bool doWhile = true;
while (doWhile)
{
doWhile = false;
if (stopwatch1.ElapsedMilliseconds >= 10000)
{
break;//超时跳出循环
}
var printInfo = MskCodeHelper.QueryPrintInfo(barCode);
if (printInfo == null)
{
break;//查询打印参数为空跳出循环
}
else if (printInfo.PrintResult.HasValue && printInfo.PrintResult.Value)
{
printResult = true;
break;//打印成功跳出循环
}
else if (printInfo.PrintResult.HasValue && !printInfo.PrintResult.Value)
{
break;//打印失败跳出循环
}
doWhile = true;
Thread.Sleep(300);
}
#endregion
stopwatch.Stop();
if (printResult)
{
return (true, barCode, $"{DateTime.Now:HH:mm:ss}>>>>>一体机反馈:打印成功,打印条码信息:{barCode},软件编码:{CAN1DeviceHelper.Instance.DeviceInfo.SoftwareCode},引导版本号:{CAN1DeviceHelper.Instance.DeviceInfo.GuideVersion},软件版本号:{CAN1DeviceHelper.Instance.DeviceInfo.SoftwareVersion},电压:{CAN1DeviceHelper.Instance.DeviceInfo.Voltage},耗时:{stopwatch.ElapsedMilliseconds}毫秒{Environment.NewLine}");
}
else
{
return (false, barCode, $"{DateTime.Now:HH:mm:ss}>>>>>一体机反馈:打印失败,耗时:{stopwatch.ElapsedMilliseconds}毫秒{Environment.NewLine}");
}
}
}
}