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 "";
|
|
}
|
|
}
|
|
} |