Browse Source

修改自动测试

user_lt 1 year ago
parent
commit
b3d208f887

+ 113 - 16
BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/AutoTestViewModel.cs

@@ -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>