From f3bdc703bebd49d6149c5fd053cd8f57d50efc44 Mon Sep 17 00:00:00 2001
From: admin <qiutairan163@163.com>
Date: 星期三, 03 十二月 2025 17:04:58 +0800
Subject: [PATCH] 开发获取需要质检的批次号GetInspectLotNoList接口

---
 Wms/Wms/Controllers/BllQualityController.cs |  202 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 178 insertions(+), 24 deletions(-)

diff --git a/Wms/Wms/Controllers/BllQualityController.cs b/Wms/Wms/Controllers/BllQualityController.cs
index 9f93f4b..2673376 100644
--- a/Wms/Wms/Controllers/BllQualityController.cs
+++ b/Wms/Wms/Controllers/BllQualityController.cs
@@ -1,14 +1,20 @@
 锘縰sing Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
-using System.Security.Claims;
+using Microsoft.Extensions.Options;
+using Model.ModelVm;
+using Model.ModelVm.BllQualityVm;
 using System;
+using System.Collections.Generic;
+using System.Drawing.Printing;
+using System.IO;
+using System.Linq;
+using System.Security.Claims;
+using System.Threading.Tasks;
+using Wms.Tools;
 using WMS.Entity.BllQualityEntity;
 using WMS.IBLL.IBllQualityServer;
