1388 lines
58 KiB
C#
1388 lines
58 KiB
C#
using FineUIPro;
|
|
using Microsoft.SqlServer.Dts.Runtime;
|
|
using Model;
|
|
using NPOI.HSSF.Record.Aggregates;
|
|
using NPOI.SS.Formula.PTG;
|
|
using NPOI.XWPF.UserModel;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Windows.Controls.Primitives;
|
|
using WIA;
|
|
|
|
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 Funs.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 departId, string workPostId, string name, string idCard, string states, string personType, Grid Grid1)
|
|
{
|
|
IQueryable<Model.View_SitePerson_Person> getDataList = getDataLists;
|
|
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(departId) && departId != Const._Null)
|
|
{
|
|
getDataList = getDataList.Where(e => e.DepartId == departId);
|
|
}
|
|
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.OrderBy(x => x.ProjectId).ThenBy(x => x.UnitId), 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 getInPersonListData(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.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 现场当前人员列表
|
|
/// <summary>
|
|
/// 记录数
|
|
/// </summary>
|
|
public static int nowCount
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 定义变量
|
|
/// </summary>
|
|
private static IQueryable<Model.SitePerson_PersonInOutNow> getNowPersonLists = from x in db.SitePerson_PersonInOutNow
|
|
select x;
|
|
|
|
/// <summary>
|
|
/// 获取分页列表
|
|
/// </summary>
|
|
/// <param name="PageIndex">页码</param>
|
|
/// <param name="PageSize">每页数量</param>
|
|
/// <returns></returns>
|
|
public static IEnumerable getNowPersonListData(string projectId, string unitId, string workPostId, string personName, string identityCard, DateTime dateValue, Grid Grid1)
|
|
{
|
|
IQueryable<Model.SitePerson_PersonInOutNow> getDayAll = getNowPersonLists.Where(x=>x.ProjectId == projectId
|
|
&& x.ChangeTime.Value.Year == dateValue.Year && x.ChangeTime.Value.Month == dateValue.Month
|
|
&& x.ChangeTime.Value.Day == dateValue.Day);
|
|
if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null)
|
|
{
|
|
getDayAll = getDayAll.Where(x => x.UnitId == unitId);
|
|
}
|
|
if (!string.IsNullOrEmpty(personName))
|
|
{
|
|
getDayAll = getDayAll.Where(x => x.PersonName.Contains(personName));
|
|
}
|
|
if (!string.IsNullOrEmpty(identityCard))
|
|
{
|
|
getDayAll = getDayAll.Where(x => x.IdentityCard.Contains(identityCard));
|
|
}
|
|
if (!string.IsNullOrEmpty(workPostId) && workPostId != Const._Null)
|
|
{
|
|
getDayAll = getDayAll.Where(x => x.WorkPostId == workPostId);
|
|
}
|
|
|
|
if (getDayAll.Count() > 0)
|
|
{
|
|
var getInMaxs = from x in getDayAll
|
|
group x by x.PersonId into g
|
|
select new
|
|
{
|
|
ProjectId = g.First().ProjectId,
|
|
PersonId = g.First().PersonId,
|
|
personName = g.First().PersonName,
|
|
identityCard = g.First().IdentityCard,
|
|
UnitId = g.First().UnitId,
|
|
UnitName = g.First().UnitName,
|
|
WorkPostName = g.First().WorkPostName,
|
|
ChangeTime = g.Max(x => x.ChangeTime),
|
|
IsIn = g.First().IsIn,
|
|
PostType = g.First().PostType,
|
|
WorkPostId = g.First().WorkPostId,
|
|
};
|
|
|
|
if (getInMaxs.Count() > 0)
|
|
{
|
|
getInMaxs = getInMaxs.Where(x => x.IsIn == true);
|
|
}
|
|
nowCount = getInMaxs.Count();
|
|
if (nowCount == 0)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
getInMaxs = SortConditionHelper.SortingAndPaging(getInMaxs, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize);
|
|
return from x in getInMaxs
|
|
select new
|
|
{
|
|
x.PersonId,
|
|
x.personName,
|
|
x.identityCard,
|
|
CardNo =db.SitePerson_Person.First(p=>p.PersonId == x.PersonId && p.ProjectId ==x.ProjectId).CardNo,
|
|
x.UnitName,
|
|
x.UnitId,
|
|
x.WorkPostId,
|
|
x.WorkPostName,
|
|
TeamGroupName=TeamGroupService.GetTeamGroupNameByPersonId(x.ProjectId,x.PersonId),
|
|
x.ChangeTime,
|
|
};
|
|
}
|
|
else
|
|
{
|
|
inCount =0;
|
|
return null;
|
|
}
|
|
}
|
|
#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.Length > 1
|
|
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.Length > 1);
|
|
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.Length > 1);
|
|
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))
|
|
{
|
|
cardNo= SendCarNobySiteperson(getSitePerson.SitePersonId);
|
|
}
|
|
|
|
return cardNo;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 发卡
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <returns></returns>
|
|
public static string SendCarNobySiteperson(string sitePersonId)
|
|
{
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
string carNo = string.Empty;
|
|
var item = db.SitePerson_Person.FirstOrDefault(x => x.SitePersonId == sitePersonId);
|
|
if (item != null)
|
|
{
|
|
bool isok = false;
|
|
int getPassScores = SysConstSetService.getPassScore();
|
|
var getTestT = db.Training_TestRecord.FirstOrDefault(x => x.ProjectId == item.ProjectId && x.TestScores >= getPassScores && x.TestManId==item.PersonId);
|
|
if (getTestT != null)
|
|
{
|
|
isok = true;
|
|
}
|
|
else
|
|
{
|
|
var isNull = (from x in db.EduTrain_TrainRecord
|
|
join y in db.EduTrain_TrainRecordDetail on x.TrainingId equals y.TrainingId
|
|
where x.ProjectId == item.ProjectId && y.PersonId == item.PersonId && y.CheckResult == true
|
|
select x);
|
|
if (isNull.Count() > 0)
|
|
{
|
|
isok = true;
|
|
}
|
|
}
|
|
|
|
if (isok) ////参加过培训的人员
|
|
{
|
|
string prefix = UnitService.GetUnitCodeByUnitId(item.UnitId) + "-";
|
|
var getCarPerson = db.SitePerson_Person.Where(x => x.ProjectId == item.ProjectId && x.CardNo.Contains(prefix) && x.CardNo.Length > 5);
|
|
if (getCarPerson.Count() > 0)
|
|
{
|
|
var getMaxCarNo = getCarPerson.Max(x => x.CardNo);
|
|
if (!string.IsNullOrEmpty(getMaxCarNo) && getMaxCarNo.Length > 5)
|
|
{
|
|
var getInt = Funs.GetNewInt(getMaxCarNo.Substring(getMaxCarNo.Length - 5));
|
|
if (getInt.HasValue)
|
|
{
|
|
carNo = item.CardNo = SQLHelper.RunProcNewId("SpGetNewNumber", "SitePerson_Person", "CardNo", item.ProjectId, prefix);
|
|
db.SubmitChanges();
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
carNo = item.CardNo = prefix + "00001";
|
|
db.SubmitChanges();
|
|
}
|
|
}
|
|
}
|
|
return carNo;
|
|
}
|
|
}
|
|
#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))
|
|
{
|
|
var getPerson = db.SitePerson_Person.FirstOrDefault(x => x.IdentityCard == person.IdentityCard && x.ProjectId == person.ProjectId);
|
|
if (getPerson == null)
|
|
{
|
|
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,
|
|
IsSafetyMonitoring = person.IsSafetyMonitoring,
|
|
};
|
|
|
|
////现场人员项目出入场记录
|
|
SitePerson_PersonItemService.SetPersonItemInOut(newPerson, null);
|
|
db.SitePerson_Person.InsertOnSubmit(newPerson);
|
|
db.SubmitChanges();
|
|
}
|
|
else
|
|
{
|
|
person.SitePersonId = getPerson.SitePersonId;
|
|
UpdateSitePerson(person, null);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 修改人员信息
|
|
/// </summary>
|
|
/// <param name="person">人员实体</param>
|
|
public static void UpdateSitePerson(Model.SitePerson_Person person, Model.Sys_Log newlog)
|
|
{
|
|
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;
|
|
}
|
|
newPerson.IsSafetyMonitoring = person.IsSafetyMonitoring;
|
|
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 getDatePItem = db.SitePerson_PersonItem.FirstOrDefault(x => x.ProjectId == person.ProjectId && x.IdentityCard == person.IdentityCard && x.OutTime .HasValue && x.OutTime < person.InTime);
|
|
if (getDatePItem != 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,newlog);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <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)
|
|
{
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
var person = db.SitePerson_Person.FirstOrDefault(e => e.SitePersonId == sitePersonId);
|
|
if (person != null)
|
|
{
|
|
var getSitePersons = db.SitePerson_Person.Where(x => x.IdentityCard == person.IdentityCard && x.ProjectId == person.ProjectId);
|
|
if (getSitePersons.Count() == 1)
|
|
{
|
|
////现场人员项目出入场记录
|
|
person.States = Const.ProjectPersonStates_2;
|
|
SitePerson_PersonItemService.SetPersonItemInOut(person, null);
|
|
}
|
|
|
|
db.SitePerson_Person.DeleteOnSubmit(person);
|
|
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 += "身份证号码不正确!";
|
|
}
|
|
if (!string.IsNullOrEmpty(person.CardNo))
|
|
{
|
|
var getSite = Funs.DB.SitePerson_Person.FirstOrDefault(x => x.ProjectId == person.ProjectId && x.CardNo == person.CardNo && x.SitePersonId != person.SitePersonId);
|
|
if (getSite != null)
|
|
{
|
|
info += "卡号已存在!";
|
|
}
|
|
|
|
string prefix = UnitService.GetUnitCodeByUnitId(person.UnitId) + "-";
|
|
if (person.CardNo.Contains(prefix))
|
|
{
|
|
var getInt = Funs.GetNewInt(person.CardNo.Substring(person.CardNo.Length - 5));
|
|
if (!getInt.HasValue)
|
|
{
|
|
info += "卡号应为单位代码+'-'+五位流水号!";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
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();
|
|
Model.Sys_Log newlog = new Sys_Log
|
|
{
|
|
UserId = getSitePerson.AuditorId,
|
|
MenuId = Const.PersonListMenuId,
|
|
OperationName = "现场人员审核",
|
|
OperationLog = "现场人员审核" + getSitePerson.PersonName,
|
|
DataId = getSitePerson.PersonId,
|
|
ProjectId = getSitePerson.ProjectId,
|
|
};
|
|
|
|
////现场人员项目出入场记录
|
|
SitePerson_PersonItemService.SetPersonItemInOut(getSitePerson, newlog);
|
|
}
|
|
}
|
|
}
|
|
#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
|
|
|
|
#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
|
|
}
|
|
} |