fix: 优化检测处理逻辑

master
tongg 5 months ago
parent ec907ab4c0
commit 60e7c0b618
  1. 51
      ViewModel/Grading/GradingLoadingVM.cs

@ -115,6 +115,7 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
} }
#endregion #endregion
private bool _isCancel = false;
public GradingLoadingVM(string diamnondType, string diamondCode) public GradingLoadingVM(string diamnondType, string diamondCode)
{ {
_diamondCode = diamondCode; _diamondCode = diamondCode;
@ -237,23 +238,34 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
await detectTask; await detectTask;
if (detectTask.Status == TaskStatus.RanToCompletion) if (detectTask.Status == TaskStatus.RanToCompletion)
{ {
return ReslutGen(detectTask); return await ReslutGen(detectTask);
} }
await progress; await progress;
return ReslutGen(detectTask); return await ReslutGen(detectTask);
} }
catch(Exception ex) catch(Exception ex)
{ {
return -100; Logger.Error(ex.Message);
if (_isCancel)
{
return -100;
}
else
{
return -10;
}
} }
} }
private int ReslutGen(Task<DiaResult> detectTask) private async Task<int> ReslutGen(Task<DiaResult> detectTask)
{ {
CompleteProgressQuicklyAsync(); CompleteProgressQuicklyAsync();
if (detectTask.Result != null)
{
switch (detectTask.Result.Status) switch (detectTask.Result.Status)
{ {
case StatusCodes.AlgorithmFailed: case StatusCodes.AlgorithmFailed:
@ -270,16 +282,22 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
return -1; return -1;
} }
Progress = 100; Progress = (100.00);
string strParam = JsonConvert.SerializeObject(detectTask.Result); string strParam = JsonConvert.SerializeObject(detectTask.Result);
AlgorithmResultEntity parameter = JsonConvert.DeserializeObject<AlgorithmResultEntity>(strParam); AlgorithmResultEntity parameter = JsonConvert.DeserializeObject<AlgorithmResultEntity>(strParam);
if (parameter == null) if (parameter == null && _isCancel == false)
{ {
new MessageBox().Show(MultilingualHelper.getString("JsonParseFailure")); new MessageBox().Show(MultilingualHelper.getString("JsonParseFailure"));
return -1; return -1;
} }
parameter.DiamondCode = _diamondCode;
parameter.Standard = getStandardName();
parameter.Shape = _diamnondType.Split(" ")[0];
parameter.CrownType = _diamnondType.Split(" ")[1];
parameter.PavType = _diamnondType.Split(" ")[2];
try try
{ {
string parameterJson = JsonConvert.SerializeObject(parameter); string parameterJson = JsonConvert.SerializeObject(parameter);
@ -300,7 +318,12 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
} }
Parameter = parameter; Parameter = parameter;
if (_isCancel == true) return -100;
return 0; return 0;
}
return -10;
} }
private async Task CompleteProgressSlowlyAsync() private async Task CompleteProgressSlowlyAsync()
@ -356,6 +379,7 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
{ {
WindowManager.mainViewModel.Content = WindowManager.PreviousVM(); WindowManager.mainViewModel.Content = WindowManager.PreviousVM();
_scanner?.Cancel(); _scanner?.Cancel();
_isCancel = true;
_progressCts.Cancel(); _progressCts.Cancel();
this.Dispose(); this.Dispose();
} }
@ -421,6 +445,19 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
_disposed = true; _disposed = true;
} }
private string getStandardName()
{
string sql = $"select\r\nRULE_NAME AS NAME,\r\nRULE_EN_NAME AS EN_NAME\r\nfrom\r\nsetting\r\nleft join rule\r\non setting.SETTING_P = rule.RULE_ID\r\nwhere\r\nsetting.SETTING_ID = 'RuleId'\r\n";
DataTable dataTable = DataBaseHelper.ExecuteQuery(sql);
if (dataTable == null || dataTable.Rows.Count == 0)
{
return "";
}
else
{
return dataTable.Rows[0][MultilingualHelper.getString("NameType")].ToString()??"";
}
}
#region 图片播放处理 #region 图片播放处理
public void LoadImages(string folderPath) public void LoadImages(string folderPath)

Loading…
Cancel
Save