-using Model.ModelVm.BllQualityVm;
-using Model.ModelVm;
-using Wms.Tools;
-using Microsoft.Extensions.Options;
+
 
 namespace Wms.Controllers
 {
@@ -26,7 +32,7 @@
         /// 鏋勯�犲嚱鏁�
         /// </summary>
         /// <param name="qualityServer">璐ㄦ淇℃伅</param>
-        public BllQualityController(IQualityInspectServer qualityServer,IInspectionRequest inspectionRequestServer, IOptions<ApiUrlConfig> setting)
+        public BllQualityController(IQualityInspectServer qualityServer, IInspectionRequest inspectionRequestServer, IOptions<ApiUrlConfig> setting)
         {
             _qualityServer = qualityServer;
             _inspectionRequestServer = inspectionRequestServer;
@@ -49,6 +55,28 @@
                 var bolls = _qualityServer.GetBllQualityList(model);
 
                 return Ok(new { code = 0, msg = "璐ㄦ淇℃伅", data = bolls });
+            }
+            catch (Exception e)
+            {
+                return Ok(new { code = 1, msg = e.Message });
+            }
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇闇�瑕佽川妫�鐨勬壒娆″彿
+        /// </summary>
+        /// <param name="pageIndex">椤电爜</param>
+        /// <param name="pageSize">椤靛ぇ灏�</param>
+        /// <returns></returns>
+        [HttpGet]
+        public IActionResult GetInspectLotNoList(int pageIndex, int pageSize)
+        {
+            try
+            {
+                var data = _qualityServer.GetInspectLotNoList(pageIndex, pageSize);
+
+                return Ok(new { code = 0, msg = "闇�瑕佽川妫�鐨勬壒娆″彿", data = data });
             }
             catch (Exception e)
             {
@@ -99,7 +127,7 @@
         /// <param name="model">鏌ヨ鏉′欢</param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetInspectionRequest(BllQualityInspectionRequestVm model) 
+        public IActionResult GetInspectionRequest(BllQualityInspectionRequestVm model)
         {
             try
             {
@@ -119,7 +147,7 @@
         /// <param name="model">鏌ヨ鏉′欢</param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetSamplingDetails(BllSamplingDetailsVm model) 
+        public IActionResult GetSamplingDetails(BllSamplingDetailsVm model)
         {
             try
             {
@@ -139,7 +167,7 @@
         /// <param name="model">涓婚敭ID</param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult DelSamplingDetails(IdVm model) 
+        public IActionResult DelSamplingDetails(IdVm model)
         {
             try
             {
@@ -156,7 +184,7 @@
 
                 var models = _inspectionRequestServer.DelSamplingDetails(model, int.Parse(userId));
 
-                return Ok(new { code = 0, count=0, msg = "鍒犻櫎鍙栨牱璁板綍鎴愬姛", data = models });
+                return Ok(new { code = 0, count = 0, msg = "鍒犻櫎鍙栨牱璁板綍鎴愬姛", data = models });
             }
             catch (Exception e)
             {
@@ -164,13 +192,8 @@
             }
         }
 
-        /// <summary>
-        /// 鍙戦�佽楠屽崟鎹�
-        /// </summary>
-        /// <param name="model">涓婚敭ID</param>
-        /// <returns></returns>
         [HttpPost]
-        public IActionResult SendInspectionRequest(IdVm model) 
+        public IActionResult upLoadRequest(IdVm model)
         {
             try
             {
@@ -186,16 +209,16 @@
                 }
                 var userName = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier)?.Value;
 
-                string url = _config.WcsHost + _config.IssueComApiUrl;
-                var models = _inspectionRequestServer.SendInspectionRequest(model, int.Parse(userId),url,userName);
 
-                return Ok(new { code = 0, count=0, msg = "鍚慙imes璇烽獙鎴愬姛!", data = models });
+                return Ok(new { code = 0, count = 0, msg = "涓婁紶鍥剧墖鎴愬姛!" });
             }
             catch (Exception e)
             {
                 return Ok(new { code = 1, msg = e.Message });
             }
         }
+
+
 
         /// <summary>
         /// 鍒犻櫎璇烽獙鍗曚俊鎭�
@@ -220,7 +243,7 @@
 
                 var models = _inspectionRequestServer.DelInspectionRequest(model, int.Parse(userId));
 
-                return Ok(new { code = 0, count=0, msg = "鍒犻櫎璇烽獙鍗曚俊鎭垚鍔�", data = models });
+                return Ok(new { code = 0, count = 0, msg = "鍒犻櫎璇烽獙鍗曚俊鎭垚鍔�", data = models });
             }
             catch (Exception e)
             {
@@ -244,7 +267,7 @@
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
                 var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                
+
                 if (string.IsNullOrWhiteSpace(userId))
                 {
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
@@ -253,13 +276,13 @@
                 string url = _config.WcsHost + _config.IssueComApiUrl;
                 var models = _inspectionRequestServer.OutWhInspectionRequest(model, int.Parse(userId), url);
 
-                return Ok(new { code = 0, count=0, msg = "鍙栨牱鍑哄簱鎿嶄綔鎴愬姛!", data = models });
+                return Ok(new { code = 0, count = 0, msg = "鍙栨牱鍑哄簱鎿嶄綔鎴愬姛!", data = models });
             }
             catch (Exception e)
             {
                 return Ok(new { code = 1, msg = e.Message });
             }
-        } 
+        }
 
         /// <summary>
         /// 瀹屾垚璇烽獙鍗曟嵁
@@ -283,7 +306,7 @@
                 }
 
                 string url = _config.WcsHost + _config.IssueComApiUrl;
-                var models = _inspectionRequestServer.ClossInspectionRequest(model, int.Parse(userId),url);
+                var models = _inspectionRequestServer.ClossInspectionRequest(model, int.Parse(userId), url);
 
                 return Ok(new { code = 0, msg = "瀹屾垚璇烽獙鍗�", data = models });
             }
@@ -292,6 +315,137 @@
                 return Ok(new { code = 1, msg = e.Message });
             }
         }
