From ff982948331200f951a486a7b38c11c009da19b2 Mon Sep 17 00:00:00 2001
From: xwt <2740516069@qq.com>
Date: 星期四, 17 七月 2025 14:29:49 +0800
Subject: [PATCH] 来料检获取附件信息

---
 StandardInterface/MES.Service/Dto/service/RKJDaa001.cs           |   16 +++++++
 StandardInterface/MES.Service/service/QC/LljService.cs           |   25 ++++++++++++
 StandardInterface/MES.Service/service/QC/RKJService.cs           |   12 +++---
 StandardInterface/MESApplication/Controllers/QC/LljController.cs |   64 ++++++++++++++++++++++++++++++++
 StandardInterface/MESApplication/appsettings.json                |    2 
 5 files changed, 111 insertions(+), 8 deletions(-)

diff --git a/StandardInterface/MES.Service/Dto/service/RKJDaa001.cs b/StandardInterface/MES.Service/Dto/service/RKJDaa001.cs
index e7a61de..61b439d 100644
--- a/StandardInterface/MES.Service/Dto/service/RKJDaa001.cs
+++ b/StandardInterface/MES.Service/Dto/service/RKJDaa001.cs
@@ -13,7 +13,8 @@
     public decimal? ItemInId { get; set; }
 
     // 浠诲姟鍗曞彿
-    [SugarColumn(ColumnName = "ITEM_NO")] public string? ItemNo { get; set; }
+    [SugarColumn(ColumnName = "ITEM_NO")] 
+    public string? ItemNo { get; set; }
 
     [SugarColumn(ColumnName = "ITEM_NAME")]
     public string? ItemName { get; set; }
@@ -21,4 +22,17 @@
     // 璁㈠崟鏁伴噺
     [SugarColumn(ColumnName = "QUANTITY")]
     public decimal? Quantity { get; set; }
+
+    //浜х嚎缂栫爜
+    [SugarColumn(ColumnName = "DAA015")]
+    public string? Daa015 { get; set; }
+
+    //浜х嚎缂栫爜
+    [SugarColumn(ColumnName = "DAA015")]
+    public string? Daa020 { get; set; }
+
+    //鐢宠鍗曞彿
+    [SugarColumn(ColumnName = "BILL_NO")]
+    public string? billNo { get; set; }
+
 }
\ No newline at end of file
diff --git a/StandardInterface/MES.Service/service/QC/LljService.cs b/StandardInterface/MES.Service/service/QC/LljService.cs
index 57e31ce..6a7e76f 100644
--- a/StandardInterface/MES.Service/service/QC/LljService.cs
+++ b/StandardInterface/MES.Service/service/QC/LljService.cs
@@ -311,6 +311,31 @@
         return input.Substring(startIndex + 1, length);
     }
 
+    public List<QamftpDto> GetAttachments(string releaseNo)
+    {
+        var db = SqlSugarHelper.GetInstance();
+        return db.Queryable<MesQamftp>()
+            .Where(x => x.ReleaseNo == releaseNo)
+            .OrderBy(x => x.Fdate, OrderByType.Desc)
+            .Select(x => new QamftpDto
+            {
+                Id = x.Id,
+                ItemNo = x.ItemNo,
+                Ftype = x.Ftype,
+                Fattach = x.Fattach,
+                Fversion = x.Fversion,
+                Fdate = x.Fdate,
+                CreateBy = x.CreateBy,
+                CreateDate = x.CreateDate,
+                Company = x.Company,
+                Factory = x.Factory,
+                ReleaseNo = x.ReleaseNo,
+                F_type = x.F_type,
+                LastupdateBy = x.LastupdateBy,
+                LastupdateDate = x.LastupdateDate,
+                ItemId = x.ItemId
+            }).ToList();
+    }
     public int saveItem(LLJDto rkjDto)
     {
         var items = rkjDto.items;
diff --git a/StandardInterface/MES.Service/service/QC/RKJService.cs b/StandardInterface/MES.Service/service/QC/RKJService.cs
index 07260a8..d7a9df3 100644
--- a/StandardInterface/MES.Service/service/QC/RKJService.cs
+++ b/StandardInterface/MES.Service/service/QC/RKJService.cs
@@ -50,14 +50,14 @@
 
 
     //鑾峰彇宸ュ崟鍙�
-    public List<RkDaa002> GetDaa001s(string lineNo)
+    public List<RKJDaa001> GetDaa001s(string lineNo)
     {
         var db = SqlSugarHelper.GetInstance();
-        // return db.Queryable<RKJDaa001>()
-        //     .Where(t => t.LineNo == lineNo)
-        //     .OrderBy(t => t.BillNo, OrderByType.Desc)
-        //     .ToList();
-        return null;
+        return db.Queryable<RKJDaa001>()
+            .Where(t => t.Daa020 == lineNo)
+            .OrderBy(t => t.ItemInId, OrderByType.Desc)
+            .ToList();
+        //return null;
     }
 
     //鏍规嵁妫�楠屾爣鍑嗘潵璁$畻妫�楠屼釜鏁�
diff --git a/StandardInterface/MESApplication/Controllers/QC/LljController.cs b/StandardInterface/MESApplication/Controllers/QC/LljController.cs
index 8112f51..576e5c6 100644
--- a/StandardInterface/MESApplication/Controllers/QC/LljController.cs
+++ b/StandardInterface/MESApplication/Controllers/QC/LljController.cs
@@ -316,4 +316,68 @@
             return ResponseResult.ResponseError(ex);
         }
     }
