Jelajahi Sumber

修改报表

ltwork 1 tahun lalu
induk
melakukan
5e02439158

+ 37 - 56
BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/AutoTestViewModel.cs

@@ -312,12 +312,14 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         /// <summary>
         /// 增加测试记录明细
         /// </summary>
-
-        private void AddOrEditTesDtltRecord(long schDetailId)
+        /// <summary>
+        /// 获取记录明细
+        /// </summary>
+        private void AddDtltRecord(long schDetailId)
         {
             //查找record ID
             long recordId = 0;
-            var findRecordID =_iBizTestRecordService.FindRecorddByDeviceIdAndSchname(globalDeviceId, ScheduleName);
+            var findRecordID = _iBizTestRecordService.FindRecorddByDeviceIdAndSchname(globalDeviceId, ScheduleName);
             if (findRecordID != null)
             {
                 recordId = findRecordID.record_id;
@@ -325,48 +327,27 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
             testStatus = 99;//测试状态赋值为99
                             //状态status 没有赋值
 
-            //记录记录明细表中是否有这个方案明细ID的记录,没有则添加,有则更新记录状态
-            var findRecordDetail = _iBizTestRecordDtlService.FindRecordDetailBySchDtlID(schDetailId);
-            if (findRecordDetail == null)
-            {
-                BizTestRecordDtlDto newBizTestEwDetail = new BizTestRecordDtlDto();
-                newBizTestEwDetail.RecordId = recordId;
-                newBizTestEwDetail.SchemeDtlId = schDetailId;
-                newBizTestEwDetail.StartTestTime = startTime;
-                newBizTestEwDetail.FinishTestTime = endTime;
-                newBizTestEwDetail.TestMode = TestMode;
-                newBizTestEwDetail.Status = testStatus;
-                newBizTestEwDetail.TestResult = GetTestResult();
-                newBizTestEwDetail.CreateBy = Appsession.UserName;
-                newBizTestEwDetail.CreateTime = startTime;
-                newBizTestEwDetail.UpdateBy = Appsession.UserName;
-                newBizTestEwDetail.UpdateTime = DateTime.Now;
-                var testRecordDtl = _mapper.Map<BizTestRecordDtlDto, biz_test_record_dtl>(newBizTestEwDetail);
-                _iBizTestRecordDtlService.Add(testRecordDtl);
-            }
-            else
-            {
-                bizTestRecordDtlDto.RecordDtlId = findRecordDetail.record_dtl_id;
-                bizTestRecordDtlDto.RecordId = recordId;
-                bizTestRecordDtlDto.SchemeDtlId = schDetailId;
-                bizTestRecordDtlDto.StartTestTime = startTime;
-                bizTestRecordDtlDto.FinishTestTime = endTime;
-                bizTestRecordDtlDto.TestMode = TestMode;
-                bizTestRecordDtlDto.Status = testStatus;
-                bizTestRecordDtlDto.TestResult = GetTestResult();
-                bizTestRecordDtlDto.CreateBy = Appsession.UserName;
-                bizTestRecordDtlDto.CreateTime = startTime;
-                bizTestRecordDtlDto.UpdateBy = Appsession.UserName;
-                bizTestRecordDtlDto.UpdateTime = DateTime.Now;
-                //更新时间
-                bizTestRecordDtlDto.UpdateBy = Appsession.UserName;
-                bizTestRecordDtlDto.UpdateTime = DateTime.Now;
-                UpdateTesDtltRecord();
-            }
+            bizTestRecordDtlDto.RecordId = recordId;
+            bizTestRecordDtlDto.SchemeDtlId = schDetailId;
+            bizTestRecordDtlDto.StartTestTime = startTime;
+            bizTestRecordDtlDto.FinishTestTime = endTime;
+            bizTestRecordDtlDto.TestMode = TestMode;
+            bizTestRecordDtlDto.Status = testStatus;
+            bizTestRecordDtlDto.TestResult = GetTestResult();
+            bizTestRecordDtlDto.CreateBy = Appsession.UserName;
+            bizTestRecordDtlDto.CreateTime = startTime;
+            bizTestRecordDtlDto.UpdateBy = Appsession.UserName;
+            bizTestRecordDtlDto.UpdateTime = DateTime.Now;
+            //更新时间
+            bizTestRecordDtlDto.UpdateBy = Appsession.UserName;
+            bizTestRecordDtlDto.UpdateTime = DateTime.Now;
 
+            var testRecordDtl = _mapper.Map<BizTestRecordDtlDto, biz_test_record_dtl>(bizTestRecordDtlDto);
+            _iBizTestRecordDtlService.Add(testRecordDtl);
 
 
         }
+       
         /// <summary>
         /// 获取测试结果
         /// </summary>
@@ -607,6 +588,8 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
 
             //输出项
             bool isJudgeResult = await TestJudgementMethod();
+            //增加测试记录
+            AddDtltRecord(globalSchDetailId);
             //下一项
             StepIndex = 0;
             await Task.Delay(2000);
@@ -688,8 +671,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                     }
                     break;
             }
