tjx
2025-10-15 9057d0f6f3a46b93d62d0b71c7f4f03eca41f3a9
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;