From d84ac8a7ee3121b791d8d4d59ab6f2b766796948 Mon Sep 17 00:00:00 2001
From: cnf <3200815559@qq.com>
Date: 星期一, 24 三月 2025 13:45:34 +0800
Subject: [PATCH] 异常处置单完成

---
 MESApplication/Controllers/BasicData/SentLaboratoryTestingItemsControllor.cs |   61 ++
 MES.Service/Modes/QcIssueResult/UpdateMesQaItems .cs                         |   24 +
 MES.Service/Modes/QcIssueResult/GetQcIssueResultDetail.cs                    |    8 
 MES.Service/Dto/webApi/ProductionOrder/ErpProductionOrder.cs                 |    4 
 MESApplication/bin/Debug/net8.0/MES.Service.pdb                              |    0 
 MESApplication/bin/Debug/net8.0/MES.Service.dll                              |    0 
 MESApplication/bin/Debug/net8.0/MESApplication.pdb                           |    0 
 MES.Service/Modes/SentLaboratory/GetLaboratoryDetails.cs                     |   29 +
 MES.Service/Modes/SentLaboratory/UpdateMesQmsSample.cs                       |  146 ++++++
 MES.Service/service/SentLaboratory/SentLaboratoryTestingItemsManager.cs      |   37 +
 MES.Service/Modes/SentLaboratory/SentLaboratoryTestingItems.cs               |    4 
 MES.Service/bin/Debug/net8.0/MES.Service.pdb                                 |    0 
 MES.Service/service/ProductionOrder/ProductionOrderManager.cs                |  278 ++++++++++++
 MES.Service/service/ProductionOrder/ResultDataAndSpaceId.cs                  |   17 
 MESApplication/bin/Debug/net8.0/MESApplication.dll                           |    0 
 MES.Service/bin/Debug/net8.0/MES.Service.dll                                 |    0 
 MESApplication/Controllers/QcIssueResult/QcIssueResultController.cs          |    5 
 MESApplication/bin/Debug/net8.0/MESApplication.xml                           |   12 
 MES.Service/Dto/webApi/ProductionOrder/ProductionsOrder.cs                   |    4 
 MES.Service/service/QcIssueResult/QcIssueResultManager.cs                    |  355 ++++++++-------
 /dev/null                                                                    |  133 ------
 MESApplication/bin/Debug/net8.0/MESApplication.exe                           |    0 
 MESApplication/Controllers/ProductionOrder/ProductionOrderController.cs      |   17 
 MES.Service/Modes/ProductionOrder/ProductionOrders.cs                        |    2 
 MES.Service/service/SentLaboratory/SaveLaboratoryManager.cs                  |  157 +++++++
 25 files changed, 972 insertions(+), 321 deletions(-)

