diff --git a/Controllers/OutputRequestController.cs b/Controllers/OutputRequestController.cs
index 14360bd..3dbf8c4 100644
--- a/Controllers/OutputRequestController.cs
+++ b/Controllers/OutputRequestController.cs
@@ -8,6 +8,7 @@ using WMS_GIRAF_Interface.Entities;
using WMS_GIRAF_Interface.Models;
using WMS_GIRAF_Interface.Repositories.Interface;
using WMS_GIRAF_Interface.TaskServices;
+using Newtonsoft.Json;
namespace WMS_GIRAF_Interface.Controllers
{
@@ -34,6 +35,8 @@ namespace WMS_GIRAF_Interface.Controllers
{
bool bResult = true;
string sResult = string.Empty;
+ Log.Information($"{nameof(OutputRequestByProductIds)} Received new request:{JsonConvert.SerializeObject(outputRequest)}");
+
OutputRequestByProductIdsReturn returnJsonString = new OutputRequestByProductIdsReturn();
if (outputRequest!=null)
{
@@ -171,11 +174,12 @@ namespace WMS_GIRAF_Interface.Controllers
{
bool bResult = true;
string sResult = string.Empty;
+ Log.Information($"{nameof(OutputRequestBySku)} Received new request:{JsonConvert.SerializeObject(outputRequest)}");
OutputRequestBySkuReturn returnJsonString = new OutputRequestBySkuReturn();
if (outputRequest!=null)
{
//先判断当前sku是否有可用库存,然后筛选出库,如果没有的话就就启用备用sku的库存出库
- if (context.V_StorageList.FromSqlRaw($"SELECT TOP 1 STOCK_BARCODE FROM V_STORAGE_LIST WHERE requestNumber = '{outputRequest.outputRequestId}'").ToList().Count>0)
+ if (context.V_StorageList.FromSqlRaw($"SELECT TOP 1 * FROM V_STORAGE_LIST WHERE requestNumber = '{outputRequest.outputRequestId}'").ToList().Count>0)
{
returnJsonString.status = "0";
returnJsonString.evacuationPost = string.Empty;
@@ -200,7 +204,7 @@ namespace WMS_GIRAF_Interface.Controllers
//无需筛选巷道状态,直接选择可用轮胎,只需考虑availableEvacuationPosts即可,筛选lane_way
#region outlevel 4/3/2/1/0
var poolNumber = string.Empty;
- string queryStringForLevel1234 = $@"SELECT TOP 1 STORAGE_ID,WAREHOUSE_CODE FROM V_STORAGE_LIST
+ string queryStringForLevel1234 = $@"SELECT TOP 1 * FROM V_STORAGE_LIST
WHERE RUN_STATUS = 'Enable'
AND (requestNumber IS NULL OR requestNumber = '')
AND IsBlocked = {(outputRequest.productIsBlocked ? 1 : 0)}
@@ -218,7 +222,7 @@ namespace WMS_GIRAF_Interface.Controllers
poolNumber = checkHighPriorityTire[0].WAREHOUSE_CODE;
if (storageId != 0 && storageId !=null)
{
- var getStorageMain = storageMainRepository.GetStorageMain("StorageId", storageId.ToString());
+ var getStorageMain = storageMainRepository.GetStorageMain("storageId", storageId.ToString());
if (getStorageMain != null)
{
@@ -255,7 +259,7 @@ namespace WMS_GIRAF_Interface.Controllers
{
//未找到当前库存信息
//查看level为0的库存信息
- var checkLowPriorityTire = $@"SELECT STORAGE_ID,WAREHOUSE_CODE FROM V_STORAGE_LIST
+ var checkLowPriorityTire = $@"SELECT * FROM V_STORAGE_LIST
WHERE RUN_STATUS = 'Enable'
AND OutLevel = 0
AND IsBlocked = 0
@@ -273,7 +277,7 @@ namespace WMS_GIRAF_Interface.Controllers
if (storageId!=0 && storageId!=null)
{
- var storageMain = storageMainRepository.GetStorageMain("ID", storageId.ToString());
+ var storageMain = storageMainRepository.GetStorageMain("storageId", storageId.ToString());
if (storageMain != null)
{
storageMain.requestNumber = outputRequest.outputRequestId;
@@ -323,6 +327,13 @@ namespace WMS_GIRAF_Interface.Controllers
KeepRequestInMemoryEvenIfLackOfProductIssue = true
};
context.Manage_Detail.Add(manageDetail);
+ context.SaveChanges();
+ bResult = true;
+ returnJsonString.status = "1";
+ returnJsonString.evacuationPost = outputRequest.evacuationPost;
+ returnJsonString.estimatedExitTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ returnJsonString.errorDetails = string.Empty;
+ Log.Information($" Create manage_detail task completed! the detail list :{JsonConvert.SerializeObject(manageDetail)} ");
}
@@ -340,16 +351,96 @@ namespace WMS_GIRAF_Interface.Controllers
return returnJsonString;
}
+ ///
+ /// 修改任务信息
+ ///
+ ///
[HttpPut]
- public void UpdateOutputRequest(UpdateOutputRequest.RootObjectForUpdateOutputRequest updateOutputRequest)
+ public UpdateOutputRequestReturn UpdateOutputRequest(UpdateOutputRequest.RootObjectForUpdateOutputRequest? updateOutputRequest)
{
+ Log.Information($"{nameof(UpdateOutputRequest)} Received new request:{JsonConvert.SerializeObject(updateOutputRequest)}");
+ if (updateOutputRequest!=null)
+ {
+ if (!string.IsNullOrEmpty(updateOutputRequest.outputRequestId) )
+ {
+ var checkTask =
+ manageMainRepository.GetManageMain("requestId", updateOutputRequest.outputRequestId);
+ if (checkTask!=null)
+ {
+ //更新信息
+ checkTask.TargetOutputDateInUtc = updateOutputRequest.expectedCompletionDate;
+ manageMainRepository.UpdateManageMain(checkTask);
+ Log.Information($"update output request : TargetOutputDateInUtc new is {updateOutputRequest.expectedCompletionDate};");
+ return new UpdateOutputRequestReturn
+ {
+ status = "1",
+ errorDetails = null
+ };
+ }
+ else
+ {
+ //无任务情况下,
+ return new UpdateOutputRequestReturn
+ {
+ status = "5",
+ errorDetails = "OutputRequestAlreadyPerformed"
+ };
+ }
+ }
+ else
+ {
+ //任务ID为空
+ return new UpdateOutputRequestReturn()
+ {
+ status = "2",
+ errorDetails = "UnknownOutputRequestId"
+ };
+ }
+ }
+ else
+ {
+ //报错,入参为空
+ return new UpdateOutputRequestReturn()
+ {
+ status = "0",
+ errorDetails = "RefusedBecauseEmptyInputParameter"
+ };
+ }
+
}
-
+ ///
+ /// 取消任务
+ ///
+ ///
[HttpPost("Cancel")]
- public void CancelOutputRequest(CancelOutputRequest.RootObjectForCancelOutputRequest cancelOutputRequest)
+ public CancelOutputRequestReturn CancelOutputRequest(CancelOutputRequest.RootObjectForCancelOutputRequest? cancelOutputRequest)
{
-
+ Log.Information($"{nameof(CancelOutputRequest)} Received new request:{JsonConvert.SerializeObject(cancelOutputRequest)}");
+ if (cancelOutputRequest!=null)
+ {
+ if (!string.IsNullOrEmpty(cancelOutputRequest.ouputRequestId))
+ {
+
+ }
+ else
+ {
+ //requestID 为空
+ return new CancelOutputRequestReturn
+ {
+ status = "2",
+ errorDetails = "RefusedBecauseEmptyOutputRequestID"
+ };
+ }
+ }
+ else
+ {
+ return new CancelOutputRequestReturn
+ {
+ status = "0",
+ errorDetails = "RefusedBecauseEmptyInputParameter"
+ };
+ }
}
}
}
diff --git a/Data/MichelinDbContext.cs b/Data/MichelinDbContext.cs
index 5a582f4..e75f51b 100644
--- a/Data/MichelinDbContext.cs
+++ b/Data/MichelinDbContext.cs
@@ -39,6 +39,7 @@ public class MichelinDbContext : DbContext
modelBuilder.Entity().HasNoKey();
modelBuilder.Entity().HasNoKey();
modelBuilder.Entity().HasNoKey();
+ modelBuilder.Entity(x => x.Property(e => e.MANAGE_LIST_QUANTITY).HasColumnType("decimal"));
}
}
\ No newline at end of file
diff --git a/Entities/MANAGE_DETAIL.cs b/Entities/MANAGE_DETAIL.cs
index e62be69..acaa405 100644
--- a/Entities/MANAGE_DETAIL.cs
+++ b/Entities/MANAGE_DETAIL.cs
@@ -8,7 +8,7 @@ namespace WMS_GIRAF_Interface.Entities;
public class MANAGE_DETAIL
{
[Column("requestNumber")]
-
+ [Key]
public string? requestNumber { get; set; }
[Column("poolNumber")]
diff --git a/Entities/STORAGE_MAIN.cs b/Entities/STORAGE_MAIN.cs
index 5cf1c3d..4129607 100644
--- a/Entities/STORAGE_MAIN.cs
+++ b/Entities/STORAGE_MAIN.cs
@@ -24,13 +24,13 @@ public class STORAGE_MAIN
[Column("PopulationNumber")]
public string? PopulationNumber { get; set; }
[Column("FabricationDateTimeInUtc")]
- public string? FabricationDateTimeInUtc { get; set; }
+ public DateTime? FabricationDateTimeInUtc { get; set; }
[Column("DryDateTimeInUtc")]
- public string? DryDateTimeInUtc { get; set; }
+ public DateTime? DryDateTimeInUtc { get; set; }
[Column("OldDateTimeInUtc")]
- public string? OldDateTimeInUtc { get; set; }
+ public DateTime? OldDateTimeInUtc { get; set; }
[Column("HdvDateTimeInUtc")]
- public string? HdvDateTimeInUtc { get; set; }
+ public DateTime? HdvDateTimeInUtc { get; set; }
[Column("IsPriority")]
public bool? IsPriority { get; set; }
[Column("IsBlocked")]
diff --git a/Entities/V_STORAGE_LIST.cs b/Entities/V_STORAGE_LIST.cs
index ebe15fc..d77ca90 100644
--- a/Entities/V_STORAGE_LIST.cs
+++ b/Entities/V_STORAGE_LIST.cs
@@ -6,7 +6,7 @@ namespace WMS_GIRAF_Interface.Entities;
public class V_STORAGE_LIST
{
[Column("PRIORITY")]
- public string? PRIORITY { get; set; }
+ public int? PRIORITY { get; set; }
[Column("CELL_ID")]
public int CELL_ID { get; set; }
@@ -31,9 +31,6 @@ public class V_STORAGE_LIST
[Column("CELL_CODE")]
public string? CELL_CODE { get; set; }
- [Column("AREA_ID")]
- public int? AREA_ID { get; set; }
-
[Column("AREA_CODE")]
public string? AreaCode { get; set; }
[Column("AREA_TYPE")]
@@ -42,7 +39,7 @@ public class V_STORAGE_LIST
public string? LANE_WAY { get; set; }
[Column("MANAGE_LIST_QUANTITY")]
- public int? MANAGE_LIST_QUANTITY { get; set; }
+ public decimal? MANAGE_LIST_QUANTITY { get; set; }
[Column("CELL_X")]
public int? CELL_X { get; set; }
@@ -64,22 +61,22 @@ public class V_STORAGE_LIST
public string? LOTNUMBER { get; set; }
[Column("PopulationNumber")]
public string? PopulationNumber { get; set; }
- [Column("DryDateTimeUtc")]
- public DateTime? DryDateTimeUtc { get; set; }
- [Column("DryDateTimeLoc")]
- public DateTime? DryDateTimeLoc { get; set; }
- [Column("OldDateTimeUtc")]
- public DateTime? OldDateTimeUtc { get; set; }
- [Column("OldDateTimeLoc")]
- public DateTime? OldDateTimeLoc { get; set; }
- [Column("HdvDateTimeUtc")]
- public DateTime? HdvDateTimeUtc { get; set; }
- [Column("HdvDateTimeLoc")]
- public DateTime? HdvDateTimeLoc { get; set; }
- [Column("FabricationDateTimeUtc")]
- public DateTime? FabricationDateTimeUtc { get; set; }
- [Column("FabricationDateTimeLoc")]
- public DateTime? FabricationDateTimeLoc { get; set; }
+ [Column("DryDateTimeInUtc")]
+ public DateTime? DryDateTimeInUtc { get; set; }
+ [Column("DryDateTimeInLoc")]
+ public DateTime? DryDateTimeInLoc { get; set; }
+ [Column("OldDateTimeInUtc")]
+ public DateTime? OldDateTimeInUtc { get; set; }
+ [Column("OldDateTimeInLoc")]
+ public DateTime? OldDateTimeInLoc { get; set; }
+ [Column("HdvDateTimeInUtc")]
+ public DateTime? HdvDateTimeInUtc { get; set; }
+ [Column("HdvDateTimeInLoc")]
+ public DateTime? HdvDateTimeInLoc { get; set; }
+ [Column("FabricationDateTimeInUtc")]
+ public DateTime? FabricationDateTimeInUtc { get; set; }
+ [Column("FabricationDateTimeInLoc")]
+ public DateTime? FabricationDateTimeInLoc { get; set; }
[Column("IsBlocked")]
public bool? IsBlocked { get; set; }
[Column("IsPriority")]
@@ -89,9 +86,9 @@ public class V_STORAGE_LIST
[Column("CELL_NAME")]
public string? CELL_NAME { get; set; }
[Column("EntryTime")]
- public DateTime? EntryTime { get; set; }
+ public string? EntryTime { get; set; }
[Column("OutLevel")]
- public string? OutLevel { get; set; }
+ public int? OutLevel { get; set; }
[Column("WAREHOUSE_CODE")]
public string? WAREHOUSE_CODE { get; set; }
[Column("AREA_NAME")]
diff --git a/Models/CancelOutputRequest.cs b/Models/CancelOutputRequest.cs
index 6e0a05d..b2cbb62 100644
--- a/Models/CancelOutputRequest.cs
+++ b/Models/CancelOutputRequest.cs
@@ -15,6 +15,6 @@ public class CancelOutputRequest
///
/// Input request id
///
- public string inputRequestId { get; set; }
+ public string ouputRequestId { get; set; }
}
}
\ No newline at end of file
diff --git a/Repositories/Implement/ManageMainRepository.cs b/Repositories/Implement/ManageMainRepository.cs
index f6b1cad..3465e6d 100644
--- a/Repositories/Implement/ManageMainRepository.cs
+++ b/Repositories/Implement/ManageMainRepository.cs
@@ -27,10 +27,10 @@ public class ManageMainRepository: IManageMainRepository
///
public MANAGE_MAIN? GetManageMain(string type, string filterInfo)
{
- MANAGE_MAIN? manageMain = type switch
+ MANAGE_MAIN? manageMain = type.ToLower() switch
{
"barcode" => _context.Manage_Main.FirstOrDefault(x => x.STOCK_BARCODE == filterInfo),
- "requestNumber" => _context.Manage_Main.FirstOrDefault(x => x.requestNumber == filterInfo),
+ "requestnumber" => _context.Manage_Main.FirstOrDefault(x => x.requestNumber == filterInfo),
_ => _context.Manage_Main.FirstOrDefault(x => x.STOCK_BARCODE == filterInfo)
};
diff --git a/Repositories/Implement/StorageMainRepository.cs b/Repositories/Implement/StorageMainRepository.cs
index 7b5131a..f8357a3 100644
--- a/Repositories/Implement/StorageMainRepository.cs
+++ b/Repositories/Implement/StorageMainRepository.cs
@@ -21,11 +21,11 @@ public class StorageMainRepository:IStorageMainRepository
public STORAGE_MAIN? GetStorageMain(string type, string filterInfo)
{
- STORAGE_MAIN? storageMain = type switch
+ STORAGE_MAIN? storageMain = type.ToLower() switch
{
"barcode" => _context.Storage_Main.FirstOrDefault(x => x.STOCK_BARCODE == filterInfo),
- "storageId" => _context.Storage_Main.FirstOrDefault(x => x.STORAGE_ID == Convert.ToInt32(filterInfo)),
- "requestNumber" => _context.Storage_Main.FirstOrDefault(x => x.requestNumber == filterInfo),
+ "storageid" => _context.Storage_Main.FirstOrDefault(x => x.STORAGE_ID == Convert.ToInt32(filterInfo)),
+ "requestnumber" => _context.Storage_Main.FirstOrDefault(x => x.requestNumber == filterInfo),
_ => _context.Storage_Main.FirstOrDefault(x => x.STOCK_BARCODE == filterInfo)
};