using Model;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
namespace BLL
{
public static class APIPersonService
{
#region 获取项目现场人员登录信息
///
/// 获取项目现场人员登录信息
///
///
///
public static Model.UserItem PersonLogOn(Model.UserItem userInfo)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var getUser = from x in db.SitePerson_Person
join y in db.Person_Persons on x.IdentityCard equals y.IdentityCard
where (y.Telephone == userInfo.Account || x.PersonName == userInfo.Account)
&& (y.Password == Funs.EncryptionPassword(userInfo.Password)
|| (x.IdentityCard != null && x.IdentityCard.Substring(x.IdentityCard.Length - 4) == userInfo.Password))
&& x.States == Const.ProjectPersonStates_1
select new Model.UserItem
{
PersonId = x.PersonId,
UserCode = x.CardNo,
Password = y.Password,
PersonName = x.PersonName,
UnitId = x.UnitId,
LoginProjectId = x.ProjectId,
IdentityCard = x.IdentityCard,
Account = y.Telephone,
UnitName = db.Base_Unit.First(u => u.UnitId == x.UnitId).UnitName,
LoginProjectName = db.Base_Project.First(u => u.ProjectId == x.ProjectId).ProjectName,
Telephone = y.Telephone,
WorkPostId = x.WorkPostId,
WorkPostName = db.Base_WorkPost.First(w => w.WorkPostId == x.WorkPostId).WorkPostName,
UserType = "3",
};
return getUser.FirstOrDefault();
}
}
#endregion
#region 根据personId获取人员信息 -项目人员 及人员信息
///
/// 根据personId获取人员信息
///
///
///
public static Model.PersonItem getPersonBySitePersonId(string sitePersonId, string projectId, string idcard)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
Model.PersonItem person = new Model.PersonItem();
var getProjectPerson = db.SitePerson_Person.FirstOrDefault(x => x.SitePersonId == sitePersonId || (x.ProjectId == projectId && x.ProjectId.Length > 1 && x.IdentityCard == idcard));
if (getProjectPerson != null)
{
person.SitePersonId = getProjectPerson.SitePersonId;
person.PersonId = getProjectPerson.PersonId;
person.States = getProjectPerson.States;
person.CardNo = getProjectPerson.CardNo;
person.PersonName = getProjectPerson.PersonName;
person.IdentityCard = getProjectPerson.IdentityCard;
idcard = getProjectPerson.IdentityCard;
person.ProjectId = getProjectPerson.ProjectId;
var getProject = db.Base_Project.FirstOrDefault(x => x.ProjectId == getProjectPerson.ProjectId);
if (getProject != null)
{
person.ProjectCode = getProject.ProjectCode;
person.ProjectName = getProject.ProjectName;
}
person.UnitId = getProjectPerson.UnitId;
var gettUnit = db.Base_Unit.FirstOrDefault(x => x.UnitId == getProjectPerson.UnitId);
if (gettUnit != null)
{
person.UnitCode = gettUnit.UnitCode;
person.UnitName = gettUnit.UnitName;
}
person.WorkAreaId = getProjectPerson.WorkAreaId;
var getWorkArea = db.WBS_UnitWork.FirstOrDefault(e => e.UnitWorkId == getProjectPerson.WorkAreaId);
if (getWorkArea != null)
{
person.WorkAreaName = getWorkArea.UnitWorkName;
}
person.TeamGroupId = getProjectPerson.TeamGroupId;
var getTeam = db.ProjectData_TeamGroup.FirstOrDefault(e => e.TeamGroupId == getProjectPerson.TeamGroupId);
if (getTeam != null)
{
person.TeamGroupName = getTeam.TeamGroupName;
}
person.WorkPostId = getProjectPerson.WorkPostId;
var getWorkPost = db.Base_WorkPost.FirstOrDefault(x => x.WorkPostId == getProjectPerson.WorkPostId);
if (getWorkPost != null)
{
person.WorkPostName = getWorkPost.WorkPostName;
}
person.InTime = string.Format("{0:yyyy-MM-dd}", getProjectPerson.InTime);
person.OutTime = string.Format("{0:yyyy-MM-dd}", getProjectPerson.OutTime);
person.OutResult = getProjectPerson.OutResult;
person.AuditorId = getProjectPerson.AuditorId;
var getAuPerson = db.Person_Persons.FirstOrDefault(z => z.PersonId == getProjectPerson.AuditorId);
if (getAuPerson != null)
{
person.AuditorName = getAuPerson.PersonName;
}
else
{
var getAs = Person_PersonsService.GetUserListByProjectIdUnitIdRoleId(getProjectPerson.ProjectId, Const.UnitId_SEDIN, BLL.Const.HSSEManager + "," + BLL.Const.HSSEAssistantManager);
if (getAs.Count() > 0)
{
var getA = getAs.FirstOrDefault();
if (getA != null)
{
person.AuditorId = getA.PersonId;
person.AuditorName = getA.PersonName;
}
}
}
person.AuditorDate = string.Format("{0:yyyy-MM-dd}", getProjectPerson.AuditorDate);
person.AttachUrl2 = APIUpLoadFileService.getFileUrl(getProjectPerson.PersonId + "#2", null);
person.AttachUrl3 = APIUpLoadFileService.getFileUrl(getProjectPerson.PersonId + "#3", null);
person.AttachUrl4 = getAttachUrl4(getProjectPerson.PersonId);
person.AttachUrl5 = APIUpLoadFileService.getFileUrl(getProjectPerson.PersonId + "#5", null);
person.AttachUrl6 = APIUpLoadFileService.getFileUrl(getProjectPerson.PersonId + "#6", null);
}
var getPerson = db.Person_Persons.FirstOrDefault(x => x.IdentityCard == idcard && idcard.Length > 1);
if (getPerson != null)
{
person.PersonId = getPerson.PersonId;
person.PersonName = getPerson.PersonName;
person.IdentityCard = getPerson.IdentityCard;
person.Sex = getPerson.Sex;
person.SexName = getPerson.Sex == "1" ? "男" : "女";
person.Address = getPerson.Address;
person.Telephone = getPerson.Telephone;
person.PhotoUrl = getPerson.PhotoUrl;
person.IsForeign = getPerson.IsForeign.HasValue ? getPerson.IsForeign : false;
person.PersonType = getPerson.PersonType;
person.PersonTypeName = DropListService.getPersonTypeNameByValue(getPerson.PersonType);
person.AttachUrl1 = getPerson.IDCardUrl == null ? APIUpLoadFileService.getFileUrl(getProjectPerson.PersonId + "#1", null) : getPerson.IDCardUrl.Replace('\\', '/');
person.AttachUrl5 = getPerson.IDCardBackUrl == null ? APIUpLoadFileService.getFileUrl(getProjectPerson.PersonId + "#5", null) : getPerson.IDCardBackUrl.Replace('\\', '/');
person.IdcardType = getPerson.IdcardType;
person.IdcardTypeName = "身份证";
person.IdcardStartDate = string.Format("{0:yyyy-MM-dd}", getPerson.IdcardStartDate);
person.IdcardEndDate = string.Format("{0:yyyy-MM-dd}", getPerson.IdcardEndDate);
person.IdcardForever = getPerson.IdcardForever;
person.IdcardForeverStr = getPerson.IdcardForever == "Y" ? "是" : "否";
person.PoliticsStatus = getPerson.PoliticsStatus;
person.UnitId = getPerson.UnitId;
var gettUnit = db.Base_Unit.FirstOrDefault(x => x.UnitId == getPerson.UnitId);
if (gettUnit != null)
{
person.UnitCode = gettUnit.UnitCode;
person.UnitName = gettUnit.UnitName;
}
person.WorkPostId = getPerson.WorkPostId;
var getWorkPost = db.Base_WorkPost.FirstOrDefault(x => x.WorkPostId == getPerson.WorkPostId);
if (getWorkPost != null)
{
person.WorkPostName = getWorkPost.WorkPostName;
}
var getRealName_BasicData = db.RealName_BasicData.FirstOrDefault(x => x.DictCode == getPerson.PoliticsStatus);
if (getRealName_BasicData != null)
{
person.PoliticsStatusName = getRealName_BasicData.DictName;
}
person.IdcardAddress = getPerson.IdcardAddress;
person.Nation = getPerson.Nation;
var getRealName_BasicData1 = db.RealName_BasicData.FirstOrDefault(x => x.DictCode == getPerson.Nation);
if (getRealName_BasicData1 != null)
{
person.NationName = getRealName_BasicData1.DictName;
}
person.EduLevel = getPerson.EduLevel;
var getRealName_BasicData2 = db.RealName_BasicData.FirstOrDefault(x => x.DictCode == getPerson.EduLevel);
if (getRealName_BasicData2 != null)
{
person.EduLevelName = getRealName_BasicData2.DictName;
}
person.MaritalStatus = getPerson.MaritalStatus;
var getRealName_BasicData3 = db.RealName_BasicData.FirstOrDefault(x => x.DictCode == getPerson.MaritalStatus);
if (getRealName_BasicData3 != null)
{
person.MaritalStatusName = getRealName_BasicData3.DictName;
}
person.CountryCode = getPerson.CountryCode;
var getRealName_Country = db.RealName_Country.FirstOrDefault(x => x.CountryId == getPerson.CountryCode);
if (getRealName_Country != null)
{
person.CountryName = getRealName_Country.Cname;
}
person.ProvinceCode = getPerson.ProvinceCode;
var getRealName_City = db.RealName_City.FirstOrDefault(x => x.CountryId == getPerson.CountryCode && x.ProvinceCode == getPerson.ProvinceCode);
if (getRealName_City != null)
{
person.ProvinceName = getRealName_City.Cname;
}
}
return person;
}
}
///
///
///
///
public static string getAttachUrl4(string personId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
string returnUrl = APIUpLoadFileService.getFileUrl(personId + "#4", null);
var getPersonQuality = db.QualityAudit_PersonQuality.FirstOrDefault(x => x.PersonId == personId);
if (getPersonQuality != null)
{
string url1 = APIUpLoadFileService.getFileUrl(getPersonQuality.PersonQualityId, null);
if (!string.IsNullOrEmpty(url1))
{
if (!string.IsNullOrEmpty(returnUrl))
{
returnUrl += "," + url1;
}
else
{
returnUrl = url1;
}
}
}
return returnUrl;
}
}
#endregion
#region 根据projectId、unitid获取人员信息
///
/// 根据projectId、unitid获取人员信息
///
///
///
public static List getPersonByProjectIdUnitId(string projectId, string unitId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var persons = from x in db.View_SitePerson_Person
where x.ProjectId == projectId && (x.UnitId == unitId || unitId == null)
&& x.States == Const.ProjectPersonStates_1
orderby x.CardNo descending
select new Model.PersonItem
{
PersonId = x.PersonId,
CardNo = x.CardNo,
PersonName = x.PersonName,
SexName = x.SexName,
IdentityCard = x.IdentityCard,
Address = x.Address,
ProjectId = x.ProjectId,
ProjectCode = x.ProjectCode,
ProjectName = x.ProjectName,
UnitId = x.UnitId,
UnitCode = x.UnitCode,
UnitName = x.UnitName,
TeamGroupId = x.TeamGroupId,
TeamGroupName = x.TeamGroupName,
WorkPostId = x.WorkPostId,
WorkPostName = x.WorkPostName,
InTime = string.Format("{0:yyyy-MM-dd}", x.InTime),
OutTime = string.Format("{0:yyyy-MM-dd}", x.OutTime),
OutResult = x.OutResult,
Telephone = x.Telephone,
PhotoUrl = x.PhotoUrl,
DepartName = x.DepartName,
WorkAreaId = x.WorkAreaId,
WorkAreaName = x.WorkAreaName,
PostType = x.PostType,
IsForeign = x.IsForeign.HasValue ? x.IsForeign : false,
PersonType = x.PersonType,
PersonTypeName = x.PersonType == "2" ? "外聘" : (x.PersonType == "3" ? "第三方" : "员工"),
PostTypeName = db.Sys_Const.First(z => z.GroupId == ConstValue.Group_PostType && z.ConstValue == x.PostType).ConstText,
};
return persons.ToList();
}
}
#endregion
#region 根据条件获取项目人员信息(支持多条件过滤)
///
/// 根据条件获取项目人员信息(支持多条件过滤)
///
/// 查询过滤条件
///
public static List getPersonByFilter(Model.ProjectPersonInput filter)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var query = from x in db.View_SitePerson_Person
select x;
// 添加过滤条件
if (filter != null)
{
// 项目ID过滤
if (!string.IsNullOrEmpty(filter.ProjectId))
{
query = query.Where(x => x.ProjectId == filter.ProjectId);
}
// 项目名称过滤(模糊查询)
if (!string.IsNullOrEmpty(filter.ProjectName))
{
query = query.Where(x => x.ProjectName.Contains(filter.ProjectName));
}
// 项目代号过滤(模糊查询)
if (!string.IsNullOrEmpty(filter.ProjectCode))
{
query = query.Where(x => x.ProjectCode.Contains(filter.ProjectCode));
}
// 人员ID过滤
if (!string.IsNullOrEmpty(filter.PersonId))
{
query = query.Where(x => x.PersonId == filter.PersonId);
}
// 项目人员ID过滤
if (!string.IsNullOrEmpty(filter.SitePersonId))
{
query = query.Where(x => x.SitePersonId == filter.SitePersonId);
}
// 姓名过滤(模糊查询)
if (!string.IsNullOrEmpty(filter.PersonName))
{
query = query.Where(x => x.PersonName.Contains(filter.PersonName));
}
// 身份证号过滤
if (!string.IsNullOrEmpty(filter.IdentityCard))
{
query = query.Where(x => x.IdentityCard == filter.IdentityCard);
}
// 卡号过滤
if (!string.IsNullOrEmpty(filter.CardNo))
{
query = query.Where(x => x.CardNo == filter.CardNo);
}
// 单位名称过滤(模糊查询)
if (!string.IsNullOrEmpty(filter.UnitName))
{
query = query.Where(x => x.UnitName.Contains(filter.UnitName));
}
// 班组名称过滤(模糊查询)
if (!string.IsNullOrEmpty(filter.TeamGroupName))
{
query = query.Where(x => x.TeamGroupName.Contains(filter.TeamGroupName));
}
// 岗位名称过滤(模糊查询)
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
select new Model.ProjectPersonOutput
{
PersonId = x.PersonId,
SitePersonId = x.SitePersonId,
CardNo = x.CardNo,
PersonName = x.PersonName,
SexName = x.SexName,
IdentityCard = x.IdentityCard,
ProjectId = x.ProjectId,
ProjectName = x.ProjectName,
ProjectCode= x.ProjectCode,
UnitId = x.UnitId,
UnitName = x.UnitName,
TeamGroupName = x.TeamGroupName,
WorkPostName = x.WorkPostName,
InTime = string.Format("{0:yyyy-MM-dd}", x.InTime),
OutTime = string.Format("{0:yyyy-MM-dd}", x.OutTime),
OutResult = x.OutResult,
Telephone = x.Telephone,
PhotoUrl = x.PhotoUrl,
DepartName = x.DepartName,
WorkAreaName = x.WorkAreaName,
PostType = x.PostType,
PersonType = x.PersonType,
PersonTypeName = x.PersonType == "2" ? "外聘" : (x.PersonType == "3" ? "第三方" : "员工"),
PostTypeName = db.Sys_Const.FirstOrDefault(z => z.GroupId == ConstValue.Group_PostType && z.ConstValue == x.PostType).ConstText,
};
return persons.ToList();
}
}
#endregion
#region 获取在岗、离岗、待审人员列表
///
/// 记录数
///
public static int getPersonListCount
{
get;
set;
}
///
/// 获取在岗、离岗、待审人员列表
///
///
///
/// 0待审1在岗2离岗
/// 查询单位
/// 查询岗位
/// 查询条件
///
public static List getPersonListByProjectIdStates(string projectId, string unitId, string states, string strUnitId, string strWorkPostId, string strParam, int pageIndex)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var getViews = from x in db.SitePerson_Person
where x.ProjectId == projectId && (strUnitId == null || x.UnitId == strUnitId)
&& (strWorkPostId == null || x.WorkPostId == strWorkPostId)
&& x.States == states
select x;
if (unitId != Const.UnitId_SEDIN && !string.IsNullOrEmpty(unitId))
{
getViews = getViews.Where(x => x.UnitId == unitId);
}
if (!string.IsNullOrEmpty(strParam))
{
getViews = getViews.Where(x => x.PersonName.Contains(strParam) || x.IdentityCard.Contains(strParam));
}
getPersonListCount = getViews.Count();
if (getPersonListCount == 0)
{
return null;
}
else
{
var persons = from x in getViews
join p in db.Person_Persons on x.PersonId equals p.PersonId
join y in db.Base_Unit on x.UnitId equals y.UnitId
orderby x.InTime descending
select new Model.PersonItem
{
SitePersonId = x.SitePersonId,
PersonId = x.PersonId,
CardNo = x.CardNo,
PersonName = x.PersonName,
SexName = (p.Sex == "2" ? "女" : "男"),
IdentityCard = x.IdentityCard,
Address = p.Address,
ProjectId = x.ProjectId,
UnitId = x.UnitId,
UnitCode = y.UnitCode,
UnitName = y.UnitName,
TeamGroupId = x.TeamGroupId,
TeamGroupName = db.ProjectData_TeamGroup.First(z => z.TeamGroupId == x.TeamGroupId).TeamGroupName,
WorkPostId = x.WorkPostId,
WorkPostName = db.Base_WorkPost.First(z => z.WorkPostId == x.WorkPostId).WorkPostName,
InTime = string.Format("{0:yyyy-MM-dd}", x.InTime),
OutTime = string.Format("{0:yyyy-MM-dd}", x.OutTime),
OutResult = x.OutResult,
Telephone = p.Telephone,
PhotoUrl = p.PhotoUrl,
//IsUsed = x.IsUsed,
//IsUsedName = (x.IsUsed == true ? "启用" : "未启用"),
WorkAreaId = x.WorkAreaId,
WorkAreaName = UnitWorkService.GetUnitWorkName(x.WorkAreaId),
PostType = ReturnQuality(x.PersonId, x.WorkPostId),
//PostTypeName = db.Sys_Const.First(p => p.GroupId == ConstValue.Group_PostType && p.ConstValue == p.PostType).ConstText,
IsForeign = p.IsForeign.HasValue ? p.IsForeign : false,
PersonType = p.PersonType,
PersonTypeName = p.PersonType == "2" ? "外聘" : (p.PersonType == "3" ? "第三方" : "员工"),
States = x.States,
};
if (pageIndex > 0)
{
return persons.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList();
}
else
{
return persons.ToList();
}
}
}
}
///
///
///
///
///
private static string ReturnQuality(string personId, string workPostId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
string postType = "";
var workPost = db.Base_WorkPost.FirstOrDefault(x => x.WorkPostId == workPostId);
if (workPost != null)
{
if (workPost.PostType == Const.PostType_2)
{
var getPerQ = db.QualityAudit_PersonQuality.FirstOrDefault(x => x.PersonId == personId && x.States == Const.State_2 && x.LimitDate >= DateTime.Now.AddMonths(1));
if (getPerQ == null)
{
postType = "1";
}
}
else if (workPost.PostType == Const.PostType_5)
{
var getPerQ = db.QualityAudit_EquipmentPersonQuality.FirstOrDefault(x => x.PersonId == personId && x.States == Const.State_2 && x.LimitDate >= DateTime.Now.AddMonths(1));
if (getPerQ == null)
{
postType = "3";
}
}
if (workPost.IsHsse == true)
{
var getPerQ = db.QualityAudit_SafePersonQuality.FirstOrDefault(x => x.PersonId == personId && x.States == Const.State_2 && x.LimitDate >= DateTime.Now.AddMonths(1));
if (getPerQ == null)
{
postType = "2";
}
}
}
return postType;
}
}
#endregion
#region 根据培训类型获取项目培训人员信息
///
/// 根据培训类型获取项目培训人员信息
///
/// 项目ID
/// 培训单位ID
/// 培训岗位ID
/// 培训类型ID
///
public static List getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, string name)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var getPersons = from x in db.View_SitePerson_Person
where x.ProjectId == projectId && x.States == Const.ProjectPersonStates_1
select new Model.PersonItem
{
SitePersonId = x.SitePersonId,
PersonId = x.PersonId,
CardNo = x.CardNo,
PersonName = x.PersonName,
SexName = x.SexName,
IdentityCard = x.IdentityCard,
Address = x.Address,
ProjectId = x.ProjectId,
ProjectCode = x.ProjectCode,
ProjectName = x.ProjectName,
UnitId = x.UnitId,
UnitCode = x.UnitCode,
UnitName = x.UnitName,
TeamGroupId = x.TeamGroupId,
TeamGroupName = x.TeamGroupName,
WorkPostId = x.WorkPostId,
WorkPostName = x.WorkPostName,
InTime = string.Format("{0:yyyy-MM-dd}", x.InTime),
OutTime = string.Format("{0:yyyy-MM-dd}", x.OutTime),
OutResult = x.OutResult,
Telephone = x.Telephone,
PhotoUrl = x.PhotoUrl,
DepartName = x.DepartName,
};
if (!string.IsNullOrEmpty(unitIds))
{
List unitIdList = Funs.GetStrListByStr(unitIds, ',');
getPersons = getPersons.Where(x => unitIdList.Contains(x.UnitId));
}
if (!string.IsNullOrEmpty(workPostIds))
{
List workPostIdList = Funs.GetStrListByStr(workPostIds, ',');
getPersons = getPersons.Where(x => workPostIdList.Contains(x.WorkPostId));
}
if (!string.IsNullOrEmpty(name))
{
getPersons = getPersons.Where(x => x.PersonName.Contains(name));
}
List getTrainPersonList = new List();
var getTrainType = TrainTypeService.GetTrainTypeById(trainTypeId);
if (getTrainType != null && (!getTrainType.IsRepeat.HasValue || getTrainType.IsRepeat == false))
{
foreach (var item in getPersons)
{
var getTrainPersonIdList1 = (from x in db.EduTrain_TrainRecordDetail
join y in db.EduTrain_TrainRecord on x.TrainingId equals y.TrainingId
where y.ProjectId == projectId && y.TrainTypeId == trainTypeId && x.CheckResult == true && x.PersonId == item.PersonId
select x).FirstOrDefault();
if (getTrainPersonIdList1 == null)
{
var getTrainPersonIdList2 = (from x in db.Training_Task
join y in db.Training_Plan on x.PlanId equals y.PlanId
where y.ProjectId == projectId && y.TrainTypeId == trainTypeId && y.States != "3" && x.UserId == item.PersonId
select x).FirstOrDefault();
if (getTrainPersonIdList2 == null)
{
getTrainPersonList.Add(item);
}
}
}
return getTrainPersonList;
}
else
{
return getPersons.ToList();
}
}
}
#endregion
#region 人员信息保存方法
///
/// 人员信息保存方法
///
/// 人员信息
public static string SaveSitePerson(Model.PersonItem person)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
string message = string.Empty;
///人员信息提示
var newPerson = getSavePerson(person);
// string personInfo = Person_PersonsService.ValidPersonInfo(newPerson);
///项目人员提示
var newProjectPerson = getSaveProjectPerson(person);
string projectPersonInfo = SitePerson_PersonService.ValidPersonInfo(newProjectPerson);
if (string.IsNullOrEmpty(projectPersonInfo))
{
if (string.IsNullOrEmpty(newPerson.PhotoUrl))
{
message += "照片不能为空!";
}
if (string.IsNullOrEmpty(newPerson.PersonId))
{
var getPersonByIdentityCard = Person_PersonsService.GetPerson_PersonsByIdCard(newPerson.IdentityCard);
if (getPersonByIdentityCard != null)
{
newPerson.PersonId = getPersonByIdentityCard.PersonId;
}
}
if (!string.IsNullOrEmpty(newPerson.PersonId))
{
Person_PersonsService.UpdatePersonByProject(newPerson);
}
else
{
newPerson.IsOffice = false;
newPerson.PersonId = SQLHelper.GetNewID();
Person_PersonsService.AddPerson(newPerson);
}
newProjectPerson.PersonId = newPerson.PersonId;
if (newProjectPerson.SitePersonId != null)
{
var getProjectPerson = db.SitePerson_Person.FirstOrDefault(x => x.ProjectId == newProjectPerson.ProjectId && x.IdentityCard == newPerson.IdentityCard);
if (getProjectPerson != null)
{
newProjectPerson.SitePersonId = getProjectPerson.SitePersonId;
}
}
if (!string.IsNullOrEmpty(newProjectPerson.SitePersonId))
{
Model.Sys_Log newlog = new Sys_Log
{
UserId = newPerson.PersonId,
MenuId = Const.PersonListMenuId,
OperationName = "APP修改人员",
OperationLog = "修改人员" + newPerson.PersonName,
DataId = newPerson.PersonId,
ProjectId = person.ProjectId,
};
SitePerson_PersonService.UpdateSitePerson(newProjectPerson, newlog);
}
else
{
newProjectPerson.SitePersonId = SQLHelper.GetNewID();
SitePerson_PersonService.AddSitePerson(newProjectPerson);
}
if (!string.IsNullOrEmpty(newPerson.PersonId))
{
SaveMeetUrl(newPerson.PersonId, Const.PersonListMenuId, person.AttachUrl1, person.AttachUrl2, person.AttachUrl3, person.AttachUrl4, person.AttachUrl5, person.AttachUrl6);
}
if (person.States == Const.ProjectPersonStates_0 && !string.IsNullOrEmpty(newProjectPerson.AuditorId))
{
APICommonService.SendSubscribeMessage(newProjectPerson.AuditorId, "人员信息待您审核", person.ProjectCode, string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now));
}
}
else
{
message = projectPersonInfo ?? "";
}
return message;
}
}
#region 人员附件保存方法
///
/// 人员附件保存方法
///
public static void SaveMeetUrl(string personId, string menuId, string url1, string url2, string url3, string url4, string url5, string url6)
{
Model.ToDoItem toDoItem = new Model.ToDoItem
{
MenuId = menuId,
DataId = personId + "#1",
UrlStr = url1,
};
if (!string.IsNullOrEmpty(url1))
{
APIUpLoadFileService.SaveAttachUrl(toDoItem);
}
toDoItem.DataId = personId + "#2";
toDoItem.UrlStr = url2;
if (!string.IsNullOrEmpty(url2))
{
APIUpLoadFileService.SaveAttachUrl(toDoItem);
}
toDoItem.DataId = personId + "#3";
toDoItem.UrlStr = url3;
if (!string.IsNullOrEmpty(url3))
{
APIUpLoadFileService.SaveAttachUrl(toDoItem);
}
toDoItem.DataId = personId + "#4";
toDoItem.UrlStr = url4;
if (!string.IsNullOrEmpty(url4))
{
APIUpLoadFileService.SaveAttachUrl(toDoItem);
}
toDoItem.DataId = personId + "#5";
toDoItem.UrlStr = url5;
if (!string.IsNullOrEmpty(url5))
{
APIUpLoadFileService.SaveAttachUrl(toDoItem);
}
toDoItem.DataId = personId + "#6";
toDoItem.UrlStr = url6;
if (!string.IsNullOrEmpty(url6))
{
APIUpLoadFileService.SaveAttachUrl(toDoItem);
}
}
#endregion
#region 收集人员库信息
///
/// 收集人员库信息
///
public static Model.Person_Persons getSavePerson(Model.PersonItem person)
{
Model.Person_Persons newPerson = new Model.Person_Persons
{
PersonId = person.PersonId,
PersonName = person.PersonName,
UnitId = person.UnitId,
WorkPostId = person.WorkPostId,
PersonType = person.PersonType,
IsForeign = person.IsForeign,
IsPost = true,
IdcardType = string.IsNullOrEmpty(person.IdcardType) ? "SHENFEN_ZHENGJIAN" : person.IdcardType,
IdentityCard = person.IdentityCard,
IdcardAddress = person.IdcardAddress,
IdcardForever = person.IdcardForever ?? "Y",
IdcardStartDate = Funs.GetNewDateTime(person.IdcardStartDate),
IdcardEndDate = Funs.GetNewDateTime(person.IdcardEndDate),
Telephone = person.Telephone,
Sex = person.Sex,
Birthday = person.Birthday,
//Major = person.Major,
//ForeignLanguage = person.ForeignLanguage,
CountryCode = string.IsNullOrEmpty(person.CountryCode) ? null : person.CountryCode,
ProvinceCode = string.IsNullOrEmpty(person.ProvinceCode) ? null : person.ProvinceCode,
Nation = string.IsNullOrEmpty(person.Nation) ? null : person.Nation,
PoliticsStatus = string.IsNullOrEmpty(person.PoliticsStatus) ? null : person.PoliticsStatus,
EduLevel = string.IsNullOrEmpty(person.EduLevel) ? null : person.EduLevel,
MaritalStatus = string.IsNullOrEmpty(person.MaritalStatus) ? null : person.MaritalStatus,
//RelativeName = person.RelativeName,
//RelativeTel = person.RelativeTel,
Address = person.Address,
//RoleIds = Funs.GetStringByArray(this.drpProjectRole.SelectedValueArray),
PhotoUrl = person.PhotoUrl,
IDCardUrl = person.AttachUrl1,
//QRCodeAttachUrl = person.AttachUrl5,
IDCardBackUrl = person.AttachUrl5,
};
string rootUrl = ConfigurationManager.AppSettings["localRoot"];
if (!string.IsNullOrEmpty(rootUrl) && !string.IsNullOrEmpty(person.PhotoUrl))
{
newPerson.HeadImage = AttachFileService.SetImageToByteArray(rootUrl + person.PhotoUrl);
}
return newPerson;
}
#endregion
#region 收集项目人员信息
///
/// 收集项目人员信息
///
public static Model.SitePerson_Person getSaveProjectPerson(Model.PersonItem person)
{
Model.SitePerson_Person newPerson = new Model.SitePerson_Person
{
PersonId = person.PersonId,
SitePersonId = person.SitePersonId,
PersonName = person.PersonName,
IdentityCard = person.IdentityCard,
UnitId = person.UnitId,
ProjectId = person.ProjectId,
WorkPostId = string.IsNullOrEmpty(person.WorkPostId) ? null : person.WorkPostId,
// RoleIds = Funs.GetStringByArray(this.drpProjectRole.SelectedValueArray),
TeamGroupId = string.IsNullOrEmpty(person.TeamGroupId) ? null : person.TeamGroupId,
InTime = Funs.GetNewDateTime(person.InTime),
AuditorId = person.AuditorId,
OutTime = Funs.GetNewDateTime(person.OutTime),
OutResult = person.OutResult,
States = person.States ?? Const.ProjectPersonStates_0,
WorkAreaId = person.WorkAreaId,
};
return newPerson;
}
#endregion
#endregion
#region 更新人员附件
///
/// 更新人员附件
///
///
public static void SaveSitePersonAttachment(Model.PersonItem person)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var getPerson = db.Person_Persons.FirstOrDefault(x => x.IdentityCard == person.IdentityCard || x.PersonId == person.PersonId);
if (getPerson == null)
{
var getSitePerson = db.SitePerson_Person.FirstOrDefault(x => x.SitePersonId == person.PersonId);
if (getSitePerson != null)
{
getPerson = db.Person_Persons.FirstOrDefault(x => x.IdentityCard == getSitePerson.IdentityCard || x.PersonId == getSitePerson.PersonId);
}
}
if (getPerson != null)
{
if (!string.IsNullOrEmpty(person.PhotoUrl))
{
getPerson.PhotoUrl = person.PhotoUrl;
string rootUrl = ConfigurationManager.AppSettings["localRoot"];
if (!string.IsNullOrEmpty(rootUrl) && !string.IsNullOrEmpty(person.PhotoUrl))
{
getPerson.HeadImage = AttachFileService.SetImageToByteArray(rootUrl + person.PhotoUrl);
}
}
if (!string.IsNullOrEmpty(person.AttachUrl1))
{
getPerson.IDCardUrl = person.AttachUrl1;
}
db.SubmitChanges();
SaveMeetUrl(getPerson.PersonId, Const.PersonListMenuId, person.AttachUrl1, person.AttachUrl2, person.AttachUrl3, person.AttachUrl4, person.AttachUrl5, person.AttachUrl6);
}
}
}
#endregion
#region 更新人员数据交换时间
///
/// 更新人员数据交换时间
///
/// 人员ID
public static void getUpdatePersonExchangeTime(string sitePersonId, string type)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var getPerson = db.SitePerson_Person.FirstOrDefault(e => e.SitePersonId == sitePersonId || e.PersonId == sitePersonId);
if (getPerson != null && !string.IsNullOrEmpty(type))
{
if (type == "1")
{
getPerson.ExchangeTime2 = DateTime.Now;
}
else
{
getPerson.ExchangeTime = DateTime.Now;
}
db.SubmitChanges();
}
else
{
if (type == "1")
{
getPerson.ExchangeTime2 = DateTime.Now;
}
else
{
getPerson.ExchangeTime = DateTime.Now;
}
db.SubmitChanges();
}
}
}
#endregion
#region 获取人员信息出入场记录
///
/// 获取人员信息出入场记录
///
///
///
///
///
///
///
public static List getPersonInOutList(string projectId, string unitId, string startTime, string endTime)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
DateTime? startTimeD = Funs.GetNewDateTime(startTime);
DateTime? endTimeD = Funs.GetNewDateTime(endTime);
var personInOuts = from x in db.SitePerson_PersonInOut
join y in db.SitePerson_Person on x.PersonId equals y.PersonId
where x.ProjectId == projectId
select new Model.PersonInOutItem
{
PersonId = x.PersonId,
PersonName = y.PersonName,
ProjectId = x.ProjectId,
UnitId = y.UnitId,
UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName,
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 (!string.IsNullOrEmpty(unitId) && unitId != Const.UnitId_SEDIN)
{
personInOuts = personInOuts.Where(x => x.UnitId == unitId);
}
if (startTimeD.HasValue)
{
personInOuts = personInOuts.Where(x => x.ChangeTimeD >= startTimeD);
}
if (endTimeD.HasValue)
{
personInOuts = personInOuts.Where(x => x.ChangeTimeD <= endTimeD);
}
return personInOuts.OrderByDescending(x => x.ChangeTimeD).ToList();
}
}
#endregion
#region 获取人员信息出入场记录
///
/// 获取人员信息出入场记录
///
///
///
///
///
///
///
public static List getPersonInOutList(string projectId, string userUnitId, string unitId, string workPostId, string strParam, string startTime, string endTime)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
DateTime? startTimeD = Funs.GetNewDateTime(startTime);
DateTime? endTimeD = Funs.GetNewDateTime(endTime);
var personInOuts = from x in db.SitePerson_PersonInOut
join y in db.SitePerson_Person on x.PersonId equals y.PersonId
where x.ProjectId == projectId
select new Model.PersonInOutItem
{
PersonId = x.PersonId,
PersonName = y.PersonName,
ProjectId = x.ProjectId,
UnitId = y.UnitId,
UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName,
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 (!string.IsNullOrEmpty(userUnitId) && userUnitId != Const.UnitId_SEDIN)
{
personInOuts = personInOuts.Where(x => x.UnitId == userUnitId);
}
if (!string.IsNullOrEmpty(unitId))
{
personInOuts = personInOuts.Where(x => x.UnitId == unitId);
}
if (!string.IsNullOrEmpty(workPostId))
{
personInOuts = personInOuts.Where(x => x.WorkPostId == workPostId);
}
if (startTimeD.HasValue)
{
personInOuts = personInOuts.Where(x => x.ChangeTimeD >= startTimeD);
}
if (endTimeD.HasValue)
{
personInOuts = personInOuts.Where(x => x.ChangeTimeD <= endTimeD);
}
if (!string.IsNullOrEmpty(strParam))
{
personInOuts = personInOuts.Where(x => x.PersonName.Contains(strParam));
}
return personInOuts.OrderByDescending(x => x.ChangeTimeD).ToList();
}
}
#endregion
#region 根据人员ID获取个人出入场记录
///
/// 根据人员ID获取个人出入场记录
///
///
///
///
///
public static List getPersonInOutListByPersonId(string personId, string startTime, string endTime)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
DateTime? startTimeD = Funs.GetNewDateTime(startTime);
DateTime? endTimeD = Funs.GetNewDateTime(endTime);
var personInOuts = from x in db.SitePerson_PersonInOut
join y in db.SitePerson_Person on x.PersonId equals y.PersonId
where x.PersonId == personId
select new Model.PersonInOutItem
{
PersonId = x.PersonId,
PersonName = y.PersonName,
ProjectId = x.ProjectId,
UnitId = y.UnitId,
UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName,
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 (startTimeD.HasValue)
{
personInOuts = personInOuts.Where(x => x.ChangeTimeD >= startTimeD);
}
if (endTimeD.HasValue)
{
personInOuts = personInOuts.Where(x => x.ChangeTimeD <= endTimeD);
}
return personInOuts.OrderByDescending(x => x.ChangeTimeD).ToList();
}
}
#endregion
#region 根据条件获取人员出入场记录(支持多条件过滤)
///
/// 根据条件获取人员出入场记录(支持多条件过滤)
///
/// 查询过滤条件
///
public static List getPersonInOutListByFilter(Model.PersonInOutRecordInput filter)
{
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
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,
};
// 添加过滤条件
if (filter != null)
{
// 单位名称过滤(模糊查询)
if (!string.IsNullOrEmpty(filter.UnitName))
{
query = query.Where(x => x.UnitName.Contains(filter.UnitName));
}
// 项目代号过滤(模糊查询)
if (!string.IsNullOrEmpty(filter.ProjectCode))
{
query = query.Where(x => x.ProjectCode.Contains(filter.ProjectCode));
}
// 人员姓名过滤(模糊查询)
if (!string.IsNullOrEmpty(filter.PersonName))
{
query = query.Where(x => x.PersonName.Contains(filter.PersonName));
}
}
return query.OrderByDescending(x => x.ChangeTimeD).ToList();
}
}
#endregion
#region 根据identityCard获取人员资质信息
///
/// 根据identityCard获取人员资质信息
///
///
///
public static Model.PersonQualityItem getPersonQualityByIdentityCard(string identityCard, string projectId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var getLists = from y in db.SitePerson_Person
join x in db.QualityAudit_PersonQuality on y.PersonId equals x.PersonId
where (y.IdentityCard == identityCard || x.PersonId == identityCard) && (projectId == null || y.ProjectId == projectId)
orderby y.CardNo
select new Model.PersonQualityItem
{
PersonQualityId = x.PersonQualityId,
PersonId = x.PersonId,
PersonName = y.PersonName,
CardNo = y.CardNo,
IdentityCard = y.IdentityCard,
ProjectId = y.ProjectId,
UnitId = y.UnitId,
UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName,
UnitCode = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitCode,
WorkPostId = y.WorkPostId,
WorkPostName = db.Base_WorkPost.First(z => z.WorkPostId == y.WorkPostId).WorkPostName,
CertificateId = x.CertificateId,
CertificateName = db.Base_Certificate.First(z => z.CertificateId == x.CertificateId).CertificateName,
CertificateNo = x.CertificateNo,
Grade = x.Grade,
SendUnit = x.SendUnit,
SendDate = string.Format("{0:yyyy-MM-dd}", x.SendDate),
LimitDate = string.Format("{0:yyyy-MM-dd}", x.LimitDate),
LateCheckDate = string.Format("{0:yyyy-MM-dd}", x.LateCheckDate),
ApprovalPerson = db.Person_Persons.First(z => z.PersonId == x.AuditorId).PersonName,
Remark = x.Remark,
CompileMan = x.CompileMan,
CompileManName = db.Person_Persons.First(z => z.PersonId == x.CompileMan).PersonName,
CompileDate = string.Format("{0:yyyy-MM-dd}", x.CompileDate),
AuditDate = string.Format("{0:yyyy-MM-dd}", x.AuditDate),
AuditorName = db.Person_Persons.First(z => z.PersonId == x.AuditorId).PersonName,
AttachUrl = APIUpLoadFileService.getFileUrl(x.PersonQualityId, null),
};
return getLists.FirstOrDefault();
}
}
#endregion
#region 根据identityCard获取人员资质信息
///
/// 根据identityCard获取人员资质信息
///
///
///
public static List getPersonTestRecoedByIdentityCard(string identityCard, string projectId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var getLists = from x in db.EduTrain_TrainRecordDetail
join y in db.SitePerson_Person on x.PersonId equals y.PersonId
join z in db.EduTrain_TrainRecord on x.TrainingId equals z.TrainingId
where y.IdentityCard == identityCard && (projectId == null || z.ProjectId == projectId)
orderby z.TrainStartDate descending
select new Model.TestRecordItem
{
TestRecordId = x.TrainDetailId,
ProjectId = z.ProjectId,
ProjectName = db.Base_Project.First(u => u.ProjectId == z.ProjectId).ProjectName,
TestPlanName = z.TrainTitle,
TestManId = x.PersonId,
TestManName = y.PersonName,
TestStartTime = string.Format("{0:yyyy-MM-dd HH:mm}", z.TrainStartDate),
TestEndTime = string.Format("{0:yyyy-MM-dd HH:mm}", z.TrainEndDate),
TestScores = x.CheckScore ?? 0,
CheckResult = x.CheckResult,
TestType = db.Base_TrainType.First(u => u.TrainTypeId == z.TrainTypeId).TrainTypeName,
};
return getLists.ToList();
}
}
#endregion
#region 根据projectId、unitid获取特岗人员资质信息
///
/// 根据projectId、unitid获取特岗人员资质信息
///
/// 项目ID
/// 单位ID
/// 数据类型0-已过期;1-即将过期;2-无证书
/// 页码
///
public static List getPersonQualityByProjectIdUnitId(string projectId, string unitId, string type)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var getLists = (from x in db.SitePerson_Person
join y in db.QualityAudit_PersonQuality on x.PersonId equals y.PersonId
join z in db.Base_WorkPost on x.WorkPostId equals z.WorkPostId
where x.ProjectId == projectId && z.PostType == "2"
orderby y.LimitDate
select new Model.PersonQualityItem
{
PersonQualityId = y.PersonQualityId,
PersonId = y.PersonId,
PersonName = x.PersonName,
CardNo = x.CardNo,
IdentityCard = x.IdentityCard,
ProjectId = x.ProjectId,
UnitId = x.UnitId,
UnitName = db.Base_Unit.First(z => z.UnitId == x.UnitId).UnitName,
CertificateId = y.CertificateId,
CertificateName = db.Base_Certificate.First(z => z.CertificateId == y.CertificateId).CertificateName,
WorkPostId = x.WorkPostId,
WorkPostName = db.Base_WorkPost.First(z => z.WorkPostId == x.WorkPostId).WorkPostName,
CertificateNo = y.CertificateNo,
Grade = y.Grade,
SendUnit = y.SendUnit,
SendDate = string.Format("{0:yyyy-MM-dd}", y.SendDate),
LimitDate = string.Format("{0:yyyy-MM-dd}", y.LimitDate),
LimitDateD = y.LimitDate,
LateCheckDate = string.Format("{0:yyyy-MM-dd}", y.LateCheckDate),
ApprovalPerson = db.Person_Persons.First(z => z.PersonId == x.AuditorId).PersonName,
Remark = y.Remark,
CompileMan = y.CompileMan,
CompileManName = db.Person_Persons.First(z => z.PersonId == y.CompileMan).PersonName,
CompileDate = string.Format("{0:yyyy-MM-dd}", y.CompileDate),
AuditDate = string.Format("{0:yyyy-MM-dd}", y.AuditDate),
AuditorName = db.Person_Persons.First(z => z.PersonId == x.AuditorId).PersonName,
AttachUrl = APIUpLoadFileService.getFileUrl(y.PersonQualityId, null),
}).ToList();
if (ProjectUnitService.GetProjectUnitTypeByProjectIdUnitId(projectId, unitId))
{
getLists = getLists.Where(x => x.UnitId == unitId).ToList();
}
if (type == "0")
{
getLists = getLists.Where(x => x.CertificateId != null && x.LimitDateD < DateTime.Now).ToList();
}
else if (type == "1")
{
getLists = getLists.Where(x => x.CertificateId != null && x.LimitDateD >= DateTime.Now && x.LimitDateD < DateTime.Now.AddMonths(1)).ToList();
}
else if (type == "2")
{
getLists = getLists.Where(x => x.CertificateId == null).ToList();
}
return getLists;
}
}
#endregion
#region 人员资质信息保存方法
///
/// 人员资质信息保存方法
///
/// 人员信息
public static void SavePersonQuality(Model.PersonQualityItem personQuality)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
Model.QualityAudit_PersonQuality newPersonQuality = new Model.QualityAudit_PersonQuality
{
PersonQualityId = personQuality.PersonQualityId,
PersonId = personQuality.PersonId,
CertificateNo = personQuality.CertificateNo,
CertificateName = personQuality.CertificateName,
Grade = personQuality.Grade,
SendUnit = personQuality.SendUnit,
SendDate = Funs.GetNewDateTime(personQuality.SendDate),
LimitDate = Funs.GetNewDateTime(personQuality.LimitDate),
LateCheckDate = Funs.GetNewDateTime(personQuality.LateCheckDate),
ApprovalPerson = personQuality.ApprovalPerson,
Remark = personQuality.Remark,
CompileDate = Funs.GetNewDateTime(personQuality.CompileDate),
AuditDate = Funs.GetNewDateTime(personQuality.AuditDate),
};
if (!string.IsNullOrEmpty(personQuality.CertificateId))
{
newPersonQuality.CertificateId = personQuality.CertificateId;
}
if (!string.IsNullOrEmpty(personQuality.CompileMan))
{
newPersonQuality.CompileMan = personQuality.CompileMan;
}
if (!string.IsNullOrEmpty(personQuality.AuditorId))
{
newPersonQuality.AuditorId = personQuality.AuditorId;
}
var getPersonQuality = db.QualityAudit_PersonQuality.FirstOrDefault(x => x.PersonQualityId == newPersonQuality.PersonQualityId || x.PersonId == newPersonQuality.PersonId);
if (getPersonQuality == null)
{
newPersonQuality.PersonQualityId = SQLHelper.GetNewID();
newPersonQuality.AuditDate = null;
db.QualityAudit_PersonQuality.InsertOnSubmit(newPersonQuality);
db.SubmitChanges();
}
else
{
newPersonQuality.PersonQualityId = getPersonQuality.PersonQualityId;
getPersonQuality.CertificateId = newPersonQuality.CertificateId;
getPersonQuality.CertificateNo = newPersonQuality.CertificateNo;
getPersonQuality.CertificateName = newPersonQuality.CertificateName;
getPersonQuality.Grade = newPersonQuality.Grade;
getPersonQuality.SendUnit = newPersonQuality.SendUnit;
getPersonQuality.SendDate = newPersonQuality.SendDate;
getPersonQuality.LimitDate = newPersonQuality.LimitDate;
getPersonQuality.LateCheckDate = newPersonQuality.LateCheckDate;
getPersonQuality.ApprovalPerson = newPersonQuality.ApprovalPerson;
getPersonQuality.Remark = newPersonQuality.Remark;
getPersonQuality.CompileMan = newPersonQuality.CompileMan;
getPersonQuality.CompileDate = newPersonQuality.CompileDate;
getPersonQuality.AuditDate = newPersonQuality.AuditDate;
getPersonQuality.AuditorId = newPersonQuality.AuditorId;
db.SubmitChanges();
}
if (!string.IsNullOrEmpty(newPersonQuality.PersonQualityId))
{
APIUpLoadFileService.SaveAttachUrl(Const.PersonQualityMenuId, newPersonQuality.PersonQualityId, personQuality.AttachUrl, "0");
}
}
}
#endregion
#region 获取异常人员信息出入场记录
///
/// 获取异常人员信息出入场记录
///
///
/// 单位ID
/// 开始时间
/// 结束时间
/// 入场异常 0 出场异常 1
/// 页码
///
public static List getAbnormalPersonInOutList(string projectId, string unitId, string startTime, string endTime, string inOut, int pageIndex)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
DateTime startTimeD = Funs.GetNewDateTimeOrNow(startTime);
DateTime endTimeD = Funs.GetNewDateTimeOrNow(endTime);
List getAbnormalPersonInOutList = new List();
//// 入场异常
if (inOut == "0")
{
var getAllPersonInOutLists = getPersonInOutLists(projectId, unitId, startTimeD.AddHours(-18), endTimeD);
/// 出场
var getPersonOuts = getAllPersonInOutLists.Where(x => (x.IsIn == false || x.IsIn == null) && x.ChangeTimeD >= startTimeD);
var getgetPersonIns = getAllPersonInOutLists.Where(x => x.IsIn == true);
Model.PersonInOutItem newItem = new Model.PersonInOutItem();
foreach (var item in getPersonOuts)
{
var getIn = getgetPersonIns.FirstOrDefault(x => x.PersonId == item.PersonId && x.ChangeTimeD.Value.AddHours(18) >= item.ChangeTimeD && x.ChangeTimeD < item.ChangeTimeD);
if (getIn == null)
{
getAbnormalPersonInOutList.Add(item);
}
}
}
else //// 出场异常
{
var getAllPersonInOutLists = getPersonInOutLists(projectId, unitId, startTimeD, endTimeD.AddHours(18));
/// 进场
var getPersonInts = getAllPersonInOutLists.Where(x => x.IsIn == true && x.ChangeTimeD <= endTimeD);
var getPersonOuts = getAllPersonInOutLists.Where(x => (x.IsIn == false || x.IsIn == null));
Model.PersonInOutItem newItem = new Model.PersonInOutItem();
foreach (var item in getPersonInts)
{
var getOut = getPersonOuts.FirstOrDefault(x => x.PersonId == item.PersonId && x.ChangeTimeD.Value.AddHours(-18) <= item.ChangeTimeD && x.ChangeTimeD > item.ChangeTimeD);
if (getOut == null)
{
getAbnormalPersonInOutList.Add(item);
}
}
}
return getAbnormalPersonInOutList.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList();
}
}
///
///
///
///
///
///
///
///
///
public static List getPersonInOutLists(string projectId, string unitId, DateTime startTimeD, DateTime endTimeD)
{
var personInOuts = from x in Funs.DB.SitePerson_PersonInOut
join y in Funs.DB.SitePerson_Person on x.PersonId equals y.PersonId
where x.ProjectId == projectId && x.ChangeTime >= startTimeD && x.ChangeTime <= endTimeD
select new Model.PersonInOutItem
{
PersonId = x.PersonId,
PersonName = y.PersonName,
ProjectId = x.ProjectId,
UnitId = y.UnitId,
UnitName = Funs.DB.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName,
WorkPostId = y.WorkPostId,
WorkPostName = Funs.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 (!string.IsNullOrEmpty(unitId))
{
personInOuts = personInOuts.Where(x => x.UnitId == unitId);
}
return personInOuts.ToList();
}
#endregion
public static string getStrTrainRecordByPersonId(string personId)
{
string strValues = string.Empty;
var getDataLists = from x in Funs.DB.EduTrain_TrainRecord
join y in Funs.DB.Base_TrainType on x.TrainTypeId equals y.TrainTypeId
join z in Funs.DB.EduTrain_TrainRecordDetail on x.TrainingId equals z.TrainingId
where z.PersonId == personId
orderby x.TrainStartDate descending
select new
{
y.TrainTypeName,
x.TrainStartDate,
CheckResultName = z.CheckResult ? "合格" : "不合格",
z.PersonId,
};
if (getDataLists.Count() > 0)
{
foreach (var item in getDataLists)
{
string strV = string.Format("{0:yyyy-MM-dd HH:mm}", item.TrainStartDate) + " " + item.TrainTypeName + " " + item.CheckResultName + ";";
strValues += strV;
}
}
return strValues;
}
public static string getStrTrainingTestRecordByPersonId(string personId)
{
string strValues = string.Empty;
var getDataLists = from x in Funs.DB.Training_TestRecord
join z in Funs.DB.Training_TestPlan on x.TestPlanId equals z.TestPlanId
where x.TestManId == personId
orderby z.PlanDate descending
select new
{
z.PlanName,
z.PlanDate,
CheckResultName = x.TestScores >=60 ? "合格" : "不合格",
z.TestPlanId,
};
if (getDataLists.Count() > 0)
{
foreach (var item in getDataLists)
{
string strV = string.Format("{0:yyyy-MM-dd HH:mm}", item.PlanDate) + " " + item.PlanName + " " + item.CheckResultName + ";";
strValues += strV;
}
}
return strValues;
}
}
}