From 8cb99d48f594c1e10581139a9b32f998ad796b23 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Tue, 7 Apr 2026 16:56:10 +0800 Subject: [PATCH] 1 --- SGGL/BLL/API/APIPersonService.cs | 61 ++++++++++++--------- SGGL/Model/APIItem/HSSE/PersonItem.cs | 4 ++ SGGL/WebAPI/Controllers/PersonController.cs | 36 ++++++------ 3 files changed, 57 insertions(+), 44 deletions(-) diff --git a/SGGL/BLL/API/APIPersonService.cs b/SGGL/BLL/API/APIPersonService.cs index 7a24e5dc..cb0ea5b0 100644 --- a/SGGL/BLL/API/APIPersonService.cs +++ b/SGGL/BLL/API/APIPersonService.cs @@ -304,7 +304,7 @@ namespace BLL using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var query = from x in db.View_SitePerson_Person - select x; + select x; // 添加过滤条件 if (filter != null) @@ -371,13 +371,14 @@ namespace BLL if (!string.IsNullOrEmpty(filter.WorkPostName)) { query = query.Where(x => x.WorkPostName.Contains(filter.WorkPostName)); - } + } } // 默认只返回在岗人员 query = query.Where(x => x.States == Const.ProjectPersonStates_1); - var persons = from x in query orderby x.CardNo descending + var persons = from x in query + orderby x.CardNo descending select new Model.ProjectPersonOutput { PersonId = x.PersonId, @@ -388,7 +389,7 @@ namespace BLL IdentityCard = x.IdentityCard, ProjectId = x.ProjectId, ProjectName = x.ProjectName, - ProjectCode= x.ProjectCode, + ProjectCode = x.ProjectCode, UnitId = x.UnitId, UnitName = x.UnitName, TeamGroupName = x.TeamGroupName, @@ -559,7 +560,7 @@ namespace BLL /// 培训岗位ID /// 培训类型ID /// - public static List getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, string name) + public static List getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, string name, string startDate, string endDate) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { @@ -585,6 +586,7 @@ namespace BLL TeamGroupName = x.TeamGroupName, WorkPostId = x.WorkPostId, WorkPostName = x.WorkPostName, + InTimeValue = x.InTime, InTime = string.Format("{0:yyyy-MM-dd}", x.InTime), OutTime = string.Format("{0:yyyy-MM-dd}", x.OutTime), OutResult = x.OutResult, @@ -608,7 +610,14 @@ namespace BLL { getPersons = getPersons.Where(x => x.PersonName.Contains(name)); } - + if (!string.IsNullOrEmpty(startDate)) + { + getPersons = getPersons.Where(x => x.InTimeValue >= Funs.GetNewDateTime(startDate)); + } + if (!string.IsNullOrEmpty(endDate)) + { + getPersons = getPersons.Where(x => x.InTimeValue <= Funs.GetNewDateTime(endDate)); + } List getTrainPersonList = new List(); var getTrainType = TrainTypeService.GetTrainTypeById(trainTypeId); if (getTrainType != null && (!getTrainType.IsRepeat.HasValue || getTrainType.IsRepeat == false)) @@ -1115,31 +1124,31 @@ namespace BLL using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var query = from x in db.SitePerson_PersonInOut - join y in db.SitePerson_Person on x.PersonId equals y.PersonId - join z in db.Base_Project on x.ProjectId equals z.ProjectId + join y in db.SitePerson_Person on x.PersonId equals y.PersonId + join z in db.Base_Project on x.ProjectId equals z.ProjectId where x.ChangeTime >= filter.StartTime && x.ChangeTime <= filter.EndTime select new Model.PersonInOutItem - { - PersonId = x.PersonId, - PersonName = y.PersonName, - ProjectId = x.ProjectId, - ProjectCode=z.ProjectCode, - ProjectName=z.ProjectName, - UnitId = y.UnitId, - UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName, - IdentityCard=x.IdentityCard, - WorkPostId = y.WorkPostId, - WorkPostName = db.Base_WorkPost.First(z => z.WorkPostId == y.WorkPostId).WorkPostName, - IsIn = x.IsIn, - IsInName = x.IsIn == true ? "进场" : "出场", - ChangeTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ChangeTime), - ChangeTimeD = x.ChangeTime, - }; + { + PersonId = x.PersonId, + PersonName = y.PersonName, + ProjectId = x.ProjectId, + ProjectCode = z.ProjectCode, + ProjectName = z.ProjectName, + UnitId = y.UnitId, + UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName, + IdentityCard = x.IdentityCard, + WorkPostId = y.WorkPostId, + WorkPostName = db.Base_WorkPost.First(z => z.WorkPostId == y.WorkPostId).WorkPostName, + IsIn = x.IsIn, + IsInName = x.IsIn == true ? "进场" : "出场", + ChangeTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ChangeTime), + ChangeTimeD = x.ChangeTime, + }; // 添加过滤条件 if (filter != null) - { - + { + // 单位名称过滤(模糊查询) if (!string.IsNullOrEmpty(filter.UnitName)) { diff --git a/SGGL/Model/APIItem/HSSE/PersonItem.cs b/SGGL/Model/APIItem/HSSE/PersonItem.cs index 94ae9006..126294de 100644 --- a/SGGL/Model/APIItem/HSSE/PersonItem.cs +++ b/SGGL/Model/APIItem/HSSE/PersonItem.cs @@ -97,6 +97,10 @@ namespace Model /// public string InTime { get; set; } /// + /// 入场时间 + /// + public DateTime? InTimeValue { get; set; } + /// /// 出场时间 /// public string OutTime { get; set; } diff --git a/SGGL/WebAPI/Controllers/PersonController.cs b/SGGL/WebAPI/Controllers/PersonController.cs index 1e294520..24cd115f 100644 --- a/SGGL/WebAPI/Controllers/PersonController.cs +++ b/SGGL/WebAPI/Controllers/PersonController.cs @@ -112,7 +112,7 @@ namespace WebAPI.Controllers /// 页码(从1开始) /// 是否返回全部数据 /// - public Model.ResponeData getPersonByFilter([FromUri] Model.ProjectPersonInput filter, int? pagesize = 15, int? pageindex = 1, bool ? returnAll = false) + public Model.ResponeData getPersonByFilter([FromUri] Model.ProjectPersonInput filter, int? pagesize = 15, int? pageindex = 1, bool? returnAll = false) { var responeData = new Model.ResponeData(); try @@ -382,12 +382,12 @@ namespace WebAPI.Controllers /// 培训类型ID(可为空) /// 分页 /// - public Model.ResponeData getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, int pageIndex) + public Model.ResponeData getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, int pageIndex, string startDate, string endDate) { var responeData = new Model.ResponeData(); try { - var getDataList = APIPersonService.getTrainingPersonListByTrainTypeId(projectId, unitIds, workPostIds, trainTypeId,null).OrderBy(x => x.UnitName).ThenBy(x => x.ProjectName).ToList(); + var getDataList = APIPersonService.getTrainingPersonListByTrainTypeId(projectId, unitIds, workPostIds, trainTypeId, null).OrderBy(x => x.UnitName).ThenBy(x => x.ProjectName).ToList(); int pageCount = getDataList.Count; if (pageCount > 0 && pageIndex > 0) { @@ -413,12 +413,12 @@ namespace WebAPI.Controllers /// /// /// - public Model.ResponeData getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId,string name, int pageIndex) + public Model.ResponeData getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, string name, int pageIndex) { var responeData = new Model.ResponeData(); try { - var getDataList = APIPersonService.getTrainingPersonListByTrainTypeId(projectId, unitIds, workPostIds, trainTypeId,name).OrderBy(x => x.UnitName).ThenBy(x => x.ProjectName).ToList(); + var getDataList = APIPersonService.getTrainingPersonListByTrainTypeId(projectId, unitIds, workPostIds, trainTypeId, name).OrderBy(x => x.UnitName).ThenBy(x => x.ProjectName).ToList(); int pageCount = getDataList.Count; if (pageCount > 0 && pageIndex > 0) { @@ -779,7 +779,7 @@ namespace WebAPI.Controllers join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId join persons in Funs.DB.Person_Persons on x.IdentityCard equals persons.IdentityCard where x.ProjectId == projectId && !x.ExchangeTime.HasValue - && x.States == Const.ProjectPersonStates_1 && x.CardNo.Length> 5 && persons.PhotoUrl != null + && x.States == Const.ProjectPersonStates_1 && x.CardNo.Length > 5 && persons.PhotoUrl != null select new { x.PersonId, @@ -798,7 +798,7 @@ namespace WebAPI.Controllers TrainRecord = APIPersonService.getStrTrainRecordByPersonId(x.PersonId), x.ExchangeTime, x.ExchangeTime2, - PhotoUrl=persons.PhotoUrl.Replace('\\', '/'), + PhotoUrl = persons.PhotoUrl.Replace('\\', '/'), }).Take(200).ToList(); } catch (Exception ex) @@ -813,17 +813,17 @@ namespace WebAPI.Controllers var responeData = new Model.ResponeData(); try { - // var trainingIds = Funs.DB.EduTrain_TrainRecord.Where(x => projectId == projectId).Select(x => x.TrainingId).ToList(); - // var personIds = Funs.DB.EduTrain_TrainRecordDetail.Where(x => trainingIds.Contains(x.TrainingId)).Select(x=>x.PersonId).ToList(); ; + // var trainingIds = Funs.DB.EduTrain_TrainRecord.Where(x => projectId == projectId).Select(x => x.TrainingId).ToList(); + // var personIds = Funs.DB.EduTrain_TrainRecordDetail.Where(x => trainingIds.Contains(x.TrainingId)).Select(x=>x.PersonId).ToList(); ; responeData.data = (from x in Funs.DB.SitePerson_Person join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId - join persons in Funs.DB.Person_Persons on x.IdentityCard equals persons.IdentityCard + join persons in Funs.DB.Person_Persons on x.IdentityCard equals persons.IdentityCard join traindetail in Funs.DB.EduTrain_TrainRecordDetail on x.PersonId equals traindetail.PersonId join train in Funs.DB.EduTrain_TrainRecord on traindetail.TrainingId equals train.TrainingId where x.ProjectId == projectId && !x.ExchangeTime.HasValue && train.ProjectId == projectId && x.States == Const.ProjectPersonStates_1 && x.CardNo.Length > 5 && persons.PhotoUrl != null - // where personIds.Contains(x.PersonId) + // where personIds.Contains(x.PersonId) select new { x.PersonId, @@ -843,13 +843,13 @@ namespace WebAPI.Controllers persons.Address, TrainRecord = APIPersonService.getStrTrainRecordByPersonId(x.PersonId), x.ExchangeTime, - x.ExchangeTime2, + x.ExchangeTime2, x.AuditorDate, PhotoUrl = persons.PhotoUrl.Replace('\\', '/'), IsUsed = x.States == Const.ProjectPersonStates_1 ? 1 : 0, - BlackList = 0 + BlackList = 0 }).Take(200).ToList(); - + } catch (Exception ex) { @@ -927,7 +927,7 @@ namespace WebAPI.Controllers /// /// /// - public Model.ResponeData getUpdatePersonExchangeTime(string projectId,string idCard, string type) + public Model.ResponeData getUpdatePersonExchangeTime(string projectId, string idCard, string type) { var responeData = new Model.ResponeData(); try @@ -940,9 +940,9 @@ namespace WebAPI.Controllers else { responeData.code = 1; - responeData.message = "当前项目不存在身份证为:" + idCard.ToString() +"的人员!"; + responeData.message = "当前项目不存在身份证为:" + idCard.ToString() + "的人员!"; } - + } catch (Exception ex) { @@ -1071,7 +1071,7 @@ namespace WebAPI.Controllers responeData.code = 0; responeData.message = "StartTime和EndTime为必填参数!"; return responeData; - } + } // 验证时间范围 if (filter.StartTime > filter.EndTime) {