user_lt 1 год назад
Родитель
Сommit
1ecac99270

+ 17 - 0
BlankApp1/BizService/BizTestRecordDtlService.cs

@@ -0,0 +1,17 @@
+using Model.Entities;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BizService
+{
+    public class BizTestRecordDtlService : BaseService<biz_test_record_dtl>, IBizTestRecordDtlService
+    {
+        public biz_test_record_dtl FindRecordDetailBySchDtlID(long schDtlID)
+        {
+            return base.GetFirst(x => x.scheme_dtl_id == schDtlID);
+        }
+    }
+}

+ 17 - 0
BlankApp1/BizService/BizTestRecordService.cs

@@ -0,0 +1,17 @@
+using Model.Entities;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BizService
+{
+    public class BizTestRecordService : BaseService<biz_test_record>, IBizTestRecordService
+    {
+        public biz_test_record FindRecorddBySchname(string schName)
+        {
+            return base.GetFirst(x => x.scheme_name == schName);
+        }
+    }
+}

+ 18 - 0
BlankApp1/BizService/IBizTestRecordDtlService.cs

@@ -0,0 +1,18 @@
+using Model.Entities;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BizService
+{
+    public  interface IBizTestRecordDtlService : IBaseService<biz_test_record_dtl>
+    {/// <summary>
+     /// 根据 测试方案明细查找 记录记录明细表中是否有这个测试项的记录
+     /// </summary>
+     /// <param name="schemeId"></param>
+     /// <returns></returns>
+        public biz_test_record_dtl FindRecordDetailBySchDtlID(long schDtlID);
+    }
+}

+ 18 - 0
BlankApp1/BizService/IBizTestRecordService.cs

@@ -0,0 +1,18 @@
+using Model.Entities;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BizService
+{
+    public interface IBizTestRecordService : IBaseService<biz_test_record>
+    {   /// <summary>
+        /// 根据 方案名查找是 记录主表中是否有这个方案的记录
+        /// </summary>
+        /// <param name="schemeId"></param>
+        /// <returns></returns>
+        public biz_test_record FindRecorddBySchname(string schName);
+    }
+}

+ 29 - 0
BlankApp1/BlankApp1/Common/AutoMapper/AutoMapProfile.cs

@@ -53,6 +53,35 @@ namespace BlankApp1.Common.AutoMapper
                 .ForMember(dest => dest.UpdateBy, opt => opt.MapFrom(src => src.update_by))
                 .ForMember(dest => dest.Remark, opt => opt.MapFrom(src => src.remark)).ReverseMap();
 
