소스 검색

修改自动检测

user_lt 1 년 전
부모
커밋
64ad03d545
1개의 변경된 파일434개의 추가작업 그리고 100개의 파일을 삭제
  1. 434 100
      BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/AutoTestViewModel.cs

+ 434 - 100
BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/AutoTestViewModel.cs

@@ -38,9 +38,11 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         private DateTime endTime = DateTime.Now;
         private DateTime endTime = DateTime.Now;
         private int testStatus = 0;  //测试状态 
         private int testStatus = 0;  //测试状态 
         private int testResult = 0; //测试结果
         private int testResult = 0; //测试结果
-        private long schDetailId = 0; //测试方案明细ID
+        private long schId = 0; //方案ID
+        private long globalSchDetailId = 0; //测试方案明细ID
+        private BizTestRecordDtlDto bizTestRecordDtlDto = new BizTestRecordDtlDto(); //测试方案明细表
+        private const string TestMode = "手动测试";
 
 
-        private const string TestMode = "自动测试";
         public AutoTestViewModel(IDialogService dialog, IEventAggregator aggregator, IOptionConfigService optionConfigService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBasicPlcTestSchemeDtlService basicPlcTestSchemeDtlService, IBizTestRecordService iBizTestRecordService, IBizTestRecordDtlService iBizTestRecordDtlService, IMapper mapper, ILogger logger)
         public AutoTestViewModel(IDialogService dialog, IEventAggregator aggregator, IOptionConfigService optionConfigService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBasicPlcTestSchemeDtlService basicPlcTestSchemeDtlService, IBizTestRecordService iBizTestRecordService, IBizTestRecordDtlService iBizTestRecordDtlService, IMapper mapper, ILogger logger)
         {
         {
             _dialog = dialog;
             _dialog = dialog;
@@ -54,18 +56,21 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
             _logger = logger;
             _logger = logger;
             CloseCommand = new DelegateCommand(Close);
             CloseCommand = new DelegateCommand(Close);
             StartCommand = new DelegateCommand<object>(Start);
             StartCommand = new DelegateCommand<object>(Start);
+            PreviousCommand = new DelegateCommand<object>(Previous);
+            NextCommand = new DelegateCommand<object>(Next);
             DoneCommand = new DelegateCommand<object>(Done);
             DoneCommand = new DelegateCommand<object>(Done);
             BeforeConList = new ObservableCollection<BasPlcItemConfigDto>();
             BeforeConList = new ObservableCollection<BasPlcItemConfigDto>();
             InConList = new ObservableCollection<BasPlcItemConfigDto>();
             InConList = new ObservableCollection<BasPlcItemConfigDto>();
             OutConList = new ObservableCollection<BasPlcItemConfigDto>();
             OutConList = new ObservableCollection<BasPlcItemConfigDto>();
             GetConfigOption();
             GetConfigOption();
+
         }
         }
 
 
 
 
 
 
 
 
         #region idialog接口实现
         #region idialog接口实现
-        public string Title { set; get; } = "动测试";
+        public string Title { set; get; } = "动测试";
 
 
         public event Action<IDialogResult> RequestClose;
         public event Action<IDialogResult> RequestClose;
 
 
