DashboardMockService.cs 12.3 KB
using HHECS.Application;
using HHECS.Application.ApiModel;
using HHECS.Application.Service;
using HHECS.WebAPI.Service.Interface;
using HHECS.WebAPI.ViewModel;
using System;
using System.Collections.Generic;
using System.Data;

namespace HHECS.WebAPI.MockService
{
    /// <summary>
    /// 看板模拟数据
    /// </summary>
    [Obsolete("仅用于测试环境,请勿在正式环境下使用")]
    public class DashboardMockService : BaseService, IDashboardService
    {
        /// <summary>
        /// 设备保养看板模拟数据
        /// </summary>
        /// <returns></returns>
        public EquipmentMaintainViewModel GetEquipmentMaintain()
        {
            Random random = new Random();
            //保养规则
            var maintenanceRules = new List<MaintenanceRulesModel>();
            //保养记录
            var maintenanceRecords = new List<MaintenanceRecordsModel>();
            //保养提醒
            var maintenanceReminder = new List<MaintenanceReminderModel>();
            //预知保养
            var predictiveMaintenance = new List<PredictiveMaintenanceModel>();

            for (int i = 1; i <= 15; i++)
            {
                if (i <= 8)
                {
                    maintenanceRules.Add(new MaintenanceRulesModel
                    {
                        PartName = $"{i}号配件",
                        OneMonth = i == 1,
                        ThreeMonth = i == 2,
                        TwelveMonth = i >= 3,
                        MaintenancePrice = random.Next(100, 500),
                        Days = random.Next(5, 50),
                        PartPrice = random.Next(100, 500)
                    });
                }
                maintenanceRecords.Add(new MaintenanceRecordsModel
                {
                    EquipmentCode = $"编号{i}",
                    Identification = i,
                    StatusCode = i,
                    PartName = $"部件{i}",
                    EquipmentType = $"设备类型{i}",
                    UsageTime = DateTime.Now - DateTime.Now.AddDays(-random.Next(2, 10)),
                    TaskTotal = random.Next(100),
                    RunningDistance = random.Next(100),
                    MaintenanceTime = DateTime.Now.AddDays(random.Next(2, 10)),
                    LastMaintenanceTime = DateTime.Now.AddDays(-random.Next(2, 10)),
                    User = $"{i}号工作人员",
                });
                maintenanceReminder.Add(new MaintenanceReminderModel
                {
                    EquipmentCode = $"编号{i}",
                    PartName = $"{i}号部件名称",
                    EquipmentType = "设备类型",
                    Days = (DateTime.Now - DateTime.Now.AddDays(-random.Next(2, 10))).Days.ToString(),
                    Warning = $"异常警告{i}"
                });
                predictiveMaintenance.Add(new PredictiveMaintenanceModel
                {
                    EquipmentCode = $"编号{i}",
                    PartName = $"{i}号部件名称",
                    Content = $"维保内容{i}",
                    Days = (DateTime.Now - DateTime.Now.AddDays(-random.Next(2, 10))).Days.ToString(),
                    Price = random.Next(100, 1000),
                });
            }
            var result = new EquipmentMaintainViewModel
            {
                EquipmentStatus = new EquipmentStatusModel
                {
                    EquipmentCode = "A0001",
                    EquipmentName = "堆垛机",
                    RunningDistance = random.Next(10, 10000),
                    TaskTotal = random.Next(10, 8000),
                    MaintenanceTime = DateTime.Now.AddDays(7),
                    LastMaintenanceTime = DateTime.Now.AddDays(-7),
                },
                MaintenanceRules = maintenanceRules,
                MaintenanceRecords = maintenanceRecords,
                MaintenanceReminder = maintenanceReminder,
                PredictiveMaintenance = predictiveMaintenance
            };
            return result;
        }

        /// <summary>
        /// 设备运行信息看板模拟数据
        /// </summary>
        /// <returns></returns>
        public EquipmentRunStatusViewModel GetEquipmentRunStatus()
        {
            Random random = new Random();
            var equipments = new List<string> { "AGV1", "AGV2", "AGV3", "AGV4", "输送线1", "输送线2", "输送线3", "堆垛机1", "堆垛机2", "堆垛机3" };
            var failureRates = new List<dynamic>();
            var utilizationRate = new List<dynamic>();
            for (int i = 0; i < equipments.Count; i++)
            {
                failureRates.Add(random.Next(1, 80));
                utilizationRate.Add(random.Next(1, 80));
            }
            var result = new EquipmentRunStatusViewModel
            {
                RunInfo = new EquipmentRunInfo
                {
                    Run = random.Next(1, 50),
                    Standby = random.Next(1, 50),
                    Free = random.Next(1, 50),
                    Error = random.Next(1, 50)
                },
                FailureRates = new ChartsModel
                {
                    XData = equipments,
                    YData = failureRates
                },
                UtilizationRate = new ChartsModel
                {
                    XData = equipments,
                    YData = utilizationRate
                }
            };
            return result;
        }

