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 { /// /// T_SERVERPART_服务区站点 的WebUserControl /// public partial class SERVERPART : UserControl { 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 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 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); } } }