-            //更新测试记录
-            AddOrEditTesDtltRecord(globalSchDetailId);
+            
             return true;
         }
 
@@ -816,9 +798,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                     }
                     break;
             }
-            //更新测试记录
-            //更新测试记录
-            AddOrEditTesDtltRecord(globalSchDetailId);
+      
             return isActionResult;
         }
         /// <summary>
@@ -989,11 +969,10 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                     }
                     break;
             }
-            //更新测试记录
-            //更新测试记录
+          
+ 
             endTime = DateTime.Now;
-            AddOrEditTesDtltRecord(globalSchDetailId);
-
+    
             return isJudge;
         }
         /// <summary>
@@ -1002,7 +981,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         private async Task ReadJudge(String strLogic)
         {
             int countCond = 0;
-          
+            DateTime entryTime = DateTime.Now;
             foreach (var item in OutConList.OrderBy(x => x.Id))
             {
                 string plcAddress = item.PlcAddress;
@@ -1015,8 +994,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                     case "bool":
                       
                         string readResult = string.Empty;
-                        //
-                        DateTime entryTime = DateTime.Now;
+                      
                         await Task.Run(async () =>
                         {
                             while (entryTime.AddMilliseconds(delayTime * 1000) > DateTime.Now)
@@ -1034,6 +1012,8 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                                 await Task.Delay(1000);
                             }
                         });
+                        //可能有多个条件判定的,第二次时间到了直接跳出延时,直接读取,不用在延时20s
+                        readResult = PLCCom.GetInstance().ReadPlcObject(plcAddress, VarType.Bit);
                         ProVisibility = Visibility.Hidden;
                       
                       
@@ -1052,12 +1032,12 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
 
                         break;
                     case "word":
-                        DateTime entryTime2 = DateTime.Now;
+                      
                         string readResult2 = string.Empty;
                         //一直读
                         await Task.Run(async () =>
                         {
-                            while (entryTime2.AddMilliseconds(delayTime * 1000) > DateTime.Now)
+                            while (entryTime.AddMilliseconds(delayTime * 1000) > DateTime.Now)
                             {
                                 //显示进度条
                                 System.Windows.Application.Current.Dispatcher.Invoke((delegate
@@ -1073,7 +1053,8 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                                 await Task.Delay(1000);
                             }
                         });
-
+                        //可能有多个条件判定的,第二次时间到了直接跳出延时,直接读取,不用在延时20s
+                        readResult2 = PLCCom.GetInstance().ReadPlcObject(plcAddress, VarType.Word);
                         ProVisibility = Visibility.Hidden;
                         ///实时值记录
                         item.RealValue = readResult2;

+ 30 - 46
BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/ManualTestViewModel.cs

@@ -49,6 +49,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         private long globalDeviceId = 0; //设备ID
         private BizTestRecordDtlDto bizTestRecordDtlDto = new BizTestRecordDtlDto(); //测试方案明细表
         private const string TestMode = "手动测试";
+
         private int delayTime = 20;
         public ManualTestViewModel(IDialogService dialog, IEventAggregator aggregator, IOptionConfigService optionConfigService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBasicPlcTestSchemeDtlService basicPlcTestSchemeDtlService, IBizTestRecordService iBizTestRecordService, IBizTestRecordDtlService iBizTestRecordDtlService,IMapper mapper,ILogger logger)
         {
@@ -276,9 +277,9 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
            
         }
         /// <summary>
-        /// 增加测试记录明细
+        /// 获取记录明细
         /// </summary>
-        private void AddOrEditTesDtltRecord(long schDetailId)
+        private void AddDtltRecord(long schDetailId)
         {
             //查找record ID
             long recordId = 0;
@@ -290,45 +291,25 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
             testStatus = 99;//测试状态赋值为99
                             //状态status 没有赋值
 
-            
-            //无论第几次测试都添加
-                BizTestRecordDtlDto newBizTestEwDetail=new BizTestRecordDtlDto();
-                newBizTestEwDetail.RecordId = recordId;
-                newBizTestEwDetail.SchemeDtlId = schDetailId;
-                newBizTestEwDetail.StartTestTime = startTime;
-                newBizTestEwDetail.FinishTestTime = endTime;
-                newBizTestEwDetail.TestMode = TestMode;
-                newBizTestEwDetail.Status = testStatus;
-                newBizTestEwDetail.TestResult = GetTestResult();
-                newBizTestEwDetail.CreateBy = Appsession.UserName;
-                newBizTestEwDetail.CreateTime = startTime;
-                newBizTestEwDetail.UpdateBy = Appsession.UserName;
-                newBizTestEwDetail.UpdateTime = DateTime.Now;
-                var testRecordDtl = _mapper.Map<BizTestRecordDtlDto, biz_test_record_dtl>(newBizTestEwDetail);
-                _iBizTestRecordDtlService.Add(testRecordDtl);
-            
-            //else
-            //{
-            //    bizTestRecordDtlDto.RecordDtlId = findRecordDetail.record_dtl_id;
-            //    bizTestRecordDtlDto.RecordId = recordId;
-            //    bizTestRecordDtlDto.SchemeDtlId = schDetailId;
-            //    bizTestRecordDtlDto.StartTestTime = startTime;
-            //    bizTestRecordDtlDto.FinishTestTime = endTime;
-            //    bizTestRecordDtlDto.TestMode = TestMode;
-            //    bizTestRecordDtlDto.Status = testStatus;
-            //    bizTestRecordDtlDto.TestResult = GetTestResult();
-            //    bizTestRecordDtlDto.CreateBy = Appsession.UserName;
-            //    bizTestRecordDtlDto.CreateTime = startTime;
-            //    bizTestRecordDtlDto.UpdateBy = Appsession.UserName;
-            //    bizTestRecordDtlDto.UpdateTime = DateTime.Now;
-            //    //更新时间
-            //    bizTestRecordDtlDto.UpdateBy = Appsession.UserName;
-            //    bizTestRecordDtlDto.UpdateTime = DateTime.Now;
-            //    UpdateTesDtltRecord();
-            //}
-            
-
+            bizTestRecordDtlDto.RecordId = recordId;
+            bizTestRecordDtlDto.SchemeDtlId = schDetailId;
+            bizTestRecordDtlDto.StartTestTime = startTime;
+            bizTestRecordDtlDto.FinishTestTime = endTime;
+            bizTestRecordDtlDto.TestMode = TestMode;
+            bizTestRecordDtlDto.Status = testStatus;
+            bizTestRecordDtlDto.TestResult = GetTestResult();
+            bizTestRecordDtlDto.CreateBy = Appsession.UserName;
+            bizTestRecordDtlDto.CreateTime = startTime;
+            bizTestRecordDtlDto.UpdateBy = Appsession.UserName;
+            bizTestRecordDtlDto.UpdateTime = DateTime.Now;
+            //更新时间
+            bizTestRecordDtlDto.UpdateBy = Appsession.UserName;
+            bizTestRecordDtlDto.UpdateTime = DateTime.Now;
+        
+            var testRecordDtl = _mapper.Map<BizTestRecordDtlDto, biz_test_record_dtl>(bizTestRecordDtlDto);
+            _iBizTestRecordDtlService.Add(testRecordDtl);
 
+  
         }
         /// <summary>
         /// 判定结果
@@ -569,6 +550,8 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         /// <param name="obj"></param>
         private async  void Start(object obj)
         {
+         
+   
             StartEnalbe = false;
             _logger.LogInformation($"开始手动测试。方案名{ScheduleName},测试项{TestName}");
             //开始时间
@@ -602,6 +585,10 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                 StartEnalbe = true;
                 return;
             }
+            //将测试结果添加到数据库
+
+            AddDtltRecord(globalSchDetailId);
+
             _logger.LogInformation($"手动测试完成。方案名{ScheduleName},测试项{TestName}");
             StartEnalbe = true;
         }
@@ -677,8 +664,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                     }
                     break;
             }