+
+    [HttpPost("getAttachments")]
+    public ResponseResult GetAttachments([FromBody] JObject data)
+    {
+        var releaseNo = data["releaseNo"]?.ToString();
+        try
+        {
+            dynamic resultInfos = new System.Dynamic.ExpandoObject();
+            var tbBillList = new LljService().GetAttachments(releaseNo);
+            if (tbBillList == null || tbBillList.Count == 0)
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "璇ユ楠屽崟鏈笂浼犻檮浠朵俊鎭紒",
+                    data = null
+                };
+            }
+            resultInfos.tbBillList = tbBillList;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    [HttpGet("DownloadFtpFile")]
+    public IActionResult DownloadFtpFile([FromQuery] string itemNo, [FromQuery] string fileName)
+    {
+        // FTP鏈嶅姟鍣ㄤ俊鎭紙璇锋浛鎹负瀹為檯淇℃伅锛�
+        string ftpServer = "ftp://36.26.21.214";
+        string ftpUser = "hm_ftp";
+        string ftpPwd = "dell_123"; // 宸叉洿鏂颁负鐪熷疄瀵嗙爜
+        string ftpPath = $"{ftpServer}/IQC/{itemNo}/{fileName}";
+        try
+        {
+            var request = (System.Net.FtpWebRequest)System.Net.WebRequest.Create(ftpPath);
+            request.Method = System.Net.WebRequestMethods.Ftp.DownloadFile;
+            request.Credentials = new System.Net.NetworkCredential(ftpUser, ftpPwd);
+            request.UseBinary = true;
+            request.UsePassive = true;
+            using (var response = (System.Net.FtpWebResponse)request.GetResponse())
+            using (var ftpStream = response.GetResponseStream())
+            using (var ms = new System.IO.MemoryStream())
+            {
+                ftpStream.CopyTo(ms);
+                ms.Position = 0;
+                string contentType = "application/octet-stream";
+                // 闃插尽鎬у鐞嗭紝鍘婚櫎fileName涓殑鍥炶溅鎹㈣鍜岀┖鏍�
+                fileName = fileName?.Trim().Replace("\r", "").Replace("\n", "");
+                return File(ms.ToArray(), contentType, fileName);
+            }
+        }
+        catch (Exception ex)
+        {
+            return BadRequest($"FTP涓嬭浇澶辫触锛歿ex.Message}锛宖tpPath={ftpPath}锛宖ileName={fileName}");
+        }
+    }
 }
\ No newline at end of file
diff --git a/StandardInterface/MESApplication/appsettings.json b/StandardInterface/MESApplication/appsettings.json
index 28cfc2a..59a3601 100644
--- a/StandardInterface/MESApplication/appsettings.json
+++ b/StandardInterface/MESApplication/appsettings.json
@@ -10,6 +10,6 @@
   "AppSettings": {
     "TestErpUrl": "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfo",
     "ProductionErpUrl": "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfoFormal",
-    "DataBaseConn": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = hm_prd; Password=hmprd"
+    "DataBaseConn": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = test_dev; Password=hmprd"
   }
 }

--
Gitblit v1.9.3