using BLL; using System; using System.Linq; using System.Web.Http; namespace WebAPI.Controllers { /// /// 图型分信息 /// public class ChartAnalysisController : ApiController { #region 根据类型获取图型数据 /// /// 根据类型获取图型数据 /// /// 项目ID /// 1:按单位;2:按类型 /// 开始时间 /// 结束时间 /// public Model.ResponeData getChartAnalysisByType(string projectId, string type,string startDate,string endDate) { var responeData = new Model.ResponeData(); try { responeData.data = BLL.APIChartAnalysisService.getChartAnalysisByType(projectId, type, startDate, endDate); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据项目ID 获取整改单数据 /// /// 根据项目ID 获取整改单数据 /// /// 项目ID /// public Model.ResponeData getHSSERectifyNoticesChartAnalysis(string projectId) { var responeData = new Model.ResponeData(); try { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { int allCount = 0, uCount = 0, cCount = 0; double rate = 1; var getRectifyNotices = from x in db.Check_RectifyNotices where x.States != Const.State_0 && x.States != null && x.ProjectId == projectId select x; if (!string.IsNullOrEmpty(projectId) && projectId != "") { getRectifyNotices = getRectifyNotices.Where(x => x.ProjectId == projectId); } //// 整改总数 allCount = getRectifyNotices.Count(); if (allCount > 0) { //// 已闭环 cCount = getRectifyNotices.Where(x => x.States == "5").Count(); uCount = allCount - cCount; rate = Math.Round(uCount * 1.0 / allCount * 100, 1); } responeData.data = new { allCount, uCount, rate }; } } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据项目ID 获取资质预警数据 /// /// 根据项目ID 获取整改单数据 /// /// 项目ID /// public Model.ResponeData getHSSEPersonQualityChartAnalysis(string projectId) { var responeData = new Model.ResponeData(); try { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { int allCount = 0; var getPersonQualitys = from x in db.QualityAudit_PersonQuality join y in db.SitePerson_Person on x.PersonId equals y.PersonId where (projectId == null || projectId == "" || y.ProjectId == projectId) && x.LimitDate.HasValue && x.LimitDate < DateTime.Now select x; //// 预警人数 allCount = getPersonQualitys.Count(); responeData.data = new { allCount }; } } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion } }