From 5029aecc1d84ad61c17d12020af5b5bc032d2507 Mon Sep 17 00:00:00 2001 From: taoleite Date: Wed, 11 Jun 2025 16:50:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Eiocontrol=E7=9A=84model?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controllers/InputRequestController.cs | 55 +++++++++++++++++-- Data/MichelinDbContext.cs | 1 + Repositories/Implement/IoControlRepository.cs | 22 ++++++++ .../Implement/IoControlRouteRepository.cs | 17 ++---- Repositories/Implement/WhCellRepository.cs | 3 +- .../Interface/IIoControlRepository.cs | 8 +++ 6 files changed, 88 insertions(+), 18 deletions(-) create mode 100644 Repositories/Implement/IoControlRepository.cs create mode 100644 Repositories/Interface/IIoControlRepository.cs diff --git a/Controllers/InputRequestController.cs b/Controllers/InputRequestController.cs index 2ed0703..ba94879 100644 --- a/Controllers/InputRequestController.cs +++ b/Controllers/InputRequestController.cs @@ -1,4 +1,5 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using WMS_GIRAF_Interface.Data; @@ -21,6 +22,7 @@ public class InputRequestController( IManageMainRepository manageMainRepository, IWhCellRepository whCellRepository, IProductInformationRepository productInformationRepository, + IIoControlRepository ioControlRepository, CellLogicService cellLogicService) : ControllerBase { @@ -216,7 +218,7 @@ public class InputRequestController( returnParameter.introductionPost = inputRequest.introductionPost; returnParameter.errorDetails += $"Tire barcode {inputRequestProduct.identifier} created task success! ;"; - logger.LogInformation($"Create task info success! tire barcode :{checkTireTask.STOCK_BARCODE};/r/n task info: {JsonConvert.SerializeObject(checkTireTask)} "); + logger.LogInformation($"Create task info success! tire barcode :{inputRequestProduct.identifier};/r/n task info: {inputRequest.sku}|{inputRequest.inputRequestId} "); } else { @@ -256,6 +258,7 @@ public class InputRequestController( returnParameter.status = "5"; returnParameter.introductionPost = inputRequest.introductionPost; returnParameter.errorDetails = $"WMS didn't find the post number{inputRequest.introductionPost} "; + logger.LogError($"tire barcode :{inputRequest.introductionPost}; Error message:{returnParameter.errorDetails}"); } } @@ -266,7 +269,7 @@ public class InputRequestController( returnParameter.status = "2"; returnParameter.introductionPost = inputRequest.introductionPost; returnParameter.errorDetails = $"WMS didn't receive the right format input parameters! "; - + logger.LogError(returnParameter.errorDetails); } return returnParameter; @@ -293,9 +296,53 @@ public class InputRequestController( /// [HttpPost("Cancel")] - public void CancelInputRequest(CancelInputRequest.RootObject inputRequest) + public CancelInputRequestReturn CancelInputRequest(CancelInputRequest.RootObject? inputRequest) { //TODO:取消入库请求,如果已经到入库口,无法进行取消 + //根据requestNumber获取入库信息 + CancelInputRequestReturn returnJson = new CancelInputRequestReturn(); + if (inputRequest!=null && string.IsNullOrEmpty(inputRequest.inputRequestId) ) + { + var inputTaskInfo = manageMainRepository.GetManageMain("requestNumber", inputRequest.inputRequestId); + if (inputTaskInfo != null) + { + //排查任务状态,并查看是否已经有控制任务 + var checkIoControlTask = ioControlRepository.GetIoControlTaskByManageId(inputTaskInfo.MANAGE_ID); + if (checkIoControlTask != null) + { + //不可以删除当前任务 + returnJson.status = "3"; + returnJson.errorDetails = "this task has been already in progress,it cannot be deleted "; + logger.LogError($"cannot delete input task [{inputTaskInfo.STOCK_BARCODE}] already have task {inputTaskInfo.STOCK_BARCODE};"); + } + else + { + //可以删除任务 + manageMainRepository.DeleteManageMain(inputTaskInfo); + returnJson.status = "1"; + returnJson.errorDetails = ""; + logger.LogInformation($"delete task [{inputTaskInfo.STOCK_BARCODE}] success"); + } + } + else + { + //未查到对应入库任务 + returnJson.status = "2"; + returnJson.errorDetails = $"WMS can not detect this task,please confirm request number [{inputRequest.inputRequestId}] "; + logger.LogError(returnJson.errorDetails); + } + } + else + { + //传入数据位null + returnJson.status = "2"; + returnJson.errorDetails = "CancelInputRequest:WMS can not get the json string "; + logger.LogError(returnJson.errorDetails); + } + + return returnJson; + + } } \ No newline at end of file diff --git a/Data/MichelinDbContext.cs b/Data/MichelinDbContext.cs index b87fa79..ed542bb 100644 --- a/Data/MichelinDbContext.cs +++ b/Data/MichelinDbContext.cs @@ -15,6 +15,7 @@ public class MichelinDbContext : DbContext public DbSet Manage_Main { get; set; } + public DbSet IoControl { get; set; } public DbSet IoControlRoute { get; set; } public DbSet Wh_Cell { get; set; } diff --git a/Repositories/Implement/IoControlRepository.cs b/Repositories/Implement/IoControlRepository.cs new file mode 100644 index 0000000..8627940 --- /dev/null +++ b/Repositories/Implement/IoControlRepository.cs @@ -0,0 +1,22 @@ +using WMS_GIRAF_Interface.Data; +using WMS_GIRAF_Interface.Entities; +using WMS_GIRAF_Interface.Repositories.Interface; + +namespace WMS_GIRAF_Interface.Repositories.Implement; + +public class IoControlRepository(MichelinDbContext context, ILogger logger):IIoControlRepository + +{ + //获取Io Control 表数据 + /// + /// 获取io control数据 + /// + /// + /// + public IO_CONTROL? GetIoControlTaskByManageId(int manageId) + { + + var ioControlInfo = context.IoControl.FirstOrDefault(x => x.MANAGE_ID == manageId); + return ioControlInfo; + } +} \ No newline at end of file diff --git a/Repositories/Implement/IoControlRouteRepository.cs b/Repositories/Implement/IoControlRouteRepository.cs index 91e4ebf..6181590 100644 --- a/Repositories/Implement/IoControlRouteRepository.cs +++ b/Repositories/Implement/IoControlRouteRepository.cs @@ -4,28 +4,19 @@ using WMS_GIRAF_Interface.Repositories.Interface; namespace WMS_GIRAF_Interface.Repositories.Implement; -public class IoControlRouteRepository:IIoControlRouteRepository +public class IoControlRouteRepository(MichelinDbContext context, ILogger logger) + : IIoControlRouteRepository { - - private readonly MichelinDbContext _context; - private readonly ILogger _logger; - - public IoControlRouteRepository(MichelinDbContext context, ILogger logger) - { - _context = context; - _logger = logger; - } - public IO_CONTROL_ROUTE? GetIoControlRoute(int? lineNumber) { try { - var ioControlRoute = _context.IoControlRoute.Where(x => x.CONTROL_ROUTE_TYPE == lineNumber).FirstOrDefault(); + var ioControlRoute = context.IoControlRoute.FirstOrDefault(x => x.CONTROL_ROUTE_TYPE == lineNumber); return ioControlRoute; } catch (Exception ex) { - _logger.LogError(ex, "Error in GetIoControlRoute"); + logger.LogError(ex, "Error in GetIoControlRoute"); return null; } } diff --git a/Repositories/Implement/WhCellRepository.cs b/Repositories/Implement/WhCellRepository.cs index 5c63edd..c8d9416 100644 --- a/Repositories/Implement/WhCellRepository.cs +++ b/Repositories/Implement/WhCellRepository.cs @@ -1,9 +1,10 @@ using WMS_GIRAF_Interface.Data; using WMS_GIRAF_Interface.Entities; +using WMS_GIRAF_Interface.Repositories.Interface; namespace WMS_GIRAF_Interface.Repositories.Implement; -public class WhCellRepository(MichelinDbContext context) +public class WhCellRepository(MichelinDbContext context):IWhCellRepository { public WH_CELL? GetCell(int cellId) { diff --git a/Repositories/Interface/IIoControlRepository.cs b/Repositories/Interface/IIoControlRepository.cs new file mode 100644 index 0000000..0b73dd0 --- /dev/null +++ b/Repositories/Interface/IIoControlRepository.cs @@ -0,0 +1,8 @@ +using WMS_GIRAF_Interface.Entities; + +namespace WMS_GIRAF_Interface.Repositories.Interface; + +public interface IIoControlRepository +{ + public IO_CONTROL? GetIoControlTaskByManageId(int manageId); +} \ No newline at end of file