202306281、优化人员档案列表未培训判断。2、删除项目人员方法加判断存在重复身份证号码人员直接删除。3、项目劳务人员加部门查询下拉框。

This commit is contained in:
杨红卫 2023-06-28 16:17:27 +08:00
parent 124a6ec046
commit 4849aa0e2b
9 changed files with 207 additions and 48 deletions

View File

@ -0,0 +1,94 @@
ALTER VIEW [dbo].[View_SitePerson_Person]
AS
/*现场人员视图*/
SELECT SitePerson.ProjectId,
Project.ProjectCode,
Project.ProjectName,
SitePerson.SitePersonId,
persons.PersonId,
SitePerson.CardNo,
Persons.PersonName,
Persons.Sex,
(Case Persons.Sex WHEN '1' THEN '' WHEN '2' THEN '' ELSE '' END) AS SexName,
Persons.IdentityCard,
Persons.Address,
SitePerson.UnitId,
Persons.DepartId,
Persons.Birthday,
SitePerson.TeamGroupId,
SitePerson.WorkAreaId,
SitePerson.WorkPostId,
SitePerson.InTime,
SitePerson.OutTime,
SitePerson.OutResult,
Persons.Telephone,
Persons.PositionId,
Persons.PostTitleId,
Persons.PhotoUrl,
Unit.UnitCode,
Unit.UnitName,
TeamGroup.TeamGroupName,
Post.WorkPostName,
Position.PositionName,
Title.PostTitleName,
Depart.DepartName,
Post.PostType,
Post.IsHsse,
(SELECT COUNT(*) FROM EduTrain_TrainRecordDetail T
LEFT JOIN EduTrain_TrainRecord AS E ON T.TrainingId=E.TrainingId
WHERE T.PersonId=SitePerson.PersonId AND E.ProjectId=SitePerson.ProjectId AND T.CheckResult=1) AS TrainCount,
(SELECT COUNT(*) FROM Training_TestRecord R
WHERE R.TestManId=SitePerson.PersonId AND R.ProjectId=SitePerson.ProjectId and R.TestScores > ISNULL((SELECT TOP 1 PassingScore FROM Sys_TestRule),60)) AS TrainCount1,
SitePerson.AuditorId,
Persons.PersonName AS AuditorName,
SitePerson.AuditorDate,
Persons.IDCardUrl,
Persons.IsForeign,
case when Persons.IsForeign=1 then '' else '' end as IsForeignStr,
Persons.IdcardType,
BasicData1.dictName as IdcardTypeName,
Persons.IdcardStartDate,
Persons.IdcardEndDate,
Persons.IdcardForever,
case when Persons.IdcardForever='Y' then '' else '' end as IdcardForeverStr,
Persons.PoliticsStatus,
BasicData2.dictName as PoliticsStatusName,
Persons.IdcardAddress,
Persons.Nation,
BasicData3.dictName as NationName,
Persons.EduLevel,
BasicData4.dictName as EduLevelName,
Persons.MaritalStatus,
BasicData5.dictName as MaritalStatusName,
Persons.CountryCode,
Country.cname as CountryName,
Persons.ProvinceCode,
City.cname as ProvinceName,
Persons.PersonType,
(case when Persons.PersonType='2' then '外聘' when Persons.PersonType='3' then '第三方' else '员工' end) as IsOutsideStr,
--WorkArea.UnitWorkCode AS WorkAreaCode,
WorkAreaCode= STUFF((SELECT ',' + UnitWorkCode FROM dbo.WBS_UnitWork where PATINDEX('%,' + RTRIM(UnitWorkId) + ',%',',' +SitePerson.WorkAreaId + ',')>0 FOR XML PATH('')), 1, 1,''),
--WorkArea.UnitWorkName AS WorkAreaName
WorkAreaName= STUFF((SELECT ',' + UnitWorkName FROM dbo.WBS_UnitWork where PATINDEX('%,' + RTRIM(UnitWorkId) + ',%',',' +SitePerson.WorkAreaId + ',')>0 FOR XML PATH('')), 1, 1,''),
SitePerson.RealNameAddTime,
SitePerson.RealNameUpdateTime,
Persons.HeadImage,
SitePerson.States
FROM SitePerson_Person AS SitePerson
LEFT JOIN Person_Persons AS Persons ON SitePerson.PersonId=Persons.PersonId
LEFT JOIN Base_Project AS Project ON Project.ProjectId=SitePerson.ProjectId
LEFT JOIN Base_Unit AS Unit ON Unit.UnitId = SitePerson.UnitId
LEFT JOIN ProjectData_TeamGroup AS TeamGroup ON TeamGroup.TeamGroupId=SitePerson.TeamGroupId
LEFT JOIN Base_WorkPost AS Post ON Post.WorkPostId = SitePerson.WorkPostId
LEFT JOIN Base_Position AS Position ON Position.PositionId = Persons.PositionId
Left JOIN Base_PostTitle AS Title ON Title.PostTitleId = Persons.PostTitleId
Left JOIN Base_Depart AS Depart ON Depart.DepartId = Persons.DepartId
Left JOIN RealName_BasicData AS BasicData1 ON BasicData1.dictCode = Persons.IdcardType
Left JOIN RealName_BasicData AS BasicData2 ON BasicData2.dictCode = Persons.PoliticsStatus
Left JOIN RealName_BasicData AS BasicData3 ON BasicData3.dictCode = Persons.Nation
Left JOIN RealName_BasicData AS BasicData4 ON BasicData4.dictCode = Persons.EduLevel
Left JOIN RealName_BasicData AS BasicData5 ON BasicData5.dictCode = Persons.MaritalStatus
Left JOIN RealName_Country AS Country ON Country.CountryId = Persons.CountryCode
Left JOIN RealName_City AS City ON City.provinceCode = Persons.ProvinceCode and City.CountryId = Persons.CountryCode
GO

View File

@ -0,0 +1,5 @@
--ADD BY YangHongwei 2023-06-28
1、优化人员档案列表未培训判断。
2、删除项目人员方法加判断存在重复身份证号码人员直接删除。
3、项目劳务人员加部门查询下拉框。
--END

View File

@ -44,7 +44,7 @@ namespace BLL
/// <param name="states"></param>
/// <param name="Grid1"></param>
/// <returns></returns>
public static IEnumerable getListData(string projetcId, string unitId, string workPostId, string name, string idCard, string states, string personType, Grid Grid1)
public static IEnumerable getListData(string projetcId, string unitId, string departId, string workPostId, string name, string idCard, string states, string personType, Grid Grid1)
{
IQueryable<Model.View_SitePerson_Person> getDataList = getDataLists;
if (!string.IsNullOrEmpty(projetcId) && projetcId != Const._Null)
@ -55,6 +55,10 @@ namespace BLL
{
getDataList = getDataList.Where(e => e.UnitId == unitId);
}
if (!string.IsNullOrEmpty(departId) && departId != Const._Null)
{
getDataList = getDataList.Where(e => e.DepartId == departId);
}
if (!string.IsNullOrEmpty(workPostId) && workPostId != Const._Null)
{
getDataList = getDataList.Where(e => e.WorkPostId == workPostId);
@ -696,33 +700,42 @@ namespace BLL
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
Model.SitePerson_Person newPerson = new Model.SitePerson_Person
var getPerson = db.SitePerson_Person.FirstOrDefault(x => x.IdentityCard == person.IdentityCard && x.ProjectId == person.ProjectId);
if (getPerson == null)
{
SitePersonId = person.SitePersonId,
PersonId = person.PersonId,
CardNo = person.CardNo,
PersonName = person.PersonName,
UnitId = person.UnitId,
IdentityCard = person.IdentityCard,
ProjectId = person.ProjectId,
TeamGroupId = person.TeamGroupId,
WorkAreaId = person.WorkAreaId,
WorkPostId = person.WorkPostId,
RoleIds = person.RoleIds,
OutTime = person.OutTime,
OutResult = person.OutResult,
AuditorId = person.AuditorId,
AuditorDate = person.AuditorDate,
InTime = person.InTime.HasValue ? person.InTime : DateTime.Now,
Isprint = "0",
States = person.States,
IsSafetyMonitoring=person.IsSafetyMonitoring,
};
Model.SitePerson_Person newPerson = new Model.SitePerson_Person
{
SitePersonId = person.SitePersonId,
PersonId = person.PersonId,
CardNo = person.CardNo,
PersonName = person.PersonName,
UnitId = person.UnitId,
IdentityCard = person.IdentityCard,
ProjectId = person.ProjectId,
TeamGroupId = person.TeamGroupId,
WorkAreaId = person.WorkAreaId,
WorkPostId = person.WorkPostId,
RoleIds = person.RoleIds,
OutTime = person.OutTime,
OutResult = person.OutResult,
AuditorId = person.AuditorId,
AuditorDate = person.AuditorDate,
InTime = person.InTime.HasValue ? person.InTime : DateTime.Now,
Isprint = "0",
States = person.States,
IsSafetyMonitoring = person.IsSafetyMonitoring,
};
////现场人员项目出入场记录
SitePerson_PersonItemService.SetPersonItemInOut(newPerson, null);
db.SitePerson_Person.InsertOnSubmit(newPerson);
db.SubmitChanges();
////现场人员项目出入场记录
SitePerson_PersonItemService.SetPersonItemInOut(newPerson, null);
db.SitePerson_Person.InsertOnSubmit(newPerson);
db.SubmitChanges();
}
else
{
person.SitePersonId = getPerson.SitePersonId;
UpdateSitePerson(person, null);
}
}
}
@ -875,15 +888,22 @@ namespace BLL
/// <param name="sitePersonId">人员Id</param>
public static void DeleteSitePersonById(string sitePersonId)
{
var person = Funs.DB.SitePerson_Person.FirstOrDefault(e => e.SitePersonId == sitePersonId);
if (person != null)
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
////现场人员项目出入场记录
person.States = Const.ProjectPersonStates_2;
SitePerson_PersonItemService.SetPersonItemInOut(person, null);
var person = db.SitePerson_Person.FirstOrDefault(e => e.SitePersonId == sitePersonId);
if (person != null)
{
var getSitePersons = db.SitePerson_Person.Where(x => x.IdentityCard == person.IdentityCard && x.ProjectId == person.ProjectId);
if (getSitePersons.Count() == 1)
{
////现场人员项目出入场记录
person.States = Const.ProjectPersonStates_2;
SitePerson_PersonItemService.SetPersonItemInOut(person, null);
}
Funs.DB.SitePerson_Person.DeleteOnSubmit(person);
Funs.DB.SubmitChanges();
db.SitePerson_Person.DeleteOnSubmit(person);
db.SubmitChanges();
}
}
}

View File

@ -39,12 +39,12 @@
</f:DatePicker>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:Button ID="btnNew" ToolTip="增加" Icon="Add" runat="server" Hidden="true" OnClick="btnNew_Click">
<f:Button ID="btnNew" Text="增加" Icon="Add" runat="server" Hidden="true" OnClick="btnNew_Click">
</f:Button>
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" Text="导出" Icon="FolderUp"
EnableAjax="false" DisableControlBeforePostBack="false">
</f:Button>
<f:Button ID="btnRefresh" ToolTip="刷明细" Icon="ArrowRefresh" runat="server" Hidden="true" OnClick="btnRefresh_Click">
<f:Button ID="btnRefresh" Text="刷明细" Icon="ArrowRefresh" runat="server" Hidden="true" OnClick="btnRefresh_Click">
</f:Button>
</Items>
</f:Toolbar>

View File

@ -191,34 +191,42 @@ namespace FineUIPro.Web.HSSE.SitePerson
projectId = str[1];
}
string strSql = @"SELECT ProjectId,SitePersonId,PersonId,PersonName,IdentityCard,CardNo,PersonName
,WorkPostId,WorkPostName,UnitId,UnitName,TeamGroupId,TeamGroupName,InTime,RealNameAddTime,States,TrainCount,TrainCount1
FROM View_SitePerson_Person
Where ProjectId=@ProjectId ";
string strSql = @"SELECT SitePerson.ProjectId,SitePerson.SitePersonId,SitePerson.PersonId,SitePerson.PersonName,SitePerson.IdentityCard,SitePerson.CardNo,SitePerson.PersonName
,SitePerson.WorkPostId,WorkPostName,SitePerson.UnitId,Unit.UnitName,SitePerson.TeamGroupId,TeamGroup.TeamGroupName,SitePerson.InTime,SitePerson.RealNameAddTime,SitePerson.States,
(SELECT COUNT(*) FROM EduTrain_TrainRecordDetail T
LEFT JOIN EduTrain_TrainRecord AS E ON T.TrainingId=E.TrainingId
WHERE T.PersonId=SitePerson.PersonId AND E.ProjectId=SitePerson.ProjectId AND T.CheckResult=1) AS TrainCount,
(SELECT COUNT(*) FROM Training_TestRecord R
WHERE R.TestManId=SitePerson.PersonId AND R.ProjectId=SitePerson.ProjectId and R.TestScores > ISNULL((SELECT TOP 1 PassingScore FROM Sys_TestRule),60)) AS TrainCount1
FROM SitePerson_Person AS SitePerson
LEFT JOIN Base_Unit AS Unit ON Unit.UnitId = SitePerson.UnitId
LEFT JOIN Base_WorkPost AS Post ON Post.WorkPostId = SitePerson.WorkPostId
LEFT JOIN ProjectData_TeamGroup AS TeamGroup ON TeamGroup.TeamGroupId=SitePerson.TeamGroupId
Where SitePerson.ProjectId=@ProjectId ";
List<SqlParameter> listStr = new List<SqlParameter>
{
new SqlParameter("@ProjectId", this.ProjectId)
};
if (!string.IsNullOrEmpty(unitId) && unitId != "0")
{
strSql += " AND UnitId =@UnitId ";
strSql += " AND SitePerson.UnitId =@UnitId ";
listStr.Add(new SqlParameter("@UnitId", unitId));
}
if (!string.IsNullOrEmpty(this.txtPersonName.Text.Trim()))
{
strSql += " AND PersonName LIKE @PersonName";
strSql += " AND SitePerson.PersonName LIKE @PersonName";
listStr.Add(new SqlParameter("@PersonName", "%" + this.txtPersonName.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(this.txtIdentityCard.Text.Trim()))
{
strSql += " AND IdentityCard LIKE @IdentityCard";
strSql += " AND SitePerson.IdentityCard LIKE @IdentityCard";
listStr.Add(new SqlParameter("@IdentityCard", "%" + this.txtIdentityCard.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(this.drpTreamGroup.SelectedValue) && this.drpTreamGroup.SelectedValue != BLL.Const._Null)
{
strSql += " AND TeamGroupId = @TeamGroupId";
strSql += " AND SitePerson.TeamGroupId = @TeamGroupId";
listStr.Add(new SqlParameter("@TeamGroupId", this.drpTreamGroup.SelectedValue));
}
@ -230,7 +238,7 @@ namespace FineUIPro.Web.HSSE.SitePerson
{
if (!string.IsNullOrEmpty(item) && item != BLL.Const._Null)
{
strSql += " OR WorkPostId = @WorkPostId" + i.ToString();
strSql += " OR SitePerson.WorkPostId = @WorkPostId" + i.ToString();
listStr.Add(new SqlParameter("@WorkPostId" + i.ToString(), item));
}
@ -245,15 +253,15 @@ namespace FineUIPro.Web.HSSE.SitePerson
}
if (this.ckIsUsed.Checked)
{
strSql += " AND States ='1'";
strSql += " AND SitePerson.States ='1'";
}
if (this.ckJT.Checked)
{
strSql += " AND RealNameAddTime IS NULL";
strSql += " AND SitePerson.RealNameAddTime IS NULL";
}
if (this.ckIdCardInfoNotOK.Checked)
{
strSql += " AND (IdcardType is null or IdentityCard is null or PhotoUrl is null or HeadImage IS NULL OR (LEN(IdentityCard) != 15 AND LEN(IdentityCard) != 18) or TeamGroupId is null or WorkPostId is null)";
strSql += " AND (SitePerson.IdcardType is null or SitePerson.IdentityCard is null or SitePerson.PhotoUrl is null or SitePerson.HeadImage IS NULL OR (LEN(SitePerson.IdentityCard) != 15 AND LEN(SitePersonIdentityCard) != 18) or SitePerson.TeamGroupId is null or SitePerson.WorkPostId is null)";
}
SqlParameter[] parameter = listStr.ToArray();

View File

@ -33,6 +33,9 @@
</f:DropDownList>
<f:DropDownList runat="server" ID="drpUnit" EnableEdit="true" EnableAjax="false"
LabelAlign="Right" AutoPostBack="true" OnSelectedIndexChanged="btSearch_Click">
</f:DropDownList>
<f:DropDownList runat="server" ID="drpDepart" EnableEdit="true"
LabelAlign="Right" EmptyText="按部门" AutoPostBack="true" OnSelectedIndexChanged="btSearch_Click">
</f:DropDownList>
<f:DropDownList runat="server" ID="drpWorkPost" EnableEdit="true" EnableAjax="false" Width="150px"
LabelAlign="Right" AutoPostBack="true" OnSelectedIndexChanged="btSearch_Click">

View File

@ -25,6 +25,8 @@ namespace FineUIPro.Web.Person
Funs.FineUIPleaseSelect(drpProject, "按项目查询");
Funs.FineUIPleaseSelect(drpUnit, "按单位查询");
DepartService.InitDepartDropDownList(this.drpDepart, false);
Funs.FineUIPleaseSelect(drpDepart, "按部门查询");
WorkPostService.InitWorkPostDropDownList(this.drpWorkPost, false);
Funs.FineUIPleaseSelect(drpWorkPost, "按岗位查询");
DropListService.InitConstDropDownList(this.drpPersonType, DropListService.Group_PersonType, false);
@ -94,7 +96,7 @@ namespace FineUIPro.Web.Person
/// </summary>
private void BindGrid()
{
var getData = SitePerson_PersonService.getListData(this.drpProject.SelectedValue, this.drpUnit.SelectedValue, this.drpWorkPost.SelectedValue,
var getData = SitePerson_PersonService.getListData(this.drpProject.SelectedValue, this.drpUnit.SelectedValue,this.drpDepart.SelectedValue, this.drpWorkPost.SelectedValue,
this.txtPersonName.Text.Trim(), this.txtIdCard.Text.Trim(), this.rbIsPostStates.SelectedValue, this.drpPersonType.SelectedValue, Grid1);
Grid1.RecordCount = SitePerson_PersonService.count;
Grid1.DataSource = getData;

View File

@ -77,6 +77,15 @@ namespace FineUIPro.Web.Person
/// </remarks>
protected global::FineUIPro.DropDownList drpUnit;
/// <summary>
/// drpDepart 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpDepart;
/// <summary>
/// drpWorkPost 控件。
/// </summary>

View File

@ -283058,6 +283058,8 @@ namespace Model
private string _UnitId;
private string _DepartId;
private System.Nullable<System.DateTime> _Birthday;
private string _TeamGroupId;
@ -283364,6 +283366,22 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DepartId", DbType="NVarChar(50)")]
public string DepartId
{
get
{
return this._DepartId;
}
set
{
if ((this._DepartId != value))
{
this._DepartId = value;
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Birthday", DbType="DateTime")]
public System.Nullable<System.DateTime> Birthday
{