-            //更新测试记录
-            AddOrEditTesDtltRecord(globalSchDetailId);
+          
             return true;
         }
 
@@ -811,9 +797,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                     }
                     break;
             }
-            //更新测试记录
-            //更新测试记录
-            AddOrEditTesDtltRecord(globalSchDetailId);
+          
             return isActionResult;
         }
         /// <summary>
@@ -985,7 +969,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
             //更新测试记录
             //更新测试记录
             endTime = DateTime.Now;
-            AddOrEditTesDtltRecord(globalSchDetailId);
+            
             return isJudge;
         }
         /// <summary>

+ 214 - 10
BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/ResultQueryViewModel.cs

@@ -4,15 +4,20 @@ using Microsoft.Extensions.Logging;
 using MiniExcelLibs;
 using Model.Dto;
 using Model.Entities;
+using PLCTool.Pdf;
 using Prism.Commands;
 using Prism.Mvvm;
 using Prism.Services.Dialogs;
+using QuestPDF.Infrastructure;
+using QuestPDF;
 using System;
 using System.Collections.Generic;
 using System.Collections.ObjectModel;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using Newtonsoft.Json;
+using QuestPDF.Fluent;
 
 namespace PLCTool.ViewModels.BusinessManageViewModel
 {
@@ -26,12 +31,13 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         private readonly IBasicPlcTestSchemeService _basicPlcTestSchemeService;
         private readonly IBizTestRecordDtlService _iBizTestRecordDtlService;
         private readonly IBizTestRecordService _iBizTestRecordService;
+        private readonly IBasicPlcTestSchemeDtlService _iBasicPlcTestSchemeDtlService;
         private readonly IMapper _mapper;
         private readonly IDialogService _dialog;
         private readonly ILogger _logger;
         private List<DeviceDtlWithResultModel> allDeviceList = new List<DeviceDtlWithResultModel>();//所有方案
         private List<DeviceDtlWithResultModel> conditionDevices = new List<DeviceDtlWithResultModel>();//符合条件的方案
-        public ResultQueryViewModel(IBasicDeviceService iBasicDeviceService, IBasicDeviceKindService iBasicDeviceKindService, IBasicProjectService iBasicProjectService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBizTestRecordDtlService iBizTestRecordDtlService, IBizTestRecordService iBizTestRecordService, IMapper mapper, IDialogService dialog, ILogger logger)
+        public ResultQueryViewModel(IBasicDeviceService iBasicDeviceService, IBasicDeviceKindService iBasicDeviceKindService, IBasicProjectService iBasicProjectService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBizTestRecordDtlService iBizTestRecordDtlService, IBizTestRecordService iBizTestRecordService, IBasicPlcTestSchemeDtlService iBasicPlcTestSchemeDtlService, IMapper mapper, IDialogService dialog, ILogger logger)
         {
             _iBasicDeviceService = iBasicDeviceService;
             _iBasicDeviceKindService = iBasicDeviceKindService;
@@ -39,6 +45,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
             _basicPlcTestSchemeService = basicPlcTestSchemeService;
             _iBizTestRecordService= iBizTestRecordService;
             _iBizTestRecordDtlService= iBizTestRecordDtlService;
+            _iBasicPlcTestSchemeDtlService = iBasicPlcTestSchemeDtlService;
             _mapper = mapper;
             _dialog = dialog;
             _logger = logger;
@@ -48,17 +55,11 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
             CheckDetailCommand = new DelegateCommand<object>(CheckDetail);
             ResetCommand = new DelegateCommand<object>(Reset);
             OnLoadCommand = new DelegateCommand(OnLoad);
-      
+            PdfReportCommand = new DelegateCommand<object>(CreatePdf);
 
         }
 
 
-
-
-
-
-
-
         #region 私有方法
         /// <summary>
         /// 加载页面
@@ -223,7 +224,6 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
             TotalCount = conditionDevices.Count;
             CurrentPageChanged();
 
-
         }
         /// <summary>
         /// 页面变化
