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 } }