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