From dabfdd9dbf0364b1134daaad86af7e13f6437295 Mon Sep 17 00:00:00 2001
From: xwt <2740516069@qq.com>
Date: 星期四, 30 十月 2025 12:40:30 +0800
Subject: [PATCH] XJ,SJ,RKJ检验项目序号,LLJ单个检验项目FTP附件信息

---
 StandardInterface/MESApplication/Controllers/QC/LljController.cs |  325 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 320 insertions(+), 5 deletions(-)

diff --git a/StandardInterface/MESApplication/Controllers/QC/LljController.cs b/StandardInterface/MESApplication/Controllers/QC/LljController.cs
index 465fdfc..6c6bea7 100644
--- a/StandardInterface/MESApplication/Controllers/QC/LljController.cs
+++ b/StandardInterface/MESApplication/Controllers/QC/LljController.cs
@@ -366,10 +366,21 @@
     public ResponseResult GetAttachments([FromBody] JObject data)
     {
         var itemNo = data["itemNo"]?.ToString();
+        var fversion = data["fversion"]?.ToString();
+        var fromPage = data["fromPage"]?.ToString();
+        
+        // 鏍规嵁鏉ユ簮椤甸潰鍐冲畾鏄惁杩囨护
+        string filterFversion = null;
+        if (fromPage == "Detail" && !string.IsNullOrEmpty(fversion))
+        {
+            filterFversion = fversion;  // Detail椤甸潰闇�瑕佽繃婊�
+        }
+        // Add椤甸潰涓嶄紶閫抐ilterFversion锛屾樉绀烘墍鏈夐檮浠�
+        
         try
         {
             dynamic resultInfos = new System.Dynamic.ExpandoObject();
-            var tbBillList = new LljService().GetAttachments(itemNo);
+            var tbBillList = new LljService().GetAttachments(itemNo, filterFversion);
             if (tbBillList == null || tbBillList.Count == 0)
             {
                 return new ResponseResult
@@ -394,7 +405,7 @@
     }
 
     [HttpGet("PreviewFtpFile")]
-    public IActionResult PreviewFtpFile([FromQuery] string itemNo, [FromQuery] string fileName, [FromQuery] string ftpServer)
+    public IActionResult PreviewFtpFile([FromQuery] string itemNo, [FromQuery] string fileName, [FromQuery] string ftpServer, [FromQuery] string fversion = null)
     {
         try
         {
@@ -405,7 +416,7 @@
             Response.Headers.Add("Access-Control-Expose-Headers", "Content-Type, Content-Length");
             
             var service = new LljService();
-            var fileBytes = service.GetFtpFile(itemNo, fileName, ftpServer);
+            var fileBytes = service.GetFtpFile(itemNo, fileName, ftpServer, fversion);
             
             if (fileBytes == null || fileBytes.Length == 0)
             {
@@ -424,7 +435,7 @@
     }
 
     [HttpGet("DownloadFtpFile")]
-    public IActionResult DownloadFtpFile([FromQuery] string itemNo, [FromQuery] string fileName, [FromQuery] string ftpServer)
+    public IActionResult DownloadFtpFile([FromQuery] string itemNo, [FromQuery] string fileName, [FromQuery] string ftpServer, [FromQuery] string fversion = null)
     {
         try
         {
@@ -435,7 +446,7 @@
             Response.Headers.Add("Access-Control-Expose-Headers", "Content-Disposition, Content-Length, Content-Type");
             
             var service = new LljService();
-            var fileBytes = service.GetFtpFile(itemNo, fileName, ftpServer);
+            var fileBytes = service.GetFtpFile(itemNo, fileName, ftpServer, fversion);
             
             if (fileBytes == null || fileBytes.Length == 0)
             {
@@ -540,10 +551,314 @@
         }
     }
 
+    /// <summary>
+    /// 鏍规嵁浜岀淮鐮佹煡璇㈢墿鏂欎俊鎭�
+    /// </summary>
+    /// <param name="data">鍖呭惈浜岀淮鐮佸唴瀹瑰拰褰撳墠鍒拌揣鍗曞彿鐨勮姹傚璞�</param>
+    /// <returns>鐗╂枡淇℃伅</returns>
+    [HttpPost("GetMaterialByBarcode")]
+    public ResponseResult GetMaterialByBarcode([FromBody] GetMaterialByBarcodeRequest data)
+    {
+        try
+        {
+            if (string.IsNullOrEmpty(data.itemBarcode))
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "浜岀淮鐮佸唴瀹逛笉鑳戒负绌�",
+                    data = null
+                };
+            }
+            dynamic resultInfos = new System.Dynamic.ExpandoObject();
+            var materialInfo = new LljService().GetMaterialByBarcode(data.itemBarcode, data.currentBillNo);
+
+            if (materialInfo == null || materialInfo.Count == 0)
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "鏈壘鍒板搴旂殑鐗╂枡淇℃伅锛岃妫�鏌ヤ簩缁寸爜鏄惁姝g‘",
+                    data = null
+                };
+            }
+            resultInfos.tbBillList = materialInfo;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "鏌ヨ鎴愬姛",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return new ResponseResult
+            {
+                status = 1,
+                message = ex.Message, // 鐩存帴杩斿洖寮傚父淇℃伅锛屽寘鍚�"璇ユ潯鐮佷笉鏄妫�楠屽崟鏉$爜锛�"
+                data = null
+            };
+        }
+    }
+    /// <summary>
+    /// 鏌ヨ鐮村潖瀹為獙璁板綍鏄惁瀛樺湪
+    /// </summary>
+    /// <param name="data">鏌ヨ璇锋眰鏁版嵁</param>
+    /// <returns>鏌ヨ缁撴灉</returns>
+    [HttpPost("CheckPhsyRecord")]
+    public ResponseResult CheckPhsyRecord([FromBody] CheckPhsyRecordRequest data)
+    {
+        try
+        {
+            if (string.IsNullOrEmpty(data.billNo))
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "鍒拌揣鍗曞彿涓嶈兘涓虹┖",
+                    data = null
+                };
+            }
+            if (string.IsNullOrEmpty(data.releaseNo))
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "妫�楠屽崟鍙蜂笉鑳戒负绌�",
+                    data = null
+                };
+            }
+            var exists = new LljService().CheckPhsyRecordExists(data.billNo, data.releaseNo);
+            dynamic resultInfos = new System.Dynamic.ExpandoObject();
+            resultInfos.exists = exists;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "鏌ヨ鎴愬姛",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return new ResponseResult
+            {
+                status = 1,
+                message = $"鏌ヨ澶辫触: {ex.Message}",
+                data = null
+            };
+        }
+    }
+    /// <summary>
+    /// 璋冪敤鐮村潖瀹為獙瀛樺偍杩囩▼
+    /// </summary>
+    /// <param name="data">鐮村潖瀹為獙璇锋眰鏁版嵁</param>
+    /// <returns>鎵ц缁撴灉</returns>
+    [HttpPost("CallPhsyUpdateProcedure")]
+    public ResponseResult CallPhsyUpdateProcedure([FromBody] PhsyUpdateRequest data)
+    {
+        try
+        {
+            if (string.IsNullOrEmpty(data.itemBarcode))
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "鏉$爜涓嶈兘涓虹┖",
+                    data = null
+                };
+            }
+            if (string.IsNullOrEmpty(data.billNo))
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "鍒拌揣鍗曞彿涓嶈兘涓虹┖",
+                    data = null
+                };
+            }
+            if (data.yqty <= 0)
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "鏉$爜鏁伴噺蹇呴』澶т簬0",
+                    data = null
+                };
+            }
+            if (data.cqty <= 0)
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "鐮村潖瀹為獙鏁伴噺蹇呴』澶т簬0",
+                    data = null
+                };
+            }
+            if (string.IsNullOrEmpty(data.releaseNo))
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "妫�楠屽崟鍙蜂笉鑳戒负绌�",
+                    data = null
+                };
+            }
+            var (result, message) = new LljService().CallPhsyUpdateProcedure(
+                data.itemBarcode,
+                data.yqty,
+                data.cqty,
+                data.billNo,
+                data.lx,
+                data.releaseNo,
+                data.itemId);
+            dynamic resultInfos = new System.Dynamic.ExpandoObject();
+            resultInfos.result = result;
+            resultInfos.message = message;
+            return new ResponseResult
+            {
+                status = result,
+                message = message,
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return new ResponseResult
+            {
+                status = 1,
+                message = $"璋冪敤瀛樺偍杩囩▼澶辫触: {ex.Message}",
+                data = null
+            };
+        }
+    }
     public class GetWomdabRequest
     {
         public string daa001 { get; set; }
         public string ItemNo { get; set; }
     }
 