@@ -238,7 +238,211 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                 DeviceResultItemList.Add(i);
             }
         }
+        /// <summary>
+        /// 生成pdf
+        /// </summary>
+        /// <param name="obj"></param>
+        public void CreatePdf(object obj)
+        {
+            object[] multiObj = obj as object[];
+
+            //测试方案名称和设备id
+            string schemeName = (string)multiObj[0];
+            long deviceId = (long)multiObj[1];
+            //查找recordid
+            long recordId=(long)_iBizTestRecordService.FindRecorddByDeviceIdAndSchname((int)deviceId, schemeName)?.record_id;
+            //查找详细记录
+            var recordDtls = _iBizTestRecordDtlService.FindRecordDetailByRecordID(recordId);
+            string deviceName = _iBasicDeviceService.Find((int)deviceId).device_name;
+            try
+            {
+                Settings.License = LicenseType.Community;
+                var model = GetReportPLCInfo(schemeName,deviceName, recordDtls);
+                var document = new InvoiceDocument(model);
+                //pdf名称为轴编号+时间
+
+                //输出文件
+                using (System.Windows.Forms.SaveFileDialog saveFileDialog = new System.Windows.Forms.SaveFileDialog()
+                {
+                    //设置文件类型
+                    //书写规则例如:txt files(*.txt)|*.txt
+                    Filter = "pdf文件|*.pdf",
+                    //设置默认文件名(可以不设置)
+                    FileName = "报表" + string.Format("{0:yyyyMMddHHmm}", DateTime.Now),
+
+                    //获取或设置一个值,该值指示如果用户省略扩展名,文件对话框是否自动在文件名中添加扩展名。(可以不设置)
+                    AddExtension = true,
+
+                    //保存对话框是否记忆上次打开的目录
+                    RestoreDirectory = true
+                })
+                {
+
+
+                    //点了保存按钮进入
+                    if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+                    {
+                        //获得文件路径
+                        string localFilePath = saveFileDialog.FileName.ToString();
+                        document.GeneratePdf(localFilePath);
+
+                    }
+
+                }
+
+
+            }
+            catch (Exception ex)
+            {
+                _logger.LogError(ex.ToString());
+            }
+
+
+
+
+
+        }
+
+        /// <summary>
+        /// pdf报告相关信息
+        /// </summary>
+        /// <param name="schDtlId"></param>
+        /// <returns></returns>
+        private InvoiceModel GetReportPLCInfo(string schName,string deviceName,List<biz_test_record_dtl> recordDtls)
+        {
+            //测试方案明细主键ID
+
+            InvoiceModel invoiceModel = new InvoiceModel();
+
+            invoiceModel.ReportPLCModels = new List<ReportPLCModel>();
+            invoiceModel.SchemeName = schName;
+            invoiceModel.DeviceName = deviceName;
+
+            foreach (var each in recordDtls)
+            {
+                long recordId = each.record_id.Value;
+                long schDtlid = each.scheme_dtl_id;
+                
+                string schItemName = _iBasicPlcTestSchemeDtlService.Find((int)schDtlid)?.item_name;
+                string schItemType = string.Empty;
+                int typeNo=(int) _iBasicPlcTestSchemeDtlService.Find((int)schDtlid)?.item_type;
+                switch (typeNo)
+                {
+                    case 0:
+                        schItemType = "前置项";
+                        break;
+                    case 1:
+                        schItemType = "PLC点位测试项";
+                        break;
+                    case 2:
+                        schItemType = "Robot动作测试";
+                        break;
+                }
+                //根据测试结果明细
+                if (each != null)
+                {       //前置项结果解析
+                    string preconStr = each.precondition_final?.ToString();
+                    if (!string.IsNullOrEmpty(preconStr))
+                    {
+                        JsonModel preconditionModel = JsonConvert.DeserializeObject<JsonModel>(preconStr);
+
+                        foreach (var detail in preconditionModel.DetailInfo)
+                        {
+
+                            invoiceModel.ReportPLCModels.Add(new ReportPLCModel()
+                            {
+                                ItemName =schItemName,
+                                ItemType = schItemType,
+                                Type = "前置项",
+                                JudgeType = preconditionModel.ItemType,
+                                SelectLogic = preconditionModel.ItemLogical,
+                                Detail = preconditionModel.Description,
+                                Id = detail.Id,
+                                PlcAddress = detail.PlcAddress,
+                                PlcItem = detail.PlcItem,
+                                PlcValue = detail.PlcValue,
+                                Remark = detail.Remark,
+                                TestTime = detail.TestTime,
+                                RealValue = detail.RealValue,
+                                TestResult = detail.TestResult,
+
+                            });
+                        }
+                    }
+
+                    //输入项解析
+                    string inStr = each.action_final?.ToString();
+                    if (!string.IsNullOrEmpty(inStr))
+                    {
+                        JsonModel inModel = JsonConvert.DeserializeObject<JsonModel>(inStr);
+
+                        foreach (var detail in inModel.DetailInfo)
+                        {
+                            invoiceModel.ReportPLCModels.Add(new ReportPLCModel()
+                            {
+                                ItemName = schItemName,
+                                ItemType = schItemType,
+                                Type = "输入项",
+                                JudgeType = inModel.ItemType,
+                                SelectLogic = inModel.ItemLogical,
+                                Detail = inModel.Description,
+                                Id = detail.Id,
+                                PlcAddress = detail.PlcAddress,
+                                PlcItem = detail.PlcItem,
+                                PlcValue = detail.PlcValue,
+                                Remark = detail.Remark,
+                                TestTime = detail.TestTime,
+                                RealValue = detail.RealValue,
+                                TestResult = detail.TestResult,
+
+                            });
+                        }
+                    }
 
+                    //输出项解析
+                    string outStr = each.judgement_result_final?.ToString();
+                    if (!string.IsNullOrEmpty(outStr))
+                    {
+                        JsonModel outModel = JsonConvert.DeserializeObject<JsonModel>(outStr);
+
+                        foreach (var detail in outModel.DetailInfo)
+                        {
+                            invoiceModel.ReportPLCModels.Add(new ReportPLCModel()
+                            {
+                                ItemName = schItemName,
+                                ItemType = schItemType,
+                                Type = "结果项",
+                                JudgeType = outModel.ItemType,
+                                SelectLogic = outModel.ItemLogical,
+                                Detail = outModel.Description,
+                                Id = detail.Id,
+                                PlcAddress = detail.PlcAddress,
+                                PlcItem = detail.PlcItem,
+                                PlcValue = detail.PlcValue,
+                                Remark = detail.Remark,
+                                TestTime = detail.TestTime,
+                                RealValue = detail.RealValue,
+                                TestResult = detail.TestResult,
+
+                            });
+                        }
+                    }
+                }
+            }
+            //判断方案结果是否通过
+            //var testCount = allDeviceList.FindAll(X => X.SchemeName == findSch.scheme_name && X.TestResult == "通过")?.Count;
+            //if (testCount == allResult.Count)
+            //{
+            //    invoiceModel.FinalReuslt = "通过";
+            //}
+            //else
+            //{
+            //    invoiceModel.FinalReuslt = "不通过";
+            //}
+
+           
+            return invoiceModel;
+        }
         #endregion
         #region 命令绑定
 
@@ -251,7 +455,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
 
         public DelegateCommand OnLoadCommand { set; get; }
         public DelegateCommand<object> CheckDetailCommand { set; get; }
-
+        public DelegateCommand<object> PdfReportCommand { set; get; }
         #endregion
 
         #region 数据绑定

+ 1 - 1
BlankApp1/BlankApp1/Views/BusinessManageView/ResultQueryView.xaml

@@ -101,7 +101,7 @@
 Command="{Binding DataContext.PdfReportCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" Cursor="Hand" >
                                     <Button.CommandParameter>
                                         <MultiBinding Converter="{ StaticResource ResourceKey=TwoParConverter}">
-                                            <Binding Path="SchemeId"  ></Binding>
+                                            <Binding Path="SchemeName"  ></Binding>
                                             <Binding Path="DeviceId"></Binding>
                                         </MultiBinding>
                                     </Button.CommandParameter>