+            CreateMap<biz_test_record, BizTestRecordDto>()
+                 .ForMember(dest => dest.RecordId, opt => opt.MapFrom(src => src.record_id))
+                  .ForMember(dest => dest.RecordName, opt => opt.MapFrom(src => src.record_name))
+                   .ForMember(dest => dest.SchemeName, opt => opt.MapFrom(src => src.scheme_name))
+                    .ForMember(dest => dest.Tester, opt => opt.MapFrom(src => src.tester))
+                     .ForMember(dest => dest.StartTestTime, opt => opt.MapFrom(src => src.start_test_time))
+                      .ForMember(dest => dest.FinishTestTime, opt => opt.MapFrom(src => src.finish_test_time))
+                       .ForMember(dest => dest.Status, opt => opt.MapFrom(src => src.status))
+                        .ForMember(dest => dest.CreateBy, opt => opt.MapFrom(src => src.create_by))
+                         .ForMember(dest => dest.CreateTime, opt => opt.MapFrom(src => src.create_time))
+                          .ForMember(dest => dest.UpdateTime, opt => opt.MapFrom(src => src.update_time))
+                                .ForMember(dest => dest.UpdateBy, opt => opt.MapFrom(src => src.update_by))
+                         .ForMember(dest => dest.Remark, opt => opt.MapFrom(src => src.remark)).ReverseMap();
+
+
+            CreateMap<biz_test_record_dtl, BizTestRecordDtlDto>()
+                .ForMember(dest => dest.RecordDtlId, opt => opt.MapFrom(src => src.record_dtl_id))
+                 .ForMember(dest => dest.RecordId, opt => opt.MapFrom(src => src.record_id))
+                   .ForMember(dest => dest.SchemeDtlId, opt => opt.MapFrom(src => src.scheme_dtl_id))
+                     .ForMember(dest => dest.StartTestTime, opt => opt.MapFrom(src => src.start_test_time))
+                      .ForMember(dest => dest.FinishTestTime, opt => opt.MapFrom(src => src.finish_test_time))
+                       .ForMember(dest => dest.TestResult, opt => opt.MapFrom(src => src.test_result))
+                       .ForMember(dest => dest.Status, opt => opt.MapFrom(src => src.status))
+                        .ForMember(dest => dest.CreateBy, opt => opt.MapFrom(src => src.create_by))
+                         .ForMember(dest => dest.CreateTime, opt => opt.MapFrom(src => src.create_time))
+                          .ForMember(dest => dest.UpdateTime, opt => opt.MapFrom(src => src.update_time))
+                             .ForMember(dest => dest.UpdateBy, opt => opt.MapFrom(src => src.update_by))
+                         .ForMember(dest => dest.Remark, opt => opt.MapFrom(src => src.remark)).ReverseMap();
+
         }
 
         private string ItemTypeToStr(int? type)

+ 1 - 72
BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/AutoTestViewModel.cs

@@ -216,78 +216,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
       
  
       
