367 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			367 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| using System.Linq;
 | |
| using System.Drawing;
 | |
| using ThoughtWorks.QRCode.Codec;
 | |
| using ThoughtWorks.QRCode.Codec.Data;
 | |
| using System.Text;
 | |
| using System.IO;
 | |
| using BLL;
 | |
| 
 | |
| namespace FineUIPro.Web.HJGL.PersonManage
 | |
| {
 | |
|     public partial class WelderManageEdit : PageBase
 | |
|     {
 | |
|         #region 定义变量
 | |
|         /// <summary>
 | |
|         /// 照片附件路径
 | |
|         /// </summary>
 | |
|         public string PhotoAttachUrl
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return (string)ViewState["PhotoAttachUrl"];
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 ViewState["PhotoAttachUrl"] = value;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 二维码路径id
 | |
|         /// </summary>
 | |
|         public string QRCodeAttachUrl
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return (string)ViewState["QRCodeAttachUrl"];
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 ViewState["QRCodeAttachUrl"] = value;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region 加载
 | |
|         /// <summary>
 | |
|         /// 加载页面
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void Page_Load(object sender, EventArgs e)
 | |
|         {
 | |
|             if (!IsPostBack)
 | |
|             {
 | |
|                 this.btnClose.OnClientClick = ActiveWindow.GetHideReference();
 | |
| 
 | |
|                 //BLL.Base_ProjectTypeService.InitProjectTypeDropDownList(this.drpPojectType, true, "请选择");//项目类型
 | |
|                 BLL.UnitService.InitUnitByProjectIdUnitTypeDropDownList(drpUnitId, this.CurrUser.LoginProjectId, Const.ProjectUnitType_2, true);
 | |
| 
 | |
|                 string PersonId = Request.Params["PersonId"];
 | |
|                 if (!string.IsNullOrEmpty(PersonId))
 | |
|                 {
 | |
|                     Model.SitePerson_Person welder = BLL.WelderService.GetWelderById(PersonId);
 | |
|                     if (welder != null)
 | |
|                     {
 | |
|                         this.txtWelderCode.Text = welder.WelderCode;
 | |
|                         this.txtWelderName.Text = welder.PersonName;
 | |
| 
 | |
|                         if (!string.IsNullOrEmpty(welder.UnitId))
 | |
|                         {
 | |
|                             this.drpUnitId.SelectedValue = welder.UnitId;
 | |
|                         }
 | |
|                         this.rblSex.SelectedValue = welder.Sex;
 | |
| 
 | |
|                         if (welder.Birthday.HasValue)
 | |
|                         {
 | |
|                             this.txtBirthday.Text = string.Format("{0:yyyy-MM-dd}", welder.Birthday);
 | |
|                         }
 | |
|                         this.txtIdentityCard.Text = welder.IdentityCard;
 | |
|                         this.txtCertificateCode.Text = welder.CertificateCode;
 | |
|                         if (string.IsNullOrEmpty(welder.CertificateCode))
 | |
|                         {
 | |
|                             this.txtCertificateCode.Text = welder.IdentityCard;
 | |
|                         }
 | |
|                         if (welder.CertificateLimitTime.HasValue)
 | |
|                         {
 | |
|                             this.txtCertificateLimitTime.Text = string.Format("{0:yyyy-MM-dd}", welder.CertificateLimitTime);
 | |
|                         }
 | |
|                         this.txtWelderLevel.Text = welder.WelderLevel;
 | |
|                         if (welder.IsUsed == true)
 | |
|                         {
 | |
|                             cbIsOnDuty.Checked = true;
 | |
|                         }
 | |
|                         else
 | |
|                         {
 | |
|                             cbIsOnDuty.Checked = false;
 | |
|                         }
 | |
|                         this.txtRemark.Text = welder.Remark;
 | |
|                         if (!string.IsNullOrEmpty(welder.PhotoUrl))
 | |
|                         {
 | |
|                             this.PhotoAttachUrl = welder.PhotoUrl;
 | |
|                             this.Image1.ImageUrl = "~/" + this.PhotoAttachUrl;
 | |
|                         }
 | |
|                         if (!string.IsNullOrEmpty(welder.QRCodeAttachUrl))
 | |
|                         {
 | |
|                             this.QRCodeAttachUrl = welder.QRCodeAttachUrl;
 | |
|                             this.btnSee.Hidden = false;
 | |
|                             this.btnQR.Hidden = false;
 | |
|                             this.btnQR.Text = "二维码重新生成";
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     this.cbIsOnDuty.Checked = true;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 保存
 | |
|         /// <summary>
 | |
|         /// 保存按钮
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void btnSave_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             string PersonId = Request.Params["PersonId"];
 | |
|             var q = Funs.DB.SitePerson_Person.FirstOrDefault(x => x.WelderCode == this.txtWelderCode.Text.Trim()
 | |
|            && (x.PersonId != PersonId || (PersonId == null && PersonId != null)));
 | |
|             if (q != null)
 | |
|             {
 | |
|                 Alert.ShowInTop("焊工号已经存在!", MessageBoxIcon.Warning);
 | |
|                 return;
 | |
|             }
 | |
|             if (this.drpUnitId.SelectedValue == BLL.Const._Null)
 | |
|             {
 | |
|                 Alert.ShowInTop("选择单位", MessageBoxIcon.Warning);
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             PersonId = SaveData(PersonId);
 | |
|             ShowNotify("保存成功!", MessageBoxIcon.Success);
 | |
|             PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
 | |
|         }
 | |
| 
 | |
|         private string SaveData(string PersonId)
 | |
|         {
 | |
|             Model.SitePerson_Person newWelder = new Model.SitePerson_Person();
 | |
|             newWelder.ProjectId = this.CurrUser.LoginProjectId;
 | |
|             newWelder.WelderCode = this.txtWelderCode.Text.Trim();
 | |
|             newWelder.PersonName = this.txtWelderName.Text.Trim();
 | |
|             newWelder.WorkPostId = Const.WorkPost_Welder;
 | |
|             if (this.drpUnitId.SelectedValue != BLL.Const._Null)
 | |
|             {
 | |
|                 newWelder.UnitId = this.drpUnitId.SelectedValue;
 | |
|             }
 | |
|             newWelder.Sex = this.rblSex.SelectedValue;
 | |
|             newWelder.Birthday = Funs.GetNewDateTime(this.txtBirthday.Text.Trim());
 | |
|             newWelder.IdentityCard = this.txtIdentityCard.Text.Trim();
 | |
|             newWelder.CertificateCode = this.txtCertificateCode.Text.Trim();
 | |
|             newWelder.CertificateLimitTime = Funs.GetNewDateTime(this.txtCertificateLimitTime.Text.Trim());
 | |
|             newWelder.WelderLevel = this.txtWelderLevel.Text.Trim();
 | |
|             if (this.cbIsOnDuty.Checked)
 | |
|             {
 | |
|                 newWelder.IsUsed = true;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 newWelder.IsUsed = false;
 | |
|             }
 | |
|             newWelder.Remark = this.txtRemark.Text.Trim();
 | |
|             newWelder.PhotoUrl = this.PhotoAttachUrl;
 | |
|             newWelder.Isprint = "0";
 | |
|             if (!string.IsNullOrEmpty(PersonId))
 | |
|             {
 | |
|                 if (!BLL.WelderService.IsExisWelderCode(PersonId, this.txtWelderCode.Text))
 | |
|                 {
 | |
|                     newWelder.PersonId = PersonId;
 | |
|                     BLL.WelderService.UpdateWelder(newWelder);
 | |
|                     //BLL.Sys_LogService.AddLog(Const.System_1, this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.WelderManageMenuId, Const.BtnModify, PersonId);
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     Alert.ShowInParent("焊工号已经存在!", MessageBoxIcon.Warning);
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 PersonId = SQLHelper.GetNewID(typeof(Model.SitePerson_Person));
 | |
|                 if (!BLL.WelderService.IsExisWelderCode(PersonId, this.txtWelderCode.Text))
 | |
|                 {
 | |
|                     newWelder.PersonId = PersonId;
 | |
|                 //    BLL.WelderService.AddWelder(newWelder);
 | |
|                     //BLL.Sys_LogService.AddLog(Const.System_1, this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.WelderManageMenuId, Const.BtnAdd, PersonId);
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     Alert.ShowInParent("焊工号已经存在!", MessageBoxIcon.Warning);
 | |
|                 }
 | |
|             }
 | |
|             return PersonId;
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         protected void drpUnitId_SelectedIndexChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             if (this.drpUnitId.SelectedValue != Const._Null)
 | |
|             {
 | |
|                 var u = BLL.UnitService.GetUnitByUnitId(drpUnitId.SelectedValue);
 | |
|                 string prefix = u.UnitCode + "-HG-";
 | |
|                 txtWelderCode.Text = BLL.SQLHelper.RunProcNewId("SpGetThreeNumber", "SitePerson_Person", "WelderCode", prefix);
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 
 | |
|         #region 附件上传
 | |
|         /// <summary>
 | |
|         /// 上传附件资源
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void btnAttachUrl_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             string edit = "0";
 | |
|             string PersonId = Request.Params["PersonId"];
 | |
|             if (string.IsNullOrEmpty(PersonId))
 | |
|             {
 | |
|                 SaveData(PersonId);
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 edit = "1";
 | |
|             }
 | |
|             PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/WelderManage&menuId={1}&edit={2}", PersonId, BLL.Const.WelderManageMenuId, edit)));
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 照片上传
 | |
|         /// <summary>
 | |
|         /// 上传照片
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void btnPhoto_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             if (filePhoto.HasFile)
 | |
|             {
 | |
|                 string fileName = filePhoto.ShortFileName;
 | |
| 
 | |
|                 if (!ValidateFileType(fileName))
 | |
|                 {
 | |
|                     ShowNotify("无效的文件类型", MessageBoxIcon.Warning);
 | |
|                     return;
 | |
|                 }
 | |
|                 this.PhotoAttachUrl = BLL.UploadFileService.UploadAttachment(BLL.Funs.RootPath, this.filePhoto, this.PhotoAttachUrl, Const.WelderFilePath);
 | |
|                 this.Image1.ImageUrl = "~/" + this.PhotoAttachUrl;
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         protected void btnQR_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             if (string.IsNullOrEmpty(this.txtWelderCode.Text.Trim()))
 | |
|             {
 | |
|                 Alert.ShowInTop("焊工证不能为空!", MessageBoxIcon.Warning);
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             this.CreateCode_Simple(this.txtWelderCode.Text.Trim());
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void btnSee_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             string url = string.Empty;
 | |
|             string PersonId = Request.Params["PersonId"];
 | |
|             Model.SitePerson_Person welder = BLL.WelderService.GetWelderById(PersonId);
 | |
| 
 | |
|             if (welder != null && !string.IsNullOrEmpty(welder.QRCodeAttachUrl))
 | |
|             {
 | |
|                 url = welder.QRCodeAttachUrl;
 | |
|                 PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("SeeQRImage.aspx?PersonId={0}", PersonId), "二维码查看", 400, 400));
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 Alert.ShowInTop("二维码不存在!", MessageBoxIcon.Warning);
 | |
|                 return;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         //生成二维码方法一
 | |
|         private void CreateCode_Simple(string nr)
 | |
|         {
 | |
|             string PersonId = Request.Params["PersonId"];
 | |
| 
 | |
|             Model.SitePerson_Person welder = BLL.WelderService.GetWelderById(PersonId);
 | |
|             if (welder != null)
 | |
|             {
 | |
|                 BLL.UploadFileService.DeleteFile(Funs.RootPath, welder.QRCodeAttachUrl);//删除二维码
 | |
|                 string imageUrl = string.Empty;
 | |
|                 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
 | |
|                 qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
 | |
|                 qrCodeEncoder.QRCodeScale = nr.Length;
 | |
|                 qrCodeEncoder.QRCodeVersion = 0;
 | |
|                 qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
 | |
|                 System.Drawing.Image image = qrCodeEncoder.Encode(nr, Encoding.UTF8);
 | |
| 
 | |
|                 string filepath = Server.MapPath("~/") + BLL.UploadFileService.QRCodeImageFilePath;
 | |
| 
 | |
|                 //如果文件夹不存在,则创建
 | |
|                 if (!Directory.Exists(filepath))
 | |
|                 {
 | |
|                     Directory.CreateDirectory(filepath);
 | |
|                 }
 | |
| 
 | |
|                 string filename = DateTime.Now.ToString("yyyymmddhhmmssfff").ToString() + ".jpg";
 | |
|                 imageUrl = filepath + filename;
 | |
| 
 | |
|                 System.IO.FileStream fs = new System.IO.FileStream(imageUrl, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write);
 | |
|                 image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg);
 | |
| 
 | |
|                 fs.Close();
 | |
|                 image.Dispose();
 | |
|                 this.QRCodeAttachUrl = BLL.UploadFileService.QRCodeImageFilePath + filename;
 | |
| 
 | |
|                 BLL.WelderService.UpdateQRCode(PersonId, QRCodeAttachUrl);
 | |
|                 this.btnSee.Hidden = false;
 | |
|                 this.btnQR.Hidden = false;
 | |
|                 this.btnQR.Text = "二维码重新生成";
 | |
|                 PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("SeeQRImage.aspx?PersonId={0}", PersonId), "二维码查看", 400, 400));
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 Alert.ShowInTop("操作有误,重新生成!", MessageBoxIcon.Warning);
 | |
|             }
 | |
| 
 | |
|             //二维码解码
 | |
|             //var codeDecoder = CodeDecoder(filepath);
 | |
| 
 | |
|             //this.Image1.ImageUrl = "~/image/" + filename + ".jpg";
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 二维码解码
 | |
|         /// </summary>
 | |
|         /// <param name="filePath">图片路径</param>
 | |
|         /// <returns></returns>
 | |
|         public string CodeDecoder(string filePath)
 | |
|         {
 | |
|             //if (!System.IO.File.Exists(filePath))
 | |
|             //    return null;
 | |
|             //Bitmap myBitmap = new Bitmap(Image.FromFile(filePath));
 | |
|             //QRCodeDecoder decoder = new QRCodeDecoder();
 | |
|             //string decodedString = decoder.decode(new QRCodeBitmapImage(myBitmap));
 | |
|             //return decodedString;
 | |
|             return "";
 | |
|         }
 | |
|     }
 | |
| } |