1146 lines
47 KiB
C#
1146 lines
47 KiB
C#
using FineUIPro;
|
|
using Model;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace BLL
|
|
{
|
|
/// <summary>
|
|
/// 人员信息
|
|
/// </summary>
|
|
public static class SitePerson_PersonService
|
|
{
|
|
public static Model.SGGLDB db = Funs.DB;
|
|
|
|
#region 劳务人员列表
|
|
/// <summary>
|
|
/// 记录数
|
|
/// </summary>
|
|
public static int count
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 定义变量
|
|
/// </summary>
|
|
private static IQueryable<Model.View_SitePerson_Person> getDataLists = from x in db.View_SitePerson_Person
|
|
select x;
|
|
|
|
/// <summary>
|
|
/// 数据列表
|
|
/// </summary>
|
|
/// <param name="projetcId"></param>
|
|
/// <param name="unitId"></param>
|
|
/// <param name="workPostId"></param>
|
|
/// <param name="name"></param>
|
|
/// <param name="idCard"></param>
|
|
/// <param name="states"></param>
|
|
/// <param name="Grid1"></param>
|
|
/// <returns></returns>
|
|
public static IEnumerable getListData(string projetcId, string unitId, string workPostId, string name, string idCard, string states, string personType, Grid Grid1)
|
|
{
|
|
IQueryable<Model.View_SitePerson_Person> 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 在岗人员列表
|
|
/// <summary>
|
|
/// 记录数
|
|
/// </summary>
|
|
public static int inCount
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 定义变量
|
|
/// </summary>
|
|
private static IQueryable<Model.SitePerson_Person> getInPersonLists = from x in db.SitePerson_Person
|
|
where x.States == Const.ProjectPersonStates_1
|
|
select x;
|
|
|
|
/// <summary>
|
|
/// 获取分页列表
|
|
/// </summary>
|
|
/// <param name="PageIndex">页码</param>
|
|
/// <param name="PageSize">每页数量</param>
|
|
/// <returns></returns>
|
|
public static IEnumerable getInPsersonListData(string projectId, string unitId, string personName, string identityCard, Grid Grid1)
|
|
{
|
|
IQueryable<Model.SitePerson_Person> 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.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 根据现场人员主键获取现场人员信息
|
|
/// <summary>
|
|
/// 根据现场人员主键获取现场人员信息
|
|
/// </summary>
|
|
/// <param name="sitePersonId"></param>
|
|
/// <returns></returns>
|
|
public static Model.SitePerson_Person GetSitePersonById(string sitePersonId)
|
|
{
|
|
return Funs.DB.SitePerson_Person.FirstOrDefault(x => x.SitePersonId == sitePersonId);
|
|
}
|
|
#endregion
|
|
|
|
#region 根据项目ID身份证号码获取现场人员信息
|
|
/// <summary>
|
|
/// 根据项目ID身份证号码获取现场人员信息
|
|
/// </summary>
|
|
/// <param name="projectId"></param>
|
|
/// <param name="identityCard"></param>
|
|
/// <returns></returns>
|
|
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 根据人员库主键获取项目人员信息
|
|
/// <summary>
|
|
/// 根据人员库主键获取项目人员信息
|
|
/// </summary>
|
|
/// <param name="PersonId"></param>
|
|
/// <returns></returns>
|
|
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 根据主键获取人员姓名
|
|
/// <summary>
|
|
/// 根据主键获取人员姓名
|
|
/// </summary>
|
|
/// <param name="personId"></param>
|
|
/// <returns></returns>
|
|
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 根据主键获取焊工号
|
|
/// <summary>
|
|
/// 根据主键获取焊工号
|
|
/// </summary>
|
|
/// <param name="personId"></param>
|
|
/// <returns></returns>
|
|
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 根据项目单位、班组、岗位获取现场人员信息
|
|
/// <summary>
|
|
/// 根据项目单位、班组、岗位获取现场人员信息
|
|
/// </summary>
|
|
/// <param name="personId"></param>
|
|
/// <returns></returns>
|
|
public static List<Model.SitePerson_Person> 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 根据项目单位、班组、岗位获取人员库 人员信息
|
|
/// <summary>
|
|
/// 根据项目单位、班组、岗位获人员库 人员信息
|
|
/// </summary>
|
|
/// <param name="personId"></param>
|
|
/// <returns></returns>
|
|
public static List<Model.Person_Persons> 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集合获取对应项目的所有项目用户
|
|
/// <summary>
|
|
///根据项目id集合获取对应项目的所有项目用户
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static List<Model.SitePerson_Person> GetSitePersonsByProjectIds(List<string> ProjectIds)
|
|
{
|
|
return (from x in Funs.DB.SitePerson_Person
|
|
where ProjectIds.Contains(x.ProjectId) && x.RoleIds != null
|
|
select x).ToList();
|
|
}
|
|
#endregion
|
|
|
|
#region 根据项目Id 单位类型、角色获取用户下拉选项
|
|
/// <summary>
|
|
/// 根据项目号、单位类型、角色获取用户下拉选项
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static List<Model.SitePerson_Person> GetSitePerson_PersonListByProjectIdUnitTypeRoleIds(string projectId, string unitTypes, string roleIds)
|
|
{
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
List<Model.SitePerson_Person> returnLists = new List<Model.SitePerson_Person>();
|
|
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 获取多单位 多角色下 人员集合
|
|
/// <summary>
|
|
/// 获取多单位 多角色下 人员集合
|
|
/// </summary>
|
|
/// <param name="projectId"></param>
|
|
/// <param name="unitIds"></param>
|
|
/// <returns></returns>
|
|
public static List<Model.SitePerson_Person> GetSitePerson_PersonListByUnitIdsRoleIds(string projectId, string unitIds, string roleIds)
|
|
{
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
List<Model.SitePerson_Person> returnLists = new List<Model.SitePerson_Person>();
|
|
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
|
|
/// <summary>
|
|
/// 根据用户ID 获取当前项目用户信息
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
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 根据施工单位、单位工程、专业获取查看信息用户
|
|
/// <summary>
|
|
/// 根据施工单位、单位工程、专业获取查看信息用户
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static List<Model.SitePerson_Person> GetSeeUserList2(string projectId, string unitIds, string cNProfessionalCode, string unitWorkId, string mainUserId, string subUserId)
|
|
{
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
List<string> UnitIdsList = new List<string>();
|
|
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 获取项目下人员信息
|
|
/// <summary>
|
|
/// 根据 角色ID 获取角色人员名称
|
|
/// </summary>
|
|
/// <param name="projectId"></param>
|
|
/// <param name="roleId"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据 角色ID 获取角色人员名称
|
|
/// </summary>
|
|
/// <param name="projectId"></param>
|
|
/// <param name="roleId"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 根据角色获取现场人员
|
|
/// </summary>
|
|
/// <param name="projectId"></param>
|
|
/// <returns></returns>
|
|
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));
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据项目ID、角色ID获取人员ID
|
|
/// </summary>
|
|
/// <param name="projectId"></param>
|
|
/// <param name="RoleId"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保存项目人员角色 —— 项目成立时
|
|
/// </summary>
|
|
/// <param name="projectId"></param>
|
|
/// <param name="roleId"></param>
|
|
/// <param name="newPersonId"></param>
|
|
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 项目人员 发卡
|
|
/// <summary>
|
|
/// 项目人员 发卡
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
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 现场人员信息增删改
|
|
/// <summary>
|
|
/// 增加人员信息
|
|
/// </summary>
|
|
/// <param name="person">人员实体</param>
|
|
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();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 修改人员信息
|
|
/// </summary>
|
|
/// <param name="person">人员实体</param>
|
|
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)
|
|
{
|
|
////现场人员项目出入场记录
|
|
SitePerson_PersonItemService.SetPersonItemInOut(newPerson);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 修改人员焊接信息
|
|
/// </summary>
|
|
/// <param name="person">人员实体</param>
|
|
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();
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除人员信息
|
|
/// </summary>
|
|
/// <param name="personIds"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据人员Id删除一个人员信息
|
|
/// </summary>
|
|
/// <param name="sitePersonId">人员Id</param>
|
|
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();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据项目ID、人员ID删除现场人员
|
|
/// </summary>
|
|
/// <param name="personId"></param>
|
|
public static void DeleteSitePersonByProjectIdPersonId(string projectId, string personId)
|
|
{
|
|
var getSitePerson = GetSitePersonByProjectIdPersonId(projectId, personId);
|
|
if (getSitePerson != null)
|
|
{
|
|
DeleteSitePersonById(getSitePerson.SitePersonId);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 验证人员信息
|
|
/// <summary>
|
|
/// 验证人员信息
|
|
/// </summary>
|
|
/// <param name="person"></param>
|
|
/// <returns></returns>
|
|
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 获取项目人员状态
|
|
/// <summary>
|
|
/// 在岗状态
|
|
/// </summary>
|
|
/// <param name="states"></param>
|
|
/// <returns></returns>
|
|
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打回】
|
|
/// <summary>
|
|
/// 现场人员审核状态
|
|
/// </summary>
|
|
/// <param name="sitePersonId">主键</param>
|
|
/// <param name="states">状态</param>
|
|
/// <param name="datetime">时间</param>
|
|
public static void SetSitePerson_PersonStates(string sitePersonId, string states, DateTime? datetime)
|
|
{
|
|
List<string> 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 表下拉框
|
|
/// <summary>
|
|
/// 根据项目id、班组id、岗位id 获取项目在岗人员 下拉框
|
|
/// </summary>
|
|
/// <param name="dropName">下拉框</param>
|
|
/// <param name="projectId">项目ID</param>
|
|
/// <param name="unitId">单位ID</param>
|
|
/// <param name="teamGroupId">班组ID</param>
|
|
/// <param name="workPostId">岗位id</param>
|
|
/// <param name="isShowPlease"></param>
|
|
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);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据单位类型、角色获取 现场在岗人员下拉框
|
|
/// </summary>
|
|
/// <param name="dropName">下拉框名字</param>
|
|
/// <param name="projectId">项目id</param>
|
|
/// <param name="isShowPlease">是否显示请选择</param>
|
|
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);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据单位类型 获取项目用户
|
|
/// </summary>
|
|
/// <param name="dropName"></param>
|
|
/// <param name="projectId"></param>
|
|
/// <param name="unitType"></param>
|
|
/// <param name="isShowPlease"></param>
|
|
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);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据单位类型 获取项目用户
|
|
/// </summary>
|
|
/// <param name="dropName"></param>
|
|
/// <param name="projectId"></param>
|
|
/// <param name="unitType"></param>
|
|
/// <param name="isShowPlease"></param>
|
|
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<Model.SitePerson_Person> GetWelderListDataForApi(string unitId, string projectId, int index, int page)
|
|
{
|
|
using (var db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
IQueryable<Model.SitePerson_Person> q = db.SitePerson_Person;
|
|
List<string> ids = new List<string>();
|
|
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<Model.SitePerson_Person> listRes = new List<Model.SitePerson_Person>();
|
|
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
|
|
}
|
|
} |