From d12457c6f777b2161a1d29d230dbb67142baf561 Mon Sep 17 00:00:00 2001
From: cnf <3200815559@qq.com>
Date: 星期三, 14 五月 2025 14:12:43 +0800
Subject: [PATCH] 最新

---
 MES.Service/service/QcIssueResult/QcIssueResultManager.cs |  380 +++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 347 insertions(+), 33 deletions(-)

diff --git a/MES.Service/service/QcIssueResult/QcIssueResultManager.cs b/MES.Service/service/QcIssueResult/QcIssueResultManager.cs
index ab32c1c..929827a 100644
--- a/MES.Service/service/QcIssueResult/QcIssueResultManager.cs
+++ b/MES.Service/service/QcIssueResult/QcIssueResultManager.cs
@@ -17,6 +17,8 @@
 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;
 
@@ -330,7 +332,10 @@
         var QcIssueResults = new QcIssueResults
         {
             ProcessNo = ProcessNo,
-            ReleaseNo = ReleaseNo
+            ReleaseNo = ReleaseNo,
+            QcStatu = "",
+            TCSTATU =""
+            
         };
 
         return QcIssueResults;
@@ -355,7 +360,19 @@
         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 mesQcIssueResults;
@@ -378,47 +395,344 @@
 
         if (mapping.Any())
         {
-            string ReleaseNo = mapping.FirstOrDefault().ReleaseNo;
-
-            // 鍙洿鏂� 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)
+            if (qcIssueResults.TCSTATU == "鏄�")
             {
-                // 鏇存柊 UpdateMesQaItems 琛ㄤ腑鐨勫瓧娈�
-                existingRecord.FngHandle = qcIssueResults.FReview;
-                if (existingRecord.FngHandle == "閫�璐�")
+                if (qcIssueResults.QcStatu == "鎷掔粷")
                 {
-                    existingRecord.FMRMODE = "閫�鏂欒ˉ鏂�";
+                    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)
+                    {
+                       
+                        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
                 {
-                    existingRecord.FMRMODE = null;
+                    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 = "鐗归噰鐩存帴浣跨敤";
+                        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("鏈壘鍒伴渶瑕佹洿鏂扮殑璁板綍");
+                    }
                 }
-
-                // 鎵ц鏇存柊鎿嶄綔
-                updateResult = db.Updateable(existingRecord).ExecuteCommand();
-
-                return updateResult > 0; // 濡傛灉鏇存柊鎴愬姛锛岃繑鍥� true
             }
             else
             {
-                throw new Exception("鏈壘鍒伴渶瑕佹洿鏂扮殑璁板綍");
+                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,
+                        })
+                        .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
         {

--
Gitblit v1.9.3