From 5e851678cc02257bbbd179446de36082430ca5bc Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期一, 13 四月 2026 15:12:04 +0800
Subject: [PATCH] feat(MES): 添加Mes_Log扩展逻辑

---
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Mes/MesLogController.cs |  116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 116 insertions(+), 0 deletions(-)

diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Mes/MesLogController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Mes/MesLogController.cs
new file mode 100644
index 0000000..e7f78ea
--- /dev/null
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Mes/MesLogController.cs
@@ -0,0 +1,116 @@
+using Autofac.Core;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseController;
+using WIDESEA_DTO.MES;
+using WIDESEA_IBasicService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Mes
+{
+    /// <summary>
+    /// MES鎺ュ彛鏃ュ織鎺у埗鍣�
+    /// </summary>
+    [Route("api/MesLog")]
+    [ApiController]
+    [Authorize]
+    public class MesLogController : ApiBaseController<IMesLogService, Dt_MesApiLog>
+    {
+        private readonly IMesLogService _mesLogService;
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public MesLogController(IMesLogService mesLogService) : base(mesLogService)
+        {
+            _mesLogService = mesLogService;
+        }
+
+        /// <summary>
+        /// 鍒嗛〉鏌ヨMES鏃ュ織
+        /// </summary>
+        /// <param name="query">鏌ヨ鏉′欢</param>
+        /// <param name="page">椤电爜锛岄粯璁�1</param>
+        /// <param name="pageSize">姣忛〉鏁伴噺锛岄粯璁�20</param>
+        /// <returns>鍒嗛〉缁撴灉</returns>
+        [HttpPost("page")]
+        public async Task<WebResponseContent> GetPage([FromBody] MesLogQueryDto query, [FromQuery] int page = 1, [FromQuery] int pageSize = 20)
+        {
+            var response = new WebResponseContent();
+            try
+            {
+                var (items, total) = await _mesLogService.GetPageAsync(query, page, pageSize);
+                return response.OK(null, new { rows = items, total = total });
+            }
+            catch (Exception ex)
+            {
+                return response.Error($"鏌ヨ澶辫触: {ex.Message}");
+            }
+        }
+
+        /// <summary>
+        /// 鑾峰彇鏃ュ織璇︽儏
+        /// </summary>
+        /// <param name="id">鏃ュ織ID</param>
+        /// <returns>鏃ュ織璇︽儏</returns>
+        [HttpGet("{id}")]
+        public async Task<WebResponseContent> GetDetail(long id)
+        {
+            var response = new WebResponseContent();
+            try
+            {
+                var detail = await _mesLogService.GetDetailAsync(id);
+                if (detail == null)
+                {
+                    return response.Error("鏃ュ織涓嶅瓨鍦�");
+                }
+                return response.OK(null, detail);
+            }
+            catch (Exception ex)
+            {
+                return response.Error($"鏌ヨ澶辫触: {ex.Message}");
+            }
+        }
+
+        /// <summary>
+        /// 鑾峰彇缁熻鏁版嵁
+        /// </summary>
+        /// <param name="query">鏌ヨ鏉′欢锛堝彲閫夛級</param>
+        /// <returns>缁熻鏁版嵁</returns>
+        [HttpGet("statistics")]
+        public async Task<WebResponseContent> GetStatistics([FromQuery] MesLogQueryDto query)
+        {
+            var response = new WebResponseContent();
+            try
+            {
+                var statistics = await _mesLogService.GetStatisticsAsync(query ?? new MesLogQueryDto());
+                return response.OK(null, statistics);
+            }
+            catch (Exception ex)
+            {
+                return response.Error($"鏌ヨ澶辫触: {ex.Message}");
+            }
+        }
+
+        /// <summary>
+        /// 瀵煎嚭鏃ュ織
+        /// </summary>
+        /// <param name="query">鏌ヨ鏉′欢</param>
+        /// <returns>CSV鏂囦欢</returns>
+        [HttpPost("export")]
+        public async Task<IActionResult> Export([FromBody] MesLogQueryDto query)
+        {
+            try
+            {
+                var data = await _mesLogService.ExportAsync(query ?? new MesLogQueryDto());
+                var fileName = $"MES鎺ュ彛鏃ュ織_{DateTime.Now:yyyyMMdd_HHmmss}.csv";
+                return File(data, "text/csv; charset=utf-8", fileName);
+            }
+            catch (Exception ex)
+            {
+                return BadRequest(new { error = ex.Message });
+            }
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3