소스 검색

添加sort字段

ltwork 1 년 전
부모
커밋
e97bbf9068

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

@@ -40,6 +40,7 @@ namespace BlankApp1.Common.AutoMapper
                 .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.Sort, opt => opt.MapFrom(src => src.sort))
                      .ForMember(dest => dest.ItemTime, opt => opt.MapFrom(src => src.item_time))
                  .ForMember(dest => dest.ItemType, opt => opt.MapFrom(src => ItemTypeToStr(src.item_type)))
                   .ForMember(dest => dest.Precondition, opt => opt.MapFrom(src => src.precondition))

+ 15 - 0
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/AddItemDetailViewModel.cs

@@ -509,6 +509,21 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             schDtlDto.UpdateBy = Appsession.UserName;
             bas_plc_test_scheme_dtl schDtlEntity = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
             schDtlEntity.item_type = StrToItemType(schDtlDto.ItemType);
+            //计算排序
+            int sort = 0;
+            var findSorts = _basicPlcTestSchemeDtlService.FindAllBySchId((int)scheduleId);
+            if (findSorts.Count != 0)
+            {
+                int maxSort = findSorts.Select(x => x.sort).Max();
+                maxSort++;
+                sort = maxSort;
+            }
+            else
+            {
+                sort = 1;
+            }
+
+            schDtlEntity.sort = sort;
             try
             {
                 

+ 21 - 11
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/AddSchViewModel.cs

@@ -150,25 +150,20 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
                 long schID = findSche.scheme_id;
                 //查找此方案下的所有的测试项,并
                 var schDtls = _basicPlcTestSchemeDtlService.QueryList()?.FindAll(x => x.scheme_id == schID);
-                //先删除
-                foreach (var unit in schDtls)
-                {
-                    int id =Convert.ToInt32( unit.scheme_dtl_id);
-                    _basicPlcTestSchemeDtlService.Delete(id);
 
-                 
-                }
-                //按照调整后的顺序添加
+                //按照调整后的顺序修改顺序
+                int sort = 0;
                 foreach(var item in SchProjectList)
                 {
+                    sort++;
                     //测试项目名称
                     string schItenName = item.ItemName;
                     var dtl = schDtls.FirstOrDefault(x => x.item_name == schItenName);
                     if(dtl!=null)
                     {
-                        //要将主键改为0,否则还是原来的主键
-                        dtl.scheme_dtl_id = 0;
-                        _basicPlcTestSchemeDtlService.Add(dtl);
+                        //修改顺序
+                        dtl.sort = sort;
+                        _basicPlcTestSchemeDtlService.Edit(dtl);
                     }
                   
                 }
@@ -746,6 +741,21 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             schDtlDto.UpdateBy = Appsession.UserName;
             bas_plc_test_scheme_dtl schDtlEntity = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
             schDtlEntity.item_type = StrToItemType(schDtlDto.ItemType);
+            //计算排序
+            int sort = 0;
+            var findSorts = _basicPlcTestSchemeDtlService.FindAllBySchId((int)scheduleId);
+            if(findSorts.Count!=0)
+            {
+                int maxSort=findSorts.Select(x => x.sort).Max();
+                maxSort++;
+                sort = maxSort;
+            }
+            else
+            {
+                sort=1;
+            }
+          
+            schDtlEntity.sort = sort;
             try
             {
                 if (Title == "新增方案")

+ 8 - 13
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/EditSchViewModel.cs

@@ -229,29 +229,24 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
                 long schID = findSche.scheme_id;
                 //查找此方案下的所有的测试项,并
                 var schDtls = _basicPlcTestSchemeDtlService.QueryList()?.FindAll(x => x.scheme_id == schID);
-                //先删除
-                foreach (var unit in schDtls)
-                {
-                    int id = Convert.ToInt32(unit.scheme_dtl_id);
-                    _basicPlcTestSchemeDtlService.Delete(id);
-
 
-                }
-                //按照调整后的顺序添加
+                //按照调整后的顺序修改顺序
+                int sort = 0;
                 foreach (var item in SchProjectList)
                 {
+                    sort++;
                     //测试项目名称
                     string schItenName = item.ItemName;
                     var dtl = schDtls.FirstOrDefault(x => x.item_name == schItenName);
                     if (dtl != null)
                     {
-                        //要将主键改为0,否则还是原来的主键
-                        dtl.scheme_dtl_id = 0;
-                        _basicPlcTestSchemeDtlService.Add(dtl);
+                        //修改顺序
+                        dtl.sort = sort;
+                        _basicPlcTestSchemeDtlService.Edit(dtl);
                     }
 
                 }
-               
+
             }
             //修改方案名
             else
@@ -293,7 +288,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
                 DeviceKindName = findSche.devicekind_name;
                 long schID = findSche.scheme_id;
                 //查找此方案下的所有的测试项,并增加到表格
-                var schDtls = _basicPlcTestSchemeDtlService.QueryList()?.FindAll(x => x.scheme_id == schID)?.OrderBy(x => x.scheme_dtl_id);
+                var schDtls = _basicPlcTestSchemeDtlService.QueryList()?.FindAll(x => x.scheme_id == schID)? .OrderBy(x => x.sort).ThenBy(x => x.scheme_dtl_id);
                 foreach (var unit in schDtls)
                 {
                     string itemType = string.Empty;

+ 1 - 1
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/ReadSchViewModel.cs

@@ -108,7 +108,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
                 {
                     //测试方案号
                     schId = item;
-                    var schDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId).OrderBy(x => x.scheme_dtl_id).ToList(); ;
+                    var schDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId).OrderBy(x => x.sort).ThenBy(x=>x.scheme_dtl_id).ToList(); ;
                     foreach (var sch in schDtls)
                     {
                         long dtlId = sch.scheme_dtl_id;

+ 2 - 2
BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/AutoTestViewModel.cs

@@ -172,7 +172,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                 {
                     //测试方案号
                     schId = item;
-                    var schDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId).OrderBy(x => x.scheme_dtl_id).ToList(); ;
+                    var schDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId).OrderBy(x => x.sort).ThenBy(x => x.scheme_dtl_id).ToList(); ;
                     foreach (var sch in schDtls)
                     {
                         long dtlId = sch.scheme_dtl_id;
@@ -620,7 +620,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
             Task.Run(async() =>  //模拟耗时任务
             {
 
-                var basicSchDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.OrderBy(x => x.scheme_dtl_id);
+                var basicSchDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.OrderBy(x => x.sort).ThenBy(x => x.scheme_dtl_id);
                 foreach (var item in basicSchDtls)
                 {
                     

+ 102 - 41
BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/ManualTestViewModel.cs

@@ -48,9 +48,10 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         private long schId = 0; //方案ID
         private long globalSchDetailId = 0; //测试方案明细ID
         private long globalDeviceId = 0; //设备ID
+        private long globalSort = 0; //排序
         private BizTestRecordDtlDto bizTestRecordDtlDto = new BizTestRecordDtlDto(); //测试方案明细表
         private const string TestMode = "手动测试";
-
+        private List<bas_plc_test_scheme_dtl> allSchDtlsById = new List<bas_plc_test_scheme_dtl>(); //测试方案明细项目
         private int defaultDelayTime = Convert.ToInt32(ConfigurationManager.AppSettings["DelayTime"]);
         private int delayTime;
         public ManualTestViewModel(IDialogService dialog, IEventAggregator aggregator, IOptionConfigService optionConfigService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBasicPlcTestSchemeDtlService basicPlcTestSchemeDtlService, IBizTestRecordService iBizTestRecordService, IBizTestRecordDtlService iBizTestRecordDtlService,IMapper mapper,ILogger logger)
@@ -82,12 +83,13 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         /// </summary>
         private void ItemChange()
         {
-            var findDtlMsg = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.FirstOrDefault(X => X.item_name == SelectItem);
+            var findDtlMsg = allSchDtlsById?.FirstOrDefault(X => X.item_name == SelectItem);
             if(findDtlMsg != null)
             {
                 int id = Convert.ToInt32(findDtlMsg.scheme_dtl_id);
                 // 根据 测试方案明细主键ID 查找测试方案id 及方案名和设备名
                 globalSchDetailId = id;
+                globalSort = findDtlMsg.sort;
                 GetDetailInfo(id);
             }
         }
@@ -134,7 +136,8 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                 {
                     //测试方案号
                     schId = item;
-                    var schDtls=_basicPlcTestSchemeDtlService.FindAllBySchId(schId).OrderBy(x => x.scheme_dtl_id).ToList(); ;
+                    allSchDtlsById = _basicPlcTestSchemeDtlService.FindAllBySchId(schId);
+                    var schDtls= allSchDtlsById.OrderBy(x => x.sort).ThenBy(x => x.scheme_dtl_id).ToList(); ;
                     foreach(var sch in schDtls)
                     {
                         long dtlId = sch.scheme_dtl_id;
@@ -591,62 +594,120 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         private void Next(object obj)
         {
             StepIndex = 0;
+            long maxSort = allSchDtlsById.Select(x => x.sort).Max();
             ///查找方案下的所有方案明细,并排序,
-            var basicSchDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.OrderBy(x=>x.scheme_dtl_id);
-            foreach(var item in basicSchDtls)
+            if (maxSort!=0)
             {
-                //在测试结果明细中查看
-                long schDetailId = item.scheme_dtl_id;
-                if(schDetailId>globalSchDetailId)
+                if(globalSort< maxSort)
                 {
-                    globalSchDetailId = schDetailId;
-                    int id = Convert.ToInt32(schDetailId);
-                    SelectItemIndex++;
-                    //界面显示
-                    GetDetailInfo(id);
-                    //记录记录明细表中是否有这个方案明细ID的记录,没有则添加,有则更新记录状态
-               
-                    break;
+                    globalSort++;
+                    var findSort = allSchDtlsById.FirstOrDefault(x => x.sort == globalSort);
+                    if (findSort != null)
+                    {
+                        int id = Convert.ToInt32(findSort.scheme_dtl_id);
+                        globalSchDetailId = findSort.scheme_dtl_id;
+                        SelectItemIndex++;
+                        //界面显示
+                        GetDetailInfo(id);
+                    }
                 }
-                long maxDtlId = basicSchDtls.Select(x => x.scheme_dtl_id).Max();
-                if (globalSchDetailId == maxDtlId)
+                else
                 {
                     MessageBox.Show("已是此测试方案最后一个测试项!", "确认", MessageBoxButton.OK, MessageBoxImage.Information);
-                    break;
+               
                 }
-             
             }
+            //兼容没加排序字段以前的
+            else
+            {
+                var basicSchDtls = allSchDtlsById?.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);
+                        SelectItemIndex++;
+                        //界面显示
+                        GetDetailInfo(id);
+                        //记录记录明细表中是否有这个方案明细ID的记录,没有则添加,有则更新记录状态
+
+                        break;
+                    }
+                    long maxDtlId = basicSchDtls.Select(x => x.scheme_dtl_id).Max();
+                    if (globalSchDetailId == maxDtlId)
+                    {
+                        MessageBox.Show("已是此测试方案最后一个测试项!", "确认", MessageBoxButton.OK, MessageBoxImage.Information);
+                        break;
+                    }
+
+                }
+            }
+           
+          
+           
+           
         }
 
         private void Previous(object obj)
         {
             StepIndex = 0;
-            ///查找方案下的所有方案明细,并排序,
-            var basicSchDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.OrderByDescending(x => x.scheme_dtl_id);
-            foreach (var item in basicSchDtls)
+            int maxSort = allSchDtlsById.Select(x => x.sort).Max();
+            if(maxSort!=0)
             {
-                //在测试结果明细中查看
-                long schDetailId = item.scheme_dtl_id;
-                if (schDetailId< globalSchDetailId)
+                if (globalSort>1)
                 {
-                    globalSchDetailId = schDetailId;
-                    int id = Convert.ToInt32(schDetailId);
-                    SelectItemIndex--;
-                    //界面显示
-                    GetDetailInfo(id);
-                    //记录记录明细表中是否有这个方案明细ID的记录,没有则添加,有则更新记录状态
-                   
-                    break;
+                    globalSort--;
+                    var findSort = allSchDtlsById.FirstOrDefault(x => x.sort == globalSort);
+                    if (findSort != null)
+                    {
+                        int id = Convert.ToInt32(findSort.scheme_dtl_id);
+                        globalSchDetailId = findSort.scheme_dtl_id;
+                        SelectItemIndex--;
+                        //界面显示
+                        GetDetailInfo(id);
+                    }
+                }
+                else
+                {
+                    SelectItemIndex = 0;
+                    MessageBox.Show("已是此测试方案的第一个测试项!", "确认", MessageBoxButton.OK, MessageBoxImage.Information);
+
                 }
-     
             }
-            long maxDtlId = basicSchDtls.Select(x => x.scheme_dtl_id).Min();
-            if (globalSchDetailId == maxDtlId)
-            {
-                SelectItemIndex = 0;
-                MessageBox.Show("已是此测试方案的第一个测试项!", "确认", MessageBoxButton.OK, MessageBoxImage.Information);
-               
+            else
+            {///查找方案下的所有方案明细,并排序,
+                var basicSchDtls = allSchDtlsById?.OrderByDescending(x => x.sort).ThenByDescending(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);
+                        SelectItemIndex--;
+                        //界面显示
+                        GetDetailInfo(id);
+                        //记录记录明细表中是否有这个方案明细ID的记录,没有则添加,有则更新记录状态
+
+                        break;
+                    }
+
+                }
+                long maxDtlId = basicSchDtls.Select(x => x.scheme_dtl_id).Min();
+                if (globalSchDetailId == maxDtlId)
+                {
+                    SelectItemIndex = 0;
+                    MessageBox.Show("已是此测试方案的第一个测试项!", "确认", MessageBoxButton.OK, MessageBoxImage.Information);
+
+                }
+
             }
+            
+            
         }
         /// <summary>
         /// 开始检测

+ 3 - 3
BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/RetryTestViewModel.cs

@@ -115,7 +115,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                 {
                     //测试方案号
                     schId = item;
-                    var schDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId).OrderBy(x => x.scheme_dtl_id).ToList(); ;
+                    var schDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId).OrderBy(x => x.sort).ThenBy(x => x.scheme_dtl_id).ToList(); 
                     //不合格项目集合
                     List<bas_plc_test_scheme_dtl> reTrysList = new List<bas_plc_test_scheme_dtl>();
                     //查找不合格项目
@@ -583,7 +583,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         {
             StepIndex = 0;
             ///查找方案下的所有方案明细,并排序,
-            var basicSchDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.OrderBy(x => x.scheme_dtl_id);
+            var basicSchDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.OrderBy(x => x.sort).ThenBy(x => x.scheme_dtl_id);
             foreach (var item in basicSchDtls)
             {
                 //在测试结果明细中查看
@@ -613,7 +613,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         {
             StepIndex = 0;
             ///查找方案下的所有方案明细,并排序,
-            var basicSchDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.OrderByDescending(x => x.scheme_dtl_id);
+            var basicSchDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.OrderByDescending(x => x.sort).ThenByDescending(x=>x.scheme_dtl_id);
             foreach (var item in basicSchDtls)
             {
                 //在测试结果明细中查看

+ 11 - 3
BlankApp1/Model/Dto/BasicPlcTestSchemeDtlDto.cs

@@ -44,13 +44,21 @@ namespace Model.Dto
             get { return itemName; }
             set { itemName = value; OnPropertyChanged(); }
         }
-       
         /// <summary>
-        /// Desc:测试项时间,0为正常时间,1为超长时间
+        /// 测试顺序
+        /// </summary>
+        private int sort { get; set; }
+        public int Sort
+        {
+            get { return sort; }
+            set { sort = value; OnPropertyChanged(); }
+        }
+        /// <summary>
+        /// Desc:测试项时间
         /// Default:
         /// Nullable:True
         /// </summary>           
-        
+
         private int itemTime { get; set; }
         public int ItemTime
         {

+ 5 - 1
BlankApp1/Model/Entities/bas_plc_test_scheme_dtl.cs

@@ -37,7 +37,11 @@ namespace Model.Entities
            /// </summary>           
            public string item_name {get;set;}
         /// <summary>
-        /// Desc:测试项时间,0为正常时间,1为超长时间
+        /// 测试顺序
+        /// </summary>
+        public int sort { get; set; }
+        /// <summary>
+        /// Desc:测试项时间
         /// Default:
         /// Nullable:True
         /// </summary>