MES.Service/Dto/webApi/BarcodeDto.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
MES.Service/service/QC/BarcodeService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
MESApplication/Controllers/QC/BarcodeController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
MES.Service/Dto/webApi/BarcodeDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ namespace MES.Service.Dto.webApi; public class GenerateBarcodeRequest { public int panelQuantity { get; set; } public string @operator { get; set; } public string workOrderNumber { get; set; } } public class GenerateBarcodeResponse { public List<string> barcodes { get; set; } = new List<string>(); } public class ConfirmBarcodeRequest { public List<string> barcodes { get; set; } = new List<string>(); public string @operator { get; set; } public string workOrderNumber { get; set; } } MES.Service/service/QC/BarcodeService.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,80 @@ using MES.Service.Dto.webApi; namespace MES.Service.service.QC; public class BarcodeService { private static readonly List<string> ValidWorkOrders = new List<string> { "WO123456", "WO987654", "WO111222", "WO333444", "WO555666" }; private static readonly List<string> GeneratedBarcodes = new List<string>(); public GenerateBarcodeResponse GenerateBarcodes(GenerateBarcodeRequest request) { if (request.panelQuantity <= 0) { throw new ArgumentException("panelQuantity å¿ é¡»æ¯å¤§äº0çæ°å"); } if (string.IsNullOrEmpty(request.@operator)) { throw new ArgumentException("缺å°å¿ å¡«åæ°ï¼operator"); } if (string.IsNullOrEmpty(request.workOrderNumber)) { throw new ArgumentException("缺å°å¿ å¡«åæ°ï¼workOrderNumber"); } var response = new GenerateBarcodeResponse(); var timestamp = DateTime.Now.ToString("yyyyMMddHHmmss"); var random = new Random(); for (int i = 0; i < request.panelQuantity; i++) { var barcode = $"BC{timestamp}{random.Next(1000, 9999)}{i:D2}"; response.barcodes.Add(barcode); GeneratedBarcodes.Add(barcode); } return response; } public void ConfirmBarcodes(ConfirmBarcodeRequest request) { if (request.barcodes == null || request.barcodes.Count == 0) { throw new ArgumentException("请æä¾ææçæ¡ç å表"); } if (string.IsNullOrEmpty(request.@operator)) { throw new ArgumentException("缺å°å¿ å¡«åæ°ï¼operator"); } if (string.IsNullOrEmpty(request.workOrderNumber)) { throw new ArgumentException("缺å°å¿ å¡«åæ°ï¼workOrderNumber"); } if (!ValidWorkOrders.Contains(request.workOrderNumber)) { throw new ArgumentException($"å·¥å {request.workOrderNumber} ä¸åå¨"); } foreach (var barcode in request.barcodes) { if (string.IsNullOrEmpty(barcode) || !barcode.StartsWith("BC")) { throw new ArgumentException($"æ¡ç {barcode} æ æ"); } if (!GeneratedBarcodes.Contains(barcode)) { throw new ArgumentException($"æ¡ç {barcode} æ æ"); } } } } MESApplication/Controllers/QC/BarcodeController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,141 @@ 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<string>(); 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<string>(); 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); } } }