+    public class GetMaterialByBarcodeRequest
+    {
+        public string itemBarcode { get; set; }
+        public string currentBillNo { get; set; }
+    }
+    public class PhsyUpdateRequest
+    {
+        public string itemBarcode { get; set; }
+        public decimal yqty { get; set; }
+        public decimal cqty { get; set; }
+        public string billNo { get; set; }
+        public int lx { get; set; } // 鎿嶄綔绫诲瀷锛�1鏂板锛�2淇敼锛�3鍒犻櫎
+        public string releaseNo { get; set; } // 妫�楠屽崟鍙�
+        public decimal? itemId { get; set; } // 鐗╂枡ID
+    }
+    public class CheckPhsyRecordRequest
+    {
+        public string billNo { get; set; }
+        public string releaseNo { get; set; }
+    }
+    [HttpPost("GetPhsyRecordInfo")]
+    public ResponseResult GetPhsyRecordInfo([FromBody] CheckPhsyRecordRequest data)
+    {
+        try
+        {
+            if (string.IsNullOrEmpty(data.billNo))
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "鍒拌揣鍗曞彿涓嶈兘涓虹┖",
+                    data = null
+                };
+            }
+            if (string.IsNullOrEmpty(data.releaseNo))
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "妫�楠屽崟鍙蜂笉鑳戒负绌�",
+                    data = null
+                };
+            }
+            var records = new LljService().GetPhsyRecordInfo(data.billNo, data.releaseNo);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "鏌ヨ鎴愬姛",
+                data = new { tbBillList = records }
+            };
+        }
+        catch (Exception ex)
+        {
+            return new ResponseResult
+            {
+                status = 1,
+                message = $"鏌ヨ澶辫触: {ex.Message}",
+                data = null
+            };
+        }
+    }
+    /// <summary>
+    /// 璁剧疆鍫电┐淇℃伅
+    /// </summary>
+    /// <param name="data">鍫电┐璁剧疆璇锋眰鏁版嵁</param>
+    /// <returns>鎵ц缁撴灉</returns>
+    [HttpPost("SetBlockedHoles")]
+    public ResponseResult SetBlockedHoles([FromBody] SetBlockedHolesRequest data)
+    {
+        try
+        {
+            if (string.IsNullOrEmpty(data.releaseNo))
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "妫�楠屽崟鍙蜂笉鑳戒负绌�",
+                    data = null
+                };
+            }
+            if (string.IsNullOrEmpty(data.blockedHoles))
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "鍫电┐淇℃伅涓嶈兘涓虹┖",
+                    data = null
+                };
+            }
+            if (data.itemId <= 0)
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "妫�楠岄」鐩甀D涓嶈兘涓虹┖",
+                    data = null
+                };
+            }
+            var (result, message) = new LljService().SetBlockedHoles(data.releaseNo, data.blockedHoles, data.itemId);
+            return new ResponseResult
+            {
+                status = result,
+                message = message,
+                data = new { result = result, message = message }
+            };
+        }
+        catch (Exception ex)
+        {
+            return new ResponseResult
+            {
+                status = 1,
+                message = $"璁剧疆鍫电┐澶辫触: {ex.Message}",
+                data = null
+            };
+        }
+    }
+    public class SetBlockedHolesRequest
+    {
+        public string releaseNo { get; set; }
+        public string blockedHoles { get; set; }
+        public decimal itemId { get; set; }
+    }
+
+
 }
\ No newline at end of file

--
Gitblit v1.9.3