394 lines
15 KiB
C#
394 lines
15 KiB
C#
using BLL;
|
|
using FastReport.DevComponents.Editors;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.Linq;
|
|
using AspNet = System.Web.UI.WebControls;
|
|
|
|
namespace FineUIPro.Web.Person
|
|
{
|
|
public partial class DepartPersonShunt : PageBase
|
|
{
|
|
/// <summary>
|
|
/// 加载页面
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
Funs.DropDownPageSize(this.ddlPageSize);
|
|
|
|
this.btnNew.OnClientClick = Window1.GetShowReference("PersonEdit.aspx?Type=Shunt&UnitId=" + Const.UnitId_SEDIN + "&DepartId=" + Const.Depart_constructionId) + "return false;";
|
|
////权限按钮方法
|
|
this.GetButtonPower();
|
|
WorkPostService.InitWorkPostNameByTypeDropDownList2(this.drpWorkPost, "1", false); //加载管理岗位
|
|
Funs.FineUIPleaseSelect(this.drpWorkPost, "请选择岗位");
|
|
|
|
WorkPostService.InitWorkPostNameByTypeDropDownList(this.drpWP, Const.PostType_1, false); //加载管理岗位
|
|
Funs.FineUIPleaseSelectNull(this.drpWP, "请选择岗位");
|
|
|
|
PostTitleService.InitPostTitleDropDownList(this.drpPostTitle, false);
|
|
Funs.FineUIPleaseSelect(this.drpPostTitle, "请选择职称");
|
|
|
|
PracticeCertificateService.InitPracticeCertificateDropDownList(this.drpCertificate, false);
|
|
Funs.FineUIPleaseSelect(this.drpCertificate, "请选择职业资格证书");
|
|
|
|
BLL.ProjectService.InitProjectDropDownList(this.drpProject, false);
|
|
Funs.FineUIPleaseSelect(this.drpProject, "请选择拟聘项目");
|
|
|
|
this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
|
|
// 绑定表格
|
|
this.BindGrid();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 绑定数据
|
|
/// </summary>
|
|
private void BindGrid()
|
|
{
|
|
var getData = Person_ShuntService.getListData(this.drpWorkPost.SelectedValue,this.drpPostTitle.SelectedValue,String.Empty,this.drpCertificate.SelectedValue, Grid1);
|
|
Grid1.RecordCount = Person_ShuntService.count;
|
|
Grid1.DataSource = getData;
|
|
Grid1.DataBind();
|
|
}
|
|
|
|
#region 查询
|
|
/// <summary>
|
|
/// 查询
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void TextBox_TextChanged(object sender, EventArgs e)
|
|
{
|
|
this.BindGrid();
|
|
}
|
|
#endregion
|
|
|
|
#region 获取按钮权限
|
|
/// <summary>
|
|
/// 获取按钮权限
|
|
/// </summary>
|
|
/// <param name="button"></param>
|
|
/// <returns></returns>
|
|
private void GetButtonPower()
|
|
{
|
|
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.PersonId, BLL.Const.DepartPersonShuntMenuId);
|
|
if (buttonList.Count() > 0)
|
|
{
|
|
if (buttonList.Contains(BLL.Const.BtnAdd))
|
|
{
|
|
this.btnNew.Hidden = false;
|
|
}
|
|
if (buttonList.Contains(BLL.Const.BtnModify))
|
|
{
|
|
this.btnMenuEdit.Hidden = false;
|
|
this.btnMenuDispatch.Hidden = false;
|
|
this.btnSure.Hidden = false;
|
|
this.drpProject.Hidden = false;
|
|
}
|
|
if (buttonList.Contains(BLL.Const.BtnDelete))
|
|
{
|
|
this.btnMenuDelete.Hidden = false;
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
/// <summary>
|
|
/// 关闭弹出窗
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Window1_Close(object sender, WindowCloseEventArgs e)
|
|
{
|
|
BindGrid();
|
|
}
|
|
|
|
#region 分页
|
|
/// <summary>
|
|
/// 分页
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
|
|
{
|
|
BindGrid();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分页显示条数下拉框
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
|
|
BindGrid();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 排序
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
|
|
{
|
|
BindGrid();
|
|
}
|
|
#endregion
|
|
|
|
|
|
/// <summary>
|
|
/// Grid行双击事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
|
|
{
|
|
this.EditData();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 右键编辑事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnMenuEdit_Click(object sender, EventArgs e)
|
|
{
|
|
this.EditData();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 编辑数据方法
|
|
/// </summary>
|
|
private void EditData()
|
|
{
|
|
//this.PageSize = this.Grid1.PageIndex;
|
|
if (Grid1.SelectedRowIndexArray.Length == 0)
|
|
{
|
|
Alert.ShowInParent("请至少选择一条记录!", MessageBoxIcon.Warning);
|
|
return;
|
|
}
|
|
if (this.btnMenuEdit.Hidden)
|
|
{
|
|
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PersonView.aspx?PersonId={0}", Grid1.SelectedRowID, "查看 - ")));
|
|
}
|
|
else
|
|
{
|
|
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PersonEdit.aspx?PersonId={0}&UnitId={1}&DepartId={2}", Grid1.SelectedRowID, Const.sedinId, Const.Depart_constructionId, "编辑 - ")));
|
|
}
|
|
}
|
|
|
|
#region 查看人员详细信息
|
|
/// <summary>
|
|
/// 查看人员详细信息
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnSee_Click(object sender, EventArgs e)
|
|
{
|
|
if (Grid1.SelectedRowIndexArray.Length == 0)
|
|
{
|
|
Alert.ShowInParent("请选择一条记录!", MessageBoxIcon.Warning);
|
|
return;
|
|
}
|
|
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PersonView.aspx?PersonId={0}", Grid1.SelectedRowID, "查看 - ")));
|
|
}
|
|
#endregion
|
|
|
|
#region 删除数据
|
|
/// <summary>
|
|
/// 右键删除事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnMenuDelete_Click(object sender, EventArgs e)
|
|
{
|
|
// this.PageSize = this.Grid1.PageIndex;
|
|
this.DeleteData();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除方法
|
|
/// </summary>
|
|
private void DeleteData()
|
|
{
|
|
if (Grid1.SelectedRowIndexArray.Length > 0)
|
|
{
|
|
string strShowNotify = Person_PersonsService.DeletePersons(Grid1.SelectedRowIDArray, this.CurrUser);
|
|
BindGrid();
|
|
if (!string.IsNullOrEmpty(strShowNotify))
|
|
{
|
|
Alert.ShowInTop(strShowNotify, MessageBoxIcon.Warning);
|
|
}
|
|
else
|
|
{
|
|
ShowNotify("删除数据成功!", MessageBoxIcon.Success);
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 派遣
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnMenuDispatch_Click(object sender, EventArgs e)
|
|
{
|
|
if (Grid1.SelectedRowIndexArray.Length == 0)
|
|
{
|
|
Alert.ShowInParent("请至少选择一条记录!", MessageBoxIcon.Warning);
|
|
return;
|
|
}
|
|
var getPerson = Person_PersonsService.GetPerson_PersonsById(Grid1.SelectedRowID);
|
|
if (getPerson != null && getPerson.IsPost == true)
|
|
{
|
|
////人员直接派遣时候
|
|
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ProjectPersonEdit.aspx?PersonId={0}&Type=P", Grid1.SelectedRowID, "查看 - ")));
|
|
}
|
|
else
|
|
{
|
|
Alert.ShowInParent("当前人员不在职,请完善个人信息签订合同后派遣!", MessageBoxIcon.Warning);
|
|
return;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 确定按钮事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnSure_Click(object sender, EventArgs e)
|
|
{
|
|
if (this.drpProject.SelectedValue != BLL.Const._Null)
|
|
{
|
|
bool b = true;
|
|
foreach (JObject mergedRow in Grid1.GetMergedData())
|
|
{
|
|
JObject values = mergedRow.Value<JObject>("values");
|
|
int i = mergedRow.Value<int>("index");
|
|
if (this.Grid1.SelectedRowIndexArray.Contains(i))
|
|
{
|
|
AspNet.CheckBox cb = (AspNet.CheckBox)(this.Grid1.Rows[i].FindControl("cbSelect"));
|
|
if (cb.Checked) //选择项
|
|
{
|
|
string workPost = values.Value<string>("WorkPost");
|
|
if (string.IsNullOrEmpty(workPost))
|
|
{
|
|
b = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!b)
|
|
{
|
|
Alert.ShowInTop("勾选人员的拟聘岗位不能为空!", MessageBoxIcon.Warning);
|
|
return;
|
|
}
|
|
|
|
int count=0;
|
|
int outCount = 0;
|
|
var workPosts = BLL.WorkPostService.GetWorkPostList();
|
|
foreach (JObject mergedRow in Grid1.GetMergedData())
|
|
{
|
|
JObject values = mergedRow.Value<JObject>("values");
|
|
int i = mergedRow.Value<int>("index");
|
|
AspNet.CheckBox cb = (AspNet.CheckBox)(this.Grid1.Rows[i].FindControl("cbSelect"));
|
|
if (cb.Checked) //选择项
|
|
{
|
|
string personId = this.Grid1.Rows[i].RowID;
|
|
string workPostId = string.Empty;
|
|
var getWorkPost = WorkPostService.GetWorkPostByName(values.Value<string>("WorkPost"));
|
|
if (getWorkPost != null)
|
|
{
|
|
workPostId = getWorkPost.WorkPostId;
|
|
}
|
|
var getPerson = Person_PersonsService.GetPerson_PersonsById(personId);
|
|
if (getPerson != null)
|
|
{
|
|
if (getPerson.IsPost == false)
|
|
{
|
|
outCount++;
|
|
}
|
|
else
|
|
{
|
|
SaveSitePerson(getPerson, workPostId);
|
|
Funs.DB.SubmitChanges();
|
|
count++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
string message = "批量派遣成功!共计成功" + count.ToString() + "人。";
|
|
if (outCount > 0)
|
|
{
|
|
message+="未能派遣(不在职)人员" + outCount.ToString() + "人。";
|
|
}
|
|
ShowNotify(message, MessageBoxIcon.Success);
|
|
BindGrid();
|
|
BLL.LogService.AddSys_Log(this.CurrUser, "人员派遣", string.Empty, BLL.Const.DepartPersonShuntMenuId, "人员批量派遣");
|
|
}
|
|
else
|
|
{
|
|
Alert.ShowInParent("请选择派遣项目!", MessageBoxIcon.Warning);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="getPerson"></param>
|
|
/// <param name="workPostId"></param>
|
|
private void SaveSitePerson(Model.Person_Persons getPerson, string workPostId)
|
|
{
|
|
Model.SitePerson_Person newProjectPerson = new Model.SitePerson_Person
|
|
{
|
|
PersonId = getPerson.PersonId,
|
|
PersonName = getPerson.PersonName,
|
|
IdentityCard = getPerson.IdentityCard,
|
|
UnitId = getPerson.UnitId ?? Const.UnitId_SEDIN,
|
|
ProjectId = this.drpProject.SelectedValue,
|
|
WorkPostId = workPostId,
|
|
// RoleIds = Funs.GetStringByArray(this.drpProjectRole.SelectedValueArray),
|
|
//TeamGroupId = this.drpTeamGroup.SelectedValue == Const._Null ? null : this.drpTeamGroup.SelectedValue,
|
|
InTime = DateTime.Now,
|
|
// AuditorId = this.drpAuditor.SelectedValue == Const._Null ? null : this.drpAuditor.SelectedValue,
|
|
AuditorDate = DateTime.Now,
|
|
OutTime = null,
|
|
States = Const.ProjectPersonStates_1,
|
|
};
|
|
|
|
var getPersonAuditor = Funs.DB.SitePerson_Person.FirstOrDefault(x => x.ProjectId == newProjectPerson.ProjectId && (x.RoleIds.Contains(Const.HSSEManager) || x.RoleIds.Contains(Const.HSSEAssistantManager)));
|
|
if (getPersonAuditor != null)
|
|
{
|
|
newProjectPerson.AuditorId = getPersonAuditor.PersonId;
|
|
}
|
|
|
|
var getProjectPerson = Funs.DB.SitePerson_Person.FirstOrDefault(x => x.ProjectId == newProjectPerson.ProjectId && (x.PersonId == newProjectPerson.PersonId || x.IdentityCard == newProjectPerson.IdentityCard));
|
|
if (getProjectPerson != null)
|
|
{
|
|
newProjectPerson.SitePersonId = getProjectPerson.SitePersonId;
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(newProjectPerson.SitePersonId))
|
|
{
|
|
SitePerson_PersonService.UpdateSitePerson(newProjectPerson);
|
|
LogService.AddSys_Log(this.CurrUser, newProjectPerson.IdentityCard, newProjectPerson.SitePersonId, BLL.Const.ProjectPersonMenuId, BLL.Const.BtnModify);
|
|
}
|
|
else
|
|
{
|
|
newProjectPerson.SitePersonId = SQLHelper.GetNewID();
|
|
SitePerson_PersonService.AddSitePerson(newProjectPerson);
|
|
LogService.AddSys_Log(this.CurrUser, newProjectPerson.IdentityCard, newProjectPerson.SitePersonId, BLL.Const.ProjectPersonMenuId, BLL.Const.BtnAdd);
|
|
}
|
|
}
|
|
}
|
|
} |