Пример #1
0
        /// <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);
        }
Пример #2
0
 /// <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;
     }
 }
Пример #3
0
        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
            {
            }
        }