Browse Source

添加方案编辑

user_lt 1 year ago
parent
commit
5f1142ba4c

+ 15 - 0
BlankApp1/BizService/BasicPlcTestSchemeDtlService.cs

@@ -9,9 +9,24 @@ namespace BizService
 {
     public class BasicPlcTestSchemeDtlService : BaseService<bas_plc_test_scheme_dtl>, IBasicPlcTestSchemeDtlService
     {
+        /// <summary>
+        /// 根据方案id查找所有的方案明细
+        /// </summary>
+        /// <param name="schemeId"></param>
+        /// <returns></returns>
         public List<bas_plc_test_scheme_dtl> FindAllBySchId(long schemeId)
         {
             return base.GetList(x => x.scheme_id == schemeId);
         }
+        /// <summary>
+        /// 根据 方案id和测试项名称 查找方案明细schdtlID,主要用在更新中
+        /// </summary>
+        /// <param name="schemeId"></param>
+        /// <returns></returns>
+        public bas_plc_test_scheme_dtl FindSchDtlIdBySchIdAndItem(long schemeId,string itemName)
+        {
+            
+            return base.GetFirst(x => (x.scheme_id == schemeId)&&(x.item_name==itemName));
+        }
     }
 }

+ 6 - 0
BlankApp1/BizService/IBasicPlcTestSchemeDtlService.cs

@@ -15,5 +15,11 @@ namespace BizService
         /// <param name="schemeName"></param>
         /// <returns></returns>
         public List<bas_plc_test_scheme_dtl> FindAllBySchId(long schemeId);
+        /// <summary>
+        /// 根据 方案id和测试项名称 查找方案明细schdtlID,主要用在更新中
+        /// </summary>
+        /// <param name="schemeId"></param>
+        /// <returns></returns>
+        public bas_plc_test_scheme_dtl FindSchDtlIdBySchIdAndItem(long schemeId, string itemName);
     }
 }

+ 20 - 1
BlankApp1/BlankApp1/Common/AutoMapper/AutoMapProfile.cs

@@ -36,9 +36,10 @@ namespace BlankApp1.Common.AutoMapper
                 .ForMember(dest => dest.Remark, opt => opt.MapFrom(src => src.remark)).ReverseMap();
 
             CreateMap<bas_plc_test_scheme_dtl, BasicPlcTestSchemeDtlDto>()
+                .ForMember(dest => dest.SchemeDtlId, opt => opt.MapFrom(src => src.scheme_dtl_id))
                 .ForMember(dest => dest.SchemeId, opt => opt.MapFrom(src => src.scheme_id))
                 .ForMember(dest => dest.ItemName, opt => opt.MapFrom(src => src.item_name))
-                 .ForMember(dest => dest.ItemType, opt => opt.MapFrom(src => src.item_type))
+                 .ForMember(dest => dest.ItemType, opt => opt.MapFrom(src => ItemTypeToStr(src.item_type)))
                   .ForMember(dest => dest.Precondition, opt => opt.MapFrom(src => src.precondition))
                    .ForMember(dest => dest.PreconditionDescribe, opt => opt.MapFrom(src => src.precondition_describe))
                     .ForMember(dest => dest.Action, opt => opt.MapFrom(src => src.action))
@@ -53,6 +54,24 @@ namespace BlankApp1.Common.AutoMapper
 
         }
 
+        private string ItemTypeToStr(int? type)
+        {
+            string itemStr = string.Empty; ;
+            switch(type) 
+            {
+                case 0:
+                    itemStr = "前置项";
+                    break;
+                case 1:
+                    itemStr = "PLC点位测试项";
+                    break;
+                case 2:
+                    itemStr = "Robot动作测试";
+                    break;
+            }
+            return itemStr;
+        }
+
 
     }
 }

+ 70 - 41
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/AddPlanViewModel.cs

@@ -10,6 +10,7 @@ using Prism.Commands;
 using Prism.Events;
 using Prism.Mvvm;
 using Prism.Services.Dialogs;