@@ -88,103 +93,114 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
             {
             {
                 foreach (var item in getMsg)
                 foreach (var item in getMsg)
                 {
                 {
-                    schDetailId = item; //测试方案明细ID
+                    globalSchDetailId = item; //测试方案明细ID
                     int id = Convert.ToInt32(item);
                     int id = Convert.ToInt32(item);
-                    //根据 测试方案明细主键ID 查找测试方案id 及方案名和设备名
-                    var findEntity = _basicPlcTestSchemeDtlService.Find(id);
-                    var findresult = _mapper.Map<bas_plc_test_scheme_dtl, BasicPlcTestSchemeDtlDto>(findEntity);
-                    if (findresult != null)
+                    // 根据 测试方案明细主键ID 查找测试方案id 及方案名和设备名
+                    GetDetailInfo(id);
+
+                }
+
+            }
+        }
+
+        /// <summary>
+        /// //根据 测试方案明细主键ID 查找测试方案id 及方案名和设备名
+        /// </summary>
+        /// <param name="id"></param>
+        private void GetDetailInfo(int schDetailId)
+        {
+            //根据 测试方案明细主键ID 查找测试方案id 及方案名和设备名
+            var findEntity = _basicPlcTestSchemeDtlService.Find(schDetailId);
+            var findresult = _mapper.Map<bas_plc_test_scheme_dtl, BasicPlcTestSchemeDtlDto>(findEntity);
+            if (findresult != null)
+            {
+                //根据方案id 在方案表中查找方案名 设备名
+                schId = findresult.SchemeId.Value; //方案id,方便下一步查找
+                int intSchId = Convert.ToInt32(findresult.SchemeId);
+
+                var findSch = _basicPlcTestSchemeService.Find(intSchId);
+                if (findSch != null)
+                {
+                    ScheduleName = findSch.scheme_name;
+                    DeviceName = findSch.device_name;
+
+                }
+                TestName = findresult.ItemName;
+                SelectTest = findresult.ItemType;
+                //前置项解析
+                string preconStr = findresult.Precondition.ToString();
+                if (!string.IsNullOrEmpty(preconStr))
+                {
+                    JsonModel preconditionModel = JsonConvert.DeserializeObject<JsonModel>(preconStr);
+                    BeforeSelectJudge = preconditionModel.ItemType;
+                    SelectLogic = preconditionModel.ItemLogical;
+                    BeforeDetail = preconditionModel.Description;
+                    BeforeConList.Clear();
+                    foreach (var detail in preconditionModel.DetailInfo)
                     {
                     {
-                        //根据方案id 在方案表中查找方案名 设备名
-                        int schID = Convert.ToInt32(findresult.SchemeId);
-                        var findSch = _basicPlcTestSchemeService.Find(schID);
-                        if (findSch != null)
-                        {
-                            ScheduleName = findSch.scheme_name;
-                            DeviceName = findSch.device_name;
-
-                        }
-                        TestName = findresult.ItemName;
-                        SelectTest = findresult.ItemType;
-                        //前置项解析
-                        string preconStr = findresult.Precondition.ToString();
-                        if (!string.IsNullOrEmpty(preconStr))
-                        {
-                            JsonModel preconditionModel = JsonConvert.DeserializeObject<JsonModel>(preconStr);
-                            BeforeSelectJudge = preconditionModel.ItemType;
-                            SelectLogic = preconditionModel.ItemLogical;
-                            BeforeDetail = preconditionModel.Description;
-                            BeforeConList.Clear();
-                            foreach (var detail in preconditionModel.DetailInfo)
-                            {
-                                BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
-                                basPlcItemConfigDto.PlcItem = detail.PlcItem;
-                                basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
-                                basPlcItemConfigDto.PlcValue = detail.PlcValue;
-                                basPlcItemConfigDto.Remark = detail.Remark;
-                                beforeConList.Add(basPlcItemConfigDto);
-                            }
-                        }
-
-                        //输入项解析
-                        string inStr = findresult.Action.ToString();
-                        if (!string.IsNullOrEmpty(inStr))
-                        {
-                            JsonModel inModel = JsonConvert.DeserializeObject<JsonModel>(inStr);
-                            SelectInJudge = inModel.ItemType;
-                            InSelectLogic = inModel.ItemLogical;
-                            InDetail = inModel.Description;
-                            InConList.Clear();
-                            foreach (var detail in inModel.DetailInfo)
-                            {
-                                BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
-                                basPlcItemConfigDto.PlcItem = detail.PlcItem;
-                                basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
-                                basPlcItemConfigDto.PlcValue = detail.PlcValue;
-                                basPlcItemConfigDto.Remark = detail.Remark;
-                                InConList.Add(basPlcItemConfigDto);
-                            }
-                        }
-
-                        //输出项解析
-                        string outStr = findresult.JudgementResult.ToString();
-                        if (!string.IsNullOrEmpty(outStr))
-                        {
-                            JsonModel outModel = JsonConvert.DeserializeObject<JsonModel>(outStr);
-                            SelectOutJudge = outModel.ItemType;
-                            OutSelectLogic = outModel.ItemLogical;
-                            OutDetail = outModel.Description;
-                            OutConList.Clear();
-                            foreach (var detail in outModel.DetailInfo)
-                            {
-                                BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
-                                basPlcItemConfigDto.PlcItem = detail.PlcItem;
-                                basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
-                                basPlcItemConfigDto.PlcValue = detail.PlcValue;
-                                basPlcItemConfigDto.Remark = detail.Remark;
-                                OutConList.Add(basPlcItemConfigDto);
-                            }
-                        }
+                        BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
+                        basPlcItemConfigDto.PlcItem = detail.PlcItem;
+                        basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
+                        basPlcItemConfigDto.PlcAddType = detail.PlcAddType;
+                        basPlcItemConfigDto.PlcValue = detail.PlcValue;
+                        basPlcItemConfigDto.Remark = detail.Remark;
+                        BeforeConList.Add(basPlcItemConfigDto);
+                    }
+                }
 
 
+                //输入项解析
+                string inStr = findresult.Action.ToString();
+                if (!string.IsNullOrEmpty(inStr))
+                {
+                    JsonModel inModel = JsonConvert.DeserializeObject<JsonModel>(inStr);
+                    SelectInJudge = inModel.ItemType;
+                    InSelectLogic = inModel.ItemLogical;
+                    InDetail = inModel.Description;
+                    InConList.Clear();
+                    foreach (var detail in inModel.DetailInfo)
+                    {
+                        BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
+                        basPlcItemConfigDto.PlcItem = detail.PlcItem;
+                        basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
+                        basPlcItemConfigDto.PlcAddType = detail.PlcAddType;
+                        basPlcItemConfigDto.PlcValue = detail.PlcValue;
+                        basPlcItemConfigDto.Remark = detail.Remark;
+                        InConList.Add(basPlcItemConfigDto);
                     }
                     }
+                }
 
 
+                //输出项解析
+                string outStr = findresult.JudgementResult.ToString();
+                if (!string.IsNullOrEmpty(outStr))
+                {
+                    JsonModel outModel = JsonConvert.DeserializeObject<JsonModel>(outStr);
+                    SelectOutJudge = outModel.ItemType;
+                    OutSelectLogic = outModel.ItemLogical;
+                    OutDetail = outModel.Description;
+                    OutConList.Clear();
+                    foreach (var detail in outModel.DetailInfo)
+                    {
+                        BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
+                        basPlcItemConfigDto.PlcItem = detail.PlcItem;
+                        basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
+                        basPlcItemConfigDto.PlcAddType = detail.PlcAddType;
+                        basPlcItemConfigDto.PlcValue = detail.PlcValue;
+                        basPlcItemConfigDto.Remark = detail.Remark;
+                        OutConList.Add(basPlcItemConfigDto);
+                    }
                 }
                 }
 
 
             }
             }
         }
         }
