Forráskód Böngészése

完善csv数据,添加ppid

844184169 6 hónapja
szülő
commit
4b8289a720

+ 2 - 1
TeamAAS-VM/Core/FileHelper.cs

@@ -865,6 +865,7 @@ namespace TeamAAS_VP.Core
         #endregion
 
         #region 写CTQ的csv
+        /*
         public static void WriteDataToCSV(DataFormCtq cd)
         {
             string s1, s2, s3, s4,
@@ -978,7 +979,7 @@ namespace TeamAAS_VP.Core
             }
 
             return result;
-        }
+        }*/
         #endregion
     }
 }

+ 123 - 98
TeamAAS-VM/Core/Management.cs

@@ -1286,9 +1286,10 @@ namespace TeamAAS_VP.Core
         /// 工单信息
         /// </summary>
         string[] wo = new string[10];
-
         string[] model_num = new string[10];//产品model_num
         string[] color = new string[10];//产品color
+        string[] ppid = new string[10];//产品ppid
+        string[] revision = new string[10];//产品revision
         /// <summary>
         /// 二次定位相机的工具坐标
         /// </summary>
@@ -2327,9 +2328,7 @@ namespace TeamAAS_VP.Core
                                 //过站请求
                                 if (state == 1)
                                 {
-
-                                    // 这里缺少从MES获取产品配方的内容,需要补充
-
+                                    //获取过站时间
                                     _LastMesCheckTime[i] = (await _mesService.GetServerTimeAsync(i, code, 2)).Now;
 
                                     //获取当前工位的配置
@@ -2391,6 +2390,19 @@ namespace TeamAAS_VP.Core
                                                     color[i] = colorItem.Replace("color=", "").Trim();
                                                     SendTaskMessage($"color:{color[i]}", MessageLevel.Info);
                                                 }
+                                                string ppidItem = item.FirstOrDefault(f => f.Contains("ppid="));
+                                                if (ppidItem != null)
+                                                {
+                                                    ppid[i] = ppidItem.Replace("ppid=", "").Trim();
+                                                    SendTaskMessage($"ppid:{ppid[i]}", MessageLevel.Info);
+                                                }
+                                                string revisionItem = item.FirstOrDefault(f => f.Contains("revision="));
+                                                if (revisionItem != null)
+                                                {
+                                                    revision[i] = revisionItem.Replace("revision=", "").Trim();
+                                                    SendTaskMessage($"revision:{revision[i]}", MessageLevel.Info);
+                                                }
+
                                                 //切换产品
                                                 if (i == 0)//i=0时才会切换产品
                                                 {
@@ -2483,6 +2495,19 @@ namespace TeamAAS_VP.Core
                                                 color[i] = colorItem.Replace("color=", "").Trim();
                                                 SendTaskMessage($"color:{color[i]}", MessageLevel.Info);
                                             }
+                                            string ppidItem = item.FirstOrDefault(f => f.Contains("ppid="));
+                                            if (ppidItem != null)
+                                            {
+                                                ppid[i] = ppidItem.Replace("ppid=", "").Trim();
+                                                SendTaskMessage($"ppid:{ppid[i]}", MessageLevel.Info);
+                                            }
+                                            string revisionItem = item.FirstOrDefault(f => f.Contains("revision="));
+                                            if (revisionItem != null)
+                                            {
+                                                revision[i] = revisionItem.Replace("revision=", "").Trim();
+                                                SendTaskMessage($"revision:{revision[i]}", MessageLevel.Info);
+                                            }
+
                                             LogHelper.WriteLogMes($"询问mes成功");
                                             SendTaskMessage($"询问mes成功:{response}", MessageLevel.Debug);
                                             //切换产品
