using System; using System.Collections.Generic; using Hh.Mes.Api.Controllers; using Hh.Mes.Common.Json; using Hh.Mes.Common.log; using Hh.Mes.Service; using Hh.Mes.Service.ApiService; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Headers; using Microsoft.AspNetCore.Mvc; // For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 namespace Hh.Mes.Api.Controllers { [Route("api/[controller]/[action]")] [ApiController] public class BulletinBoardController : BaseController { private readonly BulletinBoardService service; private readonly BaseInfoCacheService baseInfo; public BulletinBoardController(BulletinBoardService service, BaseInfoCacheService baseInfo, IHttpContextAccessor accessor) { this.service = service; this.baseInfo = baseInfo; this.context = accessor.HttpContext; } #region 故障报告 [HttpGet] public string GetFaultReport(string yyyyMonth, string projectCode, string equipmentTypeCode) { var result = service.GetFaultReport(yyyyMonth, projectCode, equipmentTypeCode); return Serialize(result); } /// <summary> /// 故障报告-本周故障分析-具体每天故障分析 /// </summary> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <returns></returns> [HttpGet] public string GetEquipmentWeekDayFaultInfo(string startTime, string endTime, string projectCode) { var result = service.GetEquipmentWeekDayFaultInfo(startTime, endTime, projectCode); return Serialize(result); } #endregion #region 故障分析 /// <summary> /// 故障統計分析 /// </summary> /// <returns></returns> [HttpGet] public string FaultStatistics(string begin, string end, string projectCode) { var result = service.FaultStatistics(begin, end, projectCode, ""); return Serialize(result); } #endregion #region 妥善率 /// <summary> /// 妥善率趋势图 /// </summary> [HttpGet] public string GetProperRate(string startTime, string endTime, string yearOrdaySelectVal, string timeFlag, string projectCode, string equipmentTypeCode) { var result = service.GetProperRate(startTime, endTime, yearOrdaySelectVal, timeFlag, projectCode, equipmentTypeCode); return Serialize(result); } #endregion #region 故障月份对比 [HttpGet] public string FailureMonthCompare(int year, int month, string projectCode, string equipmentTypeCode) { var result = service.GetFailureMonthCompare(year, month, projectCode, equipmentTypeCode); return Serialize(result); } #endregion #region 获取基础数据 [HttpGet] public string GetBaseInfoByKeyExtend(string key, string falg) { return ExceptionsHelp.Instance.ExecuteT(() => { var isRemore = falg == "1"; var result = baseInfo.GetOneBaseInfo(key, isRemore); if (string.IsNullOrEmpty(result)) { return "{\"code\":500,\"status\":false,\"message\":\"ok\",\"data\":null}"; } return "{\"code\":200,\"status\":true,\"message\":\"ok\",\"data\":" + result + "}"; }); } /// <summary> /// 获取项目下的所有设备 /// </summary> /// <param name="projectCode"></param> /// <returns></returns> [HttpGet] public string GetEquipmentsByProject(string projectCode) { var result = service.GetEquipmentsByProject(projectCode); return Serialize(result); } #endregion #region 月每周故障次数、时间 [HttpGet] public string FailureMonthWeekCountAndTime(string projectCode, DateTime currentDate) { var result = service.GetFailureMonthWeekCountAndTime(projectCode, currentDate); return Serialize(result); } #endregion #region 项目某设备某天每小时故障次数 [HttpGet] public string FailureEveryHourCount(string projectCode, string equipmentCode, DateTime currentDate) { var result = service.GetFailureEveryHourCount(projectCode, equipmentCode, currentDate); return Serialize(result); } #endregion /// <summary> /// 故障次数 /// </summary> /// <param name="projectCode"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <returns></returns> [HttpGet] public string FailureAlarmCount(string projectCode, DateTime startTime, DateTime endTime) { var result=service.GetFailureAlarmCount(projectCode, startTime, endTime); return Serialize(result); } } }