264 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			264 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | 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 | |||
|  | { | |||
|  |     /// <summary> | |||
|  |     ///  | |||
|  |     /// </summary> | |||
|  |     public class PersonQualityController : ApiController | |||
|  |     { | |||
|  |         #region 根据ID获取人员资质信息 | |||
|  |         /// <summary> | |||
|  |         ///  根据ID获取人员资质信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="type">人员资质类型(1-特种作业;2-安管人员;3-特种设备作业人员)</param> | |||
|  |         /// <param name="dataId">主键ID</param> | |||
|  |         /// <returns></returns> | |||
|  |         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 获取人员资质各状态数 | |||
|  |         /// <summary> | |||
|  |         /// 获取人员资质各状态数 | |||
|  |         /// </summary> | |||
|  |         /// <param name="projectId">项目ID</param> | |||
|  |         /// <param name="unitId">单位ID</param> | |||
|  |         /// <param name="qualityType">人员资质类型(1-特种作业;2-安管人员;3-特种设备作业人员)</param> | |||
|  |         /// <param name="unitIdQ">查询单位ID</param> | |||
|  |         /// <param name="workPostId">岗位id</param> | |||
|  |         /// <returns>人员资质数量</returns> | |||
|  |         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获取特岗人员资质信息 | |||
|  |         /// <summary> | |||
|  |         /// 根据projectId、unitid获取特岗人员资质信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="projectId">项目ID</param> | |||
|  |         /// <param name="unitId">单位ID</param> | |||
|  |         /// <param name="qualityType">资质类型</param>  | |||
|  |         /// <param name="states">0-待提交;1-待审核;2-已审核;-1打回</param> | |||
|  |         /// <param name="unitIdQ">查询单位ID</param> | |||
|  |         /// <param name="pageIndex">页码</param> | |||
|  |         /// <returns></returns> | |||
|  |         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获取特岗人员资质信息-查询 | |||
|  |         /// <summary> | |||
|  |         /// 根据projectId、unitid获取特岗人员资质信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="projectId">项目ID</param> | |||
|  |         /// <param name="unitId">单位ID</param> | |||
|  |         /// <param name="qualityType">资质类型</param>  | |||
|  |         /// <param name="workPostId">岗位ID</param>  | |||
|  |         /// <param name="states">0-待提交;1-待审核;2-已审核;-1打回</param> | |||
|  |         /// <param name="unitIdQ">查询单位ID</param> | |||
|  |         /// <param name="pageIndex">页码</param> | |||
|  |         /// <returns></returns> | |||
|  |         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 保存 人员资质信息 | |||
|  |         /// <summary> | |||
|  |         /// 保存Meeting | |||
|  |         /// </summary> | |||
|  |         /// <param name="personQuality">人员资质信息</param> | |||
|  |         /// <returns></returns> | |||
|  |         [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 | |||
|  | 
 | |||
|  |     } | |||
|  | } |