|
@@ -19,7 +19,7 @@ using System.Windows;
|
|
|
|
|
|
namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
public class AutoTestViewModel : BindableBase, IDialogAware
|
|
|
{
|
|
|
private readonly IDialogService _dialog;
|
|
@@ -27,29 +27,42 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
private readonly IOptionConfigService _optionConfigService;
|
|
|
private readonly IBasicPlcTestSchemeService _basicPlcTestSchemeService;
|
|
|
private readonly IBasicPlcTestSchemeDtlService _basicPlcTestSchemeDtlService;
|
|
|
+ private readonly IBizTestRecordService _iBizTestRecordService;
|
|
|
+ private readonly IBizTestRecordDtlService _iBizTestRecordDtlService;
|
|
|
private readonly IMapper _mapper;
|
|
|
private readonly ILogger _logger;
|
|
|
private List<OptionConfigDto> _optionConfigs;
|
|
|
- public AutoTestViewModel(IDialogService dialog, IEventAggregator aggregator, IOptionConfigService optionConfigService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBasicPlcTestSchemeDtlService basicPlcTestSchemeDtlService, IMapper mapper)
|
|
|
+
|
|
|
+ private DateTime startTime = DateTime.Now;
|
|
|
+ private DateTime endTime = DateTime.Now;
|
|
|
+ private int testStatus = 0; //测试状态
|
|
|
+ private int testResult = 0; //测试结果
|
|
|
+ private long schDetailId = 0; //测试方案明细ID
|
|
|
+ public AutoTestViewModel(IDialogService dialog, IEventAggregator aggregator, IOptionConfigService optionConfigService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBasicPlcTestSchemeDtlService basicPlcTestSchemeDtlService, IBizTestRecordService iBizTestRecordService, IBizTestRecordDtlService iBizTestRecordDtlService, IMapper mapper)
|
|
|
{
|
|
|
_dialog = dialog;
|
|
|
_aggregator = aggregator;
|
|
|
_optionConfigService = optionConfigService;
|
|
|
_basicPlcTestSchemeService = basicPlcTestSchemeService;
|
|
|
_basicPlcTestSchemeDtlService = basicPlcTestSchemeDtlService;
|
|
|
+ _iBizTestRecordDtlService = iBizTestRecordDtlService;
|
|
|
+ _iBizTestRecordService = iBizTestRecordService;
|
|
|
_mapper = mapper;
|
|
|
//_logger = logger;
|
|
|
CloseCommand = new DelegateCommand(Close);
|
|
|
- StartCommand = new DelegateCommand<Object>(Start);
|
|
|
+ StartCommand = new DelegateCommand<object>(Start);
|
|
|
+ DoneCommand = new DelegateCommand<object>(Done);
|
|
|
BeforeConList = new ObservableCollection<BasPlcItemConfigDto>();
|
|
|
InConList = new ObservableCollection<BasPlcItemConfigDto>();
|
|
|
OutConList = new ObservableCollection<BasPlcItemConfigDto>();
|
|
|
GetConfigOption();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
#region idialog接口实现
|
|
|
- public string Title { set; get; } = "自动测试";
|
|
|
+ public string Title { set; get; } = "手动测试";
|
|
|
|
|
|
public event Action<IDialogResult> RequestClose;
|
|
|
|
|
@@ -72,7 +85,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
{
|
|
|
foreach (var item in getMsg)
|
|
|
{
|
|
|
-
|
|
|
+ schDetailId = item; //测试方案明细ID
|
|
|
int id = Convert.ToInt32(item);
|
|
|
//根据 测试方案明细主键ID 查找测试方案id 及方案名和设备名
|
|
|
var findEntity = _basicPlcTestSchemeDtlService.Find(id);
|
|
@@ -158,19 +171,96 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
- #region 私有方法
|
|
|
|
|
|
-
|
|
|
+ #region 私有发方法
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 完成时间
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="obj"></param>
|
|
|
+ private void Done(object obj)
|
|
|
+ {
|
|
|
+ endTime = DateTime.Now;
|
|
|
+ //记录记录主表中是否有这个方案的记录,没有则添加
|
|
|
+ var findRecord = _iBizTestRecordService.FindRecorddBySchname(ScheduleName);
|
|
|
+ if (findRecord == null)
|
|
|
+ {
|
|
|
+ //状态status 没有赋值
|
|
|
+ BizTestRecordDto bizTestRecordDto = new BizTestRecordDto();
|
|
|
+ bizTestRecordDto.RecordName = ScheduleName + "_Record";
|
|
|
+ bizTestRecordDto.SchemeName = ScheduleName;
|
|
|
+ bizTestRecordDto.Tester = Appsession.UserName;
|
|
|
+ bizTestRecordDto.StartTestTime = startTime;
|
|
|
+ bizTestRecordDto.FinishTestTime = endTime;
|
|
|
+ bizTestRecordDto.CreateBy = Appsession.UserName;
|
|
|
+ bizTestRecordDto.CreateTime = DateTime.Now;
|
|
|
+ bizTestRecordDto.UpdateBy = Appsession.UserName;
|
|
|
+ bizTestRecordDto.UpdateTime = DateTime.Now;
|
|
|
+ var testRecord = _mapper.Map<BizTestRecordDto, biz_test_record>(bizTestRecordDto);
|
|
|
+ _iBizTestRecordService.Add(testRecord);
|
|
|
+ }
|
|
|
+ //查找record ID
|
|
|
+ long recordId = 0;
|
|
|
+ var findRecordID = _iBizTestRecordService.FindRecorddBySchname(ScheduleName);
|
|
|
+ if (findRecordID != null)
|
|
|
+ {
|
|
|
+ recordId = findRecordID.record_id;
|
|
|
+ }
|
|
|
+ testStatus = 99;//测试状态赋值为99
|
|
|
+ //记录记录明细表中是否有这个方案明细ID的记录,没有则添加,有则更新记录状态
|
|
|
+ var findRecordDetail = _iBizTestRecordDtlService.FindRecordDetailBySchDtlID(schDetailId);
|
|
|
+ if (findRecordDetail == null)
|
|
|
+ {
|
|
|
+ //状态status 没有赋值
|
|
|
+ BizTestRecordDtlDto bizTestRecordDtlDto = new BizTestRecordDtlDto();
|
|
|
+ bizTestRecordDtlDto.RecordId = recordId;
|
|
|
+ bizTestRecordDtlDto.SchemeDtlId = schDetailId;
|
|
|
+
|
|
|
+ bizTestRecordDtlDto.StartTestTime = startTime;
|
|
|
+ bizTestRecordDtlDto.FinishTestTime = endTime;
|
|
|
+ bizTestRecordDtlDto.Status = testStatus;
|
|
|
+ bizTestRecordDtlDto.TestResult = testResult;
|
|
|
+ bizTestRecordDtlDto.CreateBy = Appsession.UserName;
|
|
|
+ bizTestRecordDtlDto.CreateTime = DateTime.Now;
|
|
|
+ bizTestRecordDtlDto.UpdateBy = Appsession.UserName;
|
|
|
+ bizTestRecordDtlDto.UpdateTime = DateTime.Now;
|
|
|
+ var testRecordDtl = _mapper.Map<BizTestRecordDtlDto, biz_test_record_dtl>(bizTestRecordDtlDto);
|
|
|
+ _iBizTestRecordDtlService.Add(testRecordDtl);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //如果有,则更新测试状态和测试结果
|
|
|
+ findRecordDetail.start_test_time = startTime;
|
|
|
+ findRecordDetail.finish_test_time = endTime;
|
|
|
+ findRecordDetail.update_by = Appsession.UserName;
|
|
|
+ findRecordDetail.update_time = DateTime.Now;
|
|
|
+ findRecordDetail.status = testStatus;
|
|
|
+ findRecordDetail.test_result = 99;
|
|
|
+ _iBizTestRecordDtlService.Edit(findRecordDetail);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void Next(object obj)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void Previous(object obj)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
/// <summary>
|
|
|
/// 开始检测
|
|
|
/// </summary>
|
|
|
/// <param name="obj"></param>
|
|
|
private void Start(object obj)
|
|
|
{
|
|
|
+ //开始时间
|
|
|
+ startTime = DateTime.Now;
|
|
|
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 获取配置
|
|
|
/// </summary>
|
|
@@ -206,6 +296,11 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 关闭按钮
|
|
|
/// </summary>
|
|
@@ -213,10 +308,11 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
{
|
|
|
RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// mode转json
|
|
|
/// </summary>
|
|
@@ -248,16 +344,17 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
#region 命令绑定
|
|
|
public DelegateCommand CloseCommand { set; get; }
|
|
|
-
|
|
|
+
|
|
|
public DelegateCommand<object> StartCommand { set; get; }
|
|
|
+
|
|
|
+ public DelegateCommand<object> DoneCommand { set; get; }
|
|
|
+
|
|
|
|
|
|
-
|
|
|
#endregion
|
|
|
#region 变量绑定
|
|
|
/// <summary>
|