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

201 lines
9.5 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.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
{
/// <summary>
/// T_ADDITIONAL_兼职信息表 的WebUserControl
/// <summary>
public partial class ADDITIONAL : UserControl<Business.ADDITIONAL>
{
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<Business.ADDITIONAL> 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<Business.ADDITIONAL> 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<Business.ADDITIONAL> 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
}
}