From 2c1d75c4e57092eea3c26b925ab76c9fd17de736 Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期四, 10 七月 2025 10:03:22 +0800
Subject: [PATCH] Fix PCB API JSON serialization issue

---
 MES.Service/Dto/service/WholeboardGenerateDto.cs  |  427 +++++++++++++++++-----------------
 MES.Service/Dto/service/SingleBoardGenerateDto.cs |  243 ++++++++++----------
 2 files changed, 332 insertions(+), 338 deletions(-)

diff --git a/MES.Service/Dto/service/SingleBoardGenerateDto.cs b/MES.Service/Dto/service/SingleBoardGenerateDto.cs
index 2d3494a..c84690b 100644
--- a/MES.Service/Dto/service/SingleBoardGenerateDto.cs
+++ b/MES.Service/Dto/service/SingleBoardGenerateDto.cs
@@ -1,150 +1,147 @@
-using System;
-using System.Collections.Generic;
-using System.Text.Json.Serialization;
+using Newtonsoft.Json;
 
-namespace MES.Service.Dto.service
+namespace MES.Service.Dto.service;
+
+/// <summary>
+///     鎷兼澘(鍗曟澘)鐢熸垚鏁版嵁DTO
+/// </summary>
+public class SingleBoardGenerateDto
 {
     /// <summary>
-    /// 鎷兼澘(鍗曟澘)鐢熸垚鏁版嵁DTO
+    ///     璁惧鍚嶇О
     /// </summary>
-    public class SingleBoardGenerateDto
-    {
-        /// <summary>
-        /// 璁惧鍚嶇О
-        /// </summary>
-        [JsonPropertyName("device_name")]
-        public string DeviceName { get; set; }
+    [JsonProperty("device_name")]
+    public string? DeviceName { get; set; }
 
-        /// <summary>
-        /// 鏁存澘鏉$爜
-        /// </summary>
-        [JsonPropertyName("pcb_sn")]
-        public string PcbSn { get; set; }
+    /// <summary>
+    ///     鏁存澘鏉$爜
+    /// </summary>
+    [JsonProperty("pcb_sn")]
+    public string? PcbSn { get; set; }
 
-        /// <summary>
-        /// 杞ㄩ亾淇℃伅锛�1锛�1杞級锛�2锛�2杞級
-        /// </summary>
-        [JsonPropertyName("pcb_track_line")]
-        public int PcbTrackLine { get; set; }
+    /// <summary>
+    ///     杞ㄩ亾淇℃伅锛�1锛�1杞級锛�2锛�2杞級
+    /// </summary>
+    [JsonProperty("pcb_track_line")]
+    public int PcbTrackLine { get; set; }
 
-        /// <summary>
-        /// 鏉块潰锛圱锛岄《闈級锛圔锛屽簳闈級锛圱+B锛屾澘闈�+搴曢潰锛�
-        /// </summary>
-        [JsonPropertyName("pcb_board_side")]
-        public string PcbBoardSide { get; set; }
+    /// <summary>
+    ///     鏉块潰锛圱锛岄《闈級锛圔锛屽簳闈級锛圱+B锛屾澘闈�+搴曢潰锛�
+    /// </summary>
+    [JsonProperty("pcb_board_side")]
+    public string? PcbBoardSide { get; set; }
 
-        /// <summary>
-        /// 妫�娴嬫椂闂�
-        /// </summary>
-        [JsonPropertyName("pcb_test_time")]
-        public string PcbTestTime { get; set; }
+    /// <summary>
+    ///     妫�娴嬫椂闂�
+    /// </summary>
+    [JsonProperty("pcb_test_time")]
+    public string? PcbTestTime { get; set; }
 
-        /// <summary>
-        /// 妫�娴嬭�楁椂锛屽崟浣嶇
-        /// </summary>
-        [JsonPropertyName("pcb_cycle_time")]
-        public float PcbCycleTime { get; set; }
+    /// <summary>
+    ///     妫�娴嬭�楁椂锛屽崟浣嶇
+    /// </summary>
+    [JsonProperty("pcb_cycle_time")]
+    public float PcbCycleTime { get; set; }
 
-        /// <summary>
-        /// 绋嬪簭鍚�/鏉垮紡鍚�
-        /// </summary>
-        [JsonPropertyName("pcb_project_name")]
-        public string PcbProjectName { get; set; }
+    /// <summary>
+    ///     绋嬪簭鍚�/鏉垮紡鍚�
+    /// </summary>
+    [JsonProperty("pcb_project_name")]
+    public string? PcbProjectName { get; set; }
 
-        /// <summary>
-        /// 鏁存澘妫�娴嬬粨鏋�
-        /// </summary>
-        [JsonPropertyName("pcb_robot_result")]
-        public string PcbRobotResult { get; set; }
+    /// <summary>
+    ///     鏁存澘妫�娴嬬粨鏋�
+    /// </summary>
+    [JsonProperty("pcb_robot_result")]
+    public string? PcbRobotResult { get; set; }
 
-        /// <summary>
-        /// 鏁存澘澶嶅垽缁撴灉
-        /// </summary>
-        [JsonPropertyName("pcb_user_result")]
-        public string PcbUserResult { get; set; }
+    /// <summary>
+    ///     鏁存澘澶嶅垽缁撴灉
+    /// </summary>
+    [JsonProperty("pcb_user_result")]
+    public string? PcbUserResult { get; set; }
 
-        /// <summary>
-        /// 鏁存澘鏈�缁堢粨鏋�
-        /// </summary>
-        [JsonPropertyName("pcb_final_result")]
-        public string PcbFinalResult { get; set; }
+    /// <summary>
+    ///     鏁存澘鏈�缁堢粨鏋�
+    /// </summary>
+    [JsonProperty("pcb_final_result")]
+    public string? PcbFinalResult { get; set; }
 
-        /// <summary>
-        /// 缁翠慨绔欏鍒ょ敤鎴峰悕
-        /// </summary>
-        [JsonPropertyName("pcb_repair_user")]
-        public string PcbRepairUser { get; set; }
+    /// <summary>
+    ///     缁翠慨绔欏鍒ょ敤鎴峰悕
+    /// </summary>
+    [JsonProperty("pcb_repair_user")]
+    public string? PcbRepairUser { get; set; }
 
-        /// <summary>
-        /// 鎷兼澘鏁伴噺
-        /// </summary>
-        [JsonPropertyName("pcb_board_number")]
-        public int PcbBoardNumber { get; set; }
+    /// <summary>
+    ///     鎷兼澘鏁伴噺
+    /// </summary>
+    [JsonProperty("pcb_board_number")]
+    public int PcbBoardNumber { get; set; }
 
-        /// <summary>
-        /// 鍣ㄤ欢鎬绘暟閲�
-        /// </summary>
-        [JsonPropertyName("pcb_comp_number")]
-        public int PcbCompNumber { get; set; }
+    /// <summary>
+    ///     鍣ㄤ欢鎬绘暟閲�
+    /// </summary>
+    [JsonProperty("pcb_comp_number")]
+    public int PcbCompNumber { get; set; }
 
-        /// <summary>
-        /// 鎷兼澘鏉$爜
-        /// </summary>
-        [JsonPropertyName("board_sn")]
-        public string BoardSn { get; set; }
+    /// <summary>
+    ///     鎷兼澘鏉$爜
+    /// </summary>
+    [JsonProperty("board_sn")]
+    public string? BoardSn { get; set; }
 
-        /// <summary>
-        /// 鎷兼澘搴忓彿
-        /// </summary>
-        [JsonPropertyName("board_no")]
-        public string BoardNo { get; set; }
+    /// <summary>
+    ///     鎷兼澘搴忓彿
+    /// </summary>
+    [JsonProperty("board_no")]
+    public string? BoardNo { get; set; }
 
-        /// <summary>
-        /// 鎷兼澘妫�娴嬬粨鏋�
-        /// </summary>
-        [JsonPropertyName("board_robot_result")]
-        public string BoardRobotResult { get; set; }
+    /// <summary>
+    ///     鎷兼澘妫�娴嬬粨鏋�
+    /// </summary>
+    [JsonProperty("board_robot_result")]
+    public string? BoardRobotResult { get; set; }
 
-        /// <summary>
-        /// 鎷兼澘澶嶅垽缁撴灉
-        /// </summary>
-        [JsonPropertyName("board_user_result")]
-        public string BoardUserResult { get; set; }
+    /// <summary>
+    ///     鎷兼澘澶嶅垽缁撴灉
+    /// </summary>
+    [JsonProperty("board_user_result")]
+    public string? BoardUserResult { get; set; }
 
-        /// <summary>
-        /// 鎷兼澘鏈�缁堢粨鏋�
-        /// </summary>
-        [JsonPropertyName("board_final_result")]
-        public string BoardFinalResult { get; set; }
+    /// <summary>
+    ///     鎷兼澘鏈�缁堢粨鏋�
+    /// </summary>
+    [JsonProperty("board_final_result")]
+    public string? BoardFinalResult { get; set; }
 
-        /// <summary>
-        /// 鎷兼澘鍣ㄤ欢鏁伴噺
-        /// </summary>
-        [JsonPropertyName("board_comp_number")]
-        public int BoardCompNumber { get; set; }
+    /// <summary>
+    ///     鎷兼澘鍣ㄤ欢鏁伴噺
+    /// </summary>
+    [JsonProperty("board_comp_number")]
+    public int BoardCompNumber { get; set; }
 
-        /// <summary>
-        /// 鎷兼澘鍣ㄤ欢妫�娴婲G鎬绘暟
-        /// </summary>
-        [JsonPropertyName("board_comp_robot_ng_number")]
-        public int BoardCompRobotNgNumber { get; set; }
+    /// <summary>
+    ///     鎷兼澘鍣ㄤ欢妫�娴婲G鎬绘暟
+    /// </summary>
+    [JsonProperty("board_comp_robot_ng_number")]
+    public int BoardCompRobotNgNumber { get; set; }
 
-        /// <summary>
-        /// 鎷兼澘鍣ㄤ欢澶嶅垽NG鎬绘暟
-        /// </summary>
-        [JsonPropertyName("board_comp_user_ng_number")]
-        public int BoardCompUserNgNumber { get; set; }
+    /// <summary>
+    ///     鎷兼澘鍣ㄤ欢澶嶅垽NG鎬绘暟
+    /// </summary>
+    [JsonProperty("board_comp_user_ng_number")]
+    public int BoardCompUserNgNumber { get; set; }
 
-        /// <summary>
-        /// 鎷兼澘鍣ㄤ欢璇姤鎬绘暟
-        /// </summary>
-        [JsonPropertyName("board_comp_repass_number")]
-        public int BoardCompRepassNumber { get; set; }
+    /// <summary>
+    ///     鎷兼澘鍣ㄤ欢璇姤鎬绘暟
+    /// </summary>
+    [JsonProperty("board_comp_repass_number")]
+    public int BoardCompRepassNumber { get; set; }
 
-        /// <summary>
-        /// 鍣ㄤ欢鍒楄〃
-        /// </summary>
-        [JsonPropertyName("comp_data")]
-        public List<ComponentDataDto> CompData { get; set; }
-    }
+    /// <summary>
+    ///     鍣ㄤ欢鍒楄〃
+    /// </summary>
+    [JsonProperty("comp_data")]
+    public List<ComponentDataDto>? CompData { get; set; }
 }
