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

---
 MES.Service/service/SentLaboratory/SaveLaboratoryManager.cs |  483 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 453 insertions(+), 30 deletions(-)

diff --git a/MES.Service/service/SentLaboratory/SaveLaboratoryManager.cs b/MES.Service/service/SentLaboratory/SaveLaboratoryManager.cs
index dbfa7b9..2aff094 100644
--- a/MES.Service/service/SentLaboratory/SaveLaboratoryManager.cs
+++ b/MES.Service/service/SentLaboratory/SaveLaboratoryManager.cs
@@ -1,4 +1,5 @@
 锘縰sing MES.Service.DB;
+using MES.Service.Dto.webApi.QcIssueResult;
 using MES.Service.Modes.QcIssueResult;
 using MES.Service.Modes.SentLaboratory;
 using Newtonsoft.Json;
@@ -7,6 +8,7 @@
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.Linq;
+using System.Security.Cryptography;
 using System.Text;
 using System.Threading.Tasks;
 
@@ -14,6 +16,222 @@
 
 public class SaveLaboratoryManager:Repository<UpdateMesQmsSample>
 {
+
+    public class ResultObject
+    {
+        public string? SjReleaseNo { get; set; }
+        public decimal? IS_SJ { get; set; }
+        public string? DEPARTMENTNAME { get; set; }
+        public string? DEPARTMENTCODE { get; set; }
+        public DateTime? CREATE_DATE { get; set; }
+        public DateTime? CompleteDate { get; set; }
+        public string? REMARKS { get; set; }
+        public string? SIM_REQ { get; set; }
+        public string? Test_REQ { get; set; }
+        //纾侀搧鎷夊姏
+        public decimal? Check01 { get; set; }
+
+        //纾侀搧鎵块噸
+        public decimal? Check02 { get; set; }
+
+        //鐩愰浘
+
+        public decimal? Check03 { get; set; }
+
+        //IP
+        public decimal? Check04 { get; set; }
+
+        //鑰佸寲娴嬭瘯
+        public decimal? Check05 { get; set; }
+
+        //浼犲杈愬皠
+        public decimal? Check06 { get; set; }
+
+        public decimal? Check07 { get; set; }
+
+        //鐢电嚎鎷夊姏
+        public decimal? Check08 { get; set; }
+
+        //鎺ュ彛鎻掓嫈
+        public decimal? Check09 { get; set; }
+
+        //鍏夎氨娴嬭瘯
+        public decimal? Check10 { get; set; }
+
+        //ROHS
+        public decimal? Check11 { get; set; }
+
+        //鐢垫睜鍏呮斁鐢�
+        public decimal? Check12 { get; set; }
+
+        //楂樻俯
+        public decimal? Check13 { get; set; }
+
+        //浣庢俯
+        public decimal? Check14 { get; set; }
+
+        //IK
+        public decimal? Check15 { get; set; }
+
+        //娓╁崌娴嬭瘯
+        public decimal? Check16 { get; set; }
+
+        //瀵垮懡
+        public decimal? Check17 { get; set; }
+
+        //鍏跺畠
+        public decimal? Check18 { get; set; }
+
+        //鍏跺畠鐨勫唴瀹�
+        public string? Line04 { get; set; }
+        public List<AllItem>? allItem { get; set; }
+    }
+
+    public class AllItem
+    {
+        public decimal? Pid { get; set; }
+        public string? sj_no { get; set; }
+        public string? release_no { get; set; }
+        public decimal? ITEM_ID { get; set; }
+        public string? ITEM_NO { get; set; }
+        public string? QUANTITY { get; set; }
+        public decimal? URGENT_FLAG { get; set; }
+        public DateTime? CREATE_DATE { get; set; }
+        public string? SUPP_NAME { get; set; }
+        public string? DECISION_OUTCOMES { get; set; }
+       
+    }
+
+    public ResultObject GetListAll(string RELEASE_NO)
+    {
+        // 鍋囪浣犳湁涓�涓暟鎹簱涓婁笅鏂囨垨鏁版嵁璁块棶灞�
+        // 杩欓噷鐢ㄦā鎷熸暟鎹唬鏇垮疄闄呮暟鎹簱鏌ヨ
+        var mainTable = GetMainTableData(RELEASE_NO);
+        var subTable = GetSubTableData(RELEASE_NO);
+
+        // 鍒涘缓杩斿洖瀵硅薄
+        var result = new ResultObject
+        {
+
+            SjReleaseNo = mainTable.ReleaseNo,
+            IS_SJ = mainTable.IsSubmit,
+            DEPARTMENTNAME = mainTable.DEPARTMENTNAME,
+            DEPARTMENTCODE=mainTable.DEPARTMENTCODE,
+            REMARKS = mainTable.REMARKS,
+            SIM_REQ = mainTable.SimReq,
+            CompleteDate=mainTable.CompleteDate,
+            Test_REQ=mainTable.TestReq,
+            Check01 = mainTable.Check01,
+            Check02 = mainTable.Check02,
+            Check03 = mainTable.Check03,
+            Check04 = mainTable.Check04,
+            Check05 = mainTable.Check05,
+            Check06 = mainTable.Check06,
+            Check07 = mainTable.Check07,
+            Check08 = mainTable.Check08,
+            Check09 = mainTable.Check09,
+            Check10 = mainTable.Check10,
+            Check11 = mainTable.Check11,
+            Check12 = mainTable.Check12,
+            Check13 = mainTable.Check13,
+            Check14 = mainTable.Check14,
+            Check15 = mainTable.Check15,
+            Check16 = mainTable.Check16,
+            Check17 = mainTable.Check17,
+            Check18 = mainTable.Check18,
+            Line04 = mainTable.Line04,
+            allItem = subTable.Select(item => new AllItem
+            {
+                Pid=item.PID,
+                sj_no = item.SJ_NO,
+                CREATE_DATE = item.CREATE_DATE,
+                ITEM_ID = item.ITEM_ID,
+                release_no=item.RELEASE_NO,
+                ITEM_NO = item.ITEM_NO,
+                SUPP_NAME = item.SUPP_NAME,
+                QUANTITY=item.QUANTITY,
+                URGENT_FLAG=item.URGENT_FLAG,
+                DECISION_OUTCOMES=item.DECISION_OUTCOMES,
+
+            }).ToList()
+        };
+
+        return result;
+    }
+
+    // 妯℃嫙涓昏〃鏁版嵁鏌ヨ
+    private UpdateMesQmsSample GetMainTableData(string RELEASE_NO)
+    {
+        var db = SqlSugarHelper.GetInstance();
+
+        var map = db.Queryable<UpdateMesQmsSample>()
+         .Where(t => t.ReleaseNo == RELEASE_NO)
+         .First();
+      
+
+        // 杩欓噷搴旇鏄疄闄呯殑鏁版嵁搴撴煡璇㈤�昏緫
+        // 渚嬪锛歳eturn db.MainTable.FirstOrDefault(m => m.RELEASE_NO == RELEASE_NO);
+        return new UpdateMesQmsSample
+        {
+            ReleaseNo = map.ReleaseNo,
+            DEPARTMENTNAME = map.DEPARTMENTNAME,
+            CreateDate = map.CreateDate,
+            QUANTITY = map.QUANTITY,
+            CompleteDate = map.CompleteDate,
+            TestReq = map.TestReq,
+            SimReq = map.SimReq,
+            ItemNo = map.ItemNo,
+            UrgentFlag = map.UrgentFlag,
+            JYDH = map.JYDH,
+            REMARKS = map.REMARKS,
+            ItemName = map.ItemName,
+            DEPARTMENTCODE = map.DEPARTMENTCODE,
+            PAPERBILLNO = map.PAPERBILLNO,
+            IsSubmit = map.IsSubmit,
+            ZHBS = map.ZHBS,
+            Check01 = map.Check01,
+            Check02 = map.Check02,
+            Check03 = map.Check03,
+            Check04 = map.Check04,
+            Check05 = map.Check05,
+            Check06 = map.Check06,
+            Check07 = map.Check07,
+            Check08 = map.Check08,
+            Check09 = map.Check09,
+            Check10 = map.Check10,
+            Check11 = map.Check11,
+            Check12 = map.Check12,
+            Check13 = map.Check13,
+            Check14 = map.Check14,
+            Check15 = map.Check15,
+            Check16 = map.Check16,
+            Check17 = map.Check17,
+            Check18 = map.Check18,
+            Line04=map.Line04
+           
+        };
+    }
+
+    // 妯℃嫙瀛愯〃鏁版嵁鏌ヨ
+    private List<UpdateMesQmsSamplePjt> GetSubTableData(string RELEASE_NO)
+    {
+        var db = SqlSugarHelper.GetInstance();
+
+        var mapping = db.Queryable<UpdateMesQmsSamplePjt>()
+            .Where(t => t.SJ_NO == RELEASE_NO)
+            .ToList();
+
+        // 濡傛灉鏌ヨ缁撴灉涓虹┖锛岃繑鍥炵┖鍒楄〃
+        if (mapping == null || mapping.Count == 0)
+        {
+            return new List<UpdateMesQmsSamplePjt>();
+        }
+
+        // 杩斿洖鏌ヨ缁撴灉
+        return mapping;
+   
+    }
+
     public dynamic Save(GetLaboratoryDetails getLaboratoryDetails)
     {
 
@@ -21,12 +239,17 @@
 
         return UseTransaction(db =>
         {
-            return SaveOrUpdateData(db, mesUpdateMesQmsSample) ? 1 : 0;
+            return SaveOrUpdateData(db, mesUpdateMesQmsSample,getLaboratoryDetails) ? 1 : 0;
         }) > 0;
     }
 
     public UpdateMesQmsSample GetMesQcIssueResults(GetLaboratoryDetails getLaboratoryDetails)
     {
+
+        if (getLaboratoryDetails.URGENT_FLAG == null) {
+            getLaboratoryDetails.URGENT_FLAG = 0;
+        }
+
         var mesUpdateMesQmsSample = new UpdateMesQmsSample
         {
             ReleaseNo = getLaboratoryDetails.RELEASE_NO,
@@ -43,8 +266,29 @@
             ItemName = getLaboratoryDetails.ITEM_NAME,
             DEPARTMENTCODE = getLaboratoryDetails.DEPARTMENTCODE,
             PAPERBILLNO = getLaboratoryDetails.LOT_NO,
+            IsSubmit = getLaboratoryDetails.IS_SUBMIT,
+            ZHBS = getLaboratoryDetails.ZH_BS
 
         };
+
+        mesUpdateMesQmsSample.Check01 = 0;
+        mesUpdateMesQmsSample.Check02 = 0;
+        mesUpdateMesQmsSample.Check03 = 0;
+        mesUpdateMesQmsSample.Check04 = 0;
+        mesUpdateMesQmsSample.Check05 = 0;
+        mesUpdateMesQmsSample.Check06 = 0;
+        mesUpdateMesQmsSample.Check07 = 0;
+        mesUpdateMesQmsSample.Check08 = 0;
+        mesUpdateMesQmsSample.Check09 = 0;
+        mesUpdateMesQmsSample.Check10 = 0;
+        mesUpdateMesQmsSample.Check11 = 0;
+        mesUpdateMesQmsSample.Check12 = 0;
+        mesUpdateMesQmsSample.Check13 = 0;
+        mesUpdateMesQmsSample.Check14 = 0;
+        mesUpdateMesQmsSample.Check15 = 0;
+        mesUpdateMesQmsSample.Check16 = 0;
+        mesUpdateMesQmsSample.Check17 = 0;
+        mesUpdateMesQmsSample.Check18 = 0;
 
         // 閬嶅巻 CHECKBOX 骞惰祴鍊�
         foreach (var item in getLaboratoryDetails.CHECKBOX)
@@ -117,41 +361,220 @@
     /**
     * 鎻掑叆鏁版嵁搴撹〃
     */
-    private bool SaveOrUpdateData(SqlSugarScope db, UpdateMesQmsSample updateMesQmsSample)
+    private bool SaveOrUpdateData(SqlSugarScope db, UpdateMesQmsSample updateMesQmsSample, GetLaboratoryDetails getLaboratoryDetails)
     {
 
-        ////// 鏌ヨ QcIssueResults 琛ㄤ腑鏄惁瀛樺湪鍖归厤鐨勮褰�
-        ////var mapping = db.Queryable<UpdateMesQmsSample>()
-        ////    .Where(t => t.ReleaseNo == updateMesQmsSample.ReleaseNo)
-        ////    .Select(t => new QcIssueResults
-        ////    {
-        ////        ReleaseNo = t.ReleaseNo,
-        ////    })
-        ////    .ToList();
+        // 鏌ヨ MES_QMS_SAMPLE 琛ㄤ腑鏄惁瀛樺湪鍖归厤鐨勮褰�
+        var existingRecord = db.Queryable<UpdateMesQmsSample>()
+            .Where(t => t.ReleaseNo == updateMesQmsSample.ReleaseNo)
+            .First(); // 浣跨敤 First 鑾峰彇绗竴鏉¤褰�
+       
+        if (existingRecord != null)
+        {
+            Debug.WriteLine("hhhhhhhhh!");
+            // 鏇存柊 UpdateMesQaItems 琛ㄤ腑鐨勫瓧娈�
+            updateMesQmsSample.Id = existingRecord.Id;
 
-        //// 鏌ヨ UpdateMesQmsSample 琛ㄤ腑鏄惁瀛樺湪鍖归厤鐨勮褰�
-        //var existingRecord = db.Queryable<UpdateMesQmsSample>()
-        //    .Where(t => t.ReleaseNo == updateMesQmsSample.ReleaseNo)
-        //    .First(); // 浣跨敤 First 鑾峰彇绗竴鏉¤褰�
+            // 鎵ц鏇存柊鎿嶄綔
+            var updateResult = db.Updateable(updateMesQmsSample).ExecuteCommand();
 
-        //if (existingRecord != null)
-        //{
-        //    // 鏇存柊 UpdateMesQaItems 琛ㄤ腑鐨勫瓧娈�
-        //    updateMesQmsSample.Id = existingRecord.Id;
+            var mapping = db.Queryable<UpdateMesQmsSamplePjt>()
+             .Where(t => t.RELEASE_NO == updateMesQmsSample.JYDH && t.PID == updateMesQmsSample.Id)
+             .Select(t => new UpdateMesQmsSamplePjt
+             {
+                 PID=t.PID
+             })
+             .ToList();
 
-        //    // 鎵ц鏇存柊鎿嶄綔
-        //    var updateResult = db.Updateable(updateMesQmsSample).ExecuteCommand();
-        //      return updateResult > 0; // 濡傛灉鏇存柊鎴愬姛锛岃繑鍥� true
-        
-        //}
-        //else
-        //{
-        //    Debug.WriteLine("鎻掑叆");
-            // 濡傛灉 mapping 涓虹┖锛屾彃鍏ユ柊璁板綍鍒� QcIssueResults 琛�
+
+            Debug.WriteLine(updateMesQmsSample.JYDH);
+
+            if (mapping.Any())
+            {
+                updateResult = db.Updateable<UpdateMesQmsSamplePjt>()
+                .SetColumns(t => new UpdateMesQmsSamplePjt
+             {
+                 SJ_NO = updateMesQmsSample.ReleaseNo,
+                 RELEASE_NO = updateMesQmsSample.JYDH,
+                 ITEM_NO = updateMesQmsSample.ItemNo,
+                 QUANTITY = updateMesQmsSample.QUANTITY,
+                 URGENT_FLAG = updateMesQmsSample.UrgentFlag,
+                 CREATE_DATE = System.DateTime.Now,
+                 ITEM_ID = getLaboratoryDetails.ITEM_ID,
+                 SUPP_NAME = getLaboratoryDetails.SUPP_NAME
+             })
+             .Where(t => t.RELEASE_NO == updateMesQmsSample.JYDH && t.PID == updateMesQmsSample.Id) // 鏄惧紡鎸囧畾鏇存柊鏉′欢
+             .ExecuteCommand();
+               
+            }
+            else
+            {
+                Debug.WriteLine("hhhhhhhhaddadah!");
+                var mesUpdateMesQmsSamplePjt = new UpdateMesQmsSamplePjt
+                {
+
+                    PID = updateMesQmsSample.Id,
+                    SJ_NO = updateMesQmsSample.ReleaseNo,
+                    RELEASE_NO = updateMesQmsSample.JYDH,
+                    ITEM_NO = updateMesQmsSample.ItemNo,
+                    QUANTITY = updateMesQmsSample.QUANTITY,
+                    URGENT_FLAG = updateMesQmsSample.UrgentFlag,
+                    CREATE_DATE = System.DateTime.Now,
+                    ITEM_ID = getLaboratoryDetails.ITEM_ID,
+                    SUPP_NAME = getLaboratoryDetails.SUPP_NAME
+
+                };
+
+                updateResult = db.Insertable(mesUpdateMesQmsSamplePjt).ExecuteCommand();
+
+            }
+           
+
+             var maping = db.Queryable<UpdateMesQaItems>()
+             .Where(t => t.ReleaseNo == updateMesQmsSample.JYDH)
+             .Select(t => new UpdateMesQaItems
+             {
+                 ISSJ = t.ISSJ,
+                 SJ_NO = t.SJ_NO
+             })
+             .ToList();
+
+            if (maping.Any())
+            {
+                updateResult = db.Updateable<UpdateMesQaItems>()
+               .SetColumns(t => new UpdateMesQaItems
+               {
+                   ISSJ = updateMesQmsSample.IsSubmit,
+                   SJ_NO = updateMesQmsSample.ReleaseNo
+               })
+               .Where(t => t.ReleaseNo == updateMesQmsSample.JYDH) // 鏄惧紡鎸囧畾鏇存柊鏉′欢
+               .ExecuteCommand();
+            }
+            else
+            {
+                throw new NotImplementedException("鏈壘鍒板搴旀潵鏂欐楠岀敵璇峰崟");
+            }
+
+            return updateResult > 0; // 濡傛灉鏇存柊鎴愬姛锛岃繑鍥� true
+
+        }
+        else
+        {
+            //Debug.WriteLine("鎻掑叆");
+            //濡傛灉 mapping 涓虹┖锛屾彃鍏ユ柊璁板綍鍒� QcIssueResults 琛�
             var orUpdate = base.Insert(updateMesQmsSample);
-            if (orUpdate) return true;
-            throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
-        //}
+
+            var insertedId = 0;
+
+            if (orUpdate)
+            {
+                // 浣跨敤 RELEASE_NO 鏌ヨ鍒氬垰鎻掑叆鐨勮褰曠殑 id
+                 insertedId =(int) db.Queryable<UpdateMesQmsSample>()
+                    .Where(it => it.ReleaseNo == updateMesQmsSample.ReleaseNo)
+                    .Select(it => it.Id)
+                    .Single(); // 濡傛灉 RELEASE_NO 鏄敮涓�瀛楁锛屽彲浠ヤ娇鐢� Single()
+            };
+
+            var mesUpdateMesQmsSamplePjt = new UpdateMesQmsSamplePjt
+            {
+             
+                PID= insertedId,
+                SJ_NO= updateMesQmsSample.ReleaseNo,
+                RELEASE_NO= updateMesQmsSample.JYDH,
+                ITEM_NO= updateMesQmsSample.ItemNo,
+                QUANTITY= updateMesQmsSample.QUANTITY,
+                URGENT_FLAG= updateMesQmsSample.UrgentFlag,
+                CREATE_DATE = System.DateTime.Now,
+                ITEM_ID= getLaboratoryDetails.ITEM_ID,
+                SUPP_NAME=getLaboratoryDetails.SUPP_NAME
+
+            };
+
+            var updateResult = db.Insertable(mesUpdateMesQmsSamplePjt).ExecuteCommand();
+
+            var mapping = db.Queryable<UpdateMesQaItems>()
+            .Where(t => t.ReleaseNo == updateMesQmsSample.JYDH)
+            .Select(t => new UpdateMesQaItems
+            {
+                ISSJ = t.ISSJ,
+                SJ_NO= t.SJ_NO
+            }) 
+            .ToList();
+
+            if (mapping.Any())
+            {
+               updateResult = db.Updateable<UpdateMesQaItems>()
+              .SetColumns(t => new UpdateMesQaItems
+              {
+                 ISSJ= updateMesQmsSample.IsSubmit,
+                 SJ_NO = updateMesQmsSample.ReleaseNo
+              })
+              .Where(t => t.ReleaseNo == updateMesQmsSample.JYDH) // 鏄惧紡鎸囧畾鏇存柊鏉′欢
+              .ExecuteCommand();
+            }
+            else
+            {
+                throw new NotImplementedException("鏈壘鍒板搴旀潵鏂欐楠岀敵璇峰崟");
+            }
+
+           if (orUpdate) return true;
+           throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
+        }
 
     }
+
+    public string DeleteLaboratory(string JYDH)
+    {
+        try
+        {
+            var db = SqlSugarHelper.GetInstance();
+            // 鍋囪 db 鏄� SQLSugar 鐨� SqlSugarClient 瀹炰緥
+            var result = db.Updateable<UpdateMesQmsSample>()
+              .SetColumns(t => new UpdateMesQmsSample
+              {
+                  IsSubmit = 2,
+              })
+              .Where(t => t.JYDH == JYDH) // 鏄惧紡鎸囧畾鏇存柊鏉′欢
+              .ExecuteCommand();
+
+            Debug.WriteLine(result);
+            var mapping = db.Queryable<UpdateMesQaItems>()
+           .Where(t => t.ReleaseNo ==JYDH)
+           .Select(t => new UpdateMesQaItems
+           {
+              ISSJ = t.ISSJ,
+           })
+           .ToList();
+
+            if (mapping.Any())
+            {
+                var updateResult = db.Updateable<UpdateMesQaItems>()
+               .SetColumns(t => new UpdateMesQaItems
+               {
+                   ISSJ = 2,
+                   SJ_NO=null
+               })
+               .Where(t => t.ReleaseNo == JYDH) // 鏄惧紡鎸囧畾鏇存柊鏉′欢
+               .ExecuteCommand();
+            }
+            else
+            {
+                throw new NotImplementedException("鏈壘鍒板搴旀潵鏂欐楠岀敵璇峰崟");
+            }
+
+            if (result > 0)
+            {
+                return "鎾ゅ洖鎴愬姛锛�";
+            }
+            else
+            {
+                return "鏈壘鍒板尮閰嶇殑璁板綍锛屾挙鍥炲け璐ャ��";
+            }
+        }
+        catch (Exception ex)
+        {
+            return "鎾ゅ洖澶辫触锛岄敊璇俊鎭細" + ex.Message;
+        }
+    }
+
 }

--
Gitblit v1.9.3