Пример #1
0
        public ViewResult Analysis(int id)
        {
            Device device = _deviceRepository.GetDevice(id);

            List <DeviceDetail> deviceDetails = _deviceRepository.GetDeviceDetails(device.GUID);

            DeviceDetail deviceDetail = new DeviceDetail();

            if (deviceDetails != null && deviceDetails.Count > 0)
            {
                deviceDetail = deviceDetails.OrderBy(c => c.CheckTime).Last();
            }
            else
            {
                CreatShowData(deviceDetail);
            }


            if (device != null)
            {
                DeviceAnalysisViewModel deviceAnalysisViewModel = new DeviceAnalysisViewModel
                {
                    Id = device.Id,
                    //分析气密性
                    GasStatus = ConvertStatus(AnalysisGasStatus(deviceDetail)),
                    //分析传感器
                    SensorStatus = ConvertStatus(AnalysisSensorStatus(deviceDetail)),
                    //分析阀门
                    ValueStatus = ConvertStatus(AnalysisValveStatus(deviceDetail)),
                    //分析真空泵
                    PumpStatus = ConvertStatus(AnalysisPumpStatus(deviceDetail)),
                    //分析升降电机
                    MotorStatus = ConvertStatus(AnalysisMotorStatus(deviceDetail)),
                    //分析加热炉
                    StoveStatus = ConvertStatus(AnalysisStoveStatus(deviceDetail)),
                };
                //分析总体健康
                deviceAnalysisViewModel.DeviceStatus = ConvertStatus(AnalysisDeviceStatus(deviceAnalysisViewModel));
                //得出健康建议
                deviceAnalysisViewModel.DeviceAdvice = AnalysisDeviceAdvice(deviceDetail);

                return(View(deviceAnalysisViewModel));
            }

            throw new Exception("查询不到这个设备信息");
        }
Пример #2
0
        private HealthStatusEnum AnalysisDeviceStatus(DeviceAnalysisViewModel model)
        {
            HealthStatusEnum result = HealthStatusEnum.Normal;

            List <string> list = new List <string>();

            list.Add(model.GasStatus);
            list.Add(model.SensorStatus);
            list.Add(model.PumpStatus);
            list.Add(model.MotorStatus);
            list.Add(model.ValueStatus);
            list.Add(model.StoveStatus);

            if (list.Contains(ERROR))
            {
                result = HealthStatusEnum.Error;
            }
            else if (list.Contains(WARING))
            {
                result = HealthStatusEnum.Warning;
            }

            return(result);
        }