using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using BLL;
namespace WebAPI.Controllers
{
///
///
///
public class PersonQualityController : ApiController
{
#region 根据ID获取人员资质信息
///
/// 根据ID获取人员资质信息
///
/// 人员资质类型(1-特种作业;2-安管人员;3-特种设备作业人员)
/// 主键ID
///
public Model.ResponeData getPersonQualityInfo(string type, string dataId)
{
var responeData = new Model.ResponeData();
try
{
responeData.data = APIPersonQualityService.getPersonQualityInfo(type, dataId);
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
return responeData;
}
#endregion
#region 获取人员资质各状态数
///
/// 获取人员资质各状态数
///
/// 项目ID
/// 单位ID
/// 人员资质类型(1-特种作业;2-安管人员;3-特种设备作业人员)
/// 查询单位ID
/// 岗位id
/// 人员资质数量
public Model.ResponeData getPersonQualityCount(string projectId, string unitId, string unitIdQ, string qualityType, string workPostId=null)
{
var responeData = new Model.ResponeData();
try
{
Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString);
int tatalCount = 0, count1 = 0, count2 = 0, count3 = 0, count4 = 0;
bool isSub = !(unitId == Const.UnitId_CWCEC);
if (qualityType == "1")
{
var getPersons = from x in db.SitePerson_Person
join y in db.Base_WorkPost on x.WorkPostId equals y.WorkPostId
where x.ProjectId == projectId && y.PostType == Const.PostType_2 && x.IsUsed == true && (!x.OutTime.HasValue || x.OutTime > DateTime.Now)
select x;
if (isSub)
{
getPersons = getPersons.Where(x => x.UnitId == unitId);
}
if (!string.IsNullOrEmpty(unitIdQ))
{
getPersons = getPersons.Where(x => x.UnitId == unitIdQ);
}
if (!string.IsNullOrEmpty(workPostId))
{
getPersons = getPersons.Where(x => x.WorkPostId == workPostId);
}
/////总数
tatalCount = getPersons.Count();
var getPersonQuality = from x in db.QualityAudit_PersonQuality
join y in getPersons on x.PersonId equals y.PersonId
select x;
////无证
int noC = getPersons.Count() - getPersonQuality.Count();
////待维护
count1 = noC +getPersonQuality.Where(x => x.States == null || x.States == Const.State_0 || x.LimitDate < DateTime.Now.AddMonths(1)).Count();
////待审核
count2 = getPersonQuality.Where(x => x.States == Const.State_1).Count();
//// 已审核
count3 = getPersonQuality.Where(x => x.States ==Const.State_2 && x.LimitDate >=DateTime.Now.AddMonths(1)).Count();
//// 打回
count4 = getPersonQuality.Where(x => x.States == Const.State_R).Count();
}
else if (qualityType == "2")
{
var getPersons = from x in db.SitePerson_Person
join y in db.Base_WorkPost on x.WorkPostId equals y.WorkPostId
where x.ProjectId == projectId && y.IsHsse ==true && x.IsUsed == true && (!x.OutTime.HasValue || x.OutTime > DateTime.Now)
select x;
if (isSub)
{
getPersons = getPersons.Where(x => x.UnitId == unitId);
}
if (!string.IsNullOrEmpty(unitIdQ))
{
getPersons = getPersons.Where(x => x.UnitId == unitIdQ);
}
if (!string.IsNullOrEmpty(workPostId))
{
getPersons = getPersons.Where(x => x.WorkPostId == workPostId);
}
/////总数
tatalCount = getPersons.Count();
var getPersonQuality = from x in db.QualityAudit_SafePersonQuality
join y in getPersons on x.PersonId equals y.PersonId
select x;
////无证
int noC = getPersons.Count() - getPersonQuality.Count();
////待维护
count1 = noC + getPersonQuality.Where(x => x.States == null || x.States == Const.State_0 || x.LimitDate < DateTime.Now.AddMonths(1)).Count();
////待审核
count2 = getPersonQuality.Where(x => x.States == Const.State_1).Count();
//// 已审核
count3 = getPersonQuality.Where(x => x.States == Const.State_2 && x.LimitDate >= DateTime.Now.AddMonths(1)).Count();
//// 打回
count4 = getPersonQuality.Where(x => x.States == Const.State_R).Count();
}
else if (qualityType == "3")
{
var getPersons = from x in db.SitePerson_Person
join y in db.Base_WorkPost on x.WorkPostId equals y.WorkPostId
where x.ProjectId == projectId && y.PostType == Const.PostType_5 && x.IsUsed == true && (!x.OutTime.HasValue || x.OutTime >DateTime.Now)
select x;
if (isSub)
{
getPersons = getPersons.Where(x => x.UnitId == unitId);
}
if (!string.IsNullOrEmpty(unitIdQ))
{
getPersons = getPersons.Where(x => x.UnitId == unitIdQ);
}
if (!string.IsNullOrEmpty(workPostId))
{
getPersons = getPersons.Where(x => x.WorkPostId == workPostId);
}
/////总数
tatalCount = getPersons.Count();
var getPersonQuality = from x in db.QualityAudit_EquipmentPersonQuality
join y in getPersons on x.PersonId equals y.PersonId
select x;
////无证
int noC = getPersons.Count() - getPersonQuality.Count();
////待维护
count1 = noC + getPersonQuality.Where(x => x.States == null || x.States == Const.State_0 || x.LimitDate < DateTime.Now.AddMonths(1)).Count();
////待审核
count2 = getPersonQuality.Where(x => x.States == Const.State_1).Count();
//// 已审核
count3 = getPersonQuality.Where(x => x.States == Const.State_2 && x.LimitDate >= DateTime.Now.AddMonths(1)).Count();
//// 打回
count4 = getPersonQuality.Where(x => x.States == Const.State_R).Count();
}
responeData.data = new { tatalCount, count1, count2, count3, count4 };
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
return responeData;
}
#endregion
#region 根据projectId、unitid获取特岗人员资质信息
///
/// 根据projectId、unitid获取特岗人员资质信息
///
/// 项目ID
/// 单位ID
/// 资质类型
/// 0-待提交;1-待审核;2-已审核;-1打回
/// 查询单位ID
/// 页码
///
public Model.ResponeData getPersonQualityList(string projectId, string unitId, string qualityType, string states,string unitIdQ, int pageIndex)
{
var responeData = new Model.ResponeData();
try
{
var getDataList = APIPersonQualityService.getPersonQualityList(projectId, unitId, qualityType, null, states, unitIdQ);
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 根据projectId、unitid获取特岗人员资质信息-查询
///
/// 根据projectId、unitid获取特岗人员资质信息
///
/// 项目ID
/// 单位ID
/// 资质类型
/// 岗位ID
/// 0-待提交;1-待审核;2-已审核;-1打回
/// 查询单位ID
/// 页码
///
public Model.ResponeData getPersonQualityListQuery(string projectId, string unitId, string qualityType,string workPostId, string states, string unitIdQ, int pageIndex)
{
var responeData = new Model.ResponeData();
try
{
var getDataList = APIPersonQualityService.getPersonQualityList(projectId, unitId, qualityType, null, states, unitIdQ);
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 保存 人员资质信息
///
/// 保存Meeting
///
/// 人员资质信息
///
[HttpPost]
public Model.ResponeData SavePersonQuality([FromBody] Model.PersonQualityItem personQuality)
{
var responeData = new Model.ResponeData();
try
{
APIPersonQualityService.SavePersonQuality(personQuality);
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
return responeData;
}
#endregion
}
}