@@ -2545,7 +2570,7 @@ namespace TeamAAS_VP.Core
                                 // 上传本站数据
                                 else if (state == 2)
                                 {
-                                    DFC.Clear();
+                                    DFC.Clear();//CTQ数据集合
 
                                     //获取当前工位的配置
                                     var stationConfig = _configService.GetDeviceInfo(i);
@@ -2564,6 +2589,8 @@ namespace TeamAAS_VP.Core
                                     Int16 resultIndex = plc.ReadNode<Int16>(string.Format(addressConfig.In_Result.Address, i));
                                     //读取压力值
                                     float pressure = plc.ReadNode<float>(string.Format(addressConfig.In_PressureValue.Address, i));
+
+                                    #region 组装结果显示列表信息
                                     AssemblyRecord assemblyRecord = new AssemblyRecord();
                                     assemblyRecord.ProductSN = ProductMainSN[i];
                                     assemblyRecord.RecipeName = currentProduct.Name;
@@ -2610,6 +2637,8 @@ namespace TeamAAS_VP.Core
                                     }
 
                                     await _systemDatabaseService.RecordAssemblyAsync(assemblyRecord);
+                                    #endregion
+
                                     LogHelper.WriteLogMes($"【mes开始ADD】");
                                     SendTaskMessage($"mes开始ADD", MessageLevel.Info);
                                     string assypress = ""; string cc = "";
@@ -2619,7 +2648,93 @@ namespace TeamAAS_VP.Core
                                     //SendTaskMessage($"CC1:{mes_cc["1"]},CC2:{mes_cc["2"]}", MessageLevel.Info);
                                     assypress = currentPressure[i].ToString("F2");
                                     SendTaskMessage($"cc:{cc},组装压力:{assypress}", MessageLevel.Debug);
-
+                                    #region CSV数据
+                                    DFC.Clear();
+                                    bool assyPress = resultIndex == 1 ? true : false;
+                                    string midValue = "", saveppid = "";
+                                    midValue = ((currentProduct.GlobalParamEx.CC1DownLimit + currentProduct.GlobalParamEx.CC1UpLimit) / 2).ToString("F3");
+                                    if (stationConfig.SaveCsvPPID) saveppid = ppid[i];
+                                    DFC.Add(new DataFormCtq
+                                    {
+                                        PPID = saveppid,
+                                        PROCESS_NAME = stationConfig.DataInfo.PROCESS_NAME,
+                                        PROCESS_START_TIME = _LastMesCheckTime[i].ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
+                                        CTQ_NAME = "CC1",
+                                        CTQ_VALUE = mes_cc["1"],
+                                        CTQ_LSL = currentProduct.GlobalParamEx.CC1DownLimit.ToString("F3"),
+                                        CTQ_USL = currentProduct.GlobalParamEx.CC1UpLimit.ToString("F3"),
+                                        PROCESS_END_TIME = serverTimeResult.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
+                                        SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
+                                        COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
+                                        REVISION = stationConfig.DataInfo.REVISION,
+                                        WO = wo[i],
+                                        MFG_LOT = stationConfig.DataInfo.MFG_LOT,
+                                        MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
+                                        PROCESS_OUTCOME = assyPress ? "Pass" : "Fail",
+                                        PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
+                                        CTQ_UNIT_OF_MEASURE = "mm",
+                                        ERROR_MESSAGE = assyPress ? "" : "CC OOS",
+                                        PD_ATTR_01 = midValue,
+                                        PD_ATTR_02 = ProductMainSN[i],
+                                        PD_ATTR_03 = PartSN,
+                                        PD_ATTR_04 = "",
+                                        PD_ATTR_05 = "",
+                                    });
+                                    midValue = ((currentProduct.GlobalParamEx.CC2DownLimit + currentProduct.Globa2ParamEx.CC1UpLimit) / 2).ToString("F3");
+                                    DFC.Add(new DataFormCtq
+                                    {
+                                        PPID = saveppid,
+                                        PROCESS_NAME = stationConfig.DataInfo.PROCESS_NAME,
+                                        PROCESS_START_TIME = _LastMesCheckTime[i].ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
+                                        CTQ_NAME = "CC2",
+                                        CTQ_VALUE = mes_cc["2"],
+                                        CTQ_LSL = currentProduct.GlobalParamEx.CC2DownLimit.ToString("F3"),
+                                        CTQ_USL = currentProduct.GlobalParamEx.CC2UpLimit.ToString("F3"),
+                                        PROCESS_END_TIME = serverTimeResult.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
+                                        SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
+                                        COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
+                                        REVISION = stationConfig.DataInfo.REVISION,
+                                        WO = wo[i],
+                                        MFG_LOT = stationConfig.DataInfo.MFG_LOT,
+                                        MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
+                                        PROCESS_OUTCOME = assyPress ? "Pass" : "Fail",
+                                        PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
+                                        CTQ_UNIT_OF_MEASURE = "mm",
+                                        ERROR_MESSAGE = assyPress ? "" : "CC OOS",
+                                        PD_ATTR_01 = midValue,
+                                        PD_ATTR_02 = ProductMainSN[i],
+                                        PD_ATTR_03 = PartSN,
+                                        PD_ATTR_04 = "",
+                                        PD_ATTR_05 = "",
+                                    });
+                                    midValue = ((currentProduct.GlobalParamEx.DownPressure.PressureDownLimit + currentProduct.Globa2ParamEx.DownPressure.PressureUpLimit) / 2).ToString("F3");
+                                    DFC.Add(new DataFormCtq
+                                    {
+                                        PPID = saveppid,
+                                        PROCESS_NAME = stationConfig.DataInfo.PROCESS_NAME,
+                                        PROCESS_START_TIME = _LastMesCheckTime[i].ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
+                                        CTQ_NAME = "Assy_Pressure",
+                                        CTQ_VALUE = Math.Round(double.Parse(assypress), 3).ToString(),
+                                        CTQ_LSL = currentProduct.GlobalParamEx.DownPressure.PressureDownLimit.ToString("F3"),
+                                        CTQ_USL = currentProduct.GlobalParamEx.DownPressure.PressureUpLimit.ToString("F3"),
+                                        PROCESS_END_TIME = serverTimeResult.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
+                                        SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
+                                        COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
+                                        REVISION = stationConfig.DataInfo.REVISION,
+                                        WO = wo[i],
+                                        MFG_LOT = stationConfig.DataInfo.MFG_LOT,
+                                        MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
+                                        PROCESS_OUTCOME = assyPress ? "Pass" : "Fail",
+                                        PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
+                                        CTQ_UNIT_OF_MEASURE = "kg",
+                                        ERROR_MESSAGE = assyPress ? "" : "Assy_Pressure OOS",
+                                        PD_ATTR_01 = midValue,
+                                        PD_ATTR_02 = ProductMainSN[i],
+                                        PD_ATTR_03 = PartSN,
+                                        PD_ATTR_04 = "",
+                                        PD_ATTR_05 = "",
+                                    });
+                                    #endregion
                                     //cc-复检cc,assypress-组装站压力
                                     (bool isSuccess, string response) = await _mesService.SubmitGetAsync(i, ProductMainSN[i], comp, cc, assypress, resultIndex == 1 ? true : false, _LastMesCheckTime[i], serverTimeResult.Now);
                                     if (!stationConfig.EnableMES || isSuccess)
