297 lines
13 KiB
C#
297 lines
13 KiB
C#
using System;
|
||
using System.Data;
|
||
using System.Linq;
|
||
using System.IO;
|
||
using System.Web;
|
||
using System.Web.UI;
|
||
using System.Web.UI.WebControls;
|
||
using SuperMap.RealEstate.CoreFrameWork;
|
||
using SuperMap.RealEstate.ServiceModel;
|
||
using SuperMap.RealEstate.Utility;
|
||
using SuperMap.RealEstate.Web.UI;
|
||
using SuperMap.RealEstate.Web.UI.WebControls;
|
||
using SuperMap.RealEstate.Web.Utility;
|
||
|
||
using Business = SuperMap.RealEstate.HighWay.Running.Business;
|
||
|
||
namespace SuperMap.RealEstate.HighWay.Compents.uploadData
|
||
{
|
||
public partial class ReceiveDocument : UserControl<Business.ATTACHMENT>
|
||
{
|
||
Running.Business.HIGHWAYPROINST _HighWayProInst = null;
|
||
public string _ModifyType;
|
||
|
||
protected override void OnInit(EventArgs e)
|
||
{
|
||
Common.PageHelper.CreateHeaderStyle(Page);
|
||
_HighWayProInst = Running.Business.HIGHWAYPROINST.CreateInstance(Page);
|
||
|
||
//隐藏打印受理单按钮
|
||
this.ButtonVisible = false;
|
||
base.OnInit(e);
|
||
}
|
||
|
||
protected void Page_Load(object sender, EventArgs e)
|
||
{
|
||
if (IsPostBack) return;
|
||
|
||
if (ModifyType == ModifyTypeEnum.ReadOnly || ModifyType == ModifyTypeEnum.ReadOnlyVisible)
|
||
{
|
||
_ModifyType = "0";
|
||
}
|
||
|
||
Label1.Visible = false;
|
||
file_upload_Document.Visible = false;
|
||
}
|
||
|
||
//在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等
|
||
public override void InitializeWebControl()
|
||
{
|
||
if (_HighWayProInst != null && _HighWayProInst.PropertyObject != null &&
|
||
_HighWayProInst.ProInst.Operation_Type_BaseValue == 310010)
|
||
{
|
||
text.Attributes["style"] = "display:none";
|
||
|
||
}
|
||
else
|
||
{
|
||
text.Attributes["style"] = "display:block";
|
||
|
||
}
|
||
}
|
||
|
||
//载入数据
|
||
public override bool LoadData()
|
||
{
|
||
PROINST_ID.Text = _HighWayProInst.HIGHWAYPROINST_ID.ToString();
|
||
//绑定对应的控件
|
||
BindRepick();
|
||
|
||
|
||
//如果是工作流组件请自行修改载入的逻辑,以下是功能模块的默认代码
|
||
if (!String.IsNullOrEmpty(Request["ID"]))
|
||
{
|
||
CurrObject.ATTACHMENT_ID_Encrypt = Request["ID"];
|
||
return this.Select();
|
||
}
|
||
//默认返回值,工作流组件返回True,功能模块返回False。
|
||
return (WorkFlowPage != null);
|
||
}
|
||
|
||
//OnDataAction_XXXXX 有一个系列可用,在此加入界面的逻辑处理
|
||
//e.CancelDataAction 来处理是否取消该动作;
|
||
//失败的原因可以用Page.Alert()传递到页面
|
||
public override void OnDataAction_BeforeSave(DataActionEventArgs<Business.ATTACHMENT> e)
|
||
{
|
||
base.OnDataAction_BeforeSave(e);
|
||
}
|
||
|
||
private void BindRepick()
|
||
{
|
||
//绑定对应的控件
|
||
Business.RECEIPTDOCUMENT _RECEIPTDOCUMENT = new Business.RECEIPTDOCUMENT(Transaction);
|
||
_RECEIPTDOCUMENT.AddSearchParameter("PROINST_ID", this._HighWayProInst.Proinst_ID);
|
||
if (_RECEIPTDOCUMENT.Search())
|
||
{
|
||
if (_RECEIPTDOCUMENT.INITIATION_DOCUMENT_ID != null)
|
||
{
|
||
Storage.Business.INITIATION_DOCUMENT _INITIATION_DOCUMENT = new Storage.Business.INITIATION_DOCUMENT(Transaction);
|
||
_INITIATION_DOCUMENT.INITIATION_DOCUMENT_ID = _RECEIPTDOCUMENT.INITIATION_DOCUMENT_ID;
|
||
if (_INITIATION_DOCUMENT.Select())
|
||
{
|
||
Repeater1.DataSource = (new Storage.Business.ATTACHMENT(this.Transaction)).ExecuteDataTable(
|
||
"SELECT * FROM T_ATTACHMENT where PROINST_ID = " + _INITIATION_DOCUMENT.PROINST_ID);
|
||
Repeater1.DataBind();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
public byte[] StreamToBytes(Stream stream)
|
||
{
|
||
byte[] bytes = new byte[stream.Length];
|
||
stream.Read(bytes, 0, bytes.Length);
|
||
// 设置当前流的位置为流的开始
|
||
stream.Seek(0, SeekOrigin.Begin);
|
||
return bytes;
|
||
}
|
||
|
||
protected void LinkButton_Click(object sender, EventArgs e)
|
||
{
|
||
LinkButton LinkButton = sender as LinkButton;
|
||
//下载内容
|
||
Storage.Business.ATTACHMENT _ATTACHMENT = new Storage.Business.ATTACHMENT(this.Transaction);
|
||
_ATTACHMENT.ATTACHMENT_ID_Encrypt = LinkButton.Attributes["base-code"];
|
||
if (_ATTACHMENT.Select())
|
||
{
|
||
//解决文件名乱码
|
||
string FileName = System.Web.HttpUtility.UrlEncode(!string.IsNullOrEmpty(_ATTACHMENT.ATTACHMENT_DESC) ?
|
||
_ATTACHMENT.ATTACHMENT_DESC : _ATTACHMENT.ATTACHMENT_NAME, System.Text.Encoding.UTF8);
|
||
|
||
System.IO.MemoryStream ms = new System.IO.MemoryStream();
|
||
string uploadPath = HttpContext.Current.Server.MapPath("~/UploadImageDir/Document/") + "\\" +
|
||
((!string.IsNullOrEmpty(_ATTACHMENT.PRESONNAME) && !string.IsNullOrEmpty(_ATTACHMENT.ATTACHMENT_DESC)) ?
|
||
_ATTACHMENT.PRESONNAME + "\\" + _ATTACHMENT.ATTACHMENT_DESC : _ATTACHMENT.ATTACHMENT_NAME);
|
||
HttpContext.Current.Response.Clear();
|
||
HttpContext.Current.Response.Buffer = true;
|
||
HttpContext.Current.Response.Charset = "utf-8";
|
||
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");//设置输出流为简体中文
|
||
HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format(
|
||
"attachment; filename=" + FileName, DateTime.Now.ToString("yyyyMMddHHmmssfff")));
|
||
HttpContext.Current.Response.BinaryWrite(System.IO.File.ReadAllBytes(uploadPath));
|
||
HttpContext.Current.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
|
||
HttpContext.Current.Response.End();
|
||
ms.Close();
|
||
ms.Dispose();
|
||
}
|
||
|
||
}
|
||
|
||
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
|
||
{
|
||
if (e.Item.ItemType == System.Web.UI.WebControls.ListItemType.Item ||
|
||
e.Item.ItemType == System.Web.UI.WebControls.ListItemType.AlternatingItem ||
|
||
e.Item.ItemType == System.Web.UI.WebControls.ListItemType.SelectedItem)
|
||
{
|
||
DataRowView _DataRowView = (DataRowView)e.Item.DataItem;
|
||
LinkButton LinkButton = e.Item.FindControl("LinkButton") as LinkButton;
|
||
LinkButton.ToolTip = (!string.IsNullOrEmpty(_DataRowView["ATTACHMENT_DESC"].ToString()) &&
|
||
!string.IsNullOrEmpty(_DataRowView["PRESONNAME"].ToString())) ? _DataRowView["ATTACHMENT_DESC"].ToString() :
|
||
_DataRowView["ATTACHMENT_NAME"].ToString();
|
||
LinkButton.Text = "<span><img src='/HighWay/Resources/v1_0/Images/4950_old-versions.png' />" +
|
||
(LinkButton.ToolTip.Length > 30 ? LinkButton.ToolTip.Substring(0, 25) + "..." : LinkButton.ToolTip) + "</span>";
|
||
LinkButton.Attributes["base-code"] = _DataRowView["ATTACHMENT_ID"].ToEncrypt();
|
||
//LinkButton.Attributes["onclick"] = "LinkButton_Click()";
|
||
|
||
if (this.ModifyType == ModifyTypeEnum.ReadOnly || this.ModifyType == ModifyTypeEnum.ReadOnlyVisible)
|
||
{
|
||
;
|
||
}
|
||
else
|
||
{
|
||
LinkButton DelButton = e.Item.FindControl("DelButton") as LinkButton;
|
||
DelButton.Text = "<span><img src='/HighWay/Resources/v1_0/Images/delete.png' /></span>";
|
||
DelButton.Attributes["base-code"] = _DataRowView["ATTACHMENT_ID"].ToEncrypt();
|
||
}
|
||
}
|
||
}
|
||
|
||
protected void DelButton_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
LinkButton LinkButton = sender as LinkButton;
|
||
Business.ATTACHMENT _ATTACHMENT = new Business.ATTACHMENT(Transaction);
|
||
_ATTACHMENT.ATTACHMENT_ID_Encrypt = LinkButton.Attributes["base-code"].ToString();
|
||
if (_ATTACHMENT.Select())
|
||
{
|
||
|
||
if (!string.IsNullOrEmpty(_ATTACHMENT.PRESONNAME) && !string.IsNullOrEmpty(_ATTACHMENT.PRESONNAME))
|
||
{
|
||
if (Directory.Exists(HttpContext.Current.Server.MapPath("~/UploadImageDir/Document/") +
|
||
"\\" + _ATTACHMENT.PRESONNAME))
|
||
{
|
||
Directory.Delete(HttpContext.Current.Server.MapPath("~/UploadImageDir/Document/") +
|
||
"\\" + _ATTACHMENT.PRESONNAME, true);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (Directory.Exists(HttpContext.Current.Server.MapPath("~/UploadImageDir/Document")) &&
|
||
File.Exists(HttpContext.Current.Server.MapPath("~/UploadImageDir/Document/") +
|
||
"\\" + _ATTACHMENT.ATTACHMENT_NAME))
|
||
{
|
||
File.Delete(HttpContext.Current.Server.MapPath("~/UploadImageDir/Document/") +
|
||
"\\" + _ATTACHMENT.ATTACHMENT_NAME);
|
||
}
|
||
}
|
||
_ATTACHMENT.Delete();
|
||
}
|
||
BindRepick();
|
||
string _TENDER_DESC = "";
|
||
switch (_HighWayProInst.__ProInst.Operation_Type_BaseValue)
|
||
{
|
||
case 350100:
|
||
case 350200:
|
||
case 350300:
|
||
foreach (Business.ATTACHMENT _Attachment in new Business.ATTACHMENT(this.Transaction).FillCollection(
|
||
"where PROINST_ID = " + this._HighWayProInst.HIGHWAYPROINST_ID))
|
||
{
|
||
_TENDER_DESC += _Attachment.ATTACHMENT_NAME + "\r\n";
|
||
}
|
||
Business.TENDER _TENDER = new Business.TENDER(Transaction);
|
||
_TENDER.AddSearchParameter("HIGHWAYPROINST_ID", this._HighWayProInst.HIGHWAYPROINST_ID);
|
||
|
||
if (_TENDER.Search())
|
||
{
|
||
_TENDER.TENDER_DESC = _TENDER_DESC;
|
||
_TENDER.Update();
|
||
}
|
||
|
||
//刷新父页
|
||
Page.ExecClientScript("$('#pop-dialog-frame-WorkFlowWorkPlatform',parent.parent.document).attr('src'," +
|
||
" '/WorkFlow/Transact/Common/ProcessPage.aspx?NowActInst_ID=" + Request["NowActInst_ID"] +
|
||
"&ProInst_ID=" + Request["ProInst_ID"] + "&Module_ID=" + Request["Module_ID"] +
|
||
"&PopDialogPageName=F_R_GridPageEx1&PopDialogName=WorkFlowWorkPlatform&r=0.8500934960320592')");
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
//回滚事务
|
||
Transaction.Rollback();
|
||
//记录日志
|
||
ErrorLogHelper.Write(ex);
|
||
}
|
||
}
|
||
|
||
protected void CallBackButton1_Click(object sender, EventArgs e)
|
||
{
|
||
string _TENDER_DESC = "";
|
||
switch (_HighWayProInst.__ProInst.Operation_Type_BaseValue)
|
||
{
|
||
case 350100:
|
||
case 350200:
|
||
case 350300:
|
||
foreach (Business.ATTACHMENT _ATTACHMENT in new Business.ATTACHMENT(this.Transaction).FillCollection(
|
||
"where PROINST_ID = " + this._HighWayProInst.HIGHWAYPROINST_ID))
|
||
{
|
||
_TENDER_DESC += (string.IsNullOrEmpty(_ATTACHMENT.ATTACHMENT_NAME) ?
|
||
_ATTACHMENT.ATTACHMENT_DESC : _ATTACHMENT.ATTACHMENT_NAME) + "\r\n";
|
||
}
|
||
Business.TENDER _TENDER = new Business.TENDER(Transaction);
|
||
_TENDER.AddSearchParameter("HIGHWAYPROINST_ID", this._HighWayProInst.HIGHWAYPROINST_ID);
|
||
|
||
if (_TENDER.Search())
|
||
{
|
||
_TENDER.TENDER_DESC = _TENDER_DESC;
|
||
_TENDER.Update();
|
||
}
|
||
|
||
//刷新父页
|
||
Page.ExecClientScript("$('#pop-dialog-frame-WorkFlowWorkPlatform',parent.parent.document).attr('src'," +
|
||
" '/WorkFlow/Transact/Common/ProcessPage.aspx?NowActInst_ID=" + Request["NowActInst_ID"] +
|
||
"&ProInst_ID=" + Request["ProInst_ID"] + "&Module_ID=" + Request["Module_ID"] +
|
||
"&PopDialogPageName=F_R_GridPageEx1&PopDialogName=WorkFlowWorkPlatform&r=0.8500934960320592')");
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
|
||
BindRepick();
|
||
}
|
||
|
||
public override bool Save(bool AutoBindData = true)
|
||
{
|
||
return true;
|
||
}
|
||
|
||
protected void Fresh_Click(object sender, EventArgs e)
|
||
{
|
||
BindRepick();
|
||
}
|
||
}
|
||
}
|