diff --git a/DataBase/版本日志/SGGLDB_V2023-06-28.sql b/DataBase/版本日志/SGGLDB_V2023-06-28.sql
new file mode 100644
index 00000000..45f89a12
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_V2023-06-28.sql
@@ -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
\ No newline at end of file
diff --git a/DataBase/版本日志/SGGLDB_V2023-06-28修改明细.txt b/DataBase/版本日志/SGGLDB_V2023-06-28修改明细.txt
new file mode 100644
index 00000000..156165ab
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_V2023-06-28修改明细.txt
@@ -0,0 +1,5 @@
+--ADD BY YangHongwei 2023-06-28
+1、优化人员档案列表未培训判断。
+2、删除项目人员方法加判断存在重复身份证号码人员直接删除。
+3、项目劳务人员加部门查询下拉框。
+--END
\ No newline at end of file
diff --git a/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonService.cs b/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonService.cs
index 34672431..869ec46d 100644
--- a/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonService.cs
+++ b/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonService.cs
@@ -44,7 +44,7 @@ namespace BLL
///
///
///
- 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 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
/// 人员Id
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();
+ }
}
}
diff --git a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecord.aspx b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecord.aspx
index d3fff928..c6a7ace8 100644
--- a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecord.aspx
+++ b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecord.aspx
@@ -39,12 +39,12 @@
-
+
-
+
diff --git a/SGGL/FineUIPro.Web/HSSE/SitePerson/PersonList.aspx.cs b/SGGL/FineUIPro.Web/HSSE/SitePerson/PersonList.aspx.cs
index 13499b37..07b3d95a 100644
--- a/SGGL/FineUIPro.Web/HSSE/SitePerson/PersonList.aspx.cs
+++ b/SGGL/FineUIPro.Web/HSSE/SitePerson/PersonList.aspx.cs
@@ -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 listStr = new List
{
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();
diff --git a/SGGL/FineUIPro.Web/Person/ProjectPerson.aspx b/SGGL/FineUIPro.Web/Person/ProjectPerson.aspx
index 48b07d37..305aaef0 100644
--- a/SGGL/FineUIPro.Web/Person/ProjectPerson.aspx
+++ b/SGGL/FineUIPro.Web/Person/ProjectPerson.aspx
@@ -33,6 +33,9 @@
+
+
diff --git a/SGGL/FineUIPro.Web/Person/ProjectPerson.aspx.cs b/SGGL/FineUIPro.Web/Person/ProjectPerson.aspx.cs
index 9e24a91e..9dfef875 100644
--- a/SGGL/FineUIPro.Web/Person/ProjectPerson.aspx.cs
+++ b/SGGL/FineUIPro.Web/Person/ProjectPerson.aspx.cs
@@ -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
///
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;
diff --git a/SGGL/FineUIPro.Web/Person/ProjectPerson.aspx.designer.cs b/SGGL/FineUIPro.Web/Person/ProjectPerson.aspx.designer.cs
index 9b0f416e..681ae173 100644
--- a/SGGL/FineUIPro.Web/Person/ProjectPerson.aspx.designer.cs
+++ b/SGGL/FineUIPro.Web/Person/ProjectPerson.aspx.designer.cs
@@ -77,6 +77,15 @@ namespace FineUIPro.Web.Person
///
protected global::FineUIPro.DropDownList drpUnit;
+ ///
+ /// drpDepart 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList drpDepart;
+
///
/// drpWorkPost 控件。
///
diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs
index 1a1d09d7..8fce38da 100644
--- a/SGGL/Model/Model.cs
+++ b/SGGL/Model/Model.cs
@@ -283058,6 +283058,8 @@ namespace Model
private string _UnitId;
+ private string _DepartId;
+
private System.Nullable _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 Birthday
{