@@ -2643,96 +2758,6 @@ namespace TeamAAS_VP.Core
                                         //判断锁付路径字符串是否为空,如果不为空则保存,否则不保存
                                         if (!string.IsNullOrEmpty(stationConfig.SaveCsvPath))
                                         {
-                                            bool assyPress = resultIndex == 1 ? true : false;
-                                            DFC.Clear();
-
-                                            //foreach (var item in mes_cc)
-                                            //{
-                                            //    DFC.Add(new DataFormCtq
-                                            //    {
-                                            //        PPID = ProductMainSN[i],
-                                            //        PROCESS_NAME = stationConfig.DataInfo.PROCESS_NAME,
-                                            //        PROCESS_START_TIME = _LastMesCheckTime[i].ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
-                                            //        CTQ_NAME = $"CC{item.Key}",
-                                            //        CTQ_VALUE = item.Value,
-                                            //        CTQ_LSL = "",
-                                            //        CTQ_USL = "",
-                                            //        PROCESS_END_TIME = serverTimeResult.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
-                                            //        SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
-                                            //        COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
-                                            //        REVISION = stationConfig.DataInfo.REVISION,
-                                            //        WO = wo[i],
-                                            //        MFG_LOT = stationConfig.DataInfo.MFG_LOT,
-                                            //        MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
-                                            //        PROCESS_OUTCOME = "Pass",
-                                            //        PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
-                                            //        CTQ_UNIT_OF_MEASURE = "mm",
-                                            //        ERROR_MESSAGE = assyPress ? "" : "CC OOS",
-                                            //    });
-                                            //}
-                                            DFC.Add(new DataFormCtq
-                                            {
-                                                PPID = ProductMainSN[i],
-                                                PROCESS_NAME = stationConfig.DataInfo.PROCESS_NAME,
-                                                PROCESS_START_TIME = _LastMesCheckTime[i].ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
-                                                CTQ_NAME = "CC1",
-                                                CTQ_VALUE = mes_cc["1"],
-                                                CTQ_LSL = currentProduct.GlobalParamEx.CC1DownLimit.ToString("F3"),
-                                                CTQ_USL = currentProduct.GlobalParamEx.CC1UpLimit.ToString("F3"),
-                                                PROCESS_END_TIME = serverTimeResult.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
-                                                SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
-                                                COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
-                                                REVISION = stationConfig.DataInfo.REVISION,
-                                                WO = wo[i],
-                                                MFG_LOT = stationConfig.DataInfo.MFG_LOT,
-                                                MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
-                                                PROCESS_OUTCOME = assyPress ? "Pass" : "Fail",
-                                                PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
-                                                CTQ_UNIT_OF_MEASURE = "mm",
-                                                ERROR_MESSAGE = assyPress ? "" : "CC OOS",
-                                            });
-                                            DFC.Add(new DataFormCtq
-                                            {
-                                                PPID = ProductMainSN[i],
-                                                PROCESS_NAME = stationConfig.DataInfo.PROCESS_NAME,
-                                                PROCESS_START_TIME = _LastMesCheckTime[i].ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
-                                                CTQ_NAME = "CC2",
-                                                CTQ_VALUE = mes_cc["2"],
-                                                CTQ_LSL = currentProduct.GlobalParamEx.CC2DownLimit.ToString("F3"),
-                                                CTQ_USL = currentProduct.GlobalParamEx.CC2UpLimit.ToString("F3"),
-                                                PROCESS_END_TIME = serverTimeResult.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
-                                                SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
-                                                COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
-                                                REVISION = stationConfig.DataInfo.REVISION,
-                                                WO = wo[i],
-                                                MFG_LOT = stationConfig.DataInfo.MFG_LOT,
-                                                MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
-                                                PROCESS_OUTCOME = assyPress ? "Pass" : "Fail",
-                                                PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
-                                                CTQ_UNIT_OF_MEASURE = "mm",
-                                                ERROR_MESSAGE = assyPress ? "" : "CC OOS",
-                                            });
-                                            DFC.Add(new DataFormCtq
-                                            {
-                                                PPID = code,
-                                                PROCESS_NAME = stationConfig.DataInfo.PROCESS_NAME,
-                                                PROCESS_START_TIME = _LastMesCheckTime[i].ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
-                                                CTQ_NAME = "Assy_Pressure",
-                                                CTQ_VALUE = Math.Round(double.Parse(assypress), 3).ToString(),
-                                                CTQ_LSL = currentProduct.GlobalParamEx.DownPressure.PressureDownLimit.ToString("F3"),
-                                                CTQ_USL = currentProduct.GlobalParamEx.DownPressure.PressureUpLimit.ToString("F3"),
-                                                PROCESS_END_TIME = serverTimeResult.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
-                                                SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
-                                                COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
-                                                REVISION = stationConfig.DataInfo.REVISION,
-                                                WO = wo[i],
-                                                MFG_LOT = stationConfig.DataInfo.MFG_LOT,
-                                                MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
-                                                PROCESS_OUTCOME = assyPress ? "Pass" : "Fail",
-                                                PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
-                                                CTQ_UNIT_OF_MEASURE = "kg",
-                                                ERROR_MESSAGE = assyPress ? "" : "Assy_Pressure OOS"
-                                            });
                                             bool recordResult = RecordStationResult(i, DFC, ProductMainSN[i], serverTimeResult.Now.Subtract(_LastMesCheckTime[i]).TotalSeconds, _LastMesCheckTime[i], stationConfig.SaveCsvPath);
                                             if (recordResult)
                                             {
@@ -3176,7 +3201,7 @@ namespace TeamAAS_VP.Core
                 if (!File.Exists(fullPath))
                 {
                     sb.Append("PPID,PROCESS_NAME,PROCESS_START_TIME,CTQ_NAME,CTQ_VALUE,CTQ_LSL,CTQ_USL,PROCESS_END_TIME,SUPPLIER_NAME,COMMODITY_TYPE,REVISION,WO#,MFG_LOT#," +
-                        "MFG_ASSY_LINE,PROCESS_OUTCOME,PROCESS_MACHINE_ID,CTQ_UNIT_OF_MEASURE,ERROR_MESSAGE");
+                        "MFG_ASSY_LINE,PROCESS_OUTCOME,PROCESS_MACHINE_ID,CTQ_UNIT_OF_MEASURE,ERROR_MESSAGE,PD_ATTR_01,PD_ATTR_02,PD_ATTR_03,PD_ATTR_04,PD_ATTR_05");
                     sb.AppendLine();
                 }
                 if (dfcs == null || dfcs.Count() == 0)
@@ -3185,7 +3210,7 @@ namespace TeamAAS_VP.Core
                 }
                 foreach (var dfc in dfcs)
                 {
-                    sb.Append($"{dfc.PPID},{dfc.PROCESS_NAME},{dfc.PROCESS_START_TIME},{dfc.CTQ_NAME},{dfc.CTQ_VALUE},{dfc.CTQ_LSL},{dfc.CTQ_USL},{dfc.PROCESS_END_TIME},{dfc.SUPPLIER_NAME},{dfc.COMMODITY_TYPE},{dfc.REVISION},{dfc.WO},{dfc.MFG_LOT},{dfc.MFG_ASSY_LINE},{dfc.PROCESS_OUTCOME},{dfc.PROCESS_MACHINE_ID},{dfc.CTQ_UNIT_OF_MEASURE},{dfc.ERROR_MESSAGE}");
+                    sb.Append($"{dfc.PPID},{dfc.PROCESS_NAME},{dfc.PROCESS_START_TIME},{dfc.CTQ_NAME},{dfc.CTQ_VALUE},{dfc.CTQ_LSL},{dfc.CTQ_USL},{dfc.PROCESS_END_TIME},{dfc.SUPPLIER_NAME},{dfc.COMMODITY_TYPE},{dfc.REVISION},{dfc.WO},{dfc.MFG_LOT},{dfc.MFG_ASSY_LINE},{dfc.PROCESS_OUTCOME},{dfc.PROCESS_MACHINE_ID},{dfc.CTQ_UNIT_OF_MEASURE},{dfc.ERROR_MESSAGE},{dfc.PD_ATTR_01},{dfc.PD_ATTR_02},{dfc.PD_ATTR_03},{dfc.PD_ATTR_04},{dfc.PD_ATTR_05}");
                     sb.AppendLine();
                 }
                 // 使用 StreamWriter 以追加模式打开文件