+using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Collections.ObjectModel;
@@ -49,7 +50,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             DeleteBeforeCommand = new DelegateCommand<Object>(DeleteBefore);
             DeleteInCommand = new DelegateCommand<object>(DeleteIn);
             DeleteOutCommand = new DelegateCommand<object>(DeleteOut);
-              BeforeConList = new ObservableCollection<BasPlcItemConfigDto>();
+            BeforeConList = new ObservableCollection<BasPlcItemConfigDto>();
             InConList = new ObservableCollection<BasPlcItemConfigDto>();
             OutConList = new ObservableCollection<BasPlcItemConfigDto>();
             GetConfigOption();
@@ -79,14 +80,15 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             {
                 foreach (var item in getMsg)
                 {
-                    Title = "修改方案";
+                    Title = "编辑方案";
                     int id = Convert.ToInt32(item);
                     //根据 测试方案明细主键ID 查找测试方案id 及方案名和设备名
-                    var findresult=_basicPlcTestSchemeDtlService.Find(id);
-                    if(findresult != null)
+                    var findEntity=_basicPlcTestSchemeDtlService.Find(id);
+                    var findresult = _mapper.Map<bas_plc_test_scheme_dtl, BasicPlcTestSchemeDtlDto>(findEntity);
+                    if (findresult != null)
                     {
                         //根据方案id 在方案表中查找方案名 设备名
-                        int schID =Convert.ToInt32( findresult.scheme_id);
+                        int schID =Convert.ToInt32( findresult.SchemeId);
                         var findSch=_basicPlcTestSchemeService.Find(schID);
                         if(findSch != null )
                         {
@@ -94,10 +96,10 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
                             DeviceName = findSch.device_name;
                            
                         }
-                        TestName = findresult.item_name;
-                        //SelectTest = findresult.item_type;
+                        TestName = findresult.ItemName;
+                        SelectTest = findresult.ItemType;
                         //前置项解析
-                        string preconStr = findresult.precondition.ToString();
+                        string preconStr = findresult.Precondition.ToString();
                         JsonModel preconditionModel = JsonConvert.DeserializeObject<JsonModel>(preconStr);
                         BeforeSelectJudge = preconditionModel.ItemType;
                         SelectLogic = preconditionModel.ItemLogical;
@@ -113,7 +115,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
                             beforeConList.Add(basPlcItemConfigDto);
                         }
                         //输入项解析
-                        string inStr = findresult.action.ToString();
+                        string inStr = findresult.Action.ToString();
                         JsonModel inModel = JsonConvert.DeserializeObject<JsonModel>(inStr);
                         SelectInJudge = inModel.ItemType;
                         InSelectLogic = inModel.ItemLogical;
@@ -129,7 +131,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
                             InConList.Add(basPlcItemConfigDto);
                         }
                         //输出项解析
-                        string outStr = findresult.judgement_result.ToString();
+                        string outStr = findresult.JudgementResult.ToString();
                         JsonModel outModel = JsonConvert.DeserializeObject<JsonModel>(outStr);
                         SelectOutJudge = outModel.ItemType;
                         OutSelectLogic = outModel.ItemLogical;
@@ -335,33 +337,41 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
         /// <param name="obj"></param>
         private void Sure(string obj)
         {
-            var finsSche = _basicPlcTestSchemeService.FindByName(ScheduleName);
-            if( finsSche != null )
+            if(Title=="新增方案")
             {
-                MessageBoxResult boxResult = MessageBox.Show("测试方案名称已存在,请填写其他名称", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
-                return;
+                var finsSche = _basicPlcTestSchemeService.FindByName(ScheduleName);
+                if (finsSche != null)
+                {
+                    MessageBoxResult boxResult = MessageBox.Show("测试方案名称已存在,请填写其他名称", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
+                    return;
+                }
+                //增加测试方案到数据库
+                BasicPlcTestSchemeDto schDto = new BasicPlcTestSchemeDto();
+                schDto.SchemeName = ScheduleName;
+                schDto.DeviceName = DeviceName;
+                schDto.CreateBy = Appsession.UserName;
+                schDto.CreateTime = DateTime.Now;
+                schDto.UpdateTime = DateTime.Now;
+                schDto.UpdateBy = Appsession.UserName;
+                bas_plc_test_scheme schEntity = _mapper.Map<BasicPlcTestSchemeDto, bas_plc_test_scheme>(schDto);
+                _basicPlcTestSchemeService.Add(schEntity);
             }
-            //增加测试方案到数据库
-            BasicPlcTestSchemeDto schDto=new BasicPlcTestSchemeDto();
-            schDto.SchemeName = ScheduleName;
-            schDto.DeviceName = DeviceName;
-            schDto.CreateBy = Appsession.UserName;
-            schDto.CreateTime= DateTime.Now;    
-            schDto.UpdateTime = DateTime.Now;
-            schDto.UpdateBy = Appsession.UserName;
-            bas_plc_test_scheme schEntity = _mapper.Map<BasicPlcTestSchemeDto, bas_plc_test_scheme>(schDto);
-            _basicPlcTestSchemeService.Add(schEntity);
+         
             //查找测试方案id
             var finsScheHave = _basicPlcTestSchemeService.FindByName(ScheduleName);
-            long id = finsScheHave.scheme_id;
-            AddDetailsToDb(id);
+            if(finsScheHave != null)
+            {
+                long id = finsScheHave.scheme_id;
+                //增加或修改方案明细表
+                AddOrEditDetailsToDb(id);
+                RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
+            }
 
-            RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
         }
         /// <summary>
         /// 方案明细添加到数据库
         /// </summary>
-        private void AddDetailsToDb(long scheduleId)
+        private void AddOrEditDetailsToDb(long scheduleId)
         {
             //前置项json转化
             string prefixJsonStr=ModelToJsonToStr(BeforeSelectJudge, SelectLogic, BeforeDetail, BeforeConList);
@@ -374,18 +384,8 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             BasicPlcTestSchemeDtlDto schDtlDto = new BasicPlcTestSchemeDtlDto();
             schDtlDto.SchemeId = scheduleId;
             schDtlDto.ItemName = TestName;
-            switch (SelectTest)
-            {
-                case "前置项":
-                    schDtlDto.ItemType = 0;
-                    break;
-                case "PLC点位测试项":
-                    schDtlDto.ItemType = 1;
-                    break;
-                case "Robot动作测试":
-                    schDtlDto.ItemType = 2;
-                    break;
-            }
+            
+            schDtlDto.ItemType = SelectTest;
             schDtlDto.Precondition = prefixJsonStr;
             schDtlDto.PreconditionDescribe = BeforeDetail;
             schDtlDto.Action = inJsonStr;
@@ -397,7 +397,36 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             schDtlDto.UpdateTime = DateTime.Now;
             schDtlDto.UpdateBy = Appsession.UserName;
             bas_plc_test_scheme_dtl schDtlEntity = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
-            _basicPlcTestSchemeDtlService.Add(schDtlEntity);
+            if(Title=="新增方案")
+            {
+                _basicPlcTestSchemeDtlService.Add(schDtlEntity);
+            }
+            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)
+                        {
+                            MessageBoxResult boxResult = MessageBox.Show("更新成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
+                        }
+                        else
+                        {
+                            MessageBoxResult boxResult = MessageBox.Show("更新失败", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
+                            return;
+                        }
+
+                    }
+               
+                }
+            }
+            
         }
         /// <summary>
         /// mode转json

+ 2 - 2
BlankApp1/Model/Dto/BasicPlcTestSchemeDtlDto.cs

@@ -49,8 +49,8 @@ namespace Model.Dto
         /// Default:
         /// Nullable:True
         /// </summary>           
-        private int? item_type { get; set; }
-        public int? ItemType
+        private string item_type { get; set; }
+        public string ItemType
         {
             get { return item_type; }
             set { item_type = value; OnPropertyChanged(); }