Exemple #1
0
        public async Task <QrcodeDto> GetQrcodeAsync()
        {
            UserIdentifier userIdentifier = new UserIdentifier(InfrastructureSession.TenantId, InfrastructureSession.UserId.Value);
            Qrcode         qrcode         = await QrcodeManager.GetQrcodeAsync(userIdentifier);

            return(qrcode.MapTo <QrcodeDto>());
        }
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.Run(async(context) =>
            {
                context.Response.ContentType = "text/html; charset=utf-8";

                Qrcode qr = new Qrcode();

                qr.Merchant_category_code = "5812";
                qr.Merchant_name          = "Halalah Grocery";
                qr.Merchant_city          = "Riyadh";
                qr.Postal_code            = "12345";
                qr.Merchant_name_ar       = "هللة";
                qr.Merchant_city_ar       = "الرياض";
                qr.Amount    = ".50";
                qr.Bill      = "1233111";
                qr.Reference = "Unique_Order_ID";
                qr.Terminal  = "HG00001";

                await context.Response.WriteAsync(qr.output());
            });
        }
Exemple #3
0
        public ActionResult GetQrcode()

        {
            string r1 = QRCodeService.CreateQRCode();

            Qrcode qrcode = JsonConvert.DeserializeObject <Qrcode>(r1);

            return(View(qrcode));

            //return Content(QRCodeService.CreateQRCode());
        }
Exemple #4
0
 /// <summary>
 /// 保存二维码
 /// </summary>
 /// <param name="code"></param>
 /// <returns></returns>
 public int SaveQrCode(Qrcode code)
 {
     if (code.ID == 0)
     {
         return((int)_set.Insert(code));
     }
     else
     {
         return(_set.Update(code));
     }
 }
Exemple #5
0
 public QrcodeViewModel(Qrcode entity)
 {
     Id          = entity.Id;
     Content     = entity.Content;
     ExpireAt    = entity.ExpireAt;
     Purpose     = entity.Purpose;
     ScanedCount = entity.ScanedCount;
     Creator     = entity.Creator;
     CreateAt    = entity.CreateAt;
     Path        = entity.Path;
 }
Exemple #6
0
        public bool Remove(object id)
        {
            Qrcode entity = uow.Set <Qrcode>().Find(id);

            if (entity == null)
            {
                return(false);
            }
            uow.Set <Qrcode>().Remove(entity);
            uow.Commit();
            return(true);
        }
Exemple #7
0
        public bool Delete(object id)
        {
            Qrcode entity = uow.Set <Qrcode>().Find(id);

            if (entity == null || entity.IsDelete)
            {
                return(false);
            }
            entity.IsDelete = true;
            uow.Commit();
            return(true);
        }
Exemple #8
0
    // Use this for initialization
    void Start()
    {
        byte[] identity = SerialIOService.GetInstance().PayIdentity;
        Image  image    = transform.FindChild("qrcode").gameObject.GetComponent <Image>();

        if (null == identity)
        {
            return;
        }
        Texture2D texture = Qrcode.GenQRCodeLeYaoYao(identity);

        image.sprite = UIManager.GenSprite(texture);
    }
Exemple #9
0
 public ActionResult Generate(Qrcode qrcode)
 {
     try
     {
         qrcode.QRCodeImagePath = GenerateQRCode(qrcode.QRCodeText);
         ViewBag.Message        = "QR Code Generated successfully";
     }
     catch (Exception ex)
     {
         //catch exception if there is any
     }
     return(View("About", qrcode));
 }
Exemple #10
0
        public QrcodeViewModel Add(QrcodeViewModel model)
        {
            model.Id = Guid.NewGuid().ToString();
            Qrcode entity = new Qrcode();

            uow.Set <Qrcode>().Add(entity);
            entity.Id          = model.Id;
            entity.Content     = model.Content;
            entity.Path        = model.Path;
            entity.ExpireAt    = model.ExpireAt;
            entity.Purpose     = model.Purpose;
            entity.ScanedCount = model.ScanedCount;
            entity.Creator     = model.Creator;
            uow.Commit();
            return(new QrcodeViewModel(entity));
        }