+ 30 - 0
TeamAAS-VM/Models/DataFormCtq.cs

@@ -105,5 +105,35 @@ namespace TeamAAS_VP.Models
         /// </summary>
         public string ERROR_MESSAGE { get => _ERROR_MESSAGE; set => SetProperty(ref _ERROR_MESSAGE, value); }
 
+        private string _PD_ATTR_01;
+        /// <summary>
+        /// 附加信息1--中值
+        /// </summary>
+        public string PD_ATTR_01 { get => _PD_ATTR_01; set => SetProperty(ref _PD_ATTR_01, value); }
+
+        private string _PD_ATTR_02;
+        /// <summary>
+        /// 附加信息2--物料SN
+        /// </summary>
+        public string PD_ATTR_02 { get => _PD_ATTR_02; set => SetProperty(ref _PD_ATTR_02, value); }
+
+        private string _PD_ATTR_03;
+        /// <summary>
+        /// 附加信息3--小件SN
+        /// </summary>
+        public string PD_ATTR_03 { get => _PD_ATTR_03; set => SetProperty(ref _PD_ATTR_03, value); }
+
+        private string _PD_ATTR_04;
+        /// <summary>
+        /// 附加信息4
+        /// </summary>
+        public string PD_ATTR_04 { get => _PD_ATTR_04; set => SetProperty(ref _PD_ATTR_04, value); }
+
+        private string _PD_ATTR_05;
+        /// <summary>
+        /// 附加信息5
+        /// </summary>
+        public string PD_ATTR_05 { get => _PD_ATTR_05; set => SetProperty(ref _PD_ATTR_05, value); }
+
     }
 }