diff --git a/MES.Service/Dto/webApi/ErpProductionOrder.cs b/MES.Service/Dto/webApi/ProductionOrder/ErpProductionOrder.cs
similarity index 63%
rename from MES.Service/Dto/webApi/ErpProductionOrder.cs
rename to MES.Service/Dto/webApi/ProductionOrder/ErpProductionOrder.cs
index 65776dc..403499a 100644
--- a/MES.Service/Dto/webApi/ErpProductionOrder.cs
+++ b/MES.Service/Dto/webApi/ProductionOrder/ErpProductionOrder.cs
@@ -1,6 +1,6 @@
-锘縩amespace MES.Service.Dto.webApi
+锘縩amespace MES.Service.Dto.webApi.ProductionOrder
 {
-   public class ErpProductionOrder
+    public class ErpProductionOrder
     {
         //public string? Id { get; set; }
         public string? SalesOrder { get; set; }
diff --git a/MES.Service/Dto/webApi/ProductionOrder.cs b/MES.Service/Dto/webApi/ProductionOrder/ProductionsOrder.cs
similarity index 70%
rename from MES.Service/Dto/webApi/ProductionOrder.cs
rename to MES.Service/Dto/webApi/ProductionOrder/ProductionsOrder.cs
index 4255a0d..be20a4f 100644
--- a/MES.Service/Dto/webApi/ProductionOrder.cs
+++ b/MES.Service/Dto/webApi/ProductionOrder/ProductionsOrder.cs
@@ -4,9 +4,9 @@
 using System.Text;
 using System.Threading.Tasks;
 
-namespace MES.Service.Dto.webApi
+namespace MES.Service.Dto.webApi.ProductionOrder
 {
-    public class ProductionOrder
+    public class ProductionsOrder
     {
         public ErpProductionOrder erpProductionOrder { get; set; }
     }
diff --git a/MES.Service/Modes/ProductionOrders.cs b/MES.Service/Modes/ProductionOrder/ProductionOrders.cs
similarity index 91%
rename from MES.Service/Modes/ProductionOrders.cs
rename to MES.Service/Modes/ProductionOrder/ProductionOrders.cs
index 33d81f8..46db257 100644
--- a/MES.Service/Modes/ProductionOrders.cs
+++ b/MES.Service/Modes/ProductionOrder/ProductionOrders.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Modes;
+namespace MES.Service.Modes.ProductionOrder;
 
 //閫佽揣鍗曞ご
 [SugarTable("MES_PRODUCTION_ORDER")]
diff --git a/MES.Service/Modes/QcIssueResult/GetQcIssueResultDetail.cs b/MES.Service/Modes/QcIssueResult/GetQcIssueResultDetail.cs
index c218ec8..140b957 100644
--- a/MES.Service/Modes/QcIssueResult/GetQcIssueResultDetail.cs
+++ b/MES.Service/Modes/QcIssueResult/GetQcIssueResultDetail.cs
@@ -10,19 +10,19 @@
 public class GetQcIssueResultDetail
 {
     //鏁伴噺
-    [SugarColumn(ColumnName = "FBATCH_QTY")]
+
     public string? FbatchQty { get; set; }
 
     //浜у搧鍚嶇О
-    [SugarColumn(ColumnName = "ITEM_NAME")]
+  
     public string? ItemName { get; set; }
 
     //瑙勬牸鍨嬪彿
-    [SugarColumn(ColumnName = "ITEM_MODEL")]
+
     public string? ItemModel { get; set; }
 
     //閫佹鍗曚綅
-    [SugarColumn(ColumnName = "SUPP_NAME")]
+
     public string? SuppName { get; set; }
 
     ////璁㈠崟鍙�(閲囪喘鍗曞彿)
diff --git a/MES.Service/Modes/QcIssueResult/GetReleaseNoDetail.cs b/MES.Service/Modes/QcIssueResult/GetReleaseNoDetail.cs
deleted file mode 100644
index 326684f..0000000
--- a/MES.Service/Modes/QcIssueResult/GetReleaseNoDetail.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-锘縰sing SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MES.Service.Modes.QcIssueResult;
-
-[SugarTable("MES_DINGDING_NAME_CODE")]
-public class GetReleaseNoDetail
-{
-
-    //閫佽揣鍗曞彿
-    [SugarColumn(ColumnName = "DINGDINGCODE")]
-    public string? DingDingCode { get; set; }
-
-    //渚涘簲鍟�
-    [SugarColumn(ColumnName = "DINGDINGNAME")]
-    public string? DingDingName { get; set; }
-
-}
diff --git a/MES.Service/Modes/QcIssueResult/UpdateMesQaItems .cs b/MES.Service/Modes/QcIssueResult/UpdateMesQaItems .cs
new file mode 100644
index 0000000..e9e69d9
--- /dev/null
+++ b/MES.Service/Modes/QcIssueResult/UpdateMesQaItems .cs
@@ -0,0 +1,24 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MES.Service.Modes.QcIssueResult;
+
+[SugarTable("MES_QA_ITEMS_DETECT_01")]
+public class UpdateMesQaItems
+{
+    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_QM_ID",
+        IsPrimaryKey = true)]
+    public decimal Id { get; set; }
+    //閫佽揣鍗曞彿
+    [SugarColumn(ColumnName = "RELEASE_NO")]
+    public string? ReleaseNo { get; set; }
+
+    //閫佽揣鍗曞彿
+    [SugarColumn(ColumnName = "FNG_HANDLE")]
+    public string? FngHandle{ get; set; }
+
+}
diff --git a/MES.Service/Modes/SentLaboratory/GetLaboratoryDetails.cs b/MES.Service/Modes/SentLaboratory/GetLaboratoryDetails.cs
new file mode 100644
index 0000000..8034d6b
--- /dev/null
+++ b/MES.Service/Modes/SentLaboratory/GetLaboratoryDetails.cs
@@ -0,0 +1,29 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MES.Service.Modes.SentLaboratory;
+
+public class GetLaboratoryDetails
+{
+    public string? RELEASE_NO { get; set; }
+    public string? DEPARTMENTNAME { get; set; }
+    public DateTime? CREATE_DATE1 { get; set; }
+    public string? LOT_NO { get; set; }
+    public string? ITEM_NAME { get; set; }
+    public string? QUANTITY { get; set; }
+    public decimal? URGENT_FLAG { get; set; }
+    public DateTime? COMPLETE_DATE { get; set; }
+    public string? TEST_REQ { get; set; }
+    public string? SIM_REQ { get; set; }
+    public List<SentLaboratoryTestingItems>? CHECKBOX { get; set; }
+    public string? Line04 { get; set; }
+    public string? REMARKS { get; set; }
+    public string? ITEM_NO { get; set; }
+    public string? DEPARTMENTCODE { get; set; }
+    public string? JYDH { get; set; }
+
+
+}
diff --git a/MES.Service/Modes/SentLaboratoryTestingItems.cs b/MES.Service/Modes/SentLaboratory/SentLaboratoryTestingItems.cs
similarity index 90%
rename from MES.Service/Modes/SentLaboratoryTestingItems.cs
rename to MES.Service/Modes/SentLaboratory/SentLaboratoryTestingItems.cs
index dfe92b9..9733d4d 100644
--- a/MES.Service/Modes/SentLaboratoryTestingItems.cs
+++ b/MES.Service/Modes/SentLaboratory/SentLaboratoryTestingItems.cs
@@ -1,6 +1,6 @@
 锘縰sing SqlSugar;
 
-namespace MES.Service.Modes;
+namespace MES.Service.Modes.SentLaboratory;
 
 /// <summary>
 ///     瀹為獙瀹ら�佹椤圭洰琛�
@@ -19,5 +19,5 @@
     /// </summary>
     [SugarColumn(ColumnName = "INSPECTION_ITEMS")]
     public string? InspectionItems { get; set; }
-   
+
 }
diff --git a/MES.Service/Modes/SentLaboratory/UpdateMesQmsSample.cs b/MES.Service/Modes/SentLaboratory/UpdateMesQmsSample.cs
new file mode 100644
index 0000000..2f0ec86
--- /dev/null
+++ b/MES.Service/Modes/SentLaboratory/UpdateMesQmsSample.cs
@@ -0,0 +1,146 @@
+锘縰sing SqlSugar;
+
+
+namespace MES.Service.Modes.SentLaboratory;
+
+//寮備骇鍝佹娴嬪崟琛�
+[SugarTable("MES_QMS_SAMPLE")]
+public class UpdateMesQmsSample
+{
+    //SEQ_QMS_EQ_CHECK
+    [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_QMS_EQ_CHECK")]
+    public decimal Id { get; set; }
+
+    //閫佹鍗曞彿
+    [SugarColumn(ColumnName = "RELEASE_NO")]
+    public string? ReleaseNo { get; set; }
+
+    //浜у搧缂栫爜
+    [SugarColumn(ColumnName = "ITEM_NO")]
+    public string? ItemNo { get; set; }
+
+    //浜у搧鍚嶇О
+    [SugarColumn(ColumnName = "ITEM_NAME")]
+    public string? ItemName { get; set; }
+
+    //鐢宠閮ㄩ棬缂栧彿
+    [SugarColumn(ColumnName = "DEPARTMENTCODE")]
+    public string? DEPARTMENTCODE { get; set; }
+
+    //鐢宠閮ㄩ棬鍚嶇О
+    [SugarColumn(ColumnName = "DEPARTMENTNAME")]
+    public string? DEPARTMENTNAME { get; set; }
+
+    //鐢宠鏃ユ湡
+    [SugarColumn(ColumnName = "CREATE_DATE")]
+    public DateTime? CreateDate { get; set; }
+
+    //鏍锋湰鏁伴噺
+    [SugarColumn(ColumnName = "QUANTITY")]
+    public string? QUANTITY { get; set; }
+
+    //瑕佹眰瀹屾垚鏃堕棿
+    [SugarColumn(ColumnName = "COMPLETE_DATE")]
+    public DateTime? CompleteDate { get; set; }
+
+    //娴嬭瘯瑕佹眰
+    [SugarColumn(ColumnName = "TEST_REQ")]
+    public string? TestReq { get; set; }
+
+    //鎬ユ枡鏍囪瘑
+    [SugarColumn(ColumnName = "URGENT_FLAG")]
+    public decimal? UrgentFlag { get; set; }
+
+    //閫佽揣鍗曞彿
+    [SugarColumn(ColumnName = "PAPER_BILL_NO")]
+    public string? PAPERBILLNO { get; set; }
+
+    //澶囨敞
+    [SugarColumn(ColumnName = "REMARKS")]
+    public string? REMARKS { get; set; }
+
+    //妯℃嫙瑕佹眰
+    [SugarColumn(ColumnName = "SIM_REQ")]
+    public string? SimReq { get; set; }
+
+    //纾侀搧鎷夊姏
+    [SugarColumn(ColumnName = "CHECK_01")]
+    public decimal? Check01 { get; set; }
+
+    //纾侀搧鎵块噸
+    [SugarColumn(ColumnName = "CHECK_02")]
+    public decimal? Check02 { get; set; }
+
+    //鐩愰浘
+    [SugarColumn(ColumnName = "CHECK_03")]
+    public decimal? Check03 { get; set; }
+
+    //IP
+    [SugarColumn(ColumnName = "CHECK_04")]
+    public decimal? Check04 { get; set; }
+
+    //鑰佸寲娴嬭瘯
+    [SugarColumn(ColumnName = "CHECK_05")]
+    public decimal? Check05 { get; set; }
+
+    //浼犲杈愬皠
+    [SugarColumn(ColumnName = "CHECK_06")]
+    public decimal? Check06 { get; set; }
+
+    //璺岃惤娴嬭瘯
+    [SugarColumn(ColumnName = "CHECK_07")]
+    public decimal? Check07 { get; set; }
+
+    //鐢电嚎鎷夊姏
+    [SugarColumn(ColumnName = "CHECK_08")]
+    public decimal? Check08 { get; set; }
+
+    //鎺ュ彛鎻掓嫈
+    [SugarColumn(ColumnName = "CHECK_09")]
+    public decimal? Check09 { get; set; }
+
+    //鍏夎氨娴嬭瘯
+    [SugarColumn(ColumnName = "CHECK_10")]
+    public decimal? Check10 { get; set; }
+
+    //ROHS
+    [SugarColumn(ColumnName = "CHECK_11")]
+    public decimal? Check11 { get; set; }
+
+    //鐢垫睜鍏呮斁鐢�
+    [SugarColumn(ColumnName = "CHECK_12")]
+    public decimal? Check12 { get; set; }
+
+    //楂樻俯
+    [SugarColumn(ColumnName = "CHECK_13")]
+    public decimal? Check13 { get; set; }
+
+    //浣庢俯
+    [SugarColumn(ColumnName = "CHECK_14")]
+    public decimal? Check14 { get; set; }
+
+    //IK
+    [SugarColumn(ColumnName = "CHECK_15")]
+    public decimal? Check15 { get; set; }
+
+    //娓╁崌娴嬭瘯
+    [SugarColumn(ColumnName = "CHECK_16")]
+    public decimal? Check16 { get; set; }
+
+    //瀵垮懡
+    [SugarColumn(ColumnName = "CHECK_17")]
+    public decimal? Check17 { get; set; }
+
+    //鍏跺畠
+    [SugarColumn(ColumnName = "CHECK_18")]
+    public decimal? Check18 { get; set; }
+
+    //鍏跺畠鐨勫唴瀹�
+    [SugarColumn(ColumnName = "LINE_04")]
+    public string? Line04 { get; set; }
+
+    //妫�楠屽崟鍙�
+    [SugarColumn(ColumnName = "JYDH")]
+    public string? JYDH { get; set; }
+
+}
diff --git a/MES.Service/bin/Debug/net8.0/MES.Service.dll b/MES.Service/bin/Debug/net8.0/MES.Service.dll
index 21ee047..d14c9d7 100644
--- a/MES.Service/bin/Debug/net8.0/MES.Service.dll
+++ b/MES.Service/bin/Debug/net8.0/MES.Service.dll
Binary files differ
diff --git a/MES.Service/bin/Debug/net8.0/MES.Service.pdb b/MES.Service/bin/Debug/net8.0/MES.Service.pdb
index 05cd36a..ab07b63 100644
--- a/MES.Service/bin/Debug/net8.0/MES.Service.pdb
+++ b/MES.Service/bin/Debug/net8.0/MES.Service.pdb
Binary files differ
diff --git a/MES.Service/service/BasicData/ProductionOrderManager.cs b/MES.Service/service/BasicData/ProductionOrderManager.cs
deleted file mode 100644
index da236d8..0000000
--- a/MES.Service/service/BasicData/ProductionOrderManager.cs
+++ /dev/null
@@ -1,133 +0,0 @@
-锘縰sing AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models;
-using AlibabaCloud.TeaUtil.Models;
-using MES.Service.DB;
-using MES.Service.Dto.webApi;
-using MES.Service.Dto.webApi.DeliveryNote;
-using MES.Service.Modes;
-using MES.Service.Modes.DeliveryNote;
-using SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using Tea;
-
-public class ProductionOrderManager : Repository<ProductionOrders>
-{
-
-    public static AlibabaCloud.SDK.Dingtalkoauth2_1_0.Client CreateClient1()
-    {
-        AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
-        config.Protocol = "https";
-        config.RegionId = "central";
-        return new AlibabaCloud.SDK.Dingtalkoauth2_1_0.Client(config);
-    }
-
-    /**
-     * 鑾峰彇閽夐拤鐨� Access Token
-     * @return string 杩斿洖鑾峰彇鍒扮殑 Access Token
-     */
-    public string GetToken()
-    {
-        AlibabaCloud.SDK.Dingtalkoauth2_1_0.Client client = CreateClient1();
-        AlibabaCloud.SDK.Dingtalkoauth2_1_0.Models.GetAccessTokenRequest getAccessTokenRequest = new AlibabaCloud.SDK.Dingtalkoauth2_1_0.Models.GetAccessTokenRequest
-        {
-            AppKey = "dingyzos0r1bizj7g6lr",
-            AppSecret = "-HP4RvK2OUbqhG3iBUpd_TPe5MZRj8cfLc0b8Skt8rhC3I38kVLY9SS8P3kLWFcH",
-        };
-
-        try
-        {
-            var response = client.GetAccessToken(getAccessTokenRequest);
-            return response.Body.AccessToken; // 杩斿洖鑾峰彇鍒扮殑 Access Token
-        }
-        catch (TeaException err)
-        {
-            Console.WriteLine($"TeaException: Code={err.Code}, Message={err.Message}");
-            return null;
-        }
-        catch (Exception _err)
-        {
-            Console.WriteLine($"Exception: {_err.Message}");
-            return null;
-        }
-    }
-
-    public static AlibabaCloud.SDK.Dingtalkyida_1_0.Client CreateClient()
-    {
-        AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
-        config.Protocol = "https";
-        config.RegionId = "central";
-        return new AlibabaCloud.SDK.Dingtalkyida_1_0.Client(config);
-    }
-
-    public string GetFileUrl()
-    {
-
-        string accessToken = GetToken();
-        if (string.IsNullOrEmpty(accessToken))
-        {
-            return "鑾峰彇 Access Token 澶辫触";
-        }
-        AlibabaCloud.SDK.Dingtalkyida_1_0.Client client = CreateClient();
-        AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetOpenUrlHeaders getOpenUrlHeaders = new AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetOpenUrlHeaders();
-        getOpenUrlHeaders.XAcsDingtalkAccessToken = accessToken;
-        AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetOpenUrlRequest getOpenUrlRequest = new AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetOpenUrlRequest
-        {
-            SystemToken = "54A66HC1YDSSO9DP61Y93CWQ2W9B36IZZOY6MC81",
-            UserId = "923188102",
-            Language = "zh_CN",
-            FileUrl = "https://cfw1x5.aliwork.com/inst/filePreview?appType=APP_Q7PLYKXMKFUJ5HY6DMWR&fileName=APP_Q7PLYKXMKFUJ5HY6DMWR_MDcxODM5NTEyMDMyNjgzODgzX09WOTY2V0ExN1lUVFRDS0Q3WjFYTTlQNUw5MVIzTTNaQ1hHOE1SOQ$$.xls",
-            Timeout = 3600000,
-        };
-        try
-        {
-           
-            var response = client.GetOpenUrlWithOptions("APP_Q7PLYKXMKFUJ5HY6DMWR", getOpenUrlRequest, getOpenUrlHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
-            return (Newtonsoft.Json.JsonConvert.SerializeObject(response.Body));
-        }
-        catch (TeaException err)
-        {
-            return $"TeaException: Code={err.Code}, Message={err.Message}";
-        }
-        catch (Exception _err)
-        {
-            return $"Exception: {_err.Message}";
-        }
-    }
-
-
-    public dynamic Save(ErpProductionOrder erpProductionOrder)
-    {
-        //var erpProductionOrder = productionOrder.erpProductionOrder;
-        var mesProductionOrder = GetMesProductionOrder(erpProductionOrder);
-
-        return UseTransaction(db =>
-        {
-            return SaveOrUpdateData(db, mesProductionOrder) ? 1 : 0;
-        }) > 0;
-    }
-
-    public dynamic SaveList(List<ErpProductionOrder> erpProductionOrder)
-    {
-        var result = erpProductionOrder.Select(Save).ToList();
-        return result.All(b => b);
-    }
-
-    public ProductionOrders GetMesProductionOrder(ErpProductionOrder erpProductionOrder)
-    {
-        var mesProductionOrders = new ProductionOrders
-        {
-            ImageUrl = erpProductionOrder.ImageUrl,
-            SalesOrder = erpProductionOrder.SalesOrder
-        };
-
-        return mesProductionOrders;
-    }
-
-    private bool SaveOrUpdateData(SqlSugarScope db, ProductionOrders productionOrders)
-    {
-        var orUpdate = base.Insert(productionOrders);
-        if (orUpdate) return true;
-        throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
-    }
-}
\ No newline at end of file
diff --git a/MES.Service/service/ProductionOrder/ProductionOrderManager.cs b/MES.Service/service/ProductionOrder/ProductionOrderManager.cs
new file mode 100644
index 0000000..d1d1f99
--- /dev/null
+++ b/MES.Service/service/ProductionOrder/ProductionOrderManager.cs
@@ -0,0 +1,278 @@
+锘縰sing AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models;
+using AlibabaCloud.SDK.Dingtalkyida_1_0.Models;
+using AlibabaCloud.TeaUtil.Models;
+using MES.Service.DB;
+using MES.Service.Dto.webApi.DeliveryNote;
+using MES.Service.Dto.webApi.ProductionOrder;
+using MES.Service.Modes.DeliveryNote;
+using MES.Service.Modes.ProductionOrder;
+using MES.Service.service;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using Tea;
+
+public class ProductionOrderManager : Repository<ProductionOrders>
+{
+    /**
+        * 鍒濆鍖栬处鍙稢lient锛岀敤浜庤幏鍙杢oken
+        * @return Client
+        * @throws Exception
+        */
+    public static AlibabaCloud.SDK.Dingtalkoauth2_1_0.Client CreateClient1()
+    {
+        AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
+        config.Protocol = "https";
+        config.RegionId = "central";
+        return new AlibabaCloud.SDK.Dingtalkoauth2_1_0.Client(config);
+    }
+
+    /**
+     * 鑾峰彇閽夐拤鐨� Access Token
+     * @return string 杩斿洖鑾峰彇鍒扮殑 Access Token
+     */
+    public string GetToken()
+    {
+        AlibabaCloud.SDK.Dingtalkoauth2_1_0.Client client = CreateClient1();
+        AlibabaCloud.SDK.Dingtalkoauth2_1_0.Models.GetAccessTokenRequest getAccessTokenRequest = new AlibabaCloud.SDK.Dingtalkoauth2_1_0.Models.GetAccessTokenRequest
+        {
+            AppKey = "dingyzos0r1bizj7g6lr",
+            AppSecret = "-HP4RvK2OUbqhG3iBUpd_TPe5MZRj8cfLc0b8Skt8rhC3I38kVLY9SS8P3kLWFcH",
+        };
+
+        try
+        {
+            var response = client.GetAccessToken(getAccessTokenRequest);
+            return response.Body.AccessToken; // 杩斿洖鑾峰彇鍒扮殑 Access Token
+        }
+        catch (TeaException err)
+        {
+            Console.WriteLine($"TeaException: Code={err.Code}, Message={err.Message}");
+            return null;
+        }
+        catch (Exception _err)
+        {
+            Console.WriteLine($"Exception: {_err.Message}");
+            return null;
+        }
+    }
+
+
+    /**
+         * 鍒濆鍖栬处鍙稢lient,鐢ㄤ簬OA瀹℃壒鐩稿叧鍔熻兘
+         * @return Client
+         * @throws Exception
+         */
+    public static AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client CreateClientOa()
+    {
+        AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
+        config.Protocol = "https";
+        config.RegionId = "central";
+        return new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client(config);
+    }
+
+    public string GetSpaceId()
+    {
+        string accessToken = GetToken();
+        if (string.IsNullOrEmpty(accessToken))
+        {
+            return "鑾峰彇 Access Token 澶辫触";
+        }
+        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client client = CreateClientOa();
+        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetAttachmentSpaceHeaders getAttachmentSpaceHeaders = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetAttachmentSpaceHeaders();
+        getAttachmentSpaceHeaders.XAcsDingtalkAccessToken = accessToken;
+        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetAttachmentSpaceRequest getAttachmentSpaceRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetAttachmentSpaceRequest
+        {
+            UserId = "923188102",
+            AgentId = 3179487642,
+        };
+        try
+        {
+
+            var response = client.GetAttachmentSpaceWithOptions(getAttachmentSpaceRequest, getAttachmentSpaceHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
+            return (Newtonsoft.Json.JsonConvert.SerializeObject(response.Body));
+        }
+        catch (TeaException err)
+        {
+            return $"TeaException: Code={err.Code}, Message={err.Message}";
+        }
+        catch (Exception _err)
+        {
+            return $"Exception: {_err.Message}";
+        }
+     }
+    public string GetProcessList()
+    {
+
+        DateTime targetTime = new DateTime(2025, 3, 10, 0, 0, 0, DateTimeKind.Utc);
+        // 杞崲涓� Unix 鏃堕棿鎴�
+        long unixTimestamp = ((DateTimeOffset)targetTime).ToUnixTimeMilliseconds();
+        Debug.WriteLine(unixTimestamp);  
+
+        long currentTimestamp = ((DateTimeOffset)DateTime.UtcNow).ToUnixTimeMilliseconds();
+        Debug.WriteLine(currentTimestamp);  // 杈撳嚭褰撳墠鏃堕棿鐨� Unix 鏃堕棿鎴�
+
+        string accessToken = GetToken();
+        if (string.IsNullOrEmpty(accessToken))
+        {
+            return "鑾峰彇 Access Token 澶辫触";
+        }
+        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client client = CreateClientOa();
+        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ListProcessInstanceIdsHeaders listProcessInstanceIdsHeaders = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ListProcessInstanceIdsHeaders();
+        listProcessInstanceIdsHeaders.XAcsDingtalkAccessToken = accessToken;
+        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ListProcessInstanceIdsRequest listProcessInstanceIdsRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ListProcessInstanceIdsRequest
+        {
+            ProcessCode = "PROC-BBA5632D-DC7C-4267-A3E2-757E2B7023BC",
+            StartTime = unixTimestamp,
+            EndTime = currentTimestamp,
+            NextToken = 0,
+            MaxResults = 10,
+            UserIds = new List<string>
+                {
+                    "923188102"
+                },
+            //Statuses = new List<string>
+            //    {
+                
+            //    },
+        };
+
+        try
+        {
+            var response = client.ListProcessInstanceIdsWithOptions(listProcessInstanceIdsRequest, listProcessInstanceIdsHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
+            return (Newtonsoft.Json.JsonConvert.SerializeObject(response.Body));
+        }
+        catch (TeaException err)
+        {
+            return $"TeaException: Code={err.Code}, Message={err.Message}";
+        }
+        catch (Exception _err)
+        {
+            return $"Exception: {_err.Message}";
+        }
+
+    }
+
+    public string GetPermissions()
+    {
+        string accessToken = GetToken();
+        if (string.IsNullOrEmpty(accessToken))
+        {
+            return "鑾峰彇 Access Token 澶辫触";
+        }
+        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client client = CreateClientOa();
+        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetSpaceWithDownloadAuthHeaders getSpaceWithDownloadAuthHeaders = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetSpaceWithDownloadAuthHeaders();
+        getSpaceWithDownloadAuthHeaders.XAcsDingtalkAccessToken = accessToken;
+        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetSpaceWithDownloadAuthRequest getSpaceWithDownloadAuthRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetSpaceWithDownloadAuthRequest
+        {
+            UserId = "071839512032683883",
+            AgentId = 3179487642,
+            ProcessInstanceId = "3vHyv40ZQUe2zK6wvl11dg06561742534701",
+            FileId = "173564282626",
+            //FileIdList = new List<string>
+            //    {
+            //        "123"
+            //    },
+        };
+        try
+        {
+            var response = client.GetSpaceWithDownloadAuthWithOptions(getSpaceWithDownloadAuthRequest, getSpaceWithDownloadAuthHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
+            return (Newtonsoft.Json.JsonConvert.SerializeObject(response.Body));
+        }
+        catch (TeaException err)
+        {
+            return $"TeaException: Code={err.Code}, Message={err.Message}";
+        }
+        catch (Exception _err)
+        {
+            return $"Exception: {_err.Message}";
+        }
+    }
+
+
+     /**
+         * 鍒濆鍖栬处鍙稢lient,鐢ㄤ簬鐢宠鏂囦欢涓存椂鍏嶇櫥鍦板潃
+         * @return Client
+         * @throws Exception
+         */
+    public static AlibabaCloud.SDK.Dingtalkyida_1_0.Client CreateClient()
+    {
+        AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
+        config.Protocol = "https";
+        config.RegionId = "central";
+        return new AlibabaCloud.SDK.Dingtalkyida_1_0.Client(config);
+    }
+
+    public string GetFileUrl(string imageUrl)
+    {
+
+        string accessToken = GetToken();
+        if (string.IsNullOrEmpty(accessToken))
+        {
+            return "鑾峰彇 Access Token 澶辫触";
+        }
+        AlibabaCloud.SDK.Dingtalkyida_1_0.Client client = CreateClient();
+        AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetOpenUrlHeaders getOpenUrlHeaders = new AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetOpenUrlHeaders();
+        getOpenUrlHeaders.XAcsDingtalkAccessToken = accessToken;
+        AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetOpenUrlRequest getOpenUrlRequest = new AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetOpenUrlRequest
+        {
+            SystemToken = "54A66HC1YDSSO9DP61Y93CWQ2W9B36IZZOY6MC81",
+            UserId = "923188102",
+            Language = "zh_CN",
+            FileUrl = imageUrl,
+            Timeout = 3600000,
+        };
+        try
+        {
+           
+            var response = client.GetOpenUrlWithOptions("APP_Q7PLYKXMKFUJ5HY6DMWR", getOpenUrlRequest, getOpenUrlHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
+            return (Newtonsoft.Json.JsonConvert.SerializeObject(response.Body));
+        }
+        catch (TeaException err)
+        {
+            return $"TeaException: Code={err.Code}, Message={err.Message}";
+        }
+        catch (Exception _err)
+        {
+            return $"Exception: {_err.Message}";
+        }
+    }
+
+
+    public dynamic Save(ErpProductionOrder erpProductionOrder)
+    {
+        //var erpProductionOrder = productionOrder.erpProductionOrder;
+        var mesProductionOrder = GetMesProductionOrder(erpProductionOrder);
+
+        return UseTransaction(db =>
+        {
+            return SaveOrUpdateData(db, mesProductionOrder) ? 1 : 0;
+        }) > 0;
+    }
+
+    public dynamic SaveList(List<ErpProductionOrder> erpProductionOrder)
+    {
+        var result = erpProductionOrder.Select(Save).ToList();
+        return result.All(b => b);
+    }
+
+    public ProductionOrders GetMesProductionOrder(ErpProductionOrder erpProductionOrder)
+    {
+        var mesProductionOrders = new ProductionOrders
+        {
+            ImageUrl = erpProductionOrder.ImageUrl,
+            SalesOrder = erpProductionOrder.SalesOrder
+        };
+
+        return mesProductionOrders;
+    }
+
+    private bool SaveOrUpdateData(SqlSugarScope db, ProductionOrders productionOrders)
+    {
+        var orUpdate = base.Insert(productionOrders);
+        if (orUpdate) return true;
+        throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
+    }
+}
\ No newline at end of file
diff --git a/MES.Service/service/ProductionOrder/ResultDataAndSpaceId.cs b/MES.Service/service/ProductionOrder/ResultDataAndSpaceId.cs
new file mode 100644
index 0000000..4659dfc
--- /dev/null
+++ b/MES.Service/service/ProductionOrder/ResultDataAndSpaceId.cs
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MES.Service.service.ProductionOrder;
+
+public class ResultDataAndSpaceId
+{
+    public ResultInfo Result { get; set; }
+    public bool Success { get; set; }
+}
+public class ResultInfo
+{
+    public string SpaceId { get; set; }
+}
diff --git a/MES.Service/service/QcIssueResult/QcIssueResultManager.cs b/MES.Service/service/QcIssueResult/QcIssueResultManager.cs
index 9427856..97f3728 100644
--- a/MES.Service/service/QcIssueResult/QcIssueResultManager.cs
+++ b/MES.Service/service/QcIssueResult/QcIssueResultManager.cs
@@ -16,11 +16,12 @@
 using MES.Service.Dto.webApi.QcIssueResult;
 using MES.Service.Dto.webApi.DeliveryNote;
 using MES.Service.Modes.DeliveryNote;
+using Newtonsoft.Json;
 
 namespace MES.Service.service.QcIssueResult;
 
 //寮傚父澶勭疆鍗曠粨鏋滆〃
-[SugarTable("MES_QCISSUE_RESULT")]
+[SugarTable("MES_QA_ITEMS_DETECT_01")]
 public class QcIssueResultManager: Repository<QcIssueResults>
 {
     /**
@@ -138,166 +139,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 = "璁㈠崟鍙�",
+            };
+            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 "鎮ㄤ笉鏄叕鍙告垚鍛樻垨杩樻湭琚姞鍏ュ埌鏁版嵁搴撲腑鎴栧悕瀛楀~鍐欓敊璇紝鎬讳箣鏈壘鍒板尮閰嶇殑鐢ㄦ埛淇℃伅";
+        }
     }
 
 
@@ -357,45 +367,60 @@
     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; // 鏇存柊鍏朵粬瀛楁
-                                                                   // ... 鏇存柊鍏朵粬闇�瑕佹洿鏂扮殑瀛楁
+            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
+                })
+                .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;
+
+                // 鎵ц鏇存柊鎿嶄綔
+
+                updateResult = db.Updateable(existingRecord).ExecuteCommand();
+                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
diff --git a/MES.Service/service/SentLaboratory/SaveLaboratoryManager.cs b/MES.Service/service/SentLaboratory/SaveLaboratoryManager.cs
new file mode 100644
index 0000000..dbfa7b9
--- /dev/null
+++ b/MES.Service/service/SentLaboratory/SaveLaboratoryManager.cs
@@ -0,0 +1,157 @@
+锘縰sing MES.Service.DB;
+using MES.Service.Modes.QcIssueResult;
+using MES.Service.Modes.SentLaboratory;
+using Newtonsoft.Json;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MES.Service.service.SentLaboratory;
+
+public class SaveLaboratoryManager:Repository<UpdateMesQmsSample>
+{
+    public dynamic Save(GetLaboratoryDetails getLaboratoryDetails)
+    {
+
+        var mesUpdateMesQmsSample = GetMesQcIssueResults(getLaboratoryDetails);
+
+        return UseTransaction(db =>
+        {
+            return SaveOrUpdateData(db, mesUpdateMesQmsSample) ? 1 : 0;
+        }) > 0;
+    }
+
+    public UpdateMesQmsSample GetMesQcIssueResults(GetLaboratoryDetails getLaboratoryDetails)
+    {
+        var mesUpdateMesQmsSample = new UpdateMesQmsSample
+        {
+            ReleaseNo = getLaboratoryDetails.RELEASE_NO,
+            DEPARTMENTNAME = getLaboratoryDetails.DEPARTMENTNAME,
+            CreateDate = getLaboratoryDetails.CREATE_DATE1,
+            QUANTITY = getLaboratoryDetails.QUANTITY,
+            CompleteDate = getLaboratoryDetails.COMPLETE_DATE,
+            TestReq=getLaboratoryDetails.TEST_REQ,
+            SimReq = getLaboratoryDetails.SIM_REQ,
+            ItemNo = getLaboratoryDetails.ITEM_NO,
+            UrgentFlag = getLaboratoryDetails.URGENT_FLAG,
+            JYDH = getLaboratoryDetails.JYDH,
+            REMARKS = getLaboratoryDetails.REMARKS,
+            ItemName = getLaboratoryDetails.ITEM_NAME,
+            DEPARTMENTCODE = getLaboratoryDetails.DEPARTMENTCODE,
+            PAPERBILLNO = getLaboratoryDetails.LOT_NO,
+
+        };
+
+        // 閬嶅巻 CHECKBOX 骞惰祴鍊�
+        foreach (var item in getLaboratoryDetails.CHECKBOX)
+        {
+            switch (item.InspectionItems)
+            {
+                case "纾侀搧鎷夊姏":
+                    mesUpdateMesQmsSample.Check01 = 1;
+                    break;
+                case "纾侀搧鎵块噸":
+                    mesUpdateMesQmsSample.Check02 = 1;
+                    break;
+                case "鐩愰浘":
+                    mesUpdateMesQmsSample.Check03 = 1;
+                    break;
+                case "IP":
+                    mesUpdateMesQmsSample.Check04 = 1;
+                    break;
+                case "鑰佸寲娴嬭瘯":
+                    mesUpdateMesQmsSample.Check05 = 1;
+                    break;
+                case "浼犲杈愬皠":
+                    mesUpdateMesQmsSample.Check06 = 1;
+                    break;
+                case "璺岃惤娴嬭瘯":
+                    mesUpdateMesQmsSample.Check07 = 1;
+                    break;
+                case "鐢电嚎鎷夊姏":
+                    mesUpdateMesQmsSample.Check08 = 1;
+                    break;
+                case "鎺ュ彛鎻掓嫈":
+                    mesUpdateMesQmsSample.Check09 = 1;
+                    break;
+                case "鍏夎氨娴嬭瘯":
+                    mesUpdateMesQmsSample.Check10 = 1;
+                    break;
+                case "ROHS":
+                    mesUpdateMesQmsSample.Check11 = 1;
+                    break;
+                case "鐢垫睜鍏呮斁鐢�":
+                    mesUpdateMesQmsSample.Check12 = 1;
+                    break;
+                case "楂樻俯":
+                    mesUpdateMesQmsSample.Check13 = 1;
+                    break;
+                case "浣庢俯":
+                    mesUpdateMesQmsSample.Check14 = 1;
+                    break;
+                case "IK":
+                    mesUpdateMesQmsSample.Check15 = 1;
+                    break;
+                case "娓╁崌娴嬭瘯":
+                    mesUpdateMesQmsSample.Check16 = 1;
+                    break;
+                case "瀵垮懡":
+                    mesUpdateMesQmsSample.Check17 = 1;
+                    break;
+                case "鍏跺畠":
+                    mesUpdateMesQmsSample.Check18 = 1;
+                    mesUpdateMesQmsSample.Line04 = getLaboratoryDetails.Line04;
+                    break;
+                default:
+                    // 濡傛灉 InspectionItems 涓嶅尮閰嶄换浣曟潯浠讹紝鍙互閫夋嫨蹇界暐鎴栬褰曟棩蹇�
+                    break;
+            }
+        }
+        return mesUpdateMesQmsSample;
+    }
+
+    /**
+    * 鎻掑叆鏁版嵁搴撹〃
+    */
+    private bool SaveOrUpdateData(SqlSugarScope db, UpdateMesQmsSample updateMesQmsSample)
+    {
+
+        ////// 鏌ヨ QcIssueResults 琛ㄤ腑鏄惁瀛樺湪鍖归厤鐨勮褰�
+        ////var mapping = db.Queryable<UpdateMesQmsSample>()
+        ////    .Where(t => t.ReleaseNo == updateMesQmsSample.ReleaseNo)
+        ////    .Select(t => new QcIssueResults
+        ////    {
+        ////        ReleaseNo = t.ReleaseNo,
+        ////    })
+        ////    .ToList();
+
+        //// 鏌ヨ UpdateMesQmsSample 琛ㄤ腑鏄惁瀛樺湪鍖归厤鐨勮褰�
+        //var existingRecord = db.Queryable<UpdateMesQmsSample>()
+        //    .Where(t => t.ReleaseNo == updateMesQmsSample.ReleaseNo)
+        //    .First(); // 浣跨敤 First 鑾峰彇绗竴鏉¤褰�
+
+        //if (existingRecord != null)
+        //{
+        //    // 鏇存柊 UpdateMesQaItems 琛ㄤ腑鐨勫瓧娈�
+        //    updateMesQmsSample.Id = existingRecord.Id;
+
+        //    // 鎵ц鏇存柊鎿嶄綔
+        //    var updateResult = db.Updateable(updateMesQmsSample).ExecuteCommand();
+        //      return updateResult > 0; // 濡傛灉鏇存柊鎴愬姛锛岃繑鍥� true
+        
+        //}
+        //else
+        //{
+        //    Debug.WriteLine("鎻掑叆");
+            // 濡傛灉 mapping 涓虹┖锛屾彃鍏ユ柊璁板綍鍒� QcIssueResults 琛�
+            var orUpdate = base.Insert(updateMesQmsSample);
+            if (orUpdate) return true;
+            throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
+        //}
+
+    }
+}
diff --git a/MES.Service/service/BasicData/SentLaboratoryTestingItemsManager.cs b/MES.Service/service/SentLaboratory/SentLaboratoryTestingItemsManager.cs
similarity index 71%
rename from MES.Service/service/BasicData/SentLaboratoryTestingItemsManager.cs
rename to MES.Service/service/SentLaboratory/SentLaboratoryTestingItemsManager.cs
index 8afcff2..c4c69fe 100644
--- a/MES.Service/service/BasicData/SentLaboratoryTestingItemsManager.cs
+++ b/MES.Service/service/SentLaboratory/SentLaboratoryTestingItemsManager.cs
@@ -1,8 +1,15 @@
 锘縰sing MES.Service.DB;
+using MES.Service.Dto.webApi.QcIssueResult;
 using MES.Service.Modes;
+using MES.Service.Modes.QcIssueResult;
+using MES.Service.Modes.SentLaboratory;
+using Microsoft.Data.SqlClient;
+using Newtonsoft.Json;
+using Oracle.ManagedDataAccess.Client;
 using SqlSugar;
 using System;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
@@ -72,4 +79,34 @@
                 .ExecuteCommand(); //杞垚Deleteable瀹炵幇澶嶆潅鐨勬搷浣�
         }
 
+
+    public string GetBillCode(string param1, string param2, string param3)
+    {
+        string result = null;
+        // 杩炴帴瀛楃涓�
+        string connectionString = "User Id=yc_dev;Password=ycdev;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.100)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)))";
+
+        // SQL 鏌ヨ
+        string sql = "SELECT getbillcode1(:param1, :param2, :param3) FROM dual";
+
+        using (OracleConnection connection = new OracleConnection(connectionString))
+        {
+            using (OracleCommand command = new OracleCommand(sql, connection))
+            {
+                // 娣诲姞鍙傛暟
+                command.Parameters.Add("param1", OracleDbType.Varchar2).Value = param1;
+                command.Parameters.Add("param2", OracleDbType.Varchar2).Value = param2;
+                command.Parameters.Add("param3", OracleDbType.Varchar2).Value = param3;
+
+                // 鎵撳紑杩炴帴
+                connection.Open();
+
+                // 鎵ц鏌ヨ
+                result = command.ExecuteScalar()?.ToString();
+            }
+        }
+
+        return result;
+    }
+
 }
diff --git a/MESApplication/Controllers/BasicData/SentLaboratoryTestingItemsControllor.cs b/MESApplication/Controllers/BasicData/SentLaboratoryTestingItemsControllor.cs
index ec6835e..a8e545b 100644
--- a/MESApplication/Controllers/BasicData/SentLaboratoryTestingItemsControllor.cs
+++ b/MESApplication/Controllers/BasicData/SentLaboratoryTestingItemsControllor.cs
@@ -1,11 +1,16 @@
-锘縰sing System.Dynamic;
+锘縰sing System.Diagnostics;
+using System.Dynamic;
 using MES.Service.Dto.webApi;
 using MES.Service.Modes;
+using MES.Service.Modes.QcIssueResult;
+using MES.Service.Modes.SentLaboratory;
 using MES.Service.service;
 using MES.Service.service.BasicData;
+using MES.Service.service.SentLaboratory;
 using MES.Service.util;
 using Microsoft.AspNetCore.Mvc;
 using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
 
 namespace MESApplication.Controllers.BasicData;
 
@@ -15,6 +20,7 @@
 {
     private readonly MessageCenterManager _manager = new();
     private readonly SentLaboratoryTestingItemsManager m = new();
+    private readonly SaveLaboratoryManager n = new();
 
     private readonly string METHOD = "POST";
 
@@ -33,6 +39,8 @@
         {
             dynamic resultInfos = new ExpandoObject();
             resultInfos.tbBillList = m.GetList();
+            resultInfos.ReleaseNo = m.GetBillCode("1000", "1000", "SJDH");
+         
             return new ResponseResult
             {
                 status = 0,
@@ -45,4 +53,55 @@
             return ResponseResult.ResponseError(ex);
         }
     }
+
+    [HttpPost("GetLaboratoryList")]
+    public ResponseResult GetLaboratoryList()
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = n.GetList();
+
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    [HttpPost("SaveLaboratoryDetails")]
+    public IActionResult SaveLaboratoryDetails([FromBody] GetLaboratoryDetails getLaboratoryDetails)
+    {
+
+        try
+        {
+
+            var result = n.Save(getLaboratoryDetails);
+
+            string getLaboratoryDetailsJson = JsonConvert.SerializeObject(getLaboratoryDetails, Formatting.Indented);
+            Debug.WriteLine("getLaboratoryDetails: " + getLaboratoryDetailsJson);
+
+
+            //return Ok(result);
+            return Ok(result);
+        }
+        catch (Exception ex)
+        {
+            // 鎹曡幏寮傚父骞惰繑鍥為敊璇俊鎭�
+            return StatusCode(500, $"{ex.Message}");
+        }
+    }
+
+    //[HttpPost("DeleteLaboratoryDetails")]
+    //public IActionResult DeleteLaboratoryDetails(string JYDH)
+    //{
+
+    //}
+
 }
diff --git a/MESApplication/Controllers/BasicData/ProductionOrderController.cs b/MESApplication/Controllers/ProductionOrder/ProductionOrderController.cs
similarity index 87%
rename from MESApplication/Controllers/BasicData/ProductionOrderController.cs
rename to MESApplication/Controllers/ProductionOrder/ProductionOrderController.cs
index ead2d1d..1e94132 100644
--- a/MESApplication/Controllers/BasicData/ProductionOrderController.cs
+++ b/MESApplication/Controllers/ProductionOrder/ProductionOrderController.cs
@@ -1,8 +1,11 @@
 锘縰sing MES.Service.Dto.webApi;
 using MES.Service.Dto.webApi.DeliveryNote;
+using MES.Service.Dto.webApi.ProductionOrder;
 using MES.Service.Modes;
+using MES.Service.Modes.ProductionOrder;
 using MES.Service.Modes.QcIssueResult;
 using MES.Service.service;
+using MES.Service.service.ProductionOrder;
 using MES.Service.util;
 using Microsoft.AspNetCore.Mvc;
 using Newtonsoft.Json;
@@ -10,7 +13,7 @@
 using System.Diagnostics;
 using System.Dynamic;
 
-namespace MESApplication.Controllers.BasicData;
+namespace MESApplication.Controllers.ProductionOrder;
 
 [ApiController]
 [Route("api/ProductionOrder")]
@@ -136,12 +139,17 @@
     }
 
     [HttpPost("GetFileUrl")]
-    public IActionResult StartGetUrl() {
+    public IActionResult StartGetUrl(string imageUrl)
+    {
 
         try
         {
             // 璋冪敤 QcIssueResultManager 涓殑 GetProcessNo 鏂规硶鏉ュ惎鍔ㄩ拤閽夊伐浣滄祦瀹炰緥
-            string result = m.GetFileUrl();
+
+            //string result = m.GetSpaceId();
+            //ResultDataAndSpaceId resultData = JsonConvert.DeserializeObject<ResultDataAndSpaceId>(result);
+            //string SpaceId = resultData.Result.SpaceId;
+            //string result = m.GetPermissions();
 
             //string jsonPart = result.Substring(result.IndexOf("{"));
             //Debug.WriteLine(jsonPart);
@@ -155,6 +163,9 @@
             ////var save = m.SaveProcessNo(ReleaseNo, instanceId);
             ////resultInfos.tbBillList = save;
 
+            Debug.WriteLine(imageUrl);
+            string result = m.GetFileUrl(imageUrl);
+            Debug.WriteLine(result);
             return Ok(result);
         }
         catch (Exception ex)
diff --git a/MESApplication/Controllers/QcIssueResult/QcIssueResultController.cs b/MESApplication/Controllers/QcIssueResult/QcIssueResultController.cs
index 82ac388..24cb605 100644
--- a/MESApplication/Controllers/QcIssueResult/QcIssueResultController.cs
+++ b/MESApplication/Controllers/QcIssueResult/QcIssueResultController.cs
@@ -33,6 +33,7 @@
    
         try
         {
+
             // 璋冪敤 QcIssueResultManager 涓殑 GetProcessNo 鏂规硶鏉ュ惎鍔ㄩ拤閽夊伐浣滄祦瀹炰緥
             string result = m.GetProcessNo(getQcIssueResultDetail);
 
@@ -45,8 +46,8 @@
 
             dynamic resultInfos = new ExpandoObject();
             string ProcessNo = instanceId;
-            //var save = m.SaveProcessNo(ReleaseNo, instanceId);
-            //resultInfos.tbBillList = save;
+            var save = m.SaveProcessNo(getQcIssueResultDetail.ReleaseNo, instanceId);
+            resultInfos.tbBillList = save;
 
             return Ok(result);
         }
diff --git a/MESApplication/bin/Debug/net8.0/MES.Service.dll b/MESApplication/bin/Debug/net8.0/MES.Service.dll
index 21ee047..d14c9d7 100644
--- a/MESApplication/bin/Debug/net8.0/MES.Service.dll
+++ b/MESApplication/bin/Debug/net8.0/MES.Service.dll
Binary files differ
diff --git a/MESApplication/bin/Debug/net8.0/MES.Service.pdb b/MESApplication/bin/Debug/net8.0/MES.Service.pdb
index 05cd36a..ab07b63 100644
--- a/MESApplication/bin/Debug/net8.0/MES.Service.pdb
+++ b/MESApplication/bin/Debug/net8.0/MES.Service.pdb
Binary files differ
diff --git a/MESApplication/bin/Debug/net8.0/MESApplication.dll b/MESApplication/bin/Debug/net8.0/MESApplication.dll
index a78a4c8..020303a 100644
--- a/MESApplication/bin/Debug/net8.0/MESApplication.dll
+++ b/MESApplication/bin/Debug/net8.0/MESApplication.dll
Binary files differ
diff --git a/MESApplication/bin/Debug/net8.0/MESApplication.exe b/MESApplication/bin/Debug/net8.0/MESApplication.exe
index 71943f9..8d8045c 100644
--- a/MESApplication/bin/Debug/net8.0/MESApplication.exe
+++ b/MESApplication/bin/Debug/net8.0/MESApplication.exe
Binary files differ
diff --git a/MESApplication/bin/Debug/net8.0/MESApplication.pdb b/MESApplication/bin/Debug/net8.0/MESApplication.pdb
index 5174f8b..b5f0763 100644
--- a/MESApplication/bin/Debug/net8.0/MESApplication.pdb
+++ b/MESApplication/bin/Debug/net8.0/MESApplication.pdb
Binary files differ
diff --git a/MESApplication/bin/Debug/net8.0/MESApplication.xml b/MESApplication/bin/Debug/net8.0/MESApplication.xml
index 1b3b302..6bb0741 100644
--- a/MESApplication/bin/Debug/net8.0/MESApplication.xml
+++ b/MESApplication/bin/Debug/net8.0/MESApplication.xml
@@ -462,12 +462,6 @@
             </summary>
             <returns></returns>
         </member>
-        <member name="M:MESApplication.Controllers.BasicData.ProductionOrderController.GetList">
-            <summary>
-                鑾峰彇鎵�鏈�
-            </summary>
-            <returns></returns>
-        </member>
         <member name="M:MESApplication.Controllers.BasicData.SalesDeliveryNoticeController.Save(MES.Service.Dto.webApi.SaleDeliveryNotice)">
             <summary>
                 鍗曟潯涓昏〃鏁版嵁淇濆瓨鎿嶄綔
@@ -870,6 +864,12 @@
             </summary>
             <returns></returns>
         </member>
+        <member name="M:MESApplication.Controllers.ProductionOrder.ProductionOrderController.GetList">
+            <summary>
+                鑾峰彇鎵�鏈�
+            </summary>
+            <returns></returns>
+        </member>
         <member name="M:MESApplication.Controllers.QC.MesLineUserController.GetList">
             <summary>
                 鑾峰彇鎵�鏈�

--
Gitblit v1.9.3