Browse Source

完成剩余出库接口逻辑开发工作

master
taoleite 3 weeks ago
parent
commit
206f31a560
  1. 109
      Controllers/OutputRequestController.cs
  2. 1
      Data/MichelinDbContext.cs
  3. 2
      Entities/MANAGE_DETAIL.cs
  4. 8
      Entities/STORAGE_MAIN.cs
  5. 43
      Entities/V_STORAGE_LIST.cs
  6. 2
      Models/CancelOutputRequest.cs
  7. 4
      Repositories/Implement/ManageMainRepository.cs
  8. 6
      Repositories/Implement/StorageMainRepository.cs

109
Controllers/OutputRequestController.cs

@ -8,6 +8,7 @@ using WMS_GIRAF_Interface.Entities;
using WMS_GIRAF_Interface.Models; using WMS_GIRAF_Interface.Models;
using WMS_GIRAF_Interface.Repositories.Interface; using WMS_GIRAF_Interface.Repositories.Interface;
using WMS_GIRAF_Interface.TaskServices; using WMS_GIRAF_Interface.TaskServices;
using Newtonsoft.Json;
namespace WMS_GIRAF_Interface.Controllers namespace WMS_GIRAF_Interface.Controllers
{ {
@ -34,6 +35,8 @@ namespace WMS_GIRAF_Interface.Controllers
{ {
bool bResult = true; bool bResult = true;
string sResult = string.Empty; string sResult = string.Empty;
Log.Information($"{nameof(OutputRequestByProductIds)} Received new request:{JsonConvert.SerializeObject(outputRequest)}");
OutputRequestByProductIdsReturn returnJsonString = new OutputRequestByProductIdsReturn(); OutputRequestByProductIdsReturn returnJsonString = new OutputRequestByProductIdsReturn();
if (outputRequest!=null) if (outputRequest!=null)
{ {
@ -171,11 +174,12 @@ namespace WMS_GIRAF_Interface.Controllers
{ {
bool bResult = true; bool bResult = true;
string sResult = string.Empty; string sResult = string.Empty;
Log.Information($"{nameof(OutputRequestBySku)} Received new request:{JsonConvert.SerializeObject(outputRequest)}");
OutputRequestBySkuReturn returnJsonString = new OutputRequestBySkuReturn(); OutputRequestBySkuReturn returnJsonString = new OutputRequestBySkuReturn();
if (outputRequest!=null) if (outputRequest!=null)
{ {
//先判断当前sku是否有可用库存,然后筛选出库,如果没有的话就就启用备用sku的库存出库 //先判断当前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.status = "0";
returnJsonString.evacuationPost = string.Empty; returnJsonString.evacuationPost = string.Empty;
@ -200,7 +204,7 @@ namespace WMS_GIRAF_Interface.Controllers
//无需筛选巷道状态,直接选择可用轮胎,只需考虑availableEvacuationPosts即可,筛选lane_way //无需筛选巷道状态,直接选择可用轮胎,只需考虑availableEvacuationPosts即可,筛选lane_way
#region outlevel 4/3/2/1/0 #region outlevel 4/3/2/1/0
var poolNumber = string.Empty; 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' WHERE RUN_STATUS = 'Enable'
AND (requestNumber IS NULL OR requestNumber = '') AND (requestNumber IS NULL OR requestNumber = '')
AND IsBlocked = {(outputRequest.productIsBlocked ? 1 : 0)} AND IsBlocked = {(outputRequest.productIsBlocked ? 1 : 0)}
@ -218,7 +222,7 @@ namespace WMS_GIRAF_Interface.Controllers
poolNumber = checkHighPriorityTire[0].WAREHOUSE_CODE; poolNumber = checkHighPriorityTire[0].WAREHOUSE_CODE;
if (storageId != 0 && storageId !=null) if (storageId != 0 && storageId !=null)
{ {
var getStorageMain = storageMainRepository.GetStorageMain("StorageId", storageId.ToString());
var getStorageMain = storageMainRepository.GetStorageMain("storageId", storageId.ToString());
if (getStorageMain != null) if (getStorageMain != null)
{ {
@ -255,7 +259,7 @@ namespace WMS_GIRAF_Interface.Controllers
{ {
//未找到当前库存信息 //未找到当前库存信息
//查看level为0的库存信息 //查看level为0的库存信息
var checkLowPriorityTire = $@"SELECT STORAGE_ID,WAREHOUSE_CODE FROM V_STORAGE_LIST
var checkLowPriorityTire = $@"SELECT * FROM V_STORAGE_LIST
WHERE RUN_STATUS = 'Enable' WHERE RUN_STATUS = 'Enable'
AND OutLevel = 0 AND OutLevel = 0
AND IsBlocked = 0 AND IsBlocked = 0
@ -273,7 +277,7 @@ namespace WMS_GIRAF_Interface.Controllers
if (storageId!=0 && storageId!=null) if (storageId!=0 && storageId!=null)
{ {
var storageMain = storageMainRepository.GetStorageMain("ID", storageId.ToString());
var storageMain = storageMainRepository.GetStorageMain("storageId", storageId.ToString());
if (storageMain != null) if (storageMain != null)
{ {
storageMain.requestNumber = outputRequest.outputRequestId; storageMain.requestNumber = outputRequest.outputRequestId;
@ -323,6 +327,13 @@ namespace WMS_GIRAF_Interface.Controllers
KeepRequestInMemoryEvenIfLackOfProductIssue = true KeepRequestInMemoryEvenIfLackOfProductIssue = true
}; };
context.Manage_Detail.Add(manageDetail); 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; return returnJsonString;
} }
/// <summary>
/// 修改任务信息
/// </summary>
/// <param name="updateOutputRequest"></param>
[HttpPut] [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"
};
}
} }
/// <summary>
/// 取消任务
/// </summary>
/// <param name="cancelOutputRequest"></param>
[HttpPost("Cancel")] [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"
};
}
} }
} }
} }

1
Data/MichelinDbContext.cs

@ -39,6 +39,7 @@ public class MichelinDbContext : DbContext
modelBuilder.Entity<V_MANAGE_IN_COUNT>().HasNoKey(); modelBuilder.Entity<V_MANAGE_IN_COUNT>().HasNoKey();
modelBuilder.Entity<V_WH_CELL_ENABLE>().HasNoKey(); modelBuilder.Entity<V_WH_CELL_ENABLE>().HasNoKey();
modelBuilder.Entity<V_STORAGE_LIST>().HasNoKey(); modelBuilder.Entity<V_STORAGE_LIST>().HasNoKey();
modelBuilder.Entity<V_STORAGE_LIST>(x => x.Property(e => e.MANAGE_LIST_QUANTITY).HasColumnType("decimal"));
} }
} }

2
Entities/MANAGE_DETAIL.cs

@ -8,7 +8,7 @@ namespace WMS_GIRAF_Interface.Entities;
public class MANAGE_DETAIL public class MANAGE_DETAIL
{ {
[Column("requestNumber")] [Column("requestNumber")]
[Key]
public string? requestNumber { get; set; } public string? requestNumber { get; set; }
[Column("poolNumber")] [Column("poolNumber")]

8
Entities/STORAGE_MAIN.cs

@ -24,13 +24,13 @@ public class STORAGE_MAIN
[Column("PopulationNumber")] [Column("PopulationNumber")]
public string? PopulationNumber { get; set; } public string? PopulationNumber { get; set; }
[Column("FabricationDateTimeInUtc")] [Column("FabricationDateTimeInUtc")]
public string? FabricationDateTimeInUtc { get; set; }
public DateTime? FabricationDateTimeInUtc { get; set; }
[Column("DryDateTimeInUtc")] [Column("DryDateTimeInUtc")]
public string? DryDateTimeInUtc { get; set; }
public DateTime? DryDateTimeInUtc { get; set; }
[Column("OldDateTimeInUtc")] [Column("OldDateTimeInUtc")]
public string? OldDateTimeInUtc { get; set; }
public DateTime? OldDateTimeInUtc { get; set; }
[Column("HdvDateTimeInUtc")] [Column("HdvDateTimeInUtc")]
public string? HdvDateTimeInUtc { get; set; }
public DateTime? HdvDateTimeInUtc { get; set; }
[Column("IsPriority")] [Column("IsPriority")]
public bool? IsPriority { get; set; } public bool? IsPriority { get; set; }
[Column("IsBlocked")] [Column("IsBlocked")]

43
Entities/V_STORAGE_LIST.cs

@ -6,7 +6,7 @@ namespace WMS_GIRAF_Interface.Entities;
public class V_STORAGE_LIST public class V_STORAGE_LIST
{ {
[Column("PRIORITY")] [Column("PRIORITY")]
public string? PRIORITY { get; set; }
public int? PRIORITY { get; set; }
[Column("CELL_ID")] [Column("CELL_ID")]
public int CELL_ID { get; set; } public int CELL_ID { get; set; }
@ -31,9 +31,6 @@ public class V_STORAGE_LIST
[Column("CELL_CODE")] [Column("CELL_CODE")]
public string? CELL_CODE { get; set; } public string? CELL_CODE { get; set; }
[Column("AREA_ID")]
public int? AREA_ID { get; set; }
[Column("AREA_CODE")] [Column("AREA_CODE")]
public string? AreaCode { get; set; } public string? AreaCode { get; set; }
[Column("AREA_TYPE")] [Column("AREA_TYPE")]
@ -42,7 +39,7 @@ public class V_STORAGE_LIST
public string? LANE_WAY { get; set; } public string? LANE_WAY { get; set; }
[Column("MANAGE_LIST_QUANTITY")] [Column("MANAGE_LIST_QUANTITY")]
public int? MANAGE_LIST_QUANTITY { get; set; }
public decimal? MANAGE_LIST_QUANTITY { get; set; }
[Column("CELL_X")] [Column("CELL_X")]
public int? CELL_X { get; set; } public int? CELL_X { get; set; }
@ -64,22 +61,22 @@ public class V_STORAGE_LIST
public string? LOTNUMBER { get; set; } public string? LOTNUMBER { get; set; }
[Column("PopulationNumber")] [Column("PopulationNumber")]
public string? PopulationNumber { get; set; } 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")] [Column("IsBlocked")]
public bool? IsBlocked { get; set; } public bool? IsBlocked { get; set; }
[Column("IsPriority")] [Column("IsPriority")]
@ -89,9 +86,9 @@ public class V_STORAGE_LIST
[Column("CELL_NAME")] [Column("CELL_NAME")]
public string? CELL_NAME { get; set; } public string? CELL_NAME { get; set; }
[Column("EntryTime")] [Column("EntryTime")]
public DateTime? EntryTime { get; set; }
public string? EntryTime { get; set; }
[Column("OutLevel")] [Column("OutLevel")]
public string? OutLevel { get; set; }
public int? OutLevel { get; set; }
[Column("WAREHOUSE_CODE")] [Column("WAREHOUSE_CODE")]
public string? WAREHOUSE_CODE { get; set; } public string? WAREHOUSE_CODE { get; set; }
[Column("AREA_NAME")] [Column("AREA_NAME")]

2
Models/CancelOutputRequest.cs

@ -15,6 +15,6 @@ public class CancelOutputRequest
/// <summary> /// <summary>
/// Input request id /// Input request id
/// </summary> /// </summary>
public string inputRequestId { get; set; }
public string ouputRequestId { get; set; }
} }
} }

4
Repositories/Implement/ManageMainRepository.cs

@ -27,10 +27,10 @@ public class ManageMainRepository: IManageMainRepository
/// <returns></returns> /// <returns></returns>
public MANAGE_MAIN? GetManageMain(string type, string filterInfo) 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), "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) _ => _context.Manage_Main.FirstOrDefault(x => x.STOCK_BARCODE == filterInfo)
}; };

6
Repositories/Implement/StorageMainRepository.cs

@ -21,11 +21,11 @@ public class StorageMainRepository:IStorageMainRepository
public STORAGE_MAIN? GetStorageMain(string type, string filterInfo) 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), "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) _ => _context.Storage_Main.FirstOrDefault(x => x.STOCK_BARCODE == filterInfo)
}; };

Loading…
Cancel
Save