using System; using System.Collections.Generic; using System.Configuration; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using BLL; using Model; 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; // var getprojectCode = attendanceItems.FirstOrDefault(x => x.ProjectCode != null || x.ProjectId != null); // if (getprojectCode != null) // { // string projectId = getprojectCode.ProjectId; // if (string.IsNullOrEmpty(projectId)) // { // var getProject = ProjectService.GetProjectByProjectCode(getprojectCode.ProjectCode); // if (getProject != null) // { // projectId = getProject.ProjectId; // } // } // if (!string.IsNullOrEmpty(projectId)) // { // using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) // { // 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(); // } // foreach (var item in attendanceItems) // { // maxId = maxId + 1; // 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, // 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, // EmployName = name, // IDCardNo = item.idCardNumber, // EmployNO = item.idCardNumber, // ProjectId = projectId, // RoleID = "白名单", // DateTimeRecord = Funs.GetNewDateTime(item.attendanceTime), // RecordDes = "白名单:允许通行", // InOrOut = (item.attendanceType == 1 ? "进门" : "出门"), // }; // DoorServerService.InsertEmployInOutRecord(facerecord, getPerson); // if (facerecord.DateTimeRecord.HasValue) // { // int isIn = 0; // if (facerecord.InOrOut == "进门") // { // isIn = 1; // } // APIPersonService.getPersonInOut(getPerson, isIn, facerecord.DateTimeRecord.Value); // } // } // responeData.message = "插入成功!"; // } // } // else // { // responeData.code = 0; // responeData.message = "项目号异常!"; // } // } // else // { // responeData.code = 0; // responeData.message = "项目号为空!"; // } // } // else // { // responeData.code = 0; // responeData.message = "数据为空!"; // } // } // catch (Exception ex) // { // responeData.code = 0; // responeData.message = ex.Message; // } // return responeData; //} //#endregion #region 项目出入人员信息 /// /// 保存人员信息 /// /// 人员信息 /// [HttpPost] public Model.ResponeData person([FromBody] Model.PersonItem person) { var responeData = new Model.ResponeData(); try { if (person != null) { using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) { var getProject = db.Base_Project.FirstOrDefault(e => e.ProjectCode ==person.ProjectCode); if (getProject != null) { var getUnit = db.Base_Unit.FirstOrDefault(e => e.CollCropCode == person.CollCropCode ||e.UnitName == person.UnitName); if (getUnit != null) { var getPerson = db.SitePerson_Person.FirstOrDefault(e => e.ProjectId == getProject.ProjectId && e.IdentityCard == person.IdentityCard); if (getPerson == null) { Model.SitePerson_Person newPerson = new Model.SitePerson_Person { PersonId = SQLHelper.GetNewID(), ProjectId = getProject.ProjectId, UnitId = getUnit.UnitId, PersonName = person.PersonName, IdentityCard = person.IdentityCard, IdcardType = "SHENFEN_ZHENGJIAN", IdcardAddress = person.IdcardAddress, IdcardForever = "N", IdcardStartDate = Funs.GetNewDateTime(person.IdcardStartDate), IdcardEndDate = Funs.GetNewDateTime(person.IdcardEndDate), Sex = (person.Sex == "女" || person.Sex == "2") ? "2" : "1", Address = person.Address, OutResult = person.OutResult, Birthday = person.Birthday, Telephone = person.Telephone, IsUsed = person.IsUsed == false ? false : true, InTime = Funs.GetNewDateTimeOrNow(person.InTime), Password = BLL.PersonService.GetPersonPassWord(person.IdentityCard), Isprint = "0", }; if (!string.IsNullOrEmpty(person.TeamGroupName) && !string.IsNullOrEmpty(newPerson.UnitId)) { var getTeamGroup = db.ProjectData_TeamGroup.FirstOrDefault(x => x.ProjectId == getProject.ProjectId && x.UnitId == newPerson.UnitId && x.TeamGroupName == person.TeamGroupName); if (getTeamGroup != null) { newPerson.TeamGroupId = getTeamGroup.TeamGroupId; } else { Model.ProjectData_TeamGroup newTeamGroup = new Model.ProjectData_TeamGroup { TeamGroupId = SQLHelper.GetNewID(), ProjectId = getProject.ProjectId, UnitId = newPerson.UnitId, TeamGroupName = person.TeamGroupName, Remark = "来源:门禁对接数据", TeamTypeId = "CANJIAN_TEAM", EntryTime = System.DateTime.Now, RealNamePushTime = null, }; db.ProjectData_TeamGroup.InsertOnSubmit(newTeamGroup); db.SubmitChanges(); newPerson.TeamGroupId = newTeamGroup.TeamGroupId; } } var getWorkArea = db.WBS_UnitWork.FirstOrDefault(e => e.ProjectId == getProject.ProjectId && e.UnitWorkName == person.WorkAreaName); if (getWorkArea != null) { newPerson.WorkAreaId = getWorkArea.UnitWorkId; } var getWorkPost = db.Base_WorkPost.FirstOrDefault(e => e.WorkPostName ==person.WorkPostName); if (getWorkPost != null) { newPerson.WorkPostId = getWorkPost.WorkPostId; } var getHsseMan = db.Project_ProjectUser.FirstOrDefault(x => x.ProjectId == getProject.ProjectId && x.RoleId.Contains(BLL.Const.HSSEManager)); if (getHsseMan != null) { newPerson.AuditorId = getHsseMan.UserId; newPerson.AuditorDate = DateTime.Now; } newPerson.OutTime = Funs.GetNewDateTime(person.OutTime); if (person.headImage != null) { var image = Convert.FromBase64String(person.headImage); newPerson.HeadImage = image; string rootPath = ConfigurationManager.AppSettings["localRoot"]; string path = "FileUpLoad/PersonBaseInfo/" + DateTime.Now.ToString("yyyy-MM") + "/"; string fileUrl = (rootPath + path).Replace('/', '\\'); string flieName = Funs.GetNewFileName() + "~" + person.PersonName + ".jpg"; if (!Directory.Exists(fileUrl)) { Directory.CreateDirectory(fileUrl); } newPerson.PhotoUrl = path + flieName; System.IO.File.WriteAllBytes((fileUrl + flieName), image); //AttachFileService.Base64ToImage(person.headImage, path, person.PersonName); } PersonService.AddPerson(newPerson); responeData.message = "新增人员成功!"; } else { if (!string.IsNullOrEmpty(person.OutTime)) { var outTime = Funs.GetNewDateTimeOrNow(person.OutTime); PersonService.PersonOut(getPerson.PersonId, outTime); responeData.message = "更新出场时间"; } else { responeData.message = "该身份证号码人员已存在!"; } } } else { responeData.code = 0; responeData.message = "单位:" + person.UnitName + "施工平台不存在!"; } } else { responeData.code = 0; responeData.message = "项目号:" + person.ProjectCode + "施工平台不存在!"; } } } else { responeData.code = 0; responeData.message = "数据为空!"; } } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } /// /// 批量导入 /// 修改时间2023-8-16 17:10:38 /// 是否是群安员,如果是 创建用户。(字段:IsGroupSafeOfficer-1) /// /// /// public Model.ResponeData Personlist([FromBody] List persons) { var responeData = new Model.ResponeData(); try { if (persons != null) { using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) { foreach (var person in persons) { var getProject = ProjectService.GetProjectByProjectCode(person.ProjectCode); if (getProject != null) { var getUnit = UnitService.getUnitByCollCropCodeUnitName(person.CollCropCode, person.UnitName); if (getUnit != null) { var getPerson = PersonService.GetPersonByIdentityCard(getProject.ProjectId, person.IdentityCard); if (getPerson == null) { PersonService.AddPersonByPersonItem(person); //如果是群安员 添加到用户表 if (person.IsGroupSafeOfficer=="1") { PersonService.AddSafetyOfficerInUser(person); } } else { PersonService.UpdatePersonByPersonItem(person); } } else { responeData.code = 0; responeData.message += "单位:" + person.UnitName + "施工平台不存在!"; } } else { responeData.code = 0; responeData.message += "项目号:" + person.ProjectCode + "施工平台不存在!"; } } } } else { responeData.code = 0; responeData.message = "数据为空!"; } } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion } }