using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using SuperMap.RealEstate.Utility;
using Running = SuperMap.RealEstate.Personnel.Running.Business;
using Business = SuperMap.RealEstate.Personnel.Storage.Business;
using HZQR.Common;
namespace SuperMap.RealEstate.Personnel.Handler
{
///
/// ModuleObject_ajax 的摘要说明
///
public class ModuleObject_ajax : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Request.ContentEncoding = Encoding.GetEncoding("UTF-8");
context.Response.ContentEncoding = Encoding.GetEncoding("UTF-8");
context.Response.Charset = "UTF-8";
try
{
string RetString = string.Empty;
HttpPostedFile file = context.Request.Files["Filedata"];
string Relation_id = context.Request.Form["RELATION_ID"].ToDecrypt();
string Operate_UserID = context.Request.Form["OPERATE_USERID"].ToDecrypt();
string Operate_User = context.Request.Form["OPERATE_USER"].ToDecrypt();
string Staff_id = context.Request.Form["STAFF_ID"].ToDecrypt();
string uploadtype = context.Request.Form["uploadtype"];
if (Relation_id == "") return;
string uploadPath = HttpContext.Current.Server.MapPath("~/UploadImageDir/CompactFile/Personnel") + "\\";
string ExtraString = System.DateTime.Now.ToString("yyyyMMddHHmmss");
string extension = Path.GetExtension(file.FileName).ToLower();
string filename = Path.GetFileName(file.FileName).Replace(extension, "");
SuperMap.RealEstate.ServiceModel.Transaction _Transaction = new SuperMap.RealEstate.ServiceModel.Transaction();
if (file != null)
{
ImageObject _ImageObject = new ImageObject();
if (!Directory.Exists(uploadPath))
{
Directory.CreateDirectory(uploadPath);
}
file.SaveAs(uploadPath + filename + ExtraString + extension);
if (uploadtype == "upload_files")
{
using (Business.ATTACHMENT _ATTACHMENT = new Business.ATTACHMENT(_Transaction))
{
_ATTACHMENT.RELATION_ID = int.Parse(Relation_id);
_ATTACHMENT.RELATION_TABLE = "PERSONNEL_STORAGE.T_POSITION";
_ATTACHMENT.STAFF_ID = int.Parse(Staff_id);
_ATTACHMENT.ATTACHMENT_PATH = "Personnel/" + filename + ExtraString + extension;
_ATTACHMENT.ATTACHMENT_DESC = filename + extension;
_ATTACHMENT.ATTACHMENT_UPDATEDATE = DateTime.Now;
_ATTACHMENT.OPERATE_DATE = DateTime.Now;
_ATTACHMENT.Insert();
RetString = "{\"imageid\" : \"" + _ATTACHMENT.ATTACHMENT_ID_Encrypt +
"\", \"imagename\" : \"" + _ATTACHMENT.ATTACHMENT_PATH + "\"}";
}
}
else if (uploadtype == "upload_files_honestyreport")
{
using (Business.ATTACHMENT _ATTACHMENT = new Business.ATTACHMENT(_Transaction))
{
_ATTACHMENT.RELATION_ID = int.Parse(Relation_id);
_ATTACHMENT.RELATION_TABLE = "PERSONNEL_STORAGE.V_HONESTYREPORT";
_ATTACHMENT.STAFF_ID = int.Parse(Staff_id);
_ATTACHMENT.ATTACHMENT_PATH = "Personnel/" + filename + ExtraString + extension;
_ATTACHMENT.ATTACHMENT_DESC = filename + extension;
_ATTACHMENT.ATTACHMENT_UPDATEDATE = DateTime.Now;
_ATTACHMENT.OPERATE_DATE = DateTime.Now;
try
{
_ATTACHMENT.OPERATE_USERID = int.Parse(context.Request.Form["OPERATE_USERID"].ToDecrypt());
_ATTACHMENT.OPERATE_USER = context.Request.Form["OPERATE_USER"];
}
catch
{ }
_ATTACHMENT.Insert();
RetString = "{\"imageid\" : \"" + _ATTACHMENT.ATTACHMENT_ID_Encrypt +
"\", \"imagename\" : \"" + _ATTACHMENT.ATTACHMENT_PATH + "\"}";
}
}
else if (uploadtype == "upload_files_personnelfiles")
{
using (Business.ATTACHMENT _ATTACHMENT = new Business.ATTACHMENT(_Transaction))
{
_ATTACHMENT.RELATION_ID = int.Parse(Relation_id);
_ATTACHMENT.RELATION_TABLE = "PERSONNEL_STORAGE.T_PERSONNELFILES";
_ATTACHMENT.STAFF_ID = int.Parse(Staff_id);
_ATTACHMENT.ATTACHMENT_PATH = "Personnel/" + filename + ExtraString + extension;
_ATTACHMENT.ATTACHMENT_DESC = filename + extension;
_ATTACHMENT.ATTACHMENT_UPDATEDATE = DateTime.Now;
_ATTACHMENT.OPERATE_DATE = DateTime.Now;
try
{
_ATTACHMENT.OPERATE_USERID = int.Parse(context.Request.Form["OPERATE_USERID"].ToDecrypt());
_ATTACHMENT.OPERATE_USER = context.Request.Form["OPERATE_USER"];
}
catch
{ }
_ATTACHMENT.Insert();
RetString = "{\"imageid\" : \"" + _ATTACHMENT.ATTACHMENT_ID_Encrypt +
"\", \"imagename\" : \"" + _ATTACHMENT.ATTACHMENT_PATH + "\"}";
}
}
else if (uploadtype == "upload_files_position_binduser")
{
using (Business.ATTACHMENT _ATTACHMENT = new Business.ATTACHMENT(_Transaction))
{
_ATTACHMENT.RELATION_ID = int.Parse(Relation_id);
_ATTACHMENT.RELATION_TABLE = "POSITION_BindUser";
_ATTACHMENT.STAFF_ID = int.Parse(Staff_id);
_ATTACHMENT.ATTACHMENT_PATH = "Personnel/" + filename + ExtraString + extension;
_ATTACHMENT.ATTACHMENT_DESC = filename + extension;
_ATTACHMENT.ATTACHMENT_UPDATEDATE = DateTime.Now;
_ATTACHMENT.OPERATE_DATE = DateTime.Now;
_ATTACHMENT.Insert();
RetString = "{\"imageid\" : \"" + _ATTACHMENT.ATTACHMENT_ID_Encrypt +
"\", \"imagename\" : \"" + _ATTACHMENT.ATTACHMENT_PATH + "\"}";
}
}
else if (uploadtype == "upload_files_contract")
{
using (Business.ATTACHMENT _ATTACHMENT = new Business.ATTACHMENT(_Transaction))
{
_ATTACHMENT.RELATION_ID = int.Parse(Relation_id);
_ATTACHMENT.RELATION_TABLE = "T_CONTRACTTEMPLATE";
_ATTACHMENT.OPERATE_USERID = Operate_UserID.TryParseToInt();
_ATTACHMENT.OPERATE_USER = Operate_User;
_ATTACHMENT.ATTACHMENT_PATH = "Personnel/" + filename + ExtraString + extension;
_ATTACHMENT.ATTACHMENT_DESC = filename + extension;
_ATTACHMENT.ATTACHMENT_UPDATEDATE = DateTime.Now;
_ATTACHMENT.OPERATE_DATE = DateTime.Now;
_ATTACHMENT.Insert();
RetString = "{\"imageid\" : \"" + _ATTACHMENT.ATTACHMENT_ID_Encrypt +
"\", \"imagename\" : \"" + _ATTACHMENT.ATTACHMENT_PATH + "\"}";
}
}
else if (uploadtype == "upload_files_contract_staff")
{
using (Business.ATTACHMENT _ATTACHMENT = new Business.ATTACHMENT(_Transaction))
{
string operate_time = Pub.Request("OPERATE_TIME");
_ATTACHMENT.RELATION_TABLE = "T_CONTRACTTEMPLATE";
_ATTACHMENT.STAFF_ID = Staff_id.TryParseToInt();
_ATTACHMENT.OPERATE_USER = Operate_User;
_ATTACHMENT.ATTACHMENT_PATH = "Personnel/" + filename + ExtraString + extension;
_ATTACHMENT.ATTACHMENT_DESC = filename + extension;
_ATTACHMENT.ATTACHMENT_UPDATEDATE = DateTime.Now;
_ATTACHMENT.OPERATE_DATE = operate_time.TryParseToDateTime();
_ATTACHMENT.Insert();
//更新人员合同截止时间
if (!string.IsNullOrWhiteSpace(operate_time))
{
Business.STAFF _STAFF = new Business.STAFF(_Transaction);
_STAFF.STAFF_ID_Encrypt = Staff_id.ToEncrypt();
if (_STAFF.Select())
{
if (_STAFF.ENDDATE == null || _STAFF.ENDDATE < _ATTACHMENT.OPERATE_DATE)
{
_STAFF.ENDDATE = _ATTACHMENT.OPERATE_DATE;
_STAFF.Update();
}
}
}
RetString = "{\"imageid\" : \"" + _ATTACHMENT.ATTACHMENT_ID_Encrypt +
"\", \"imagename\" : \"" + _ATTACHMENT.ATTACHMENT_PATH + "\"}";
}
}
else if (uploadtype == "upload_files_proinst")
{
using (Running.Business.ATTACHMENT _ATTACHMENT = new Running.Business.ATTACHMENT(_Transaction))
{
//流程内码
string Proinst_ID = context.Request.Form["PROINST_ID"].ToDecrypt();
_ATTACHMENT.RELATION_ID = Relation_id.TryParseToInt();
_ATTACHMENT.RELATION_TABLE = "T_PERSONNELPROINST";
_ATTACHMENT.STAFF_ID = int.Parse(Staff_id);
_ATTACHMENT.ATTACHMENT_PATH = "Personnel/" + filename + ExtraString + extension;
_ATTACHMENT.ATTACHMENT_DESC = filename + extension;
_ATTACHMENT.ATTACHMENT_UPDATEDATE = DateTime.Now;
_ATTACHMENT.OPERATE_DATE = DateTime.Now;
_ATTACHMENT.PROINST_ID = Proinst_ID.TryParseToInt();
_ATTACHMENT.Insert();
RetString = "{\"imageid\" : \"" + _ATTACHMENT.ATTACHMENT_ID_Encrypt +
"\", \"imagename\" : \"" + _ATTACHMENT.ATTACHMENT_PATH + "\"}";
}
}
_Transaction.Commit();
context.Response.ContentType = "text/plain";
//下面这句代码缺少的话,上传成功后上传队列的显示不会自动消失
context.Response.Write(RetString);
}
else
{
context.Response.Write(RetString);
}
}
catch (Exception ex)
{
ErrorLogHelper.Write(ex);
throw new Exception(ex.Message);
}
}
public bool IsReusable
{
get
{
return false;
}
}
#region webUpload使用方法
//WebUpload使用方法
//public void ProcessRequest(HttpContext context)
//{
// //string id, string name, string type, string lastModifiedDate, int size, HttpPostedFileBase file
// string id = HttpContext.Current.Request.Form["id"];
// string name = HttpContext.Current.Request.Form["name"];
// string type = HttpContext.Current.Request.Form["type"];
// string lastModifiedDate = HttpContext.Current.Request.Form["lastModifiedDate"];
// int size = int.Parse(HttpContext.Current.Request.Form["size"]);
// //HttpPostedFileBase _HttpPostedFileBase = HttpContext.Current.Request.Files;
// //上传文件
// string action_type = HttpContext.Current.Request.Form["action_type"];
// string reString = string.Empty;
// string CurrentGuid = string.Empty;
// context.Response.ContentType = "text/plain";
// context.Response.Write(reString);
// context.Response.End();
//}
///
/// 文件保存操作
///
///
private void SaveFile(string basePath = "~/Upload/Images/")
{
var name = string.Empty;
basePath = (basePath.IndexOf("~") > -1) ? System.Web.HttpContext.Current.Server.MapPath(basePath) :
basePath;
HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
//如果目录不存在,则创建目录
if (!Directory.Exists(basePath))
{
Directory.CreateDirectory(basePath);
}
var suffix = files[0].ContentType.Split('/');
//获取文件格式
var _suffix = suffix[1].Equals("jpeg", StringComparison.CurrentCultureIgnoreCase) ? "" : suffix[1];
var _temp = System.Web.HttpContext.Current.Request["name"];
//如果不修改文件名,则创建随机文件名
if (!string.IsNullOrEmpty(_temp))
{
name = _temp;
}
else
{
Random rand = new Random(24 * (int)DateTime.Now.Ticks);
name = rand.Next() + "." + _suffix;
}
//文件保存
var full = basePath + name;
files[0].SaveAs(full);
var _result = "{\"jsonrpc\" : \"2.0\", \"result\" : null, \"id\" : \"" + name + "\"}";
System.Web.HttpContext.Current.Response.Write(_result);
}
#endregion
}
public class ImageObject
{
public string imagename
{
get;
set;
}
public string imageid
{
get;
set;
}
}
}