From 9057d0f6f3a46b93d62d0b71c7f4f03eca41f3a9 Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期三, 15 十月 2025 16:43:14 +0800
Subject: [PATCH] 11111

---
 MESApplication/Controllers/QC/SpiAoiController.cs |  188 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 171 insertions(+), 17 deletions(-)

diff --git a/MESApplication/Controllers/QC/SpiAoiController.cs b/MESApplication/Controllers/QC/SpiAoiController.cs
index 1339d59..c9f08c7 100644
--- a/MESApplication/Controllers/QC/SpiAoiController.cs
+++ b/MESApplication/Controllers/QC/SpiAoiController.cs
@@ -1,4 +1,6 @@
+using System.Collections.Generic;
 using System.Dynamic;
+using System.Linq;
 using MES.Service.Dto.service;
 using MES.Service.Modes;
 using MES.Service.service;
@@ -20,34 +22,186 @@
     private readonly MessageCenterManager _manager = new();
     private readonly SpiAoiService _service = new();
 
-    private readonly string METHOD = "POST";
-    private readonly string TableName = "MES_SPI_AOI_HEADER";
-    private readonly string URL = "http://localhost:10054/api/QC/SpiAoi/";
+    private const string METHOD = "POST";
+    private const string HeaderTableName = "MES_SPI_AOI_HEADER";
+    private const string DetailTableName = "MES_SPI_AOI_DETAIL";
+    private const string BaseUrl = "http://localhost:10054/api/QC/SpiAoi/";
 
     /// <summary>
-    ///     涓婁紶SPI/AOI妫�娴嬫暟鎹�
+    ///     Upload AOI header data.
     /// </summary>
-    /// <param name="request">涓婁紶璇锋眰</param>
-    /// <returns>涓婁紶缁撴灉</returns>
-    [HttpPost("Upload")]
-    public ResponseResult Upload([FromBody] SpiAoiUploadRequest request)
+    /// <param name="header">AOI header payload.</param>
+    /// <returns>Upload result.</returns>
+    [HttpPost("UploadAoiHeader")]
+    public ResponseResult UploadAoiHeader(
+        [FromBody] SpiAoiHeaderDto header)
     {
-        var entity = new MessageCenter();
-        entity.TableName = TableName;
-        entity.Url = URL + "Upload";
-        entity.Method = METHOD;
-        entity.Data = JsonConvert.SerializeObject(request);
-        entity.Status = 1;
-        entity.CreateBy = "SPI_AOI_SYSTEM";
+        var entity = new MessageCenter
+        {
+            TableName = HeaderTableName,
+            Url = BaseUrl + "UploadAoiHeader",
+            Method = METHOD,
+            Data = JsonConvert.SerializeObject(header),
+            Status = 1,
+            CreateBy = "SPI_AOI_SYSTEM"
+        };
 
         try
         {
-            var response = _service.UploadSpiAoiData(request);
+            var response = _service.UploadAoiHeader(header);
 
             dynamic resultInfos = new ExpandoObject();
             resultInfos.headerId = response.HeaderId;
+            resultInfos.message = "AOI header upload succeeded";
+
+            entity.Result = 1;
+            entity.DealWith = 1;
+            entity.ResultData = JsonConvert.SerializeObject(response);
+            _manager.save(entity);
+
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            entity.Result = 0;
+            entity.DealWith = 0;
+            entity.ResultData = ex.Message;
+            _manager.save(entity);
+
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     Batch upload AOI header data.
+    /// </summary>
+    /// <param name="headers">AOI header payload collection.</param>
+    /// <returns>Upload result.</returns>
+    [HttpPost("UploadAoiHeaderBatch")]
+    public ResponseResult UploadAoiHeaderBatch(
+        [FromBody] List<SpiAoiHeaderDto> headers)
+    {
+        var entity = new MessageCenter
+        {
+            TableName = HeaderTableName,
+            Url = BaseUrl + "UploadAoiHeaderBatch",
+            Method = METHOD,
+            Data = JsonConvert.SerializeObject(headers),
+            Status = 1,
+            CreateBy = "SPI_AOI_SYSTEM"
+        };
+
+        try
+        {
+            var responses = _service.UploadAoiHeaderBatch(headers);
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.headerIds = responses.Select(r => r.HeaderId).ToList();
+            resultInfos.message = "AOI header batch upload succeeded";
+
+            entity.Result = 1;
+            entity.DealWith = 1;
+            entity.ResultData = JsonConvert.SerializeObject(responses);
+            _manager.save(entity);
+
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            entity.Result = 0;
+            entity.DealWith = 0;
+            entity.ResultData = ex.Message;
+            _manager.save(entity);
+
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     Upload SPI detail data.
+    /// </summary>
+    /// <param name="request">SPI detail payload.</param>
+    /// <returns>Upload result.</returns>
+    [HttpPost("UploadSpiDetails")]
+    public ResponseResult UploadSpiDetails(
+        [FromBody] SpiAoiDetailDto request)
+    {
+        var entity = new MessageCenter
+        {
+            TableName = DetailTableName,
+            Url = BaseUrl + "UploadSpiDetails",
+            Method = METHOD,
+            Data = JsonConvert.SerializeObject(request),
+            Status = 1,
+            CreateBy = "SPI_AOI_SYSTEM"
+        };
+
+        try
+        {
+            var response = _service.UploadSpiDetails(request);
+
+            dynamic resultInfos = new ExpandoObject();
             resultInfos.detailCount = response.DetailCount;
-            resultInfos.message = "SPI/AOI妫�娴嬫暟鎹笂浼犳垚鍔�";
+            resultInfos.message = "SPI detail upload succeeded";
+
+            entity.Result = 1;
+            entity.DealWith = 1;
+            entity.ResultData = JsonConvert.SerializeObject(response);
+            _manager.save(entity);
+
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            entity.Result = 0;
+            entity.DealWith = 0;
+            entity.ResultData = ex.Message;
+            _manager.save(entity);
+
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     Batch upload SPI detail data.
+    /// </summary>
+    /// <param name="requests">SPI detail payload collection.</param>
+    /// <returns>Upload result.</returns>
+    [HttpPost("UploadSpiDetailsBatch")]
+    public ResponseResult UploadSpiDetailsBatch(
+        [FromBody] List<SpiAoiDetailDto> requests)
+    {
+        var entity = new MessageCenter
+        {
+            TableName = DetailTableName,
+            Url = BaseUrl + "UploadSpiDetailsBatch",
+            Method = METHOD,
+            Data = JsonConvert.SerializeObject(requests),
+            Status = 1,
+            CreateBy = "SPI_AOI_SYSTEM"
+        };
+
+        try
+        {
+            var response = _service.UploadSpiDetailsBatch(requests);
+
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.detailCount = response.DetailCount;
+            resultInfos.message = "SPI detail batch upload succeeded";
 
             entity.Result = 1;
             entity.DealWith = 1;

--
Gitblit v1.9.3