Exemple #11
0
        /// <summary>
        /// 把没有上传的信息全部上传
        /// </summary>
        private void buttonUpload_Click(object sender, EventArgs e)
        {
            string sql = "select * from qrcode where upload is null " +
                         "and Left(PRINT_TIME, 10) >= \"" + dtpStart.Text + "\" and Left(PRINT_TIME, 10) <= \"" + dtpEnd.Text + "\" ";

            try
            {
                OleDbCommand    cmd     = new OleDbCommand(sql, mycon);
                OleDbDataReader reader  = cmd.ExecuteReader();
                DataSet         dateset = new DataSet();
                DataTable       dt      = new DataTable();
                dt.Load(reader);

                if (dt.Rows.Count > 0)
                {
                    ArrayList qrcodes = new ArrayList();
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        Qrcode qrcode = new Qrcode();

                        qrcode.name       = dt.Rows[i][1].ToString();
                        qrcode.pickTime   = dt.Rows[i][2].ToString();
                        qrcode.source     = dt.Rows[i][3].ToString();
                        qrcode.pic        = dt.Rows[i][4].ToString();
                        qrcode.detectTime = dt.Rows[i][5].ToString();
                        qrcode.nc         = dt.Rows[i][6].ToString();
                        qrcode.printTime  = dt.Rows[i][7].ToString();
                        qrcode.netId      = dt.Rows[i][8].ToString();

                        qrcodes.Add(qrcode);
                    }

                    upload(qrcodes);
                }
                else
                {
                    MessageBox.Show("没有需要上传的溯源码");
                    return;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("未能连接数据库:" + ex.Message);
                return;
            }
        }
Exemple #12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Qrcode qr = new Qrcode();

            qr.Merchant_category_code = "5812";
            qr.Merchant_name          = "Halalah Grocery";
            qr.Merchant_city          = "Riyadh";
            qr.Postal_code            = "12345";
            qr.Merchant_name_ar       = "هللة";
            qr.Merchant_city_ar       = "الرياض";
            qr.Amount    = ".50";
            qr.Bill      = "1233111";
            qr.Reference = "Unique_Order_ID";
            qr.Terminal  = "HG00001";

            Response.Write(qr.output());
        }
Exemple #13
0
        public static List <string> RetornoNumero()
        {
            var lista = new List <string>();

            var gerarCupom = GerarCupomHelper.Gerar();

            var qrcode = Qrcode.GerarQRCodeBase64(gerarCupom);

            var qrcodeBase64 = qrcode;
            var foto         = Functions.GetRandomString() + ".jpg";

            UploadImagem.Decodificar(qrcode, foto, @"\wwwroot\imagens\cupom\", 400, 400);

            lista.Add(gerarCupom);
            lista.Add(foto);

            return(lista);
        }
Exemple #14
0
        private Qrcode ReadQRCode()
        {
            Qrcode barcodeModel  = new Qrcode();
            string barcodeText   = "";
            string imagePath     = "~/Images/QrCode.jpg";
            string barcodePath   = Server.MapPath(imagePath);
            var    barcodeReader = new BarcodeReader();
            //Decode the image to text
            var result = barcodeReader.Decode(new Bitmap(barcodePath));

            if (result != null)
            {
                barcodeText = result.Text;
            }
            return(new Qrcode()
            {
                QRCodeText = barcodeText, QRCodeImagePath = imagePath
            });
        }
Exemple #15
0
        public async Task ProcessSceneId(int sceneId, long userId, int tenantId)
        {
            using (CurrentUnitOfWork.SetTenantId(tenantId))
            {
                User user = UserRepository.Get(userId);

                if (user.ParentUserId.HasValue)
                {
                    return;
                }
                Qrcode qrcode = QrcodeRepository.GetAll().Where(model => model.SceneId == sceneId).FirstOrDefault();

                if (qrcode != null)
                {
                    User parentUser = await UserRepository.GetAsync(qrcode.UserId);

                    await _userManager.BindParent(user, parentUser);
                }
            }
        }
Exemple #16
0
    public override int GetHashCode()
    {
        int hashcode = 157;

        unchecked {
            if (__isset.qrcode)
            {
                hashcode = (hashcode * 397) + Qrcode.GetHashCode();
            }
            if (__isset.verifier)
            {
                hashcode = (hashcode * 397) + Verifier.GetHashCode();
            }
            if (__isset.callbackUrl)
            {
                hashcode = (hashcode * 397) + CallbackUrl.GetHashCode();
            }
        }
        return(hashcode);
    }
Exemple #17
0
        public void Getqrcode_img_url(string orderid, decimal orderAmt, string bankcode)
        {
            var info = OrderBankCodePay.Instance.GetModel(orderid);

            if (info == null)
            {
                var api = new Qrcode();
                qrcode_img_url = api.Getqrcode_img_url(orderid, orderAmt, bankcode);
                if (string.IsNullOrEmpty(qrcode_img_url))
                {
                    Response.Write("error 1");
                    Response.End();
                }
                info = new viviapi.Model.Order.Bank.OrderBankCodePay
                {
                    addTime    = DateTime.Now,
                    channel    = 101,
                    codeImgUrl = qrcode_img_url,
                    sysOrderNo = orderid,
                    updateTime = DateTime.Now
                };
                int infoId = OrderBankCodePay.Instance.Add(info);
                if (infoId <= 0)
                {
                    Response.Write("error 2");
                    Response.End();
                }
            }
            else
            {
                qrcode_img_url = info.codeImgUrl;
            }

            if (!string.IsNullOrEmpty(qrcode_img_url))
            {
            }
            //litimg.Text = string.Format("<img src='{0}' />", qrcode_img_url);
        }
Exemple #18
0
    public override string ToString()
    {
        var  sb      = new StringBuilder("AuthQrcode(");
        bool __first = true;

        if (Qrcode != null && __isset.qrcode)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("Qrcode: ");
            Qrcode.ToString(sb);
        }
        if (Verifier != null && __isset.verifier)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("Verifier: ");
            Verifier.ToString(sb);
        }
        if (CallbackUrl != null && __isset.callbackUrl)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("CallbackUrl: ");
            CallbackUrl.ToString(sb);
        }
        sb.Append(")");
        return(sb.ToString());
    }
