From 8f25fecab6e6a79096b9940ab3432401b9045b39 Mon Sep 17 00:00:00 2001
From: cnf <3200815559@qq.com>
Date: 星期四, 10 七月 2025 18:00:14 +0800
Subject: [PATCH] 首检\巡检\入库检适配

---
 MES.Service/service/QcIssueResult/QcIssueResultManager.cs |  685 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 518 insertions(+), 167 deletions(-)

diff --git a/MES.Service/service/QcIssueResult/QcIssueResultManager.cs b/MES.Service/service/QcIssueResult/QcIssueResultManager.cs
index 9427856..8e3d338 100644
--- a/MES.Service/service/QcIssueResult/QcIssueResultManager.cs
+++ b/MES.Service/service/QcIssueResult/QcIssueResultManager.cs
@@ -16,11 +16,14 @@
 using MES.Service.Dto.webApi.QcIssueResult;
 using MES.Service.Dto.webApi.DeliveryNote;
 using MES.Service.Modes.DeliveryNote;
+using Newtonsoft.Json;
+using Oracle.ManagedDataAccess.Client;
+using System.Data;
 
 namespace MES.Service.service.QcIssueResult;
 
 //寮傚父澶勭疆鍗曠粨鏋滆〃
-[SugarTable("MES_QCISSUE_RESULT")]
+[SugarTable("MES_QA_ITEMS_DETECT_01")]
 public class QcIssueResultManager: Repository<QcIssueResults>
 {
     /**
@@ -138,166 +141,175 @@
                DingDingCode=t.DingDingCode,
             })
             .ToList();
-        string UserId = mapping.FirstOrDefault().DingDingCode;
+        if (mapping.Any())
+        {
+            string UserId = mapping.FirstOrDefault().DingDingCode;
 
 
+            // 浣跨敤 JSON 搴忓垪鍖栬緭鍑哄璞$殑璇︾粏鍐呭
+            string getQcIssueResultDetailJson = JsonConvert.SerializeObject(getQcIssueResultDetail, Formatting.Indented);
+            Debug.WriteLine("GetQcIssueResultDetail: " + getQcIssueResultDetailJson);
 
-        Debug.WriteLine(UserId);
+            // 鑾峰彇 Access Token
+            string accessToken = GetToken();
+            if (string.IsNullOrEmpty(accessToken))
+            {
+                return "鑾峰彇 Access Token 澶辫触";
+            }
 
-        // 鑾峰彇 Access Token
-        string accessToken = GetToken();
-        if (string.IsNullOrEmpty(accessToken))
-        {
-            return "鑾峰彇 Access Token 澶辫触";
-        }
-
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client client = CreateClient();
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceHeaders startProcessInstanceHeaders = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceHeaders();
-          Debug.WriteLine(accessToken);
-        startProcessInstanceHeaders.XAcsDingtalkAccessToken = accessToken; // 浣跨敤鑾峰彇鍒扮殑 Access Token  
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues1 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-        {
-            Name = "TextField-K2AD4O5B",
-            Value = "浜у搧鍚嶇О",
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues2 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-        {
-            Name = "TextField_DYFD1EESLVC0",
-            Value = "瑙勬牸鍨嬪彿",
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues3 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-        {
-            Name = "TextField_1AVN2BNVY1OG0",
-            Value = "鏁伴噺",
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues4 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-        {
-            Name = "TextField_1DKEMESOOGSG0",
-            Value = "閫佹鍗曚綅",
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues5 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-        {
-            Name = "DDDateField_20LKOACGMLXC0",
-            Value = DateTime.Now.ToString("yyyy-MM-dd"),
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues6 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-        {
-            Name = "TextField_WBNBWGFHR000",
-            Value = "璁㈠崟鍙�",
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues7 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-        {
-            Name = "TextareaField_1ZP3BDPMYY800",
-            Value = "瀵逛笉鍚堟牸鎴栨綔鍦ㄤ笉鍚堟牸鐨勬弿杩�:",
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues8 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-        {
-            Name = "SignatureField_SKF9Q82DZUO0",
-            Value = getQcIssueResultDetail.Fname,
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues9 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-        {
-            Name = "DDSelectField_1AK82Q8A2NB40",
-            Value = "閫�璐�",
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues10 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-        {
-            Name = "TextareaField_1LM82CPPR35S0",
-            Value = "鎸戦�夊唴瀹�",
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues11 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-        {
-            Name = "TextareaField_AK4JLDDNS2O0",
-            Value = "璁╂鎺ユ敹鍐呭",
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues12 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-        {
-            Name = "TextareaField_K69R6770WLS0",
-            Value = "閫�璐у娉�",
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues13 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-        {
-            Name = "TextareaField_194UFGLMI02O0",
-            Value = "鎶ュ簾澶囨敞",
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues14 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-        {
-            Name = "DDSelectField_1RN2L4RWQ0AO0",
-            Value = "鍚�",
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues15 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-        {
-            Name = "InnerContactField_WNG7AU9R2AO0",
-            Value = "鍔犵",
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues16 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-        {
-            Name = "DDAttachment_23VB5MMC1R1C0",
-            Value = "闄勪欢",
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners targetSelectActioners0 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners
-        {
-            ActionerKey = "null",
-            ActionerUserIds = new List<string>
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client client = CreateClient();
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceHeaders startProcessInstanceHeaders = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceHeaders();
+            Debug.WriteLine(accessToken);
+            startProcessInstanceHeaders.XAcsDingtalkAccessToken = accessToken; // 浣跨敤鑾峰彇鍒扮殑 Access Token  
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues1 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
+            {
+                Name = "TextField-K2AD4O5B",
+                Value = getQcIssueResultDetail.ItemName,
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues2 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
+            {
+                Name = "TextField_DYFD1EESLVC0",
+                Value = getQcIssueResultDetail.ItemModel,
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues3 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
+            {
+                Name = "TextField_1AVN2BNVY1OG0",
+                Value = getQcIssueResultDetail.FbatchQty,
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues4 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
+            {
+                Name = "TextField_1DKEMESOOGSG0",
+                Value = getQcIssueResultDetail.SuppName,
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues5 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
+            {
+                Name = "DDDateField_20LKOACGMLXC0",
+                Value = DateTime.Now.ToString("yyyy-MM-dd"),
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues6 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
+            {
+                Name = "TextField_WBNBWGFHR000",
+                Value = getQcIssueResultDetail.CgOrder,
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues7 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
+            {
+                Name = "TextareaField_1ZP3BDPMYY800",
+                Value = getQcIssueResultDetail.remark,
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues8 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
+            {
+                Name = "SignatureField_SKF9Q82DZUO0",
+                Value = getQcIssueResultDetail.Fname,
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues9 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
+            {
+                Name = "DDSelectField_1AK82Q8A2NB40",
+                Value = "閫�璐�",
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues10 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
+            {
+                Name = "TextareaField_1LM82CPPR35S0",
+                Value = "鎸戦�夊唴瀹�",
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues11 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
+            {
+                Name = "TextareaField_AK4JLDDNS2O0",
+                Value = "璁╂鎺ユ敹鍐呭",
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues12 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
+            {
+                Name = "TextareaField_K69R6770WLS0",
+                Value = "閫�璐у娉�",
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues13 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
+            {
+                Name = "TextareaField_194UFGLMI02O0",
+                Value = "鎶ュ簾澶囨敞",
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues14 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
+            {
+                Name = "DDSelectField_1RN2L4RWQ0AO0",
+                Value = "鍚�",
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues15 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
+            {
+                Name = "InnerContactField_WNG7AU9R2AO0",
+                Value = "鍔犵",
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues16 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
+            {
+                Name = "DDAttachment_23VB5MMC1R1C0",
+                Value = "闄勪欢",
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners targetSelectActioners0 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners
+            {
+                ActionerKey = "null",
+                ActionerUserIds = new List<string>
             {
                UserId
             },
-        };
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers approvers0 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers
-        {
-            ActionType = "OR",
-            UserIds = new List<string>
+            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers approvers0 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers
+            {
+                ActionType = "OR",
+                UserIds = new List<string>
             {
                 UserId
             },
-        };
+            };
 
 
-        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest startProcessInstanceRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest
-        {
-            OriginatorUserId = UserId,
-            ProcessCode = "PROC-BBA5632D-DC7C-4267-A3E2-757E2B7023BC",
-            DeptId = 1,
-            FormComponentValues = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues>
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest startProcessInstanceRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest
             {
-                 formComponentValues1,formComponentValues2,formComponentValues3, formComponentValues4, formComponentValues5, formComponentValues6, formComponentValues7, formComponentValues8, 
+                OriginatorUserId = UserId,
+                ProcessCode = "PROC-BBA5632D-DC7C-4267-A3E2-757E2B7023BC",
+                DeptId = 1,
+                FormComponentValues = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues>
+            {
+                 formComponentValues1,formComponentValues2,formComponentValues3, formComponentValues4, formComponentValues5, formComponentValues6, formComponentValues7, formComponentValues8,
                  formComponentValues9,formComponentValues10, formComponentValues11, formComponentValues12, formComponentValues13, formComponentValues14
             },
-            TargetSelectActioners = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners>
+                TargetSelectActioners = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners>
             {
                 targetSelectActioners0
             },
-            Approvers = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers>
+                Approvers = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers>
             {
                 approvers0
             },
-            CcList = new List<string>
+                CcList = new List<string>
             {
                UserId
             },
-            CcPosition = "START",
+                CcPosition = "START",
 
-        };
-        return "1";
-        //try
-        //{
-        //    string requestContent = Newtonsoft.Json.JsonConvert.SerializeObject(startProcessInstanceRequest);
-        //    Debug.WriteLine("startProcessInstanceRequest鍐呭锛�");
-        //    Debug.WriteLine(requestContent);
-        //    var response = client.StartProcessInstanceWithOptions(startProcessInstanceRequest, startProcessInstanceHeaders, new RuntimeOptions());
-        //    return $"閽夐拤宸ヤ綔娴佸疄渚嬪惎鍔ㄦ垚鍔�: {Newtonsoft.Json.JsonConvert.SerializeObject(response.Body)}";
-        //}
-        //catch (TeaException err)
-        //{
-        //    string requestContent = Newtonsoft.Json.JsonConvert.SerializeObject(startProcessInstanceRequest);
-        //    Debug.WriteLine("startProcessInstanceRequest鍐呭锛�");
-        //    Debug.WriteLine(startProcessInstanceRequest);
-        //    return $"TeaException: Code={err.Code}, Message={err.Message}";
-        //}
-        //catch (Exception _err)
-        //{
-        //    return $"Exception: {_err.Message}";
-        //}
+            };
+            // 搴忓垪鍖� FormComponentValues 鍒楄〃涓� JSON 鏍煎紡
+            string formComponentValuesJson = JsonConvert.SerializeObject(startProcessInstanceRequest.FormComponentValues, Formatting.Indented);
+            Debug.WriteLine("FormComponentValues: " + formComponentValuesJson);
+            try
+            {
+                string requestContent = Newtonsoft.Json.JsonConvert.SerializeObject(startProcessInstanceRequest);
+                Debug.WriteLine("startProcessInstanceRequest鍐呭锛�");
+                Debug.WriteLine(requestContent);
+                var response = client.StartProcessInstanceWithOptions(startProcessInstanceRequest, startProcessInstanceHeaders, new RuntimeOptions());
+                return $"閽夐拤宸ヤ綔娴佸疄渚嬪惎鍔ㄦ垚鍔�: {Newtonsoft.Json.JsonConvert.SerializeObject(response.Body)}";
+            }
+            catch (TeaException err)
+            {
+                string requestContent = Newtonsoft.Json.JsonConvert.SerializeObject(startProcessInstanceRequest);
+                Debug.WriteLine("startProcessInstanceRequest鍐呭锛�");
+                Debug.WriteLine(startProcessInstanceRequest);
+                return $"TeaException: Code={err.Code}, Message={err.Message}";
+            }
+            catch (Exception _err)
+            {
+                return $"Exception: {_err.Message}";
+            }
+        }
+        else {
+            return "鎮ㄤ笉鏄叕鍙告垚鍛樻垨杩樻湭琚姞鍏ュ埌鏁版嵁搴撲腑鎴栧悕瀛楀~鍐欓敊璇紝鎬讳箣鏈壘鍒板尮閰嶇殑鐢ㄦ埛淇℃伅";
+        }
     }
 
 
@@ -320,7 +332,10 @@
         var QcIssueResults = new QcIssueResults
         {
             ProcessNo = ProcessNo,
-            ReleaseNo = ReleaseNo
+            ReleaseNo = ReleaseNo,
+            QcStatu = "",
+            TCSTATU =""
+            
         };
 
         return QcIssueResults;
@@ -345,7 +360,20 @@
         var mesQcIssueResults = new QcIssueResults
         {
             ProcessNo = erpQcIssueResult.ProcessNo,
-            FReview = erpQcIssueResult.FReview
+            FReview = erpQcIssueResult.FReview,
+            QcStatu = erpQcIssueResult.QCSTATU,
+            QCREMARK = erpQcIssueResult.QcRemark,
+            SELECTREMARK = erpQcIssueResult.SelectRemark,
+            DATA = erpQcIssueResult.DATA,
+            CGORDER = erpQcIssueResult.CGORDER,
+            SJPLACE = erpQcIssueResult.SJPLACE,
+            NUM = erpQcIssueResult.NUM,
+            BFREMARK = erpQcIssueResult.BFREMARK,
+            THREMARK = erpQcIssueResult.THREMARK,
+            TCSTATU = erpQcIssueResult.TCSTATU,
+            MODEL =erpQcIssueResult.MODEL,
+            RBJSREMARK =erpQcIssueResult.RBJSREMARK,
+            RETURN_DATE=System.DateTime.Now
         };
 
         return mesQcIssueResults;
@@ -357,45 +385,368 @@
     private bool SaveOrUpdateData(SqlSugarScope db, QcIssueResults qcIssueResults)
     {
 
-        // 妫�鏌rocessNo鏄惁宸茬粡瀛樺湪浜庢暟鎹簱涓�
-        var existingRecord = db.Queryable<QcIssueResults>()
-                               .Where(it => it.ProcessNo == qcIssueResults.ProcessNo)
-                               .First(); // 浣跨敤FirstOrDefault鏇夸唬
+        // 鏌ヨ QcIssueResults 琛ㄤ腑鏄惁瀛樺湪鍖归厤鐨勮褰�
+        var mapping = db.Queryable<QcIssueResults>()
+            .Where(t => t.ProcessNo == qcIssueResults.ProcessNo)
+            .Select(t => new QcIssueResults
+            {
+                ReleaseNo = t.ReleaseNo,
+            })
+            .ToList();
 
-        if (existingRecord != null)
+        if (mapping.Any())
         {
-            // 濡傛灉瀛樺湪锛屾洿鏂拌褰�
-            existingRecord.ProcessNo = qcIssueResults.ProcessNo; // 鍋囪Data鏄渶瑕佹洿鏂扮殑瀛楁
-            existingRecord.FReview = qcIssueResults.FReview; // 鏇存柊鍏朵粬瀛楁
-                                                                   // ... 鏇存柊鍏朵粬闇�瑕佹洿鏂扮殑瀛楁
+            if (qcIssueResults.TCSTATU == "鏄�")
+            {
+                if (qcIssueResults.QcStatu == "鎷掔粷")
+                {
+                    string ReleaseNo = mapping.FirstOrDefault().ReleaseNo;
 
-            // 鎵ц鏇存柊鎿嶄綔
-            var updateResult = db.Updateable(existingRecord).ExecuteCommand();
-            return updateResult > 0; // 濡傛灉鏇存柊鎴愬姛锛岃繑鍥瀟rue
+                    // 鍙洿鏂� ReleaseNo 鍜� FReview 涓や釜瀛楁
+                    var updateResult = db.Updateable<QcIssueResults>()
+                        .SetColumns(t => new QcIssueResults
+                        {
+                            ReleaseNo = ReleaseNo,
+                            FReview = qcIssueResults.FReview,
+                            QcStatu = qcIssueResults.QcStatu,
+                            QCREMARK = qcIssueResults.QCREMARK,
+                            SELECTREMARK = qcIssueResults.SELECTREMARK,
+                            DATA = qcIssueResults.DATA,
+                            CGORDER = qcIssueResults.CGORDER,
+                            SJPLACE = qcIssueResults.SJPLACE,
+                            NUM = qcIssueResults.NUM,
+                            BFREMARK = qcIssueResults.BFREMARK,
+                            THREMARK = qcIssueResults.THREMARK,
+                            TCSTATU = qcIssueResults.TCSTATU,
+                            MODEL = qcIssueResults.MODEL,
+                            RBJSREMARK = qcIssueResults.RBJSREMARK,
+                            RETURN_DATE=System.DateTime.Now
+                        })
+                        .Where(t => t.ProcessNo == qcIssueResults.ProcessNo) // 鏄惧紡鎸囧畾鏇存柊鏉′欢
+                        .ExecuteCommand();
+
+                    // 鏌ヨ UpdateMesQaItems 琛ㄤ腑鏄惁瀛樺湪鍖归厤鐨勮褰�
+                    var existingRecord = db.Queryable<UpdateMesQaItems>()
+                        .Where(it => it.ReleaseNo == ReleaseNo)
+                        .First(); // 浣跨敤 First 鑾峰彇绗竴鏉¤褰�
+
+                    Debug.WriteLine($"鏌ヨ鍒扮殑 mapping: {JsonConvert.SerializeObject(existingRecord)}");
+
+                    if (existingRecord != null)
+                    {
+                       
+                        bool returnValue = false;
+                        try
+                        {
+                            //瀹氫箟杈撳叆鍙傛暟
+                            var inputParam1 = new SugarParameter("pi_no", existingRecord.ReleaseNo);
+                            var inputParam2 = new SugarParameter("pi_user", "PL017");
+                            // 瀹氫箟杈撳嚭鍙傛暟
+                            var outParam1 = new SugarParameter("po_result", null, true);
+                            var outParam2 = new SugarParameter("po_msg", null, true);
+                            // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼
+                            Db.Ado.ExecuteCommand("BEGIN PRC_MES_IQC_CG_REVOCK(:pi_no,:pi_user,:po_result,:po_msg ); END;", inputParam1, inputParam2, outParam1, outParam2);
+                            // 鑾峰彇杈撳嚭鍙傛暟鐨勫��
+                            int result = int.Parse((string)outParam1.Value);
+                            string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value;
+                            if (result == 1)
+                            {
+                                //瀛樺偍杩囩▼澶辫触鍒欎簨鍔¤繘琛屽洖婊�
+                                db.Ado.RollbackTran();
+                                throw new Exception(message);
+                            }
+                            // 鎻愪氦浜嬪姟
+                            db.Ado.CommitTran();
+                            return true;
+                        }
+                        catch (Exception ex)
+                        {
+                            Console.WriteLine("Exception: " + ex.Message);
+                            return false;
+                        }
+                    }
+                    else
+                    {
+                        throw new Exception("鏈壘鍒伴渶瑕佹洿鏂扮殑璁板綍");
+                    }
+                }
+                else
+                {
+                    string ReleaseNo = mapping.FirstOrDefault().ReleaseNo;
+
+                    // 鍙洿鏂� ReleaseNo 鍜� FReview 涓や釜瀛楁
+                    var updateResult = db.Updateable<QcIssueResults>()
+                        .SetColumns(t => new QcIssueResults
+                        {
+                            ReleaseNo = ReleaseNo,
+                            FReview = qcIssueResults.FReview,
+                            QcStatu = qcIssueResults.QcStatu,
+                            QCREMARK = qcIssueResults.QCREMARK,
+                            SELECTREMARK = qcIssueResults.SELECTREMARK,
+                            DATA = qcIssueResults.DATA,
+                            CGORDER = qcIssueResults.CGORDER,
+                            SJPLACE = qcIssueResults.SJPLACE,
+                            NUM = qcIssueResults.NUM,
+                            BFREMARK = qcIssueResults.BFREMARK,
+                            THREMARK = qcIssueResults.THREMARK,
+                            TCSTATU = qcIssueResults.TCSTATU,
+                            MODEL = qcIssueResults.MODEL,
+                            RBJSREMARK = qcIssueResults.RBJSREMARK,
+                            RETURN_DATE = System.DateTime.Now
+                        })
+                        .Where(t => t.ProcessNo == qcIssueResults.ProcessNo) // 鏄惧紡鎸囧畾鏇存柊鏉′欢
+                        .ExecuteCommand();
+
+                    // 鏌ヨ UpdateMesQaItems 琛ㄤ腑鏄惁瀛樺湪鍖归厤鐨勮褰�
+                    var existingRecord = db.Queryable<UpdateMesQaItems>()
+                        .Where(it => it.ReleaseNo == ReleaseNo)
+                        .First(); // 浣跨敤 First 鑾峰彇绗竴鏉¤褰�
+
+                    Debug.WriteLine($"鏌ヨ鍒扮殑 mapping: {JsonConvert.SerializeObject(existingRecord)}");
+
+                    if (existingRecord != null)
+                    {
+                        // 鏇存柊 UpdateMesQaItems 琛ㄤ腑鐨勫瓧娈�
+                        existingRecord.FngHandle = "鐗归噰鐩存帴浣跨敤";
+                        existingRecord.FMRMODE = null;
+                       
+                        // 鎵ц鏇存柊鎿嶄綔
+                        updateResult = db.Updateable(existingRecord).ExecuteCommand();
+                        if (updateResult > 0)
+                        {
+                            try
+                            {
+
+                                //瀹氫箟杈撳叆鍙傛暟
+                                var inputParam1 = new SugarParameter("PI_BILLNO", ReleaseNo);
+                                var inputParam2 = new SugarParameter("PI_USER", "PL017");
+                                var inputParam3 = new SugarParameter("PI_HANDLE", "鐗归噰鐩存帴浣跨敤");
+                                var inputParam4 = new SugarParameter("PI_TLFS", "");
+                                var inputParam5 = new SugarParameter("PI_REMARK", "");
+
+                                // 瀹氫箟杈撳嚭鍙傛暟
+                                var outParam1 = new SugarParameter("PO_RESULT", null, true);
+                                var outParam2 = new SugarParameter("PO_MSG", null, true);
+                                // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼
+                                Db.Ado.ExecuteCommand("BEGIN PRC_MES_IQC_CG_SUBMIT(:PI_BILLNO,:PI_BILLNO,:PI_HANDLE,:PI_TLFS,:PI_REMARK,:PO_RESULT,:PO_MSG); END;", inputParam1, inputParam2, inputParam3, inputParam4, inputParam5, outParam1, outParam2);
+                                // 鑾峰彇杈撳嚭鍙傛暟鐨勫��
+                                int result = int.Parse((string)outParam1.Value);
+                                string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value;
+                                if (result == 1)
+                                {
+                                    //瀛樺偍杩囩▼澶辫触鍒欎簨鍔¤繘琛屽洖婊�
+                                    db.Ado.RollbackTran();
+                                    throw new Exception(message);
+                                }
+                                // 鎻愪氦浜嬪姟
+                                db.Ado.CommitTran();
+                                return true;
+
+                            }
+                            catch (Exception ex)
+                            {
+                                Console.WriteLine("Exception: " + ex.Message);
+                                return false;
+                            }
+                        }
+
+                        return updateResult > 0; // 濡傛灉鏇存柊鎴愬姛锛岃繑鍥� true
+                    }
+                    else
+                    {
+                        throw new Exception("鏈壘鍒伴渶瑕佹洿鏂扮殑璁板綍");
+                    }
+                }
+            }
+            else
+            {
+                if (qcIssueResults.QcStatu == "鎷掔粷")
+                {
+                    string ReleaseNo = mapping.FirstOrDefault().ReleaseNo;
+
+                    // 鍙洿鏂� ReleaseNo 鍜� FReview 涓や釜瀛楁
+                    var updateResult = db.Updateable<QcIssueResults>()
+                        .SetColumns(t => new QcIssueResults
+                        {
+                            ReleaseNo = ReleaseNo,
+                            FReview = qcIssueResults.FReview,
+                            QcStatu = qcIssueResults.QcStatu,
+                            QCREMARK = qcIssueResults.QCREMARK,
+                            SELECTREMARK = qcIssueResults.SELECTREMARK,
+                            DATA = qcIssueResults.DATA,
+                            CGORDER = qcIssueResults.CGORDER,
+                            SJPLACE = qcIssueResults.SJPLACE,
+                            NUM = qcIssueResults.NUM,
+                            BFREMARK = qcIssueResults.BFREMARK,
+                            THREMARK = qcIssueResults.THREMARK,
+                            TCSTATU = qcIssueResults.TCSTATU,
+                            MODEL = qcIssueResults.MODEL,
+                            RBJSREMARK = qcIssueResults.RBJSREMARK,
+                            RETURN_DATE = System.DateTime.Now
+                        })
+                        .Where(t => t.ProcessNo == qcIssueResults.ProcessNo) // 鏄惧紡鎸囧畾鏇存柊鏉′欢
+                        .ExecuteCommand();
+
+                    // 鏌ヨ UpdateMesQaItems 琛ㄤ腑鏄惁瀛樺湪鍖归厤鐨勮褰�
+                    var existingRecord = db.Queryable<UpdateMesQaItems>()
+                        .Where(it => it.ReleaseNo == ReleaseNo)
+                        .First(); // 浣跨敤 First 鑾峰彇绗竴鏉¤褰�
+
+                   Console.WriteLine($"鏌ヨ鍒扮殑 mapping: {JsonConvert.SerializeObject(existingRecord)}");
+
+                    if (existingRecord != null)
+                    {
+                 
+                        try
+                        {
+
+                            //瀹氫箟杈撳叆鍙傛暟
+                            var inputParam1 = new SugarParameter("pi_no", existingRecord.ReleaseNo);
+                            var inputParam2 = new SugarParameter("pi_user", "PL017");
+                            // 瀹氫箟杈撳嚭鍙傛暟
+                            var outParam1 = new SugarParameter("po_result", null, true);
+                            var outParam2 = new SugarParameter("po_msg", null, true);
+                            // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼
+                            Db.Ado.ExecuteCommand("BEGIN PRC_MES_IQC_CG_REVOCK(:pi_no,:pi_user,:po_result,:po_msg ); END;", inputParam1, inputParam2, outParam1, outParam2);
+                            // 鑾峰彇杈撳嚭鍙傛暟鐨勫��
+                            int result = int.Parse((string)outParam1.Value);
+                            string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value;
+                            if (result == 1)
+                            {
+                                //瀛樺偍杩囩▼澶辫触鍒欎簨鍔¤繘琛屽洖婊�
+                                db.Ado.RollbackTran();
+                                throw new Exception(message);
+                            }
+                            // 鎻愪氦浜嬪姟
+                            db.Ado.CommitTran();
+                            return true;
+                            
+                        }
+                        catch (Exception ex)
+                        {
+                            Console.WriteLine("Exception: " + ex.Message);
+                            return false;
+                        }
+                    }
+                    else
+                    {
+                        throw new Exception("鏈壘鍒伴渶瑕佹洿鏂扮殑璁板綍");
+                    }
+                }
+                else
+                {
+                    string ReleaseNo = mapping.FirstOrDefault().ReleaseNo;
+
+                    // 鍙洿鏂� ReleaseNo 鍜� FReview 涓や釜瀛楁
+                    var updateResult = db.Updateable<QcIssueResults>()
+                        .SetColumns(t => new QcIssueResults
+                        {
+                            ReleaseNo = ReleaseNo,
+                            FReview = qcIssueResults.FReview,
+                            QcStatu = qcIssueResults.QcStatu,
+                            QCREMARK = qcIssueResults.QCREMARK,
+                            SELECTREMARK = qcIssueResults.SELECTREMARK,
+                            DATA = qcIssueResults.DATA,
+                            CGORDER = qcIssueResults.CGORDER,
+                            SJPLACE = qcIssueResults.SJPLACE,
+                            NUM = qcIssueResults.NUM,
+                            BFREMARK = qcIssueResults.BFREMARK,
+                            THREMARK = qcIssueResults.THREMARK,
+                            TCSTATU = qcIssueResults.TCSTATU,
+                            MODEL = qcIssueResults.MODEL,
+                            RBJSREMARK = qcIssueResults.RBJSREMARK,
+                        })
+                        .Where(t => t.ProcessNo == qcIssueResults.ProcessNo) // 鏄惧紡鎸囧畾鏇存柊鏉′欢
+                        .ExecuteCommand();
+
+                    // 鏌ヨ UpdateMesQaItems 琛ㄤ腑鏄惁瀛樺湪鍖归厤鐨勮褰�
+                    var existingRecord = db.Queryable<UpdateMesQaItems>()
+                        .Where(it => it.ReleaseNo == ReleaseNo)
+                        .First(); // 浣跨敤 First 鑾峰彇绗竴鏉¤褰�
+
+                    Debug.WriteLine($"鏌ヨ鍒扮殑 mapping: {JsonConvert.SerializeObject(existingRecord)}");
+
+                    if (existingRecord != null)
+                    {
+                        // 鏇存柊 UpdateMesQaItems 琛ㄤ腑鐨勫瓧娈�
+                        existingRecord.FngHandle = qcIssueResults.FReview;
+                        if (existingRecord.FngHandle == "閫�璐�")
+                        {
+                            existingRecord.FMRMODE = "閫�鏂欒ˉ鏂�";
+                        }
+                        else if (existingRecord.FngHandle == "鎸戦�変娇鐢�")
+                        {
+                            existingRecord.FMRMODE = "閫�鏂欒ˉ鏂�";
+                        }
+                        else if (existingRecord.FngHandle == "鎶ュ簾")
+                        {
+                            existingRecord.FMRMODE = "閫�鏂欒ˉ鏂�";
+                        }
+                        else
+                        {
+                            existingRecord.FMRMODE = null;
+                        }
+
+                        // 鎵ц鏇存柊鎿嶄綔
+                        updateResult = db.Updateable(existingRecord).ExecuteCommand();
+
+                        if(updateResult > 0)
+                        {
+                            try
+                            {
+
+                                //瀹氫箟杈撳叆鍙傛暟
+                                var inputParam1 = new SugarParameter("PI_BILLNO", ReleaseNo);
+                                var inputParam2 = new SugarParameter("PI_USER", "PL017");
+                                var inputParam3 = new SugarParameter("PI_HANDLE", existingRecord.FngHandle);
+                                var inputParam4 = new SugarParameter("PI_TLFS", existingRecord.FMRMODE);
+                                var inputParam5 = new SugarParameter("PI_REMARK", "");
+
+                                // 瀹氫箟杈撳嚭鍙傛暟
+                                var outParam1 = new SugarParameter("PO_RESULT", null, true);
+                                var outParam2 = new SugarParameter("PO_MSG", null, true);
+                                // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼
+                                Db.Ado.ExecuteCommand("BEGIN PRC_MES_IQC_CG_SUBMIT(:PI_BILLNO,:PI_BILLNO,:PI_HANDLE,:PI_TLFS,:PI_REMARK,:PO_RESULT,:PO_MSG); END;", inputParam1, inputParam2, inputParam3, inputParam4, inputParam5, outParam1, outParam2);
+                                // 鑾峰彇杈撳嚭鍙傛暟鐨勫��
+                                int result = int.Parse((string)outParam1.Value);
+                                string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value;
+                                if (result == 1)
+                                {
+                                    //瀛樺偍杩囩▼澶辫触鍒欎簨鍔¤繘琛屽洖婊�
+                                    db.Ado.RollbackTran();
+                                    throw new Exception(message);
+                                }
+                                // 鎻愪氦浜嬪姟
+                                db.Ado.CommitTran();
+                                return true;
+
+                            }
+                            catch (Exception ex)
+                            {
+                                Console.WriteLine("Exception: " + ex.Message);
+                                return false;
+                            }
+                        }
+
+                        return updateResult > 0; // 濡傛灉鏇存柊鎴愬姛锛岃繑鍥� true
+                    }
+                    else
+                    {
+                        throw new Exception("鏈壘鍒伴渶瑕佹洿鏂扮殑璁板綍");
+                    }
+                }
+            }
+            
         }
         else
         {
+            // 濡傛灉 mapping 涓虹┖锛屾彃鍏ユ柊璁板綍鍒� QcIssueResults 琛�
             var orUpdate = base.Insert(qcIssueResults);
             if (orUpdate) return true;
             throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
         }
-       
+
     }
 
-    ///**
-    // * 灏嗗甫鏈夋祦绋嬪彿鍜屾楠屽崟鍙风殑鏂拌褰曟彃鍏ヨ〃涓�
-    // */
-    //public dynamic GetDingUserId()
-    //{
-
-    //    return UseTransaction(db =>
-    //    {
-    //        return SaveOrUpdateData(db) ? 1 : 0;
-    //    }) > 0;
-    //}
-
-    //public string FindDingUserId(SqlSugarScope db,DingNameCode dingNameCode)
-    //{
-
-    //}
+   
 }
\ No newline at end of file

--
Gitblit v1.9.3