using System.Dynamic; using MES.Service.Dto.webApi; using MES.Service.service.QC; using MES.Service.util; using Microsoft.AspNetCore.Mvc; namespace MESApplication.Controllers.QC; [Route("api/[controller]")] [ApiController] public class BarcodeController : ControllerBase { private readonly BarcodeService _barcodeService; public BarcodeController() { _barcodeService = new BarcodeService(); } [HttpPost("generateBarcode")] public ResponseResult GenerateBarcode([FromBody] GenerateBarcodeRequest request) { try { if (request == null) { return new ResponseResult { status = 1, message = "请求体不能为空", data = "请求体不能为空" }; } // Validate panelQuantity is a valid positive number if (request.panelQuantity <= 0) { return new ResponseResult { status = 1, message = "panelQuantity 必须是大于0的数字", data = "panelQuantity 必须是大于0的数字" }; } var missingParams = new List(); if (string.IsNullOrEmpty(request.@operator)) missingParams.Add("operator"); if (string.IsNullOrEmpty(request.workOrderNumber)) missingParams.Add("workOrderNumber"); if (missingParams.Count > 0) { var message = $"缺少必填参数:{string.Join(", ", missingParams)}"; return new ResponseResult { status = 1, message = message, data = message }; } var result = _barcodeService.GenerateBarcodes(request); return new ResponseResult { status = 0, message = "条码生成成功", data = result }; } catch (ArgumentException ex) { return new ResponseResult { status = 1, message = ex.Message, data = ex.Message }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } [HttpPost("confirmBarcode")] public ResponseResult ConfirmBarcode([FromBody] ConfirmBarcodeRequest request) { try { if (request == null) { return new ResponseResult { status = 1, message = "请求体不能为空", data = "请求体不能为空" }; } var missingParams = new List(); if (request.barcodes == null || request.barcodes.Count == 0) missingParams.Add("barcodes"); if (string.IsNullOrEmpty(request.@operator)) missingParams.Add("operator"); if (string.IsNullOrEmpty(request.workOrderNumber)) missingParams.Add("workOrderNumber"); if (missingParams.Count > 0) { var message = $"缺少必填参数:{string.Join(", ", missingParams)}"; return new ResponseResult { status = 1, message = message, data = message }; } _barcodeService.ConfirmBarcodes(request); return new ResponseResult { status = 0, message = "条码确认成功", data = "条码确认已完成" }; } catch (ArgumentException ex) { return new ResponseResult { status = 1, message = ex.Message.Contains("工单") ? "工单号无效" : ex.Message.Contains("条码") ? "条码格式不正确" : ex.Message.Contains("列表") ? "缺少条码" : ex.Message, data = ex.Message }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } }