2022-09-05 16:36:31 +08:00
|
|
|
|
using BLL;
|
2026-01-28 14:54:19 +08:00
|
|
|
|
using Model;
|
2022-09-05 16:36:31 +08:00
|
|
|
|
using System;
|
2026-04-04 19:39:16 +08:00
|
|
|
|
using System.Collections.Generic;
|
2022-09-05 16:36:31 +08:00
|
|
|
|
using System.Configuration;
|
|
|
|
|
|
using System.IO;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Web.Http;
|
|
|
|
|
|
|
|
|
|
|
|
namespace WebAPI.Controllers
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
///
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class PersonController : ApiController
|
|
|
|
|
|
{
|
|
|
|
|
|
#region 根据personid获取人员信息
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 根据personid获取人员信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="sitePersonId"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Model.ResponeData getPersonBySitePersonId(string sitePersonId)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
2023-04-26 15:50:30 +08:00
|
|
|
|
responeData.data = APIPersonService.getPersonBySitePersonId(sitePersonId, null, null);
|
2022-09-05 16:36:31 +08:00
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 根据projectId、identityCard获取人员信息
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 根据projectId、identityCard获取人员信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="projectId"></param>
|
|
|
|
|
|
/// <param name="identityCard"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Model.ResponeData getPersonByProjectIdIdentityCard(string projectId, string identityCard)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
2023-05-03 10:42:07 +08:00
|
|
|
|
var getPerson = Funs.DB.Person_Persons.FirstOrDefault(x => x.IdentityCard == identityCard);
|
|
|
|
|
|
if (getPerson == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.data = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.data = APIPersonService.getPersonBySitePersonId(null, projectId, identityCard);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-09-05 16:36:31 +08:00
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 根据projectId、unitid获取人员信息
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 根据projectId、unitid获取人员信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="projectId"></param>
|
|
|
|
|
|
/// <param name="unitId"></param>
|
|
|
|
|
|
/// <param name="pageIndex"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2026-03-23 14:33:54 +08:00
|
|
|
|
public Model.ResponeData getPersonByProjectIdUnitId(string projectId, string unitId, int pageIndex, string personName = "")
|
2022-09-05 16:36:31 +08:00
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
var getDataList = APIPersonService.getPersonByProjectIdUnitId(projectId, unitId);
|
2026-03-23 14:33:54 +08:00
|
|
|
|
if (!string.IsNullOrEmpty(personName))
|
|
|
|
|
|
{
|
|
|
|
|
|
getDataList = getDataList.Where(x => x.PersonName.Contains(personName)).ToList();
|
|
|
|
|
|
}
|
2022-09-05 16:36:31 +08:00
|
|
|
|
int pageCount = getDataList.Count;
|
|
|
|
|
|
if (pageCount > 0 && pageIndex > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
getDataList = getDataList.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList();
|
|
|
|
|
|
}
|
|
|
|
|
|
responeData.data = new { pageCount, getDataList };
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
2025-12-24 16:27:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 根据条件获取项目人员信息(支持分页和过滤)
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 根据条件获取项目人员信息(支持分页和过滤)
|
|
|
|
|
|
/// </summary>
|
2026-01-28 15:18:10 +08:00
|
|
|
|
/// <param name="filter">查询过滤条件(ProjectCode为必填参数)</param>
|
2025-12-24 16:27:05 +08:00
|
|
|
|
/// <param name="pagesize">每页条数</param>
|
|
|
|
|
|
/// <param name="pageindex">页码(从1开始)</param>
|
|
|
|
|
|
/// <param name="returnAll">是否返回全部数据</param>
|
|
|
|
|
|
/// <returns></returns>
|
2026-04-07 16:58:38 +08:00
|
|
|
|
public Model.ResponeData getPersonByFilter([FromUri] Model.ProjectPersonInput filter, int? pagesize = 15, int? pageindex = 1, bool? returnAll = false)
|
2025-12-24 16:27:05 +08:00
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
2026-01-28 15:18:10 +08:00
|
|
|
|
// 验证必填参数 ProjectCode
|
|
|
|
|
|
if (filter == null || string.IsNullOrEmpty(filter.ProjectCode))
|
2025-12-24 16:27:07 +08:00
|
|
|
|
{
|
2025-12-24 16:48:46 +08:00
|
|
|
|
responeData.code = 0;
|
2026-01-28 15:18:10 +08:00
|
|
|
|
responeData.message = "ProjectCode为必填参数!";
|
2025-12-24 16:27:07 +08:00
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 处理可空参数的默认值
|
|
|
|
|
|
int actualPagesize = pagesize ?? 15;
|
|
|
|
|
|
int actualPageindex = pageindex ?? 1;
|
|
|
|
|
|
bool actualReturnAll = returnAll ?? false;
|
|
|
|
|
|
|
2025-12-24 16:27:05 +08:00
|
|
|
|
var getDataList = APIPersonService.getPersonByFilter(filter);
|
|
|
|
|
|
int pageCount = getDataList.Count;
|
|
|
|
|
|
|
2025-12-24 16:27:07 +08:00
|
|
|
|
if (!actualReturnAll && pageCount > 0 && actualPageindex > 0 && actualPagesize > 0)
|
2025-12-24 16:27:05 +08:00
|
|
|
|
{
|
2025-12-24 16:27:07 +08:00
|
|
|
|
getDataList = getDataList.Skip(actualPagesize * (actualPageindex - 1)).Take(actualPagesize).ToList();
|
2025-12-24 16:27:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-12-24 16:27:07 +08:00
|
|
|
|
responeData.data = new { pageCount, pageindex = actualPageindex, pagesize = actualPagesize, getDataList };
|
2025-12-24 16:27:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
2022-09-05 16:36:31 +08:00
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 获取在岗、离岗、待审人员数量
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取在岗、离岗、待审人员列表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="projectId"></param>
|
|
|
|
|
|
/// <param name="unitId"></param>
|
|
|
|
|
|
/// <param name="states"></param>
|
|
|
|
|
|
/// <param name="strUnitId"></param>
|
|
|
|
|
|
/// <param name="strWorkPostId"></param>
|
|
|
|
|
|
/// <param name="strParam"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Model.ResponeData getPersonStatesCount(string projectId, string unitId, string states, string strUnitId, string strWorkPostId, string strParam)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
|
|
|
|
{
|
|
|
|
|
|
var getViews = from x in db.SitePerson_Person
|
|
|
|
|
|
where x.ProjectId == projectId && (strUnitId == null || x.UnitId == strUnitId)
|
|
|
|
|
|
&& (strWorkPostId == null || x.WorkPostId == strWorkPostId)
|
|
|
|
|
|
select x;
|
|
|
|
|
|
if (unitId != Const.UnitId_SEDIN && !string.IsNullOrEmpty(unitId))
|
|
|
|
|
|
{
|
|
|
|
|
|
getViews = getViews.Where(x => x.UnitId == unitId);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strParam))
|
|
|
|
|
|
{
|
|
|
|
|
|
getViews = getViews.Where(x => x.PersonName.Contains(strParam) || x.IdentityCard.Contains(strParam));
|
|
|
|
|
|
}
|
|
|
|
|
|
int tatalCount = getViews.Count();
|
|
|
|
|
|
//在审
|
|
|
|
|
|
int count0 = getViews.Where(x => x.States == Const.ProjectPersonStates_0).Count();
|
|
|
|
|
|
//在岗
|
|
|
|
|
|
int count1 = getViews.Where(x => x.States == Const.ProjectPersonStates_1).Count();
|
|
|
|
|
|
//离岗
|
|
|
|
|
|
int count2 = getViews.Where(x => x.States == Const.ProjectPersonStates_2).Count();
|
|
|
|
|
|
//打回
|
|
|
|
|
|
int count3 = getViews.Where(x => x.States == Const.ProjectPersonStates_R).Count();
|
|
|
|
|
|
responeData.data = new { tatalCount, count0, count1, count2, count3 };
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 获取在岗、离岗、待审人员列表
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取在岗、离岗、待审人员列表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="projectId"></param>
|
|
|
|
|
|
/// <param name="unitId">当前人单位ID</param>
|
|
|
|
|
|
/// <param name="states">0待审1在岗2离岗</param>
|
|
|
|
|
|
/// <param name="strUnitId">查询单位</param>
|
|
|
|
|
|
/// <param name="strWorkPostId">查询岗位</param>
|
|
|
|
|
|
/// <param name="strParam">查询条件</param>
|
|
|
|
|
|
/// <param name="pageIndex"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Model.ResponeData getPersonListByProjectIdStates(string projectId, string unitId, string states, string strUnitId, string strWorkPostId, string strParam, int pageIndex)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
var getDataList = APIPersonService.getPersonListByProjectIdStates(projectId, unitId, states, strUnitId, strWorkPostId, strParam, pageIndex);
|
|
|
|
|
|
int pageCount = APIPersonService.getPersonListCount;
|
|
|
|
|
|
responeData.data = new { pageCount, getDataList };
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 根据identityCard获取人员培训考试信息
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 根据identityCard获取人员培训考试信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="identityCard"></param>
|
|
|
|
|
|
/// <param name="projectId"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Model.ResponeData getPersonTestRecoedByIdentityCard(string identityCard, string projectId = null)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.data = APIPersonService.getPersonTestRecoedByIdentityCard(identityCard, projectId);
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 根据identityCard获取人员资质信息
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 根据identityCard获取人员资质信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="identityCard"></param>
|
|
|
|
|
|
/// <param name="projectId"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Model.ResponeData getPersonQualityByIdentityCard(string identityCard, string projectId = null)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.data = APIPersonService.getPersonQualityByIdentityCard(identityCard, projectId);
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 根据projectId、unitid获取特岗人员资质各状态数
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 根据projectId、unitid获取特岗人员资质各状态数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="projectId">项目ID</param>
|
|
|
|
|
|
/// <param name="unitId">单位ID</param>
|
|
|
|
|
|
/// <returns>人员资质数量</returns>
|
|
|
|
|
|
public Model.ResponeData getPersonQualityCount(string projectId, string unitId)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
|
|
|
|
{
|
|
|
|
|
|
var getDataList = db.View_QualityAudit_PersonQuality.Where(x => x.ProjectId == projectId && x.CertificateId != null);
|
|
|
|
|
|
if (ProjectUnitService.GetProjectUnitTypeByProjectIdUnitId(projectId, unitId))
|
|
|
|
|
|
{
|
|
|
|
|
|
getDataList = getDataList.Where(x => x.UnitId == unitId);
|
|
|
|
|
|
}
|
|
|
|
|
|
//总数
|
|
|
|
|
|
int tatalCount = getDataList.Count();
|
|
|
|
|
|
//过期
|
|
|
|
|
|
int count1 = getDataList.Where(x => x.LimitDate < DateTime.Now).Count();
|
|
|
|
|
|
//即将过期
|
|
|
|
|
|
int count2 = getDataList.Where(x => x.LimitDate >= DateTime.Now && x.LimitDate < DateTime.Now.AddMonths(1)).Count();
|
|
|
|
|
|
|
|
|
|
|
|
responeData.data = new { tatalCount, count1, count2 };
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 根据projectId、unitid获取特岗人员资质信息
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 根据projectId、unitid获取特岗人员资质信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="projectId">项目ID</param>
|
|
|
|
|
|
/// <param name="unitId">单位ID</param>
|
|
|
|
|
|
/// <param name="type">数据类型0-已过期;1-即将过期;2-无证;3-待审核;4-已审核;-1打回</param>
|
|
|
|
|
|
/// <param name="pageIndex">页码</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Model.ResponeData getPersonQualityByProjectIdUnitId(string projectId, string unitId, string type, int pageIndex)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
var getDataList = APIPersonService.getPersonQualityByProjectIdUnitId(projectId, unitId, type);
|
|
|
|
|
|
int pageCount = getDataList.Count();
|
|
|
|
|
|
if (pageCount > 0 && pageIndex > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
getDataList = getDataList.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList();
|
|
|
|
|
|
}
|
|
|
|
|
|
responeData.data = new { pageCount, getDataList };
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 保存 人员资质信息 QualityAudit_PersonQuality
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 保存Meeting
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="personQuality">人员资质信息</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public Model.ResponeData SavePersonQuality([FromBody] Model.PersonQualityItem personQuality)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
APIPersonService.SavePersonQuality(personQuality);
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 根据项目\单位\岗位\培训类型获取项目培训\考试人员信息
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 根据项目\单位\岗位\培训类型获取项目培训\考试人员信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="projectId">项目ID</param>
|
|
|
|
|
|
/// <param name="unitIds">培训单位ID</param>
|
|
|
|
|
|
/// <param name="workPostIds">培训岗位ID(可为空)</param>
|
|
|
|
|
|
/// <param name="trainTypeId">培训类型ID(可为空)</param>
|
|
|
|
|
|
/// <param name="pageIndex">分页</param>
|
|
|
|
|
|
/// <returns></returns>
|
2026-04-10 15:23:09 +08:00
|
|
|
|
public Model.ResponeData getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, int pageIndex, string startDate, string endDate, string isRepeat)
|
2022-09-05 16:36:31 +08:00
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
2026-04-10 15:23:09 +08:00
|
|
|
|
var getDataList = APIPersonService.getTrainingPersonListByTrainTypeId(projectId, unitIds, workPostIds, trainTypeId, null, startDate, endDate, isRepeat).OrderBy(x => x.UnitName).ThenBy(x => x.ProjectName).ToList();
|
2023-07-25 17:09:09 +08:00
|
|
|
|
int pageCount = getDataList.Count;
|
|
|
|
|
|
if (pageCount > 0 && pageIndex > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
getDataList = getDataList.OrderBy(u => u.UnitName).ThenBy(u => u.PersonName).Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); ////200 ->Funs.PageSize
|
|
|
|
|
|
}
|
|
|
|
|
|
responeData.data = new { pageCount, getDataList };
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-07 18:54:22 +08:00
|
|
|
|
public Model.ResponeData getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, int pageIndex)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
var getDataList = APIPersonService.getTrainingPersonListByTrainTypeId(projectId, unitIds, workPostIds, trainTypeId, null).OrderBy(x => x.UnitName).ThenBy(x => x.ProjectName).ToList();
|
|
|
|
|
|
int pageCount = getDataList.Count;
|
|
|
|
|
|
if (pageCount > 0 && pageIndex > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
getDataList = getDataList.OrderBy(u => u.UnitName).ThenBy(u => u.PersonName).Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); ////200 ->Funs.PageSize
|
|
|
|
|
|
}
|
|
|
|
|
|
responeData.data = new { pageCount, getDataList };
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-07-25 17:09:09 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
///
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="projectId"></param>
|
|
|
|
|
|
/// <param name="unitIds"></param>
|
|
|
|
|
|
/// <param name="workPostIds"></param>
|
|
|
|
|
|
/// <param name="trainTypeId"></param>
|
|
|
|
|
|
/// <param name="name"></param>
|
|
|
|
|
|
/// <param name="pageIndex"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2026-04-15 10:29:42 +08:00
|
|
|
|
public Model.ResponeData getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, string name, int pageIndex, string startDate, string endDate, string isRepeat)
|
2023-07-25 17:09:09 +08:00
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
2026-04-10 15:25:49 +08:00
|
|
|
|
var getDataList = APIPersonService.getTrainingPersonListByTrainTypeId(projectId, unitIds, workPostIds, trainTypeId, name, startDate, endDate, isRepeat).OrderBy(x => x.UnitName).ThenBy(x => x.ProjectName).ToList();
|
2022-09-05 16:36:31 +08:00
|
|
|
|
int pageCount = getDataList.Count;
|
|
|
|
|
|
if (pageCount > 0 && pageIndex > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
getDataList = getDataList.OrderBy(u => u.UnitName).ThenBy(u => u.PersonName).Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); ////200 ->Funs.PageSize
|
|
|
|
|
|
}
|
|
|
|
|
|
responeData.data = new { pageCount, getDataList };
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 保存项目人员信息
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 保存项目人员信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="person">人员信息</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public Model.ResponeData SaveSitePerson([FromBody] Model.PersonItem person)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (person != null && !string.IsNullOrEmpty(person.IdentityCard))
|
|
|
|
|
|
{
|
|
|
|
|
|
var getPerson = db.SitePerson_Person.FirstOrDefault(x => x.IdentityCard == person.IdentityCard.Trim() && x.ProjectId == person.ProjectId);
|
|
|
|
|
|
if (getPerson != null && getPerson.PersonId != person.PersonId)
|
2026-04-30 19:09:08 +08:00
|
|
|
|
//if (getPerson != null && getPerson.SitePersonId != person.SitePersonId)
|
2022-09-05 16:36:31 +08:00
|
|
|
|
{
|
2026-04-30 19:09:08 +08:00
|
|
|
|
responeData.code = 2;
|
2022-09-05 16:36:31 +08:00
|
|
|
|
responeData.message = "人员身份证号码已存在!";
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
APIPersonService.SaveSitePerson(person);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 2;
|
|
|
|
|
|
responeData.message = "人员信息有误!";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 更新人员更新附件
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 更新人员更新附件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="person">人员信息</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public Model.ResponeData SaveSitePersonAttachment([FromBody] Model.PersonItem person)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
if (person != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
APIPersonService.SaveSitePersonAttachment(person);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 2;
|
|
|
|
|
|
responeData.message = "人员附件信息有误!";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 人员状态调整
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 人员状态调整
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="sitePersonId"></param>
|
|
|
|
|
|
/// <param name="states"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Model.ResponeData getSitePersonPersonStates(string sitePersonId, string states)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
2026-04-15 10:29:42 +08:00
|
|
|
|
var getSitePerson = SitePerson_PersonService.GetSitePersonById(sitePersonId);
|
|
|
|
|
|
if (getSitePerson != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
var testRecord = BLL.TestRecordService.GetOKTestRecordByPersonIdAndDate(getSitePerson.PersonId, getSitePerson.InTime);
|
|
|
|
|
|
if (testRecord != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
SitePerson_PersonService.SetSitePerson_PersonStates(sitePersonId, states, DateTime.Now);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = "入场教育考试未合格,无法审核入场!";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2022-09-05 16:36:31 +08:00
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 项目人员信息 接收接口
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 保存人员信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="person">人员信息</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public Model.ResponeData PostProjectPerson([FromBody] Model.PersonItem person)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
if (person != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
|
|
|
|
{
|
|
|
|
|
|
var getProject = ProjectService.GetProjectByProjectId(person.ProjectId);
|
|
|
|
|
|
if (getProject != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
var getUnit = UnitService.getUnitByCollCropCodeUnitName(person.CollCropCode, person.UnitName);
|
|
|
|
|
|
if (getUnit != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
var getProjectPerson = SitePerson_PersonService.GetSitePersonByProjectIdIdentityCard(getProject.ProjectId, person.IdentityCard);
|
|
|
|
|
|
if (getProjectPerson == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
var newPerson = APIPersonService.getSavePerson(person);
|
|
|
|
|
|
var newProjectPerson = APIPersonService.getSaveProjectPerson(person);
|
|
|
|
|
|
var getPersons = Person_PersonsService.GetPerson_PersonsByIdCard(person.IdentityCard);
|
|
|
|
|
|
if (getPersons == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (person.headImage != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
var image = Convert.FromBase64String(person.headImage);
|
|
|
|
|
|
newPerson.HeadImage = image;
|
|
|
|
|
|
string rootPath = ConfigurationManager.AppSettings["localRoot"];
|
|
|
|
|
|
string path = "FileUpLoad/PersonBaseInfo/" + DateTime.Now.ToString("yyyy-MM") + "/";
|
|
|
|
|
|
string fileUrl = (rootPath + path).Replace('/', '\\');
|
|
|
|
|
|
string flieName = Funs.GetNewFileName() + "~" + person.PersonName + ".jpg";
|
|
|
|
|
|
if (!Directory.Exists(fileUrl))
|
|
|
|
|
|
{
|
|
|
|
|
|
Directory.CreateDirectory(fileUrl);
|
|
|
|
|
|
}
|
|
|
|
|
|
newPerson.PhotoUrl = path + flieName;
|
|
|
|
|
|
System.IO.File.WriteAllBytes((fileUrl + flieName), image);
|
|
|
|
|
|
//AttachFileService.Base64ToImage(person.headImage, path, person.PersonName);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
newPerson.IsOffice = false;
|
|
|
|
|
|
newPerson.PersonId = SQLHelper.GetNewID();
|
|
|
|
|
|
Person_PersonsService.AddPerson(newPerson);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(person.TeamGroupName) && !string.IsNullOrEmpty(newProjectPerson.UnitId))
|
|
|
|
|
|
{
|
|
|
|
|
|
var getTeamGroup = TeamGroupService.getTeamGroupByTeamGroupName(getProject.ProjectId, newProjectPerson.UnitId, person.TeamGroupName);
|
|
|
|
|
|
if (getTeamGroup != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
newProjectPerson.TeamGroupId = getTeamGroup.TeamGroupId;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
Model.ProjectData_TeamGroup newTeamGroup = new Model.ProjectData_TeamGroup
|
|
|
|
|
|
{
|
|
|
|
|
|
TeamGroupId = SQLHelper.GetNewID(),
|
|
|
|
|
|
ProjectId = getProject.ProjectId,
|
|
|
|
|
|
UnitId = newProjectPerson.UnitId,
|
|
|
|
|
|
TeamGroupName = person.TeamGroupName,
|
|
|
|
|
|
Remark = "来源:门禁对接数据",
|
|
|
|
|
|
TeamTypeId = "CANJIAN_TEAM",
|
|
|
|
|
|
EntryTime = System.DateTime.Now,
|
|
|
|
|
|
RealNamePushTime = null,
|
|
|
|
|
|
};
|
|
|
|
|
|
db.ProjectData_TeamGroup.InsertOnSubmit(newTeamGroup);
|
|
|
|
|
|
db.SubmitChanges();
|
|
|
|
|
|
|
|
|
|
|
|
newProjectPerson.TeamGroupId = newTeamGroup.TeamGroupId;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
var getWorkArea = UnitWorkService.GetUnitWorkByUnitWorkName(getProject.ProjectId, person.WorkAreaName);
|
|
|
|
|
|
if (getWorkArea != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
newProjectPerson.WorkAreaId = getWorkArea.UnitWorkId;
|
|
|
|
|
|
}
|
|
|
|
|
|
var getWorkPost = WorkPostService.GetWorkPostByName(person.WorkPostName);
|
|
|
|
|
|
if (getWorkPost != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
newProjectPerson.WorkPostId = getWorkPost.WorkPostId;
|
|
|
|
|
|
}
|
|
|
|
|
|
var getHsseMan = SitePerson_PersonService.getSitePerson_PersonByRoleId(getProject.ProjectId, BLL.Const.HSSEManager);
|
|
|
|
|
|
if (getHsseMan != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
newProjectPerson.AuditorId = getHsseMan.PersonId;
|
|
|
|
|
|
newProjectPerson.AuditorDate = DateTime.Now;
|
|
|
|
|
|
}
|
|
|
|
|
|
newProjectPerson.OutTime = Funs.GetNewDateTime(person.OutTime);
|
|
|
|
|
|
if (newProjectPerson.OutTime.HasValue)
|
|
|
|
|
|
{
|
|
|
|
|
|
newProjectPerson.States = Const.ProjectPersonStates_2;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
newProjectPerson.States = Const.ProjectPersonStates_1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
newProjectPerson.PersonId = SQLHelper.GetNewID();
|
|
|
|
|
|
SitePerson_PersonService.AddSitePerson(newProjectPerson);
|
|
|
|
|
|
responeData.message = "新增人员成功!";
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!string.IsNullOrEmpty(person.OutTime))
|
|
|
|
|
|
{
|
|
|
|
|
|
SitePerson_PersonService.SetSitePerson_PersonStates(getProjectPerson.PersonId, Const.ProjectPersonStates_2, Funs.GetNewDateTime(person.OutTime));
|
|
|
|
|
|
responeData.message = "更新出场时间";
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.message = "该身份证号码人员已存在!";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = "单位:" + person.UnitName + "施工平台不存在!";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = "项目:" + person.ProjectId + "施工平台不存在!";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = "数据为空!";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 插入人员出入场记录
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取人员出入场记录
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="projectId"></param>
|
|
|
|
|
|
/// <param name="idCard"></param>
|
|
|
|
|
|
/// <param name="isIn"></param>
|
|
|
|
|
|
/// <param name="changeTime"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2026-04-04 19:39:16 +08:00
|
|
|
|
///
|
|
|
|
|
|
[HttpGet]
|
|
|
|
|
|
|
2022-09-05 16:36:31 +08:00
|
|
|
|
public Model.ResponeData getPersonInOut(string projectId, string idCard, int isIn, DateTime changeTime)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
string operationLog = "projectId:" + projectId + ";idCard:" + idCard + ";isIn:" + isIn.ToString() + ";changeTime:" + Funs.GetNewFileName(changeTime);
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
Model.SitePerson_PersonInOut newInOut = new Model.SitePerson_PersonInOut
|
|
|
|
|
|
{
|
|
|
|
|
|
ProjectId = projectId,
|
|
|
|
|
|
IdentityCard = idCard,
|
|
|
|
|
|
IsIn = isIn == 1 ? true : false,
|
|
|
|
|
|
ChangeTime = changeTime,
|
2026-04-07 16:58:38 +08:00
|
|
|
|
InOutWay = Const.InOutWay_1
|
2022-09-05 16:36:31 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
PersonInOutService.AddPersonInOut(newInOut);
|
|
|
|
|
|
APICommonService.SaveSysAPILog("Person/getPersonInOut", operationLog, responeData.code.ToString());
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
APICommonService.SaveSysAPILog("Person/getPersonInOut", operationLog + "|" + ex.Message, responeData.code.ToString());
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
2026-04-04 19:39:16 +08:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public Model.ResponeData getPersonInOut([FromBody] List<Model.APIItem.PersonInOutItem> personInOutItem)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
if (personInOutItem.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
List<SitePerson_PersonInOut> newInOutList = new List<SitePerson_PersonInOut>();
|
|
|
|
|
|
foreach (var item in personInOutItem)
|
|
|
|
|
|
{
|
|
|
|
|
|
Model.SitePerson_PersonInOut newInOut = new Model.SitePerson_PersonInOut
|
|
|
|
|
|
{
|
|
|
|
|
|
ProjectId = item.projectId,
|
|
|
|
|
|
IdentityCard = item.idCard,
|
|
|
|
|
|
IsIn = item.isIn == 1 ? true : false,
|
|
|
|
|
|
ChangeTime = item.changeTime,
|
|
|
|
|
|
InOutWay = Const.InOutWay_1,
|
|
|
|
|
|
Address = item.deviceIp
|
|
|
|
|
|
};
|
|
|
|
|
|
newInOutList.Add(newInOut);
|
|
|
|
|
|
}
|
|
|
|
|
|
PersonInOutService.AddPersonInOut(newInOutList);
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
2026-04-30 19:09:08 +08:00
|
|
|
|
responeData.message = ex.StackTrace;
|
2026-04-04 19:39:16 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-05 16:36:31 +08:00
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 保存人员出入记录
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
///
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="personInOut"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public Model.ResponeData SavePersonInOut([FromBody] Model.PersonInOutItem personInOut)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!string.IsNullOrEmpty(personInOut.PersonId) || (!string.IsNullOrEmpty(personInOut.IdentityCard) && !string.IsNullOrEmpty(personInOut.ProjectId)))
|
|
|
|
|
|
{
|
|
|
|
|
|
Model.SitePerson_PersonInOut newPersonInOut = new Model.SitePerson_PersonInOut
|
|
|
|
|
|
{
|
|
|
|
|
|
ProjectId = personInOut.ProjectId,
|
|
|
|
|
|
OldID = personInOut.OldID,
|
|
|
|
|
|
PersonId = personInOut.PersonId,
|
|
|
|
|
|
IdentityCard = personInOut.IdentityCard,
|
|
|
|
|
|
IsIn = personInOut.IsIn ?? true,
|
|
|
|
|
|
ChangeTime = Funs.GetNewDateTimeOrNow(personInOut.ChangeTime),
|
|
|
|
|
|
InOutWay = personInOut.InOutWay ?? Const.InOutWay_Other,
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
PersonInOutService.AddPersonInOut(newPersonInOut);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 2;
|
|
|
|
|
|
responeData.message = "信息不全!";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
ErrLogInfo.WriteLog(ex, "WX接口-保存人员出入记录", "PersonController.SavePersonInOut");
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 获取发卡人员
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取发卡人员
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="projectId"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Model.ResponeData getPersonDataExchange(string projectId)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.data = (from x in Funs.DB.SitePerson_Person
|
|
|
|
|
|
join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
|
|
|
|
|
|
join persons in Funs.DB.Person_Persons on x.IdentityCard equals persons.IdentityCard
|
|
|
|
|
|
where x.ProjectId == projectId && !x.ExchangeTime.HasValue
|
2026-04-07 16:58:38 +08:00
|
|
|
|
&& x.States == Const.ProjectPersonStates_1 && x.CardNo.Length > 5 && persons.PhotoUrl != null
|
2022-09-05 16:36:31 +08:00
|
|
|
|
select new
|
|
|
|
|
|
{
|
|
|
|
|
|
x.PersonId,
|
2023-05-29 09:09:30 +08:00
|
|
|
|
x.SitePersonId,
|
2022-09-05 16:36:31 +08:00
|
|
|
|
x.PersonName,
|
|
|
|
|
|
x.CardNo,
|
|
|
|
|
|
x.IdentityCard,
|
|
|
|
|
|
x.UnitId,
|
|
|
|
|
|
y.UnitCode,
|
|
|
|
|
|
y.UnitName,
|
|
|
|
|
|
Sex = persons.Sex ?? "1",
|
|
|
|
|
|
Funs.DB.Base_WorkPost.First(z => z.WorkPostId == x.WorkPostId).WorkPostName,
|
|
|
|
|
|
Funs.DB.ProjectData_TeamGroup.First(z => z.TeamGroupId == x.TeamGroupId).TeamGroupName,
|
|
|
|
|
|
persons.Telephone,
|
|
|
|
|
|
persons.Address,
|
|
|
|
|
|
TrainRecord = APIPersonService.getStrTrainRecordByPersonId(x.PersonId),
|
|
|
|
|
|
x.ExchangeTime,
|
|
|
|
|
|
x.ExchangeTime2,
|
2026-04-07 16:58:38 +08:00
|
|
|
|
PhotoUrl = persons.PhotoUrl.Replace('\\', '/'),
|
2025-02-28 18:25:21 +08:00
|
|
|
|
}).Take(200).ToList();
|
2022-09-05 16:36:31 +08:00
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
2025-03-04 14:47:01 +08:00
|
|
|
|
public Model.ResponeData getAllPersonDataExchange(string projectId)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
2026-04-07 16:58:38 +08:00
|
|
|
|
// var trainingIds = Funs.DB.EduTrain_TrainRecord.Where(x => projectId == projectId).Select(x => x.TrainingId).ToList();
|
|
|
|
|
|
// var personIds = Funs.DB.EduTrain_TrainRecordDetail.Where(x => trainingIds.Contains(x.TrainingId)).Select(x=>x.PersonId).ToList(); ;
|
2025-12-22 21:14:34 +08:00
|
|
|
|
|
2025-03-04 14:47:01 +08:00
|
|
|
|
responeData.data = (from x in Funs.DB.SitePerson_Person
|
|
|
|
|
|
join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
|
2026-04-07 16:58:38 +08:00
|
|
|
|
join persons in Funs.DB.Person_Persons on x.IdentityCard equals persons.IdentityCard
|
2026-04-04 19:39:16 +08:00
|
|
|
|
join traindetail in Funs.DB.Training_TestRecord on x.PersonId equals traindetail.TestManId
|
2026-04-07 16:58:38 +08:00
|
|
|
|
where x.ProjectId == projectId && !x.ExchangeTime.HasValue && traindetail.ProjectId == projectId
|
|
|
|
|
|
&& x.States == Const.ProjectPersonStates_1 && x.CardNo.Length > 5 && persons.PhotoUrl != null && traindetail.TestScores >= 60
|
2026-04-04 19:39:16 +08:00
|
|
|
|
// where personIds.Contains(x.PersonId)
|
2025-03-04 14:47:01 +08:00
|
|
|
|
select new
|
|
|
|
|
|
{
|
|
|
|
|
|
x.PersonId,
|
|
|
|
|
|
x.SitePersonId,
|
|
|
|
|
|
x.PersonName,
|
|
|
|
|
|
x.CardNo,
|
|
|
|
|
|
x.IdentityCard,
|
|
|
|
|
|
x.UnitId,
|
|
|
|
|
|
y.UnitCode,
|
|
|
|
|
|
y.UnitName,
|
|
|
|
|
|
x.InTime,
|
|
|
|
|
|
y.ShortUnitName,
|
|
|
|
|
|
Sex = persons.Sex ?? "1",
|
|
|
|
|
|
Funs.DB.Base_WorkPost.First(z => z.WorkPostId == x.WorkPostId).WorkPostName,
|
|
|
|
|
|
Funs.DB.ProjectData_TeamGroup.First(z => z.TeamGroupId == x.TeamGroupId).TeamGroupName,
|
|
|
|
|
|
persons.Telephone,
|
|
|
|
|
|
persons.Address,
|
2026-04-04 19:39:16 +08:00
|
|
|
|
TrainRecord = APIPersonService.getStrTrainingTestRecordByPersonId(x.PersonId),
|
2025-03-04 14:47:01 +08:00
|
|
|
|
x.ExchangeTime,
|
2026-04-07 16:58:38 +08:00
|
|
|
|
x.ExchangeTime2,
|
2025-03-04 14:47:01 +08:00
|
|
|
|
x.AuditorDate,
|
|
|
|
|
|
PhotoUrl = persons.PhotoUrl.Replace('\\', '/'),
|
|
|
|
|
|
IsUsed = x.States == Const.ProjectPersonStates_1 ? 1 : 0,
|
2026-04-07 16:58:38 +08:00
|
|
|
|
BlackList = 0
|
2025-03-04 14:47:01 +08:00
|
|
|
|
}).Take(200).ToList();
|
2026-04-07 16:58:38 +08:00
|
|
|
|
|
2025-03-04 14:47:01 +08:00
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
ErrLogInfo.WriteLog(ex, "WX接口-获取人员下发门禁", "PersonController.getPersonDataExchange");
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
2022-09-05 16:36:31 +08:00
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 获取离场人员
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取离场人员
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="projectId"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Model.ResponeData getPersonOutDataExchange(string projectId)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.data = (from x in db.SitePerson_Person
|
|
|
|
|
|
where x.ProjectId == projectId && x.States == Const.ProjectPersonStates_2
|
|
|
|
|
|
&& x.CardNo != null && !x.ExchangeTime2.HasValue && x.ExchangeTime.HasValue
|
|
|
|
|
|
select new
|
|
|
|
|
|
{
|
|
|
|
|
|
x.SitePersonId,
|
|
|
|
|
|
x.PersonId,
|
|
|
|
|
|
x.PersonName,
|
|
|
|
|
|
x.CardNo,
|
|
|
|
|
|
x.IdentityCard,
|
|
|
|
|
|
OutTime = x.OutTime == null ? DateTime.Now.AddYears(10) : x.OutTime,
|
|
|
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 更新人员数据交换时间
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 更新人员数据交换时间
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="sitePersonId">人员ID</param>
|
|
|
|
|
|
/// <param name="type">交换类型</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Model.ResponeData getUpdatePersonExchangeTime(string sitePersonId, string type)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
APIPersonService.getUpdatePersonExchangeTime(sitePersonId, type);
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
2023-05-29 09:09:30 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
///
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="projectId"></param>
|
|
|
|
|
|
/// <param name="idCard"></param>
|
|
|
|
|
|
/// <param name="type"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2026-04-07 16:58:38 +08:00
|
|
|
|
public Model.ResponeData getUpdatePersonExchangeTime(string projectId, string idCard, string type)
|
2023-05-29 09:09:30 +08:00
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
var getsiteperson = Funs.DB.SitePerson_Person.FirstOrDefault(x => x.ProjectId == projectId && x.IdentityCard == idCard);
|
|
|
|
|
|
if (getsiteperson != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
APIPersonService.getUpdatePersonExchangeTime(getsiteperson.SitePersonId, type);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 1;
|
2026-04-07 16:58:38 +08:00
|
|
|
|
responeData.message = "当前项目不存在身份证为:" + idCard.ToString() + "的人员!";
|
2023-05-29 09:09:30 +08:00
|
|
|
|
}
|
2026-04-07 16:58:38 +08:00
|
|
|
|
|
2023-05-29 09:09:30 +08:00
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
2022-09-05 16:36:31 +08:00
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 获取人员信息出入场记录
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取人员信息出入场记录
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="projectId"></param>
|
|
|
|
|
|
/// <param name="unitId">当前人单位ID</param>
|
|
|
|
|
|
/// <param name="startTime"></param>
|
|
|
|
|
|
/// <param name="endTime"></param>
|
|
|
|
|
|
/// <param name="pageIndex">页码</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Model.ResponeData getPersonInOutList(string projectId, string unitId, string startTime, string endTime, int pageIndex)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
var getDataList = APIPersonService.getPersonInOutList(projectId, unitId, startTime, endTime);
|
|
|
|
|
|
int pageCount = getDataList.Count();
|
|
|
|
|
|
if (pageCount > 0 && pageIndex > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
getDataList = getDataList.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList();
|
|
|
|
|
|
}
|
|
|
|
|
|
responeData.data = new { pageCount, getDataList };
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
2026-04-04 19:39:16 +08:00
|
|
|
|
|
2026-04-07 16:58:38 +08:00
|
|
|
|
|
2026-04-04 19:39:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
2022-09-05 16:36:31 +08:00
|
|
|
|
#region 获取人员信息出入场记录-查询
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取人员信息出入场记录
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="projectId"></param>
|
|
|
|
|
|
/// <param name="unitId"></param>
|
|
|
|
|
|
/// <param name="userUnitId">当前人单位ID</param>
|
|
|
|
|
|
/// <param name="workPostId">岗位</param>
|
|
|
|
|
|
/// <param name="strParam">查询条件</param>
|
|
|
|
|
|
/// <param name="startTime"></param>
|
|
|
|
|
|
/// <param name="endTime"></param>
|
|
|
|
|
|
/// <param name="pageIndex">页码</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Model.ResponeData getPersonInOutList(string projectId, string userUnitId, string workPostId, string strParam, string startTime, string endTime, int pageIndex, string unitId = null)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
var getDataList = APIPersonService.getPersonInOutList(projectId, userUnitId, unitId, workPostId, strParam, startTime, endTime);
|
|
|
|
|
|
int pageCount = getDataList.Count();
|
|
|
|
|
|
if (pageCount > 0 && pageIndex > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
getDataList = getDataList.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList();
|
|
|
|
|
|
}
|
|
|
|
|
|
responeData.data = new { pageCount, getDataList };
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 根据人员ID获取个人出入场记录
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 根据人员ID获取个人出入场记录
|
2025-12-24 16:27:07 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="personId"></param>
|
2022-09-05 16:36:31 +08:00
|
|
|
|
/// <param name="startTime"></param>
|
|
|
|
|
|
/// <param name="endTime"></param>
|
|
|
|
|
|
/// <param name="pageIndex">页码</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Model.ResponeData getPersonInOutListByPersonId(string personId, string startTime, string endTime, int pageIndex)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
var getDataList = APIPersonService.getPersonInOutListByPersonId(personId, startTime, endTime);
|
|
|
|
|
|
int pageCount = getDataList.Count();
|
|
|
|
|
|
if (pageCount > 0 && pageIndex > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
getDataList = getDataList.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList();
|
|
|
|
|
|
}
|
|
|
|
|
|
responeData.data = new { pageCount, getDataList };
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
2025-12-24 16:27:07 +08:00
|
|
|
|
#region 根据条件获取人员出入场记录(支持分页和过滤)
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 根据条件获取人员出入场记录(支持分页和过滤)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="filter">查询过滤条件(StartTime和EndTime必填)</param>
|
|
|
|
|
|
/// <param name="pagesize">每页条数</param>
|
|
|
|
|
|
/// <param name="pageindex">页码(从1开始)</param>
|
|
|
|
|
|
/// <param name="returnAll">是否返回全部数据</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Model.ResponeData getPersonInOutListByFilter([FromUri] Model.PersonInOutRecordInput filter, int? pagesize = 15, int? pageindex = 1, bool? returnAll = false)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
// 验证必填参数
|
|
|
|
|
|
if (filter == null || filter.StartTime == default(DateTime) || filter.EndTime == default(DateTime))
|
|
|
|
|
|
{
|
2025-12-24 16:48:46 +08:00
|
|
|
|
responeData.code = 0;
|
2025-12-24 16:27:07 +08:00
|
|
|
|
responeData.message = "StartTime和EndTime为必填参数!";
|
|
|
|
|
|
return responeData;
|
2026-04-07 16:58:38 +08:00
|
|
|
|
}
|
2025-12-24 16:27:07 +08:00
|
|
|
|
// 验证时间范围
|
|
|
|
|
|
if (filter.StartTime > filter.EndTime)
|
|
|
|
|
|
{
|
2025-12-24 16:48:46 +08:00
|
|
|
|
responeData.code = 0;
|
2025-12-24 16:27:07 +08:00
|
|
|
|
responeData.message = "StartTime不能大于EndTime!";
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
2026-02-28 14:49:05 +08:00
|
|
|
|
//20260228 赛鼎it要求取消projectcode必填验证,改为如果有projectcode则按照projectcode查询,没有则不过滤projectcode查询
|
|
|
|
|
|
//if (filter == null || string.IsNullOrEmpty(filter.ProjectCode))
|
|
|
|
|
|
//{
|
|
|
|
|
|
// responeData.code = 0;
|
|
|
|
|
|
// responeData.message = "ProjectCode为必填参数!";
|
|
|
|
|
|
// return responeData;
|
|
|
|
|
|
//}
|
2025-12-24 16:27:07 +08:00
|
|
|
|
|
|
|
|
|
|
// 处理可空参数的默认值
|
|
|
|
|
|
int actualPagesize = pagesize ?? 15;
|
|
|
|
|
|
int actualPageindex = pageindex ?? 1;
|
|
|
|
|
|
bool actualReturnAll = returnAll ?? false;
|
|
|
|
|
|
|
|
|
|
|
|
var getDataList = APIPersonService.getPersonInOutListByFilter(filter);
|
|
|
|
|
|
int pageCount = getDataList.Count;
|
|
|
|
|
|
|
|
|
|
|
|
if (!actualReturnAll && pageCount > 0 && actualPageindex > 0 && actualPagesize > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
getDataList = getDataList.Skip(actualPagesize * (actualPageindex - 1)).Take(actualPagesize).ToList();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
responeData.data = new { pageCount, pageindex = actualPageindex, pagesize = actualPagesize, getDataList };
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
2022-09-05 16:36:31 +08:00
|
|
|
|
#region 获取异常人员信息出入场记录
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取异常人员信息出入场记录
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="projectId"></param>
|
|
|
|
|
|
/// <param name="unitId">单位ID</param>
|
|
|
|
|
|
/// <param name="startTime">开始时间</param>
|
|
|
|
|
|
/// <param name="endTime">结束时间</param>
|
|
|
|
|
|
/// <param name="inOut"> 入场异常 0 出场异常 1</param>
|
|
|
|
|
|
/// <param name="pageIndex">页码</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public Model.ResponeData getAbnormalPersonInOutList(string projectId, string unitId, string startTime, string endTime, string inOut, int pageIndex)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responeData = new Model.ResponeData();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
var getDataList = APIPersonService.getAbnormalPersonInOutList(projectId, unitId, startTime, endTime, inOut, pageIndex);
|
|
|
|
|
|
int pageCount = getDataList.Count();
|
|
|
|
|
|
responeData.data = new { pageCount, getDataList };
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responeData.code = 0;
|
|
|
|
|
|
responeData.message = ex.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return responeData;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|