using System; 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; namespace SuperMap.RealEstate.Personnel.Storage { /// /// T_ADDITIONAL_兼职信息表 的WebUserControl /// public partial class ADDITIONAL : UserControl { protected void Page_Load(object sender, EventArgs e) { } //在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等 public override void InitializeWebControl() { //绑定兼职岗位 ADDITIONAL_POSITION.Clear(); Business.RANK _RANK = new Business.RANK(Transaction); _RANK.BindingDropDownList(this.ADDITIONAL_POSITION.Items, "-1", 0, ""); //绑定兼职单位 ADDITIONAL_UNIT.Clear(); ADDITIONAL_DEPT.Clear(); DataTable dt = (new Business.DEPARTMENT(this.Transaction)).ExecuteDataTable( "SELECT * FROM PERSONNEL_STORAGE.T_DEPARTMENT WHERE DEPARTMENT_PID = '-1' ORDER BY DEPARTMENT_ID"); foreach (DataRow row in dt.Rows) { if (!row["DEPARTMENT_NAME"].ToString().Contains("离职人员") && !row["DEPARTMENT_NAME"].ToString().Contains("退休人员")) { ListItemEx _ListItemEx = new ListItemEx(); _ListItemEx.Value = row["DEPARTMENT_ID"].ToString(); _ListItemEx.Text = row["DEPARTMENT_NAME"].ToString(); ADDITIONAL_UNIT.Items.Add(_ListItemEx); //绑定兼职部门 DataTable dt_quasi_dept = (new Business.DEPARTMENT(this.Transaction)).ExecuteDataTable( @"SELECT DEPARTMENT_ID,DEPARTMENT_NAME FROM PERSONNEL_STORAGE.T_DEPARTMENT WHERE DEPARTMENT_NAME IS NOT NULL AND DEPARTMENT_PID = " + row["DEPARTMENT_ID"].ToString() + "ORDER BY DEPARTMENT_ID"); foreach (DataRow rw in dt_quasi_dept.Rows) { ListItemEx _ListItem = new ListItemEx(); _ListItem.Value = rw["DEPARTMENT_ID"].ToString(); _ListItem.Text = rw["DEPARTMENT_NAME"].ToString(); _ListItem.Level = 0; ADDITIONAL_DEPT.Items.Add(_ListItem); DataTable dts = (new Business.DEPARTMENT(this.Transaction)).ExecuteDataTable( @"SELECT DEPARTMENT_ID,DEPARTMENT_NAME FROM PERSONNEL_STORAGE.T_DEPARTMENT WHERE DEPARTMENT_NAME IS NOT NULL AND DEPARTMENT_PID = " + rw["DEPARTMENT_ID"].ToString() + "ORDER BY DEPARTMENT_ID"); foreach (DataRow rows in dts.Rows) { ListItemEx _ListItemExs = new ListItemEx(); _ListItemExs.Value = rows["DEPARTMENT_ID"].ToString(); _ListItemExs.Text = rows["DEPARTMENT_NAME"].ToString(); _ListItemExs.Level = 1; ADDITIONAL_DEPT.Items.Add(_ListItemExs); } } } } } //载入数据 public override bool LoadData() { //如果是工作流组件请自行修改载入的逻辑,以下是功能模块的默认代码 if (!String.IsNullOrEmpty(Request["ID"])) { CurrObject.ADDITIONAL_ID_Encrypt = Request["ID"]; return this.Select(); } else if (!String.IsNullOrEmpty(Request["STAFF_ID"])) { OPERATE_NAME.Text = Page.PassportInfo.Name; OPERATE_ID.Text = Page.PassportInfo.ID.ToString(); OPERATE_DATE.Text = System.DateTime.Now.ToString(); STAFF_ID.Text = Request["STAFF_ID"].ToDecrypt(); } //默认返回值,工作流组件返回True,功能模块返回False。 return (WorkFlowPage != null); } #region 方法 -> 界面逻辑处理 //OnDataAction_XXXXX 有一个系列可用,在此加入界面的逻辑处理 //e.CancelDataAction 来处理是否取消该动作; //失败的原因可以用Page.Alert()传递到页面 public override void OnDataAction_BeforeSave(DataActionEventArgs e) { if (string.IsNullOrEmpty(Request["ID"])) { Business.ADDITIONAL _ADDITIONAL = new Business.ADDITIONAL(Transaction); _ADDITIONAL.AddSearchParameter("STAFF_ID", Request["STAFF_ID"].ToDecrypt()); _ADDITIONAL.AddSearchParameter("ADDITIONAL_UNIT", ADDITIONAL_UNIT.SelectedValue); _ADDITIONAL.AddSearchParameter("ADDITIONAL_DEPT", ADDITIONAL_DEPT.SelectedValue); _ADDITIONAL.AddSearchParameter("ADDITIONAL_POSITION", ADDITIONAL_POSITION.SelectedValue); if (_ADDITIONAL.Search()) { throw new Exception("该岗位已兼职!"); } else { Business.STAFF _STAFF = new Business.STAFF(Transaction); _STAFF.STAFF_ID_Encrypt = Request["STAFF_ID"]; if (_STAFF.Select()) { if (_STAFF.CURRENT_POSITION.ToString() == ADDITIONAL_POSITION.SelectedValue && _STAFF.DEPARTMENT_ID.ToString() == ADDITIONAL_DEPT.SelectedValue) { throw new Exception("兼职岗位为现任岗位,不可兼职!"); } else { _STAFF.ADDITIONAL_POSITION += (string.IsNullOrEmpty(_STAFF.ADDITIONAL_POSITION) ? "" : ",") + ADDITIONAL_POSITION.SelectedValue; _STAFF.Update(); } } } } base.OnDataAction_BeforeSave(e); } public override void OnDataAction_AfterSave(DataActionEventArgs e) { DataTable additional = (new Business.ADDITIONAL(Transaction)).ExecuteDataTable( @"SELECT NVL(WM_CONCAT(DISTINCT ADDITIONAL_POSITION),'') AS CURRENT_POSITION FROM PERSONNEL_STORAGE.T_ADDITIONAL WHERE STAFF_ID = " + CurrObject.STAFF_ID); Business.STAFF _STAFF = new Business.STAFF(Transaction); _STAFF.STAFF_ID = CurrObject.STAFF_ID.Value; if (_STAFF.Select()) { _STAFF.ADDITIONAL_POSITION = additional.Rows[0][0].ToString(); _STAFF.Update(); } base.OnDataAction_AfterSave(e); } public override void OnDataAction_AfterDelete(DataActionEventArgs e) { DataTable additional = (new Business.ADDITIONAL(Transaction)).ExecuteDataTable( @"SELECT NVL(WM_CONCAT(DISTINCT ADDITIONAL_POSITION),'') AS CURRENT_POSITION FROM PERSONNEL_STORAGE.T_ADDITIONAL WHERE STAFF_ID = " + Request["STAFF_ID"].ToDecrypt()); Business.STAFF _STAFF = new Business.STAFF(Transaction); _STAFF.STAFF_ID_Encrypt = Request["STAFF_ID"]; if (_STAFF.Select()) { _STAFF.ADDITIONAL_POSITION = additional.Rows[0][0].ToString(); _STAFF.Update(); } base.OnDataAction_AfterDelete(e); } #endregion #region 方法 -> 兼职单位联动兼职部门 protected void ADDITIONAL_UNIT_CallBackSetControl(object sender, ClientSetEventArgs e) { //异动部门 ADDITIONAL_DEPT.Clear(); DataTable dt = (new Business.DEPARTMENT(this.Transaction)).ExecuteDataTable( @"SELECT DEPARTMENT_ID,DEPARTMENT_NAME FROM PERSONNEL_STORAGE.T_DEPARTMENT WHERE DEPARTMENT_NAME IS NOT NULL AND DEPARTMENT_PID = " + ADDITIONAL_UNIT.SelectedValue + "ORDER BY DEPARTMENT_ID"); foreach (DataRow row in dt.Rows) { ListItemEx _ListItemEx = new ListItemEx(); _ListItemEx.Value = row["DEPARTMENT_ID"].ToString(); _ListItemEx.Text = row["DEPARTMENT_NAME"].ToString(); _ListItemEx.Level = 0; ADDITIONAL_DEPT.Items.Add(_ListItemEx); DataTable dts = (new Business.DEPARTMENT(this.Transaction)).ExecuteDataTable( @"SELECT DEPARTMENT_ID,DEPARTMENT_NAME FROM PERSONNEL_STORAGE.T_DEPARTMENT WHERE DEPARTMENT_NAME IS NOT NULL AND DEPARTMENT_PID = " + row["DEPARTMENT_ID"].ToString() + "ORDER BY DEPARTMENT_ID"); foreach (DataRow rows in dts.Rows) { ListItemEx _ListItemExs = new ListItemEx(); _ListItemExs.Value = rows["DEPARTMENT_ID"].ToString(); _ListItemExs.Text = rows["DEPARTMENT_NAME"].ToString(); _ListItemExs.Level = 1; ADDITIONAL_DEPT.Items.Add(_ListItemExs); } } e.SetDropDownListEx(ADDITIONAL_DEPT); } #endregion } }