        /// <summary>
        /// 设备报警信息看板模拟数据
        /// </summary>
        /// <returns></returns>
        public EquipmentAlarmViewModel GetEquipmentAlarmResult()
        {
            var equipments = new List<string> { "AGV1", "AGV2", "AGV3", "AGV4", "输送线1", "输送线2", "输送线3", "堆垛机1", "堆垛机2", "堆垛机3" };
            Random random = new Random();
            var failureRates = new List<dynamic>();//设备故障率
            var availability = new List<dynamic>();//设备妥善率
            var msg = new List<string>();
            for (int i = 0; i < 10; i++)
            {
                failureRates.Add(random.Next(0, 100));
                availability.Add(random.Next(0, 100));
                if (i < 5)
                {
                    msg.Add($"[{equipments[i]}]异常报警");
                }
            }

            var result = new EquipmentAlarmViewModel
            {
                EquipmentFailureRates = new ChartsModel
                {
                    XData = equipments,
                    YData = failureRates,
                },
                EquipmentAvailabilities = new ChartsModel
                {
                    XData = equipments,
                    YData = availability
                },
                AlarmMsg = msg
            };
            return result;
        }

        /// <summary>
        /// 设备利用率看板模拟数据
        /// </summary>
        /// <returns></returns>
        public EquipmentUtilizationViewModel GetEquipmentUtilization()
        {
            //设备名称集合
            var xData = new List<string> { "AGV1", "AGV2", "AGV3", "AGV4", "输送线1", "输送线2", "输送线3", "堆垛机1", "堆垛机2", "堆垛机3" };
            Random random = new Random();
            var availability = new List<dynamic>();//设备利用率
            var utilization = new List<dynamic>();//设备故障率
            for (int i = 0; i < 10; i++)
            {
                availability.Add(random.Next(0, 100));
                utilization.Add(random.Next(0, 100));
            }

            //设备故障率饼图
            var pieChart = new List<PieChartModel>();
            for (int i = 1; i <= 4; i++)
            {
                pieChart.Add(new PieChartModel
                {
                    Name = $"设备{i}",
                    Value = random.Next(1, 25)
                });
            }
            //设备故障率
            List<EquipmentFailureRateInfoModel> equipmentFailureRateInfo = new List<EquipmentFailureRateInfoModel>();
            for (int i = 1; i <= 20; i++)
            {
                equipmentFailureRateInfo.Add(new EquipmentFailureRateInfoModel
                {
                    EquipmentCode = $"编号{i}",
                    Alarm = $"名称{i}",
                    CreateTime = DateTime.Now,
                    User = $"操作人{i}"
                });
            }

            var result = new EquipmentUtilizationViewModel
            {
                Utilization = new ChartsModel
                {
                    XData = xData,
                    YData = utilization,
                },
                FailureRate = new EquipmentFailureRate
                {
                    FailureRateChart = pieChart,
                    FailureRateInfo = equipmentFailureRateInfo
                },
                Availability = new ChartsModel
                {
                    XData = xData,
                    YData = availability
                }
            };
            return result;
        }

        public DataTable FaultStatistics(string begin, string end, string eqType)
        {
            throw new NotImplementedException();
        }

        public DataTable GetEquipmentBreakdownInfoByDay(string begin, string end, string eqType)
        {
            throw new NotImplementedException();
        }

        public DataTable GetEquipmentBreakdownOfMonthInfoByMonth(string begin, string end, string eqType)
        {
            throw new NotImplementedException();
        }

        public DataSet GetWarehouseAvgByYear(string year)
        {
            throw new NotImplementedException();
        }
        public DataSet GetWarehouseAvgByYearForAGV(string year)
        {
            throw new NotImplementedException();
        }
        public Dictionary<string, List<EquipmentSummaryFailuresModel>> GetWarehouseFauilreSummaryByYear(string year)
        {
            throw new NotImplementedException();
        }

        public DataTable GetEqRunInfo(string eqCode, string begin, string end)
        {
            throw new NotImplementedException();
        }

        public DataTable GetEquipmentByCode()
        {
            throw new NotImplementedException();
        }

        public Tuple<DataSet, int, string, string> GetFaultReport(string yyyyMonth, string eqCode)
        {
            throw new NotImplementedException();
        }

        Tuple<dynamic, int> IDashboardService.FaultStatistics(string begin, string end, string eqType)
        {
            throw new NotImplementedException();
        }

        public Tuple<dynamic, int> FaultStatisticsRepeat(string begin, string end, string eqType)
        {
            throw new NotImplementedException();
        }

        public DataTable GetProperRate(string startTime, string endTime, string eqCode, string yearOrdaySelectVal, string timeFlag)
        {
            throw new NotImplementedException();
        }

        public List<Tuple<dynamic, int>> GetFaultCount(string yyyyMonth, string eqCode)
        {
            throw new NotImplementedException();
        }

        public DataSet GetFaultOverTime(string startTime, string endTime, string eqCode)
        {
            throw new NotImplementedException();
        }

        public Tuple<dynamic, int> GetFaultCount(string startTime, string endTime, string eqCode)
        {
            throw new NotImplementedException();
        }

		public DataTable GetAGVAbnormalRecord(string startTime, string endTime, string eqCode,string alarm)
		{
			throw new NotImplementedException();
		}

        public DataTable GetSRMOverAlarmRecord(string startTime, string endTime, string eqCode, string alarm)
        {
            throw new NotImplementedException();
        }

        public DataSet GetAGVCodePointAlarmRecord(string startTime, string endTime, string eqCode, string alarm)
        {
            throw new NotImplementedException();
        }

        public DataSet GetEquipmentWeekDayFaultInfo(string startTime, string endTime, string eqCode)
        {
            throw new NotImplementedException();
        }

        public DataTable GetEquipmentFaultReport(string startTime, string endTime, string eqCode)
        {
            throw new NotImplementedException();
        }

        public DataTable GetDeleteTaskInfo(string startDate, string endDate, string code)
        {
            throw new NotImplementedException();
        }
    }
}