\ No newline at end of file
diff --git a/MES.Service/Dto/service/WholeboardGenerateDto.cs b/MES.Service/Dto/service/WholeboardGenerateDto.cs
index 66644dd..3dbca15 100644
--- a/MES.Service/Dto/service/WholeboardGenerateDto.cs
+++ b/MES.Service/Dto/service/WholeboardGenerateDto.cs
@@ -1,234 +1,231 @@
-using System;
-using System.Collections.Generic;
-using System.Text.Json.Serialization;
+using Newtonsoft.Json;
 
-namespace MES.Service.Dto.service
+namespace MES.Service.Dto.service;
+
+/// <summary>
+///     鏁存澘鐢熸垚鏁版嵁DTO
+/// </summary>
+public class WholeboardGenerateDto
 {
     /// <summary>
-    /// 鏁存澘鐢熸垚鏁版嵁DTO
+    ///     璁惧鍚嶇О
     /// </summary>
-    public class WholeboardGenerateDto
-    {
-        /// <summary>
-        /// 璁惧鍚嶇О
-        /// </summary>
-        [JsonPropertyName("device_name")]
-        public string DeviceName { get; set; }
-
-        /// <summary>
-        /// 鏁存澘鏉$爜
-        /// </summary>
-        [JsonPropertyName("pcb_sn")]
-        public string PcbSn { get; set; }
-
-        /// <summary>
-        /// 杞ㄩ亾淇℃伅锛�1锛�1杞級锛�2锛�2杞級
-        /// </summary>
-        [JsonPropertyName("pcb_track_line")]
-        public int PcbTrackLine { get; set; }
-
-        /// <summary>
-        /// 鏉块潰锛圱锛岄《闈級锛圔锛屽簳闈級锛圱+B锛屾澘闈�+搴曢潰锛�
-        /// </summary>
-        [JsonPropertyName("pcb_board_side")]
-        public string PcbBoardSide { get; set; }
-
-        /// <summary>
-        /// 妫�娴嬫椂闂达紝鏍煎紡yyyy-mm-dd hh:mm:ss
-        /// </summary>
-        [JsonPropertyName("pcb_test_time")]
-        public string PcbTestTime { get; set; }
-
-        /// <summary>
-        /// 妫�娴嬭�楁椂锛屽崟浣嶇
-        /// </summary>
-        [JsonPropertyName("pcb_cycle_time")]
-        public float PcbCycleTime { get; set; }
-
-        /// <summary>
-        /// 绋嬪簭鍚�/鏉垮紡鍚�
-        /// </summary>
-        [JsonPropertyName("pcb_project_name")]
-        public string PcbProjectName { get; set; }
-
-        /// <summary>
-        /// 鏁存澘妫�娴嬬粨鏋�
-        /// </summary>
-        [JsonPropertyName("pcb_robot_result")]
-        public string PcbRobotResult { get; set; }
-
-        /// <summary>
-        /// 鏁存澘澶嶅垽缁撴灉
-        /// </summary>
-        [JsonPropertyName("pcb_user_result")]
-        public string PcbUserResult { get; set; }
-
-        /// <summary>
-        /// 鏁存澘鏈�缁堢粨鏋�
-        /// </summary>
-        [JsonPropertyName("pcb_final_result")]
-        public string PcbFinalResult { get; set; }
-
-        /// <summary>
-        /// 缁翠慨绔欏鍒ょ敤鎴峰悕
-        /// </summary>
-        [JsonPropertyName("pcb_repair_user")]
-        public string PcbRepairUser { get; set; }
-
-        /// <summary>
-        /// 鎷兼澘鏁伴噺
-        /// </summary>
-        [JsonPropertyName("pcb_board_number")]
-        public int PcbBoardNumber { get; set; }
-
-        /// <summary>
-        /// 鎷兼澘妫�娴婲G鏁伴噺
-        /// </summary>
-        [JsonPropertyName("pcb_board_robot_ng_number")]
-        public int PcbBoardRobotNgNumber { get; set; }
-
-        /// <summary>
-        /// 鎷兼澘澶嶅垽NG鏁伴噺
-        /// </summary>
-        [JsonPropertyName("pcb_board_user_ng_number")]
-        public int PcbBoardUserNgNumber { get; set; }
-
-        /// <summary>
-        /// 鎷兼澘璇姤鏁伴噺
-        /// </summary>
-        [JsonPropertyName("pcb_board_repass_number")]
-        public int PcbBoardRepassNumber { get; set; }
-
-        /// <summary>
-        /// 鍣ㄤ欢鎬绘暟閲�
-        /// </summary>
-        [JsonPropertyName("pcb_comp_number")]
-        public int PcbCompNumber { get; set; }
-
-        /// <summary>
-        /// 鍣ㄤ欢妫�娴婲G鏁伴噺
-        /// </summary>
-        [JsonPropertyName("pcb_comp_robot_ng_number")]
-        public int PcbCompRobotNgNumber { get; set; }
-
-        /// <summary>
-        /// 鍣ㄤ欢澶嶅垽NG鏁伴噺
-        /// </summary>
-        [JsonPropertyName("pcb_comp_user_ng_number")]
-        public int PcbCompUserNgNumber { get; set; }
-
-        /// <summary>
-        /// 鍣ㄤ欢璇姤鏁伴噺
-        /// </summary>
-        [JsonPropertyName("pcb_comp_repass_number")]
-        public int PcbCompRepassNumber { get; set; }
-
-        /// <summary>
-        /// 鎷兼澘鍒楄〃
-        /// </summary>
-        [JsonPropertyName("board_data")]
-        public List<BoardDataDto> BoardData { get; set; }
-    }
+    [JsonProperty("device_name")]
+    public string? DeviceName { get; set; }
 
     /// <summary>
-    /// 鎷兼澘鏁版嵁DTO
+    ///     鏁存澘鏉$爜
     /// </summary>
-    public class BoardDataDto
-    {
-        /// <summary>
-        /// 鎷兼澘鏉$爜
-        /// </summary>
-        [JsonPropertyName("board_sn")]
-        public string BoardSn { get; set; }
-
-        /// <summary>
-        /// 鎷兼澘搴忓彿
-        /// </summary>
-        [JsonPropertyName("board_no")]
-        public string BoardNo { get; set; }
-
-        /// <summary>
-        /// 鎷兼澘妫�娴嬬粨鏋�
-        /// </summary>
-        [JsonPropertyName("board_robot_result")]
-        public string BoardRobotResult { get; set; }
-
-        /// <summary>
-        /// 鎷兼澘澶嶅垽缁撴灉
-        /// </summary>
-        [JsonPropertyName("board_user_result")]
-        public string BoardUserResult { get; set; }
-
-        /// <summary>
-        /// 鎷兼澘鏈�缁堢粨鏋�
-        /// </summary>
-        [JsonPropertyName("board_final_result")]
-        public string BoardFinalResult { get; set; }
-
-        /// <summary>
-        /// 鍣ㄤ欢鍒楄〃
-        /// </summary>
-        [JsonPropertyName("comp_data")]
-        public List<ComponentDataDto> CompData { get; set; }
-    }
+    [JsonProperty("pcb_sn")]
+    public string? PcbSn { get; set; }
 
     /// <summary>
-    /// 鍣ㄤ欢鏁版嵁DTO
+    ///     杞ㄩ亾淇℃伅锛�1锛�1杞級锛�2锛�2杞級
     /// </summary>
-    public class ComponentDataDto
-    {
-        /// <summary>
-        /// 鍣ㄤ欢浣嶅彿
-        /// </summary>
-        [JsonPropertyName("comp_designator")]
-        public string CompDesignator { get; set; }
+    [JsonProperty("pcb_track_line")]
+    public int PcbTrackLine { get; set; }
 
-        /// <summary>
-        /// 鍣ㄤ欢鏂欏彿
-        /// </summary>
-        [JsonPropertyName("comp_part")]
-        public string CompPart { get; set; }
+    /// <summary>
+    ///     鏉块潰锛圱锛岄《闈級锛圔锛屽簳闈級锛圱+B锛屾澘闈�+搴曢潰锛�
+    /// </summary>
+    [JsonProperty("pcb_board_side")]
+    public string? PcbBoardSide { get; set; }
 
-        /// <summary>
-        /// 鍣ㄤ欢灏佽
-        /// </summary>
-        [JsonPropertyName("comp_package")]
-        public string CompPackage { get; set; }
+    /// <summary>
+    ///     妫�娴嬫椂闂达紝鏍煎紡yyyy-mm-dd hh:mm:ss
+    /// </summary>
+    [JsonProperty("pcb_test_time")]
+    public string? PcbTestTime { get; set; }
 
-        /// <summary>
-        /// 鍣ㄤ欢绫诲瀷
-        /// </summary>
-        [JsonPropertyName("comp_type")]
-        public string CompType { get; set; }
+    /// <summary>
+    ///     妫�娴嬭�楁椂锛屽崟浣嶇
+    /// </summary>
+    [JsonProperty("pcb_cycle_time")]
+    public float PcbCycleTime { get; set; }
 
-        /// <summary>
-        /// 鍣ㄤ欢妫�娴嬩笉鑹唬鐮�
-        /// </summary>
-        [JsonPropertyName("comp_robot_code")]
-        public string CompRobotCode { get; set; }
+    /// <summary>
+    ///     绋嬪簭鍚�/鏉垮紡鍚�
+    /// </summary>
+    [JsonProperty("pcb_project_name")]
+    public string? PcbProjectName { get; set; }
 
-        /// <summary>
-        /// 鍣ㄤ欢妫�娴嬬粨鏋�
-        /// </summary>
-        [JsonPropertyName("comp_robot_result")]
-        public string CompRobotResult { get; set; }
+    /// <summary>
+    ///     鏁存澘妫�娴嬬粨鏋�
+    /// </summary>
+    [JsonProperty("pcb_robot_result")]
+    public string? PcbRobotResult { get; set; }
 
-        /// <summary>
-        /// 鍣ㄤ欢澶嶅垽涓嶈壇浠g爜
-        /// </summary>
-        [JsonPropertyName("comp_user_code")]
-        public string CompUserCode { get; set; }
+    /// <summary>
+    ///     鏁存澘澶嶅垽缁撴灉
+    /// </summary>
+    [JsonProperty("pcb_user_result")]
+    public string? PcbUserResult { get; set; }
 
-        /// <summary>
-        /// 鍣ㄤ欢澶嶅垽缁撴灉
-        /// </summary>
-        [JsonPropertyName("comp_user_result")]
-        public string CompUserResult { get; set; }
+    /// <summary>
+    ///     鏁存澘鏈�缁堢粨鏋�
+    /// </summary>
+    [JsonProperty("pcb_final_result")]
+    public string? PcbFinalResult { get; set; }
 
-        /// <summary>
-        /// 鍣ㄤ欢鍥剧墖鍦板潃
-        /// </summary>
-        [JsonPropertyName("comp_image")]
-        public string CompImage { get; set; }
-    }
+    /// <summary>
+    ///     缁翠慨绔欏鍒ょ敤鎴峰悕
+    /// </summary>
+    [JsonProperty("pcb_repair_user")]
+    public string? PcbRepairUser { get; set; }
+
+    /// <summary>
+    ///     鎷兼澘鏁伴噺
+    /// </summary>
+    [JsonProperty("pcb_board_number")]
+    public int PcbBoardNumber { get; set; }
+
+    /// <summary>
+    ///     鎷兼澘妫�娴婲G鏁伴噺
+    /// </summary>
+    [JsonProperty("pcb_board_robot_ng_number")]
+    public int PcbBoardRobotNgNumber { get; set; }
+
+    /// <summary>
+    ///     鎷兼澘澶嶅垽NG鏁伴噺
+    /// </summary>
+    [JsonProperty("pcb_board_user_ng_number")]
+    public int PcbBoardUserNgNumber { get; set; }
+
+    /// <summary>
+    ///     鎷兼澘璇姤鏁伴噺
+    /// </summary>
+    [JsonProperty("pcb_board_repass_number")]
+    public int PcbBoardRepassNumber { get; set; }
+
+    /// <summary>
+    ///     鍣ㄤ欢鎬绘暟閲�
+    /// </summary>
+    [JsonProperty("pcb_comp_number")]
+    public int PcbCompNumber { get; set; }
+
+    /// <summary>
+    ///     鍣ㄤ欢妫�娴婲G鏁伴噺
+    /// </summary>
+    [JsonProperty("pcb_comp_robot_ng_number")]
+    public int PcbCompRobotNgNumber { get; set; }
+
+    /// <summary>
+    ///     鍣ㄤ欢澶嶅垽NG鏁伴噺
+    /// </summary>
+    [JsonProperty("pcb_comp_user_ng_number")]
+    public int PcbCompUserNgNumber { get; set; }
+
+    /// <summary>
+    ///     鍣ㄤ欢璇姤鏁伴噺
+    /// </summary>
+    [JsonProperty("pcb_comp_repass_number")]
+    public int PcbCompRepassNumber { get; set; }
+
+    /// <summary>
+    ///     鎷兼澘鍒楄〃
+    /// </summary>
+    [JsonProperty("board_data")]
+    public List<BoardDataDto> BoardData { get; set; } = new List<BoardDataDto>();
+}
+
+/// <summary>
+///     鎷兼澘鏁版嵁DTO
+/// </summary>
+public class BoardDataDto
+{
+    /// <summary>
+    ///     鎷兼澘鏉$爜
+    /// </summary>
+    [JsonProperty("board_sn")]
+    public string? BoardSn { get; set; }
+
+    /// <summary>
+    ///     鎷兼澘搴忓彿
+    /// </summary>
+    [JsonProperty("board_no")]
+    public string? BoardNo { get; set; }
+
+    /// <summary>
+    ///     鎷兼澘妫�娴嬬粨鏋�
+    /// </summary>
+    [JsonProperty("board_robot_result")]
+    public string? BoardRobotResult { get; set; }
+
+    /// <summary>
+    ///     鎷兼澘澶嶅垽缁撴灉
+    /// </summary>
+    [JsonProperty("board_user_result")]
+    public string? BoardUserResult { get; set; }
+
+    /// <summary>
+    ///     鎷兼澘鏈�缁堢粨鏋�
+    /// </summary>
+    [JsonProperty("board_final_result")]
+    public string? BoardFinalResult { get; set; }
+
+    /// <summary>
+    ///     鍣ㄤ欢鍒楄〃
+    /// </summary>
+    [JsonProperty("comp_data")]
+    public List<ComponentDataDto>? CompData { get; set; }
+}
+
+/// <summary>
+///     鍣ㄤ欢鏁版嵁DTO
+/// </summary>
+public class ComponentDataDto
+{
+    /// <summary>
+    ///     鍣ㄤ欢浣嶅彿
+    /// </summary>
+    [JsonProperty("comp_designator")]
+    public string? CompDesignator { get; set; }
+
+    /// <summary>
+    ///     鍣ㄤ欢鏂欏彿
+    /// </summary>
+    [JsonProperty("comp_part")]
+    public string? CompPart { get; set; }
+
+    /// <summary>
+    ///     鍣ㄤ欢灏佽
+    /// </summary>
+    [JsonProperty("comp_package")]
+    public string? CompPackage { get; set; }
+
+    /// <summary>
+    ///     鍣ㄤ欢绫诲瀷
+    /// </summary>
+    [JsonProperty("comp_type")]
+    public string? CompType { get; set; }
+
+    /// <summary>
+    ///     鍣ㄤ欢妫�娴嬩笉鑹唬鐮�
+    /// </summary>
+    [JsonProperty("comp_robot_code")]
+    public string? CompRobotCode { get; set; }
+
+    /// <summary>
+    ///     鍣ㄤ欢妫�娴嬬粨鏋�
+    /// </summary>
+    [JsonProperty("comp_robot_result")]
+    public string? CompRobotResult { get; set; }
+
+    /// <summary>
+    ///     鍣ㄤ欢澶嶅垽涓嶈壇浠g爜
+    /// </summary>
+    [JsonProperty("comp_user_code")]
+    public string? CompUserCode { get; set; }
+
+    /// <summary>
+    ///     鍣ㄤ欢澶嶅垽缁撴灉
+    /// </summary>
+    [JsonProperty("comp_user_result")]
+    public string? CompUserResult { get; set; }
+
+    /// <summary>
+    ///     鍣ㄤ欢鍥剧墖鍦板潃
+    /// </summary>
+    [JsonProperty("comp_image")]
+    public string? CompImage { get; set; }
 }
\ No newline at end of file

--
Gitblit v1.9.3