-
         #endregion
         #endregion
 
 
         #region 私有发方法
         #region 私有发方法
-
-
         /// <summary>
         /// <summary>
-        /// 完成时间
+        /// 增加或更新测试记录
         /// </summary>
         /// </summary>
-        /// <param name="obj"></param>
-        private void Done(object obj)
+        private void AddTestRecord()
         {
         {
-            endTime = DateTime.Now;
+
             //记录记录主表中是否有这个方案的记录,没有则添加
             //记录记录主表中是否有这个方案的记录,没有则添加
             var findRecord = _iBizTestRecordService.FindRecorddBySchname(ScheduleName);
             var findRecord = _iBizTestRecordService.FindRecorddBySchname(ScheduleName);
             if (findRecord == null)
             if (findRecord == null)
@@ -203,6 +219,13 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                 var testRecord = _mapper.Map<BizTestRecordDto, biz_test_record>(bizTestRecordDto);
                 var testRecord = _mapper.Map<BizTestRecordDto, biz_test_record>(bizTestRecordDto);
                 _iBizTestRecordService.Add(testRecord);
                 _iBizTestRecordService.Add(testRecord);
             }
             }
+
+        }
+        /// <summary>
+        /// 增加测试记录明细
+        /// </summary>
+        private void AddTesDtltRecord(long schDetailId)
+        {
             //查找record ID
             //查找record ID
             long recordId = 0;
             long recordId = 0;
             var findRecordID = _iBizTestRecordService.FindRecorddBySchname(ScheduleName);
             var findRecordID = _iBizTestRecordService.FindRecorddBySchname(ScheduleName);
@@ -216,10 +239,9 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
             if (findRecordDetail == null)
             if (findRecordDetail == null)
             {
             {
                 //状态status 没有赋值
                 //状态status 没有赋值
-                BizTestRecordDtlDto bizTestRecordDtlDto = new BizTestRecordDtlDto();
+
                 bizTestRecordDtlDto.RecordId = recordId;
                 bizTestRecordDtlDto.RecordId = recordId;
                 bizTestRecordDtlDto.SchemeDtlId = schDetailId;
                 bizTestRecordDtlDto.SchemeDtlId = schDetailId;
-
                 bizTestRecordDtlDto.StartTestTime = startTime;
                 bizTestRecordDtlDto.StartTestTime = startTime;
                 bizTestRecordDtlDto.FinishTestTime = endTime;
                 bizTestRecordDtlDto.FinishTestTime = endTime;
                 bizTestRecordDtlDto.TestMode = TestMode;
                 bizTestRecordDtlDto.TestMode = TestMode;
@@ -232,22 +254,55 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                 var testRecordDtl = _mapper.Map<BizTestRecordDtlDto, biz_test_record_dtl>(bizTestRecordDtlDto);
                 var testRecordDtl = _mapper.Map<BizTestRecordDtlDto, biz_test_record_dtl>(bizTestRecordDtlDto);
                 _iBizTestRecordDtlService.Add(testRecordDtl);
                 _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 = testResult;
-                _iBizTestRecordDtlService.Edit(findRecordDetail);
-            }
+
+        }
+
+
+        private void UpdateTesDtltRecord()
+        {
+
+            var testRecordDtl = _mapper.Map<BizTestRecordDtlDto, biz_test_record_dtl>(bizTestRecordDtlDto);
+            _iBizTestRecordDtlService.Edit(testRecordDtl);
+        }
+        /// <summary>
+        /// 完成时间
+        /// </summary>
+        /// <param name="obj"></param>
+        private void Done(object obj)
+        {
+            endTime = DateTime.Now;
         }
         }
 
 
         private void Next(object obj)
         private void Next(object obj)
         {
         {
+            ///查找方案下的所有方案明细,并排序,
+            var basicSchDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.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);
+                    //界面显示
+                    GetDetailInfo(id);
+                    //记录记录明细表中是否有这个方案明细ID的记录,没有则添加,有则更新记录状态
+                    var findRecordDetail = _iBizTestRecordDtlService.FindRecordDetailBySchDtlID(schDetailId);
+                    if (findRecordDetail == null)
+                    {
+
+                        //增加测试记录明细
+                        AddTesDtltRecord(globalSchDetailId);
+
+                    }
+                    break;
+
+
+                }
+
 
 
+            }
         }
         }
 
 
         private void Previous(object obj)
         private void Previous(object obj)
