2022-12-20 09:32:32 +08:00
|
|
|
|
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 WebAPI.Filter;
|
|
|
|
|
|
|
|
|
|
namespace WebAPI.Controllers
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class DoorServiceController : ApiController
|
|
|
|
|
{
|
|
|
|
|
#region 项目出入记录接口
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 保存出入记录信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="records">出入记录信息</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[HttpPost]
|
|
|
|
|
public Model.ResponeData postPersonInOuts([FromBody] Model.attendanceItems records)
|
|
|
|
|
{
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (records != null && records.records.Count() > 0)
|
|
|
|
|
{
|
|
|
|
|
List<Model.attendanceItem> 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.SGGLDB db = new Model.SGGLDB(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 ? "进门" : "出门"),
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (facerecord.DateTimeRecord.HasValue)
|
|
|
|
|
{
|
|
|
|
|
int isIn = 0;
|
|
|
|
|
if (facerecord.InOrOut == "进门")
|
|
|
|
|
{
|
|
|
|
|
isIn = 1;
|
|
|
|
|
}
|
|
|
|
|
APIPersonService.getPersonInOut(facerecord.ProjectId, facerecord.EmployNO, 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 项目出入人员信息
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 保存人员信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="person">人员信息</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[HttpPost]
|
|
|
|
|
public Model.ResponeData postPersons([FromBody] Model.PersonItem person)
|
|
|
|
|
{
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (person != null)
|
|
|
|
|
{
|
|
|
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
|
|
|
{
|
|
|
|
|
var getProject = ProjectService.GetProjectByProjectCode(person.ProjectCode);
|
|
|
|
|
if (getProject != null)
|
|
|
|
|
{
|
|
|
|
|
var getUnit = UnitService.getUnitByCollCropCodeUnitName(person.CollCropCode, person.UnitName);
|
|
|
|
|
if (getUnit != 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,
|
2022-12-20 17:45:42 +08:00
|
|
|
|
IsUsed = (person.IsUsed == false ? 0 : 1),
|
2022-12-20 09:32:32 +08:00
|
|
|
|
InTime = Funs.GetNewDateTimeOrNow(person.InTime),
|
|
|
|
|
Password = BLL.PersonService.GetPersonPassWord(person.IdentityCard),
|
|
|
|
|
Isprint = "0",
|
|
|
|
|
};
|
|
|
|
|
if (!string.IsNullOrEmpty(person.TeamGroupName) && !string.IsNullOrEmpty(newPerson.UnitId))
|
|
|
|
|
{
|
|
|
|
|
var getTeamGroup = TeamGroupService.getTeamGroupByTeamGroupName(getProject.ProjectId, newPerson.UnitId, 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 = UnitWorkService.GetUnitWorkByUnitWorkName(getProject.ProjectId, person.WorkAreaName);
|
|
|
|
|
if (getWorkArea != null)
|
|
|
|
|
{
|
|
|
|
|
newPerson.WorkAreaId = getWorkArea.UnitWorkId;
|
|
|
|
|
}
|
|
|
|
|
var getWorkPost = WorkPostService.GetWorkPostByName(person.WorkPostName);
|
|
|
|
|
if (getWorkPost != null)
|
|
|
|
|
{
|
|
|
|
|
newPerson.WorkPostId = getWorkPost.WorkPostId;
|
|
|
|
|
}
|
|
|
|
|
var getHsseMan = ProjectService.getHSSEManager(getProject.ProjectId);
|
|
|
|
|
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;
|
|
|
|
|
File.WriteAllBytes((fileUrl + flieName), image);
|
|
|
|
|
//AttachFileService.Base64ToImage(person.headImage, path, person.PersonName);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var getPerson = db.SitePerson_Person.FirstOrDefault(e => e.ProjectId == getProject.ProjectId && e.IdentityCard == person.IdentityCard);
|
|
|
|
|
if (getPerson == null)
|
|
|
|
|
{
|
|
|
|
|
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
|
|
|
|
|
{
|
|
|
|
|
getPerson.PersonName = newPerson.PersonName;
|
|
|
|
|
getPerson.IdcardAddress = newPerson.IdcardAddress;
|
|
|
|
|
getPerson.IdcardStartDate = newPerson.IdcardStartDate;
|
|
|
|
|
getPerson.IdcardEndDate = newPerson.IdcardEndDate;
|
|
|
|
|
getPerson.Sex = newPerson.Sex;
|
|
|
|
|
getPerson.Address = newPerson.Address;
|
|
|
|
|
getPerson.OutResult = newPerson.OutResult;
|
|
|
|
|
getPerson.Birthday = newPerson.Birthday;
|
|
|
|
|
getPerson.Telephone = newPerson.Telephone;
|
2022-12-20 17:45:42 +08:00
|
|
|
|
getPerson.IsUsed = 1;
|
2022-12-20 09:32:32 +08:00
|
|
|
|
getPerson.InTime = newPerson.InTime;
|
|
|
|
|
if (!string.IsNullOrEmpty(newPerson.TeamGroupId))
|
|
|
|
|
{
|
|
|
|
|
getPerson.TeamGroupId = newPerson.TeamGroupId;
|
|
|
|
|
}
|
|
|
|
|
if (!string.IsNullOrEmpty(newPerson.WorkPostId))
|
|
|
|
|
{
|
|
|
|
|
getPerson.WorkPostId = newPerson.WorkPostId;
|
|
|
|
|
}
|
|
|
|
|
if (!string.IsNullOrEmpty(newPerson.PhotoUrl))
|
|
|
|
|
{
|
|
|
|
|
getPerson.PhotoUrl = newPerson.PhotoUrl;
|
|
|
|
|
}
|
|
|
|
|
db.SubmitChanges();
|
|
|
|
|
responeData.message = getPerson.PersonName+ ":信息更新成功!";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
#region 获取在岗人员 -照片不空
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取在岗人员
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="projectCode"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public Model.ResponeData getPersons(string projectCode)
|
|
|
|
|
{
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var getProject = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectCode == projectCode);
|
|
|
|
|
if (getProject != null)
|
|
|
|
|
{
|
|
|
|
|
responeData.data = from x in Funs.DB.SitePerson_Person
|
|
|
|
|
join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
|
|
|
|
|
join T in Funs.DB.ProjectData_TeamGroup on x.TeamGroupId equals T.TeamGroupId
|
|
|
|
|
join w in Funs.DB.Base_WorkPost on x.WorkPostId equals w.WorkPostId
|
|
|
|
|
where x.ProjectId == getProject.ProjectId && !x.ExchangeTime.HasValue
|
|
|
|
|
&& (!x.OutTime.HasValue || x.OutTime > DateTime.Now)
|
|
|
|
|
&& x.InTime.HasValue && x.InTime < DateTime.Now
|
2022-12-20 17:45:42 +08:00
|
|
|
|
&& x.IsUsed == 1
|
2022-12-20 09:32:32 +08:00
|
|
|
|
&& x.PhotoUrl != null
|
|
|
|
|
select new
|
|
|
|
|
{
|
|
|
|
|
x.PersonId,
|
|
|
|
|
x.PersonName,
|
|
|
|
|
x.CardNo,
|
|
|
|
|
x.IdentityCard,
|
|
|
|
|
x.UnitId,
|
|
|
|
|
y.UnitCode,
|
|
|
|
|
y.UnitName,
|
|
|
|
|
y.ShortUnitName,
|
|
|
|
|
T.TeamGroupName,
|
|
|
|
|
x.Sex,
|
|
|
|
|
w.WorkPostName,
|
|
|
|
|
x.Telephone,
|
|
|
|
|
x.Address,
|
|
|
|
|
x.InTime,
|
|
|
|
|
x.AuditorDate,
|
|
|
|
|
x.ExchangeTime,
|
|
|
|
|
x.ExchangeTime2,
|
|
|
|
|
x.PhotoUrl,
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
responeData.message = "数据为空!";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
ErrLogInfo.WriteLog(ex, "WX接口-获取人员下发门禁", "DoorServiceController.getPersons");
|
|
|
|
|
}
|
|
|
|
|
return responeData;
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 更新人员数据交换时间
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 更新人员数据交换时间
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="projectCode"></param>
|
|
|
|
|
/// <param name="idCard"></param>
|
|
|
|
|
/// <param name="type"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public Model.ResponeData getUpdatePersonExchangeTime(string projectCode, string idCard, string type)
|
|
|
|
|
{
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
|
|
|
{
|
|
|
|
|
var getProject = db.Base_Project.FirstOrDefault(e => e.ProjectCode == projectCode);
|
|
|
|
|
if (getProject != null)
|
|
|
|
|
{
|
|
|
|
|
var getPerson = db.SitePerson_Person.FirstOrDefault(e => e.ProjectId == getProject.ProjectId && e.IdentityCard == idCard);
|
|
|
|
|
if (getPerson != null && !string.IsNullOrEmpty(type))
|
|
|
|
|
{
|
|
|
|
|
if (type == "1")
|
|
|
|
|
{
|
|
|
|
|
getPerson.ExchangeTime2 = DateTime.Now;
|
|
|
|
|
if (!getPerson.ExchangeTime.HasValue)
|
|
|
|
|
{
|
|
|
|
|
getPerson.ExchangeTime = DateTime.Now;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
getPerson.ExchangeTime = DateTime.Now;
|
|
|
|
|
}
|
|
|
|
|
db.SubmitChanges();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
ErrLogInfo.WriteLog(ex, "WX接口-更新人员数据交换时间", "PersonController.getUpdatePersonExchangeTime");
|
|
|
|
|
}
|
|
|
|
|
return responeData;
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 获取离场人员
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取离场人员
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="projectCode"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public Model.ResponeData getOutWorkPersons(string projectCode)
|
|
|
|
|
{
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
|
|
|
{
|
|
|
|
|
var getProject = db.Base_Project.FirstOrDefault(e => e.ProjectCode == projectCode);
|
|
|
|
|
if (getProject != null)
|
|
|
|
|
{
|
|
|
|
|
responeData.data = (from x in db.SitePerson_Person
|
|
|
|
|
where x.ProjectId == getProject.ProjectId
|
|
|
|
|
&& x.OutTime.HasValue
|
|
|
|
|
&& !x.ExchangeTime2.HasValue && x.ExchangeTime.HasValue
|
|
|
|
|
select new
|
|
|
|
|
{
|
|
|
|
|
x.PersonId,
|
|
|
|
|
x.PersonName,
|
|
|
|
|
x.CardNo,
|
|
|
|
|
x.IdentityCard,
|
|
|
|
|
OutTime = x.OutTime == null ? DateTime.Now.AddYears(10) : x.OutTime,
|
|
|
|
|
}).Take(200).ToList();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
}
|
|
|
|
|
return responeData;
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 插入人员出入场记录
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取人员出入场记录
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="projectCode"></param>
|
|
|
|
|
/// <param name="idCard"></param>
|
|
|
|
|
/// <param name="isIn"></param>
|
|
|
|
|
/// <param name="changeTime"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public Model.ResponeData getPersonInOut(string projectCode, string idCard, int isIn, DateTime changeTime)
|
|
|
|
|
{
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var getProject = ProjectService.GetProjectByProjectCode(projectCode);
|
|
|
|
|
if (getProject != null)
|
|
|
|
|
{
|
|
|
|
|
Model.SitePerson_PersonInOut newInOut = new Model.SitePerson_PersonInOut
|
|
|
|
|
{
|
|
|
|
|
ProjectId = getProject.ProjectId,
|
|
|
|
|
IdentityCard = idCard,
|
|
|
|
|
IsIn = isIn == 1 ? true : false,
|
|
|
|
|
ChangeTime = changeTime,
|
|
|
|
|
InOutWay = Const.InOutWay_1,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
PersonInOutService.AddPersonInOut(newInOut);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
ErrLogInfo.WriteLog(ex, "WX接口-插入人员出入场记录", "PersonController.getPersonInOut");
|
|
|
|
|
}
|
|
|
|
|
return responeData;
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
2023-03-09 15:23:32 +08:00
|
|
|
|
|
|
|
|
|
#region 获取在岗人员
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取在岗人员
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="projectCode"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public Model.ResponeData getRealNamePersons(string projectCode)
|
|
|
|
|
{
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
|
|
|
{
|
|
|
|
|
var getProject = db.Base_Project.FirstOrDefault(e => e.ProjectCode == projectCode);
|
|
|
|
|
if (getProject != null)
|
|
|
|
|
{
|
|
|
|
|
responeData.data = (from x in db.SitePerson_Person
|
|
|
|
|
join y in db.Base_Unit on x.UnitId equals y.UnitId
|
|
|
|
|
join T in db.ProjectData_TeamGroup on x.TeamGroupId equals T.TeamGroupId
|
|
|
|
|
join w in db.Base_WorkPost on x.WorkPostId equals w.WorkPostId
|
|
|
|
|
where x.ProjectId == getProject.ProjectId && (!x.ExchangeTime.HasValue || !x.ExchangeTime2.HasValue)
|
|
|
|
|
//&& (!x.OutTime.HasValue || x.OutTime > DateTime.Now)
|
|
|
|
|
//&& x.InTime.HasValue && x.InTime < DateTime.Now
|
|
|
|
|
&& x.IsUsed == 1
|
|
|
|
|
&& x.PhotoUrl != null
|
|
|
|
|
select new Model.RealNamePersonItem
|
|
|
|
|
{
|
|
|
|
|
projectCode = getProject.ProjectCode,
|
|
|
|
|
projectName = getProject.ProjectName,
|
|
|
|
|
unitName = y.UnitName,
|
|
|
|
|
collCropCode = y.CollCropCode,
|
|
|
|
|
teamGroupName = T.TeamGroupName,
|
|
|
|
|
name = x.PersonName,
|
|
|
|
|
idcardType = "SHENFEN_ZHENGJIAN",
|
|
|
|
|
idcardNumber = x.IdentityCard,
|
|
|
|
|
idcardStartDate = x.IdcardStartDate.HasValue ? string.Format("{0:yyyy-MM-dd}", x.IdcardStartDate) : null,
|
|
|
|
|
idcardEndDate = x.IdcardEndDate.HasValue ? string.Format("{0:yyyy-MM-dd}", x.IdcardEndDate) : (x.IdcardStartDate.HasValue ? string.Format("{0:yyyy-MM-dd}", x.IdcardStartDate.Value.AddYears(30)) : null),
|
|
|
|
|
idcardForever = x.IdcardStartDate.HasValue ? "N" : "Y",
|
|
|
|
|
politicsStatus = x.PoliticsStatus,
|
|
|
|
|
eduLevel = x.EduLevel,
|
|
|
|
|
maritalStatus = x.MaritalStatus,
|
|
|
|
|
sex = (x.Sex == "2" ? "F" : "M"),
|
|
|
|
|
idcardAddress = x.IdcardAddress,
|
|
|
|
|
homeAddress = x.Address,
|
|
|
|
|
birthday = x.Birthday.HasValue ? string.Format("{0:yyyy-MM-dd}", x.Birthday) : null,
|
|
|
|
|
nation = x.Nation,
|
|
|
|
|
countryCode = x.CountryCode,
|
|
|
|
|
provinceCode = x.ProvinceCode,
|
|
|
|
|
positiveIdcardImage = db.AttachFile.First(t => (x.PersonId + "#1") == t.ToKeyId).ImageByte,
|
|
|
|
|
negativeIdcardImage = db.AttachFile.First(t => (x.PersonId + "#5") == t.ToKeyId).ImageByte,
|
|
|
|
|
headImage = x.HeadImage,
|
|
|
|
|
mobile = x.Telephone,
|
|
|
|
|
teamLeaderFlag = (T.GroupLeaderId == x.PersonId ? "Y" : "N"),
|
|
|
|
|
userType = ((w.PostType == "1" || w.PostType == "4") ? "LAB_USER_MANAGE" : "LAB_USER_BULIDER"),
|
|
|
|
|
workType = w.WorkPostCode,
|
|
|
|
|
workPostName = w.WorkPostName,
|
|
|
|
|
isLeave = x.OutTime.HasValue ? "Y" : "N",
|
|
|
|
|
entryTime = x.InTime.HasValue ? string.Format("{0:yyyy-MM-dd}", x.InTime) : null,
|
|
|
|
|
exitTime = x.OutTime.HasValue ? string.Format("{0:yyyy-MM-dd}", x.OutTime) : null,
|
|
|
|
|
}).ToList();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
responeData.message = "数据为空!";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
ErrLogInfo.WriteLog(ex, "WX接口-获取人员下发门禁", "DoorServiceController.getPersons");
|
|
|
|
|
}
|
|
|
|
|
return responeData;
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
2022-12-20 09:32:32 +08:00
|
|
|
|
}
|
|
|
|
|
}
|