DashboardController.cs 4.08 KB
using Hh.Mes.POJO.Response;
using Hh.Mes.Service.ApiService;
using Hh.Mes.Service.Equipment;
using Hh.Mes.Service.SystemAuth;
using Microsoft.AspNetCore.Mvc;
using System;

namespace WebMvc.Controllers
{
    [Route("api/[controller]/[action]")]
    [ApiController]
    public class DashboardController : BaseController
    {
        private readonly DashboardService _dashboardService;

        public DashboardController(IAuth authUtil, DashboardService dashboardService) : base(authUtil)
        {
            _dashboardService = dashboardService;
        }

        #region 故障报告
        [HttpGet]
        public string GetFaultReport(string yyyyMonth, string projectCode, string equipmentTypeCode)
        {
            var response = new Response();
            var ds = _dashboardService.GetFaultReport(yyyyMonth, projectCode, equipmentTypeCode);

            //当天是否在本周内
            var nowDay = DateTime.Now;
            var selectDay = Convert.ToDateTime(yyyyMonth);
            var startWeekDay = nowDay.AddDays(-(int)nowDay.DayOfWeek + 1).ToString("yyyy-MM-dd 00:00:00");//当前周的周一日期
            var weekOne = selectDay.AddDays(0 - (Convert.ToInt16(selectDay.DayOfWeek) == 0 ? 7 : Convert.ToInt16(selectDay.DayOfWeek)) + 1).ToString("yyyy-MM-dd 00:00:00");//当前所选周的周一日期
            var isInterval = false;
            if (startWeekDay == weekOne) isInterval = true;

            response.Result = new
            {
                listMonth = ds.Item1.Tables[0],
                listWeek = ds.Item1.Tables[1],
                listAlarmSum40 = ds.Item1.Tables[2],

                diffDay = ds.Item2,
                monthStr = ds.Item3,
                weekStr = ds.Item4,

                weekDefault = ds.Item1.Tables[3],
                properlyTarget = ds.Item1.Tables[4],
                factoryTarget = ds.Item1.Tables[5],
            };

            return Serialize(response);
        }


        /// <summary>
        /// 故障报告-本周故障分析-具体每天故障分析
        /// </summary>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <returns></returns>
        [HttpGet]
        public string GetEquipmentWeekDayFaultInfo(string startTime, string endTime, string projectCode)
        {
            var response = new Response();
            var result = _dashboardService.GetEquipmentWeekDayFaultInfo(startTime, endTime, projectCode);
            response.Result = new
            {
                top = result.Tables[0],
                table = result.Tables[1],
            };
            response.Count = result.Tables[1].Rows.Count;
            return Serialize(response);

        }

        #endregion

        #region 故障分析
        /// <summary>
        /// 故障統計分析
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public string FaultStatistics(string begin, string end, string projectCode,string equipmentTypeCode)
        {
            var response = new Response();
            var result = _dashboardService.FaultStatistics(begin, end, projectCode,equipmentTypeCode);
            response.Result = result.Item1;
            response.Count = result.Item2;
            return Serialize(response);
        }
        #endregion

        #region 妥善率
        /// <summary>
        /// 妥善率趋势图
        /// </summary>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <param name="yearOrdaySelectVal"></param>
        /// <param name="timeFlag"></param>
        /// <returns></returns>
        [HttpGet]
        public string GetProperRate(string startTime, string endTime, string yearOrdaySelectVal, string timeFlag,string projecCode,string equipmentTypeCode)
        {
            var response = new Response();
            var result = _dashboardService.GetProperRate(startTime, endTime, yearOrdaySelectVal, timeFlag,projecCode,equipmentTypeCode);
            response.Result = result;
            response.Count = result.Rows.Count;
            return Serialize(response);
        }

        #endregion
    }
}