fix: 优化检测处理逻辑

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

@ -114,7 +114,8 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
}
}
#endregion
private bool _isCancel = false;
public GradingLoadingVM(string diamnondType, string diamondCode)
{
_diamondCode = diamondCode;
@ -237,23 +238,34 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
await detectTask;
if (detectTask.Status == TaskStatus.RanToCompletion)
{
return ReslutGen(detectTask);
return await ReslutGen(detectTask);
}
await progress;
return ReslutGen(detectTask);
return await ReslutGen(detectTask);
}
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();
if (detectTask.Result != null)
{
switch (detectTask.Result.Status)
{
case StatusCodes.AlgorithmFailed:
@ -270,16 +282,22 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
return -1;
}
Progress = 100;
Progress = (100.00);
string strParam = JsonConvert.SerializeObject(detectTask.Result);
AlgorithmResultEntity parameter = JsonConvert.DeserializeObject<AlgorithmResultEntity>(strParam);
if (parameter == null)
if (parameter == null && _isCancel == false)
{
new MessageBox().Show(MultilingualHelper.getString("JsonParseFailure"));
return -1;
}
parameter.DiamondCode = _diamondCode;
parameter.Standard = getStandardName();
parameter.Shape = _diamnondType.Split(" ")[0];
parameter.CrownType = _diamnondType.Split(" ")[1];
parameter.PavType = _diamnondType.Split(" ")[2];
try
{
string parameterJson = JsonConvert.SerializeObject(parameter);
@ -300,7 +318,12 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
}
Parameter = parameter;
if (_isCancel == true) return -100;
return 0;
}
return -10;
}
private async Task CompleteProgressSlowlyAsync()
@ -356,6 +379,7 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
{
WindowManager.mainViewModel.Content = WindowManager.PreviousVM();
_scanner?.Cancel();
_isCancel = true;
_progressCts.Cancel();
this.Dispose();
}
@ -421,6 +445,19 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
_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 图片播放处理
public void LoadImages(string folderPath)

Loading…
Cancel
Save