+ 8 - 1
TeamAAS-VM/Models/DeviceInfo.cs

@@ -79,6 +79,12 @@ namespace TeamAAS_VP.Models
         /// </summary>
         public bool SaveCsv { get => _saveCsv; set => SetProperty(ref _saveCsv, value); }
 
+        private bool _saveCsvPPID;
+        /// <summary>
+        /// 是否保存CSV文件的PPID,默认不保存
+        /// </summary>
+        public bool SaveCsvPPID { get => _saveCsvPPID; set => SetProperty(ref _saveCsvPPID, value); }
+
         private string _saveCsvPath;
         /// <summary>
         /// 保存的CSV文件路径
@@ -118,10 +124,11 @@ namespace TeamAAS_VP.Models
             FixtureId = string.Empty;
             F = string.Empty;
             comp = string.Empty;
-            MesUrl = string.Empty; 
+            MesUrl = string.Empty;
             LogUrl = string.Empty;
             ApiKey = string.Empty;
             EnableMES = false;
+            SaveCsvPPID = true;
         }
 
         public DeviceInfo Copy()

+ 2 - 2
TeamAAS-VM/Services/MesService.cs

@@ -102,11 +102,11 @@ namespace TeamAAS_VP.Services
             string url = "";
             if (device.F == "PTL")
             {
-                url = $"{device.MesUrl}?c=QUERY_RECORD&line={device.Line}&station={device.Station}&fixtureid={device.FixtureId}&sn={sn}&comp={device.comp}:{comp}&p=message,sn,wo,model_num,color";
+                url = $"{device.MesUrl}?c=QUERY_RECORD&line={device.Line}&station={device.Station}&fixtureid={device.FixtureId}&sn={sn}&comp={device.comp}:{comp}&p=message,sn,wo,model_num,color,ppid,revision";
             }
             else
             {
-                url = $"{device.MesUrl}?c=QUERY_RECORD&line={device.Line}&station={device.Station}&fixtureid={device.FixtureId}&sn={sn}&p=message,sn,wo,model_num,color";
+                url = $"{device.MesUrl}?c=QUERY_RECORD&line={device.Line}&station={device.Station}&fixtureid={device.FixtureId}&sn={sn}&p=message,sn,wo,model_num,color,ppid,revision";
             }
 
             LogHelper.WriteLogMes($"¡¾Ñ¯ÎÊURL¡¿{url}");

+ 10 - 5
TeamAAS-VM/Views/SettingView.xaml

@@ -482,11 +482,16 @@
                                           Content="是否启用两次产品编号"
                                           IsChecked="{Binding SelectDeviceInfo.EnableDoubleMes, Mode=TwoWay}"
                                           Margin="6,2" />
-                                <CheckBox Grid.Row="13"
-                                          Grid.Column="1"
-                                          Content="是否保存CSV文件"
-                                          IsChecked="{Binding SelectDeviceInfo.SaveCsv, Mode=TwoWay}"
-                                          Margin="6,2" />
+                                <StackPanel Grid.Row="13"
+                                            Grid.Column="1"
+                                            Orientation="Horizontal">
+                                    <CheckBox Content="是否保存CSV文件"
+                                              IsChecked="{Binding SelectDeviceInfo.SaveCsv, Mode=TwoWay}"
+                                              Margin="6,2" />
+                                    <CheckBox Content="是否保存ppid"
+                                              IsChecked="{Binding SelectDeviceInfo.SaveCsvPPID, Mode=TwoWay}"
+                                              Margin="6,2" />
+                                </StackPanel>
                                 <TextBlock Grid.Row="14"
                                            Grid.Column="0"
                                            Text="保存的CSV文件路径:"