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

442 lines
19 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 System;
using System.Configuration;
using System.Data;
using System.Linq;
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 HZQR.Common;
using SRCDB = SuperMap.RealEstate.CoreFrameWork.Dictionary.Business;
namespace SuperMap.RealEstate.HighWay.Storage
{
/// <summary>
/// T_SERVERPART_服务区站点 的WebUserControl
/// <summary>
public partial class SERVERPART : UserControl<Business.SERVERPART>
{
protected string _ServerpartPoint = ConfigurationManager.AppSettings["ServerpartPoint"].ToString();
protected string _PROVINCE_CODE = ConfigurationManager.AppSettings["PROVINCE_CODES"].ToString();
#region ServerPart_ID
public Business.SERVERPART CurrServerPart
{
//通过对应的内码
get
{
try
{
if (string.IsNullOrEmpty(Request["FIELDENUM_ID"]))
{
return null;
}
Business.SERVERPART _SERVERPART = new Business.SERVERPART(this.Transaction);
_SERVERPART.AddSearchParameter("FIELDENUM_ID", Request["FIELDENUM_ID"].ToDecrypt());
if (_SERVERPART.Search())
{
return _SERVERPART;
}
else
{
return null;
}
}
catch
{
return null;
}
}
}
#endregion
#region GetBaiduPointString
public string GetBaiduPointString()
{
if (CurrServerPart == null)
return string.Empty;
//获得对应的服务区坐标
DataTable _DataTable = new DataTable();
_DataTable.Columns.Add("MAPINFO");
_DataTable.Columns.Add("MAP_ADDRESS");
_DataTable.Columns.Add("MAP_TEL");
_DataTable.Columns.Add("MAP_OBJECTCODE");
_DataTable.Columns.Add("MAPX");
_DataTable.Columns.Add("MAPY");
DataRow _DataRow = _DataTable.NewRow();
_DataRow["MAPINFO"] = CurrServerPart.SERVERPART_NAME + " " + CurrServerPart.SERVERPART_INFO;
_DataRow["MAP_ADDRESS"] = CurrServerPart.SERVERPART_ADDRESS;
_DataRow["MAP_OBJECTCODE"] = CurrServerPart.SERVERPART_ID_Encrypt;
_DataRow["MAP_TEL"] = CurrServerPart.SERVERPART_TEL;
_DataRow["MAPX"] = CurrServerPart.SERVERPART_X;
_DataRow["MAPY"] = CurrServerPart.SERVERPART_Y;
_DataTable.Rows.Add(_DataRow);
string PointString = string.Empty;
PointString = BaiDuMapHelper.GetBaiduPointString(PointString, _DataTable);
return PointString;
}
public string GetPointX
{
get
{
try
{
if (this.CurrObject.SERVERPART_X == null)
{
return _ServerpartPoint.Split(',')[0];
}
else
{
return this.CurrObject.SERVERPART_X.ToString();
}
}
catch
{
return _ServerpartPoint.Split(',')[0];
}
}
}
public string GetPointY
{
get
{
try
{
if (this.CurrObject.SERVERPART_Y == null)
{
return _ServerpartPoint.Split(',')[1];
}
else
{
return this.CurrObject.SERVERPART_Y.ToString();
}
}
catch
{
return _ServerpartPoint.Split(',')[1];
}
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
if (CurrObject.SERVERPART_ID != null)
{
Business.RTSERVERPART _RTSERVERPART = new Business.RTSERVERPART(this.Transaction);
_RTSERVERPART.AddSearchParameter("SERVERPART_ID", CurrServerPart.SERVERPART_ID);
if (_RTSERVERPART.Search())
{
BindObjectToControl(_RTSERVERPART);
}
Business.SERVERPARTINFO _SERVERPARTINFO = new Business.SERVERPARTINFO(this.Transaction);
_SERVERPARTINFO.AddSearchParameter("SERVERPART_ID", CurrServerPart.SERVERPART_ID);
if (_SERVERPARTINFO.Search())
{
BindObjectToControl(_SERVERPARTINFO);
}
}
REGIONTYPE_ID.Clear();
if (CurrObject.FIELDENUM_ID != null)
{
foreach (Business.SERVERPART _SERVERPART in new Business.SERVERPART(this.Transaction).FillCollection(
"WHERE FIELDENUM_ID IN (SELECT A.FIELDENUM_ID FROM PLATFORM_DICTIONARY.T_FIELDENUM A," +
"PLATFORM_DICTIONARY.T_FIELDENUM B WHERE A.FIELDENUM_ID <> " + CurrObject.FIELDENUM_ID +
" AND A.FIELDENUM_PID = B.FIELDENUM_PID AND B.FIELDENUM_ID = " + CurrObject.FIELDENUM_ID +
") ORDER BY SERVERPART_INDEX,SERVERPART_CODE"))
{
REGIONTYPE_ID.Items.Add(new ListItemEx(_SERVERPART.SERVERPART_NAME, _SERVERPART.SERVERPART_ID.ToString()));
}
if (CurrObject.REGIONTYPE_ID != null)
{
REGIONTYPE_ID.SelectedValue = CurrObject.REGIONTYPE_ID.ToString();
}
}
//区域类型
SPREGIONTYPE_ID.Clear();
if (!string.IsNullOrWhiteSpace(Request["PROVINCE_CODE"]))
{
foreach (Business.SERVERPARTTYPE _SERVERPARTTYPE in new Business.SERVERPARTTYPE(Transaction).FillCollection(
"WHERE SERVERPARTSTATICTYPE_ID = 1000 AND TYPE_STATE = 1 AND PROVINCE_CODE = " +
Request["PROVINCE_CODE"].ToDecrypt() + " ORDER BY TYPE_PID,TYPE_INDEX,TYPE_NAME"))
{
ListItemEx _ListItemEx = new ListItemEx();
_ListItemEx.Text = "[" + _SERVERPARTTYPE.TYPE_INDEX + "]" + _SERVERPARTTYPE.TYPE_NAME;
_ListItemEx.Value = _SERVERPARTTYPE.SERVERPARTTYPE_ID.ToString();
SPREGIONTYPE_ID.Items.Add(_ListItemEx);
}
if (CurrObject.SPREGIONTYPE_ID != null)
{
SPREGIONTYPE_ID.SelectedValue = CurrObject.SPREGIONTYPE_ID.ToString();
}
}
}
//在此加入界面的数据初始化(Page_Load之前)如DropDownList的数据源绑定等
public override void InitializeWebControl()
{
PROVINCE_CODE.Items.Clear();
foreach (SRCDB.FieldEnum _FieldEnum in (new SRCDB.FieldEnum(this.Transaction)).FillCollection(
@"WHERE FieldExplain_ID IN (SELECT FieldExplain_ID FROM T_FieldExplain WHERE FieldExplain_Field = 'DIVISION_CODE') AND
FieldEnum_PID = -1 ORDER BY FIELDENUM_INDEX"))
{
ListItemEx _ListItemEx = new ListItemEx();
_ListItemEx.Text = _FieldEnum.FieldEnum_Name;
_ListItemEx.Value = _FieldEnum.FieldEnum_ID.ToString();
_ListItemEx.Level = 0;
PROVINCE_CODE.Items.Add(_ListItemEx);
foreach (SRCDB.FieldEnum _ChildFieldEnum in new SRCDB.FieldEnum(Transaction).FillCollection(
@"WHERE FieldExplain_ID IN (SELECT FieldExplain_ID FROM T_FieldExplain WHERE FieldExplain_Field = 'DIVISION_CODE') AND
NOT EXISTS(SELECT 1 FROM HIGHWAY_STORAGE.T_SERVERPART WHERE FieldEnum_ID = T_FieldEnum.FieldEnum_ID) AND
FieldEnum_PID = " + _FieldEnum.FieldEnum_ID + " ORDER BY FIELDENUM_INDEX"))
{
_ListItemEx = new ListItemEx();
_ListItemEx.Text = _ChildFieldEnum.FieldEnum_Name;
_ListItemEx.Value = _ChildFieldEnum.FieldEnum_ID.ToString();
_ListItemEx.Level = 1;
PROVINCE_CODE.Items.Add(_ListItemEx);
}
if (_FieldEnum.FieldEnum_Value == "330000")
{
foreach (Business.SERVERPART _SERVERPART in new Business.SERVERPART(Transaction).FillCollection(
"WHERE SERVERPART_CODE IN (" + _PROVINCE_CODE + ")"))
{
_ListItemEx = new ListItemEx();
_ListItemEx.Text = _SERVERPART.SERVERPART_NAME;
_ListItemEx.Value = _SERVERPART.FIELDENUM_ID.ToString();
_ListItemEx.Level = 1;
PROVINCE_CODE.Items.Add(_ListItemEx);
}
}
}
//站点类型
STATISTICS_TYPE.Clear();
DictionaryHelper.BindingDropDownList("SERVERPARTSITE_TYPE", STATISTICS_TYPE.Items, this.Transaction);
//经营类型
SERVERPART_TYPE.Clear();
DictionaryHelper.BindingDropDownList("SERVERPART_TYPE", SERVERPART_TYPE.Items, this.Transaction);
//业态
BUSINESSTYPE.Clear();
DictionaryHelper.BindingDropDownList("BUSINESSTYPE", BUSINESSTYPE.Items, this.Transaction);
//母婴室是否有
HASMOTHER.Clear();
DictionaryHelper.BindingDropDownList("ISYES", HASMOTHER.Items, this.Transaction);
//儿童游乐场是否有
HASCHILD.Clear();
DictionaryHelper.BindingDropDownList("ISYES", HASCHILD.Items, this.Transaction);
//淋浴房
HASSHOWERROOM.Clear();
DictionaryHelper.BindingDropDownList("ISYES", HASSHOWERROOM.Items, this.Transaction);
//第三卫生间是否
HASTHIRDTOILETS.Clear();
DictionaryHelper.BindingDropDownList("ISYES", HASTHIRDTOILETS.Items, this.Transaction);
//开水间是否有
HASWATERROOM.Clear();
DictionaryHelper.BindingDropDownList("ISYES", HASWATERROOM.Items, this.Transaction);
//HASPILOTLOUNGE 驾驶员休息室
HASPILOTLOUNGE.Clear();
DictionaryHelper.BindingDropDownList("ISYES", HASPILOTLOUNGE.Items, this.Transaction);
//HASBACKGROUNDRADIO
HASBACKGROUNDRADIO.Clear();
DictionaryHelper.BindingDropDownList("ISYES", HASBACKGROUNDRADIO.Items, this.Transaction);
//Wifi是否有
HASWIFI.Clear();
DictionaryHelper.BindingDropDownList("ISYES", HASWIFI.Items, this.Transaction);
//
HASMESSAGESEARCH.Clear();
DictionaryHelper.BindingDropDownList("ISYES", HASMESSAGESEARCH.Items, this.Transaction);
//冷菜间
HASPANTRY.Clear();
DictionaryHelper.BindingDropDownList("ISYES", HASPANTRY.Items, this.Transaction);
}
//载入数据
public override bool LoadData()
{
//如果是工作流组件请自行修改载入的逻辑,以下是功能模块的默认代码
if (CurrServerPart != null)
{
//SERVERPART_CODE.Visible = false;
CurrObject.SERVERPART_ID_Encrypt = CurrServerPart.SERVERPART_ID_Encrypt;
return this.Select();
}
if (!String.IsNullOrEmpty(Request["FIELDENUM_ID"]))
{
SRCDB.FieldEnum _FieldEnum = new SRCDB.FieldEnum(this.Transaction);
_FieldEnum.FieldEnum_ID_Encrypt = Request["FIELDENUM_ID"].ToString();
if (_FieldEnum.Select())
{
FIELDENUM_ID.Text = _FieldEnum.FieldEnum_ID.ToString();
SERVERPART_NAME.Text = _FieldEnum.FieldEnum_Name;
SERVERPART_CODE.Text = _FieldEnum.FieldEnum_Value;
PROVINCE_CODE.SelectedValue = _FieldEnum.FieldEnum_PID.ToString();
}
}
else
{
PROVINCE_CODE.Enabled = true;
}
//默认返回值工作流组件返回True,功能模块返回False。
return (WorkFlowPage != null);
}
//OnDataAction_XXXXX 有一个系列可用,在此加入界面的逻辑处理
//e.CancelDataAction 来处理是否取消该动作;
//失败的原因可以用Page.Alert()传递到页面
public override void OnDataAction_BeforeSave(DataActionEventArgs<Business.SERVERPART> e)
{
if (Request.Params["editorValue"] != null)
{
e.CurrObject.SERVERPART_DESC = Request.Params["editorValue"].ToString();
}
e.CurrObject.STAFF_ID = Page.PassportInfo.ID;
e.CurrObject.STAFF_NAME = Page.PassportInfo.Name;
e.CurrObject.OPERATE_DATE = DateTime.Now;
PROVINCE_NAME.Text = PROVINCE_CODE.SelectedItem.Text;
if (!string.IsNullOrEmpty(REGIONTYPE_ID.SelectedValue))
{
REGIONTYPE_NAME.Text = REGIONTYPE_ID.SelectedItem.Text;
}
else
{
REGIONTYPE_NAME.Text = "";
}
if (!string.IsNullOrEmpty(SPREGIONTYPE_ID.SelectedValue))
{
SPREGIONTYPE_INDEX.Text = SPREGIONTYPE_ID.SelectedItem.Text.Split('[')[1].Split(']')[0];
SPREGIONTYPE_NAME.Text = SPREGIONTYPE_ID.SelectedItem.Text.Split(']')[1];
e.CurrObject.SPREGIONTYPE_INDEX = int.Parse(SPREGIONTYPE_INDEX.Text);
e.CurrObject.SPREGIONTYPE_NAME = SPREGIONTYPE_NAME.Text;
}
else
{
SPREGIONTYPE_INDEX.Text = "";
SPREGIONTYPE_NAME.Text = "";
e.CurrObject.SPREGIONTYPE_INDEX = null;
e.CurrObject.SPREGIONTYPE_NAME = SPREGIONTYPE_NAME.Text;
}
base.OnDataAction_BeforeSave(e);
}
public override void OnDataAction_AfterSave(DataActionEventArgs<Business.SERVERPART> e)
{
if (e.CurrObject.SPREGIONTYPE_ID != null)
{
Business.SPSTATICTYPE _SPSTATICTYPE = new Business.SPSTATICTYPE(Transaction);
if (_SPSTATICTYPE.GetCount("WHERE SERVERPART_ID = " + e.CurrObject.SERVERPART_ID) == 0)
{
_SPSTATICTYPE.SERVERPART_ID = e.CurrObject.SERVERPART_ID;
_SPSTATICTYPE.SERVERPARTTYPE_ID = e.CurrObject.SPREGIONTYPE_ID;
_SPSTATICTYPE.Insert();
}
else if (_SPSTATICTYPE.GetCount("WHERE SERVERPART_ID = " + e.CurrObject.SERVERPART_ID +
" AND SERVERPARTTYPE_ID = " + e.CurrObject.SPREGIONTYPE_ID) == 0)
{
_SPSTATICTYPE.ExecuteNonQuery("DELETE FROM HIGHWAY_STORAGE.T_SPSTATICTYPE WHERE SERVERPART_ID = " +
e.CurrObject.SERVERPART_ID, null);
_SPSTATICTYPE.SERVERPART_ID = e.CurrObject.SERVERPART_ID;
_SPSTATICTYPE.SERVERPARTTYPE_ID = e.CurrObject.SPREGIONTYPE_ID;
_SPSTATICTYPE.Insert();
}
}
//保存拓展信息
Business.SERVERPARTINFO _SERVERPARTINFO = new Business.SERVERPARTINFO(this.Transaction);
BindControlToObject(_SERVERPARTINFO);
if (string.IsNullOrEmpty(SERVERPARTINFO_ID.Text))
{
_SERVERPARTINFO.Insert();
SERVERPARTINFO_ID.Text = _SERVERPARTINFO.SERVERPARTINFO_ID.ToString();
}
else
{
_SERVERPARTINFO.Update();
}
Business.RTSERVERPART _RTSERVERPART = new Business.RTSERVERPART(this.Transaction);
BindControlToObject(_RTSERVERPART);
if (string.IsNullOrEmpty(RTSERVERPART_ID.Text))
{
_RTSERVERPART.Insert();
RTSERVERPART_ID.Text = _RTSERVERPART.RTSERVERPART_ID.ToString();
}
else
{
_RTSERVERPART.Update();
}
bool Changed = false;
SRCDB.FieldEnum _FieldEnum = new SRCDB.FieldEnum(this.Transaction);
_FieldEnum.FieldEnum_ID = CurrObject.FIELDENUM_ID == null ? 0 : CurrObject.FIELDENUM_ID;
if (_FieldEnum.Select())
{
if (_FieldEnum.FieldEnum_Name != SERVERPART_NAME.Text)
{
_FieldEnum.FieldEnum_Name = SERVERPART_NAME.Text;
Changed = true;
}
if (_FieldEnum.FieldEnum_Value != SERVERPART_CODE.Text)
{
_FieldEnum.FieldEnum_Value = SERVERPART_CODE.Text;
Changed = true;
}
if (_FieldEnum.FieldEnum_Index != int.Parse(SERVERPART_CODE.Text))
{
_FieldEnum.FieldEnum_Index = int.Parse(SERVERPART_CODE.Text);
Changed = true;
}
//if (_FieldEnum.FieldEnum_PID.ToString() != PROVINCE_CODE.SelectedValue)
//{
// _FieldEnum.FieldEnum_PID = int.Parse(PROVINCE_CODE.SelectedValue);
// Changed = true;
//}
if (Changed)
{
_FieldEnum.Update();
}
}
else
{
SRCDB.FieldEnum _FIELDENUM = new SRCDB.FieldEnum(this.Transaction);
_FIELDENUM.FieldExplain_ID = _FIELDENUM.FillCollection(
"WHERE FIELDENUM_ID = " + PROVINCE_CODE.SelectedValue)[0].FieldExplain_ID;
_FIELDENUM.FieldEnum_Name = SERVERPART_NAME.Text;
_FIELDENUM.FieldEnum_Value = SERVERPART_CODE.Text;
_FIELDENUM.FieldEnum_Index = int.Parse(SERVERPART_CODE.Text);
_FIELDENUM.FieldEnum_PID = int.Parse(PROVINCE_CODE.SelectedValue);
_FIELDENUM.Insert();
CurrObject.FIELDENUM_ID = _FIELDENUM.FieldEnum_ID;
CurrObject.Update();
}
base.OnDataAction_AfterSave(e);
}
protected void PROVINCE_CODE_CallBackSetControl(object sender, ClientSetEventArgs e)
{
//区域类型
SPREGIONTYPE_ID.Clear();
foreach (Business.SERVERPARTTYPE _SERVERPARTTYPE in new Business.SERVERPARTTYPE(Transaction).FillCollection(
"WHERE SERVERPARTSTATICTYPE_ID = 1000 AND TYPE_STATE = 1 AND PROVINCE_CODE = " + Business.CommonHelper.GetProvinceCode(
PROVINCE_CODE.SelectedValue.TryParseToInt(), Transaction) + " ORDER BY TYPE_PID,TYPE_INDEX,TYPE_NAME"))
{
ListItemEx _ListItemEx = new ListItemEx();
_ListItemEx.Text = "[" + _SERVERPARTTYPE.TYPE_INDEX + "]" + _SERVERPARTTYPE.TYPE_NAME;
_ListItemEx.Value = _SERVERPARTTYPE.SERVERPARTTYPE_ID.ToString();
SPREGIONTYPE_ID.Items.Add(_ListItemEx);
}
e.SetDropDownListEx(SPREGIONTYPE_ID);
}
}
}