2025-03-27 15:05:14 +08:00

457 lines
22 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using SuperMap.RealEstate.Configuration;
using SuperMap.RealEstate.CoreFrameWork;
using SuperMap.RealEstate.Web.UI.WebControls;
using SuperMap.RealEstate.Utility;
using SuperMap.RealEstate.WorkFlow;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
using System.Xml.Xsl;
using System.Reflection;
using Instance = SuperMap.RealEstate.WorkFlow.Instance;
using HZQR.Common;
namespace SuperMap.RealEstate.HighWay.Compents.ApproveTender
{
public partial class ApproveBillManagement : SuperMap.RealEstate.Web.UI.UserControl
{
Running.Business.HIGHWAYPROINST _ProInst = null;
#region ViewState
string XslPath = @"/PrintReport/HighWay/ApproveBillManagement/ApproveTenderBill.xsl";
private string ReportXmlPath
{
get
{
return ViewState["ApproveBillManagementXmlPath"] == null ? "" : (string)ViewState["ApproveBillManagementXmlPath"];
}
set
{
ViewState["ApproveBillManagementXmlPath"] = value;
}
}
private string ReportXslPath
{
get
{
return ViewState["ApproveBillManagementXslPath"] == null ? XslPath : (string)ViewState["ApproveBillManagementXslPath"];
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
return;
}
#region
public override bool LoadData()
{
string _FileName = "ApproveBillManagement_" + (string.IsNullOrEmpty(_ProInst.Accept_Code) ? Guid.NewGuid().ToString() : _ProInst.Accept_Code) + ".xml";
CreateDocumentInit(_FileName);
return true;
}
#endregion
#region CreateDocumentInit
private void CreateDocumentInit(String File_Name)
{
ReportXmlPath = File_Name;
if (!Directory.Exists(EnvironmentHelper.Temp + "HighWay\\"))
Directory.CreateDirectory(EnvironmentHelper.Temp + "HighWay\\");
if (File.Exists(EnvironmentHelper.Temp + "HighWay\\" + File_Name))
File.Delete(EnvironmentHelper.Temp + "HighWay\\" + File_Name);
using (FileStream _FileStream = new FileStream(EnvironmentHelper.Temp + "HighWay\\" + File_Name, FileMode.OpenOrCreate))
{
using (StreamWriter _StreamWriter = new StreamWriter(_FileStream))
{
_StreamWriter.Write(CreateXmlBill());
_StreamWriter.Close();
InitXml();
}
}
}
#endregion
#region LoadDataEx
/// <summary>
/// 组件加载扩展
/// </summary>
/// <param name="ClientSet">脚本</param>
/// <returns></returns>
public override bool LoadDataEx(ClientSetEventArgs ClientSet)
{
string _FileName = "ApproveBillManagement_" + (string.IsNullOrEmpty(_ProInst.Accept_Code) ? Guid.NewGuid().ToString() : _ProInst.Accept_Code) + ".xml";
//报表解析
CreateDocumentInit(_FileName);
string _Document = Running.Business.HIGHWAYPROINST.Transform(_FileName, ReportXslPath);
//执行前端重置
ClientSet.ExcuteClientScript("$('#" + ApproveBillManagement_Report.ClientID + "').html('" + _Document + "');");
return true;
}
#endregion
#region
private string CreateXmlBill()
{
XmlDocument _XmlDocument = new XmlDocument();
#region
XmlDeclaration _XmlDeclaration = _XmlDocument.CreateXmlDeclaration("1.0", "utf-8", "yes");
_XmlDocument.AppendChild(_XmlDeclaration);
XmlProcessingInstruction _XmlProcessingInstruction = _XmlDocument.CreateProcessingInstruction("xml-stylesheet", " type='text/xsl' href='" + XslPath + "'");
_XmlDocument.AppendChild(_XmlProcessingInstruction);
XmlElement _XmlElement = null;
_XmlElement = _XmlDocument.CreateElement("SuperMapDoucuments");
_XmlDocument.AppendChild(_XmlElement);
#endregion
#region
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
_Dictionary.Add("OPERATION_TYPE", "OPERATION_TYPE");
_Dictionary.Add("URGENT_STATE", "URGENT_STATE");
_Dictionary.Add("TENDER_TYPE", "TENDER_TYPE");
_Dictionary.Add("APPLYIMPLEMENT_TYPE", "APPLYIMPLEMENT_TYPE");
_Dictionary.Add("PROJECT_BELONG", "APPLYIMPLEMENT_TYPE");
#endregion
switch (_ProInst.ProInst.Operation_Type_BaseValue)
{
case 350100:
_XmlElement = _XmlDocument.CreateElement("SuperMap");
_XmlDocument.DocumentElement.AppendChild(_XmlElement);
GetProInst(_XmlDocument, _XmlElement, _Dictionary, true);
GetApproved(_XmlDocument, _XmlElement, _Dictionary, true);
break;
case 350200:
_XmlElement = _XmlDocument.CreateElement("SuperMap");
_XmlDocument.DocumentElement.AppendChild(_XmlElement);
GetProInst(_XmlDocument, _XmlElement, _Dictionary, true);
GetApproved(_XmlDocument, _XmlElement, _Dictionary, true);
break;
case 350300:
_XmlElement = _XmlDocument.CreateElement("SuperMap");
_XmlDocument.DocumentElement.AppendChild(_XmlElement);
GetProInst(_XmlDocument, _XmlElement, _Dictionary, true);
GetApproved(_XmlDocument, _XmlElement, _Dictionary, true);
break;
case 350400:
_XmlElement = _XmlDocument.CreateElement("SuperMap");
_XmlDocument.DocumentElement.AppendChild(_XmlElement);
GetProInst(_XmlDocument, _XmlElement, _Dictionary, true);
GetApproved(_XmlDocument, _XmlElement, _Dictionary, true);
break;
default:
_XmlElement = _XmlDocument.CreateElement("SuperMap");
_XmlDocument.DocumentElement.AppendChild(_XmlElement);
GetProInst(_XmlDocument, _XmlElement, _Dictionary, true);
GetApproved(_XmlDocument, _XmlElement, _Dictionary, true);
break;
}
#region
//根据业务类型执行文档解析
switch (_ProInst.ProInst.Operation_Type_BaseValue)
{
//合同插件
case 350100:
//InitTenderInsert(_XmlDocument, _XmlElement, _Dictionary);
//break;
case 350200:
//InitTenderInsert(_XmlDocument, _XmlElement, _Dictionary);
//break;
case 350300:
InitTenderInsert(_XmlDocument, _XmlElement, _Dictionary);
break;
case 350400:
InitTenderInsert(_XmlDocument, _XmlElement, _Dictionary);
break;
}
#endregion
return _XmlDocument.InnerXml;
}
#endregion
#region
private void GetProInst(XmlDocument _XmlDocument, XmlElement _XmlElement,
Dictionary<string, string> _Dictionary, bool isChildNodes = false)
{
XmlElement _ChildXmlElement = _XmlDocument.CreateElement("ProInst");
if (isChildNodes)
_XmlElement.AppendChild(_ChildXmlElement);
else
_XmlDocument.DocumentElement.AppendChild(_ChildXmlElement);
_ProInst.CreateXmlNode(_ProInst.ProInst, _XmlDocument, _ChildXmlElement, _Dictionary);
}
#endregion
#region
private void GetApproved(XmlDocument _XmlDocument, XmlElement _XmlElement,
Dictionary<string, string> _Dictionary, bool isChildNodes = false)
{
short _Approved_Type = 0;
//审批意见
foreach (Running.Business.APPROVED _Approved in _ProInst.ApprovedCollection)
{
if (_Approved_Type == _Approved.Approved_Type.Value)
{
continue;
}
_Approved_Type = _Approved.Approved_Type.Value;
XmlElement _ChildXmlElement = _XmlDocument.CreateElement("ApprovedInfo");
if (isChildNodes)
{
_XmlElement.AppendChild(_ChildXmlElement);
}
else
{
_XmlDocument.DocumentElement.AppendChild(_ChildXmlElement);
}
if (new Running.Business.JOINTLYSIGN(_ProInst).GetCount("WHERE HIGHWAYPROINST_ID = " +
_ProInst.HIGHWAYPROINST_ID + " AND APPROVED_TYPE = " + _Approved.Approved_Type) > 0 ||
_Approved.GetCount("WHERE HIGHWAYPROINST_ID = " + _ProInst.HIGHWAYPROINST_ID +
" AND APPROVED_TYPE = " + _Approved.Approved_Type) > 1)
{
XmlElement _XmlElementChildCollection = null;
XmlElement _XmlElementChild = null;
//审核环节
_XmlElementChildCollection = _XmlDocument.CreateElement("Approved_Name");
_ChildXmlElement.AppendChild(_XmlElementChildCollection);
_XmlElementChildCollection.InnerText = _Approved.Approved_Name;
foreach (Running.Business.APPROVED _APPROVED in new Running.Business.APPROVED(_ProInst).FillCollection(
"WHERE HIGHWAYPROINST_ID = " + _ProInst.HIGHWAYPROINST_ID + " AND APPROVED_TYPE = " +
_Approved.Approved_Type + " ORDER BY APPROVED_DATE"))
{
_XmlElementChildCollection = _XmlDocument.CreateElement("ApproveCollection");
_ChildXmlElement.AppendChild(_XmlElementChildCollection);
//审核内容
_XmlElementChild = _XmlDocument.CreateElement("Approved_Info");
_XmlElementChildCollection.AppendChild(_XmlElementChild);
_XmlElementChild.InnerText = _APPROVED.Approved_Info;
//审核人员
_XmlElementChild = _XmlDocument.CreateElement("Approved_Staff");
_XmlElementChildCollection.AppendChild(_XmlElementChild);
_XmlElementChild.InnerText = _APPROVED.Approved_Staff;
//审核日期
_XmlElementChild = _XmlDocument.CreateElement("Approved_Date");
_XmlElementChildCollection.AppendChild(_XmlElementChild);
_XmlElementChild.InnerText = _APPROVED.Approved_Date.Value.ToLongDateString();
}
}
else
{
_ProInst.CreateXmlNode(_Approved, _XmlDocument, _ChildXmlElement, _Dictionary);
}
}
}
#endregion
//////////////--------------------------业务相关----------------//
#region ->
private void InitTenderInsert(XmlDocument _XmlDocument, XmlElement _XmlElement, Dictionary<string, string> _Dictionary)
{
if (_XmlElement == null)
throw new Exception("首节点不能为空");
if (_ProInst.TenderCollection == null)
return;
XmlElement _ChildXmlElement = null;
XmlElement _XmlElementChild = null;
foreach (Running.Business.TENDER _TENDER in _ProInst.TenderCollection)
{
_ChildXmlElement = _XmlDocument.CreateElement("Tender");
_XmlElement.AppendChild(_ChildXmlElement);
//供应商邀请方式
_XmlElementChild = _XmlDocument.CreateElement("INVITATION_METHOD");
_ChildXmlElement.AppendChild(_XmlElementChild);
_XmlElementChild.InnerText = DictionaryHelper.GetFieldEnumName("INVITATION_METHOD",
_TENDER.APPLYIMPLEMENT_TYPE.TryParseToString(), Transaction);
_XmlElementChild = _XmlDocument.CreateElement("SERVERPART_NAME");
_ChildXmlElement.AppendChild(_XmlElementChild);
_XmlElementChild.InnerText = _ProInst.Dept_Name;
_ProInst.CreateXmlNode(_TENDER, _XmlDocument, _ChildXmlElement, _Dictionary);
}
}
#endregion
//#region 使用
//void Use(XmlDocument _XmlDocument, XmlElement _XmlElement, Dictionary<string, string> _Dictionary)
//{
// if (_XmlElement == null)
// throw new Exception("SuperMap首节点不能为空");
// if (_ProInst.FundUseProjectScopeCollection.Count == 0)
// {
// XmlElement _ChildXmlElement = _XmlDocument.CreateElement("SuperMap");
// _XmlDocument.DocumentElement.AppendChild(_ChildXmlElement);
// GetProInst(_XmlDocument, _ChildXmlElement, _Dictionary, true);
// GetProposer(_XmlDocument, _ChildXmlElement, _Dictionary, true);
// GetApproved(_XmlDocument, _ChildXmlElement, _Dictionary, true);
// }
// foreach (Running.Business.FundUseProjectScope _FundUseProjectScope in _ProInst.FundUseProjectScopeCollection)
// {
// XmlElement _ChildXmlElement = _XmlDocument.CreateElement("SuperMap");
// _XmlDocument.DocumentElement.AppendChild(_ChildXmlElement);
// GetProInst(_XmlDocument, _ChildXmlElement, _Dictionary, true);
// GetProposer(_XmlDocument, _ChildXmlElement, _Dictionary, true);
// GetApproved(_XmlDocument, _ChildXmlElement, _Dictionary, true);
// XmlElement _ChildXmlElementFundUseProjectScope = _XmlDocument.CreateElement("FundUseProjectScope");
// _ChildXmlElement.AppendChild(_ChildXmlElementFundUseProjectScope);
// _ProInst.CreateXmlNode(_FundUseProjectScope, _XmlDocument, _ChildXmlElementFundUseProjectScope, _Dictionary);
// foreach (Running.Business.BuildingSection _BuildingSection in _FundUseProjectScope.BuildingSectionCollection)
// {
// XmlElement _ChildXmlElementBuildingSection = _XmlDocument.CreateElement("BuildingSection");
// _ChildXmlElement.AppendChild(_ChildXmlElementBuildingSection);
// _ProInst.CreateXmlNode(_BuildingSection, _XmlDocument, _ChildXmlElementBuildingSection, _Dictionary);
// }
// string strsql = "SELECT A.BANK_NAME,A.AUDITUNIT_NAME,A.BANK_PASSPORTNAME,A.BANK_ACCOUNT FROM PROPERTYMANAGE_RUNNING.T_AUDITUNITSECTION A,PROPERTYMANAGE_RUNNING.T_PROJECTFUND B,PROPERTYMANAGE_RUNNING.T_FUNDUSEPLAN C WHERE A.PROJECTFUND_ID = B.PROJECTFUND_ID AND B.FUNDUSEPLAN_ID = C.FUNDUSEPLAN_ID AND C.FUNDUSEPROJECTSCOPE_ID = " + _FundUseProjectScope.FundUseProjectScope_ID;
// DataTable _DataTable = (new Running.Business.FundUseProjectScope()).ExecuteDataTable(strsql);
// foreach (DataRow _DataRow in _DataTable.Rows)
// {
// XmlElement _ChildXmlElementAUDITUNITSECTION = _XmlDocument.CreateElement("SHUnit");
// _ChildXmlElement.AppendChild(_ChildXmlElementAUDITUNITSECTION);
// //单位
// XmlElement _ChildXmlElementAUDITUNITSECTIONObject = _XmlDocument.CreateElement("SHUnitName");
// _ChildXmlElementAUDITUNITSECTION.AppendChild(_ChildXmlElementAUDITUNITSECTIONObject);
// _ChildXmlElementAUDITUNITSECTIONObject.InnerText = _DataRow["AUDITUNIT_NAME"] == null ? "" : _DataRow["AUDITUNIT_NAME"].ToString();
// //开户行
// _ChildXmlElementAUDITUNITSECTIONObject = _XmlDocument.CreateElement("SHUnitKHH");
// _ChildXmlElementAUDITUNITSECTION.AppendChild(_ChildXmlElementAUDITUNITSECTIONObject);
// _ChildXmlElementAUDITUNITSECTIONObject.InnerText = _DataRow["BANK_NAME"] == null ? "" : _DataRow["BANK_NAME"].ToString();
// //开户名 SHUnitKHName
// _ChildXmlElementAUDITUNITSECTIONObject = _XmlDocument.CreateElement("SHUnitKHName");
// _ChildXmlElementAUDITUNITSECTION.AppendChild(_ChildXmlElementAUDITUNITSECTIONObject);
// _ChildXmlElementAUDITUNITSECTIONObject.InnerText = _DataRow["BANK_PASSPORTNAME"] == null ? "" : _DataRow["BANK_PASSPORTNAME"].ToString();
// //账号 SHUnitKHAccount
// _ChildXmlElementAUDITUNITSECTIONObject = _XmlDocument.CreateElement("SHUnitKHAccount");
// _ChildXmlElementAUDITUNITSECTION.AppendChild(_ChildXmlElementAUDITUNITSECTIONObject);
// _ChildXmlElementAUDITUNITSECTIONObject.InnerText = _DataRow["BANK_ACCOUNT"] == null ? "" : _DataRow["BANK_ACCOUNT"].ToString();
// }
// XmlElement _ChildXmlElementSupervisePassport = _XmlDocument.CreateElement("SupervisePassport");
// _ChildXmlElement.AppendChild(_ChildXmlElementSupervisePassport);
// _ProInst.CreateXmlNode(_FundUseProjectScope.SupervisePassportInfo, _XmlDocument, _ChildXmlElementSupervisePassport, _Dictionary);
// double OtherMoney = 0.0;
// foreach (Running.Business.FundUsePlan _FundUsePlan in _FundUseProjectScope.FundUsePlanCollection)
// {
// XmlElement _ChildXmlElementFundUsePlan = _XmlDocument.CreateElement("FundUsePlan");
// _ChildXmlElement.AppendChild(_ChildXmlElementFundUsePlan);
// _ProInst.CreateXmlNode(_FundUsePlan, _XmlDocument, _ChildXmlElementFundUsePlan, _Dictionary);
// foreach( Running.Business.ProjectFund _ProjectFund in _FundUsePlan.ProjectFundCollection)
// {
// OtherMoney += _ProjectFund.ProjectFund_Money.Value;
// }
// }
// _ProInst.CreateXmlNode("ProjectFund_Money", OtherMoney.ToString(), _XmlDocument, _ChildXmlElementFundUseProjectScope, _Dictionary);
// }
//}
//#endregion
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
Common.PageHelper.CreateHeaderStyle(Page);
_ProInst = Running.Business.HIGHWAYPROINST.CreateInstance(Page);
this.ButtonVisible = false;
InitXml();
}
private void InitXml()
{
if (!string.IsNullOrEmpty(ReportXmlPath))
{
Xml1.TransformSource = ReportXslPath;
Xml1.DocumentSource = @"/Temporary/Temp/HighWay/" + ReportXmlPath;
}
}
protected void CallBackButton_Print_CallBackClick(object sender, ClientSetEventArgs e)
{
e.ClientScript = Page.GetOpenPopDialogClientScript("/HighWay/Common/ReportDefault.aspx?ReportXmlPath=" +
ReportXmlPath + "&ReportXslPath=" + ReportXslPath + "&ProInst_ID=" +
_ProInst.ProInst.ProInst_ID_Encrypt.ToString(), "ReportDefault", 1000, 600, true, false, true);
}
public override bool Save(bool AutoBindData = true)
{
InitXml();
Running.Business.JOINTLYSIGN _JOINTLYSIGN = new Running.Business.JOINTLYSIGN(_ProInst);
_JOINTLYSIGN.AddSearchParameter("HIGHWAYPROINST_ID", _ProInst.HIGHWAYPROINST_ID);
_JOINTLYSIGN.AddSearchParameter("ActDef_ID", _ProInst.ProInst.NowActInst.ActDef_ID);
if (_JOINTLYSIGN.Search())
{
if (string.IsNullOrEmpty(_JOINTLYSIGN.APPROVED_IDS) ||
(_JOINTLYSIGN.USER_IDS.Split(',').Length != _JOINTLYSIGN.APPROVED_IDS.Split(',').Length))
{
//2017/11/17朱梓毅修改会审转出时提示未进行会审人员
if (string.IsNullOrEmpty(_JOINTLYSIGN.APPROVED_IDS))
{
throw new Exception("请" + _JOINTLYSIGN.USER_NAMES + "审核后再转出业务!");
}
else if (_JOINTLYSIGN.USER_IDS.Split(',').Length != _JOINTLYSIGN.APPROVED_IDS.Split(',').Length)
{
string _USER_NAMES = "," + _JOINTLYSIGN.USER_NAMES + ",";
foreach (Running.Business.APPROVED _APPROVED in new Running.Business.APPROVED(_ProInst).FillCollection(
"WHERE APPROVED_ID IN (" + _JOINTLYSIGN.APPROVED_IDS + ")"))
{
if (_USER_NAMES.Contains("," + _APPROVED.Approved_Staff + ","))
{
_USER_NAMES = _USER_NAMES.Replace("," + _APPROVED.Approved_Staff + ",", ",");
}
}
_USER_NAMES = _USER_NAMES.Trim(',');
if (!string.IsNullOrWhiteSpace(_USER_NAMES))
{
throw new Exception("请" + _USER_NAMES + "审核后再转出业务!");
}
}
}
}
return true;
}
public override bool SaveEx(ClientSetEventArgs ClientSet)
{
return true;
}
public override void BindObjectToControl()
{
}
protected void CallBackButton_Reflash_CallBackClick(object sender, ClientSetEventArgs e)
{
LoadDataEx(e);
}
}
}