Exemple #19
0
        public async Task <string> CreateSpreadPosterAsync(SpreadPosterTemplate spreadPosterTemplate, UserIdentifier userIdentifier)
        {
            string path = GetSpreadPosterPathOfUser(spreadPosterTemplate.Id, userIdentifier);

            using (CurrentUnitOfWork.SetTenantId(userIdentifier.TenantId))
            {
                User   user = UserRepository.Get(userIdentifier.UserId);
                string serverPathOfSource = PathHelper.GetAbsolutePath(spreadPosterTemplate.Template);
                Image  imgSrc             = Image.FromFile(serverPathOfSource);

                foreach (SpreadPosterTemplateParameter parameter in spreadPosterTemplate.Parameters)
                {
                    if (parameter.Type == SpreadPosterTemplateParameterType.Picture)
                    {
                        Image image;

                        if (parameter.Name.ToLower() == "qrcode")
                        {
                            Qrcode qrcode = await QrcodeManager.GetQrcodeAsync(userIdentifier, false);

                            image = Image.FromFile(PathHelper.GetAbsolutePath(qrcode.Path));
                        }
                        else if (parameter.Name.ToLower() == "avatar")
                        {
                            if (user.Avatar.IndexOf("http://") >= 0)
                            {
                                System.Net.WebRequest  webRequest  = System.Net.WebRequest.Create(user.Avatar);
                                System.Net.WebResponse webResponse = webRequest.GetResponse();

                                using (Stream stream = webResponse.GetResponseStream())
                                {
                                    image = Image.FromStream(stream);
                                }
                            }
                            else
                            {
                                image = Image.FromFile(PathHelper.GetAbsolutePath(user.Avatar));
                            }
                        }
                        else
                        {
                            image = Image.FromFile(PathHelper.GetAbsolutePath(parameter.Value));
                        }
                        using (Graphics graphics = Graphics.FromImage(imgSrc))
                        {
                            graphics.DrawImage(image, new Rectangle(parameter.Coordinate.StartX,
                                                                    parameter.Coordinate.StartY,
                                                                    parameter.Coordinate.Width,
                                                                    parameter.Coordinate.Height),
                                               0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
                        }
                    }
                    else
                    {
                        using (Graphics graphics = Graphics.FromImage(imgSrc))
                        {
                            graphics.DrawImage(imgSrc, 0, 0, imgSrc.Width, imgSrc.Height);
                            string fontFamly = String.IsNullOrEmpty(parameter.FontStyle.FontFamly) ? "SimHei" : parameter.FontStyle.FontFamly;

                            using (Font font = new Font(fontFamly, parameter.FontStyle.Size))
                            {
                                Color color = ColorHelper.colorHx16toRGB(parameter.FontStyle.Color);

                                using (Brush brush = new SolidBrush(color))
                                {
                                    string text = parameter.Value;

                                    if (parameter.Name == "name")
                                    {
                                        text = user.NickName;
                                    }
                                    graphics.DrawString(text, font, brush, parameter.Coordinate.StartX, parameter.Coordinate.StartY);
                                }
                            }
                        }
                    }
                }
                string serverPath = PathHelper.GetAbsolutePath(path);
                imgSrc.Save(serverPath, System.Drawing.Imaging.ImageFormat.Jpeg);
                return(path);
            }
        }
Exemple #20
0
        private void btnPrint_Click(object sender, EventArgs e)
        {
            //MessageBox.Show("1");
            string copSign = baseConfig.companyCode; //公司标识

            string tempSign = "temp";                //临时标记

            string enter = System.Environment.NewLine;
            //获取品名,可能是一个包装里面多种产品
            //string name = cbxName.SelectedItem.ToString();
            string name = "";

            /*
             * for(int i = 0; i < productCount; i++){
             *  CheckBox chkBox = (CheckBox)panelProducts.Controls[i];
             *  if (chkBox.Checked == true)
             *  {
             *      name += (chkBox.Text + "  ");
             *  }
             * }
             */

            for (int i = 0; i < productCount; i++)
            {
                RadioButton radio = (RadioButton)panelProducts.Controls[i];
                if (radio.Checked == true)
                {
                    name += (radio.Text + "  ");
                    pid   = pids[i];
                }
            }

            if (name.Trim().Length == 0)
            {
                MessageBox.Show("请选择产品!");
                return;
            }

            string no = tbxNo.Text;

            /*
             * if (no.Trim().Length == 0)
             * {
             *  MessageBox.Show("请填写编号(编号与检测编号一致)!");
             *  return;
             * }
             */
            string time = dtpPickTime.Text;

            string source     = cbxSource.SelectedItem.ToString();
            string address    = cbxAddress.SelectedItem.ToString();
            string detectTime = dtpDetectTime.Text + " " + DateTime.Now.ToString("HH:mm");;
            string nc         = "合格";
            string pic        = cbxPIC.SelectedItem.ToString();

            int count = int.Parse(tbxLabelNum.Text);

            if (count > maxPrintNum)
            {
                MessageBox.Show("本次打印的标签数超过了一次最多打印数量!");
                return;
            }

            //return;

            /* netid 总体操作步骤:
             * 1. 存入本地数据库
             * 2. 打印
             * 3. 上传
             * 理由:
             *  netid 已存而纸未打:可以接受,下次再打不影响;
             *  标签已打,netid未存,则标签无效,被浪费,不可接受;
             *  netid 已存,标签已打,而未上传,可以接受,可事后再传;
             */

            try
            {
                //同时存入数据库,最后一个字段不能用NO,在C#中可能是保留字,报错,因此改为T_NO
                string printTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");        // 2008-09-04
                string sql       = "insert into QRCODE (NAME, PICK_TIME, SOURCE, PIC, DETECT_TIME, NC, PRINT_TIME, NET_ID, T_NO, PRODUCT_ID, ADDRESS)" +
                                   " values(\"" + name +
                                   "\",\"" + time +
                                   "\",\"" + source +
                                   "\",\"" + pic +
                                   "\",\"" + detectTime +
                                   "\",\"" + nc +
                                   "\",\"" + printTime +
                                   "\",\"" + tempSign +
                                   "\",\"" + no +
                                   "\",\"" + pid +
                                   "\",\"" + address + "\")";

                OleDbCommand cmd;

                for (int i = 0; i < count; i++)
                {
                    tempSign = (i == 0 ? "temp" : "temp" + i);
                    sql      = sql.Replace(tempSign, "temp" + (i + 1));
                    cmd      = new OleDbCommand(sql, mycon);
                    // MessageBox.Show(sql);
                    cmd.ExecuteNonQuery();
                    cmd.Dispose();
                }

                string currentTime = DateTime.Now.ToString("yyMMddHHmmss");
                string traceSign   = baseConfig.companyCode + baseConfig.workstationNo + currentTime; //用来替换temp的公司与时间标记

                sql = "update qrcode set net_id =  '" + traceSign + "' & right( net_id, ( len(net_id) - 4 ))   where net_id like '%temp%';";
                cmd = new OleDbCommand(sql, mycon);
                cmd.ExecuteNonQuery();
                cmd.Dispose();

                //同时上传到平台
                sql = "select top " + count + " * from qrcode order by id desc";
                cmd = new OleDbCommand(sql, mycon);
                OleDbDataReader dataReader = cmd.ExecuteReader();
                DataSet         dateset    = new DataSet();
                DataTable       dt         = new DataTable();
                dt.Load(dataReader);

                //打印
                //根据配置文件设定若干打印参数(Qx:二维码x起始点; Qy:二维码y起始点; Qwidth:二维码大小; Tx:溯源码x起始点; Ty:溯源码y起始点;)
                Hashtable ht = new Hashtable();
                if (StringUtil.isEmpty(labelSize))
                {
                    MessageBox.Show("未设置标签规格,无法打印"); return;
                }
                if (labelSize.Equals("5CM * 4CM")) //慧康默认形式
                {
                    ht.Add("Qx", "25");
                    ht.Add("Qy", "20");
                    ht.Add("Qwidth", "5");
                    ht.Add("Tx", "25");
                    ht.Add("Ty", "240");
                }

                if (labelSize.Equals("5CM * 4CM YB")) //一标公司的形式,两个二维码
                {
                    ht.Add("Q1x", "45");
                    ht.Add("Q1y", "40");
                    ht.Add("Q1width", "5");

                    ht.Add("Tsy1x", "240");  //"一标 x"
                    ht.Add("Tsy1y", "40");   //"一标 y"

                    ht.Add("Tsy2x", "240");  //"溯源 x"
                    ht.Add("Tsy2y", "135");  //"溯源 y"

                    ht.Add("Tnetidx", "45"); //溯源码
                    ht.Add("Tnetidy", "240");

                    ht.Add("Tnamex", "45"); //品名
                    ht.Add("Tnamey", "270");
                }

                if (labelSize.Equals("2.5CM * 1.5CM YB")) //一标公司的形式,小尺寸标签
                {
                    ht.Add("Q1x", "20");
                    ht.Add("Q1y", "5");
                    ht.Add("Q1width", "2");

                    ht.Add("Q2x", "120");
                    ht.Add("Q2y", "5");
                    ht.Add("Q2width", "2");

                    ht.Add("TL1x", "90");  //"溯 x"
                    ht.Add("TL1y", "10");  //"溯 y"
                    ht.Add("TL2x", "90");  //"源 x"
                    ht.Add("TL2y", "40");  //"源 y"

                    ht.Add("TR1x", "182"); //"一 x"
                    ht.Add("TR1y", "10");  //"一 y"
                    ht.Add("TR2x", "182"); //"标 x"
                    ht.Add("TR2y", "40");  //"标 y"

                    ht.Add("Px", "20");    //"品名 x"
                    ht.Add("Py", "75");    //"品名 y"

                    ht.Add("Tx", "20");
                    ht.Add("Ty", "105");
                }

                if (labelSize.Equals("6CM * 9CM")) //慧康默认形式
                {
                    ht.Add("Qx", "100");           //二维码X
                    ht.Add("Qy", "150");           //二维码y
                    ht.Add("Qwidth", "7");         //二维码大小
                    ht.Add("I1x", "40");           //出产日期x
                    ht.Add("I1y", "470");          //出产日期y
                    ht.Add("I2x", "40");           //来源x
                    ht.Add("I2y", "500");          //来源y
                    ht.Add("T1x", "32");           //溯源码文字x
                    ht.Add("T1y", "596");          //溯源码文字y
                    ht.Add("T2x", "120");          //溯源码x
                    ht.Add("T2y", "596");          //溯源码y
                }

                if (labelSize.Equals("6CM * 9CM YB")) //慧康默认形式
                {
                    ht.Add("TLx", "65");              //"食安溯源 x"
                    ht.Add("TLy", "165");             //"食安溯源 y"
                    ht.Add("TRx", "285");             //"一标企业 x"
                    ht.Add("TRy", "165");             //"一标企业 y"

                    ht.Add("Q1x", "25");
                    ht.Add("Q1y", "220");
                    ht.Add("Q1width", "5");
                    ht.Add("Q2x", "245");
                    ht.Add("Q2y", "220");
                    ht.Add("Q2width", "5");

                    ht.Add("I1x", "40");  //出产日期x
                    ht.Add("I1y", "470"); //出产日期y
                    ht.Add("I2x", "40");  //来源x
                    ht.Add("I2y", "500"); //来源y
                    ht.Add("T1x", "32");  //溯源码文字x
                    ht.Add("T1y", "596"); //溯源码文字y
                    ht.Add("T2x", "120"); //溯源码x
                    ht.Add("T2y", "596"); //溯源码y
                }



                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    Qrcode qrcode = new Qrcode();
                    qrcode.pickTime = dt.Rows[i][2].ToString();
                    qrcode.source   = dt.Rows[i][3].ToString();
                    qrcode.netId    = dt.Rows[i][8].ToString(); //因为打印的url只需要netId这个字段

                    //先打印(打印是必须保证成功的,上传可以报错,catch掉即可)
                    try
                    {
                        string order = "";
                        // 5*4的指令 慧康默认形式
                        if (labelSize.Equals("5CM * 4CM"))
                        {
                            order =
                                "SIZE 50 mm, 40 mm" + enter +
                                "GAP 3 mm, 0" + enter +
                                "DIRECTION 0,0" + enter + //方向视情况而定
                                "CLS" + enter +
                                "DENSITY 10" + enter +
                                "QRCODE " + (string)ht["Qx"] + "," + (string)ht["Qy"] + ",H," + (string)ht["Qwidth"] + ",A,0, \"" + baseConfig.traceUrl + qrcode.netId + "\"" + enter +

                                "TEXT " + (string)ht["Tx"] + "," + (string)ht["Ty"] + ",\"3\",0,1,1,\"" + qrcode.netId + "\"" + enter +

                                "PRINT 1,1" + enter;
                        }

                        // 5*4的指令 一标公司形式
                        if (labelSize.Equals("5CM * 4CM YB"))
                        {
                            string ybUrl = "http://trace.victtec.com/trace/yb/t.htm?pid=" + pid;
                            string sy1 = "一 标", sy2 = "溯 源";
                            string product = "品名: " + name;

                            order =
                                "SIZE 50 mm, 40 mm" + enter +
                                "GAP 3 mm, 0" + enter +
                                "DIRECTION 0,0" + enter + //方向视情况而定
                                "CLS" + enter +
                                "DENSITY 10" + enter +
                                "QRCODE " + (string)ht["Q1x"] + "," + (string)ht["Q1y"] + ",H," + (string)ht["Q1width"] + ",A,0, \"" + baseConfig.traceUrl + qrcode.netId + "\"" + enter +
                                //"QRCODE " + (string)ht["Q2x"] + "," + (string)ht["Q2y"] + ",H," + (string)ht["Q2width"] + ",A,0, \"" + ybUrl + "\"" + enter +

                                "TEXT " + (string)ht["Tsy1x"] + "," + (string)ht["Tsy1y"] + ",\"TSS24.BF2\",0,2,3,\"" + sy1 + "\"" + enter +
                                "TEXT " + (string)ht["Tsy2x"] + "," + (string)ht["Tsy2y"] + ",\"TSS24.BF2\",0,2,3,\"" + sy2 + "\"" + enter +

                                "TEXT " + (string)ht["Tnetidx"] + "," + (string)ht["Tnetidy"] + ",\"3\",0,1,1,\"" + qrcode.netId + "\"" + enter +

                                //"TEXT " + (string)ht["Telx"] + "," + (string)ht["Tely"] + ",\"TSS24.BF2\",0,1,1,\"" + tel + "\"" + enter +
                                "TEXT " + (string)ht["Tnamex"] + "," + (string)ht["Tnamey"] + ",\"TSS24.BF2\",0,1,1,\"" + product + "\"" + enter +

                                "PRINT 1,1" + enter;
                        }

                        // 2.5*2的指令 一标公司形式 小尺寸标签
                        if (labelSize.Equals("2.5CM * 1.5CM YB"))
                        {
                            string ybUrl = "http://trace.victtec.com/trace/yb/t.htm?pid=" + pid;
                            string tLeft1 = "溯", tLeft2 = "源";
                            string tRight1 = "一", tRight2 = "标";
                            string product = name;

                            order =
                                "SIZE 25 mm, 15 mm" + enter +
                                "GAP 2 mm, 0" + enter +
                                "DIRECTION 0,0" + enter + //方向视情况而定
                                "CLS" + enter +
                                "DENSITY 10" + enter +
                                "QRCODE " + (string)ht["Q1x"] + "," + (string)ht["Q1y"] + ",H," + (string)ht["Q1width"] + ",A,0, \"" + baseConfig.traceUrl + qrcode.netId + "\"" + enter +
                                "QRCODE " + (string)ht["Q2x"] + "," + (string)ht["Q2y"] + ",H," + (string)ht["Q2width"] + ",A,0, \"" + ybUrl + "\"" + enter +

                                "TEXT " + (string)ht["TL1x"] + "," + (string)ht["TL1y"] + ",\"TSS24.BF2\",0,1,1,\"" + tLeft1 + "\"" + enter +
                                "TEXT " + (string)ht["TL2x"] + "," + (string)ht["TL2y"] + ",\"TSS24.BF2\",0,1,1,\"" + tLeft2 + "\"" + enter +

                                "TEXT " + (string)ht["TR1x"] + "," + (string)ht["TR1y"] + ",\"TSS24.BF2\",0,1,1,\"" + tRight1 + "\"" + enter +
                                "TEXT " + (string)ht["TR2x"] + "," + (string)ht["TR2y"] + ",\"TSS24.BF2\",0,1,1,\"" + tRight2 + "\"" + enter +

                                //"TEXT " + (string)ht["TRx"] + "," + (string)ht["TRy"] + ",\"TSS24.BF2\",0,1,1,\"" + tRight + "\"" + enter +

                                "TEXT " + (string)ht["Px"] + "," + (string)ht["Py"] + ",\"TSS24.BF2\",0,1,1,\"" + product + "\"" + enter +

                                "TEXT " + (string)ht["Tx"] + "," + (string)ht["Ty"] + ",\"1\",0,1,1,\"" + qrcode.netId + "\"" + enter +

                                //"TEXT " + (string)ht["Telx"] + "," + (string)ht["Tely"] + ",\"TSS24.BF2\",0,1,1,\"" + tel + "\"" + enter +
                                //  "TEXT " + (string)ht["Telx"] + "," + (string)ht["Tely"] + ",\"TSS24.BF2\",0,1,1,\"" + product + "\"" + enter +

                                "PRINT 1,1" + enter;
                        }

                        // 6*9的指令 慧康默认形式
                        if (labelSize.Equals("6CM * 9CM"))
                        {
                            order =
                                "SIZE 60 mm, 90 mm" + enter +
                                "GAP 3 mm, 0" + enter +
                                "DIRECTION 1,0" + enter +
                                "CLS" + enter +
                                "DENSITY 10" + enter +
                                "QRCODE " + (string)ht["Qx"] + "," + (string)ht["Qy"] + ",H," + (string)ht["Qwidth"] + ",A,0, \"" + baseConfig.traceUrl + qrcode.netId + "\"" + enter +

                                "TEXT " + (string)ht["I1x"] + "," + (string)ht["I1y"] + ",\"TSS24.BF2\",0,1,1,\"出产日期:" + qrcode.pickTime + "\"" + enter +
                                "TEXT " + (string)ht["I2x"] + "," + (string)ht["I2y"] + ",\"TSS24.BF2\",0,1,1,\"产品来源:" + qrcode.source + "\"" + enter +

                                "TEXT " + (string)ht["T1x"] + "," + (string)ht["T1y"] + ",\"TSS24.BF2\",0,1,1,\"溯源码:\"" + enter +
                                "TEXT " + (string)ht["T2x"] + "," + (string)ht["T2y"] + ",\"3\",0,1,1,\"" + qrcode.netId + "\"" + enter +

                                "PRINT 1,1" + enter;
                        }

                        // 6*9的指令 慧康默认形式
                        if (labelSize.Equals("6CM * 9CM YB"))
                        {
                            string ybUrl  = "http://trace.victtec.com/trace/yb/t.htm?pid=" + pid;
                            string tLeft  = "食 安 溯 源";
                            string tRight = "一 标 企 业";

                            order =
                                "SIZE 60 mm, 90 mm" + enter +
                                "GAP 3 mm, 0" + enter +
                                "DIRECTION 1,0" + enter +
                                "CLS" + enter +
                                "DENSITY 10" + enter +

                                "QRCODE " + (string)ht["Q1x"] + "," + (string)ht["Q1y"] + ",H," + (string)ht["Q1width"] + ",A,0, \"" + baseConfig.traceUrl + qrcode.netId + "\"" + enter +
                                "QRCODE " + (string)ht["Q2x"] + "," + (string)ht["Q2y"] + ",H," + (string)ht["Q2width"] + ",A,0, \"" + ybUrl + "\"" + enter +

                                "TEXT " + (string)ht["TLx"] + "," + (string)ht["TLy"] + ",\"TSS24.BF2\",0,1,2,\"" + tLeft + "\"" + enter +
                                "TEXT " + (string)ht["TRx"] + "," + (string)ht["TRy"] + ",\"TSS24.BF2\",0,1,2,\"" + tRight + "\"" + enter +


                                "TEXT " + (string)ht["I1x"] + "," + (string)ht["I1y"] + ",\"TSS24.BF2\",0,1,1,\"出产日期:" + qrcode.pickTime + "\"" + enter +
                                "TEXT " + (string)ht["I2x"] + "," + (string)ht["I2y"] + ",\"TSS24.BF2\",0,1,1,\"产品来源:" + qrcode.source + "\"" + enter +

                                "TEXT " + (string)ht["T1x"] + "," + (string)ht["T1y"] + ",\"TSS24.BF2\",0,1,1,\"溯源码:\"" + enter +
                                "TEXT " + (string)ht["T2x"] + "," + (string)ht["T2y"] + ",\"3\",0,1,1,\"" + qrcode.netId + "\"" + enter +

                                "PRINT 1,1" + enter;
                        }



                        serialPort1.Open();
                        serialPort1.Write(order);
                        Thread.Sleep(100); //此处必须停顿,否则,实测除了最后一次的循环外,前面循环的最后一句都打不出来
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("打印出错!" + ex.Message);
                        return;
                    }
                    finally
                    {
                        serialPort1.Close();
                    }
                }

                //为保险起见,打印与上传两个操作先分开
                ArrayList qrcodes = new ArrayList();
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    Qrcode qrcode = new Qrcode();
                    qrcode.name       = dt.Rows[i][1].ToString();
                    qrcode.pickTime   = dt.Rows[i][2].ToString();
                    qrcode.source     = dt.Rows[i][3].ToString();
                    qrcode.pic        = dt.Rows[i][4].ToString();
                    qrcode.detectTime = dt.Rows[i][5].ToString();
                    qrcode.nc         = dt.Rows[i][6].ToString();
                    qrcode.printTime  = dt.Rows[i][7].ToString();
                    qrcode.netId      = dt.Rows[i][8].ToString();
                    qrcode.no         = dt.Rows[i][10].ToString();
                    qrcode.productId  = dt.Rows[i][11].ToString();
                    qrcode.address    = dt.Rows[i][12].ToString();
                    //MessageBox.Show(qrcode.no);
                    qrcodes.Add(qrcode);
                }

                upload(qrcodes);
                uploadOkNum = 0; //归零,准备下一次计数
            }
            catch (Exception ex) {
                labelUploadResult.Text = "上传出错," + ex.Message;
            }
        }
Exemple #21
0
        public async Task <string> GetQrcode()
        {
            Qrcode qrcode = await QrcodeManager.GetQrcodeAsync(InfrastructureSession.ToUserIdentifier());

            return(qrcode.Path);
        }