| | |
| | | using Admin.NET.Application; |
| | | using iWareCommon.Utils; |
| | | using iWareSql.WmsDBModel; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Data; |
| | | using System.Linq; |
| | | using System.Threading; |
| | | //using Admin.NET.Application; |
| | | //using iWareCommon.Utils; |
| | | //using iWareSql.WmsDBModel; |
| | | //using System; |
| | | //using System.Collections.Generic; |
| | | //using System.Data; |
| | | //using System.Linq; |
| | | //using System.Threading; |
| | | |
| | | namespace iWareCC |
| | | { |
| | | /// <summary> |
| | | /// 打印处理的线程 |
| | | /// </summary> |
| | | public class PrintHandler |
| | | { |
| | | public static void Handler() |
| | | { |
| | | var errMsg = ""; |
| | | while (true) |
| | | { |
| | | try |
| | | { |
| | | SystemWarningMsg._lbl_Alert_PrintHandler = "循环开始..."; |
| | | if (SystemValue.isAllowRuning_PrintHandler && SystemValue.isStartedModel) |
| | | { |
| | | errMsg = "";//重置 |
| | | try |
| | | { |
| | | Do(ref errMsg); |
| | | if (!string.IsNullOrEmpty(errMsg)) |
| | | { |
| | | SystemWarningMsg._lbl_Alert_PrintHandler = errMsg; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(LogType.PrintHandler, "打印处理的线程=>" + errMsg + ",异常:" + ex.Message, ex); |
| | | SystemWarningMsg._lbl_Alert_PrintHandler = "打印处理的线程=>" + errMsg + ",异常:" + ex.Message; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | SystemWarningMsg._lbl_Alert_PrintHandler = "出现异常:" + ex.Message; |
| | | Log4NetHelper.WriteErrorLog(LogType.PrintHandler, "PrintHandler 出现异常:" + ex.Message, ex); |
| | | } |
| | | Thread.Sleep(2 * 1000);//休眠2秒 |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 打印 |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <param name="Lane"></param> |
| | | /// <param name="flag"></param> |
| | | /// <param name="errMsg"></param> |
| | | private static void Do(ref string errMsg) |
| | | { |
| | | using (WmsDBModel mycontext = new WmsDBModel()) |
| | | { |
| | | var query_PrintStatuEnum = (int)PrintStatuEnum.未打印; |
| | | var list = mycontext.wms_record_print.Where(x => (x.IsDelete == false) && x.PrintStatus == query_PrintStatuEnum) |
| | | .OrderBy(x => x.Id).ToList(); |
| | | |
| | | |
| | | wms_config_print printConfig = null; |
| | | string _PrinterName = ""; |
| | | if (list.Count > 0) |
| | | { |
| | | |
| | | } |
| | | else |
| | | { |
| | | errMsg = $"没有可打印的内容!"; |
| | | return; |
| | | } |
| | | |
| | | foreach (var item in list) |
| | | { |
| | | |
| | | |
| | | PrintClassifyEnum printClassifyEnum = PrintClassifyEnum.包装条码; |
| | | |
| | | |
| | | printConfig = mycontext.wms_config_print.Where(x => x.PrintClassify == (int)printClassifyEnum).FirstOrDefault(); |
| | | if (printConfig == null) |
| | | { |
| | | errMsg = $"没有找到{printClassifyEnum.ToString()}的打印配置!"; |
| | | return; |
| | | } |
| | | //设置打印机,注意:这里只获取第一个,以后可能要改! |
| | | _PrinterName = printConfig.PrinterList.Split(',')[0]; |
| | | //根据配置名字查询 打印机名字 |
| | | //var printConfigData = mycontext.SysDictData.Where(x => x.Name == _PrinterName).FirstOrDefault(); |
| | | //if (printConfigData == null) |
| | | //namespace iWareCC |
| | | //{ |
| | | // errMsg = $"没有找到{_PrinterName.ToString()}的打印机名字!"; |
| | | // /// <summary> |
| | | // /// 打印处理的线程 |
| | | // /// </summary> |
| | | // public class PrintHandler |
| | | // { |
| | | // public static void Handler() |
| | | // { |
| | | // var errMsg = ""; |
| | | // while (true) |
| | | // { |
| | | // try |
| | | // { |
| | | // SystemWarningMsg._lbl_Alert_PrintHandler = "循环开始..."; |
| | | // if (SystemValue.isAllowRuning_PrintHandler && SystemValue.isStartedModel) |
| | | // { |
| | | // errMsg = "";//重置 |
| | | // try |
| | | // { |
| | | // Do(ref errMsg); |
| | | // if (!string.IsNullOrEmpty(errMsg)) |
| | | // { |
| | | // SystemWarningMsg._lbl_Alert_PrintHandler = errMsg; |
| | | // } |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // Log4NetHelper.WriteErrorLog(LogType.PrintHandler, "打印处理的线程=>" + errMsg + ",异常:" + ex.Message, ex); |
| | | // SystemWarningMsg._lbl_Alert_PrintHandler = "打印处理的线程=>" + errMsg + ",异常:" + ex.Message; |
| | | // } |
| | | // } |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // SystemWarningMsg._lbl_Alert_PrintHandler = "出现异常:" + ex.Message; |
| | | // Log4NetHelper.WriteErrorLog(LogType.PrintHandler, "PrintHandler 出现异常:" + ex.Message, ex); |
| | | // } |
| | | // Thread.Sleep(2 * 1000);//休眠2秒 |
| | | // } |
| | | // } |
| | | |
| | | |
| | | // /// <summary> |
| | | // /// 打印 |
| | | // /// </summary> |
| | | // /// <param name="model"></param> |
| | | // /// <param name="Lane"></param> |
| | | // /// <param name="flag"></param> |
| | | // /// <param name="errMsg"></param> |
| | | // private static void Do(ref string errMsg) |
| | | // { |
| | | // using (WmsDBModel mycontext = new WmsDBModel()) |
| | | // { |
| | | // var query_PrintStatuEnum = (int)PrintStatuEnum.未打印; |
| | | // var list = mycontext.wms_record_print.Where(x => (x.IsDelete == false) && x.PrintStatus == query_PrintStatuEnum) |
| | | // .OrderBy(x => x.Id).ToList(); |
| | | |
| | | |
| | | // wms_config_print printConfig = null; |
| | | // string _PrinterName = ""; |
| | | // if (list.Count > 0) |
| | | // { |
| | | |
| | | // } |
| | | // else |
| | | // { |
| | | // errMsg = $"没有可打印的内容!"; |
| | | // return; |
| | | //} |
| | | //_PrinterName = printConfigData.Value; |
| | | |
| | | Dictionary<string, object> data = new Dictionary<string, object>(); |
| | | if (printClassifyEnum == PrintClassifyEnum.包装条码) |
| | | { |
| | | //data.Add("bar", item.SNCode); |
| | | //data.Add("material", item.MaterialCode ?? "" + "/" + item.MaterialName ?? ""); |
| | | //data.Add("supplier", item.SupplierName ?? ""); |
| | | //data.Add("unit", item.MaterialUnit ?? ""); |
| | | //data.Add("qty", item.Quantity); |
| | | //data.Add("date", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); |
| | | } |
| | | else |
| | | { |
| | | |
| | | } |
| | | // foreach (var item in list) |
| | | // { |
| | | |
| | | |
| | | //调用打印接口 |
| | | bool isSuccess = false; |
| | | using (PrintBaseService.PrintWcfServiceClient client = new PrintBaseService.PrintWcfServiceClient()) |
| | | { |
| | | //isSuccess = client.Print3(data, 1, @"D:\打印程序\跟踪码打印模板\跟踪码打印模板_一维码.btw", "ZDesigner ZD888-203dpi ZPL", out errMsg); |
| | | //isSuccess = client.Print3(data, 1, @"D:\打印程序\跟踪码打印模板\跟踪码打印模板_二维码.btw", "ZDesigner ZD888-203dpi ZPL", out errMsg); |
| | | isSuccess = client.Print3(data, item.PrintSheetNum, printConfig.PrintTemplateAddr, _PrinterName, out errMsg); |
| | | } |
| | | if (isSuccess) |
| | | { |
| | | item.PrintStatus = 1;//打印状态(0:未打印 1:已打印) |
| | | item.PrintNum = (item.PrintNum) + 1; |
| | | // PrintClassifyEnum printClassifyEnum = PrintClassifyEnum.包装条码; |
| | | |
| | | mycontext.SaveChanges(); |
| | | } |
| | | else |
| | | { |
| | | errMsg = $"打印错误 打印机名称{_PrinterName},错误信息:(打印服务返回)" + errMsg; |
| | | Log4NetHelper.WriteErrorLog(LogType.PrintHandler, errMsg, null); |
| | | return; |
| | | } |
| | | |
| | | Thread.Sleep(2000); |
| | | } |
| | | // printConfig = mycontext.wms_config_print.Where(x => x.PrintClassify == (int)printClassifyEnum).FirstOrDefault(); |
| | | // if (printConfig == null) |
| | | // { |
| | | // errMsg = $"没有找到{printClassifyEnum.ToString()}的打印配置!"; |
| | | // return; |
| | | // } |
| | | // //设置打印机,注意:这里只获取第一个,以后可能要改! |
| | | // _PrinterName = printConfig.PrinterList.Split(',')[0]; |
| | | // //根据配置名字查询 打印机名字 |
| | | // //var printConfigData = mycontext.SysDictData.Where(x => x.Name == _PrinterName).FirstOrDefault(); |
| | | // //if (printConfigData == null) |
| | | // //{ |
| | | // // errMsg = $"没有找到{_PrinterName.ToString()}的打印机名字!"; |
| | | // // return; |
| | | // //} |
| | | // //_PrinterName = printConfigData.Value; |
| | | |
| | | } |
| | | } |
| | | // Dictionary<string, object> data = new Dictionary<string, object>(); |
| | | // if (printClassifyEnum == PrintClassifyEnum.包装条码) |
| | | // { |
| | | // //data.Add("bar", item.SNCode); |
| | | // //data.Add("material", item.MaterialCode ?? "" + "/" + item.MaterialName ?? ""); |
| | | // //data.Add("supplier", item.SupplierName ?? ""); |
| | | // //data.Add("unit", item.MaterialUnit ?? ""); |
| | | // //data.Add("qty", item.Quantity); |
| | | // //data.Add("date", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); |
| | | // } |
| | | // else |
| | | // { |
| | | |
| | | // } |
| | | |
| | | |
| | | // //调用打印接口 |
| | | // bool isSuccess = false; |
| | | // using (PrintBaseService.PrintWcfServiceClient client = new PrintBaseService.PrintWcfServiceClient()) |
| | | // { |
| | | // //isSuccess = client.Print3(data, 1, @"D:\打印程序\跟踪码打印模板\跟踪码打印模板_一维码.btw", "ZDesigner ZD888-203dpi ZPL", out errMsg); |
| | | // //isSuccess = client.Print3(data, 1, @"D:\打印程序\跟踪码打印模板\跟踪码打印模板_二维码.btw", "ZDesigner ZD888-203dpi ZPL", out errMsg); |
| | | // isSuccess = client.Print3(data, item.PrintSheetNum, printConfig.PrintTemplateAddr, _PrinterName, out errMsg); |
| | | // } |
| | | // if (isSuccess) |
| | | // { |
| | | // item.PrintStatus = 1;//打印状态(0:未打印 1:已打印) |
| | | // item.PrintNum = (item.PrintNum) + 1; |
| | | |
| | | // mycontext.SaveChanges(); |
| | | // } |
| | | // else |
| | | // { |
| | | // errMsg = $"打印错误 打印机名称{_PrinterName},错误信息:(打印服务返回)" + errMsg; |
| | | // Log4NetHelper.WriteErrorLog(LogType.PrintHandler, errMsg, null); |
| | | // return; |
| | | // } |
| | | |
| | | // Thread.Sleep(2000); |
| | | // } |
| | | |
| | | // } |
| | | // } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | // } |
| | | //} |