-        /// <summary>
-        /// 方案明细添加到数据库
-        /// </summary>
-        private void AddOrEditDetailsToDb(long scheduleId)
-        {
-            //前置项json转化
-            string prefixJsonStr = ModelToJsonToStr(BeforeSelectJudge, SelectLogic, BeforeDetail, BeforeConList);
-            //输入项json转化
-            string inJsonStr = ModelToJsonToStr(SelectInJudge, InSelectLogic, InDetail, InConList);
-            //输出项json转化
-            string outJsonStr = ModelToJsonToStr(SelectOutJudge, OutSelectLogic, OutDetail, OutConList);
-            //添加达到测试主表
-            //增加测试方案
-            BasicPlcTestSchemeDtlDto schDtlDto = new BasicPlcTestSchemeDtlDto();
-            schDtlDto.SchemeId = scheduleId;
-            schDtlDto.ItemName = TestName;
-
-            schDtlDto.ItemType = SelectTest;
-            schDtlDto.Precondition = prefixJsonStr;
-            schDtlDto.PreconditionDescribe = BeforeDetail;
-            schDtlDto.Action = inJsonStr;
-            schDtlDto.ActionDescribe = InDetail;
-            schDtlDto.JudgementResult = outJsonStr;
-            schDtlDto.JudgementResultDescribe = OutDetail;
-            schDtlDto.CreateBy = Appsession.UserName;
-            schDtlDto.CreateTime = DateTime.Now;
-            schDtlDto.UpdateTime = DateTime.Now;
-            schDtlDto.UpdateBy = Appsession.UserName;
-            bas_plc_test_scheme_dtl schDtlEntity = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
-            if (Title == "新增方案")
-            {
-
-                bool isAddSucc = _basicPlcTestSchemeDtlService.Add(schDtlEntity);
-                if (isAddSucc)
-                {
-                    _logger.Info($"新增方案成功。方案名{ScheduleName},测试项{TestName}");
-                    MessageBoxResult boxResult = MessageBox.Show("更新成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
-                }
-                else
-                {
-                    MessageBoxResult boxResult = MessageBox.Show("更新失败", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
-                    return;
-                }
-            }
-            else
-            {
-                if (Title == "编辑方案")
-                {
-                    //修改 必须给主键SchemeDtlId值
-                    var schDtl = _basicPlcTestSchemeDtlService.FindSchDtlIdBySchIdAndItem(scheduleId, TestName);
-                    if (schDtl != null)
-                    {
-                        schDtlDto.SchemeDtlId = schDtl.scheme_dtl_id;
-                        bas_plc_test_scheme_dtl schDtlEntityEdit = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
-                        bool isSucc = _basicPlcTestSchemeDtlService.Edit(schDtlEntityEdit);
-                        if (isSucc)
-                        {
-                            _logger.Info($"更新方案成功。方案名{ScheduleName},测试项{TestName}");
-                            MessageBoxResult boxResult = MessageBox.Show("更新成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
-                        }
-                        else
-                        {
-                            MessageBoxResult boxResult = MessageBox.Show("更新失败", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
-                            return;
-                        }
-
-                    }
-
-                }
-            }
-
-        }
+   
         /// <summary>
         /// mode转json
         /// </summary>

+ 79 - 76
BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/ManualTestViewModel.cs

@@ -16,6 +16,7 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows;
+using WPFDevelopers.Controls.Runtimes.Shell32;
 
 namespace PLCTool.ViewModels.BusinessManageViewModel
 {
@@ -28,16 +29,26 @@ 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 ManualTestViewModel(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 ManualTestViewModel(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);
@@ -78,7 +89,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);
@@ -168,10 +179,70 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         #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 = 1;//测试状态赋值为1
+            //记录记录明细表中是否有这个方案明细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)
@@ -189,6 +260,8 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         /// <param name="obj"></param>
         private void Start(object obj)
         {
+            //开始时间
+            startTime = DateTime.Now;
 
         }
 
@@ -242,78 +315,8 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
 
 
 
-        /// <summary>
-        /// 方案明细添加到数据库
-        /// </summary>
-        private void AddOrEditDetailsToDb(long scheduleId)
-        {
-            //前置项json转化
-            string prefixJsonStr = ModelToJsonToStr(BeforeSelectJudge, SelectLogic, BeforeDetail, BeforeConList);
-            //输入项json转化
-            string inJsonStr = ModelToJsonToStr(SelectInJudge, InSelectLogic, InDetail, InConList);
-            //输出项json转化
-            string outJsonStr = ModelToJsonToStr(SelectOutJudge, OutSelectLogic, OutDetail, OutConList);
-            //添加达到测试主表
-            //增加测试方案
-            BasicPlcTestSchemeDtlDto schDtlDto = new BasicPlcTestSchemeDtlDto();
-            schDtlDto.SchemeId = scheduleId;
-            schDtlDto.ItemName = TestName;
-
-            schDtlDto.ItemType = SelectTest;
-            schDtlDto.Precondition = prefixJsonStr;
-            schDtlDto.PreconditionDescribe = BeforeDetail;
-            schDtlDto.Action = inJsonStr;
-            schDtlDto.ActionDescribe = InDetail;
-            schDtlDto.JudgementResult = outJsonStr;
-            schDtlDto.JudgementResultDescribe = OutDetail;
-            schDtlDto.CreateBy = Appsession.UserName;
-            schDtlDto.CreateTime = DateTime.Now;
-            schDtlDto.UpdateTime = DateTime.Now;
-            schDtlDto.UpdateBy = Appsession.UserName;
-            bas_plc_test_scheme_dtl schDtlEntity = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
-            if (Title == "新增方案")
-            {
-
-                bool isAddSucc = _basicPlcTestSchemeDtlService.Add(schDtlEntity);
-                if (isAddSucc)
-                {
-                    _logger.Info($"新增方案成功。方案名{ScheduleName},测试项{TestName}");
-                    MessageBoxResult boxResult = MessageBox.Show("更新成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
-                }
-                else
-                {
-                    MessageBoxResult boxResult = MessageBox.Show("更新失败", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
-                    return;
-                }
-            }
-            else
-            {
-                if (Title == "编辑方案")
-                {
-                    //修改 必须给主键SchemeDtlId值
-                    var schDtl = _basicPlcTestSchemeDtlService.FindSchDtlIdBySchIdAndItem(scheduleId, TestName);
-                    if (schDtl != null)
-                    {
-                        schDtlDto.SchemeDtlId = schDtl.scheme_dtl_id;
-                        bas_plc_test_scheme_dtl schDtlEntityEdit = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
-                        bool isSucc = _basicPlcTestSchemeDtlService.Edit(schDtlEntityEdit);
-                        if (isSucc)
-                        {
-                            _logger.Info($"更新方案成功。方案名{ScheduleName},测试项{TestName}");
-                            MessageBoxResult boxResult = MessageBox.Show("更新成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
-                        }
-                        else
-                        {
-                            MessageBoxResult boxResult = MessageBox.Show("更新失败", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
-                            return;
-                        }
-
-                    }
-
-                }
-            }
-
-        }
+     
+     
         /// <summary>
         /// mode转json
         /// </summary>

+ 90 - 0
BlankApp1/Model/Dto/BizTestRecordDtlDto.cs

@@ -0,0 +1,90 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Model.Dto
+{
+    public class BizTestRecordDtlDto
+    {
+        public long RecordDtlId { get; set; }
+
+        /// <summary>
+        /// Desc:测试记录表主键ID
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public long? RecordId { get; set; }
+
+        /// <summary>
+        /// Desc:测试方案明细主键ID
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        public long SchemeDtlId { get; set; }
+
+        /// <summary>
+        /// Desc:开始测试时间
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? StartTestTime { get; set; }
+
+        /// <summary>
+        /// Desc:测试完成时间
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? FinishTestTime { get; set; }
+
+        /// <summary>
+        /// Desc:测试项结果。0:NO 不通过;1:YES 通过
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? TestResult { get; set; }
+
+        /// <summary>
+        /// Desc:测试记录明细状态。0:未测试。99:已测试。
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public int? Status { get; set; }
+
+        /// <summary>
+        /// Desc:创建者
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string CreateBy { get; set; }
+
+        /// <summary>
+        /// Desc:创建时间
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? CreateTime { get; set; }
+
+        /// <summary>
+        /// Desc:更新者
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string UpdateBy { get; set; }
+
+        /// <summary>
+        /// Desc:更新时间
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? UpdateTime { get; set; }
+
+        /// <summary>
+        /// Desc:备注
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string Remark { get; set; }
+    }
+}

+ 96 - 0
BlankApp1/Model/Dto/BizTestRecordDto.cs

@@ -0,0 +1,96 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Model.Dto
+{
+    public  class BizTestRecordDto
+    {   /// <summary>
+        /// Desc:测试记录表主键ID
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+       
+        public long RecordId { get; set; }
+
+        /// <summary>
+        /// Desc:测试记录名称
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        public string RecordName { get; set; }
+
+        /// <summary>
+        /// Desc:测试方案名称
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        public string SchemeName { get; set; }
+
+        /// <summary>
+        /// Desc:测试人员
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        public string Tester { get; set; }
+
+        /// <summary>
+        /// Desc:开始测试时间
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? StartTestTime { get; set; }
+
+        /// <summary>
+        /// Desc:测试完成时间
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public DateTime? FinishTestTime { get; set; }
+
+        /// <summary>
+        /// Desc:测试记录主表状态。0:未完成;99:已完成;100:强制完成;111:删除。
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        public int Status { get; set; }
+
+        /// <summary>
+        /// Desc:创建者
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        public string CreateBy { get; set; }
+
+        /// <summary>
+        /// Desc:创建时间
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        public DateTime CreateTime { get; set; }
+
+        /// <summary>
+        /// Desc:更新者
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        public string UpdateBy { get; set; }
+
+        /// <summary>
+        /// Desc:更新时间
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        public DateTime UpdateTime { get; set; }
+
+        /// <summary>
+        /// Desc:备注
+        /// Default:
+        /// Nullable:True
+        /// </summary>           
+        public string Remark { get; set; }
+    }
+}