/// <summary> /// 增加一条数据 /// </summary> public int Add(PrintInfoEntity model, TransactionModel transModel = null) { SqlParameter param_id = new SqlParameter(); param_id.ParameterName = "@id"; param_id.SqlDbType = SqlDbType.Int; param_id.Direction = ParameterDirection.Output; SqlParameter[] parameters = { new SqlParameter("@printJson", SqlDbType.NVarChar, -1), new SqlParameter("@printFlag", SqlDbType.NChar, 1), new SqlParameter("@printType", SqlDbType.VarChar, 5), new SqlParameter("@note", SqlDbType.NVarChar, 1000), new SqlParameter("@delFlag", SqlDbType.Bit, 1), new SqlParameter("@creator", SqlDbType.NVarChar, 100), new SqlParameter("@lastModifier", SqlDbType.NVarChar, 100), new SqlParameter("@processCardNumber", SqlDbType.NVarChar, 50), param_id }; parameters[0].Value = model.printJson; parameters[1].Value = model.printFlag; parameters[2].Value = model.printType; parameters[3].Value = model.note; parameters[4].Value = model.delFlag; parameters[5].Value = model.creator; parameters[6].Value = model.lastModifier; parameters[7].Value = model.processCardNumber; int rowsAffected; if (transModel != null) { SQLServerHelper.RunProcedure(transModel.conn, transModel.trans, "uspWip_AddPrintInfo", parameters, out rowsAffected); } else { SQLServerHelper.RunProcedure("uspWip_AddPrintInfo", parameters, out rowsAffected); } return((int)parameters[parameters.Length - 1].Value); }
/// <summary> /// 初始化打印数据对象 /// </summary> /// <typeparam name="T">json</typeparam> /// <param name="t"></param> /// <param name="printType">打印类型</param> /// <param name="processCardNumber">流转卡号</param> /// <param name="isOnlyPrint">是否仅仅是打印,不处理业务</param> /// <returns></returns> public bool Add <T>(T t, PrintType printType, string processCardNumber, bool isOnlyPrint, TransactionModel transModel = null) { try { PrintInfoEntity printInfo = new PrintInfoEntity() { processCardNumber = processCardNumber, printJson = JsonConvert.SerializeObject(t), delFlag = isOnlyPrint, printFlag = Convert.ToInt32(PrintStatus.ToPrint).ToString(),//代表初始 createTime = DateTime.Now, lastModifyTime = DateTime.Now, creator = JwtHelp.GetCurUserName(), lastModifier = JwtHelp.GetCurUserName(), printType = Convert.ToInt32(printType).ToString() }; return(dal.Add(printInfo, transModel) > 0 ? true : false); } catch (Exception) { throw; } }
public void Start() { int offsetX = 0, offsetY = 0; string PrintMachineName = ConfigurationManager.AppSettings["PrintMachineName"].ToString(); int.TryParse(ConfigurationManager.AppSettings["Offset_X"].ToString(), out offsetX); int.TryParse(ConfigurationManager.AppSettings["Offset_Y"].ToString(), out offsetY); //默认打码机名称 var defaultPrintName = string.Empty; if (string.IsNullOrEmpty(PrintMachineName)) { foreach (string item in PrinterSettings.InstalledPrinters) { if (item.ToLower().Contains("honeywell")) { defaultPrintName = item; break; } } } else { defaultPrintName = PrintMachineName; } try { var server = new WebSocketServer("ws://0.0.0.0:45000"); server.Start(socket => { socket.OnOpen = () => { socket.Send(JsonConvert.SerializeObject(new { code = "info", msg = "socket通讯已连接!" })); }; socket.OnClose = () => { socket.Send(JsonConvert.SerializeObject(new { code = "info", msg = "socket通讯已关闭!" })); socket.Close(); }; socket.OnMessage = message => { if (string.IsNullOrEmpty(defaultPrintName)) { socket.Send(JsonConvert.SerializeObject(new { code = "error", msg = "未检测到打印机驱动!" })); return; } if (message.Contains("print_")) { string json = message.Replace("print_", ""); PrintInfoEntity printInfo = JsonConvert.DeserializeObject <PrintInfoEntity>(json); if (printInfo.PrintType.Equals(PrintTypeEnum.PersonPrint)) { List <PersonPrintInfoEntity> items = JsonConvert.DeserializeObject <List <PersonPrintInfoEntity> >(printInfo.Data.ToString()); items.ForEach(i => { CsBarCodePrint.PersonBarCodePrint(defaultPrintName, offsetX, offsetY, i.PersonName ?? "", i.PersonCode ?? "", i.DeptName ?? "", i.BarCode ?? ""); }); } if (printInfo.PrintType.Equals(PrintTypeEnum.PartPrint)) { List <PartPrintInfoEntity> items = JsonConvert.DeserializeObject <List <PartPrintInfoEntity> >(printInfo.Data.ToString()); items.ForEach(i => { CsBarCodePrint.PartBarCodePrint(defaultPrintName, offsetX, offsetY, i.ContractName ?? "", i.ProductName ?? "", i.PartFigureNo ?? "", i.PartName ?? "", i.MaterialName ?? "", i.BarCode ?? ""); }); } socket.Send(JsonConvert.SerializeObject(new { code = "prompt", msg = "打印信息已推送!" })); } }; }); } catch { } }