|
@@ -48,9 +48,10 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
private long schId = 0; //方案ID
|
|
|
private long globalSchDetailId = 0; //测试方案明细ID
|
|
|
private long globalDeviceId = 0; //设备ID
|
|
|
+ private long globalSort = 0; //排序
|
|
|
private BizTestRecordDtlDto bizTestRecordDtlDto = new BizTestRecordDtlDto(); //测试方案明细表
|
|
|
private const string TestMode = "手动测试";
|
|
|
-
|
|
|
+ private List<bas_plc_test_scheme_dtl> allSchDtlsById = new List<bas_plc_test_scheme_dtl>(); //测试方案明细项目
|
|
|
private int defaultDelayTime = Convert.ToInt32(ConfigurationManager.AppSettings["DelayTime"]);
|
|
|
private int delayTime;
|
|
|
public ManualTestViewModel(IDialogService dialog, IEventAggregator aggregator, IOptionConfigService optionConfigService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBasicPlcTestSchemeDtlService basicPlcTestSchemeDtlService, IBizTestRecordService iBizTestRecordService, IBizTestRecordDtlService iBizTestRecordDtlService,IMapper mapper,ILogger logger)
|
|
@@ -82,12 +83,13 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
/// </summary>
|
|
|
private void ItemChange()
|
|
|
{
|
|
|
- var findDtlMsg = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.FirstOrDefault(X => X.item_name == SelectItem);
|
|
|
+ var findDtlMsg = allSchDtlsById?.FirstOrDefault(X => X.item_name == SelectItem);
|
|
|
if(findDtlMsg != null)
|
|
|
{
|
|
|
int id = Convert.ToInt32(findDtlMsg.scheme_dtl_id);
|
|
|
// 根据 测试方案明细主键ID 查找测试方案id 及方案名和设备名
|
|
|
globalSchDetailId = id;
|
|
|
+ globalSort = findDtlMsg.sort;
|
|
|
GetDetailInfo(id);
|
|
|
}
|
|
|
}
|
|
@@ -134,7 +136,8 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
{
|
|
|
//测试方案号
|
|
|
schId = item;
|
|
|
- var schDtls=_basicPlcTestSchemeDtlService.FindAllBySchId(schId).OrderBy(x => x.scheme_dtl_id).ToList(); ;
|
|
|
+ allSchDtlsById = _basicPlcTestSchemeDtlService.FindAllBySchId(schId);
|
|
|
+ var schDtls= allSchDtlsById.OrderBy(x => x.sort).ThenBy(x => x.scheme_dtl_id).ToList(); ;
|
|
|
foreach(var sch in schDtls)
|
|
|
{
|
|
|
long dtlId = sch.scheme_dtl_id;
|
|
@@ -591,62 +594,120 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
private void Next(object obj)
|
|
|
{
|
|
|
StepIndex = 0;
|
|
|
+ long maxSort = allSchDtlsById.Select(x => x.sort).Max();
|
|
|
///查找方案下的所有方案明细,并排序,
|
|
|
- var basicSchDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.OrderBy(x=>x.scheme_dtl_id);
|
|
|
- foreach(var item in basicSchDtls)
|
|
|
+ if (maxSort!=0)
|
|
|
{
|
|
|
- //在测试结果明细中查看
|
|
|
- long schDetailId = item.scheme_dtl_id;
|
|
|
- if(schDetailId>globalSchDetailId)
|
|
|
+ if(globalSort< maxSort)
|
|
|
{
|
|
|
- globalSchDetailId = schDetailId;
|
|
|
- int id = Convert.ToInt32(schDetailId);
|
|
|
- SelectItemIndex++;
|
|
|
- //界面显示
|
|
|
- GetDetailInfo(id);
|
|
|
- //记录记录明细表中是否有这个方案明细ID的记录,没有则添加,有则更新记录状态
|
|
|
-
|
|
|
- break;
|
|
|
+ globalSort++;
|
|
|
+ var findSort = allSchDtlsById.FirstOrDefault(x => x.sort == globalSort);
|
|
|
+ if (findSort != null)
|
|
|
+ {
|
|
|
+ int id = Convert.ToInt32(findSort.scheme_dtl_id);
|
|
|
+ globalSchDetailId = findSort.scheme_dtl_id;
|
|
|
+ SelectItemIndex++;
|
|
|
+ //界面显示
|
|
|
+ GetDetailInfo(id);
|
|
|
+ }
|
|
|
}
|
|
|
- long maxDtlId = basicSchDtls.Select(x => x.scheme_dtl_id).Max();
|
|
|
- if (globalSchDetailId == maxDtlId)
|
|
|
+ else
|
|
|
{
|
|
|
MessageBox.Show("已是此测试方案最后一个测试项!", "确认", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
|
- break;
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
+ //兼容没加排序字段以前的
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var basicSchDtls = allSchDtlsById?.OrderBy(x => x.scheme_dtl_id);
|
|
|
+ foreach (var item in basicSchDtls)
|
|
|
+ {
|
|
|
+ //在测试结果明细中查看
|
|
|
+ long schDetailId = item.scheme_dtl_id;
|
|
|
+ if (schDetailId > globalSchDetailId)
|
|
|
+ {
|
|
|
+ globalSchDetailId = schDetailId;
|
|
|
+ int id = Convert.ToInt32(schDetailId);
|
|
|
+ SelectItemIndex++;
|
|
|
+ //界面显示
|
|
|
+ GetDetailInfo(id);
|
|
|
+ //记录记录明细表中是否有这个方案明细ID的记录,没有则添加,有则更新记录状态
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ long maxDtlId = basicSchDtls.Select(x => x.scheme_dtl_id).Max();
|
|
|
+ if (globalSchDetailId == maxDtlId)
|
|
|
+ {
|
|
|
+ MessageBox.Show("已是此测试方案最后一个测试项!", "确认", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
private void Previous(object obj)
|
|
|
{
|
|
|
StepIndex = 0;
|
|
|
- ///查找方案下的所有方案明细,并排序,
|
|
|
- var basicSchDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.OrderByDescending(x => x.scheme_dtl_id);
|
|
|
- foreach (var item in basicSchDtls)
|
|
|
+ int maxSort = allSchDtlsById.Select(x => x.sort).Max();
|
|
|
+ if(maxSort!=0)
|
|
|
{
|
|
|
- //在测试结果明细中查看
|
|
|
- long schDetailId = item.scheme_dtl_id;
|
|
|
- if (schDetailId< globalSchDetailId)
|
|
|
+ if (globalSort>1)
|
|
|
{
|
|
|
- globalSchDetailId = schDetailId;
|
|
|
- int id = Convert.ToInt32(schDetailId);
|
|
|
- SelectItemIndex--;
|
|
|
- //界面显示
|
|
|
- GetDetailInfo(id);
|
|
|
- //记录记录明细表中是否有这个方案明细ID的记录,没有则添加,有则更新记录状态
|
|
|
-
|
|
|
- break;
|
|
|
+ globalSort--;
|
|
|
+ var findSort = allSchDtlsById.FirstOrDefault(x => x.sort == globalSort);
|
|
|
+ if (findSort != null)
|
|
|
+ {
|
|
|
+ int id = Convert.ToInt32(findSort.scheme_dtl_id);
|
|
|
+ globalSchDetailId = findSort.scheme_dtl_id;
|
|
|
+ SelectItemIndex--;
|
|
|
+ //界面显示
|
|
|
+ GetDetailInfo(id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ SelectItemIndex = 0;
|
|
|
+ MessageBox.Show("已是此测试方案的第一个测试项!", "确认", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
- long maxDtlId = basicSchDtls.Select(x => x.scheme_dtl_id).Min();
|
|
|
- if (globalSchDetailId == maxDtlId)
|
|
|
- {
|
|
|
- SelectItemIndex = 0;
|
|
|
- MessageBox.Show("已是此测试方案的第一个测试项!", "确认", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
|
-
|
|
|
+ else
|
|
|
+ {///查找方案下的所有方案明细,并排序,
|
|
|
+ var basicSchDtls = allSchDtlsById?.OrderByDescending(x => x.sort).ThenByDescending(x => x.scheme_dtl_id);
|
|
|
+ foreach (var item in basicSchDtls)
|
|
|
+ {
|
|
|
+ //在测试结果明细中查看
|
|
|
+ long schDetailId = item.scheme_dtl_id;
|
|
|
+ if (schDetailId < globalSchDetailId)
|
|
|
+ {
|
|
|
+ globalSchDetailId = schDetailId;
|
|
|
+ int id = Convert.ToInt32(schDetailId);
|
|
|
+ SelectItemIndex--;
|
|
|
+ //界面显示
|
|
|
+ GetDetailInfo(id);
|
|
|
+ //记录记录明细表中是否有这个方案明细ID的记录,没有则添加,有则更新记录状态
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ long maxDtlId = basicSchDtls.Select(x => x.scheme_dtl_id).Min();
|
|
|
+ if (globalSchDetailId == maxDtlId)
|
|
|
+ {
|
|
|
+ SelectItemIndex = 0;
|
|
|
+ MessageBox.Show("已是此测试方案的第一个测试项!", "确认", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 开始检测
|