20230303新增清除工作经历重复功能按钮

This commit is contained in:
2023-03-03 14:58:36 +08:00
parent ffc4cb849e
commit f42d330b00
7 changed files with 148 additions and 14 deletions
+77 -4
View File
@@ -1,5 +1,7 @@
using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -28,6 +30,11 @@ namespace FineUIPro.Web.Person
Funs.FineUIPleaseSelect(drpPersonType, "按员工类别查询");
// 绑定表格
this.BindGrid();
if (this.CurrUser.PersonId == Const.sysglyId || this.CurrUser.PersonId == Const.hfnbdId)
{
this.btnResetItem.Hidden = false;
}
}
else
{
@@ -314,16 +321,82 @@ namespace FineUIPro.Web.Person
return;
}
var getPerson = Person_PersonsService.GetPerson_PersonsById(Grid1.SelectedRowID);
if (getPerson != null && getPerson.IsPost == true && getPerson.CurrentProjectId == null)
if (getPerson != null && getPerson.IsPost == true)
{
////人员直接派遣时候
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ProjectPersonEdit.aspx?PersonId={0}&Type=P", Grid1.SelectedRowID, "查看 - ")));
var getcuuProject = Funs.DB.SitePerson_Person.FirstOrDefault(x => x.IdentityCard == getPerson.IdentityCard && x.States == Const.ProjectPersonStates_1);
if (getcuuProject == null || getPerson.MultiProject == true)
{
////人员直接派遣时候
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ProjectPersonEdit.aspx?PersonId={0}&Type=P", Grid1.SelectedRowID, "查看 - ")));
}
else
{
var getProjectName = ProjectService.GetProjectNameByProjectId(getcuuProject.ProjectId) ?? "";
Alert.ShowInParent("当前人员已在项目:"+getProjectName+"任职,请选择不在项目的人员派遣!", MessageBoxIcon.Warning);
return;
}
}
else
{
Alert.ShowInParent("请选择在岗且不在项目的人员派遣!", MessageBoxIcon.Warning);
Alert.ShowInParent("请选择在岗人员派遣!", MessageBoxIcon.Warning);
return;
}
}
protected void btnResetItem_Click(object sender, EventArgs e)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
int count = 0;
var getSitePersons = db.SitePerson_PersonItem.Where(x=>x.IdentityCard != null).Select(x => x.IdentityCard).Distinct();
if (getSitePersons.Count() > 0)
{
foreach (var item in getSitePersons)
{
var getItems = db.SitePerson_PersonItem.Where(x => x.IdentityCard == item && x.OutTime.HasValue);
if (getItems.Count() > 0)
{
List<Model.SitePerson_PersonItem> getDelte = new List<Model.SitePerson_PersonItem>();
foreach (var ip in getItems)
{
var a = ip.InTime;
var b = ip.OutTime;
var getEx = getItems.FirstOrDefault(x => x.ProjectId == ip.ProjectId && x.PersonItemId != ip.PersonItemId && x.InTime <= ip.InTime && (x.OutTime > ip.OutTime || !x.OutTime.HasValue));
if (getEx != null)
{
count++;
getDelte.Add(ip);
}
}
if (getDelte.Count() > 0)
{
db.SitePerson_PersonItem.DeleteAllOnSubmit(getDelte);
db.SubmitChanges();
}
}
var getProjetItems = from x in getItems
join y in db.Base_Project on x.ProjectId equals y.ProjectId
where x.OutTime > y.EndDate
select x;
if (getProjetItems.Count() > 0)
{
foreach (var pitm in getProjetItems)
{
var getP = db.Base_Project.FirstOrDefault(x => x.ProjectId == pitm.ProjectId);
if (getP != null && getP.EndDate.HasValue)
{
pitm.OutTime = getP.EndDate;
db.SubmitChanges();
}
}
}
}
}
Alert.ShowInParent("操作完成!共清理" + count.ToString() + "行。", MessageBoxIcon.Warning);
}
}
}
}