@@ -262,9 +317,282 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         {
         {
             //开始时间
             //开始时间
             startTime = DateTime.Now;
             startTime = DateTime.Now;
+            //增加测试记录主表
+            AddTestRecord();
+            //增加测试记录明细表
+            AddTesDtltRecord(globalSchDetailId);
+            //前置项
+            TestPreceditionMethod();
+            MessageBox.Show("前置项测试完成!", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
+            //输入项
+            TestActionMethod();
+            MessageBox.Show("输入项测试完成!", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
+            //输出项
+            TestJudgementMethod();
+            MessageBox.Show("输出项测试完成!", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
+        }
+
+        private void TestPreceditionMethod()
+        {
+            switch (BeforeSelectJudge)
+            {
+                case "人工判定":
+                    //弹出确认的对话框
+                    MessageBoxResult boxResult = MessageBox.Show(BeforeDetail, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
+                    if (boxResult == MessageBoxResult.OK)
+                    {
+                        bizTestRecordDtlDto.PreconditionResult = "合格";
+                        StepIndex = 1;
+                    }
+
+                    break;
+                case "自动判定":
+                    //读取plc的值
+                    switch (SelectLogic)
+                    {
+                        case "NULL":
+                            break;
+                        case "AND":
+                        case "ONLY":
+                            int countCond = 0;
+                            foreach (var item in BeforeConList)
+                            {
+                                string plcAddress = item.PlcAddress;
+                                string plcAddType = item.PlcAddType;
+                                string plcValue = item.PlcValue;
+
+                                switch (plcAddType)
+                                {
+                                    case "bool":
+                                        // string readResult = PLCCom.GetInstance().ReadPlcObject(plcAddress, VarType.Bit);
+                                        ///实时值记录
+                                        string readResult = "1";
+                                        item.RealValue = readResult;
+                                        item.TestTime = DateTime.Now;
+                                        if (readResult.Trim() == plcValue.Trim())
+                                        {
+                                            item.TestResult = "合格";
+                                            countCond++;
+                                        }
+                                        else
+                                        {
+                                            item.TestResult = "不合格";
+                                        }
+
+                                        break;
+                                    case "word":
+                                        break;
+
+                                }
+
+                            }
+                            //测试记录存入数据库
+                            //前置项测试结果json转化
+                            string prefixJsonStr = ModelToJsonToStr(BeforeSelectJudge, SelectLogic, BeforeDetail, BeforeConList);
+                            //json字符串
+                            bizTestRecordDtlDto.PreconditionFinal = prefixJsonStr;
+                            //条件满足
+                            if (countCond == BeforeConList.Count)
+                            {
+                                bizTestRecordDtlDto.PreconditionResult = "合格";
+                                StepIndex = 1;
+                            }
+                            else
+                            {
+                                bizTestRecordDtlDto.PreconditionResult = "不合格";
+                            }
+
+                            break;
+                        case "OR":
+                            break;
+
+                        case "ORDER":
+                            break;
+                    }
+                    break;
+            }
+            //更新测试记录
+            UpdateTesDtltRecord();
+        }
+        private void TestActionMethod()
+        {
+            switch (SelectInJudge)
+            {
+                case "人工判定":
+                    //弹出确认的对话框
+                    MessageBoxResult boxResult = MessageBox.Show(InDetail, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
+                    if (boxResult == MessageBoxResult.OK)
+                    {
+                        bizTestRecordDtlDto.ActionResult = "合格";
+                        StepIndex = 2;
+                    }
+
+                    break;
+                case "自动判定":
+                    //读取plc的值
+                    switch (InSelectLogic)
+                    {
+                        case "NULL":
+                            break;
+                        case "AND":
+                        case "ONLY":
+                            int countCond = 0;
+                            foreach (var item in InConList)
+                            {
+                                string plcAddress = item.PlcAddress;
+                                string plcAddType = item.PlcAddType;
+                                string plcValue = item.PlcValue;
+
+                                switch (plcAddType)
+                                {
+                                    case "bool":
+
+                                        DialogParameters parm = new DialogParameters();
+                                        parm.Add("Key", plcAddress);
+                                        parm.Add("Key2", plcValue);
+                                        //弹出写入对话框
+                                        _dialog.ShowDialog("WritePLCView", parm, async callback =>
+                                        {
+                                            if (callback.Result == ButtonResult.OK)
+                                            {
+                                                // bool writeResult = PLCCom.GetInstance().WritePlcObject(plcAddress, VarType.Bit, plcValue);
+                                                ///实时值记录
+                                                bool writeResult = true;
+                                                item.TestTime = DateTime.Now;
+                                                if (writeResult)
+                                                {
+                                                    ///单个测试项合格
+                                                    item.TestResult = "合格";
+                                                }
+                                                else
+                                                {
+                                                    item.TestResult = "不合格";
+                                                }
+                                            }
+
+                                        });
+
+
+
+
+                                        break;
+                                    case "word":
+                                        break;
+
+                                }
+
+                            }
+                            //测试记录存入数据库
+                            //前置项测试结果json转化
+                            string actionJsonStr = ModelToJsonToStr(SelectInJudge, InSelectLogic, InDetail, InConList);
+                            //json字符串
+                            bizTestRecordDtlDto.ActionFinal = actionJsonStr;
+                            //条件满足
+                            if ((countCond == InConList.Count) && (countCond != 0))
+                            {
+                                bizTestRecordDtlDto.ActionResult = "合格";
+                                StepIndex = 2;
+                            }
+                            else
+                            {
+                                bizTestRecordDtlDto.ActionResult = "不合格";
+                            }
 
 
+                            break;
+                        case "OR":
+                            break;
+
+                        case "ORDER":
+                            break;
+                    }
+                    break;
+            }
+            //更新测试记录
+            UpdateTesDtltRecord();
         }
         }
+        private void TestJudgementMethod()
+        {
+            switch (SelectOutJudge)
+            {
+                case "人工判定":
+                    //弹出确认的对话框
+                    MessageBoxResult boxResult = MessageBox.Show(OutDetail, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Information);
+                    if (boxResult == MessageBoxResult.OK)
+                    {
+                        bizTestRecordDtlDto.JudgementResult = "合格";
+                        StepIndex = 3;
+                    }
 
 
+                    break;
+                case "自动判定":
+                    //读取plc的值
+                    switch (OutSelectLogic)
+                    {
+                        case "NULL":
+                            break;
+                        case "AND":
+                        case "ONLY":
+                            int countCond = 0;
+                            foreach (var item in OutConList)
+                            {
+                                string plcAddress = item.PlcAddress;
+                                string plcAddType = item.PlcAddType;
+                                string plcValue = item.PlcValue;
+
+                                switch (plcAddType)
+                                {
+
+                                    case "bool":
+                                        //string readResult = PLCCom.GetInstance().ReadPlcObject(plcAddress, VarType.Bit);
+                                        string readResult = "1";
+                                        ///实时值记录
+                                        item.RealValue = readResult;
+                                        item.TestTime = DateTime.Now;
+                                        if (readResult.Trim() == plcValue.Trim())
+                                        {
+                                            item.TestResult = "合格";
+                                            countCond++;
+                                        }
+                                        else
+                                        {
+                                            item.TestResult = "不合格";
+                                        }
+
+                                        break;
+                                    case "word":
+                                        break;
+
+                                }
+
+                            }
+                            //测试记录存入数据库
+                            //前置项测试结果json转化
+                            string prefixJsonStr = ModelToJsonToStr(BeforeSelectJudge, SelectLogic, BeforeDetail, BeforeConList);
+                            //json字符串
+                            bizTestRecordDtlDto.JudgementResultFinal = prefixJsonStr;
+                            //条件满足
+                            if ((countCond == OutConList.Count) && (countCond != 0))
+                            {
+                                bizTestRecordDtlDto.JudgementResult = "合格";
+                                StepIndex = 3;
+                            }
+                            else
+                            {
+                                bizTestRecordDtlDto.JudgementResult = "不合格";
+                            }
+
+                            break;
+                        case "OR":
+                            break;
+
+                        case "ORDER":
+                            break;
+                    }
+                    break;
+            }
+            //更新测试记录
+            UpdateTesDtltRecord();
+        }
         /// <summary>
         /// <summary>
         /// 获取配置
         /// 获取配置
         /// </summary>
         /// </summary>
@@ -338,7 +666,11 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                 DetailPLC plcItem = new DetailPLC();
                 DetailPLC plcItem = new DetailPLC();
                 plcItem.PlcItem = item.PlcItem;
                 plcItem.PlcItem = item.PlcItem;
                 plcItem.PlcAddress = item.PlcAddress;
                 plcItem.PlcAddress = item.PlcAddress;
+                plcItem.PlcAddType = item.PlcAddType;
                 plcItem.PlcValue = item.PlcValue;
                 plcItem.PlcValue = item.PlcValue;
+                plcItem.RealValue = item.RealValue;
+                plcItem.TestTime = item.TestTime;
+                plcItem.TestResult = item.TestResult;
                 plcItem.Remark = item.Remark;
                 plcItem.Remark = item.Remark;
                 prefixJsonModel.DetailInfo.Add(plcItem);
                 prefixJsonModel.DetailInfo.Add(plcItem);
 
 
@@ -347,7 +679,6 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
             return prefixJsonStr;
             return prefixJsonStr;
         }
         }
 
 
-
         #endregion
         #endregion
 
 
 
 
@@ -355,7 +686,10 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         public DelegateCommand CloseCommand { set; get; }
         public DelegateCommand CloseCommand { set; get; }
 
 
         public DelegateCommand<object> StartCommand { set; get; }
         public DelegateCommand<object> StartCommand { set; get; }
-   
+        public DelegateCommand<object> PreviousCommand { set; get; }
+
+        public DelegateCommand<object> NextCommand { set; get; }
+
         public DelegateCommand<object> DoneCommand { set; get; }
         public DelegateCommand<object> DoneCommand { set; get; }