Ejemplo n.º 1
0
        /// <summary>
        /// ムラログ解析を行う
        /// </summary>
        /// <param name="dipBlocLog">骨塩ムラログ</param>
        /// <param name="messageId">メッセージID</param>
        /// <param name="_analysisData">ムラログ解析対象データ</param>
        /// <param name="_analysisResult">ムラログ解析結果</param>
        /// <returns>成功した場合true、失敗した場合falseを返す</returns>
        public bool AnalyzeDipBlocLog(DipBlocLog dipBlocLog, string messageId, out BlocLogAnalysisData _analysisData, out BlocLogAnalysisResult _analysisResult)
        {
            _analysisData   = new BlocLogAnalysisData();
            _analysisResult = new BlocLogAnalysisResult();

            try
            {
                _logger.EnterJson("{0}", new { dipBlocLog, messageId });

                int gpValue = int.Parse(dipBlocLog.GpValue);

                if (gpValue != 0 && (gpValue < GpMinValue || GpMaxValue < gpValue))
                {
                    string message = $"GP値が正しくありません。(機器管理番号:{dipBlocLog?.SourceEquipmentUid})(解析ログファイル名:{dipBlocLog?.FileName})(GP値:{gpValue})";
                    throw new RmsException(message);
                }

                bool isNormalized = gpValue == 0 ? false : true;

                var blocLogConfigResult = _dtBloclogAnalysisConfigRepository.ReadDtBloclogAnalysisConfig(isNormalized, false);

                CreatetAnalysisData(dipBlocLog, blocLogConfigResult, out _analysisData);

                int ret = NativeMethods.AnalyzeBlocLog(ref _analysisData, ref _analysisResult);

                if (ret != 0)
                {
                    string message = $"(機器管理番号:{dipBlocLog?.SourceEquipmentUid})(解析ログファイル名:{dipBlocLog?.FileName})";
                    throw new RmsException(string.Format("LogAnalysisDll.AnalyzeBlocLog() returned {0}. {1} {2}", ret, _analysisResult.ErrorMsg, message));
                }

                return(true);
            }
            catch (RmsException e)
            {
                _logger.Error(e, nameof(Resources.UT_DBA_DBA_005), new object[] { messageId });
                return(false);
            }
            finally
            {
                _logger.LeaveJson("{0}", new { _analysisData, _analysisResult });
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// ムラログ解析結果をDBに登録する
        /// </summary>
        /// <param name="dipBlocLog">骨塩ムラログ</param>
        /// <param name="messageId">メッセージID</param>
        /// <param name="_analysisData">ムラログ解析対象データ</param>
        /// <param name="_analysisResult">ムラログ解析結果</param>
        /// <param name="model">DBへの登録結果</param>
        /// <returns>成功した場合true、失敗した場合falseを返す</returns>
        public bool RegistBlocLogAnalysisResultToDb(DipBlocLog dipBlocLog, string messageId, BlocLogAnalysisData _analysisData, BlocLogAnalysisResult _analysisResult, out DtBloclogAnalysisResult model)
        {
            model = null;

            try
            {
                _logger.EnterJson("{0}", new { dipBlocLog, messageId, _analysisData, _analysisResult });

                var dtBloclogAnalysisResult = new DtBloclogAnalysisResult
                {
                    EquipmentUid        = dipBlocLog.SourceEquipmentUid,
                    BloclogMonth        = dipBlocLog.OccurrenceYm,
                    DetectorName        = dipBlocLog.DetectorName,
                    DetectorId          = dipBlocLog.DetectorId,
                    GpValue             = int.Parse(dipBlocLog.GpValue),
                    ImageFileName       = dipBlocLog.FileName,
                    FileNameNo          = short.Parse(dipBlocLog.SNumber),
                    ShadingResult       = _analysisResult.UnevenResult,
                    ShadingResultMcv    = _analysisResult.Mcv,
                    ShadingResultScv    = _analysisResult.Scv,
                    ShadingResultMcvSv  = _analysisData.McvStandardValue,
                    ShadingResultScvSv1 = _analysisData.ScvStandardValue1,
                    ShadingResultScvSv2 = _analysisData.ScvStandardValue2,
                    ImageType           = _analysisResult.ImageClassification == 0 ? false : true,
                    ImageSize           = _analysisResult.PixelSize,
                    IsBillTarget        = dipBlocLog.ServiceFlg == true ? false : true,
                    LogFileName         = dipBlocLog.LogFileName
                };

                model = _dtBloclogAnalysisResultRepository.CreateDtBloclogAnalysisResult(dtBloclogAnalysisResult);

                return(true);
            }
            catch (RmsParameterException e)
            {
                _logger.Error(e, nameof(Resources.UT_DBA_DBA_006), new object[] { messageId });
                return(false);
            }
            catch (RmsException e)
            {
                _logger.Error(e, nameof(Resources.UT_DBA_DBA_006), new object[] { messageId });
                return(false);
            }
            finally
            {
                _logger.LeaveJson("{0}", new { model });
            }
        }
Ejemplo n.º 3
0
 public static extern int AnalyzeBlocLog(ref BlocLogAnalysisData analysisData, ref BlocLogAnalysisResult analysisResult);