+
+        /// <summary>
+        ///  鍥剧墖涓婁紶
+        /// </summary>
+        /// <param name="file"></param>
+        /// <param name="qualityId"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<IActionResult> UploadImage([FromForm] IFormFile file, [FromForm] int qualityId)
+        {
+            try
+            {
+                var claimsIdentity = this.User.Identity as ClaimsIdentity;
+                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
+                if (file == null || file.Length == 0)
+                    return BadRequest(new { code = 1, msg = "璇烽�夋嫨涓婁紶鏂囦欢" });
+
+                // 楠岃瘉鏂囦欢绫诲瀷
+                var allowedExtensions = new[] { ".jpg", ".jpeg", ".png", ".gif" };
+                var fileExtension = Path.GetExtension(file.FileName).ToLower();
+                if (!allowedExtensions.Contains(fileExtension))
+                    return BadRequest(new { code = 2, msg = "鍙厑璁镐笂浼犲浘鐗囨枃浠�" });
+
+                // 闄愬埗鏂囦欢澶у皬 (5MB)
+                if (file.Length > 5 * 1024 * 1024)
+                    return BadRequest(new { code = 3, msg = "鏂囦欢澶у皬涓嶈兘瓒呰繃5MB" });
+
+                // 鍒涘缓璐ㄩ噺鐩稿叧鐨勫浘鐗囩洰褰�
+                var uploadPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwRoot", "uploads", "quality", qualityId.ToString());
+                if (!Directory.Exists(uploadPath))
+                    Directory.CreateDirectory(uploadPath);
+
+                // 鐢熸垚鍞竴鏂囦欢鍚�
+                var fileName = $"{DateTime.Now:yyyyMMddHHmmss}_{userId}{fileExtension}";
+                var filePath = Path.Combine(uploadPath, fileName);
+
+                // 淇濆瓨鏂囦欢
+                using (var stream = new FileStream(filePath, FileMode.Create))
+                {
+                    await file.CopyToAsync(stream);
+                }
+
+                // 杩斿洖鏂囦欢璁块棶璺緞
+                var fileUrl = $"/wwwRoot/uploads/quality/{qualityId}/{fileName}";
+
+                // 杩欓噷鍙互娣诲姞鏁版嵁搴撹褰曠瓑鎿嶄綔
+                // _qualityService.AddImageRecord(qualityId, userId, fileUrl, fileName);
+
+                return Ok(new
+                {
+                    code = 0,
+                    msg = "涓婁紶鎴愬姛",
+                    data = new
+                    {
+                        url = fileUrl,
+                        fileName = fileName
+                    }
+                });
+            }
+            catch (Exception ex)
+            {
+                return StatusCode(500, new { code = 500, msg = $"涓婁紶澶辫触: {ex.Message}" });
+            }
+        }
+
+        /// <summary>
+        /// 鍥剧墖鑾峰彇
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public IActionResult GetImage(BllQualityInspect model)
+        {
+            try
+            {
+
+                var fullPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwRoot", "uploads", "quality", model.Id.ToString());
+                if (!Directory.Exists(fullPath))
+                {
+                    return StatusCode(1, new { code = 1, msg = "鍥剧墖涓嶅瓨鍦�" });
+                }
+                var files = Directory.GetFiles(fullPath);
+                if (files.Length <= 0)
+                    return StatusCode(1, new { code = 1, msg = "鍥剧墖涓嶅瓨鍦�" });
+                List<string> images = new List<string>();
+                foreach (var file in files)
+                {
+                    images.Add($"{Request.Scheme}://{Request.Host}/uploads/quality/{model.Id.ToString()}/{Path.GetFileName(file)}");
+                }
+                return Ok(new
+                {
+                    code = 0,
+                    msg = "鍥剧墖" + files.Length + "寮�",
+                    data = images
+                });
+            }
+            catch (Exception ex)
+            {
+                return StatusCode(500, new { code = 500, msg = $"鑾峰彇鍥剧墖澶辫触: {ex.Message}" });
+            }
+        }
+
+        /// <summary>
+        /// 鍒犻櫎鍥剧墖
+        /// </summary>
+        /// <param name="data">鍥剧墖淇℃伅</param>
+        /// <returns></returns>
+        [HttpPost]
+        public IActionResult DeleteImage(QualityImageVM data)
+        {
+            try
+            {
+                string fileName = Path.GetFileName(data.ImageUrl);
+
+                var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwRoot", "uploads", "quality", data.QualityId.ToString(), fileName);
+                if (System.IO.File.Exists(filePath))
+                {
+                    System.IO.File.Delete(filePath);
+
+                    return Ok(new { code = 0, msg = "鍒犻櫎鎴愬姛" });
+                }
+                else
+                {
+                    return Ok(new { code = 1, msg = "鍥剧墖涓嶅瓨鍦�" });
+                }
+            }
+            catch (Exception ex)
+            {
+                return Ok(new { code = 1, msg = ex.Message });
+            }
+        }
         #endregion
     }
 }

--
Gitblit v1.8.0