using FineUIPro;
using Model;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace BLL
{
///
/// 人员信息
///
public static class SitePerson_PersonService
{
public static Model.SGGLDB db = Funs.DB;
#region 劳务人员列表
///
/// 记录数
///
public static int count
{
get;
set;
}
///
/// 定义变量
///
private static IQueryable getDataLists = from x in db.View_SitePerson_Person
select x;
///
/// 数据列表
///
///
///
///
///
///
///
///
///
public static IEnumerable getListData(string projetcId, string unitId, string workPostId, string name, string idCard, string states, string personType, Grid Grid1)
{
IQueryable getDataList = getDataLists.OrderBy(x => x.ProjectId).ThenBy(x => x.UnitId);
if (!string.IsNullOrEmpty(projetcId) && projetcId != Const._Null)
{
getDataList = getDataList.Where(e => e.ProjectId == projetcId);
}
if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null)
{
getDataList = getDataList.Where(e => e.UnitId == unitId);
}
if (!string.IsNullOrEmpty(workPostId) && workPostId != Const._Null)
{
getDataList = getDataList.Where(e => e.WorkPostId == workPostId);
}
if (!string.IsNullOrEmpty(personType) && personType != Const._Null)
{
getDataList = getDataList.Where(e => e.PersonType == personType);
}
if (!string.IsNullOrEmpty(states) && states != "-2")
{
getDataList = getDataList.Where(e => e.States == states);
}
if (!string.IsNullOrEmpty(name))
{
getDataList = getDataList.Where(e => e.PersonName.Contains(name));
}
if (!string.IsNullOrEmpty(idCard))
{
getDataList = getDataList.Where(e => e.IdentityCard.Contains(idCard));
}
count = getDataList.Count();
if (count == 0)
{
return null;
}
getDataList = SortConditionHelper.SortingAndPaging(getDataList, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize);
return from x in getDataList
select new
{
ProjectPersonId = x.SitePersonId + "#" + x.PersonId,
x.PersonName,
x.CardNo,
x.IdentityCard,
x.Sex,
x.SexName,
x.UnitId,
x.UnitName,
x.WorkPostId,
x.WorkPostName,
x.ProjectId,
ProjectName = db.Base_Project.First(u => u.ProjectId == x.ProjectId).ShortName,
NativePlace = x.CountryName ?? "" + x.ProvinceName ?? "",
x.TeamGroupId,
x.TeamGroupName,
x.InTime,
x.OutTime,
x.States,
OutName = (x.States == "2" ? "是" : "否"),
};
}
#endregion
#region 在岗人员列表
///
/// 记录数
///
public static int inCount
{
get;
set;
}
///
/// 定义变量
///
private static IQueryable getInPersonLists = from x in db.SitePerson_Person
where x.States == Const.ProjectPersonStates_1
select x;
///
/// 获取分页列表
///
/// 页码
/// 每页数量
///
public static IEnumerable getInPsersonListData(string projectId, string unitId, string personName, string identityCard, Grid Grid1)
{
IQueryable getInPersonList = getInPersonLists.Where(x => x.ProjectId == projectId);
if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null)
{
if (unitId == "0")
{
getInPersonList = getInPersonList.Where(x => x.UnitId == null);
}
else
{
getInPersonList = getInPersonList.Where(x => x.UnitId == unitId);
}
}
if (!string.IsNullOrEmpty(personName))
{
getInPersonList = getInPersonList.Where(x => x.PersonName.Contains(personName));
}
if (!string.IsNullOrEmpty(identityCard))
{
getInPersonList = getInPersonList.Where(x => x.IdentityCard.Contains(identityCard));
}
inCount = getInPersonList.Count();
if (inCount == 0)
{
return null;
}
getInPersonList = SortConditionHelper.SortingAndPaging(getInPersonList, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize);
return from x in getInPersonList
select new
{
x.PersonId,
x.SitePersonId,
x.CardNo,
x.PersonName,
x.UnitId,
db.Base_Unit.First(u => u.UnitId == x.UnitId).UnitName,
x.IdentityCard,
IsInName = "",
InOuDate = DateTime.Now.ToShortDateString(),
InOutTime = "00:00:00",
};
}
#endregion
#region 获取项目人员 -- 按条件查询
#region 根据现场人员主键获取现场人员信息
///
/// 根据现场人员主键获取现场人员信息
///
///
///
public static Model.SitePerson_Person GetSitePersonById(string sitePersonId)
{
return Funs.DB.SitePerson_Person.FirstOrDefault(x => x.SitePersonId == sitePersonId);
}
#endregion
#region 根据项目ID身份证号码获取现场人员信息
///
/// 根据项目ID身份证号码获取现场人员信息
///
///
///
///
public static Model.SitePerson_Person GetSitePersonByProjectIdIdentityCard(string projectId, string identityCard)
{
if (!string.IsNullOrEmpty(identityCard))
{
return Funs.DB.SitePerson_Person.FirstOrDefault(e => e.ProjectId == projectId && e.IdentityCard == identityCard);
}
else
{
return null;
}
}
#endregion
#region 根据人员库主键获取项目人员信息
///
/// 根据人员库主键获取项目人员信息
///
///
///
public static Model.SitePerson_Person GetSitePersonByProjectIdPersonId(string projectId, string personId)
{
return Funs.DB.SitePerson_Person.FirstOrDefault(x => x.PersonId == personId && x.ProjectId == projectId);
}
#endregion
#region 根据主键获取人员姓名
///
/// 根据主键获取人员姓名
///
///
///
public static string GetSitePersonNameById(string personId)
{
string name = string.Empty;
var getp = Funs.DB.SitePerson_Person.FirstOrDefault(e => e.PersonId == personId);
if (getp != null)
{
name = getp.PersonName;
}
return name;
}
#endregion
#region 根据主键获取焊工号
///
/// 根据主键获取焊工号
///
///
///
public static string GetSitePersonWelderCodeById(string projectId, string personId)
{
string name = string.Empty;
var getp = Funs.DB.SitePerson_Person.FirstOrDefault(e => e.ProjectId == projectId && e.PersonId == personId);
if (getp != null)
{
name = getp.WelderCode;
}
return name;
}
#endregion
#region 根据项目单位、班组、岗位获取现场人员信息
///
/// 根据项目单位、班组、岗位获取现场人员信息
///
///
///
public static List GetSitePerson_PersonsLits(string projectId, string unitId, string teamGroupId, string workPostId)
{
var getProjectPersons = from x in Funs.DB.SitePerson_Person
where x.ProjectId == projectId && x.States == Const.ProjectPersonStates_1
select x;
if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null)
{
getProjectPersons = getProjectPersons.Where(x => x.UnitId == unitId);
}
if (!string.IsNullOrEmpty(teamGroupId) && teamGroupId != Const._Null)
{
getProjectPersons = getProjectPersons.Where(x => x.TeamGroupId == teamGroupId);
}
if (!string.IsNullOrEmpty(workPostId) && workPostId != Const._Null)
{
getProjectPersons = getProjectPersons.Where(x => x.WorkPostId == workPostId);
}
return getProjectPersons.ToList();
}
#endregion
#region 根据项目单位、班组、岗位获取人员库 人员信息
///
/// 根据项目单位、班组、岗位获人员库 人员信息
///
///
///
public static List GetPerson_PersonsLits(string projectId, string unitId, string teamGroupId, string workPostId)
{
var getProjectPersons = from x in Funs.DB.SitePerson_Person
where x.ProjectId == projectId
select x;
if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null)
{
getProjectPersons = getProjectPersons.Where(x => x.UnitId == unitId);
}
if (!string.IsNullOrEmpty(teamGroupId) && teamGroupId != Const._Null)
{
getProjectPersons = getProjectPersons.Where(x => x.TeamGroupId == unitId);
}
if (!string.IsNullOrEmpty(workPostId) && workPostId != Const._Null)
{
getProjectPersons = getProjectPersons.Where(x => x.WorkPostId == workPostId);
}
var getPerson = from x in getProjectPersons
join y in Funs.DB.Person_Persons on x.PersonId equals y.PersonId
orderby y.PersonName
select y;
return getPerson.ToList();
}
#endregion
#region 根据项目id集合获取对应项目的所有项目用户
///
///根据项目id集合获取对应项目的所有项目用户
///
///
public static List GetSitePersonsByProjectIds(List ProjectIds)
{
return (from x in Funs.DB.SitePerson_Person
where ProjectIds.Contains(x.ProjectId) && x.RoleIds != null
select x).ToList();
}
#endregion
#region 根据项目Id 单位类型、角色获取用户下拉选项
///
/// 根据项目号、单位类型、角色获取用户下拉选项
///
///
public static List GetSitePerson_PersonListByProjectIdUnitTypeRoleIds(string projectId, string unitTypes, string roleIds)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
List returnLists = new List();
var getSitePerson = db.SitePerson_Person.Where(x => x.ProjectId == projectId
&& x.States == Const.ProjectPersonStates_1
&& x.RoleIds != null);
var uList = Funs.GetStrListByStr(unitTypes, ',');
if (!string.IsNullOrEmpty(unitTypes))
{
getSitePerson = from x in getSitePerson
join z in db.Project_ProjectUnit on x.UnitId equals z.UnitId
where z.ProjectId == projectId
&& uList.Contains(z.UnitType)
select x;
}
if (!string.IsNullOrEmpty(roleIds))
{
var getIdsList = Funs.GetStrListByStr(roleIds, ',');
foreach (var item in getIdsList)
{
var getSitePersonRoles = getSitePerson.Where(x => x.RoleIds.Contains(item));
if (getSitePersonRoles.Count() > 0)
{
returnLists.AddRange(getSitePersonRoles);
}
}
}
else
{
returnLists = getSitePerson.ToList();
}
return returnLists.OrderBy(x => x.PersonName).ToList();
}
}
#endregion
#region 获取多单位 多角色下 人员集合
///
/// 获取多单位 多角色下 人员集合
///
///
///
///
public static List GetSitePerson_PersonListByUnitIdsRoleIds(string projectId, string unitIds, string roleIds)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
List returnLists = new List();
var getgetSitePerson = db.SitePerson_Person.Where(x => x.ProjectId == projectId && x.States == Const.ProjectPersonStates_1 && x.RoleIds != null);
if (!string.IsNullOrEmpty(unitIds))
{
var getUnitIdsList = Funs.GetStrListByStr(unitIds, ',');
getgetSitePerson = getgetSitePerson.Where(x => getUnitIdsList.Contains(x.UnitId));
}
if (!string.IsNullOrEmpty(roleIds))
{
var getIdsList = Funs.GetStrListByStr(roleIds, ',');
foreach (var item in getIdsList)
{
var getSitePersonRoles = getgetSitePerson.Where(x => x.RoleIds.Contains(item));
if (getSitePersonRoles.Count() > 0)
{
returnLists.AddRange(getSitePersonRoles);
}
}
}
else
{
returnLists = getgetSitePerson.ToList();
}
return returnLists.OrderBy(x => x.PersonName).ToList(); ;
}
}
#endregion
#region 根据用户ID 获取当前项目用户信息 --存在问题 todo
///
/// 根据用户ID 获取当前项目用户信息
///
///
public static Model.SitePerson_Person GetCurrProjectUserByUserId(string userId)
{
return Funs.DB.SitePerson_Person.FirstOrDefault(x => x.PersonId == userId && x.States == Const.ProjectPersonStates_1);
}
#endregion
#region 根据施工单位、单位工程、专业获取查看信息用户
///
/// 根据施工单位、单位工程、专业获取查看信息用户
///
///
public static List GetSeeUserList2(string projectId, string unitIds, string cNProfessionalCode, string unitWorkId, string mainUserId, string subUserId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
List UnitIdsList = new List();
var getUnitIdsList = Funs.GetStrListByStr(unitIds, ',');
if (getUnitIdsList.Count() > 0)
{
UnitIdsList.AddRange(getUnitIdsList);
}
var UnitLists = UnitService.GetUnitByProjectIdUnitTypeList(projectId, Const.ProjectUnitType_1);
if (UnitLists.Count() > 0)
{
UnitIdsList.AddRange(UnitLists.Select(x => x.UnitId).ToList());
}
if (UnitIdsList.Count > 0)
{
//分包用户
var getSitePersons = from x in db.SitePerson_Person
join a in db.Base_WorkPost on x.WorkPostId equals a.WorkPostId
where UnitIdsList.Contains(x.UnitId) && a.CNCodes.Contains(cNProfessionalCode)
&& x.ProjectId == projectId && x.States == Const.ProjectPersonStates_1
orderby x.PersonId
select x;
if (!string.IsNullOrEmpty(unitWorkId))
{
getSitePersons = getSitePersons.Where(x => x.WorkAreaId.Contains(unitWorkId));
}
if (!string.IsNullOrEmpty(mainUserId))
{
getSitePersons = getSitePersons.Where(x => x.PersonId != mainUserId);
}
if (!string.IsNullOrEmpty(subUserId))
{
getSitePersons = getSitePersons.Where(x => x.PersonId != subUserId);
}
return getSitePersons.ToList();
}
else
{
return null;
}
}
}
#endregion
# region 根据 角色ID 获取项目下人员信息
///
/// 根据 角色ID 获取角色人员名称
///
///
///
///
public static string GetProjectPersonNameByRoleId(string projectId, string roleId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
string name = string.Empty;
if (projectId != null)
{
var getperson = db.SitePerson_Person.FirstOrDefault(x => x.ProjectId == projectId && x.RoleIds.Contains(roleId));
if (getperson != null)
{
name = getperson.PersonName;
}
}
return name;
}
}
///
/// 根据 角色ID 获取角色人员名称
///
///
///
///
public static string GetProjectPersonNameByWorkPostId(string projectId, string workPostId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
string name = string.Empty;
if (projectId != null)
{
var getperson = db.SitePerson_Person.FirstOrDefault(x => x.ProjectId == projectId && x.WorkPostId == workPostId);
if (getperson != null)
{
name = getperson.PersonName;
}
}
return name;
}
}
///
/// 根据角色获取现场人员
///
///
///
public static Model.SitePerson_Person getSitePerson_PersonByRoleId(string projectId, string roleId)
{
return Funs.DB.SitePerson_Person.FirstOrDefault(x => x.ProjectId == projectId && x.RoleIds.Contains(roleId));
}
///
/// 根据项目ID、角色ID获取人员ID
///
///
///
///
public static string GetPersonIdByProjectIdRoleID(string projectId, string roleId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
string PersonId = string.Empty;
if (projectId != null)
{
var getPerson = getSitePerson_PersonByRoleId(projectId, roleId);
if (getPerson != null)
{
PersonId = getPerson.PersonId;
}
}
return PersonId;
}
}
///
/// 保存项目人员角色 —— 项目成立时
///
///
///
///
public static void SaveSitePersonProjectRole(string projectId, string roleId, string newPersonId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
string oldRolePersonId = string.Empty;
var m = db.SitePerson_Person.FirstOrDefault(x => x.ProjectId == projectId && x.RoleIds.Contains(roleId));
if (m != null)
{
oldRolePersonId = m.PersonId;
}
////此人不在项目中
if (!string.IsNullOrEmpty(newPersonId) && newPersonId != oldRolePersonId)
{
if (m != null)
{
m.RoleIds = null;
db.SubmitChanges();
}
var getSitePerson_New = db.SitePerson_Person.FirstOrDefault(x => x.PersonId == newPersonId && x.ProjectId == projectId);
if (getSitePerson_New != null)
{
getSitePerson_New.RoleIds = roleId;
db.SubmitChanges();
}
else
{
var getPerson = db.Person_Persons.FirstOrDefault(x => x.PersonId == newPersonId);
if (getPerson != null && !string.IsNullOrEmpty(getPerson.UnitId))
{
var punit = db.Project_ProjectUnit.FirstOrDefault(e => e.ProjectId == projectId && e.UnitId == getPerson.UnitId);
if (punit == null) ///项目单位为空时要增加项目单位
{
Project_ProjectUnit newProjectUnit = new Project_ProjectUnit
{
ProjectId = projectId,
UnitId = getPerson.UnitId,
InTime = DateTime.Now
};
ProjectUnitService.AddProjectUnit(newProjectUnit);
}
SitePerson_Person newSitePerson = new Model.SitePerson_Person
{
SitePersonId = SQLHelper.GetNewID(),
ProjectId = projectId,
PersonId = newPersonId,
PersonName = getPerson.PersonName,
IdentityCard = getPerson.IdentityCard,
WorkPostId = getPerson.WorkPostId,
UnitId = getPerson.UnitId,
RoleIds = roleId,
InTime = DateTime.Now,
States = Const.ProjectPersonStates_1,
};
AddSitePerson(newSitePerson);
}
}
}
}
}
#endregion
#endregion
#region 项目人员 发卡
///
/// 项目人员 发卡
///
///
public static string SendCardNo(string projectId, string personId)
{
string cardNo = string.Empty;
var getSitePerson = GetSitePersonByProjectIdPersonId(projectId, personId);
if (getSitePerson != null && string.IsNullOrEmpty(getSitePerson.CardNo))
{
string prefix = UnitService.GetUnitCodeByUnitId(getSitePerson.UnitId);
var getMaxCarNo = Funs.DB.SitePerson_Person.Where(x => x.ProjectId == projectId && x.CardNo.Contains(prefix)).Max(x => x.CardNo);
if (!string.IsNullOrEmpty(getMaxCarNo) && getMaxCarNo.Length > 5)
{
var getInt = Funs.GetNewInt(Funs.GetSubStr(getMaxCarNo, 5));
if (getInt.HasValue)
{
cardNo = SQLHelper.RunProcNewId("SpGetNewNumber", "SitePerson_Person", "CardNo", getSitePerson.ProjectId, prefix);
getSitePerson.CardNo = cardNo;
Funs.DB.SubmitChanges();
}
}
}
return cardNo;
}
public static string SendCardNo(string sitepersinId)
{
string cardNo = string.Empty;
var getSitePerson = GetSitePersonById(sitepersinId);
if (getSitePerson != null && string.IsNullOrEmpty(getSitePerson.CardNo))
{
cardNo = SQLHelper.RunProcNewId("SpGetNewNumber", "SitePerson_Person", "CardNo", getSitePerson.ProjectId, UnitService.GetUnitCodeByUnitId(getSitePerson.UnitId));
getSitePerson.CardNo = cardNo;
Funs.DB.SubmitChanges();
}
return cardNo;
}
#endregion
#region 现场人员信息增删改
///
/// 增加人员信息
///
/// 人员实体
public static void AddSitePerson(Model.SitePerson_Person person)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
Model.SitePerson_Person newPerson = new Model.SitePerson_Person
{
SitePersonId = person.SitePersonId,
PersonId = person.PersonId,
CardNo = person.CardNo,
PersonName = person.PersonName,
UnitId = person.UnitId,
IdentityCard = person.IdentityCard,
ProjectId = person.ProjectId,
TeamGroupId = person.TeamGroupId,
WorkAreaId = person.WorkAreaId,
WorkPostId = person.WorkPostId,
RoleIds = person.RoleIds,
OutTime = person.OutTime,
OutResult = person.OutResult,
AuditorId = person.AuditorId,
AuditorDate = person.AuditorDate,
InTime = person.InTime.HasValue ? person.InTime : DateTime.Now,
Isprint = "0",
States = person.States,
};
////现场人员项目出入场记录
SitePerson_PersonItemService.SetPersonItemInOut(newPerson);
db.SitePerson_Person.InsertOnSubmit(newPerson);
db.SubmitChanges();
}
}
///
/// 修改人员信息
///
/// 人员实体
public static void UpdateSitePerson(Model.SitePerson_Person person)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
bool setPersonItemInOut = false;
Model.SitePerson_Person newPerson = db.SitePerson_Person.FirstOrDefault(e => e.SitePersonId == person.SitePersonId);
if (newPerson != null)
{
newPerson.ProjectId = person.ProjectId;
newPerson.CardNo = person.CardNo;
newPerson.PersonName = person.PersonName;
newPerson.UnitId = person.UnitId;
//if (newPerson.IdentityCard != person.IdentityCard)
//{
// PersonInOutService.UpdateRealNameInOut(newPerson.PersonId, newPerson.IdentityCard, person.IdentityCard);
// newPerson.IdentityCard = person.IdentityCard;
//}
newPerson.TeamGroupId = person.TeamGroupId;
newPerson.WorkAreaId = person.WorkAreaId;
if (newPerson.WorkPostId != person.WorkPostId)
{
newPerson.WorkPostId = person.WorkPostId;
setPersonItemInOut = true;
}
if (newPerson.RoleIds != person.RoleIds)
{
newPerson.RoleIds = person.RoleIds;
setPersonItemInOut = true;
}
newPerson.InTime = person.InTime;
if (newPerson.OutTime != person.OutTime)
{
newPerson.OutTime = person.OutTime;
setPersonItemInOut = true;
}
newPerson.OutResult = person.OutResult;
if (!newPerson.OutTime.HasValue)
{
newPerson.OutTime = null;
newPerson.ExchangeTime = null;
}
newPerson.ExchangeTime2 = null;
newPerson.RealNameUpdateTime = null;
if (!string.IsNullOrEmpty(person.AuditorId))
{
newPerson.AuditorId = person.AuditorId;
}
if (person.AuditorDate.HasValue)
{
newPerson.AuditorDate = person.AuditorDate;
}
if (newPerson.States != person.States)
{
newPerson.States = person.States;
setPersonItemInOut = true;
}
db.SubmitChanges();
if (!setPersonItemInOut)
{
var getPItem = db.SitePerson_PersonItem.FirstOrDefault(x => x.ProjectId == person.ProjectId && x.IdentityCard == person.IdentityCard);
if (getPItem == null)
{
setPersonItemInOut = true;
}
else
{
var getPersons = db.Person_Persons.FirstOrDefault(x => x.IdentityCard == newPerson.IdentityCard);
if (getPersons != null && (!getPersons.MultiProject.HasValue || getPersons.MultiProject == false))
{
var getdate = newPerson.InTime.HasValue ? newPerson.InTime.Value.AddDays(-1) : DateTime.Now;
var getPersonItems = db.SitePerson_PersonItem.Where(x => x.PersonId == newPerson.PersonId && x.ProjectId != newPerson.ProjectId && !x.OutTime.HasValue);
foreach(var item in getPersonItems)
{
item.OutTime = getdate;
db.SubmitChanges();
}
}
}
}
if (setPersonItemInOut)
{
////现场人员项目出入场记录
SitePerson_PersonItemService.SetPersonItemInOut(newPerson);
}
}
}
}
///
/// 修改人员焊接信息
///
/// 人员实体
public static void UpdateSitePersonWeldInfo(Model.SitePerson_Person person)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
Model.SitePerson_Person newPerson = db.SitePerson_Person.FirstOrDefault(e => e.SitePersonId == person.SitePersonId);
if (newPerson != null)
{
newPerson.IsWeldAudit = person.IsWeldAudit;
newPerson.IsWeldOK = person.IsWeldOK;
db.SubmitChanges();
}
}
}
///
/// 删除人员信息
///
///
///
public static string DeleteSitePersons(string[] personIds, Model.Person_Persons CurrUser)
{
string returnInfo = string.Empty;
foreach (var rowID in personIds)
{
string sitePersonId = Funs.GetStrListByStr(rowID, '#')[0];
string personId = Funs.GetStrListByStr(rowID, '#')[1];
var getData = GetSitePersonById(sitePersonId);
if (getData != null)
{
LogService.AddSys_Log(CurrUser, getData.IdentityCard, getData.PersonId, BLL.Const.PersonLibMenuId, BLL.Const.BtnDelete);
DeleteSitePersonById(sitePersonId);
}
}
return returnInfo;
}
///
/// 根据人员Id删除一个人员信息
///
/// 人员Id
public static void DeleteSitePersonById(string sitePersonId)
{
var person = Funs.DB.SitePerson_Person.FirstOrDefault(e => e.SitePersonId == sitePersonId);
if (person != null)
{
////现场人员项目出入场记录
person.States = Const.ProjectPersonStates_2;
SitePerson_PersonItemService.SetPersonItemInOut(person);
Funs.DB.SitePerson_Person.DeleteOnSubmit(person);
Funs.DB.SubmitChanges();
}
}
///
/// 根据项目ID、人员ID删除现场人员
///
///
public static void DeleteSitePersonByProjectIdPersonId(string projectId, string personId)
{
var getSitePerson = GetSitePersonByProjectIdPersonId(projectId, personId);
if (getSitePerson != null)
{
DeleteSitePersonById(getSitePerson.SitePersonId);
}
}
#endregion
#region 验证人员信息
///
/// 验证人员信息
///
///
///
public static string ValidPersonInfo(Model.SitePerson_Person person)
{
string info = string.Empty;
if (string.IsNullOrEmpty(person.UnitId))
{
info += "请选择所属单位!";
}
if (string.IsNullOrEmpty(person.WorkPostId))
{
info += "请选择所属岗位!";
}
if (!person.InTime.HasValue)
{
info += "请选择入场时间!";
}
if (string.IsNullOrEmpty(person.AuditorId))
{
info += "请选择审核人!";
}
if (string.IsNullOrEmpty(person.IdentityCard))
{
info += "身份证号码不能为空!";
}
if (!IDCardValid.CheckIDCard(person.IdentityCard) && person.UnitId != Const.UnitId_SEDIN)
{
info += "身份证号码不正确!";
}
return info;
}
#endregion
#region 获取项目人员状态
///
/// 在岗状态
///
///
///
public static string GetProjectPersonStates(object states)
{
string value = string.Empty;
if (states != null)
{
if (states.ToString() == "0")
{
value = "在审";
}
else if (states.ToString() == "1")
{
value = "在岗";
}
else if (states.ToString() == "2")
{
value = "离岗";
}
else if (states.ToString() == "-1")
{
value = "打回";
}
else
{
value = "未知";
}
}
return value;
}
#endregion
#region 现场人员审核状态-【0在审、1在岗、2离岗、-1打回】
///
/// 现场人员审核状态
///
/// 主键
/// 状态
/// 时间
public static void SetSitePerson_PersonStates(string sitePersonId, string states, DateTime? datetime)
{
List getLists = Funs.GetStrListByStr(sitePersonId, ',');
foreach (var item in getLists)
{
var getSitePerson = GetSitePersonById(item);
if (getSitePerson != null)
{
getSitePerson.States = states;
if (states == Const.ProjectPersonStates_1)
{
////在岗
getSitePerson.OutTime = null;
getSitePerson.AuditorDate = datetime.HasValue ? datetime : DateTime.Now;
}
else if (states == Const.ProjectPersonStates_2)
{
///离场
getSitePerson.OutTime = datetime.HasValue ? datetime : DateTime.Now;
}
else if (states == Const.ProjectPersonStates_R)
{
///打回
getSitePerson.OutTime = null;
getSitePerson.AuditorDate = datetime.HasValue ? datetime : DateTime.Now;
}
Funs.DB.SubmitChanges();
////现场人员项目出入场记录
SitePerson_PersonItemService.SetPersonItemInOut(getSitePerson);
}
}
}
#endregion
#region 表下拉框
///
/// 根据项目id、班组id、岗位id 获取项目在岗人员 下拉框
///
/// 下拉框
/// 项目ID
/// 单位ID
/// 班组ID
/// 岗位id
///
public static void InitSitePersonDropDownList(DropDownList dropName, string projectId, string unitId, string teamGroupId, string workPostId, bool isShowPlease)
{
dropName.Items.Clear();
dropName.DataValueField = "PersonId";
dropName.DataTextField = "PersonName";
dropName.DataSource = GetSitePerson_PersonsLits(projectId, unitId, teamGroupId, workPostId);
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
///
/// 根据单位类型、角色获取 现场在岗人员下拉框
///
/// 下拉框名字
/// 项目id
/// 是否显示请选择
public static void InitSitePersonByUnitTypeRoletIdsDropDownList(DropDownList dropName, string projectId, string unitType, string roleIds, bool isShowPlease)
{
dropName.DataValueField = "PersonId";
dropName.DataTextField = "PersonName";
dropName.DataSource = BLL.SitePerson_PersonService.GetSitePerson_PersonListByProjectIdUnitTypeRoleIds(projectId, unitType, roleIds);
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
///
/// 根据单位类型 获取项目用户
///
///
///
///
///
public static void InitProjectUserListByProjectUnitTypeDropDownList(FineUIPro.DropDownList dropName, string projectId, string unitType, bool isShowPlease)
{
dropName.DataValueField = "PersonId";
dropName.DataTextField = "PersonName";
dropName.DataSource = GetSitePerson_PersonListByProjectIdUnitTypeRoleIds(projectId, unitType, null);
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
///
/// 根据单位类型 获取项目用户
///
///
///
///
///
public static void InitProjectUserListByProjectUnitTypeDropDownList2(FineUIPro.DropDownList dropName, string projectId, string unitType, bool isShowPlease)
{
dropName.DataValueField = "PersonName";
dropName.DataTextField = "PersonName";
dropName.DataSource = GetSitePerson_PersonListByProjectIdUnitTypeRoleIds(projectId, unitType, null);
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
#endregion
#region 获取焊工信息列表
public static List GetWelderListDataForApi(string unitId, string projectId, int index, int page)
{
using (var db = new Model.SGGLDB(Funs.ConnString))
{
IQueryable q = db.SitePerson_Person;
List ids = new List();
if (!string.IsNullOrEmpty(unitId))
{
q = q.Where(e => e.UnitId == unitId);
}
if (!string.IsNullOrEmpty(projectId))
{
q = q.Where(e => e.ProjectId == projectId);
}
var qq1 = from x in q
where x.WorkPostId == Const.WorkPost_Welder && x.States == Const.ProjectPersonStates_1
orderby x.PersonName
select new
{
x.PersonId,
x.PersonName,
x.UnitId,
};
var list = qq1.Skip(index * page).Take(page).ToList();
List listRes = new List();
for (int i = 0; i < list.Count; i++)
{
Model.SitePerson_Person x = new Model.SitePerson_Person();
x.PersonId = list[i].PersonId;
x.PersonName = list[i].PersonName;
x.UnitId = list[i].UnitId + "$" + UnitService.GetUnitNameByUnitId(list[i].UnitId);
listRes.Add(x);
}
return listRes;
}
}
#endregion
#region 获取焊工信息
public static Model.Person_Persons GetWelder(string projectId, string personId)
{
using (var db = new Model.SGGLDB(Funs.ConnString))
{
Model.SitePerson_Person x = db.SitePerson_Person.FirstOrDefault(e => e.ProjectId == projectId && e.PersonId == personId);
Model.Person_Persons getPerson = db.Person_Persons.FirstOrDefault(e => e.PersonId == personId);
getPerson.Sex = getPerson.Sex == "1" ? "男" : "女";
getPerson.Birthday = getPerson.Birthday;
getPerson.PhotoUrl = getPerson.PhotoUrl;
getPerson.QRCodeAttachUrl = getPerson.QRCodeAttachUrl;
getPerson.IdentityCard = x.IdentityCard;
getPerson.CertificateId = x.CertificateCode; //证书编号
getPerson.EduLevel = x.WelderLevel; //焊工等级
getPerson.RelativeTel = x.Remark; //备注
getPerson.RoleIds = AttachFileService.getFileUrl(x.SitePersonId); //焊工证路径
getPerson.DepartId = x.SitePersonId; //焊工SitePersonId
if (!string.IsNullOrEmpty(x.WelderCode))
{
getPerson.JobNum = x.WelderCode;
}
else
{
var u = BLL.UnitService.GetUnitByUnitId(x.UnitId);
string prefix = BLL.ProjectService.GetProjectCodeByProjectId(projectId) + "-" + u.UnitCode + "-H";
getPerson.JobNum = BLL.SQLHelper.RunProcNewId("SpGetThreeNumber", "SitePerson_Person", "WelderCode", projectId, prefix);
}
getPerson.PersonName = x.PersonName;
var unit = UnitService.GetUnitByUnitId(x.UnitId);
getPerson.UnitId = x.UnitId + "$" + unit.UnitName;
return getPerson;
}
}
#endregion
#region 更新焊工信息
public static void UpdateWelderForApi(Model.SitePerson_Person Welder)
{
using (var db = new Model.SGGLDB(Funs.ConnString))
{
Model.SitePerson_Person newWelder = db.SitePerson_Person.First(e => e.SitePersonId == Welder.SitePersonId);
if (!string.IsNullOrEmpty(Welder.WelderCode))
newWelder.WelderCode = Welder.WelderCode;
if (!string.IsNullOrEmpty(Welder.CertificateCode))
newWelder.CertificateCode = Welder.CertificateCode;
if (!string.IsNullOrEmpty(Welder.UnitId))
newWelder.UnitId = Welder.UnitId;
if (!string.IsNullOrEmpty(Welder.WelderLevel))
newWelder.WelderLevel = Welder.WelderLevel;
if (!string.IsNullOrEmpty(Welder.Remark))
newWelder.Remark = Welder.Remark;
newWelder.Isprint = "0";
db.SubmitChanges();
}
}
#endregion
#region 审核焊工
public static string AuditWelder(string projectId, string personId)
{
string str = string.Empty;
using (var db = new Model.SGGLDB(Funs.ConnString))
{
Model.SitePerson_Person x = db.SitePerson_Person.FirstOrDefault(e => e.ProjectId == projectId && e.PersonId == personId);
if (x != null)
{
x.IsWeldAudit = true;
db.SubmitChanges();
str = "审核成功";
}
}
return str;
}
#endregion
}
}