278 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			278 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
| using BLL;
 | ||
| using System;
 | ||
| using System.IO;
 | ||
| using System.Linq;
 | ||
| using System.Text;
 | ||
| using System.Web.UI;
 | ||
| using ThoughtWorks.QRCode.Codec;
 | ||
| 
 | ||
| namespace FineUIPro.Web.Controls
 | ||
| {
 | ||
|     /// <summary>
 | ||
|     /// 
 | ||
|     /// </summary>
 | ||
|     public partial class SeeQRImage : Page
 | ||
|     {
 | ||
|         #region QRCodeAttachUrl
 | ||
|         /// <summary>
 | ||
|         /// 二维码路径id
 | ||
|         /// </summary>
 | ||
|         public string QRCodeAttachUrl
 | ||
|         {
 | ||
|             get
 | ||
|             {
 | ||
|                 return (string)ViewState["QRCodeAttachUrl"];
 | ||
|             }
 | ||
|             set
 | ||
|             {
 | ||
|                 ViewState["QRCodeAttachUrl"] = value;
 | ||
|             }
 | ||
|         }
 | ||
|         #endregion
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 加载页面
 | ||
|         /// </summary>
 | ||
|         /// <param name="sender"></param>
 | ||
|         /// <param name="e"></param>
 | ||
|         protected void Page_Load(object sender, EventArgs e)
 | ||
|         {
 | ||
|             if (!IsPostBack)
 | ||
|             {
 | ||
|                 this.ShowQRCode();
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         ///  二维码显示
 | ||
|         /// </summary>
 | ||
|         private void ShowQRCode()
 | ||
|         {
 | ||
|             if (!string.IsNullOrEmpty(Request.Params["PersonId"]))
 | ||
|             {
 | ||
|                 var person = Funs.DB.SitePerson_Person.FirstOrDefault(e => e.PersonId == Request.Params["PersonId"]); 
 | ||
|                 if (person != null)
 | ||
|                 {
 | ||
|                     if (!string.IsNullOrEmpty(person.QRCodeAttachUrl) && CreateQRCodeService.isHaveImage(person.QRCodeAttachUrl))
 | ||
|                     {
 | ||
|                         this.QRCodeAttachUrl = person.QRCodeAttachUrl;
 | ||
|                     }
 | ||
|                     else
 | ||
|                     {
 | ||
|                         this.CreateCode_Simple(Request.Params["strCode"]);
 | ||
|                         person.QRCodeAttachUrl = this.QRCodeAttachUrl;
 | ||
|                         Funs.DB.SubmitChanges();
 | ||
|                     }
 | ||
|                 }
 | ||
|             }
 | ||
|             else if (!string.IsNullOrEmpty(Request.Params["EquipmentQualityId"]))
 | ||
|             {
 | ||
|                 var equipmentQuality = Funs.DB.QualityAudit_EquipmentQuality.FirstOrDefault(e => e.EquipmentQualityId == Request.Params["EquipmentQualityId"]);
 | ||
|                 if (equipmentQuality != null)
 | ||
|                 {
 | ||
|                     if (!string.IsNullOrEmpty(equipmentQuality.QRCodeAttachUrl) && CreateQRCodeService.isHaveImage(equipmentQuality.QRCodeAttachUrl))
 | ||
|                     {
 | ||
|                         this.QRCodeAttachUrl = equipmentQuality.QRCodeAttachUrl;
 | ||
|                     }
 | ||
|                     else
 | ||
|                     {
 | ||
|                         this.CreateCode_Simple(Request.Params["strCode"]);
 | ||
|                         equipmentQuality.QRCodeAttachUrl = this.QRCodeAttachUrl;
 | ||
|                         Funs.DB.SubmitChanges();
 | ||
|                     }
 | ||
|                 }
 | ||
|             }
 | ||
|             else if (!string.IsNullOrEmpty(Request.Params["GeneralEquipmentQualityId"]))
 | ||
|             {
 | ||
|                 var generalEquipmentQuality = Funs.DB.QualityAudit_GeneralEquipmentQuality.FirstOrDefault(e => e.GeneralEquipmentQualityId == Request.Params["GeneralEquipmentQualityId"]);
 | ||
|                 if (generalEquipmentQuality != null)
 | ||
|                 {
 | ||
|                     if (!string.IsNullOrEmpty(generalEquipmentQuality.QRCodeAttachUrl) && CreateQRCodeService.isHaveImage(generalEquipmentQuality.QRCodeAttachUrl))
 | ||
|                     {
 | ||
|                         this.QRCodeAttachUrl = generalEquipmentQuality.QRCodeAttachUrl;
 | ||
|                     }
 | ||
|                     else
 | ||
|                     {
 | ||
|                         this.CreateCode_Simple(Request.Params["strCode"]);
 | ||
|                         generalEquipmentQuality.QRCodeAttachUrl = this.QRCodeAttachUrl;
 | ||
|                         Funs.DB.SubmitChanges();
 | ||
|                     }
 | ||
|                 }
 | ||
|             }
 | ||
|             else if (!string.IsNullOrEmpty(Request.Params["ConstructSolutionId"]))
 | ||
|             {
 | ||
|                 var constructSolution = Funs.DB.Solution_ConstructSolution.FirstOrDefault(e => e.ConstructSolutionId == Request.Params["ConstructSolutionId"]);
 | ||
|                 if (constructSolution != null)
 | ||
|                 {
 | ||
|                     if (!string.IsNullOrEmpty(constructSolution.QRCodeAttachUrl) && CreateQRCodeService.isHaveImage(constructSolution.QRCodeAttachUrl))
 | ||
|                     {
 | ||
|                         this.QRCodeAttachUrl = constructSolution.QRCodeAttachUrl;
 | ||
|                     }
 | ||
|                     else
 | ||
|                     {
 | ||
|                         this.CreateCode_Simple(Request.Params["strCode"]);
 | ||
|                         constructSolution.QRCodeAttachUrl = this.QRCodeAttachUrl;
 | ||
|                         Funs.DB.SubmitChanges();
 | ||
|                     }
 | ||
|                 }
 | ||
|             }
 | ||
|             else if (!string.IsNullOrEmpty(Request.Params["TrainingPlanId"]))
 | ||
|             {
 | ||
|                 var trainingPlan = Funs.DB.Training_Plan.FirstOrDefault(e => e.PlanId ==Request.Params["TrainingPlanId"]);
 | ||
|                 if (trainingPlan != null)
 | ||
|                 {
 | ||
|                     if (!string.IsNullOrEmpty(trainingPlan.QRCodeUrl) && CreateQRCodeService.isHaveImage(trainingPlan.QRCodeUrl))
 | ||
|                     {
 | ||
|                         this.QRCodeAttachUrl = trainingPlan.QRCodeUrl;
 | ||
|                     }
 | ||
|                     else
 | ||
|                     {
 | ||
|                         this.CreateCode_Simple(Request.Params["strCode"]);
 | ||
|                         trainingPlan.QRCodeUrl = this.QRCodeAttachUrl;
 | ||
|                         Funs.DB.SubmitChanges();
 | ||
|                     }
 | ||
|                 }
 | ||
|             }
 | ||
|             else if (!string.IsNullOrEmpty(Request.Params["TestPlanId"]))
 | ||
|             {
 | ||
|                 var testPlan = Funs.DB.Training_TestPlan.FirstOrDefault(e => e.TestPlanId == Request.Params["TestPlanId"]);
 | ||
|                 if (testPlan != null)
 | ||
|                 {
 | ||
|                     if (!string.IsNullOrEmpty(testPlan.QRCodeUrl) && CreateQRCodeService.isHaveImage(testPlan.QRCodeUrl))
 | ||
|                     {
 | ||
|                         this.QRCodeAttachUrl = testPlan.QRCodeUrl;
 | ||
|                     }
 | ||
|                     else
 | ||
|                     {
 | ||
|                         this.CreateCode_Simple(Request.Params["strCode"]);
 | ||
|                         testPlan.QRCodeUrl = this.QRCodeAttachUrl;
 | ||
|                         Funs.DB.SubmitChanges();
 | ||
|                     }
 | ||
|                 }
 | ||
|             }
 | ||
|             else if (!string.IsNullOrEmpty(Request.Params["ServerTestPlanId"]))
 | ||
|             {
 | ||
|                 var serverTestPlan = Funs.DB.Test_TestPlan.FirstOrDefault(e => e.TestPlanId == Request.Params["ServerTestPlanId"]);
 | ||
|                 if (serverTestPlan != null)
 | ||
|                 {
 | ||
|                     if (!string.IsNullOrEmpty(serverTestPlan.QRCodeUrl) && CreateQRCodeService.isHaveImage(serverTestPlan.QRCodeUrl))
 | ||
|                     {
 | ||
|                         this.QRCodeAttachUrl = serverTestPlan.QRCodeUrl;
 | ||
|                     }
 | ||
|                     else
 | ||
|                     {
 | ||
|                         this.CreateCode_Simple(Request.Params["strCode"]);
 | ||
|                         serverTestPlan.QRCodeUrl = this.QRCodeAttachUrl;
 | ||
|                         Funs.DB.SubmitChanges();
 | ||
|                     }
 | ||
|                 }
 | ||
|             }
 | ||
|             else if (!string.IsNullOrEmpty(Request.Params["TrainingId"]))
 | ||
|             {
 | ||
|                 var serverTestPlan = Funs.DB.EduTrain_TrainRecord.FirstOrDefault(e => e.TrainingId == Request.Params["TrainingId"]);
 | ||
|                 if (serverTestPlan != null)
 | ||
|                 {
 | ||
|                     if (!string.IsNullOrEmpty(serverTestPlan.QRCodeUrl) && CreateQRCodeService.isHaveImage(serverTestPlan.QRCodeUrl))
 | ||
|                     {
 | ||
|                         this.QRCodeAttachUrl = serverTestPlan.QRCodeUrl;
 | ||
|                     }
 | ||
|                     else
 | ||
|                     {
 | ||
|                         this.CreateCode_Simple(Request.Params["strCode"]);
 | ||
|                         serverTestPlan.QRCodeUrl = this.QRCodeAttachUrl;
 | ||
|                         Funs.DB.SubmitChanges();
 | ||
|                     }
 | ||
|                 }
 | ||
|             }
 | ||
| 
 | ||
|             this.Image1.ImageUrl = "~/" + this.QRCodeAttachUrl;            
 | ||
|         }
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 生成二维码方法一
 | ||
|         /// </summary>
 | ||
|         private void CreateCode_Simple(string nr)
 | ||
|         {
 | ||
|             try
 | ||
|             {
 | ||
|                 string imageUrl = string.Empty;
 | ||
|                 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder
 | ||
|                 {
 | ||
|                     QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE,
 | ||
|                     QRCodeScale = nr.Length,
 | ||
|                     QRCodeVersion = 0,
 | ||
|                     QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M
 | ||
|                 };
 | ||
|                 System.Drawing.Image image = qrCodeEncoder.Encode(nr, Encoding.UTF8);
 | ||
|                 string filepath = Server.MapPath("~/") + UploadFileService.QRCodeImageFilePath;
 | ||
|                 //如果文件夹不存在,则创建
 | ||
|                 if (!Directory.Exists(filepath))
 | ||
|                 {
 | ||
|                     Directory.CreateDirectory(filepath);
 | ||
|                 }
 | ||
|                 string filename = DateTime.Now.ToString("yyyymmddhhmmssfff").ToString() + ".jpg";
 | ||
|                 imageUrl = filepath + filename;
 | ||
|                 FileStream fs = new FileStream(imageUrl, FileMode.OpenOrCreate, FileAccess.Write);
 | ||
|                 image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg);
 | ||
|                 fs.Close();
 | ||
|                 image.Dispose();
 | ||
|                 this.QRCodeAttachUrl = UploadFileService.QRCodeImageFilePath + filename;
 | ||
|             }
 | ||
| #pragma warning disable CS0168 // 声明了变量“ex”,但从未使用过
 | ||
|             catch (Exception ex)
 | ||
| #pragma warning restore CS0168 // 声明了变量“ex”,但从未使用过
 | ||
|             {
 | ||
|                 Alert.ShowInTop("操作有误,重新生成!", MessageBoxIcon.Warning);
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 重新生成二维码
 | ||
|         /// </summary>
 | ||
|         /// <param name="sender"></param>
 | ||
|         /// <param name="e"></param>
 | ||
|         protected void btnReSave_Click(object sender, EventArgs e)
 | ||
|         {
 | ||
|             //UploadFileService.DeleteFile(Funs.RootPath, this.QRCodeAttachUrl);//删除二维码
 | ||
|             //this.QRCodeAttachUrl = string.Empty;
 | ||
|             this.ShowQRCode();
 | ||
|         }
 | ||
|    
 | ||
|         /// <summary>
 | ||
|         /// 打印
 | ||
|         /// </summary>
 | ||
|         /// <param name="sender"></param>
 | ||
|         /// <param name="e"></param>
 | ||
|         protected void btnPrint_Click(object sender, EventArgs e)
 | ||
|         {
 | ||
|             if (!string.IsNullOrEmpty(Request.Params["PersonId"]))
 | ||
|             {
 | ||
|                 PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("QRCodePrint.aspx?PersonId={0}", Request.Params["PersonId"], "打印 - ")));
 | ||
|             }
 | ||
|            else if (!string.IsNullOrEmpty(Request.Params["EquipmentQualityId"]))
 | ||
|             {
 | ||
|                 PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("QRCodePrint.aspx?EquipmentQualityId={0}", Request.Params["EquipmentQualityId"], "打印 - ")));
 | ||
|             }
 | ||
|             else if (!string.IsNullOrEmpty(Request.Params["GeneralEquipmentQualityId"]))
 | ||
|             {
 | ||
|                 PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("QRCodePrint.aspx?GeneralEquipmentQualityId={0}", Request.Params["GeneralEquipmentQualityId"], "打印 - ")));
 | ||
|             }
 | ||
|             else if(!string.IsNullOrEmpty(Request.Params["ConstructSolutionId"]))
 | ||
|             {
 | ||
|                 PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("QRCodePrint.aspx?ConstructSolutionId={0}", Request.Params["ConstructSolutionId"], "打印 - ")));
 | ||
|             }
 | ||
|             else if(!string.IsNullOrEmpty(Request.Params["TrainingPlanId"]))
 | ||
|             {
 | ||
|                 PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("QRCodePrint.aspx?TrainingPlanId={0}", Request.Params["TrainingPlanId"], "打印 - ")));
 | ||
|             }
 | ||
|             else if (!string.IsNullOrEmpty(Request.Params["TestPlanId"]))
 | ||
|             {
 | ||
|                 PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("QRCodePrint.aspx?TestPlanId={0}", Request.Params["TestPlanId"], "打印 - ")));
 | ||
|             }
 | ||
|             else if (!string.IsNullOrEmpty(Request.Params["ServerTestPlanId"]))
 | ||
|             {
 | ||
|                 PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("QRCodePrint.aspx?ServerTestPlanId={0}", Request.Params["ServerTestPlanId"], "打印 - ")));
 | ||
|             }
 | ||
|         }
 | ||
|     }
 | ||
| } |