Browse Source

编写bysku出库逻辑;

添加entity manage detail
master
taoleite 3 weeks ago
parent
commit
40164944e2
  1. 64
      Controllers/OutputRequestController.cs
  2. 41
      Entities/MANAGE_DETAIL.cs

64
Controllers/OutputRequestController.cs

@ -159,12 +159,70 @@ namespace WMS_GIRAF_Interface.Controllers
} }
return returnJsonString; return returnJsonString;
} }
/// <summary>
/// 根据Sku生成出库任务
/// SendOutputRequestByLotWithManyPool
/// </summary>
/// <param name="outputRequest"></param>
[HttpPost("BySku")] [HttpPost("BySku")]
public void OutputRequestBySku(OutputRequestBySku.RootObjectForOutputRequestBySku outputRequest)
public OutputRequestBySkuReturn OutputRequestBySku(OutputRequestBySku.RootObjectForOutputRequestBySku? outputRequest)
{
bool bResult = true;
string sResult = string.Empty;
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)
{
returnJsonString.status = "0";
returnJsonString.evacuationPost = string.Empty;
returnJsonString.estimatedExitTime = string.Empty;
returnJsonString.errorDetails = "RefusedBecauseSameRequestNumber";
}
else
{
//检查post number
var checkPost =
destinationIdRepository.GetDestinationId(outputRequest.evacuationPost);
if (checkPost==null)
{
returnJsonString.status = "0";
returnJsonString.evacuationPost = string.Empty;
returnJsonString.estimatedExitTime = string.Empty;
returnJsonString.errorDetails = "RefusedBecauseUnknownPostNumber";
}
else
{ {
//tlt:根据SKu来筛选物料信息
//无需筛选巷道状态,直接选择可用轮胎,只需考虑availableEvacuationPosts即可,筛选lane_way
#region outlevel 4/3/2/1
var checkHighPriorityTire = context.V_StorageList.FromSqlRaw(
$@"SELECT TOP 1 STORAGE_ID FROM V_STORAGE_LIST
WHERE RUN_STATUS = 'Enable'
AND (requestNumber IS NULL OR requestNumber = '')
AND IsBlocked = {(outputRequest.productIsBlocked ? 1 : 0)}
AND LOTNUMBER = '{outputRequest.sku}'
AND PopulationNumber = '{outputRequest.productClass}'
AND Lane_way IN({string.Join(",",outputRequest.availableEvacuationPosts)})");
#endregion
}
}
}
else
{
//当前入参为空
returnJsonString.status = "3";
returnJsonString.evacuationPost = string.Empty;
returnJsonString.estimatedExitTime = string.Empty;
returnJsonString.errorDetails = "RefusedBecauseEmptyInputParameter";
}
return returnJsonString;
} }
[HttpPut] [HttpPut]

41
Entities/MANAGE_DETAIL.cs

@ -0,0 +1,41 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Runtime.Serialization;
namespace WMS_GIRAF_Interface.Entities;
[Table("MANAGE_DETAIL")]
public class MANAGE_DETAIL
{
[Column("requestNumber")]
public string? requestNumber { get; set; }
[Column("poolNumber")]
public string? poolNumber { get; set; }
[Column("lotNumber")]
public string? lotNumber { get; set; }
[Column("populationNumber")]
public string? populationNumber { get; set; }
[Column("destinationId")]
public string? destinationId { get; set; }
[Column("targetOutputDateInUtc")]
public DateTime? targetOutputDateInUtc { get; set; }
[Column("keepRequestInMemoryEvenIfMechanicalIssue")]
public bool? keepRequestInMemoryEvenIfMechanicalIssue { get; set; }
[Column("keepRequestInMemoryEvenIfLackOfProductIssue")]
public bool? KeepRequestInMemoryEvenIfLackOfProductIssue { get; set; }
[Column("requestStatus")]
public int? requestStatus { get; set; }
[Column("errorText")]
public string? errorText { get; set; }
}
Loading…
Cancel
Save