/// <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 }); } }
/// <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 }); } }
public static extern int AnalyzeBlocLog(ref BlocLogAnalysisData analysisData, ref BlocLogAnalysisResult analysisResult);