From 957d206c2b669db48c5c9817dc89bebc148851da Mon Sep 17 00:00:00 2001 From: Frane Date: Wed, 30 Jun 2021 16:00:32 +0800 Subject: [PATCH] 20210630 --- SGGL/FineUIPro.Web/Door/InOutList.aspx.cs | 4 +- SGGL/Model/DoorServer/attendanceItem.cs | 62 ++++++++++ SGGL/Model/DoorServer/attendanceItems.cs | 22 ++++ SGGL/Model/Model.csproj | 2 + .../DoorProject/uploadController.cs | 109 ++++++++++++++++++ .../Controllers/DoorServerController.cs | 18 +-- SGGL/WebAPI/Controllers/PersonController.cs | 4 +- SGGL/WebAPI/WebAPI.csproj | 1 + 8 files changed, 209 insertions(+), 13 deletions(-) create mode 100644 SGGL/Model/DoorServer/attendanceItem.cs create mode 100644 SGGL/Model/DoorServer/attendanceItems.cs create mode 100644 SGGL/WebAPI/Controllers/DoorProject/uploadController.cs diff --git a/SGGL/FineUIPro.Web/Door/InOutList.aspx.cs b/SGGL/FineUIPro.Web/Door/InOutList.aspx.cs index 3e6c9aaa..27277529 100644 --- a/SGGL/FineUIPro.Web/Door/InOutList.aspx.cs +++ b/SGGL/FineUIPro.Web/Door/InOutList.aspx.cs @@ -33,8 +33,8 @@ namespace FineUIPro.Web.Door } Funs.DropDownPageSize(this.ddlPageSize); UnitService.InitUnitDropDownList(this.drpUnit, this.ProjectId, true); - this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd HH:mm}", DateTime.Now); - this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd HH:mm}", DateTime.Now.AddDays(1)); + this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd HH:mm}", DateTime.Now.AddDays(-1)); + this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd HH:mm}", DateTime.Now); if (this.CurrUser != null && this.CurrUser.PageSize.HasValue) { Grid1.PageSize = this.CurrUser.PageSize.Value; diff --git a/SGGL/Model/DoorServer/attendanceItem.cs b/SGGL/Model/DoorServer/attendanceItem.cs new file mode 100644 index 00000000..7f559711 --- /dev/null +++ b/SGGL/Model/DoorServer/attendanceItem.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Model +{ + /// + /// 项目出入记录-潮州华赢 + /// + public class attendanceItem + { + /// + /// ID + /// + public string ProjectId + { + get; + set; + } + /// + /// 设备序列号 + /// + public string deviceSn + { + get; + set; + } + /// + /// 证件号码 + /// + public string idCardNumber + { + get; + set; + } + /// + /// 考勤时间 + /// + public string attendanceTime + { + get; + set; + } + /// + /// 打卡类型(0:无效,1:进门,2出门) + /// + public int attendanceType + { + get; + set; + } + /// + /// 考勤照片 + /// + public string attendanceImage + { + get; + set; + } + } +} diff --git a/SGGL/Model/DoorServer/attendanceItems.cs b/SGGL/Model/DoorServer/attendanceItems.cs new file mode 100644 index 00000000..8f87e936 --- /dev/null +++ b/SGGL/Model/DoorServer/attendanceItems.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Model +{ + /// + /// 项目出入记录-潮州华赢 + /// + public class attendanceItems + { + /// + /// ID + /// + public List records + { + get; + set; + } + } +} diff --git a/SGGL/Model/Model.csproj b/SGGL/Model/Model.csproj index 2c803b54..6f586121 100644 --- a/SGGL/Model/Model.csproj +++ b/SGGL/Model/Model.csproj @@ -156,6 +156,8 @@ + + diff --git a/SGGL/WebAPI/Controllers/DoorProject/uploadController.cs b/SGGL/WebAPI/Controllers/DoorProject/uploadController.cs new file mode 100644 index 00000000..d0f0804a --- /dev/null +++ b/SGGL/WebAPI/Controllers/DoorProject/uploadController.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using BLL; +using WebAPI.Filter; + +namespace WebAPI.Controllers +{ + /// + /// + /// + public class uploadController : ApiController + { + #region 潮州华瀛项目出入记录接口 + /// + /// 保存出入记录信息 + /// + /// 出入记录信息 + /// + [HttpPost] + public Model.ResponeData attendance([FromBody] Model.attendanceItems records) + { + var responeData = new Model.ResponeData(); + try + { + if (records != null && records.records.Count() > 0) + { + List attendanceItems = records.records; + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) + { + string projectId = "310e790e-5ede-4345-98a4-8bd0866e69ef"; ////潮州华瀛 + int maxId = 0; + var getmax = db.T_d_facerecord.Where(x => x.ProjectId == projectId && x.RoleID == "白名单").Select(x => x.ID); + if (getmax.Count() > 0) + { + maxId = getmax.Max() + 1; + } + foreach (var item in attendanceItems) + { + string name = string.Empty; + string cardNo = string.Empty; + var getPerson = db.SitePerson_Person.FirstOrDefault(x => x.IdentityCard == item.idCardNumber); + if (getPerson != null) + { + name = getPerson.PersonName; + cardNo = getPerson.CardNo; + } + + Model.T_d_facerecord newFacerecord = new Model.T_d_facerecord() + { + NewID = SQLHelper.GetNewID(), + ProjectId = projectId, + ID = maxId + 1, + EmployName = name, + EmployNO = item.idCardNumber, + RoleID = "白名单", + DateTimeRecord = Funs.GetNewDateTime(item.attendanceTime), + RecordDes = "白名单:允许通行", + InOrOut = (item.attendanceType == 1 ? "进门" : "出门"), + }; + + db.T_d_facerecord.InsertOnSubmit(newFacerecord); + db.SubmitChanges(); + ///// 根据出入记录 写入考勤记录 + Model.t_d_facerecordItem facerecord = new Model.t_d_facerecordItem + { + ID = maxId + 1, + EmployName = name, + IDCardNo = item.idCardNumber, + EmployNO = item.idCardNumber, + ProjectId = projectId, + RoleID = "白名单", + DateTimeRecord = Funs.GetNewDateTime(item.attendanceTime), + RecordDes = "白名单:允许通行", + InOrOut = (item.attendanceType == 1 ? "进门" : "出门"), + }; + DoorServerService.InsertEmployInOutRecord(facerecord); + if (facerecord.DateTimeRecord.HasValue) + { + int isIn = 0; + if (facerecord.InOrOut == "进门") + { + isIn = 1; + } + APIPersonService.getPersonInOut(facerecord.ProjectId, facerecord.EmployNO, isIn, facerecord.DateTimeRecord.Value); + } + } + responeData.code = 0; + } + } + else + { + responeData.message ="数据为空!"; + } + } + catch (Exception ex) + { + responeData.code = -1; + responeData.message = ex.Message; + } + + return responeData; + } + #endregion + } +} diff --git a/SGGL/WebAPI/Controllers/DoorServerController.cs b/SGGL/WebAPI/Controllers/DoorServerController.cs index ca7b5695..29a5451f 100644 --- a/SGGL/WebAPI/Controllers/DoorServerController.cs +++ b/SGGL/WebAPI/Controllers/DoorServerController.cs @@ -59,7 +59,7 @@ namespace WebAPI.Controllers return ("$" + DepartmentID.ToString() + "$" + EmployID.ToString() + "$" + ID.ToString() + "$" + ValidEventID.ToString() + "$"); } #endregion - + #region 保存部门信息 /// /// 保存部门信息 @@ -76,7 +76,7 @@ namespace WebAPI.Controllers { if (department != null) { - var getDep = db.T_d_department.FirstOrDefault(x => x.DepartmentID == department.DepartmentID && x.ProjectId ==department.ProjectId); + var getDep = db.T_d_department.FirstOrDefault(x => x.DepartmentID == department.DepartmentID && x.ProjectId == department.ProjectId); if (getDep == null) { Model.T_d_department newDep = new Model.T_d_department() @@ -128,7 +128,7 @@ namespace WebAPI.Controllers { if (employinfo != null) { - var getEm = db.T_d_employinfo.FirstOrDefault(x => x.EmployID == employinfo.EmployID && x.ProjectId ==employinfo.ProjectId); + var getEm = db.T_d_employinfo.FirstOrDefault(x => x.EmployID == employinfo.EmployID && x.ProjectId == employinfo.ProjectId); if (getEm == null) { Model.T_d_employinfo newEmploy = new Model.T_d_employinfo() @@ -181,11 +181,11 @@ namespace WebAPI.Controllers { if (getDep.ParentID == 0) { - newEmploy.InstallationId = getDep.DepartmentID; + newEmploy.InstallationId = getDep.DepartmentID; } else { - var getDep0 =BLL.DoorServerService.GetSupDep(newEmploy.ProjectId, getDep.ParentID, 0); + var getDep0 = BLL.DoorServerService.GetSupDep(newEmploy.ProjectId, getDep.ParentID, 0); if (getDep0 != null) { newEmploy.UnitId = newEmploy.GroupID; @@ -237,7 +237,7 @@ namespace WebAPI.Controllers { if (facerecord != null) { - var getFacerecord = db.T_d_facerecord.FirstOrDefault(x => x.ID == facerecord.ID && x.ProjectId == facerecord.ProjectId && x.RoleID ==facerecord.RoleID); + var getFacerecord = db.T_d_facerecord.FirstOrDefault(x => x.ID == facerecord.ID && x.ProjectId == facerecord.ProjectId && x.RoleID == facerecord.RoleID); if (getFacerecord == null) { Model.T_d_facerecord newFacerecord = new Model.T_d_facerecord() @@ -444,7 +444,7 @@ namespace WebAPI.Controllers { string unitId = null; string postId = null; - responeData.data = Funs.DB.spInOutManHoursReport(projectId, unitId, postId, startDate, endDate).ToList(); + responeData.data = Funs.DB.spInOutManHoursReport(projectId, unitId, postId, startDate, endDate).ToList(); } catch (Exception ex) { @@ -462,13 +462,13 @@ namespace WebAPI.Controllers /// /// /// - public Model.ResponeData getUnitSumInOutstatistics(string projectId, string unitId,DateTime startDate, DateTime endDate) + public Model.ResponeData getUnitSumInOutstatistics(string projectId, string unitId, DateTime startDate, DateTime endDate) { var responeData = new Model.ResponeData(); try { string postId = null; - var getData= Funs.DB.spInOutManHoursReport(projectId, unitId, postId, startDate, endDate).ToList(); + var getData = Funs.DB.spInOutManHoursReport(projectId, unitId, postId, startDate, endDate).ToList(); responeData.data = getData.Sum(x => x.ManCountSum); } catch (Exception ex) diff --git a/SGGL/WebAPI/Controllers/PersonController.cs b/SGGL/WebAPI/Controllers/PersonController.cs index 32774741..69256e49 100644 --- a/SGGL/WebAPI/Controllers/PersonController.cs +++ b/SGGL/WebAPI/Controllers/PersonController.cs @@ -779,7 +779,7 @@ namespace WebAPI.Controllers var responeData = new Model.ResponeData(); try { - responeData.data = from x in Funs.DB.SitePerson_Person_Bak + responeData.data = (from x in Funs.DB.SitePerson_Person_Bak join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId where x.ProjectId == projectId && !x.ExchangeTime.HasValue @@ -806,7 +806,7 @@ namespace WebAPI.Controllers x.ExchangeTime, x.ExchangeTime2, x.PhotoUrl, - }; + }).Take(200).ToList(); } catch (Exception ex) { diff --git a/SGGL/WebAPI/WebAPI.csproj b/SGGL/WebAPI/WebAPI.csproj index 865c731e..f85a8e21 100644 --- a/SGGL/WebAPI/WebAPI.csproj +++ b/SGGL/WebAPI/WebAPI.csproj @@ -174,6 +174,7 @@ +